:root{font-family:Lexend,system-ui,sans-serif;color:var(--gray-800);background:var(--gray-50);font-size:var(--fs-14)}*{box-sizing:border-box}body{margin:0}header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:16px 4vw;background:var(--gray-0);border-bottom:1px solid var(--gray-200)}.brand{display:flex;gap:12px;align-items:center;font-size:var(--fs-32);font-weight:600;color:var(--brand-700);text-decoration:none}.brand span{font-size:var(--fs-16);letter-spacing:2px}.brand small{display:block;font-size:var(--fs-12);letter-spacing:3px}main{max-width:1380px;margin:32px auto;padding:0 28px 60px}h1{font-size:var(--fs-32);letter-spacing:-1px;margin:8px 0 12px}h2{font-size:var(--fs-20)}h3{font-size:var(--fs-16)}p{line-height:1.7;color:var(--gray-500)}small{color:var(--gray-500)}a{color:var(--gray-700)}.panel,.card{background:var(--gray-0);border:1px solid var(--gray-200);border-radius:var(--radius-card);padding:24px;margin:18px 0;box-shadow:var(--shadow)}.login{max-width:460px;margin:60px auto}.eyebrow{font-size:var(--fs-12);font-weight:600;letter-spacing:2px;color:var(--series-2)}.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:var(--fs-12)}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--gray-200);border-radius:var(--radius-card);color:var(--gray-800);background:var(--gray-0)}input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--gray-700)}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 var(--gray-300);border-radius:var(--radius-card);background:var(--gray-0);color:var(--gray-800);cursor:pointer;text-decoration:none;font-size:var(--fs-13);white-space:nowrap}.primary{background:var(--series-2);color:var(--gray-0);border-color:var(--series-2)}button:hover,.link-button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid var(--status-warning-line);outline-offset:3px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tag{background:var(--gray-100);padding:5px 9px;border-radius:var(--radius-input);font-size:var(--fs-12)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--gray-100)}th{background:var(--gray-50);white-space:nowrap}.number{text-align:right;font-variant-numeric:tabular-nums}.metric{font-size:var(--fs-24);font-weight:600;color:var(--gray-800);margin:12px 0}.error{color:var(--status-negative)}.muted{color:var(--gray-500)}.notice{padding:16px;background:var(--status-warning-bg);border-left:3px solid var(--series-2);margin:15px 0}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--gray-800);color:var(--gray-0);border-radius:var(--radius-card);padding:12px 20px;max-width:90vw;display:none}details{border:1px solid var(--gray-200);border-radius:var(--radius-card);padding:16px;margin:12px 0}summary{cursor:pointer;font-weight:500}code{font-size:var(--fs-12);overflow-wrap:anywhere}.read-only{color:var(--gray-700);font-size:var(--fs-12)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.login button{width:100%;margin-top:12px}dialog{border:1px solid var(--gray-200);border-radius:var(--radius-card);max-width:650px;width:90vw;max-height:85vh;overflow:auto;padding:24px}dialog::backdrop{background:var(--gray-800)}@media(max-width:760px){header{height:auto;padding:15px}#identity{font-size:var(--fs-12)}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:var(--gray-800);background:var(--gray-50);font-size:var(--fs-14)}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:var(--fs-12)}main{max-width:1280px}h1{letter-spacing:-1.2px}button,.link-button,summary{min-height:44px}input,select,textarea{font-size:var(--fs-16);min-height:46px}.login{margin:36px auto;padding:30px}.login h1{font-size:var(--fs-32)}.login button{min-height:48px}.login p{font-size:var(--fs-14)}.primary{background:var(--gray-700);border-color:var(--gray-700)}.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}.status-dot{display:inline-block;width:7px;height:7px;background:var(--gray-300);border-radius:50%;margin-right:8px}.panel{box-shadow:none;border-radius:var(--radius-card)}.panel h2{font-size:var(--fs-20);letter-spacing:-.5px}.panel .eyebrow{font-size:var(--fs-12)}.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:var(--fs-24);margin-top:8px}.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(var(--series-2) var(--fill),var(--gray-100) 0);padding:16px}.donut>div{background:var(--gray-0);border-radius:50%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.donut strong{font-size:var(--fs-24)}.donut small{font-size:var(--fs-12)}.chart-legend{flex:1}.chart-legend>div{margin:18px 0}.chart-legend span,.chart-legend strong{display:block}.chart-legend span{color:var(--gray-500);font-size:var(--fs-12);margin-bottom:7px}.chart-legend strong{font-size:var(--fs-16)}.empty{padding:22px 0}.empty strong{font-size:var(--fs-14)}.empty p{margin:8px 0;font-size:var(--fs-13)}progress{display:block;width:100%;height:12px;accent-color:var(--gray-700);border:0;border-radius:var(--radius-card);overflow:hidden}progress::-webkit-progress-bar{background:var(--gray-100)}progress::-webkit-progress-value{background:var(--gray-700)}.preserve-lines{white-space:pre-wrap}.unread-dot{width:6px;height:6px;border-radius:50%;background:var(--series-2);margin-left:5px}#notice{z-index:50}.read-only{font-size:var(--fs-12)}
@media(max-width:760px){.chart-layout{justify-content:flex-start}.chart-legend{max-width:250px}}
@media(max-width:760px){header{padding:14px 16px}.brand{font-size:var(--fs-24)}.brand span{font-size:var(--fs-16)}.brand small{font-size:var(--fs-12)}#identity{width:100%;font-size:var(--fs-12)}#identity button{font-size:var(--fs-12);padding:8px 12px}main{margin:20px auto;padding:0 14px 30px}.panel{padding:18px 15px}.panel h2{font-size:var(--fs-20)}.section-head{display:flex;align-items:flex-start;flex-wrap:wrap}.section-head button{font-size:var(--fs-12)}.chart-layout{gap:18px}.donut{width:126px;height:126px;padding:13px}.donut strong{font-size:var(--fs-20)}.chart-legend strong{font-size:var(--fs-14)}.boq-total strong{font-size:var(--fs-24)}.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%}}
@media print{:is(.client-content,.cv-content) details{break-inside:avoid}:is(.client-content,.cv-content) details::details-content{display:block}.donut{print-color-adjust:exact}}
@media(max-width:760px){.chart-layout{gap:12px}.donut{width:110px;height:110px}.chart-legend strong{font-size:var(--fs-14)}}

.team-navigation{position:sticky;top:0;background:var(--gray-25);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:760px){.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 var(--gray-700)}.team-stats h2{margin:0 0 10px;font-size:var(--fs-16)}.team-ledgers{display:block}.team-ledgers>.panel{margin:18px 0;padding:20px}.team-table-scroll{overflow:auto;margin-top:14px;border:1px solid var(--gray-200);border-radius:var(--radius-card);max-height:520px}.team-table{width:100%;border-collapse:collapse;min-width:620px;font-size:var(--fs-14)}.team-table th{position:sticky;top:0;background:var(--gray-100);color:var(--gray-800);text-align:left;z-index:1}.team-table td,.team-table th{padding:11px 14px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.team-table tbody tr:nth-child(even){background:var(--gray-25)}.team-table tbody tr:hover{background:var(--gray-50)}.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:var(--gray-700);cursor:pointer}.team-project-list{display:grid;gap:16px}.team-project-list .card{border-left:5px solid var(--gray-600);padding:22px;background:linear-gradient(105deg,var(--gray-50),var(--gray-0) 55%);box-shadow:var(--shadow)}.team-project-list h2{font-size:var(--fs-24);margin:12px 0}.team-project-list .actions{margin-top:18px}.team-project-list .tag{background:var(--gray-200);color:var(--gray-800)}.team-navigation .link-button:hover{background:var(--gray-100)}.team-table input{margin:0}.team-ledgers h2{font-size:var(--fs-20);margin:0 0 12px}@media(max-width:760px){.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:var(--fs-16)}.team-project-list .card{padding:16px}.team-project-list h2{font-size:var(--fs-20)}.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:760px){.team-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}.team-navigation>*{padding:10px 5px!important;font-size:var(--fs-12)}}

.project-register{max-height:none;border-top:4px solid var(--gray-600);box-shadow:var(--shadow)}.project-register td:first-child strong{font-size:var(--fs-16);color:var(--brand-700)}.project-register small{display:block;margin-top:5px;color:var(--gray-500)}.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:var(--series-2)}.team-navigation .primary,.project-register .primary{background:var(--gray-700);color:var(--gray-0)}.project-register .tag{background:var(--gray-100);color:var(--gray-700)}body{background:var(--gray-50)}.team-ledgers h2{border-left:3px solid var(--series-2);padding-left:10px}

/* ledger shell hooks */
body:has(nav.team-navigation)>header::before{content:none;display:none}

.updates-feed>p{margin:4px 0 0}.updates-feed .team-table-scroll{margin-top:8px}.updates-feed .team-table td,.updates-feed .team-table th{padding:6px 10px}.updates-feed .team-table .link-button{min-height:36px;padding:4px 10px}


/* Company Home: scoped to staff pages, preserving project and client layouts. */
#portal.company-workspace{max-width:1480px}
.company-workspace .team-navigation{gap:6px;border-bottom:1px solid var(--gray-200)}
.company-heading,.company-section-title{display:flex;align-items:center;justify-content:space-between;gap:18px}
.company-heading{margin:18px 0}.company-heading p{margin:5px 0;font-size:var(--fs-12)}.company-live{font-size:var(--fs-12);font-weight:700;color:var(--status-warning)}
.company-metrics,.company-cash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.company-metric{min-width:0;padding:20px;background:var(--gray-0);border:1px solid var(--gray-200);border-radius:var(--radius-card);border-top:3px solid var(--gray-700)}
.company-metric>span,.company-metric>strong,.company-metric>small{display:block}
.company-metric>span{font-size:var(--fs-12);font-weight:600;color:var(--gray-600)}
.company-metric>strong{font-size:var(--fs-20);line-height:1.35;margin:12px 0 8px;letter-spacing:-.6px;color:var(--brand-700);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.company-metric>small{font-size:var(--fs-12);line-height:1.5;color:var(--gray-500)}
.company-metric.company-due{border-top-color:var(--series-2)}
.company-workspace .company-cash,.company-workspace .company-projects{padding:22px;margin:20px 0}
.company-section-title h2{margin:0;font-size:var(--fs-16)}.company-section-title p{margin:6px 0 0;font-size:var(--fs-12)}
.company-cash-grid{margin-top:18px;gap:0}.company-cash-grid .company-metric{border:0;border-right:1px solid var(--gray-100);border-radius:0;padding:12px 18px;background:transparent}.company-cash-grid .company-metric:first-child{padding-left:0}.company-cash-grid .company-metric:last-child{border-right:0;padding-right:0}
.company-cash-grid .company-cash-total{background:var(--gray-25);border-radius:var(--radius-card)}
.company-workspace .company-balance-table{min-width:760px;table-layout:auto;font-size:var(--fs-13)}
.company-workspace .company-balance-table td,.company-workspace .company-balance-table th{min-width:0;padding:12px;white-space:nowrap}
.company-workspace .company-balance-table td:first-child{white-space:normal;overflow-wrap:anywhere;max-width:240px}
.company-workspace .company-balance-table .number{text-align:right;font-variant-numeric:tabular-nums}
.company-workspace .company-balance-table td:last-child{width:88px}
.company-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}
.company-shortcuts>a{padding:16px 18px;border:1px solid var(--gray-200);border-radius:var(--radius-card);text-decoration:none;background:var(--gray-50)}
.company-shortcuts strong,.company-shortcuts span{display:block}.company-shortcuts strong{font-size:var(--fs-14);color:var(--gray-700)}.company-shortcuts span{font-size:var(--fs-12);margin-top:7px;color:var(--gray-500)}
.company-workspace .team-ledgers>.panel{padding:20px}.company-workspace .team-ledgers .team-table td:nth-last-child(2){min-width:0}
.company-workspace .team-ledgers .team-table td:last-child{width:100px}.company-workspace .team-ledgers .team-table td:first-child{width:165px}
@media(max-width:1000px){.company-metrics,.company-cash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-cash-grid{gap:12px}.company-cash-grid .company-metric{padding:14px!important;border:1px solid var(--gray-100);border-radius:var(--radius-card)}.company-shortcuts{grid-template-columns:1fr}}
@media(max-width:760px){.company-heading,.company-section-title{align-items:flex-start;flex-direction:column;gap:10px}.company-metric{padding:14px}.company-metric>strong{font-size:var(--fs-20)}.company-workspace .company-cash,.company-workspace .company-projects{padding:15px}.company-metrics{gap:10px}}
.company-workspace .team-navigation a[aria-current="page"]{background:var(--gray-700);border-color:var(--gray-700);color:var(--gray-0)}
@media(min-width:1024px){html body #portal.company-workspace .team-ledgers .team-table .team-date{white-space:nowrap;min-width:180px}html body #portal.company-workspace .team-ledgers .team-table td:nth-child(2){max-width:260px}}
.company-workspace .company-feed-table{table-layout:fixed}
.company-workspace .company-feed-table td{overflow-wrap:anywhere}


/* R8 admin-only preview workspace; existing desktop pages retain their styles. */
@media screen {
#portal.preview-workspace{max-width:none;margin:0;padding:24px;display:block}
.preview-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.preview-toolbar h1{font-size:var(--fs-20);margin:0;flex:1}.preview-toolbar label{margin:0}.preview-toggle{display:flex;gap:4px;padding:4px;background:var(--soft);border-radius:var(--radius-card)}.preview-toggle button[data-preview-mode=pc]:before{content:"";display:inline-block;width:14px;height:10px;border:1.5px solid currentColor;border-radius:var(--radius-sm);margin-right:6px}.preview-toggle button[data-preview-mode=mobile]:before{content:"";display:inline-block;width:8px;height:14px;border:1.5px solid currentColor;border-radius:var(--radius-sm);margin-right:6px;vertical-align:middle}.preview-toggle button[aria-pressed=true]{background:var(--accent);color:var(--gray-0);border-color:var(--accent)}
.preview-status{font-size:var(--fs-13);color:var(--secondary);margin:16px 0}.preview-status.is-pending{color:var(--status-warning)}.preview-status a{color:inherit;font-weight:700}
.preview-frames{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.preview-device{min-width:0}.preview-pc{border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--gray-0)}.preview-browser-strip{padding:12px 16px;background:var(--soft);display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-12)}.preview-pc-stage{position:relative;width:100%;overflow:hidden}.preview-pc iframe{position:absolute;left:0;top:0;width:1366px;height:860px;max-width:none;transform-origin:top left;border:0;background:var(--gray-0)}.preview-mobile{width:406px;max-width:100%;justify-self:center}.preview-mobile>p{font-size:var(--fs-12);text-align:center;margin:0 0 12px}.preview-phone-stage{width:100%;overflow:hidden}.preview-phone{width:406px;height:860px;padding:8px;background:var(--gray-800);border-radius:var(--radius-card);transform-origin:top left}.preview-phone iframe{display:block;width:390px;height:844px;max-width:none;border:0;border-radius:var(--radius-card);background:var(--gray-0)}
#portal[data-preview-mode=pc] .preview-mobile,#portal[data-preview-mode=mobile] .preview-pc{display:none}
body.client-preview-frame>header{display:none}body.client-preview-frame .client-preview-ribbon{position:relative;z-index:40;padding:8px 16px;text-align:center;font-size:var(--fs-12);background:var(--status-warning-bg);color:var(--status-warning);pointer-events:none}body.client-preview-frame #portal{padding-top:16px}
@media(min-width:1280px){#portal[data-preview-mode=both] .preview-frames{grid-template-columns:minmax(0,1fr) 406px}}
@media(max-width:760px){#portal.preview-workspace{padding:12px}.preview-toolbar{gap:8px}.preview-toolbar h1{flex-basis:100%;font-size:var(--fs-16)}.preview-toggle{display:none}.preview-status{line-height:1.5}.preview-toolbar .link-button{font-size:var(--fs-12)}}
}
