:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#17324b;background:#f3f6fa;font-size:16px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{padding:22px 5vw;background:#102b46;color:white;display:flex;align-items:center;justify-content:space-between;gap:16px}header strong{display:block;font-size:1.3rem;overflow-wrap:anywhere}header span{font-size:.85rem;color:#bbd3ea}button,input,select,textarea{font:inherit}button,.link{border:1px solid #b8cde0;background:white;color:#155b9e;border-radius:8px;padding:10px 16px;cursor:pointer;min-height:44px}button:hover{background:#edf5ff}button:disabled{opacity:.5;cursor:wait}button.primary{background:#1568b6;color:white;border-color:#1568b6}nav{display:flex;gap:8px;flex-wrap:wrap;padding:20px 5vw;border-bottom:1px solid #dce5ef;background:#fff}nav button[aria-current=page]{background:#1568b6;color:white}main,.welcome{max-width:1200px;margin:32px auto;padding:0 24px}.welcome{max-width:650px;padding:48px 24px}h1{font-size:clamp(1.8rem,4vw,2.5rem);letter-spacing:-.035em;margin:0 0 12px}h2{font-size:1.25rem;margin-top:0}h3{font-size:1.05rem}p{line-height:1.65}.muted,small{color:#536c83}.panel,.metric{background:white;border:1px solid #dae4ee;border-radius:14px;padding:24px;margin-bottom:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.metric strong{display:block;font-size:1.8rem;margin-top:8px}.toolbar,.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0}label{display:block;font-weight:600;margin:12px 0}input,textarea,select{display:block;width:100%;border:1px solid #b8c9da;border-radius:8px;padding:11px;margin-top:6px;color:inherit;background:#fff}input[type=checkbox]{display:inline;width:auto;margin-right:8px}textarea{resize:vertical;min-height:100px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:14px 10px;border-bottom:1px solid #e4ebf2;vertical-align:top}th{font-size:.85rem;color:#536c83}td .actions{margin:0}.badge{display:inline-block;padding:3px 9px;border-radius:14px;background:#eaf3fc;color:#155b9e;font-size:.85rem;white-space:nowrap}.warning{background:#fff4d8;border:1px solid #e9ce89;border-radius:8px;padding:12px}.line{display:grid;grid-template-columns:3fr 1fr 1fr 1fr auto;gap:10px;align-items:end;border-bottom:1px solid #e4ebf2;padding-bottom:14px}#status{padding:0 5vw}#status:not(:empty){padding:14px 5vw;background:#fff1d4;color:#66470a}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.timeline{border-left:3px solid #d4e6f5;padding-left:18px}.timeline article{padding-bottom:16px}.money{white-space:nowrap}a{color:#1568b6}:focus-visible{outline:3px solid #f39237;outline-offset:3px}@media(max-width:700px){.grid,.metrics{grid-template-columns:1fr}.panel{padding:18px}main{padding:0 16px}.line{grid-template-columns:1fr 1fr}.line label:first-child{grid-column:1/-1}nav{padding:14px}header{padding:18px}td,th{padding:12px 8px}button{padding:10px 12px}}

@media print{header,nav,#status,.no-print{display:none!important}body{background:white}main{max-width:none;margin:0;padding:0}.document{border:0;padding:0}button{display:none}tr{break-inside:avoid}.table-wrap{overflow:visible}}

.business-logo{display:block;max-width:180px;max-height:100px;object-fit:contain;margin:16px 0}

/* Sidebar on desktop, a scrollable top menu on smaller screens. */
#workspace:not([hidden]){display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 100px)}
#workspace nav{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:24px 16px;border-right:1px solid #dce3ec;border-bottom:0;align-self:start;position:sticky;top:0}
#workspace nav button{text-align:left;white-space:nowrap}
#workspace nav button[aria-current="page"]{background:#153956;color:white;border-color:#153956}
.workspace-main{min-width:0}main{width:100%;box-sizing:border-box}.guide-preview{background:#eff5fb;border-left:4px solid #e88b39;padding:20px;margin:20px 0}.guide-steps{color:#536579}details{margin:18px 0}summary{cursor:pointer;min-height:44px;font-weight:600}input[type=checkbox]{width:auto;display:inline-block;margin-right:8px}
@media(max-width:899px){#workspace:not([hidden]){display:block}#workspace nav{position:relative;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding:12px 16px;border-right:0;border-bottom:1px solid #dce3ec;max-width:100%;box-sizing:border-box}#workspace nav button{flex:0 0 auto}main{margin:24px auto}}
@media print{#workspace:not([hidden]){display:block}#workspace nav{display:none}}

.login-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:64px;max-width:1050px;align-items:center;padding:56px 24px}.login-intro h1{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.08}.eyebrow{font-weight:750;letter-spacing:.18em;color:#1568b6}.login-card{box-shadow:0 20px 60px #102b4610}.login-card form>button{width:100%;margin-top:16px}.login-card .quiet{font-size:.9rem;border:0;background:transparent;text-decoration:underline}.login-card input[readonly]{font-family:monospace;font-size:.9rem}.login-intro{overflow-wrap:anywhere}@media(max-width:700px){.login-layout{grid-template-columns:1fr;gap:24px;padding:28px 16px}.login-intro h1{font-size:2.6rem}.login-intro>p:not(.eyebrow){display:none}}

.planner-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.planner-controls label{margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #dce3ec;border-left:1px solid #dce3ec}.calendar-day{min-height:145px;border-right:1px solid #dce3ec;border-bottom:1px solid #dce3ec;padding:8px;min-width:0}.calendar-day h3{font-size:.8rem;margin:0 0 12px}.other-month{background:#f1f4f7;color:#65788b}.calendar-today{box-shadow:inset 0 3px #e88b39}.calendar-job{display:block;width:100%;text-align:left;padding:8px;margin-bottom:6px;background:#eaf3ff;border-left:4px solid #1568b6;font-size:.8rem;white-space:normal;overflow-wrap:anywhere}.calendar-job small{display:block;margin-top:4px}.job-completed{background:#e5f5ee;border-left-color:#24835b}.job-in_progress{background:#fff2db;border-left-color:#d48b13}.planner-agenda{display:none}.show-agenda{display:block}.agenda-job{border-bottom:1px solid #dce3ec;padding:12px 0}.extra-metrics{margin-top:24px}.extra-metrics .metric strong{font-size:1.4rem}fieldset{border:1px solid #dce3ec;border-radius:8px;margin:16px 0;min-width:0}.approval-wrap{max-width:850px;margin:36px auto;padding:0 20px}.approval-total{font-size:1.4rem;font-weight:700}.approval-wrap textarea{min-height:100px}
@media(max-width:1100px){.calendar-grid{display:none}.planner-agenda{display:block}.planner-controls{align-items:stretch}.planner-controls label{min-width:140px;flex:1}}

/* Forge branding and support remain available throughout the portal. */
.portal-brand,.header-actions{display:flex;align-items:center;gap:14px}.portal-brand{min-width:0}.portal-brand>div{min-width:0}.portal-brand>a{flex-shrink:0}.forge-logo{display:block;width:56px;height:56px;object-fit:contain;background:#fff;border-radius:8px}.header-actions{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.contact-forge{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}.contact-forge:hover{background:#edf5ff}@media(max-width:480px){header{gap:10px;padding:14px}.portal-brand{gap:10px}.forge-logo{width:44px;height:44px}header strong{font-size:1rem}.header-actions{gap:8px}.contact-forge{padding:10px;font-size:.9rem}}


/* Keep the header and tool navigation in place; scroll only the workspace. */
body:has(#workspace:not([hidden])){height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body:has(#workspace:not([hidden]))>header,body:has(#workspace:not([hidden]))>#status{flex-shrink:0}
#workspace:not([hidden]){flex:1;min-height:0;overflow:hidden}
#workspace nav{position:static;height:100%;overflow-y:auto;min-height:0}
.workspace-main{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#content:focus{outline:none}
.line label{margin:0}.line input,.line select{min-height:44px}.line>button{align-self:end;height:44px}
.saved-service-controls{align-items:flex-end}.saved-service-controls>label{margin:0;min-width:200px;max-width:100%;flex:1}.saved-service-controls select{min-height:44px}.saved-service-controls>button{height:44px}
@media(max-width:899px){#workspace:not([hidden]){display:flex;flex-direction:column}#workspace nav{height:auto;flex-shrink:0;overflow-y:hidden}.workspace-main{flex:1}}
@media print{body:has(#workspace:not([hidden])){height:auto;display:block;overflow:visible}#workspace:not([hidden]),.workspace-main{overflow:visible;height:auto}}

.approval-link-controls{display:flex;align-items:stretch;gap:8px;max-width:100%}.approval-link-controls input{min-width:0;flex:1;margin:0}.approval-link-controls button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0}.approval-link-controls svg{flex-shrink:0;width:18px;height:18px}

/* Keep portal branding close to the left edge on desktop. */
@media(min-width:900px){body>header{padding-left:16px}}

/* Distinguish normal notifications from errors. */
#status:not(:empty){background:#e7f6ec;color:#205c35;border-bottom:1px solid #b7dec3}
#status[data-tone="error"]:not(:empty){background:#fdecec;color:#8a1c1c;border-bottom-color:#efbbbb}


.month-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.month-filters [aria-pressed="true"]{background:#142d48;color:white}.receipt-previews{display:flex;flex-wrap:wrap;gap:1rem}.receipt-preview{width:220px;padding:1rem;border:1px solid #ccd5df;border-radius:8px}.receipt-preview img{width:100%;max-height:260px;object-fit:contain}.receipt-picker{padding:1rem;background:#edf3f8;border-radius:8px;margin-block:1rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
