*{box-sizing:border-box}:root{--colour-ink:#17202a;--colour-navy:#111827;--colour-navy-soft:#1f2937;--colour-surface:#ffffff;--colour-canvas:#eef2f6;--colour-canvas-soft:#f8fafc;--colour-muted:#52616f;--colour-muted-strong:#475569;--colour-muted-light:#aab6c5;--colour-line:#d9e1ea;--colour-line-dark:#384454;--colour-accent:#0f766e;--colour-accent-hover:#115e59;--colour-accent-active:#38bdf8;--colour-accent-soft:#ecfdf5;--colour-warning:#f59e0b;--colour-success:#047857;--shadow-soft:0 18px 50px rgba(15,23,42,0.08);--radius-none:0;--space-page:2rem;--content-width:1120px;--tap-target:2.75rem}body,html{min-height:100%;margin:0}body{font-family:Arial,Helvetica,sans-serif;background:var(--colour-canvas);color:var(--colour-ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.72}.app-frame{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.app-sidebar{display:flex;flex-direction:column;gap:2rem;min-height:100vh;padding:1.5rem;background:var(--colour-navy);color:#f8fafc}.brand-block{display:flex;align-items:center;gap:.75rem}.brand-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--colour-line-dark);background:var(--colour-navy-soft);font-size:.875rem;font-weight:800;letter-spacing:.04em}.brand-block span,.brand-block strong{display:block}.brand-block strong{font-size:1rem}.brand-block span:not(.brand-mark){margin-top:.15rem;color:var(--colour-muted-light);font-size:.78rem}.main-nav{display:grid;grid-gap:.35rem;gap:.35rem}.nav-item{display:flex;align-items:center;min-height:var(--tap-target);padding:0 .8rem;border-left:3px solid transparent;color:#d8dee8;font-size:.92rem}.nav-item:hover{background:rgba(255,255,255,.05)}.nav-item-active{border-left-color:var(--colour-accent-active);background:var(--colour-navy-soft);color:#ffffff}.nav-item-disabled{color:#697586;cursor:not-allowed}.nav-item-disabled:hover{background:transparent}.app-main{min-width:0;display:flex;flex-direction:column}.top-bar{min-height:4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 var(--space-page);border-bottom:1px solid var(--colour-line);background:var(--colour-surface)}.top-bar strong,.top-bar-label{display:block}.eyebrow,.top-bar-label{color:#64748b;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.top-bar-session{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;min-width:0}.session-pill{max-width:20rem;overflow:hidden;padding:.45rem .7rem;border:1px solid var(--colour-line);background:var(--colour-canvas-soft);color:var(--colour-muted-strong);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.top-bar-action{min-height:2.25rem;padding-inline:.75rem;font-size:.85rem}.page-content{width:min(var(--content-width),100%);padding:var(--space-page)}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.page-heading h1{margin:.25rem 0 0;font-size:clamp(1.75rem,3vw,2.4rem);line-height:1.05;letter-spacing:-.04em}.page-heading p{max-width:44rem;margin:.65rem 0 0;color:var(--colour-muted);line-height:1.5}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-target);padding:0 .95rem;border:1px solid transparent;font-weight:800}.primary-action{border-color:var(--colour-accent);background:var(--colour-accent);color:#ffffff}.primary-action:hover{border-color:var(--colour-accent-hover);background:var(--colour-accent-hover)}.secondary-action{border-color:var(--colour-line);color:var(--colour-ink)}.metric-block,.secondary-action{background:var(--colour-surface)}.metric-block{min-width:9rem;padding:.9rem;border:1px solid var(--colour-line);text-align:right}.metric-block span,.metric-block strong{display:block}.metric-block span{font-size:2rem;font-weight:800;letter-spacing:-.05em}.metric-block strong{color:var(--colour-muted);font-size:.8rem}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.auth-card,.company-row,.empty-state,.form-card,.module-tile{border:1px solid var(--colour-line);background:var(--colour-surface)}.module-tile{min-height:11rem;padding:1rem}.module-tile span{color:#64748b;font-size:.75rem;font-weight:800;text-transform:uppercase}.auth-card h1,.company-row h2,.empty-state h2,.form-card h2,.module-tile h2{margin:.55rem 0 0;font-size:1.1rem}.auth-card p,.empty-state p,.form-card p,.module-tile p{margin:.65rem 0 0;color:var(--colour-muted);line-height:1.5}.module-ready{border-top:4px solid var(--colour-accent)}.company-list{display:grid;grid-gap:.75rem;gap:.75rem}.company-row{padding:1rem}.company-row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.company-row h2{margin-top:0}.company-row p{margin:.4rem 0 0;color:var(--colour-muted)}.status-badge{flex:0 0 auto;padding:.25rem .55rem;border:1px solid #b7e4d8;background:var(--colour-accent-soft);color:var(--colour-success);font-size:.78rem;font-weight:800}.status-muted{border-color:var(--colour-line);background:var(--colour-canvas-soft);color:#64748b}.company-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0 0}.company-meta div{min-width:0}.company-meta dt{color:#64748b;font-size:.75rem;font-weight:800;text-transform:uppercase}.company-meta dd{overflow-wrap:anywhere;margin:.25rem 0 0;color:var(--colour-ink)}.auth-card,.empty-state,.form-card,.loading-list{padding:1.25rem}.auth-state{border-left:4px solid var(--colour-warning)}.loading-list{display:grid;grid-gap:.75rem;gap:.75rem;border:1px solid var(--colour-line);background:var(--colour-surface)}.loading-list span{height:4.5rem;background:linear-gradient(90deg,var(--colour-canvas),var(--colour-canvas-soft),var(--colour-canvas))}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(18rem,.9fr) minmax(20rem,1.1fr);background:var(--colour-canvas)}.auth-brand-panel{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,4vw,3.5rem);background:var(--colour-navy);color:#ffffff}.auth-brand-panel h1{max-width:32rem;margin:.35rem 0 0;font-size:clamp(2rem,5vw,4rem);line-height:.95;letter-spacing:-.06em}.auth-brand-panel p{max-width:28rem;color:var(--colour-muted-light);line-height:1.6}.auth-card-wrap{display:grid;place-items:center;padding:clamp(1rem,4vw,3rem)}.auth-card{width:min(27rem,100%);box-shadow:var(--shadow-soft)}.form-stack{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.25rem}.form-field{display:grid;grid-gap:.4rem;gap:.4rem}.form-field label{color:var(--colour-ink);font-size:.88rem;font-weight:800}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:var(--tap-target);border:1px solid var(--colour-line);background:var(--colour-surface);color:var(--colour-ink);padding:.7rem .8rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.nav-item:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible{outline:3px solid rgba(56,189,248,.35);outline-offset:2px}.field-error,.form-error{color:#b45309;font-size:.88rem;line-height:1.4}.form-error{padding:.75rem;border-left:4px solid var(--colour-warning);background:#fffbeb}.form-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.25rem}@media (max-width:840px){:root{--space-page:1rem}.app-frame,.auth-layout{grid-template-columns:1fr}.app-sidebar{min-height:auto;gap:1rem}.main-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.company-row-main,.page-heading,.top-bar{align-items:stretch;flex-direction:column}.top-bar-session{align-items:stretch;justify-content:flex-start;flex-wrap:wrap}.page-content,.top-bar{padding:var(--space-page)}.company-meta,.module-grid{grid-template-columns:1fr}.metric-block{text-align:left}.auth-brand-panel{min-height:auto;padding:1.25rem}.auth-card-wrap{display:block;padding:1rem}.auth-card{width:100%;box-shadow:none}}@media (max-width:520px){.main-nav{grid-template-columns:1fr}.brand-block,.form-actions,.top-bar{align-items:stretch}.primary-action,.secondary-action{width:100%}.session-pill{max-width:100%}}