:root{--ink:#162024;--muted:#68757b;--line:#dbe2e4;--panel:#fff;--bg:#f4f7f6;--teal:#087f75;--teal-dark:#08665f;--yellow:#f2c94c;--red:#b42318}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;letter-spacing:0}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);height:100vh}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fbfcfc;padding:20px 14px}.brand{display:flex;align-items:center;gap:11px;padding:0 7px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:var(--teal);color:#fff;font-weight:800}.brand div{display:flex;flex-direction:column}.brand strong{font-size:15px}.brand small{color:var(--muted);font-size:12px}.login button[type=submit],.upload-button{display:flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:6px;background:var(--teal);color:#fff;font-weight:700;padding:11px 15px;margin:24px 6px 20px;cursor:pointer}.login button:hover,.upload-button:hover{background:var(--teal-dark)}.history-title{display:flex;justify-content:space-between;align-items:center;padding:0 8px 9px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.error button,.icon{border:0;background:transparent;padding:5px;cursor:pointer;color:var(--muted)}.job-list{overflow:auto;display:flex;flex-direction:column;gap:3px}.job{border:0;background:transparent;text-align:left;border-radius:6px;padding:10px;display:flex;gap:9px;align-items:flex-start;color:var(--muted);cursor:pointer}.job.active,.job:hover{background:#e8f2f0;color:var(--ink)}.job span{min-width:0;display:flex;flex-direction:column;gap:3px}.job strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job small{font-size:11px;color:var(--muted)}.logout{margin-top:auto;border:0;background:transparent;color:var(--muted);padding:10px;display:flex;gap:9px;cursor:pointer}.app-shell>main{position:relative;overflow:auto;padding:34px 44px}.drop-zone{min-height:calc(100vh - 68px);border:1px dashed #aebbbc;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:#fafcfc}.drop-zone.dragging{border-color:var(--teal);background:#edf7f5}.upload-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:8px;background:#e0f1ee;color:var(--teal)}.drop-zone h1{font-size:24px;margin:18px 0 5px}.drop-zone p{color:var(--muted);margin:0 0 22px}.archive,.drop-zone button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 14px;font-weight:700;cursor:pointer}.drop-overlay{position:fixed;inset:20px;left:300px;z-index:10;background:rgba(237,247,245,.94);border:2px dashed var(--teal);display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;color:var(--teal)}.error{max-width:1100px;margin:0 auto 12px;background:#fef3f2;color:var(--red);border:1px solid #fecdca;padding:10px 12px;display:flex;align-items:center;gap:8px;border-radius:6px}.error button{margin-left:auto;color:var(--red)}.workspace{max-width:1100px;margin:0 auto}.workspace>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.workspace h1{font-size:23px;margin:3px 0;overflow-wrap:anywhere}.eyebrow{font-size:12px;color:var(--teal);font-weight:800;margin:0;text-transform:uppercase}.status{display:flex;gap:6px;align-items:center;padding:7px 10px;border-radius:6px;background:#eef1f2;color:var(--muted);font-size:13px;font-weight:700}.status.complete{background:#dff5e9;color:#167547}.status.failed{background:#fee4e2;color:var(--red)}.progress-section{padding:32px 0}.progress-copy{display:flex;justify-content:space-between;margin-bottom:9px}.progress{height:7px;background:#e2e7e8;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:var(--teal);transition:width .3s}.summary{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.summary div{padding:22px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.summary div:last-child{border:0}.summary small{color:var(--muted)}.summary strong{font-size:20px}.chat,.outputs{padding:28px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-heading h2{font-size:17px;margin:0 0 4px}.section-heading p{font-size:13px;color:var(--muted);margin:0}.archive{display:flex;align-items:center;gap:7px}.output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.output-grid>button{display:flex;align-items:center;gap:11px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:15px;cursor:pointer}.output-grid>button:hover{border-color:var(--teal)}.output-grid span{display:flex;flex-direction:column;gap:3px}.output-grid small{color:var(--muted)}.download-arrow{margin-left:auto;transform:rotate(180deg)}.messages{display:flex;flex-direction:column;gap:8px;max-height:270px;overflow:auto;margin-bottom:12px}.message{max-width:75%;padding:10px 12px;border-radius:6px;background:#e8f2f0;align-self:flex-start;font-size:14px}.message.user{background:#26383d;color:#fff;align-self:flex-end}.empty-chat{font-size:13px;color:var(--muted)}.chat form{display:grid;grid-template-columns:1fr 42px;border:1px solid var(--line);background:#fff;border-radius:6px;overflow:hidden}.chat input{border:0;outline:0;padding:12px}.chat form button{border:0;background:var(--teal);color:#fff;display:grid;place-items:center;cursor:pointer}.chat form button:disabled{background:#b9c5c5}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:#edf2f1}.login{width:min(390px,100%);background:#fff;border:1px solid var(--line);padding:30px;border-radius:8px;box-shadow:0 12px 30px rgba(28,49,52,.08)}.login .brand{padding:0}.login h1{font-size:23px;margin:32px 0 20px}.login label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;margin-top:14px}.login input{border:1px solid var(--line);border-radius:6px;padding:11px;outline:0}.login input:focus{border-color:var(--teal)}.login button[type=submit]{width:100%;margin:22px 0 0}.form-error{color:var(--red);font-size:13px}@media(max-width:760px){.app-shell{grid-template-columns:1fr;height:auto}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:13px}.history-title,.job-list{display:none}.upload-button{margin:14px 0 0}.logout{position:absolute;right:12px;top:12px;font-size:0}.app-shell>main{padding:20px 15px;min-height:calc(100vh - 123px)}.drop-zone{min-height:calc(100vh - 163px);text-align:center;padding:20px}.workspace>header{align-items:flex-start;gap:15px}.summary{grid-template-columns:1fr 1fr}.summary div:nth-child(2){border-right:0}.summary div:nth-child(-n+2){border-bottom:1px solid var(--line)}.output-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;gap:12px}.drop-overlay{left:10px;inset:10px}.message{max-width:90%}}.mode-switch{display:grid;grid-template-columns:1fr 1fr;grid-gap:3px;gap:3px;margin:18px 6px 0;padding:3px;background:#e8eeed;border-radius:6px}.mode-switch button{border:0;background:transparent;padding:7px 5px;border-radius:4px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.mode-switch button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(20,40,40,.12)}.mode-switch.three{grid-template-columns:repeat(3,1fr)}.mode-switch.three button{font-size:12px;padding:9px 4px}.mode-switch.four{grid-template-columns:repeat(2,1fr)}.mode-switch.four button{font-size:12px;padding:8px 4px}.mode-switch.five{grid-template-columns:repeat(2,1fr)}.mode-switch.five button{font-size:12px;padding:8px 4px}.mode-switch.five button:last-child{grid-column:1/-1}.mode-switch.six{grid-template-columns:repeat(2,1fr)}.mode-switch .docs-nav-link,.mode-switch.six button{font-size:12px;padding:8px 4px}.mode-switch .docs-nav-link{grid-column:1/-1;display:block;text-align:center;color:var(--teal);font-weight:700;text-decoration:none;border-top:1px solid var(--line)}.mode-switch .docs-nav-link:hover{background:#e8f2f0}.reconcile-picker{display:grid;grid-gap:8px;gap:8px;margin-bottom:14px}.reconcile-picker>button{min-height:42px;border:1px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;color:#334155;overflow-wrap:anywhere}.reconcile-picker>.upload-button{background:#0f8c80;color:#fff;border-color:#0f8c80}.reconcile-picker>.upload-button:disabled{opacity:.45}.processed-at{display:block;margin-top:5px;color:#64748b;font-size:13px}.outputs .output-grid button strong{overflow-wrap:anywhere}.payroll-mark{background:#a15c17}.output-grid.single{grid-template-columns:minmax(0,520px)}.payroll-file-picker{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.payroll-file-picker>div{display:grid;grid-gap:5px;gap:5px;max-height:154px;overflow:auto}.payroll-file-picker>div>button{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0;padding:7px 8px;border:1px solid #d7e2df;background:#fff;color:#334155;font-size:12px;text-align:left}.payroll-file-picker>div>button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payroll-file-picker .upload-button{margin-top:0}.production-cost-picker{margin-top:18px}.production-cost-picker>button{min-width:0}.production-cost-picker>button svg{flex-shrink:0}.production-cost-picker>button span{min-width:0;overflow-wrap:anywhere}.production-month-picker{display:grid;grid-gap:5px;gap:5px;max-height:330px;overflow-y:auto;padding:8px;border:1px solid var(--line);background:#fff}.production-month-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink);font-size:12px}.production-month-actions button{border:0;padding:4px;background:transparent;color:var(--teal);font:inherit;font-weight:700;cursor:pointer}.production-month-option{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:7px 4px;border-top:1px solid #edf1f0;color:var(--ink);cursor:pointer}.production-month-option input{width:16px;height:16px;flex:0 0 16px;margin:2px 0 0;accent-color:var(--teal)}.production-month-option>span{display:grid;grid-gap:2px;gap:2px;min-width:0}.production-month-option strong{font-size:13px}.production-month-option small{color:var(--muted);font-size:11px;font-weight:400;overflow-wrap:anywhere}.production-month-warning{color:#8b5b10;font-size:12px;line-height:1.4}.production-cost .summary{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(190px,1.5fr)}.production-cost .summary>div{min-width:0}.production-cost .summary strong{overflow-wrap:anywhere}.production-cost .drop-zone button{margin-top:18px}.production-cost-notice{margin:16px 0;padding:12px;border-left:3px solid #b7791f;background:#fff8e8;color:#724b17;line-height:1.6;overflow-wrap:anywhere}.payroll-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:3px;gap:3px;margin:10px 6px 16px;padding:3px;background:#e8eeed;border-radius:5px}.payroll-tabs button{min-height:36px;border:0;border-radius:3px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.payroll-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(20,40,40,.12)}.payroll-tabs.payroll-tabs-three{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-tabs.payroll-tabs-three button{padding-inline:4px;font-size:12px}.attendance-workspace{max-width:980px}.attendance-upload{margin-top:28px}.attendance-run,.attendance-select{width:min(100%,360px)}.attendance-run{margin-top:18px}.attendance-file-list{display:grid;grid-gap:8px;gap:8px;width:min(100%,680px);margin-top:16px}.attendance-file-list>div{display:flex;align-items:center;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:4px;background:#fff}.attendance-file-list>div>span{flex:1 1;min-width:0;overflow-wrap:anywhere;color:var(--ink)}.attendance-file-list>div>button{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:0;background:transparent;color:var(--muted);cursor:pointer}.attendance-success{display:flex;align-items:center;gap:8px;margin-top:18px;padding:12px;border-left:3px solid #14866d;background:#e8f5f0;color:#12634f}@media (max-width:1020px){.production-cost .summary{grid-template-columns:repeat(2,minmax(0,1fr))}.production-cost .summary>div:nth-child(2){border-right:0}.production-cost .summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}.reconcile-mode{display:grid;grid-template-columns:1fr 1fr;margin:18px 6px 0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.reconcile-mode button{border:0;background:#fff;color:var(--muted);padding:9px 6px;font-size:11px;font-weight:700;cursor:pointer}.reconcile-mode button+button{border-left:1px solid var(--line)}.reconcile-mode button.active{background:#dff1ee;color:var(--teal-dark)}