:root{color:#1b2528;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;border-radius:6px;background:#11665f;color:#fff;cursor:pointer;font-weight:700;min-height:42px;padding:0 18px}button:disabled{cursor:not-allowed;opacity:.55}button.secondary{background:#dbe4df;color:#1d3636}button.danger{background:#ffe1d8;color:#8a260d}button.compact{min-height:36px;padding:0 12px}.link-button{align-self:flex-start;background:transparent;color:#11665f;min-height:auto;padding:0}.auth-layout{align-items:center;background:linear-gradient(120deg,#11665f1f,#b25b221a),#f5f7f4;display:flex;min-height:100vh;padding:32px}.auth-panel{background:#fff;border:1px solid #d9e1dc;border-radius:8px;box-shadow:0 18px 45px #22302d1f;display:flex;flex-direction:column;gap:22px;margin:0 auto;max-width:430px;padding:32px;width:100%}.auth-panel.wide{max-width:720px}.eyebrow{color:#b25b22;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 4px;text-transform:uppercase}h1,h2,p{margin:0}h1{font-size:2rem;line-height:1.15}h2{font-size:1.05rem}form{display:flex;flex-direction:column;gap:16px}label{color:#425050;display:flex;flex-direction:column;font-size:.88rem;font-weight:700;gap:6px}input,select,textarea{background:#fff;border:1px solid #cfd9d4;border-radius:6px;color:#182525;min-height:42px;padding:9px 11px;width:100%}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#11665f;box-shadow:0 0 0 3px #11665f29;outline:none}.two-column,.entry-form{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.full,.form-actions{grid-column:1 / -1}.form-actions{display:flex;gap:12px;justify-content:flex-end}.alert{border-radius:6px;font-weight:700;padding:10px 12px}.alert.error{background:#ffe8e1;color:#8a260d}.alert.success{background:#e4f4ec;color:#116144}.loading-screen{align-items:center;color:#314240;display:flex;gap:12px;justify-content:center;min-height:100vh}.spinner{animation:spin .8s linear infinite;border:3px solid #d4dfda;border-top-color:#11665f;border-radius:50%;display:inline-block;height:24px;width:24px}.app-shell{min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid #d9e1dc;display:flex;justify-content:space-between;padding:20px 32px}.user-menu{align-items:center;display:flex;gap:14px;font-weight:700;position:relative}.user-menu-trigger{align-items:center;display:inline-flex;gap:8px}.user-dropdown{background:#fff;border:1px solid #d9e1dc;border-radius:8px;box-shadow:0 16px 36px #22302d29;display:flex;flex-direction:column;min-width:180px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:20}.user-dropdown button{background:transparent;color:#243332;justify-content:flex-start;min-height:38px;text-align:left}.user-dropdown button:hover{background:#eef3ef}.modal-backdrop{align-items:flex-start;background:#1825255c;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:96px 24px 24px;position:fixed;z-index:30}.modal-panel{background:#fff;border:1px solid #d9e1dc;border-radius:8px;box-shadow:0 24px 70px #1825253d;display:flex;flex-direction:column;gap:18px;max-width:520px;padding:22px;width:min(100%,520px)}.preference-group{border:1px solid #e0e7e3;border-radius:8px;display:flex;flex-direction:column;gap:14px;padding:16px}.preference-group h3{color:#182525;font-size:.95rem;margin:0}.workspace-tabs{align-items:stretch;background:#fff;border-bottom:1px solid #d9e1dc;display:flex;gap:6px;overflow:visible;padding:0 32px}.workspace-tabs button{background:transparent;border-bottom:3px solid transparent;border-radius:0;color:#425050;min-height:48px}.workspace-tabs button.active{border-color:#b25b22;color:#182525}.workspace-tab-menu{align-items:stretch;display:flex;position:relative}.workspace-tab-menu>button{align-items:center;display:flex;gap:6px}.workspace-tab-dropdown{background:#fff;border:1px solid #d9e1dc;border-radius:8px;box-shadow:0 14px 32px #22302d1f;display:flex;flex-direction:column;left:0;min-width:220px;padding:6px;position:absolute;top:calc(100% + 4px);z-index:10}.workspace-tab-dropdown button{border:0;border-radius:6px;justify-content:flex-start;min-height:38px;text-align:left}.workspace-tab-dropdown button:hover{background:#eef5f2}.global-message-area{display:flex;flex-direction:column;gap:8px;margin:0 auto;max-width:1280px;padding:16px 32px 0}.global-message-area:empty{display:none}.workspace{display:grid;gap:24px;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);margin:0 auto;max-width:1280px;padding:28px 32px}.projects-workspace{grid-template-columns:minmax(340px,.72fr) minmax(560px,1.28fr)}.reconciliation-workspace{display:flex;flex-direction:column;max-width:1480px}.reports-workspace{display:flex;flex-direction:column;max-width:1480px;width:100%}.reconciliation-workspace>.alert{width:100%}.reconciliation-subnav,.reports-subnav{width:100%}.reconciliation-empty{align-items:center;display:flex;gap:18px;justify-content:space-between;min-height:110px}.reconciliation-empty>div{display:flex;flex-direction:column;gap:5px}.reconciliation-header{align-items:end;display:grid;gap:18px;grid-template-columns:auto minmax(280px,1fr) auto}.batch-notes{min-width:0}.source-queue-panel{width:100%}.source-queue-panel .section-heading>div,.history-detail .section-heading>div{display:flex;flex-direction:column;gap:3px}.source-queue-panel .section-heading{align-items:end;gap:18px}.auto-fill-control{align-items:end;display:flex;flex-direction:row!important;gap:10px!important}.auto-fill-control label{min-width:280px}.auto-fill-help{background:#f5f7f4;border-left:3px solid #11665f;color:#52605f;font-size:.86rem;margin-bottom:16px;padding:9px 11px}.reconciliation-filters{display:grid;gap:12px;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(150px,1fr));margin-bottom:18px}.reconciliation-source-table{min-width:1060px}.reconciliation-source-table td:first-child{min-width:70px;text-align:center}.reconciliation-source-table td:nth-child(2){min-width:210px}.row-checkbox{height:18px;min-height:18px;width:18px}.selected-row{background:#f0f7f4}.status-pill.partial{background:#fff0d8;color:#83500c}.compact-empty{min-height:96px}.reconciliation-editor-grid{display:grid;gap:24px;grid-template-columns:minmax(560px,1.15fr) minmax(400px,.85fr);width:100%}.allocation-composer,.batch-ledger,.history-list,.history-detail{min-width:0}.selected-allocations{border:1px solid #d9e1dc;border-radius:8px;overflow:hidden}.allocation-heading{align-items:center;background:#f5f7f4;display:flex;justify-content:space-between;padding:10px 12px}.allocation-row{align-items:end;border-top:1px solid #e0e7e3;display:grid;gap:12px;grid-template-columns:minmax(180px,1fr) 110px 130px;padding:12px}.allocation-row>div,.batch-entry>div:first-child,.batch-entry-value{display:flex;flex-direction:column;gap:2px}.allocation-row span,.batch-entry span,.batch-totals span{color:#667574;font-size:.8rem}.batch-totals{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:16px}.batch-totals>div{background:#f5f7f4;border:1px solid #e0e7e3;border-radius:6px;display:flex;flex-direction:column;padding:10px 12px}.batch-totals strong{font-size:1.2rem}.batch-entry-list,.history-detail{display:flex;flex-direction:column;gap:10px}.batch-entry{border:1px solid #e0e7e3;border-radius:8px;display:grid;gap:8px 12px;grid-template-columns:1fr auto;padding:13px}.batch-entry-value{text-align:right}.batch-entry p,.source-provenance,.batch-entry .table-actions{grid-column:1 / -1}.batch-entry p{color:#425050;font-size:.88rem}.source-provenance{display:flex;flex-wrap:wrap;gap:5px}.source-provenance span{background:#eef5f2;border-radius:999px;color:#24423f;font-weight:700;padding:3px 8px}.batch-entry .table-actions{justify-content:flex-end}.reconciliation-history-table{min-width:820px}.history-entry{width:100%}.admin-subnav{background:#fff;border:1px solid #d9e1dc;border-radius:8px;display:flex;gap:6px;grid-column:1 / -1;padding:8px}.admin-subnav button{background:transparent;color:#425050;min-height:38px}.admin-subnav button.active{background:#e8f1ed;color:#182525}.panel-tabs{border-bottom:1px solid #d9e1dc;display:flex;gap:4px;margin:-6px 0 20px}.panel-tabs button{background:transparent;border-bottom:3px solid transparent;border-radius:0;color:#52605f;min-height:42px;padding:0 12px}.panel-tabs button.active{border-color:#b25b22;color:#182525}.panel-tabs button span{background:#edf0ef;border-radius:999px;font-size:.75rem;margin-left:5px;padding:2px 7px}.entry-panel,.entries-panel{background:#fff;border:1px solid #d9e1dc;border-radius:8px;padding:22px}.section-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.section-heading span{color:#667574;font-size:.88rem;font-weight:700}.recorded-time-summary{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:flex-end}.toggle{align-items:center;flex-direction:row;gap:10px;min-height:42px}.toggle input{height:18px;min-height:auto;width:18px}.time-parts{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.time-parts input[type=date]{grid-column:1 / -1;min-width:0}.time-parts select{min-width:0}.empty-state{align-items:center;border:1px dashed #bac8c1;border-radius:8px;color:#667574;display:flex;justify-content:center;min-height:180px}.entries-list{display:flex;flex-direction:column;gap:10px}.entry-row{border:1px solid #e0e7e3;border-radius:8px;display:grid;gap:8px 18px;grid-template-columns:minmax(140px,1fr) auto auto;padding:14px}.entry-project{align-self:center}.entry-description,.entry-meta{color:#667574;font-size:.9rem}.entry-description{grid-column:1 / -1;overflow-wrap:anywhere}.entry-meta{align-self:center;display:flex;flex-direction:column;flex-shrink:0;gap:4px;text-align:right}.entry-row .table-actions{align-self:center;flex-shrink:0}.project-table-wrap{overflow-x:auto}.project-list-scroll{max-height:calc(100vh - 250px);overflow:auto;scrollbar-gutter:stable}.project-list-scroll .project-table{border-collapse:separate;border-spacing:0}.project-list-scroll .project-table th{background:#fff;box-shadow:0 1px #e0e7e3;position:sticky;top:0;z-index:3}.project-filter{margin-bottom:18px;max-width:420px}.report-month-control{min-width:180px}.report-table-wrap{max-height:calc(100vh - 250px);max-width:100%;overflow:auto}.monthly-report-table{border-collapse:separate;border-spacing:0;min-width:1880px}.monthly-report-table th,.monthly-report-table td{text-align:right;white-space:nowrap}.monthly-report-table th:first-child,.monthly-report-table td:first-child{left:0;min-width:300px;position:sticky;text-align:left;white-space:normal;width:300px;z-index:2}.monthly-report-table th:nth-child(2),.monthly-report-table td:nth-child(2){left:300px;min-width:90px;position:sticky;width:90px;z-index:2}.monthly-report-table th:nth-child(n+3),.monthly-report-table td:nth-child(n+3){min-width:48px}.monthly-report-table th{background:#fff;box-shadow:0 1px #e0e7e3;position:sticky;top:0;z-index:4}.monthly-report-table th:first-child,.monthly-report-table th:nth-child(2){z-index:5}.monthly-report-table td:first-child,.monthly-report-table td:nth-child(2){background:#fff}.report-project-row td{background:#eef5f2;color:#1d3636;font-weight:800}.report-project-row td:first-child,.report-project-row td:nth-child(2){background:#eef5f2}.report-consultant-row td{background:#e8f1ed;color:#182525;font-weight:900}.report-consultant-row td:first-child,.report-consultant-row td:nth-child(2){background:#e8f1ed}.project-table{border-collapse:collapse;min-width:980px;width:100%}.purchase-order-table{min-width:0;table-layout:fixed}.purchase-order-table .po-number-column{width:12%}.purchase-order-table .po-invoice-column{width:14%}.purchase-order-table .po-issued-column,.purchase-order-table .po-money-column,.purchase-order-table .po-status-column{width:12%}.purchase-order-table .po-actions-column{width:14%}.purchase-order-table th,.purchase-order-table td{padding-left:6px;padding-right:6px}.purchase-order-table th:first-child,.purchase-order-table td:first-child{min-width:0;overflow-wrap:anywhere}.purchase-order-table th:first-child{white-space:nowrap}.purchase-order-table th:nth-child(n+2):nth-child(-n+7),.purchase-order-table td:nth-child(n+2):nth-child(-n+7){white-space:nowrap}.purchase-order-table .table-actions{align-items:stretch;flex-direction:column}.purchase-order-table .table-actions button{width:100%}.user-table{min-width:820px}.project-table th,.project-table td{border-bottom:1px solid #e0e7e3;padding:12px 10px;text-align:left;vertical-align:middle}.project-table th{color:#667574;font-size:.78rem;text-transform:uppercase}.project-table td{color:#2d3d3b;font-size:.9rem}.project-table td:first-child{min-width:190px}.project-table td:first-child span{color:#667574;display:block;font-size:.82rem;margin-top:2px}.status-pill{border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:800;min-width:72px;padding:4px 10px;justify-content:center}.status-pill.active{background:#e4f4ec;color:#116144}.status-pill.inactive{background:#edf0ef;color:#52605f}.table-actions{display:flex;gap:8px}.muted{color:#667574}.assignment-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.assignment-pill{align-items:center;background:#eef5f2;border-radius:999px;color:#24423f;display:inline-flex;font-size:.78rem;font-weight:800;gap:6px;padding:4px 4px 4px 10px}.assignment-pill button{align-items:center;background:#dbe4df;border-radius:999px;color:#24423f;display:inline-flex;font-size:.85rem;height:22px;justify-content:center;min-height:22px;padding:0;width:22px}.assignment-pill.plain{padding-right:10px}.assignment-control{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(150px,1fr) auto;margin-top:8px}.assignment-control select{min-height:36px;padding-bottom:6px;padding-top:6px}.role-picker{display:flex;flex-wrap:wrap;gap:12px 20px}.role-picker .toggle{min-height:32px}.setting-meta{align-items:center;background:#f5f7f4;border:1px solid #e0e7e3;border-radius:6px;color:#425050;display:flex;justify-content:space-between;padding:10px 12px}.setting-meta span{color:#667574;font-size:.86rem;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:860px){.auth-layout,.workspace,.topbar{padding-left:18px;padding-right:18px}.topbar{align-items:flex-start;flex-direction:column}.entry-row,.workspace,.two-column,.entry-form{grid-template-columns:1fr}.entry-meta{text-align:left}.reconciliation-header,.reconciliation-editor-grid,.reconciliation-filters{grid-template-columns:1fr}.source-queue-panel .section-heading,.auto-fill-control{align-items:stretch;flex-direction:column!important}.auto-fill-control label{min-width:0}.reconciliation-header{align-items:stretch}.reconciliation-header .table-actions{justify-content:flex-end}.allocation-row{align-items:stretch;grid-template-columns:1fr 1fr}.allocation-row>div{grid-column:1 / -1}}
