:root{color-scheme:light dark;font-family:Arial,Helvetica,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;background:light-dark(#f3f6f6,#171d20);color:light-dark(#202c31,#edf3f5);font-size:18px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid light-dark(#176b5b,#67d1b4);outline-offset:2px}.app-shell{min-height:100vh}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:12px 28px;background:light-dark(#fff,#222a2e);border-bottom:1px solid light-dark(#d8e0e2,#455158)}.brand{color:inherit;text-decoration:none;font-size:21px;font-weight:700;white-space:nowrap}.topbar nav,.account{display:flex;align-items:center;gap:8px}.nav-item,.text-button{min-height:48px;padding:9px 14px;border:0;border-radius:7px;background:transparent;color:light-dark(#526169,#c2cbd0)}.nav-item.active{background:light-dark(#e8f1ee,#2a403a);color:inherit;font-weight:700}.nav-item:disabled{opacity:.7}.account{gap:16px;white-space:nowrap}.text-button{text-decoration:underline}.page-content{width:min(1120px,100%);margin:0 auto;padding:38px 28px 60px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 26px}h1{font-size:32px;line-height:1.2;margin:0 0 7px}h2{font-size:21px;line-height:1.3;margin:0}p{margin:0;line-height:1.5}.page-heading p,.section-intro{color:light-dark(#526169,#b7c2c7)}.search-form{max-width:720px;margin:0 0 28px}.search-form label,.confirm-dialog label{display:block;font-weight:700;margin-bottom:8px}.search-controls{display:flex;gap:12px}.search-controls input,.confirm-dialog input,.confirm-dialog select,.employee-create-form input,.employee-create-form select,.employee-row input,.employee-row select{width:100%;min-height:48px;border:1px solid light-dark(#bdc9cd,#59666d);border-radius:8px;padding:9px 12px;color:inherit;background:light-dark(#fff,#222a2e)}.help-text{color:light-dark(#526169,#b7c2c7);font-size:16px;margin-top:8px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:10px 18px;border-radius:8px;font-weight:700;text-decoration:none;white-space:nowrap}.button:disabled{cursor:not-allowed;opacity:.65}.button.primary{color:light-dark(#fff,#102a24);border:1px solid light-dark(#176b5b,#69cbb1);background:light-dark(#176b5b,#69cbb1)}.button.secondary{color:inherit;border:1px solid light-dark(#bac7cb,#59666d);background:light-dark(#fff,#222a2e)}.customer-results{background:light-dark(#fff,#222a2e);border:1px solid light-dark(#d4dfe2,#455158);border-radius:10px;overflow:hidden}.customer-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid light-dark(#e1e7e9,#39464d)}.customer-row:last-child{border-bottom:0}.customer-summary h2{margin-bottom:4px}.customer-summary p{color:light-dark(#526169,#b7c2c7)}.customer-summary .customer-qualifier{color:light-dark(#176b5b,#7bd8bd);font-weight:600;margin-top:8px}.projects-list{margin-top:34px}.projects-list h2{margin-bottom:8px}.project-link{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) auto;align-items:center;gap:16px;width:100%;min-height:62px;padding:12px 2px;border:0;border-bottom:1px solid light-dark(#d4dfe2,#455158);background:transparent;color:inherit;text-align:left}.project-name{font-weight:600}.project-customer{color:light-dark(#526169,#b7c2c7)}.project-open{min-height:42px;border:0;background:transparent;color:light-dark(#176b5b,#7bd8bd);font:inherit;font-weight:700;white-space:nowrap}.project-link:hover{background:light-dark(#edf4f2,#273733)}.week-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 18px}.planning-actions{display:flex;gap:10px}.planning-view-tabs{display:flex;gap:8px;margin:0 0 14px;border-bottom:1px solid light-dark(#d4dfe2,#455158)}.planning-view-tabs button{padding:11px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:inherit;font:inherit;font-weight:650;cursor:pointer}.planning-view-tabs button.selected{border-bottom-color:light-dark(#176b5b,#69cbb1);color:light-dark(#14594e,#8ce0c9)}.range-controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:0 0 18px}.range-controls label{display:grid;gap:5px;font-weight:600}.range-controls input[type=date]{width:min(260px,100%);min-height:48px;padding:9px 12px;border:1px solid light-dark(#bdc9cd,#59666d);border-radius:8px;background:light-dark(#fff,#222a2e);color:inherit;font-size:18px;font-weight:400}.range-controls .button{margin-bottom:0}.planning-project-list,.planning-day-list{display:grid;gap:16px}.planning-project-card,.planning-day-card{border:1px solid light-dark(#d4dfe2,#455158);border-radius:10px;padding:16px;background:light-dark(#fff,#222a2e)}.planning-project-card header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.planning-project-card h2,.planning-day-card h2{margin:0;font-size:20px}.planning-project-card header strong{color:light-dark(#526169,#bdc9cd)}.planning-project-card p{margin:10px 0 2px;color:light-dark(#526169,#bdc9cd)}.planning-day-card h2{margin-bottom:12px}.capacity-row{display:grid;grid-template-columns:minmax(170px,1fr) 2fr;gap:16px;padding:12px 0;border-top:1px solid light-dark(#e1e7e9,#39464d)}.capacity-person{display:flex;flex-direction:column;gap:4px}.capacity-person span{color:light-dark(#176b5b,#8ce0c9);font-size:14px}.capacity-work{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:light-dark(#68777c,#aeb9be)}.day-planning-entry{padding:8px 10px;border:1px solid light-dark(#bad6cf,#42685e);border-radius:6px;background:light-dark(#edf6f3,#293d37);color:inherit;cursor:pointer}.period-dialog{display:flex;flex-direction:column;width:min(720px,100%);max-height:calc(100dvh - 32px);overflow:hidden}.period-dialog h2,.period-dialog>p{flex:none}.period-dialog>p{margin:6px 0 12px}.period-dialog form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;padding-right:6px}.period-dialog-fields{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 6px 10px 0;overscroll-behavior:contain}.period-dialog-fields>label{margin-top:14px}.period-dialog .dialog-actions{flex:none;margin-top:0;padding:12px 0 2px;border-top:1px solid light-dark(#d4dfe2,#455158);background:light-dark(#fff,#222a2e)}.employee-checklist,.weekday-checklist{display:flex;flex-wrap:wrap;gap:10px 18px;margin:14px 0;padding:12px;border:1px solid light-dark(#d4dfe2,#455158);border-radius:8px}.employee-checklist legend,.weekday-checklist legend{padding:0 5px;font-weight:650}.employee-checklist label,.weekday-checklist label{display:inline-flex;align-items:center;gap:7px}.employee-checklist input,.weekday-checklist input{width:20px;height:20px}.week-controls strong{margin:0 auto;font-size:19px}.planner-wrap{position:relative;overflow:auto;border:1px solid light-dark(#d4dfe2,#455158);border-radius:10px;background:light-dark(#fff,#222a2e)}.planner-table{min-width:1040px;table-layout:fixed}.planner-table th,.planner-table td{width:13%;padding:10px;border-right:1px solid light-dark(#e1e7e9,#39464d);border-bottom:1px solid light-dark(#d4dfe2,#455158);vertical-align:top}.planner-table th:first-child{width:145px}.planner-table thead th{position:sticky;top:0;z-index:1;background:light-dark(#f3f6f6,#2b3439)}.planner-employee{text-align:left;font-size:16px}.planner-employee small{display:block;margin-top:3px;color:light-dark(#68777c,#aeb9be);font-weight:400}.planner-cell{min-width:124px;height:120px}.planner-entry{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;margin-bottom:6px;padding:8px;border:1px solid light-dark(#bad6cf,#42685e);border-left:4px solid light-dark(#176b5b,#69cbb1);border-radius:6px;background:light-dark(#edf6f3,#293d37);color:inherit;text-align:left;font-size:14px}.planner-entry strong{line-height:1.25}.planner-entry span,.planner-entry small{color:light-dark(#526169,#bdc9cd)}.planner-entry small{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.add-cell-entry{min-height:34px;padding:3px 6px;border:0;background:transparent;color:light-dark(#176b5b,#7bd8bd);font-size:14px;font-weight:700}.loading-message{padding:10px;color:light-dark(#526169,#b7c2c7)}.inactive-employee-row{background:light-dark(#f5f5f5,#262d31)}.confirm-dialog form>label{margin-top:14px}.customer-create-dialog{display:flex;flex-direction:column;gap:8px;max-height:calc(100dvh - 32px);overflow-y:auto}.customer-create-dialog form{display:flex;flex-direction:column;gap:7px}.customer-create-dialog .customer-name-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.customer-create-dialog .customer-name-fields>div{min-width:0}.customer-create-dialog .dialog-actions{position:sticky;bottom:0;padding-top:12px;background:light-dark(#fff,#222a2e)}.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:14px}.form-row label{display:block;margin-bottom:7px;font-weight:700}.danger-button{min-height:46px;padding:8px 12px;border:1px solid light-dark(#bd6458,#96564e);border-radius:8px;background:transparent;color:light-dark(#9a3025,#ffc2b8);font-weight:700}.settings-panel{padding:22px;border:1px solid light-dark(#d4dfe2,#455158);border-radius:10px;background:light-dark(#fff,#222a2e)}.settings-panel h2{margin-bottom:6px}.employee-create-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:end;gap:14px;margin:20px 0}.employee-create-form label{display:block;margin-bottom:7px;font-weight:700}.employee-list{border-top:1px solid light-dark(#d4dfe2,#455158)}.employee-row{display:grid;grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:12px;min-height:68px;padding:10px 0;border-bottom:1px solid light-dark(#d4dfe2,#455158)}.employee-name{display:flex;flex-direction:column;gap:3px}.employee-name span{color:light-dark(#526169,#b7c2c7);font-size:15px}.invoice-open{border:0;padding:0;background:transparent;color:light-dark(#176b5b,#7bd8bd);text-decoration:underline;font-weight:700}.invoice-dialog{width:min(900px,100%);max-height:min(90vh,850px);overflow:auto;padding:24px;border:1px solid light-dark(#d8e0e2,#455158);border-radius:12px;background:light-dark(#fff,#222a2e);box-shadow:0 20px 55px #0000003d}.purchase-picker-dialog{width:min(1040px,100%);max-height:min(90vh,900px);overflow:auto;padding:24px;border:1px solid light-dark(#d8e0e2,#455158);border-radius:12px;background:light-dark(#fff,#222a2e);box-shadow:0 20px 55px #0000003d}.invoice-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.invoice-dialog-heading h2{font-size:26px}.invoice-dialog-heading p{margin-top:5px;color:light-dark(#526169,#b7c2c7);text-transform:capitalize}.close-button{width:42px;height:42px;border:0;border-radius:50%;background:light-dark(#edf2f3,#364249);color:inherit;font-size:28px}.invoice-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 26px}.invoice-totals div{display:flex;flex-direction:column;gap:5px;padding:13px;border-radius:8px;background:light-dark(#f3f6f6,#293237)}.invoice-totals span{color:light-dark(#526169,#b7c2c7)}.invoice-dialog h3{margin:0 0 8px}.invoice-lines{overflow-x:auto}.invoice-dialog .dialog-actions{margin-top:20px}.invoice-dialog select,.purchase-search-form input{min-height:42px;max-width:180px;padding:7px 10px;border:1px solid light-dark(#bdc9cd,#59666d);border-radius:7px;background:light-dark(#fff,#222a2e);color:inherit;font:inherit}.invoice-supplier{margin:4px 0 16px;color:light-dark(#526169,#b7c2c7)}.invoice-attachments{margin-top:24px}.invoice-attachments ul{padding-left:22px}.invoice-attachments li{padding:7px 0}.project-overview{margin-top:30px}.project-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}.project-stat{display:flex;flex-direction:column;gap:8px;min-height:96px;padding:16px;border:1px solid light-dark(#d4dfe2,#455158);border-radius:10px;background:light-dark(#fff,#222a2e)}.project-stat span{color:light-dark(#526169,#b7c2c7)}.project-stat strong{font-size:23px}.project-cost-actions{display:flex;flex-wrap:wrap;gap:10px}.purchase-search-form{margin:20px 0 12px}.purchase-search-form label{display:block;margin-bottom:8px;font-weight:700}.purchase-search-form>div{display:flex;gap:10px}.purchase-search-form input{max-width:none;flex:1;min-height:48px}.purchase-picker-list{margin-top:18px;border-top:1px solid light-dark(#d4dfe2,#455158)}.purchase-picker-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 4px;border-bottom:1px solid light-dark(#d4dfe2,#455158)}.purchase-picker-row>div:first-child{display:flex;flex-direction:column;gap:4px}.purchase-picker-row>div:first-child span{color:light-dark(#526169,#b7c2c7)}.purchase-picker-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.purchase-picker-dialog .dialog-actions{position:sticky;bottom:-24px;padding:14px 0 2px;background:light-dark(#fff,#222a2e)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{margin-top:18px;border-left:4px solid light-dark(#84949a,#73858d);padding:10px 16px;color:light-dark(#435159,#d0d8dc)}.empty-state h2{margin-bottom:5px}.notice{margin:0 0 18px;padding:14px 16px;border-radius:8px}.notice.error{background:light-dark(#fff0ee,#442d2c);color:light-dark(#792d22,#ffd0c9);border:1px solid light-dark(#e8b5ae,#7c514b)}.notice.success{background:light-dark(#e8f4ed,#263c30);color:light-dark(#20583c,#c3efd2);border:1px solid light-dark(#bbddc7,#446b52)}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;z-index:5;padding:18px;background:#0a14168c}.confirm-dialog{width:min(520px,100%);padding:26px;border:1px solid light-dark(#d8e0e2,#455158);border-radius:12px;background:light-dark(#fff,#222a2e);box-shadow:0 20px 55px #0000003d}.confirm-dialog h2{font-size:25px}.confirm-dialog>p{color:light-dark(#526169,#b7c2c7);margin:8px 0 22px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.back-button,.assign-button{min-height:46px;padding:8px 0;border:0;background:transparent;color:light-dark(#176b5b,#7bd8bd);font-weight:700;text-decoration:underline}.project-heading{margin-top:22px}.status-label,.invoice-status{display:inline-block;padding:5px 9px;border-radius:6px;background:light-dark(#edf2f3,#364249);text-transform:capitalize}.invoice-section{margin-top:34px}.invoice-section h2{margin-bottom:5px}.invoice-table-wrap{margin-top:18px;overflow-x:auto;border-top:1px solid light-dark(#d4dfe2,#455158)}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid light-dark(#d4dfe2,#455158);vertical-align:middle}th{font-size:16px;color:light-dark(#526169,#b7c2c7)}.numeric{text-align:right;white-space:nowrap}.assigned-label{color:light-dark(#176b5b,#7bd8bd);font-weight:600;white-space:nowrap}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:22px}.login-panel{width:min(480px,100%);padding:30px;background:light-dark(#fff,#222a2e);border:1px solid light-dark(#d4dfe2,#455158);border-radius:12px}.login-panel p{margin:8px 0 22px;color:light-dark(#526169,#b7c2c7)}.login-panel .test-login-note{margin-top:22px;margin-bottom:10px}@media(max-width:760px){.topbar{flex-wrap:wrap}.account{margin-left:auto}.page-heading{align-items:flex-start;flex-direction:column}.planning-actions{width:100%}.planning-actions .button{flex:1;padding-inline:8px}.capacity-row{grid-template-columns:1fr;gap:8px}.planning-project-card header{align-items:flex-start;flex-direction:column;gap:5px}.topbar{flex-wrap:wrap;padding:12px 16px}.topbar nav{order:3;width:100%;overflow-x:auto}.nav-item{padding:8px 10px}.account{margin-left:auto;font-size:16px}.page-content{padding:28px 16px 48px}.customer-row{align-items:flex-start;flex-direction:column}.customer-row .button{width:100%}.week-controls{align-items:stretch}.week-controls strong{order:-1;width:100%;text-align:center}.week-controls .button{flex:1;padding:8px}.range-controls{align-items:stretch}.range-controls label,.range-controls input[type=date],.range-controls .button{width:100%}.project-link{grid-template-columns:1fr;gap:5px;padding:14px 2px}.employee-create-form{grid-template-columns:1fr}.employee-row{grid-template-columns:1fr auto}.employee-row .employee-name,.employee-row input,.employee-row select{grid-column:1 / -1}.form-row{grid-template-columns:1fr 1fr}.invoice-dialog,.purchase-picker-dialog{padding:18px}.purchase-picker-row{align-items:stretch;flex-direction:column}.purchase-picker-actions{justify-content:space-between}.purchase-search-form>div{flex-direction:column}.purchase-search-form .button,.project-cost-actions{width:100%}.project-cost-actions .button{flex:1 1 140px}.invoice-totals{grid-template-columns:1fr}.planner-table{min-width:1040px}.planner-table{display:table;width:1040px}.planner-table thead{position:sticky;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}.planner-table tbody{display:table-row-group;width:auto}.planner-table tr{display:table-row;width:auto;padding:0;border:0}.planner-table th,.planner-table td{display:table-cell;width:auto}.search-controls{flex-direction:column}.search-controls .button{width:100%}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}.invoice-table-wrap{overflow:visible;border:0}table,tbody,tr,td{display:block;width:100%}thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}tbody tr{padding:10px 0;border-top:1px solid light-dark(#d4dfe2,#455158)}td{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border:0;text-align:left}td:nth-child(1):before{content:"Invoice";color:light-dark(#526169,#b7c2c7)}td:nth-child(2):before{content:"Date";color:light-dark(#526169,#b7c2c7)}td:nth-child(3):before{content:"Status";color:light-dark(#526169,#b7c2c7)}td:nth-child(4):before{content:"Amount";color:light-dark(#526169,#b7c2c7)}td:nth-child(5):before{content:"Project";color:light-dark(#526169,#b7c2c7)}.project-cost-table td:nth-child(1):before{content:"Supplier / invoice"}.project-cost-table td:nth-child(2):before{content:"Date"}.project-cost-table td:nth-child(3):before{content:"Status"}.project-cost-table td:nth-child(4):before{content:"Project cost"}.project-cost-table td:nth-child(5):before{content:"Invoice"}.planned-work-table td:nth-child(1):before{content:"Date"}.planned-work-table td:nth-child(2):before{content:"Person"}.planned-work-table td:nth-child(3):before{content:"Start"}.planned-work-table td:nth-child(4):before{content:"Hours"}.planned-work-table td:nth-child(5):before{content:"Description"}.planning-project-table td:nth-child(1):before{content:"Date"}.planning-project-table td:nth-child(2):before{content:"Person"}.planning-project-table td:nth-child(3):before{content:"Hours"}.planning-project-table td:nth-child(4):before{content:"Start"}}
