:root{--brand:#0e5570;--accent:#2fa8ba;--red:var(--brand);--ink:#17212b;--muted:#687685;--line:#e3e9ee;--bg:#f4f7f9;--navy:#102942}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5}aside{width:238px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);box-shadow:inset 4px 0 0 var(--brand);padding:30px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:12px;letter-spacing:.8px;color:var(--ink);text-decoration:none}.brand small{display:block;font-weight:400;letter-spacing:0;color:var(--muted);font-size:11px}.crest{font-family:Georgia,serif;background:var(--brand);color:white;border-radius:5px 5px 14px 14px;font-size:25px;padding:3px 11px}.workspace{margin:46px 0 12px;font-size:10px;letter-spacing:1.8px;color:#858a90}nav button{display:block;width:100%;text-align:left;background:transparent;color:#555b63;border:0;margin:6px 0;padding:12px 14px;font-weight:500}nav button.active{background:#e5f4f7;color:var(--brand);font-weight:700}.aside-bottom{margin-top:auto;font-size:12px;color:#555}.aside-bottom small{color:var(--muted)}.dot{display:inline-block;background:#669c7d;width:7px;height:7px;border-radius:50%;margin-right:5px}main{margin-left:238px;padding:38px 42px;max-width:1640px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px;flex-wrap:wrap;border-bottom:3px solid var(--brand);padding-bottom:22px}.eyebrow{font-size:10px;color:var(--brand);letter-spacing:1.5px;font-weight:700}h1{margin:7px 0 3px;font-size:32px;letter-spacing:-1px}header p{margin:0;color:var(--muted)}h2{font-size:20px;margin:0}h3{font-size:15px;margin:0 0 14px}button{border:1px solid transparent;background:var(--brand);color:#fff;border-radius:6px;padding:10px 15px;font:inherit;cursor:pointer;font-weight:600}button:hover{filter:brightness(.95)}button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}button.link{background:transparent;color:var(--brand);padding:5px 0}button.danger{background:#fff;color:var(--brand);border:1px solid #e3b9c0}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{width:100%;border:1px solid #d9dde0;border-radius:5px;background:#fff;padding:10px 11px;font:inherit;color:var(--ink)}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #8ec9d4;outline-offset:1px}label{display:block;font-size:12px;font-weight:600;margin:0 0 7px}label small{font-weight:400;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.wide{grid-column:1/-1}.card{background:white;border:1px solid var(--line);border-radius:9px;padding:25px;margin:20px 0}.cardtop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{padding:22px;background:white;border:1px solid var(--line);border-radius:8px}.stat b{display:block;font-size:28px;margin-top:8px}.stat span{font-size:12px;color:var(--muted)}.badge{font-size:11px;border-radius:4px;background:#f0f1f2;padding:4px 8px;white-space:nowrap}.badge.done{background:#eaf4ee;color:#376e4a}.badge.warn{background:#fff3df;color:#8c5c14}.muted{color:var(--muted);font-size:12px}.notice{background:#f9f2e8;border-left:3px solid #be9557;padding:14px 18px;font-size:13px;margin:16px 0}.notice.ok{background:#edf5ef;border-color:#659775}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:20px 0}.tabs button{background:transparent;color:var(--muted);border-radius:0;padding:13px 0;border-bottom:2px solid transparent}.tabs button.active{border-bottom-color:var(--brand);color:var(--brand)}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:#fafaf9}th,td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}td.money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tablewrap{overflow:auto}a{color:var(--brand)}.empty{text-align:center;padding:42px;color:var(--muted)}.people{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:12px}.offer{border:1px solid var(--line);border-radius:7px;margin:18px 0;padding:20px}.offer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.checks{list-style:none;padding:0;margin:12px 0}.checks li{padding:8px 0;color:#8c5c14}.checks li:before{content:'• ';}footer{font-size:11px;color:var(--muted);margin-top:32px}#toast{position:fixed;bottom:24px;right:24px;display:none;background:#102942;color:white;border-radius:6px;padding:13px 20px;max-width:500px;z-index:10}#print{display:none}.protocol{font-size:13px}.protocol h2{font-size:24px}.protocol .meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.protocol .meta b{display:block;font-size:11px;color:var(--muted)}.protocol table{font-size:11px}.protocol th{font-size:10px;text-transform:none}.signs{display:flex;gap:28px;flex-wrap:wrap;margin-top:38px}.sign{width:210px;padding-top:25px;border-top:1px solid #555}.source{margin:15px 0;padding:16px 0;border-bottom:1px solid var(--line)}@media(max-width:1000px){aside{width:190px;padding:25px 15px}main{margin-left:190px;padding:28px 24px}.grid.three{grid-template-columns:1fr 1fr}.brand{font-size:10px}}@media(max-width:700px){aside{position:static;width:100%;padding:16px;box-shadow:inset 0 4px 0 var(--brand)}.workspace,.aside-bottom{display:none}nav{display:flex;gap:12px}nav button{width:auto;margin-top:12px}.brand{font-size:12px}main{margin:0;padding:20px 16px}header{align-items:flex-start}h1{font-size:26px}header p{font-size:12px}.grid,.grid.three,.stats{grid-template-columns:1fr}.tabs{gap:15px}.tabs button{font-size:12px}.people{grid-template-columns:1fr}.card{padding:18px}.protocol .meta{grid-template-columns:1fr}}@media print{@page{size:A4 landscape;margin:13mm}body{background:white}body>aside,body>main,#toast{display:none!important}#print{display:block}.protocol{font-family:Arial,sans-serif;font-size:10px}.protocol h2{font-size:20px}.protocol .meta{grid-template-columns:1fr 1fr 1fr;margin:18px 0;gap:12px}.protocol table{font-size:9px;table-layout:fixed}.protocol th{font-size:9px}th,td{padding:7px 5px;overflow-wrap:anywhere}thead{display:table-header-group}tr{break-inside:avoid}.signs{break-inside:avoid}.notice{background:white;border:1px solid #aaa;font-size:10px}.muted{font-size:9px}.badge{font-size:9px}}

.cost-entry{display:flex;align-items:center;gap:8px;min-height:43px}.cost-entry strong{white-space:nowrap;font-size:15px}.cost-entry input{width:83px;text-align:center;letter-spacing:2px}.cost-entry input:last-child{width:59px}input[readonly]{background:#f2f3f3;color:#555;cursor:default}@media print{.tablewrap{overflow:visible}.protocol .opening-table th:nth-child(2){width:18%}.protocol .opening-table th:nth-child(3),.protocol .opening-table th:nth-child(4){width:10%}.protocol .opening-table th:nth-child(5),.protocol .opening-table th:nth-child(8){width:13%}.protocol .opening-table th:nth-child(6),.protocol .opening-table th:nth-child(7){width:7%}.protocol .opening-table th:last-child{width:18%}.protocol .signs{break-inside:avoid;page-break-inside:avoid}}

.savebar{position:fixed;bottom:0;left:238px;right:0;z-index:8;background:white;border-top:1px solid var(--line);padding:12px 42px;display:flex;justify-content:space-between;align-items:center;gap:12px}.savebar>span{font-size:12px;color:var(--muted)}main{padding-bottom:110px}.unit-input{display:flex;align-items:center;border:1px solid #d9dde0;border-radius:5px;background:#fff;overflow:hidden}.unit-input span{padding:0 10px;color:var(--muted);font-size:12px;font-weight:700}.unit-input input{border:0;min-width:0;border-radius:0}.unit-input:focus-within{outline:2px solid #8ec9d4;outline-offset:1px}.unit-input input:focus{outline:0}#toast{bottom:83px}@media(max-width:1000px){.savebar{left:190px;padding:12px 24px}}@media(max-width:700px){.savebar{left:0;padding:10px 16px}.savebar>span{max-width:110px;font-size:10px}.savebar button{font-size:12px;padding:9px 10px}}@media print{body>.savebar{display:none!important}}

.date-time-parts{display:flex;gap:8px}.date-time-parts input{min-width:0}.date-time-parts input[data-part=time]{width:96px;flex-shrink:0}.entry-table{min-width:1450px;table-layout:fixed}.entry-table th:nth-child(1){width:65px}.entry-table th:nth-child(2){width:235px}.entry-table th:nth-child(3){width:155px}.entry-table th:nth-child(4){width:165px}.entry-table th:nth-child(5),.entry-table th:nth-child(8){width:175px}.entry-table th:nth-child(6),.entry-table th:nth-child(7){width:110px}.entry-table th:nth-child(9){width:220px}.entry-table td{padding:12px 8px}.entry-table label{font-size:10px;margin:7px 0 4px}.entry-table input,.entry-table select{font-size:12px;padding:8px}.entry-table .date-time-parts{flex-direction:column}.entry-table .date-time-parts input[type=time]{width:100%}.position-number{display:block;font-size:18px;color:var(--brand)}.entry-table button.link{font-size:10px}.entry-check{background:#fafaf9}.entry-check .grid.three{grid-template-columns:240px 1fr 1fr;gap:16px}.calculation-line{font-size:12px;color:var(--muted);padding-top:10px}.offer-table-card{padding:16px}.unit-input:has(input[readonly]){background:#f2f3f3}

.master-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:14px;align-items:end;margin:18px 0}.authority-row{grid-template-columns:minmax(0,1fr) auto}.people{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) auto}.master-choice{margin-bottom:10px}.person-choice .master-choice{margin:0}.unit-input input{text-align:right;font-variant-numeric:tabular-nums}.cardtop h2,.cardtop h3{overflow-wrap:anywhere}.protocol .opening-table td:nth-child(5),.protocol .opening-table td:nth-child(8){white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.protocol .meta>div{white-space:pre-wrap;overflow-wrap:anywhere}.entry-table .unit-input span{padding:0 7px;font-size:10px}.entry-table .unit-input input{padding-left:3px}.date-time-parts input[type=date]{flex:1 1 auto;min-width:130px}.date-time-parts input[type=time]{min-width:100px}.entry-table .date-time-parts input[type=date]{min-width:0}.tablewrap:focus{outline:2px solid #8ec9d4}@media(max-width:1150px){.people{grid-template-columns:1fr 1fr auto}.person-choice{grid-column:1/-1}}@media(max-width:700px){.people,.master-row,.authority-row{grid-template-columns:1fr}.person-choice{grid-column:auto}.cardtop{flex-wrap:wrap}nav{flex-wrap:wrap;gap:4px}nav button{font-size:12px}.date-time-parts{flex-wrap:wrap}.date-time-parts input[type=time]{flex:1;min-width:100px}}@media print{.protocol .opening-table th{line-height:1.3}.protocol .opening-table td:nth-child(5),.protocol .opening-table td:nth-child(8){font-size:8px}.protocol .signs{gap:20px}.protocol .meta{line-height:1.4}}

.master-actions{display:flex;flex-direction:column;gap:8px;min-width:170px}.master-actions .muted{font-size:11px}.master-row{align-items:start}.master-row label{margin-top:4px}.person-choice select{width:100%}.master-choice select{min-height:43px}.master-row input{max-width:100%}@media(max-width:700px){.master-actions{flex-direction:row;flex-wrap:wrap;align-items:center}.master-actions .muted{width:100%}}

.pending-label{color:#8c5c14;font-size:10px}@media print{.pending-label{color:#333}}
.checkline{display:flex;align-items:flex-start;gap:10px;margin:12px 0;font-weight:600}.checkline input{width:auto;margin-top:3px}.grid.breakdown{grid-template-columns:repeat(4,minmax(0,1fr));margin:4px 0 12px}.calculation-line.differs{color:#8c5c14}.entry-table{min-width:1100px}.entry-table th:nth-child(1){width:72px}.entry-table th:nth-child(2){width:250px}.entry-table th:nth-child(3){width:180px}.entry-table th:nth-child(4){width:190px}.entry-table th:nth-child(5){width:200px}.entry-table th:nth-child(6){width:210px}.entry-table th:nth-child(7),.entry-table th:nth-child(8),.entry-table th:nth-child(9){width:auto}.comparison-table{font-size:13px}.comparison-table td.money,.comparison-table th:nth-child(n+3){text-align:right}.comparison-table td:nth-child(2),.comparison-table th:nth-child(2){text-align:left}.comparison-table .is-lowest{background:#f3f7f4}.award-band{display:flex;justify-content:space-between;gap:24px;border-top:2px solid #0e5570;margin-top:28px;padding-top:14px}.award-band b{display:block;font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}@media(max-width:700px){.grid.breakdown{grid-template-columns:1fr 1fr}.award-band{flex-direction:column}}@media print{.award-sheet{font-size:10px}.award-sheet h2{font-size:18px}.award-sheet table{font-size:8.5px}.comparison-table th,.comparison-table td{padding:5px 4px}.award-band{break-inside:avoid}.comparison-table .is-lowest{background:transparent;font-weight:700}}

#appBrand{display:block}.family-lockup{display:block;width:194px;max-width:100%;height:auto}.family-fixed{margin:8px 0 12px}.family-fixed .family-lockup{width:320px}.protocol .family-lockup{width:280px;margin:0 0 8px}#appBrand>small{display:block;color:var(--muted);font-weight:400;letter-spacing:0;font-size:11px;margin-top:8px}.header-side{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.municipality-slot img{display:block;max-width:150px;max-height:58px;object-fit:contain;object-position:right center}.logo-control{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:16px 0}.logo-preview{max-width:180px;max-height:75px;object-fit:contain}.logo-upload{border:1px solid var(--line);padding:10px 12px;border-radius:6px;margin:0;cursor:pointer;font-size:12px;background:white}.logo-upload input{display:block;margin-top:8px;max-width:240px;font-size:11px;padding:4px}.protocol-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.municipality-print{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto;max-width:260px}.municipality-print .logo-control{justify-content:flex-end;margin:0}.municipality-logo{width:150px;height:70px;object-fit:contain;object-position:right top;flex-shrink:0}.family-lockup,.municipality-logo{print-color-adjust:exact;-webkit-print-color-adjust:exact}.protocol-heading>div{min-width:0}.protocol-heading .eyebrow{overflow-wrap:anywhere}@media(max-width:700px){.municipality-logo{width:95px;height:60px}.protocol-heading{gap:12px}}@media print{.no-print{display:none!important}.municipality-logo{width:42mm;height:20mm}.protocol .family-lockup{width:78mm}.protocol-heading{break-inside:avoid}}
