:root{font-family:Lexend,system-ui,sans-serif;color:#213b40;background:#f3f6f5;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:16px 4vw;background:#fff;border-bottom:1px solid #d9e3e1}.brand{display:flex;gap:12px;align-items:center;font-size:30px;font-weight:600;color:#09685d;text-decoration:none}.brand span{font-size:19px;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:3px}main{max-width:1380px;margin:32px auto;padding:0 28px 60px}h1{font-size:30px;letter-spacing:-1px;margin:8px 0 12px}h2{font-size:20px}h3{font-size:16px}p{line-height:1.7;color:#627777}small{color:#637b7b}a{color:#08766a}.panel,.card{background:#fff;border:1px solid #dce5e2;border-radius:14px;padding:24px;margin:18px 0;box-shadow:0 5px 20px #1c534006}.login{max-width:460px;margin:60px auto}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2px;color:#bd6226}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.grid .card{margin:0}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}label{display:flex;flex-direction:column;gap:8px;margin:12px 0;font-size:12px}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cad9d5;border-radius:7px;color:#243e43;background:#fff}input[type=checkbox]{width:16px;min-height:16px;accent-color:#08766a}label.check{flex-direction:row;align-items:center;gap:8px}button,.link-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border:1px solid #c9d9d5;border-radius:7px;background:white;color:#234449;cursor:pointer;text-decoration:none;font-size:13px;white-space:nowrap}.primary{background:#d66f27;color:#fff;border-color:#d66f27}button:hover,.link-button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid #eba664;outline-offset:3px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tag{background:#e7f3ee;padding:5px 9px;border-radius:5px;font-size:11px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:12px;border-bottom:1px solid #e0e8e5}th{background:#ecf3ef;white-space:nowrap}.number{text-align:right;font-variant-numeric:tabular-nums}.metric{font-size:27px;font-weight:600;color:#125a51;margin:12px 0}.error{color:#a53424}.muted{color:#728582}.notice{padding:16px;background:#fff3e6;border-left:3px solid #d66f27;margin:15px 0}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#173f39;color:white;border-radius:8px;padding:12px 20px;max-width:90vw;display:none}details{border:1px solid #dce5e2;border-radius:10px;padding:16px;margin:12px 0}summary{cursor:pointer;font-weight:500}code{font-size:11px;overflow-wrap:anywhere}.read-only{color:#087568;font-size:12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.login button{width:100%;margin-top:12px}dialog{border:1px solid #dce5e2;border-radius:14px;max-width:650px;width:90vw;max-height:85vh;overflow:auto;padding:24px}dialog::backdrop{background:#173f3966}@media(max-width:600px){header{height:auto;padding:15px}#identity{font-size:11px}main{padding:0 15px}.panel{padding:16px}.section-head{display:block}}@media print{header,#notice,button,.actions,.link-button{display:none}.panel,.card{box-shadow:none;break-inside:avoid}main{padding:0;margin:0}.table-wrap{overflow:visible}}

/* Project Portal: mobile-first shared client and team controls. */
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173e3b;background:#f5f6f2;font-size:15px}body{min-width:0}header{height:auto;min-height:78px;gap:16px;flex-wrap:wrap}#identity{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}main{max-width:1280px}h1{letter-spacing:-1.2px}button,.link-button,summary{min-height:44px}input,select,textarea{font-size:16px;min-height:46px}.login{margin:36px auto;padding:30px}.login h1{font-size:32px}.login button{min-height:48px}.login p{font-size:15px}.primary{background:#14675e;border-color:#14675e}.grid>*{min-width:0}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}.panel,.card{min-width:0}summary{overflow-wrap:anywhere}p{overflow-wrap:anywhere}.client-topline{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.client-topline button{background:transparent}.project-hero{background:#153f39;color:white;border-radius:20px;padding:30px;display:flex;justify-content:space-between;gap:24px;align-items:center;position:relative;overflow:hidden}.project-hero:after{content:"";position:absolute;width:240px;height:240px;right:-100px;top:-130px;border:35px solid #ffffff08;border-radius:50%;pointer-events:none}.project-hero .eyebrow{color:#e8bb86}.project-hero h1{font-size:38px;margin:10px 0}.project-hero p{color:#c9dcd3;margin:8px 0}.publication-status{font-size:12px;flex-shrink:0}.publication-status small{display:block;color:#d4e4dc;margin:8px 0}.status-dot{display:inline-block;width:7px;height:7px;background:#a2d6a7;border-radius:50%;margin-right:8px}.client-tabs{display:flex;gap:8px;position:sticky;top:0;background:#f5f6f2;z-index:5;padding:16px 0 12px;overflow:auto;scrollbar-width:thin}.client-tabs button{flex:1;background:transparent;border-color:transparent;font-weight:600}.client-tabs button[aria-current=page]{background:#fff;color:#126558;border-color:#dae5dc;box-shadow:0 3px 12px #254c3710}.client-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:8px 0 20px}.client-metrics .card{margin:0;padding:22px}.client-metrics strong{display:block;font-size:clamp(18px,2.2vw,27px);letter-spacing:-.7px;margin-top:12px;color:#154f44}.client-metrics .card:first-child{background:#e7eee3;border-color:#dce5d3}.overview-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px}.overview-columns .panel:first-child{margin-top:0}.panel{box-shadow:none;border-radius:16px}.panel h2{font-size:21px;letter-spacing:-.5px}.panel .eyebrow{font-size:10px}.bill-card{padding:0;border-color:#dfe6e1;overflow:hidden}.bill-card summary{display:flex;gap:12px;align-items:center;padding:18px;list-style:none}.bill-card summary::-webkit-details-marker{display:none}.bill-icon{display:grid;place-items:center;background:#eff2e9;width:40px;height:44px;flex-shrink:0;border-radius:10px;color:#276756;font-size:24px}.bill-title{flex:1;min-width:0}.bill-title strong{font-size:13px;overflow-wrap:anywhere}.bill-title small,.bill-value small{display:block;font-size:11px;margin-top:7px;font-weight:400}.bill-value{text-align:right;font-size:15px;flex-shrink:0;color:#174d42}.bill-body{padding:0 18px 14px;border-top:1px solid #e6ece7}.client-item{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #e6ece7;font-size:13px}.client-item>div{min-width:0}.client-item strong{font-weight:600;overflow-wrap:anywhere}.client-item small,.client-item span{display:block;margin-top:6px;color:#667c73;font-size:12px}.item-amount{text-align:right;flex-shrink:0;max-width:48%;font-variant-numeric:tabular-nums}.total-line{display:flex;justify-content:space-between;gap:16px;padding:20px 0 6px}.boq-total small,.boq-total strong{display:block}.boq-total strong{font-size:25px;margin-top:8px}.boq-group summary{display:flex;justify-content:space-between;align-items:center;gap:12px}.boq-group summary small{display:block;margin-top:7px;font-weight:400}.boq-group summary>strong{white-space:nowrap}.chart-layout{display:flex;align-items:center;gap:24px;margin:24px 0}.donut{width:150px;height:150px;flex-shrink:0;border-radius:50%;background:conic-gradient(#c87936 var(--fill),#e6ece2 0);padding:16px}.donut>div{background:white;border-radius:50%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.donut strong{font-size:25px}.donut small{font-size:11px}.chart-legend{flex:1}.chart-legend>div{margin:18px 0}.chart-legend span,.chart-legend strong{display:block}.chart-legend span{color:#657c71;font-size:12px;margin-bottom:7px}.chart-legend strong{font-size:17px}.empty{padding:22px 0}.empty strong{font-size:14px}.empty p{margin:8px 0;font-size:13px}.progress-label{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin:18px 0 10px}.progress-label span{color:#6a7e72;font-size:11px}progress{display:block;width:100%;height:12px;accent-color:#247761;border:0;border-radius:12px;overflow:hidden}progress::-webkit-progress-bar{background:#e8eee4}progress::-webkit-progress-value{background:#247761}.preserve-lines{white-space:pre-wrap}.timeline-item{border-left:2px solid #c8d8c4;padding:10px 0 14px 20px;margin:15px 0}.publication-footnote{font-size:12px;text-align:center;margin:22px 0}.unread-dot{width:6px;height:6px;border-radius:50%;background:#cc792f;margin-left:5px}#notice{z-index:50}.read-only{font-size:12px}
@media(max-width:850px){.overview-columns{grid-template-columns:1fr}.client-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-hero{align-items:flex-start;flex-direction:column;gap:12px}.project-hero h1{font-size:32px}.chart-layout{justify-content:flex-start}.chart-legend{max-width:250px}}
@media(max-width:480px){header{padding:14px 16px}.brand{font-size:25px}.brand span{font-size:16px}.brand small{font-size:8px}#identity{width:100%;font-size:11px}#identity button{font-size:12px;padding:8px 12px}main{margin:20px auto;padding:0 14px 30px}.client-topline{margin-bottom:14px}.client-topline button{font-size:12px;padding:8px 11px}.project-hero{padding:23px 20px;border-radius:16px}.project-hero h1{font-size:29px;overflow-wrap:anywhere}.client-tabs{gap:1px;padding:12px 0}.client-tabs button{padding:10px 8px;font-size:12px;border-radius:9px}.client-metrics{gap:10px}.client-metrics .card{padding:16px 13px;border-radius:12px}.client-metrics strong{font-size:20px}.client-metrics small{font-size:11px}.panel{padding:18px 15px}.panel h2{font-size:20px}.section-head{display:flex;align-items:flex-start;flex-wrap:wrap}.section-head button{font-size:12px}.bill-card summary{padding:14px 10px;gap:8px}.bill-icon{display:none}.bill-value{font-size:14px}.bill-title strong{font-size:12px}.bill-title small{line-height:1.5}.bill-body{padding:0 12px 12px}.chart-layout{gap:18px}.donut{width:126px;height:126px;padding:13px}.donut strong{font-size:22px}.chart-legend strong{font-size:15px}.boq-group{padding:12px}.boq-group summary{font-size:13px}.boq-total strong{font-size:23px}.login{padding:24px 20px;margin:24px auto}.fields{grid-template-columns:1fr}dialog{padding:18px}.grid .card{padding:18px}.actions>*{max-width:100%;white-space:normal;text-align:center}.table-wrap{max-width:100%}.progress-label{flex-wrap:wrap}}
@media print{.client-tabs,.client-topline,.publication-footnote{display:none}.project-hero{background:white;color:#173e3b;border:1px solid #ccc}.project-hero p,.project-hero .eyebrow,.publication-status{color:#173e3b}.overview-columns{display:block}.client-content details{break-inside:avoid}.client-content details::details-content{display:block} .bill-body{display:block}.donut{print-color-adjust:exact}}
@media(max-width:360px){.client-metrics strong{font-size:15px}.client-tabs button{font-size:11px;padding:10px 6px}.chart-layout{gap:12px}.donut{width:110px;height:110px}.chart-legend strong{font-size:14px}}

.team-navigation{position:sticky;top:0;background:#f5f7f3;padding:12px 0;z-index:3;margin-bottom:20px}.notice .link-button{margin-top:8px}.card .actions{flex-wrap:wrap}.fields button{align-self:end}@media(max-width:600px){.team-navigation{display:grid;grid-template-columns:repeat(3,1fr)}.team-navigation a{text-align:center;min-height:44px}.card .actions>*{flex:1 1 130px}.notice{overflow-wrap:anywhere}.fields{grid-template-columns:1fr}}

/* Compact staff ledgers; horizontal scrolling stays inside each table. */
.team-stats{display:flex;gap:12px;margin:18px 0}.team-stats .card{flex:1;padding:16px;border-top:3px solid #187b70}.team-stats h2{margin:0 0 10px;font-size:19px}.team-ledgers{display:block}.team-ledgers>.panel{margin:18px 0;padding:20px}.team-table-scroll{overflow:auto;margin-top:14px;border:1px solid #d3dfdb;border-radius:8px;max-height:520px}.team-table{width:100%;border-collapse:collapse;min-width:620px;font-size:14px}.team-table th{position:sticky;top:0;background:#e5efeb;color:#16473e;text-align:left;z-index:1}.team-table td,.team-table th{padding:11px 14px;border-bottom:1px solid #e2e9e5;vertical-align:middle}.team-table tbody tr:nth-child(even){background:#f6f9f7}.team-table tbody tr:hover{background:#edf5f1}.team-table td:nth-last-child(2){min-width:240px;overflow-wrap:anywhere}.team-date{white-space:nowrap}.team-table .link-button{padding:8px 12px;min-height:44px;white-space:nowrap}.review-tick{width:22px;height:22px;min-height:22px;accent-color:#176f60;cursor:pointer}.team-project-list{display:grid;gap:16px}.team-project-list .card{border-left:5px solid #198575;padding:22px;background:linear-gradient(105deg,#eef8f2,#fff 55%);box-shadow:0 3px 12px #143e3010}.team-project-list h2{font-size:24px;margin:12px 0}.team-project-list .actions{margin-top:18px}.team-project-list .tag{background:#d3ebdc;color:#12583e}.team-navigation .link-button:hover{background:#dcefe5}.team-table input{margin:0}.team-ledgers h2{font-size:20px;margin:0 0 12px}@media(max-width:600px){.team-ledgers>.panel{padding:12px;margin:14px 0}.team-table td,.team-table th{padding:10px}.team-stats{gap:8px}.team-stats .card{padding:12px;min-width:0}.team-stats h2{font-size:17px}.team-project-list .card{padding:16px}.team-project-list h2{font-size:21px}.team-table-scroll{max-width:100%}}

.review-control{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0}.team-navigation{flex-wrap:wrap}@media(max-width:600px){.team-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}.team-navigation>*{padding:10px 5px!important;font-size:12px}}

.project-register{max-height:none;border-top:4px solid #188a70;box-shadow:0 3px 14px #16473e0a}.project-register td:first-child strong{font-size:17px;color:#155948}.project-register small{display:block;margin-top:5px;color:#617670}.project-register .actions{display:flex;flex-wrap:wrap;gap:6px;min-width:290px}.project-register td{padding:16px}.team-stats .card:nth-child(2){border-top-color:#c18b27}.team-navigation .primary,.project-register .primary{background:#187960;color:white}.project-register .tag{background:#ddf1e6;color:#175e40}body{background:#f3f6f5}.team-ledgers h2{border-left:3px solid #c89032;padding-left:10px}
