@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#203638;background:#f6f7f4;font-synthesis:none;--green:#203c3d;--muted:#77817c;--border:#e1e5de;--orange:#f0bc6b}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #c38831;outline-offset:3px}.shell{display:flex;min-height:100vh}aside{width:240px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);padding:36px 22px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-size:29px;font-weight:800;letter-spacing:-1.6px;padding:0 10px}.brand-icon{background:var(--green);color:#fff;letter-spacing:-7px;font-family:Georgia,serif;font-style:italic;font-size:30px;width:37px;height:37px;display:inline-flex;align-items:center;padding-left:5px;border-radius:11px;margin-right:11px}.brand-icon span{color:var(--orange);font-size:26px}.brand-dot{color:#c89446}.workspace-label{font-size:10px;letter-spacing:1.8px;color:#98a099;margin:55px 14px 15px;font-weight:600}.nav{border:0;background:transparent;color:#78827d;width:100%;display:flex;align-items:center;gap:13px;padding:14px 16px;margin-bottom:7px;border-radius:7px;text-align:left;font-size:13px;font-weight:550}.nav.active{background:#edf1ec;color:var(--green)}.nav>span{font-size:20px}.nav b{margin-left:auto;background:white;border:1px solid #dfe6de;border-radius:4px;font-size:10px;padding:2px 6px}.side-bottom{margin-top:auto;padding:22px 12px 0}.local-icon{font-size:28px;color:#899789;margin-bottom:12px}.side-bottom strong{font-size:12px}.side-bottom p{font-size:11px;line-height:1.8;color:#8b948c;margin:8px 0 26px}.private{font-size:10px;color:#7e8a80;border-top:1px solid var(--border);padding-top:20px;display:flex;align-items:center;gap:7px}.private i{width:6px;height:6px;background:#649176;border-radius:100%}main{margin-left:240px;flex:1;min-width:0}header{height:83px;border-bottom:1px solid var(--border);padding:0 45px;display:flex;justify-content:space-between;align-items:center;color:#8c958e;font-size:11px}header b{color:#55635c;font-weight:500}.slash{margin:0 15px;color:#bcc3ba}.today{text-transform:capitalize}#content{max-width:1320px;padding:42px 45px 60px;margin:auto}.eyebrow{font-size:10px;letter-spacing:1.9px;font-weight:650;color:#83917f;margin:0 0 12px}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-1px;margin:0}h1{font-size:34px;font-weight:650;line-height:1.35}h2{font-size:24px;font-weight:650}h3{font-size:16px;letter-spacing:-.3px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.subtitle{font-size:13px;color:#859087;line-height:1.7;margin:9px 0 0}.button{border-radius:6px;padding:12px 18px;border:1px solid transparent;font-size:12px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:14px;white-space:nowrap;min-height:43px}.primary{background:var(--green);color:white}.primary:hover{background:#315353}.primary span{color:#efc17e}.secondary{border-color:var(--border);background:#fff;color:#496052}.warm{background:#f2c481;color:#44371f}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}.stat{padding:23px 24px;border:1px solid var(--border);border-radius:9px;background:#fff;display:flex;align-items:center;gap:16px}.stat-symbol{background:#f0f3ed;border:1px solid #e9eee4;width:42px;height:44px;border-radius:8px;display:grid;place-items:center;color:#6e8672;font-size:21px}.stat p{margin:0 0 5px;font-size:11px;color:#8b938b}.stat strong{font-family:Manrope,sans-serif;font-weight:650;font-size:26px}.stat small{font-size:11px;font-weight:400;color:#9aa296;margin-left:8px}.list-panel,.card{background:#fff;border:1px solid var(--border);border-radius:9px}.list-toolbar{padding:22px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--border)}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tab{background:none;border:0;padding:9px 12px;border-radius:5px;font-size:11px;color:#8b958c}.tab.active{background:#edf1e9;color:#415a43;font-weight:600}.search{max-width:220px!important;margin:0!important;font-size:11px!important;padding:10px 12px!important;background:#fafbf8!important}input,textarea,select{border:1px solid #dfe5db;border-radius:5px;width:100%;padding:11px 12px;color:#29413b;background:#fff;font-size:13px;outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:#8b9f88;box-shadow:0 0 0 3px #edf1e9}input::placeholder,textarea::placeholder{color:#a4aba3}textarea{resize:vertical;min-height:125px;line-height:1.7}label{font-size:11px;color:#6f7d71;font-weight:500;display:flex;flex-direction:column;gap:8px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:1px;font-weight:550;color:#99a192;padding:15px 22px;background:#fcfcfa}td{font-size:12px;padding:22px;border-top:1px solid #eef0eb}td strong{font-weight:550}td small{display:block;font-size:10px;color:#96a08f;margin-top:5px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:5px 8px;background:#f6f0e4;color:#a08349;font-size:10px}.badge.signed{color:#60866b;background:#edf4ed}.badge:before{content:'';width:4px;height:4px;background:currentColor;border-radius:50%}.row-btn{border:0;background:none;color:#6b806c;font-size:17px;padding:5px 9px}.list-footer{padding:16px 22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;color:#98a18f;font-size:10px}.empty{padding:56px 25px;text-align:center}.empty-mark{margin:0 auto 18px;background:#f3f4ec;border:1px solid #e8ecdf;border-radius:16px;width:64px;height:64px;display:grid;place-items:center;font-size:30px;color:#7e9277;transform:rotate(-6deg)}.empty h3{font-size:19px}.empty p{font-size:12px;color:#8e988b;line-height:1.8;max-width:330px;margin:12px auto 22px}.tip{display:flex;align-items:center;gap:17px;border-radius:8px;background:#eef1e8;border:1px solid #e4e9dc;padding:20px 24px;margin-top:22px}.tip>span{font-size:22px;color:#7d8b63}.tip strong{font-size:12px;font-weight:550}.tip p{font-size:11px;color:#89917c;margin:5px 0 0}.tip b{font-size:10px;color:#8c987a;letter-spacing:1px;margin-left:auto;white-space:nowrap}.back{border:0;background:none;color:#81907f;font-size:11px;padding:0;margin-bottom:23px}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.card{padding:26px;margin-bottom:18px}.card-title{display:flex;align-items:center;gap:12px;margin-bottom:24px}.step{font-size:10px;background:#f0f3eb;border:1px solid #e5eadd;border-radius:5px;padding:6px 8px;color:#829273}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.full{grid-column:1/-1}.card .fields+.fields{margin-top:20px}.side-card{height:fit-content;position:sticky;top:20px}.side-card p{font-size:12px;color:#82907e;line-height:1.8}.side-card .button{width:100%;margin-top:10px}.meta-line{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf0e8;font-size:11px;color:#88937f}.meta-line strong{color:#52684d;font-weight:500}.hint{font-size:10px!important;color:#9aa38f!important;line-height:1.8!important}.materials{display:flex;gap:10px;align-items:end;margin-bottom:12px}.materials label:first-child{flex:1}.materials label:nth-child(2){width:75px}.materials .icon-btn{margin-bottom:4px}.text-btn{border:0;background:none;color:#6a8262;font-size:11px;padding:8px 0}.icon-btn{background:none;border:0;color:#8d9986;font-size:23px;padding:0 8px;min-height:32px}.signed-preview{max-width:100%;height:80px;object-fit:contain;object-position:left}.sign-summary{background:#f3f7ef;border:1px solid #e2ead9;border-radius:6px;padding:16px}.sign-summary p{font-size:11px;color:#738b66;line-height:1.7}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.warning{font-size:11px;background:#fff4df;color:#956e28;padding:12px 15px;border-radius:6px;line-height:1.8;margin-top:20px}.settings{max-width:700px}.check{display:flex;flex-direction:row;align-items:flex-start;line-height:1.7;font-size:12px}.check input{width:17px;min-width:17px;height:17px;margin:2px 0 0;accent-color:var(--green)}dialog{border:1px solid #e2e8da;border-radius:13px;max-width:560px;width:calc(100% - 30px);padding:30px;color:var(--green);box-shadow:0 30px 120px #172e3140}dialog::backdrop{background:#132d3166;backdrop-filter:blur(3px)}dialog>p{color:#8b9783;font-size:12px;line-height:1.7}.dialog-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:15px}.dialog-head h2{font-size:23px}.signature-wrap{margin-top:20px;position:relative;border:1px dashed #c3cfb7;background:#fcfdf8;border-radius:6px;height:175px;overflow:hidden}.signature-wrap canvas{width:100%;height:100%;touch-action:none}.signature-wrap>span{position:absolute;bottom:12px;left:18px;color:#b2bba6;font-size:10px;pointer-events:none}.sign-tools{display:flex;justify-content:space-between;align-items:center;margin:4px 0 20px}.sign-tools>span{font-size:10px;color:#9eaa91}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.error{color:#aa4a32!important}.saved-label{font-size:10px;color:#8fa17c;margin:12px 0}.total-time{font-size:11px;color:#8da075;margin-top:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#254344;color:white;border-radius:8px;padding:14px 24px;font-size:12px;box-shadow:0 8px 35px #18302c25;transition:transform .25s;z-index:20;max-width:90vw;text-align:center}#toast.visible{transform:translateX(-50%) translateY(0)}@media(min-width:1450px){#content{padding-top:55px}}@media(max-width:1100px){aside{width:200px;padding:30px 15px}main{margin-left:200px}header{padding:0 25px}#content{padding:32px 25px}.form-grid{grid-template-columns:minmax(0,1fr) 240px}.card{padding:20px}.stats{gap:10px}.stat{padding:18px 15px;gap:12px}.stat small{display:none}.tip b{display:none}}@media(max-width:800px){aside{position:static;width:100%;padding:16px 20px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--border);gap:12px}.brand{font-size:24px;margin-right:auto;padding:0}.brand-icon{width:31px;height:32px;font-size:25px}.workspace-label,.side-bottom,.nav b{display:none}.nav{width:auto;margin:0;padding:10px;font-size:11px;gap:5px}.shell{display:block}main{margin-left:0}header{height:53px;padding:0 20px}#content{padding:28px 20px}h1{font-size:27px}.page-heading{align-items:flex-start}.stats{gap:8px}.stat{padding:16px 12px}.stat-symbol{display:none}.stat p{font-size:10px}.stat strong{font-size:23px}.form-grid{grid-template-columns:1fr}.side-card{position:static}.list-toolbar{padding:15px;flex-wrap:wrap;gap:12px}.search{max-width:none!important}.tip{padding:17px}.today{font-size:10px}th,td{padding:15px}.fields{gap:16px}.subtitle{font-size:12px}.button{padding:11px 14px;font-size:11px}.dialog-actions .button{font-size:10px}dialog{padding:23px}}@media(max-width:420px){.nav span{display:none}h1{font-size:24px}.page-heading{gap:10px}.fields{grid-template-columns:1fr}.full{grid-column:auto}.stats{gap:6px}.stat{padding:14px 10px}.stat strong{font-size:21px}.stat p{font-size:9px}.today{display:none}.tip{align-items:flex-start}.tip p{line-height:1.8}.tabs{gap:0}.tab{padding:8px 10px}.card{padding:19px}}
.brand{letter-spacing:normal;padding:0 5px}.brand img{display:block;width:190px;max-width:100%;height:auto}.materials .material-unit{width:80px;flex:0 0 80px}
@media(max-width:800px){.brand{padding:0;flex-shrink:0}.brand img{width:130px}.materials{flex-wrap:wrap}.materials label:first-child{min-width:120px}.materials .material-unit{width:65px;flex-basis:65px}}
.time-entry{border:1px solid var(--border);border-radius:7px;padding:18px;margin-top:16px;background:#fcfdfb}.time-entry-head{display:flex;align-items:center;gap:14px;margin-bottom:17px}.time-entry-head strong{font-size:12px;font-weight:600}.time-entry-head>span{font-size:11px;color:#859477;margin-left:auto}.time-entry-head .icon-btn{min-height:24px;font-size:22px}.time-entry .fields{gap:15px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.photo-item{border:1px solid var(--border);border-radius:7px;overflow:hidden;min-width:0}.photo-preview{display:block;width:100%;padding:0;border:0;background:#f0f2ec}.photo-preview img{display:block;width:100%;height:135px;object-fit:cover}.photo-item>div{display:flex;align-items:center;gap:7px;padding:7px 9px}.photo-item>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted);flex:1}.photo-dialog{max-width:1000px}.photo-dialog>img{display:block;max-width:100%;max-height:75vh;margin:auto;object-fit:contain}.photo-dialog>button{display:block;margin-left:auto}.photo-dialog>p{text-align:center}.photo-dialog{width:calc(100% - 30px)}
@media(max-width:800px){aside{flex-wrap:wrap}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){aside .brand{width:100%;margin-bottom:4px}.photo-grid{grid-template-columns:1fr 1fr}.photo-preview img{height:120px}}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.person-tile{background:#fff;border:1px solid var(--border);border-radius:10px;padding:30px 22px;min-height:180px;text-align:left;color:var(--green);display:flex;flex-direction:column;gap:12px}.person-tile:hover{background:#edf2e8;border-color:#c0cfb7}.person-tile>span{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#edf1e8;color:#6c8262;font-weight:700}.person-tile strong{font-size:21px}.person-tile small{font-size:11px;color:var(--muted)}.person-tile.archived{opacity:.65}.week-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:25px;flex-wrap:wrap}.week-toolbar label{min-width:160px}.week-toolbar>strong{margin-left:auto;font-size:19px}.week-days{display:grid;gap:0}.day-heading{display:flex;align-items:center;gap:20px}.day-heading>strong{margin-left:auto;font-size:17px;white-space:nowrap}.day-heading .eyebrow{margin:0 0 8px}.day-card{padding:23px}.bookings{margin-top:18px}.booking-row{width:100%;background:#f7f9f3;border:1px solid #e8ecdf;color:var(--green);border-radius:6px;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:9px;text-align:left}.booking-row>span{display:flex;flex-direction:column;gap:7px}.booking-row strong{font-size:12px}.booking-row small{font-size:11px;color:var(--muted)}.booking-row>b{font-size:13px;white-space:nowrap}.booking-row>b>span{margin-left:12px;color:#8d9d7e}.booking-row:hover{border-color:#bdcfae}
@media(max-width:1000px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.people-grid{grid-template-columns:1fr 1fr;gap:12px}.person-tile{padding:22px 16px;min-height:160px}.person-tile strong{font-size:18px}.day-heading{flex-wrap:wrap;gap:12px}.day-heading>.button{width:100%}.week-toolbar>strong{width:100%;margin-top:6px}.week-toolbar .button{min-width:42px}.week-toolbar label{min-width:130px}.booking-row{padding:12px}.day-card{padding:18px}}

.app-version{display:block;font-size:11px;color:#78827d;margin-top:12px}aside{overflow-y:auto}

.danger-text{color:#a13c32}

.project-files{min-width:0}.project-file-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.project-file-row>span{flex:1;min-width:140px;overflow-wrap:anywhere}.project-file-row strong{font-size:12px}.project-file-row small{display:block;color:var(--muted);margin-top:5px}

.assignment-picker{border:1px solid var(--border);border-radius:6px;padding:16px;margin:0;min-width:0}.assignment-picker legend{font-size:12px;font-weight:600}.assignment-picker .check{margin:10px 0}.booking-row small{white-space:pre-line;overflow-wrap:anywhere}.booking-row>span{min-width:0}

.dashboard-section{margin-top:28px}.dashboard-task{display:flex;gap:12px;align-items:center}.dashboard-task>.booking-row{flex:1}.dashboard-complete{display:flex;align-items:center;flex-direction:column;gap:6px;font-size:10px;color:var(--muted);cursor:pointer;flex-shrink:0}.dashboard-complete input{width:23px;height:23px;accent-color:var(--green)}.completion-notice{padding:12px 16px;background:#edf1ec;border-radius:6px;margin-bottom:18px;font-size:13px}.dashboard-task .booking-row b{font-size:11px}@media(max-width:600px){.dashboard-task .booking-row{align-items:flex-start;flex-direction:column}.dashboard-task{gap:8px}}

.todo-claim{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:18px}.todo-claim>label{flex:1;min-width:180px}.dashboard-claim{white-space:normal;max-width:130px;flex-shrink:0}@media(max-width:600px){.dashboard-task{flex-wrap:wrap}.dashboard-task>.booking-row{flex-basis:calc(100% - 70px)}.dashboard-claim{margin-left:58px;max-width:none}}

.project-material-item{border:1px solid var(--border);border-radius:6px;padding:16px;margin:16px 0}#report-result h3{margin:24px 0 12px}#report-result td{white-space:pre-line;overflow-wrap:anywhere}

.hint,.subtitle,.booking-row small,.person-tile small{font-size:13px;line-height:1.55}.dashboard-announcement{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #e8d3ae;background:#fff6e7;border-radius:9px;padding:15px 20px;margin-bottom:25px}.dashboard-announcement strong{font-size:13px}.dashboard-announcement p{font-size:15px;line-height:1.5;white-space:pre-line;margin:6px 0 0}.dashboard-columns{display:grid;grid-template-columns:minmax(155px,.7fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:18px;align-items:start}.dashboard-columns>section{min-width:0}.dashboard-columns>.card{margin:0;padding:18px}.dashboard-columns h2{font-size:20px;letter-spacing:-.5px;margin-bottom:16px}.dashboard-columns .people-grid{grid-template-columns:1fr;gap:8px}.dashboard-columns .person-tile{min-height:0;padding:12px;gap:5px;display:grid;grid-template-columns:32px 1fr;align-items:center}.dashboard-columns .person-tile>span{grid-row:1/4;width:30px;height:30px;border-radius:8px;font-size:12px}.dashboard-columns .person-tile strong{font-size:15px}.dashboard-columns .person-tile small{font-size:12px}.dashboard-columns .person-tile small:last-child{display:none}.dashboard-columns .booking-row{flex-direction:column;align-items:flex-start;padding:12px;gap:10px}.dashboard-columns .booking-row strong{font-size:14px}.dashboard-columns .booking-row small{font-size:13px}.dashboard-columns .dashboard-task{align-items:flex-start;flex-wrap:wrap}.dashboard-columns .dashboard-task>.booking-row{flex-basis:calc(100% - 65px)}.dashboard-project-row{margin-top:12px;border:1px solid var(--border);border-radius:7px;overflow:hidden}.dashboard-project-row>.booking-row{border:0;border-radius:0;margin:0}.dashboard-project-row>.button{margin:0 12px 12px}.dashboard-columns .dashboard-project-row>.button{width:calc(100% - 24px);font-size:12px;white-space:normal}.material-catalog-picker{flex:0 0 100%!important}.materials{flex-wrap:wrap}
@media(max-width:1100px){.dashboard-columns{grid-template-columns:1fr}.dashboard-columns .people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-columns .person-tile{grid-template-columns:1fr}.dashboard-columns .person-tile>span{display:none}}
@media(max-width:600px){.dashboard-columns .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-announcement{align-items:flex-start;flex-direction:column;padding:15px}.dashboard-announcement .button{align-self:flex-end}}

.materials .material-name{flex:1 1 220px;width:auto;min-width:0}.materials .material-qty{flex:0 0 75px;width:75px}.dashboard-columns .person-tile{padding:10px;gap:4px}

.hint{font-size:13px!important;line-height:1.6!important;color:#657565!important}

[hidden]{display:none!important}.week-toolbar>strong{font-size:16px}

.project-link-field{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.project-link-field>label{flex:1;min-width:160px}

.material-entry-row{display:grid;grid-template-columns:65px minmax(0,1fr) 110px 30px;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border)}.material-entry-row label{min-width:0}.material-entry-row .icon-btn{margin-top:24px}.material-entry-name small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.material-batch-date{max-width:240px;margin:16px 0}.material-entry-row input{width:100%;box-sizing:border-box}.catalog-edit-table input{min-width:95px}.catalog-edit-table .catalog-description{min-width:220px}.catalog-edit-table td{padding:10px}.catalog-edit-table small{display:block;margin-top:5px}.catalog-stock-negative{color:#a13c32}.price-change-panel{margin-top:24px}
@media(max-width:600px){.material-entry-row{grid-template-columns:65px minmax(0,1fr) 30px}.material-entry-price{grid-column:2}.material-entry-row .icon-btn{grid-column:3;grid-row:1}}

dialog.material-dialog,dialog.project-dialog{max-width:940px;width:calc(100% - 48px)}

dialog.material-batch-dialog{max-width:1240px;width:calc(100% - 36px)}.catalog-batch-table td{padding:10px 5px}.catalog-batch-table th{padding:12px 5px;font-size:11px}.catalog-batch-table input{min-width:100px}.catalog-batch-table td:nth-child(2) input{min-width:210px}.catalog-batch-table td:first-child input{min-width:110px}.catalog-batch-table .icon-btn{min-width:28px}
