:root{--ink:#20332d;--muted:#80908b;--line:#e6ece8;--green:#247a55;--mint:#eaf5ee;--bg:#f6f8f6;--white:#fff;--amber:#e9a52f}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.muted{color:var(--muted);margin:5px 0}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#6f9b83;margin:0 0 8px;font-weight:700}.primary{background:var(--green);color:white;padding:11px 18px;border-radius:5px;font-weight:600}.primary:hover{background:#1b6344}.secondary{background:white;color:#51645c;border:1px solid #dbe4de;padding:10px 15px;border-radius:5px;font-weight:600}.wide{width:100%;padding:13px}.login-shell{min-height:100vh;display:grid;grid-template-columns:460px 1fr;background:#fff}.login-panel{padding:110px 76px}.brand-mark{width:44px;height:44px;background:#d9efdf;color:var(--green);font:700 24px Georgia;text-align:center;padding-top:8px;border-radius:12px 12px 12px 3px}.brand-mark.small{width:34px;height:34px;font-size:19px;padding-top:6px;border-radius:9px 9px 9px 2px}.login-panel h1{font-size:35px;margin:0 0 12px;letter-spacing:0}.login-panel>.eyebrow{margin-top:38px}.login-form{margin-top:40px;display:grid;gap:18px}.login-form label,.form-grid label{display:grid;gap:7px;color:#52655d;font-size:13px;font-weight:600}.login-form input,.form-grid input,.form-grid textarea,.form-grid select,.search-box input,.filter-row select{border:1px solid #dfe7e2;border-radius:4px;padding:11px 12px;color:var(--ink);outline:none;background:#fff}.login-form input:focus,.form-grid input:focus,.form-grid textarea:focus{border-color:#72ad8c;box-shadow:0 0 0 3px #eaf5ee}.form-error{color:#bd4c42;min-height:18px;margin:0;font-size:12px}.demo-hint{font-size:12px;color:#9aa8a3;margin-top:42px}.login-art{background:linear-gradient(120deg,rgba(26,70,48,.25),rgba(21,46,35,.64)),url('https://images.unsplash.com/photo-1595231776515-ddffb1f4eb73?auto=format&fit=crop&w=1600&q=85') center/cover;position:relative}.art-copy{position:absolute;left:68px;bottom:70px;color:#fff}.art-copy span{font-size:12px;letter-spacing:3px;opacity:.8}.art-copy strong{font:500 38px/1.3 Georgia,"Microsoft YaHei",serif;display:block;margin-top:15px}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:#fff;border-right:1px solid var(--line);padding:28px 17px 20px;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:10px;align-items:center;padding:0 10px}.sidebar-brand b{font-size:15px}.sidebar-brand small,.user-mini small{display:block;color:#9aa7a1;font-size:10px;margin-top:3px;letter-spacing:.5px}.farm-selector{margin:35px 4px 26px;padding:12px;background:#f4f8f5;border:1px solid #e2ece5;border-radius:5px;font-size:12px;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;background:#58ae78;border-radius:50%}.chevron{margin-left:auto;color:#9baa9f}.nav-label{font-size:10px;color:#a5b0aa;padding:0 13px;margin:16px 0 8px;letter-spacing:1px}.nav-item{height:41px;padding:12px 13px;color:#64746d;text-decoration:none;display:flex;gap:13px;align-items:center;border-radius:5px;margin:3px 0}.nav-item span{width:16px;text-align:center;font-size:17px}.nav-item.active{background:var(--mint);color:var(--green);font-weight:700}.nav-item.disabled{color:#b5bdb9;cursor:default}.nav-item i{font-size:9px;font-style:normal;background:#f0f2f1;padding:3px 5px;border-radius:3px;margin-left:auto}.sidebar-bottom{margin-top:auto}.support-box{background:#f5f7f5;border-radius:5px;padding:13px;margin:14px 4px 16px}.support-box b{display:block;font-size:12px}.support-box span{font-size:11px;color:var(--muted);display:block;margin-top:5px}.user-mini{border-top:1px solid var(--line);padding:18px 5px 0;display:flex;align-items:center;gap:9px}.avatar{background:#dcefe4;color:var(--green);width:31px;height:31px;border-radius:50%;text-align:center;padding-top:7px;font-weight:700;font-size:12px}.user-mini b{font-size:12px}.user-mini button{margin-left:auto;background:none;color:#94a39b;font-size:19px}.main-content{flex:1;padding:0 42px 45px;min-width:900px}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#50635a}.breadcrumb{color:#a0ada7}.top-actions{display:flex;align-items:center;gap:22px}.date-pill{color:#687a72;font-size:12px}.icon-button{background:none;color:#75877e;font-size:19px;position:relative}.icon-button i{position:absolute;top:0;right:-1px;width:5px;height:5px;background:#dd7162;border-radius:50%}.page-heading{display:flex;justify-content:space-between;align-items:end;padding:37px 0 27px}.page-heading h2{font:500 30px Georgia,"Microsoft YaHei",serif;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat-card{background:#fff;border:1px solid var(--line);padding:19px;display:flex;gap:14px;align-items:flex-start;border-radius:6px}.stat-icon{width:35px;height:35px;border-radius:5px;text-align:center;padding-top:8px;font-weight:700}.green{background:#e7f5ed;color:#278057}.blue{background:#e7f0f8;color:#4d83b3}.amber{background:#fff5df;color:#c98a20}.purple{background:#f0ebf7;color:#8362a9}.stat-card span{font-size:12px;color:#80908a}.stat-card strong{font-size:21px;display:block;margin:5px 0}.stat-card strong small{font-size:11px;color:#8a9992;font-weight:400}.trend{font-size:11px;color:#38a36a!important}.trend em{color:#a0aaa5;font-style:normal;margin-left:5px}.trend.neutral{color:#a0aaa5!important}.content-panel{background:#fff;border:1px solid var(--line);margin-top:24px;border-radius:6px}.panel-head{padding:22px 22px 17px;display:flex;justify-content:space-between;align-items:center}.panel-head h3{margin:0 0 5px;font-size:16px}.panel-tools{display:flex;gap:10px}.search-box{border:1px solid #dfe7e2;border-radius:4px;display:flex;align-items:center;padding:0 10px;color:#a1ada7;width:245px}.search-box input{border:0;outline:none;padding:9px 8px;width:100%}.filter-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 22px;display:flex;align-items:center;gap:7px}.filter{background:none;color:#84918b;padding:7px 11px;border-radius:4px}.filter.active{background:#eaf5ee;color:var(--green);font-weight:700}.filter b{font-size:11px;margin-left:5px}.filter-spacer{flex:1}.filter-row select{padding:8px 11px;font-size:12px;color:#6f8078}.table-wrap{min-height:290px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:1050px}th,td{text-align:left;padding:15px 13px;border-bottom:1px solid #edf1ee;white-space:nowrap;font-size:12px}th{color:#9aa7a1;font-size:11px;font-weight:600;background:#fcfdfc}td{color:#596a63}td strong{color:#29443a;font-size:13px}.tag{display:inline-block;padding:4px 7px;border-radius:3px;font-size:11px}.tag.labor{background:#e8f5ed;color:#32805a}.tag.machine{background:#fff2dc;color:#b27b19}.row-actions{opacity:0;transition:.15s}.row:hover .row-actions{opacity:1}.row-actions button{background:none;color:#81918a;margin-left:8px}.empty-state{text-align:center;padding:60px 0;color:#9ca9a3}.empty-state div{font-size:30px;color:#c5d0ca}.empty-state strong,.empty-state span{display:block;margin-top:8px}.empty-state strong{color:#687a72}.empty-state span{font-size:12px}.table-footer{padding:14px 22px;display:flex;justify-content:space-between;color:#9aa7a1;font-size:11px}.pagination{display:flex;gap:4px}.pagination button{width:25px;height:25px;background:#f5f7f5;color:#9daa9f;border-radius:3px}.pagination .current{background:var(--green);color:#fff}.modal{position:fixed;inset:0;z-index:5}.modal-backdrop{position:absolute;inset:0;background:rgba(29,46,39,.4)}.modal-card{position:absolute;width:680px;max-height:92vh;overflow:auto;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:7px;box-shadow:0 15px 50px rgba(26,52,40,.2);padding:25px}.modal-header{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.modal-header h3{margin:0;font-size:20px}.close-btn{background:none;font-size:25px;color:#9aa7a1}.type-tabs{display:flex;gap:3px;background:#f3f6f3;padding:4px;width:max-content;border-radius:5px;margin-bottom:20px}.type-tab{background:transparent;color:#83918a;padding:8px 20px;border-radius:3px}.type-tab.active{background:#fff;color:var(--green);box-shadow:0 1px 4px #dde5df;font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.calc-note{font-size:11px;color:#8a9891;background:#f6faf7;padding:10px;margin-top:18px;border-radius:4px}.modal-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.toast{position:fixed;right:28px;bottom:28px;background:#203d31;color:#fff;padding:12px 18px;border-radius:4px;box-shadow:0 8px 24px #b9c9bf;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:80px 35px}.sidebar{width:210px}.main-content{padding:0 20px;min-width:760px}.stats-grid{grid-template-columns:repeat(2,1fr)}}
:root{--settings-gap:16px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--settings-gap);margin-top:24px}.settings-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px}.settings-panel h3{margin:0 0 14px;font-size:16px}.settings-list{min-height:48px}.setting-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf1ee;padding:9px 0;color:#596a63}.setting-item button{background:none;color:#bd6b62;font-size:12px}.settings-add{display:flex;gap:8px;margin-top:14px}.settings-add input{flex:1;border:1px solid #dfe7e2;border-radius:4px;padding:10px 11px}.worker-picker{display:grid;gap:7px}.field-label{color:#52655d;font-size:13px;font-weight:600}.field-label small{color:var(--green);font-weight:400;margin-left:8px}.worker-options{border:1px solid #dfe7e2;border-radius:4px;padding:8px;display:flex;flex-wrap:wrap;gap:7px;min-height:43px}.worker-option{display:flex!important;align-items:center;gap:6px;background:#f4f8f5;padding:7px 9px;border-radius:4px;font-weight:400!important;color:#52655d!important}.worker-option input{accent-color:var(--green)}
.system-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.account-info{display:grid;gap:14px}.account-info div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf1ee;padding:10px 0}.account-info span{color:var(--muted);font-size:12px}.account-info strong{color:var(--ink);font-size:13px}.online-status{color:var(--green)!important}@media(max-width:900px){.settings-grid,.system-info-grid{grid-template-columns:1fr}}
.account-management{margin-top:16px}.compact-head{padding:0 0 16px}.account-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.account-form label{display:grid;gap:7px;color:#52655d;font-size:12px;font-weight:600}.account-form input,.account-form select{border:1px solid #dfe7e2;border-radius:4px;padding:10px 11px;color:var(--ink);background:#fff;min-width:0}.account-form-actions{display:flex;gap:8px}.account-table-wrap{margin-top:18px;overflow:auto}.visible-actions{opacity:1}.visible-actions button{background:none;color:#247a55;margin-left:8px;font-size:12px}.visible-actions button[data-account-delete]{color:#bd6b62}@media(max-width:900px){.account-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
.billing-settings{margin-top:24px}.billing-section{border-top:1px solid var(--line);padding-top:18px;margin-top:4px}.billing-section h4{margin:0 0 13px;font-size:14px}.billing-general-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.billing-general-grid label{display:grid;gap:7px;color:#52655d;font-size:12px;font-weight:600}.billing-general-grid input,.machine-rate-row input{border:1px solid #dfe7e2;border-radius:4px;padding:10px 11px;color:var(--ink);background:#fff;min-width:0}.billing-hint{color:var(--muted);font-size:11px;margin:10px 0 0}.billing-subhead{display:flex;justify-content:space-between;align-items:center}.billing-subhead h4{margin-bottom:8px}.machine-rate-head,.machine-rate-row{display:grid;grid-template-columns:minmax(150px,1.2fr) repeat(2,minmax(130px,1fr));gap:12px;align-items:center}.machine-rate-head{padding:8px 0;color:var(--muted);font-size:11px}.machine-rate-row{padding:8px 0;border-top:1px solid #edf1ee}.machine-rate-row strong{font-size:13px}.billing-settings.read-only input{background:#f5f7f5;color:#7d8c85}.billing-empty{color:var(--muted);padding:14px 0}@media(max-width:900px){.billing-general-grid{grid-template-columns:1fr}.machine-rate-head,.machine-rate-row{grid-template-columns:minmax(130px,1fr) repeat(2,minmax(120px,1fr))}}
#baseDataPage.read-only .settings-add,
#baseDataPage.read-only #saveSettingsBtn { display: none; }
.record-text-button{display:block;max-width:180px;padding:0;background:none;color:#596a63;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}.record-text-button:hover,.record-text-button:focus{color:var(--green);text-decoration:underline;outline:none}.record-text-empty{color:#aab4af}.filtered-total{color:var(--green);font-size:13px}.text-preview-card{width:min(560px,calc(100vw - 32px))}.text-preview-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;color:#40534b;max-height:60vh;overflow:auto}.record-table-all{min-width:1450px}.record-table-labor{min-width:1320px}.record-table-machine{min-width:1450px}
.batch-add-button{white-space:nowrap}.batch-settings-card{width:min(600px,calc(100vw - 32px))}.batch-settings-field{display:grid;gap:8px;color:#52655d;font-size:13px;font-weight:600}.batch-settings-field textarea{width:100%;resize:vertical;border:1px solid #dfe7e2;border-radius:5px;padding:12px;color:var(--ink);line-height:1.7;outline:none}.batch-settings-field textarea:focus{border-color:#72ad8c;box-shadow:0 0 0 3px #eaf5ee}.batch-settings-hint{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.6}@media(max-width:1150px){.settings-add{flex-wrap:wrap}.settings-add input{min-width:180px}}
.attendance-table{min-width:1450px}
.attendance-tools{flex-wrap:wrap;justify-content:flex-end}.attendance-tools select{min-width:132px}.attendance-date-group td{padding:0!important;border-top:1px solid #d9e7de;border-bottom:1px solid #d9e7de;background:#f0f7f3}.attendance-date-group div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 16px;color:#52685e}.attendance-date-group strong{color:var(--green);font-size:14px}.attendance-date-group span{font-size:12px;color:#72837b}.attendance-date-group+.row td{border-top:0}@media(max-width:900px){.attendance-panel>.panel-head{display:block}.attendance-tools{justify-content:flex-start;margin-top:14px}.attendance-tools select{flex:1;min-width:140px}.attendance-date-group div{align-items:flex-start;flex-direction:column;gap:4px}}
.table-column-head{display:grid;gap:6px;min-width:82px}.table-column-head>span{white-space:nowrap}.table-column-head select{width:100%;min-width:72px;max-width:150px;border:1px solid #dfe7e2;border-radius:4px;background:#fff;color:#66776f;padding:5px 22px 5px 7px;font-size:11px;font-weight:400;outline:none}.table-column-head select:focus{border-color:#72ad8c;box-shadow:0 0 0 2px #eaf5ee}thead th{vertical-align:top}
.batch-select-column{width:42px;min-width:42px;text-align:center!important;padding-left:10px!important;padding-right:10px!important}.batch-select-column input{width:15px;height:15px;accent-color:var(--green);cursor:pointer}.selected-row td{background:#f2f8f4}.batch-delete-bar{display:flex;align-items:center;gap:10px;color:#687a72;font-size:12px}.batch-delete-bar button{background:#fff1ef;color:#b34f46;border:1px solid #efd1cd;border-radius:4px;padding:7px 11px;font-size:12px;font-weight:600}.batch-delete-bar button:disabled{opacity:.45;cursor:not-allowed}.attendance-batch-footer{justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--line)}
.settings-tabs{display:flex;gap:6px;margin:0 0 16px;padding:5px;width:max-content;background:#edf3ef;border-radius:7px}.settings-tab{background:transparent;color:#718078;padding:9px 18px;border-radius:5px;font-weight:600}.settings-tab.active{background:#fff;color:var(--green);box-shadow:0 2px 8px rgba(36,78,58,.09)}.settings-view{margin-top:0}.billing-settings,.account-management{margin-top:0}.billing-settings>.panel-head,.account-management>.panel-head{padding:0 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}.billing-section{margin-top:0;padding:18px 0 4px}.billing-section+.billing-section{margin-top:16px}.billing-general-grid label{background:#f8faf8;border:1px solid #edf1ee;border-radius:6px;padding:13px}.billing-general-grid input{margin-top:3px}.machine-rate-head{background:#f8faf8;border-radius:5px;padding:9px 12px}.machine-rate-row{padding:10px 12px}.system-info-grid.settings-view{margin-top:0}.account-toolbar{display:flex;gap:9px;align-items:center}.settings-search{display:flex;align-items:center;gap:5px;border:1px solid #dfe7e2;background:#fff;border-radius:5px;padding:0 10px;color:#9aa7a1;width:230px}.settings-search input{border:0;outline:0;padding:10px 3px;min-width:0;width:100%;color:var(--ink)}.account-table-wrap{margin-top:0;border:1px solid var(--line);border-radius:6px;overflow:auto}.account-table{min-width:720px}.account-table th{background:#f8faf8}.account-table th:last-child,.account-table td:last-child{text-align:right}.role-badge,.account-type-badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px}.role-badge.admin{background:#e8f5ed;color:#247a55}.role-badge.user{background:#edf2f6;color:#5c7180}.account-type-badge{background:#f1f4f2;color:#687870}.account-type-badge.built-in{background:#fff5df;color:#a97319}.account-actions{display:inline-flex;gap:12px}.account-actions button{background:none;color:var(--green);padding:4px 0;font-size:12px}.account-actions button[data-account-delete]{color:#bd5f56}.protected-account{color:#9aa7a1;font-size:11px}.account-empty{text-align:center!important;color:var(--muted);padding:36px!important}.account-protection-note,.account-form-help{font-size:11px;color:var(--muted);line-height:1.6}.account-protection-note{margin:12px 0 0}.account-modal-card{width:min(650px,calc(100vw - 32px))}.account-modal-card .form-grid{margin-top:4px}.account-form-help{background:#f6faf7;border-radius:5px;padding:10px 12px;margin-top:16px}@media(max-width:1100px){.account-management>.panel-head{align-items:flex-start;gap:14px}.account-toolbar{flex-wrap:wrap;justify-content:flex-end}.settings-search{width:210px}}@media(max-width:900px){.settings-tabs{width:100%;flex-wrap:wrap}.settings-tab{flex:1}.account-management>.panel-head{display:block}.account-toolbar{justify-content:flex-start;margin-top:14px}.settings-search{width:100%}}
.page-actions{display:flex;gap:10px}.ai-entry-card{width:min(980px,calc(100vw - 32px))}.ai-template{margin-bottom:14px;border:1px solid #dce9e1;border-radius:7px;background:#f7fbf8;color:#52655d}.ai-template summary{cursor:pointer;padding:11px 13px;font-weight:700;color:#315f48}.ai-template[open] summary{border-bottom:1px solid #e2ebe5}.ai-template-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px 0;font-size:12px}.ai-template-head div{display:flex;gap:7px;flex:none}.ai-template-head button{padding:7px 10px}.ai-template pre{margin:11px 13px;padding:12px;border:1px solid #e1e9e4;border-radius:5px;background:#fff;white-space:pre-wrap;font:12px/1.65 Consolas,"Microsoft YaHei",sans-serif;color:#34463d}.ai-template ul{margin:0 13px 12px;padding-left:20px;font-size:11px;line-height:1.8}.ai-source-section label{display:grid;gap:8px;color:#52655d;font-size:13px;font-weight:600}.ai-source-section textarea{width:100%;resize:vertical;border:1px solid #dfe7e2;border-radius:6px;padding:12px;line-height:1.7;color:var(--ink);outline:none}.ai-source-section textarea:focus{border-color:#72ad8c;box-shadow:0 0 0 3px #eaf5ee}.ai-recognize-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:12px}.ai-recognize-row .muted{font-size:12px}.ai-warnings{margin:16px 0 0;padding:11px 13px;border:1px solid #f0d49d;background:#fff8e8;color:#8b681f;border-radius:5px;display:grid;gap:6px;font-size:12px}.ai-draft-section{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.ai-draft-head,.ai-draft-card-head{display:flex;justify-content:space-between;align-items:center}.ai-draft-head h4{margin:0 0 4px;font-size:15px}.ai-review-tip{font-size:11px;color:#a16f19;background:#fff6e1;padding:5px 9px;border-radius:999px}.ai-draft-rows{display:grid;gap:12px;margin-top:14px}.ai-draft-card{border:1px solid #e3ebe6;border-radius:7px;padding:14px;background:#fbfcfb}.ai-draft-card-head{margin-bottom:12px}.ai-draft-card-head button{background:none;color:#bd5f56;font-size:12px}.ai-draft-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.ai-draft-grid label{display:grid;gap:6px;color:#687870;font-size:11px;font-weight:600}.ai-draft-grid input,.ai-draft-grid select{width:100%;min-width:0;border:1px solid #dfe7e2;border-radius:4px;background:#fff;padding:9px 10px;color:var(--ink)}.ai-draft-grid .ai-wide{grid-column:span 2}.ai-confidence{font-size:10px;color:var(--muted);margin-top:10px}.warning-status{color:#b27b19!important}.primary:disabled,.secondary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1000px){.ai-draft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.page-actions{flex-wrap:wrap}.ai-template-head{align-items:flex-start;flex-direction:column}.ai-recognize-row{align-items:flex-start;flex-direction:column}.ai-draft-grid{grid-template-columns:1fr}.ai-draft-grid .ai-wide{grid-column:auto}}
.repair-table{min-width:1500px}.repair-tools{flex-wrap:wrap;justify-content:flex-end}.repair-tools select{min-width:125px;padding:9px 10px;color:#66776f;border:1px solid #dfe7e2;border-radius:4px;background:#fff}.repair-footer{display:flex;align-items:center;gap:18px;padding:14px 22px;color:#8a9992;font-size:11px;border-top:1px solid var(--line)}.repair-footer>.batch-delete-bar{margin-left:auto}.repair-totals{display:flex;align-items:center;gap:18px;margin-left:auto}.repair-totals strong{color:#52685e;font-size:12px}.repair-grand-total{padding-left:16px;border-left:1px solid #dfe7e2;color:#315f48;font-weight:700}.repair-grand-total strong{color:var(--green);font-size:14px}.repair-modal-card{width:min(720px,calc(100vw - 32px))}@media(max-width:1100px){.repair-panel>.panel-head{align-items:flex-start;gap:14px}.repair-tools{justify-content:flex-end}.repair-footer{align-items:flex-start;flex-wrap:wrap}.repair-footer>.batch-delete-bar{margin-left:0}.repair-totals{width:100%;margin-left:0;justify-content:flex-end}}@media(max-width:900px){.repair-panel>.panel-head{display:block}.repair-tools{justify-content:flex-start;margin-top:14px}.repair-tools .search-box{width:100%}.repair-tools select{flex:1}.repair-totals{justify-content:flex-start;flex-wrap:wrap}}
.export-options-card{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto}.export-title-field{display:grid;gap:7px;margin:16px 0 10px;color:#52655d;font-weight:600}.export-title-field input,.export-column-row input[type=text],.export-column-row input:not([type]){width:100%;border:1px solid #dfe7e2;border-radius:4px;padding:9px 10px;color:var(--ink);background:#fff}.export-columns-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px;font-weight:700}.export-columns-head>div{display:flex;gap:7px}.export-columns-head .secondary,.export-extra .secondary{padding:7px 10px}.export-column-rows{max-height:47vh;overflow:auto;border:1px solid var(--line);border-radius:5px}.export-column-row{display:grid;grid-template-columns:34px minmax(120px,1fr) 52px 100px;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line)}.export-column-row:last-child{border-bottom:0}.export-column-check{display:flex;justify-content:center}.export-column-check input{width:17px;height:17px;accent-color:var(--green)}.export-column-origin{font-size:11px;color:var(--muted)}.export-column-actions{display:flex;gap:4px}.export-column-actions button{background:#f2f6f3;color:#496252;border-radius:4px;padding:5px 8px}.export-column-actions button:disabled{opacity:.35;cursor:default}.export-column-default{grid-column:2/5}.export-extra{display:flex;align-items:center;gap:12px;margin:12px 0}.export-options-card .modal-footer{margin-top:16px}@media(max-width:600px){.export-column-row{grid-template-columns:26px minmax(100px,1fr) 38px 92px;gap:5px}.export-extra{align-items:flex-start;flex-direction:column}}
.record-date-sort{border:0;background:none;color:inherit;font:inherit;font-weight:700;padding:0;white-space:nowrap}.record-date-sort:hover{text-decoration:underline;color:var(--green)}.serial-settings-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}.serial-settings-row label{display:grid;gap:7px;color:#52655d;font-size:13px;font-weight:600}.serial-settings-row input{border:1px solid #dfe7e2;border-radius:4px;padding:10px 12px;min-width:170px}.serial-book-list{display:grid;gap:8px;margin-top:17px}.serial-book-item{display:flex;gap:18px;align-items:center;border:1px solid var(--line);border-radius:5px;padding:11px 14px;color:#52655d}.serial-book-item strong{color:var(--ink)}
.serial-overwrite-option{display:flex;align-items:center;gap:8px;font-weight:600;color:#52655d}.serial-overwrite-option input{width:17px;height:17px;accent-color:var(--green)}
.export-merge-option{display:flex;align-items:center;gap:8px;margin-top:16px;font-weight:600;color:#52655d}.export-merge-option input{width:17px;height:17px;accent-color:var(--green)}.export-merge-hint{font-size:12px;line-height:1.6}
.export-filename-field{margin-top:16px}.export-filename-field>label{font-weight:600;color:#52655d}.export-filename-row{display:flex;gap:8px;margin-top:7px}.export-filename-row input{flex:1;min-width:0;border:1px solid #dfe7e2;border-radius:4px;padding:9px 10px;color:var(--ink)}.export-filename-row button{white-space:nowrap}.export-filename-field p{font-size:12px;line-height:1.6;margin-top:7px}
.combined-export-settings { padding:16px; margin:14px 0; border:1px solid #dce6ec; border-radius:10px; background:#f6f9fb; }
.combined-export-grid { display:flex; flex-wrap:wrap; gap:14px; }
.combined-admin-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; }
.combined-administrator { padding:14px; margin:12px 0; border:1px solid #dfe7e2; border-radius:8px; background:#f8fbf9; }
.combined-administrator .combined-admin-heading { margin:0 0 12px; }
.combined-administrator .combined-export-grid label { flex:1 1 180px; min-width:0; }
.combined-administrator .combined-export-grid .combined-admin-mode { flex-basis:100%; }
.combined-export-grid label { display:flex; flex-direction:column; gap:7px; flex:1 1 180px; font-size:13px; font-weight:600; }
.combined-export-grid input,.combined-export-grid select { width:100%; min-width:0; border:1px solid #dfe7e2; border-radius:4px; padding:9px 10px; color:var(--ink); background:#fff; }
  .combined-plot-picker { margin:13px 0; padding:11px 12px; border:1px solid #dfe7e2; border-radius:7px; background:#fff; }
  .combined-plot-picker-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; color:#52655d; font-size:13px; }
  .combined-plot-master,.combined-plot-check { display:flex; align-items:center; gap:7px; font-weight:500; }
  .combined-plot-master input,.combined-plot-check input { width:16px; height:16px; accent-color:var(--green); }
  .combined-plot-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:8px 12px; }
  .combined-plot-check { min-width:0; color:#52655d; font-size:13px; }
  .combined-plot-check span { overflow-wrap:anywhere; }
.combined-export-settings .muted { font-size:12px; line-height:1.7; margin:10px 0; }
  .combined-allocation-items { margin:8px 0 12px; padding:12px; border:1px solid #e1e9e4; border-radius:7px; background:#fff; }
  .allocation-checkbox-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:9px 14px; }
  .allocation-checkbox-grid label { display:flex; align-items:center; gap:7px; color:#52655d; font-size:13px; }
  .allocation-checkbox-grid input { width:16px; height:16px; accent-color:var(--green); }
.analysis-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);padding:18px;border-radius:6px}.analysis-filters label{display:grid;gap:7px;font-size:12px;color:#52655d}.analysis-filters input,.analysis-filters select{padding:9px;border:1px solid #dfe7e2;border-radius:4px;background:#fff;color:var(--ink)}.analysis-note{font-size:12px;color:#75867d;line-height:1.7}.analysis-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:20px}.analysis-card{background:#fff;border:1px solid var(--line);padding:18px;text-align:left;border-radius:6px}.analysis-card span{display:block;color:#75867d;font-size:12px}.analysis-card strong{display:block;font-size:21px;color:var(--green);margin:10px 0}.analysis-card small{font-size:11px;color:#75867d}.analysis-card:hover{border-color:#72ad8c}.analysis-labor-summary{display:flex;flex-wrap:wrap;gap:20px;padding:18px;margin-top:14px;background:#eaf5ee;border-radius:6px;font-size:12px;line-height:1.8}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.analysis-grid .panel-head{flex-wrap:wrap;gap:8px}.analysis-chart{padding:4px 22px 20px;max-height:360px;overflow:auto}.analysis-bar{display:grid;grid-template-columns:90px minmax(80px,1fr) 120px;gap:10px;align-items:center;width:100%;background:none;padding:10px 0;text-align:left;color:var(--ink);border-bottom:1px solid #edf1ee;font-size:12px}.analysis-bar strong{text-align:right;font-weight:500}.analysis-bar-track{height:18px;display:flex;border-radius:3px;background:#f0f4f1;overflow:hidden}.analysis-bar-track i{height:100%;background:#247a55}.analysis-bar-track i:nth-child(2){background:#78b991}.analysis-bar-track i:nth-child(3){background:#638fba}.analysis-bar-track i:nth-child(4){background:#d5a759}.analysis-legend{display:flex;gap:14px;padding:0 22px 14px;font-size:11px;color:#64746d}.analysis-legend span:before{content:'';display:inline-block;width:9px;height:9px;background:#247a55;margin-right:5px}.analysis-legend span:nth-child(2):before{background:#78b991}.analysis-legend span:nth-child(3):before{background:#638fba}.analysis-legend span:nth-child(4):before{background:#d5a759}.analysis-table-wrap{overflow:auto;max-height:420px}.analysis-table-wrap table{width:100%;border-collapse:collapse;white-space:nowrap}.analysis-table-wrap th,.analysis-table-wrap td{padding:12px 15px;border-bottom:1px solid #edf1ee;text-align:right;font-size:12px}.analysis-table-wrap th{background:#f5f8f6;color:#75867d;position:sticky;top:0}.analysis-table-wrap th:first-child,.analysis-table-wrap td:first-child{text-align:left}.analysis-link{background:none;color:var(--green);padding:0;text-align:left;text-decoration:underline}.analysis-empty{padding:25px;text-align:center;color:#80908b}.analysis-detail-card{width:min(1100px,calc(100vw - 32px));max-height:90vh;overflow:auto}.analysis-detail-card td{white-space:normal;min-width:90px;max-width:280px;overflow-wrap:anywhere}.analysis-pagination{display:flex;justify-content:center;align-items:center;gap:18px;padding-top:16px}.analysis-pagination button:disabled{opacity:.4}@media(max-width:1200px){.analysis-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-grid{grid-template-columns:1fr}}@media(max-width:650px){.analysis-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-bar{grid-template-columns:80px 1fr 100px}.analysis-card strong{font-size:17px}#analysisPage .page-heading{align-items:flex-start;gap:12px}}
.analysis-table-wrap table{min-width:0}.analysis-detail-card table{min-width:1000px}
.billing-general-grid{grid-template-columns:repeat(5,minmax(130px,1fr))}.billing-general-grid select,.machine-rate-row select,.local-worker-rate-row select,.local-worker-apply input{border:1px solid #dfe7e2;border-radius:4px;padding:10px 11px;color:var(--ink);background:#fff;min-width:0}.machine-rate-head,.machine-rate-row{grid-template-columns:minmax(120px,1fr) repeat(4,minmax(125px,1fr));min-width:780px}.machine-rate-rows{overflow-x:auto}.local-worker-rate-rows{display:grid;gap:8px;overflow-x:auto}.local-worker-rate-row{display:grid;grid-template-columns:minmax(100px,1fr) repeat(4,minmax(105px,1fr)) minmax(175px,1.2fr);gap:10px;align-items:end;min-width:850px;padding:11px 12px;border:1px solid #edf1ee;border-radius:5px;background:#fff}.local-worker-rate-row>strong{align-self:center;color:#29443a;font-size:13px}.local-worker-rate-row>label,.local-worker-apply>label{display:grid;gap:6px;color:#52655d;font-size:11px;font-weight:600}.local-worker-rate-row input{width:100%;border:1px solid #dfe7e2;border-radius:4px;padding:9px 10px;color:var(--ink);background:#fff;min-width:0}.local-worker-apply{display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px}.local-worker-apply .secondary{padding:9px 10px;white-space:nowrap}.local-worker-apply-count{grid-column:1/-1;color:var(--muted);font-size:10px;text-align:right;min-height:12px}.billing-general-grid select:disabled,.machine-rate-row select:disabled,.local-worker-rate-row input:disabled,.local-worker-rate-row select:disabled{background:#f7f9f7;color:#86948d}@media(max-width:1250px){.billing-general-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}}@media(max-width:800px){.billing-general-grid{grid-template-columns:repeat(2,minmax(125px,1fr))}}

/* Fee inputs show only prices used by the selected method. */
#billingSettings input:disabled,#billingSettings select:disabled{background:#f0f4f1;color:#89968f;opacity:1;cursor:default}
#billingSettings button:disabled{opacity:.5;cursor:default}
.machine-rate-head,.machine-rate-row{min-width:0;grid-template-columns:minmax(100px,1fr) minmax(135px,1.2fr) repeat(3,minmax(0,1fr))}
.machine-rate-row label{display:grid;gap:6px;min-width:0}.machine-rate-row input,.machine-rate-row select{width:100%}.machine-field-label{display:none;font-size:11px;color:#52655d}
.local-worker-rate-row{min-width:0;grid-template-columns:80px minmax(135px,1.2fr) repeat(3,minmax(0,1fr)) minmax(185px,1.6fr)}
.local-worker-rate-row>label,.local-worker-apply>label{min-width:0}.local-worker-rate-row select{width:100%}.local-worker-apply{grid-template-columns:minmax(0,1fr);align-items:end}.local-worker-apply button{width:100%}.local-worker-apply small{grid-column:auto}
@media(max-width:1100px){.machine-rate-head{display:none}.machine-field-label{display:block}.machine-rate-row,.local-worker-rate-row{grid-template-columns:repeat(4,minmax(0,1fr))}.machine-rate-row>strong,.local-worker-rate-row>strong{grid-column:1/-1}.local-worker-apply{grid-column:1/-1;grid-template-columns:minmax(180px,1fr) auto auto;gap:12px;align-items:end}.local-worker-apply small{padding-bottom:10px}.billing-general-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.billing-general-grid,.machine-rate-row,.local-worker-rate-row{grid-template-columns:repeat(2,minmax(0,1fr))}.local-worker-apply{grid-template-columns:minmax(0,1fr) auto}.local-worker-apply small{grid-column:1/-1;padding-bottom:0}.billing-subhead{align-items:flex-start;gap:8px;flex-wrap:wrap}}
.billing-apply-card{width:min(680px,calc(100vw - 32px))}.billing-apply-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.billing-apply-totals>div{background:#f3f8f4;padding:16px;border-radius:6px}.billing-apply-totals dt{font-size:12px;color:#73857a}.billing-apply-totals dd{margin:8px 0 0;font-size:20px;color:var(--green);font-weight:700;overflow-wrap:anywhere}.billing-apply-card>.muted{font-size:12px;line-height:1.8}@media(max-width:650px){.billing-apply-totals{grid-template-columns:1fr}.billing-apply-totals>div{padding:10px 16px}}
/* Allow the settings page to fit narrow screens without the record table width. */
.main-content:has(#settingsPage:not(.hidden)){min-width:0}
#billingSettings>.panel-head{flex-wrap:wrap;gap:12px}
@media(max-width:650px){.app-shell:has(#settingsPage:not(.hidden)) .sidebar{flex:0 0 148px;width:148px;padding:22px 10px}.main-content:has(#settingsPage:not(.hidden)){padding:0 14px 24px}.main-content:has(#settingsPage:not(.hidden)) .topbar{height:auto;min-height:68px;gap:8px;flex-wrap:wrap}}
@media(max-width:450px){#billingSettings .billing-general-grid,#billingSettings .machine-rate-row,#billingSettings .local-worker-rate-row{grid-template-columns:minmax(0,1fr)}#billingSettings .local-worker-apply{grid-template-columns:minmax(0,1fr)}#billingSettings .local-worker-apply small{grid-column:auto}}
