:root{--brand-navy:#14243b;--brand-teal:#087f78;--brand-bg:#f5f7f9;--brand-ink:#1e2d3e;--brand-muted:#6a7686}
body{background:var(--brand-bg);color:var(--brand-ink)}
.shell{grid-template-columns:236px minmax(0,1fr)}
.sidebar{background:var(--brand-navy);padding:24px 13px 20px;display:flex;flex-direction:column;gap:9px}
.sidebar .brand{padding:4px 6px 23px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #ffffff2a;letter-spacing:normal}
.brand img{height:62px;width:78px;object-fit:contain;flex:none;background:#050506;border-radius:9px}
.brand .brand-words{display:flex;flex-direction:column;gap:3px}
.brand .brand-words strong{display:block;font-size:21px;font-weight:840;line-height:1.04;color:#fff;letter-spacing:-.5px}
.brand .brand-words small{font-size:9px;font-weight:800;color:#bacad5;letter-spacing:1.45px}
.nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto;scrollbar-width:thin;max-height:calc(100vh - 240px)}
.nav-label{padding:19px 11px 8px;font-size:10px;font-weight:800;letter-spacing:1.5px;color:#8fa8bd;text-transform:uppercase}
.nav button{font-size:13px;font-weight:580;padding:11px 12px;color:#cbd7e0;display:flex;align-items:center;gap:9px}
.nav button .nav-icon{font-size:15px;width:21px;opacity:.75;text-align:center}
.nav button.active{background:#24465e;color:#fff;box-shadow:inset 3px 0 #21c5b1}
.nav button:hover{background:#ffffff15}
.sidebar-foot{margin-top:auto;padding:14px 12px 0;border-top:1px solid #ffffff2b;font-size:11px;line-height:1.55;color:#b4c4d0}
.sidebar-foot strong{font-size:12px;color:white}
.topbar{height:74px;border-color:#e2e8ec;padding:15px 30px}
.topbar h1{font-size:17px;font-weight:780;letter-spacing:-.3px}
.topbar .meta{color:#7a8b99}
.main{padding:29px 30px;max-width:1760px}
.section-title{font-size:28px;letter-spacing:-.9px;font-weight:800}
.metric{border-radius:12px;box-shadow:0 2px 14px #1a304009;border:1px solid #e3e9ed}
.metric label{font-size:12px;color:#71808c}
.metric strong{color:#17394b;letter-spacing:-1px}
.metric.green strong{color:#087f78}
.metric.urgent strong{color:#b74939}
.panel{box-shadow:0 2px 14px #1a304009;border-color:#e2e8ed}
.panel-head{padding:20px 23px}
.panel-head h2{font-size:18px;letter-spacing:-.3px}
.btn{background:#087f78;border-color:#087f78;border-radius:8px}
.btn.secondary{background:#fff}
.btn:hover{filter:brightness(.96)}
table th{background:#f7f9fb}
.number{font-size:18px;color:#153e56;letter-spacing:.2px}
.eyebrow{color:#087f78;font-size:10px;font-weight:850;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:7px}
.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}
.admin-heading .subtle{margin:5px 0}
.admin-shield{color:#087f78;background:#e4f4f0;font-size:11px;font-weight:800;border:1px solid #c7e4dc;padding:8px 11px;border-radius:30px}
.admin-tabs{display:flex;gap:8px;padding-bottom:12px}
.admin-tabs button{border:1px solid #dce6ea;background:#fff;color:#4d6474;padding:11px 18px;font-weight:780;border-radius:8px}
.admin-tabs button.selected{background:#087f78;color:white;border-color:#087f78}
.role-layout{display:grid;grid-template-columns:minmax(185px,230px) minmax(0,1fr);gap:16px;padding:16px}
.role-list{border:1px solid #e2e8ed;background:#fbfcfc;border-radius:12px;padding:14px;align-self:start;display:grid;gap:6px}
.role-list h4{font-size:10px;letter-spacing:1.1px;color:#708393;margin:4px 7px 10px}
.role-choice{border:0;border-radius:8px;padding:11px 9px;text-align:left;background:transparent;width:100%;display:grid;gap:4px;color:#213749}
.role-choice strong{font-size:12px}
.role-choice small{font-size:10px;color:#8294a0}
.role-choice.selected{background:#e2f4f0;color:#087f78}
.role-details{border:1px solid #e2e8ed;border-radius:12px;overflow:hidden}
.role-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 19px}
.role-header h3{margin:0;font-size:18px}
.role-header p{margin:5px 0 0}
.perm-section h4{font-size:10px;letter-spacing:1px;color:#556e7c;background:#f5f8fa;padding:12px 17px;margin:0;border-top:1px solid #e5ecf0;border-bottom:1px solid #e5ecf0}
.perm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px;padding:2px 16px}
.permission-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf2f4;padding:11px 2px;cursor:pointer}
.permission-item span{display:grid;gap:3px;min-width:0}
.permission-item strong{font-size:11.5px;color:#167368}
.permission-item small{font-size:9px;color:#8395a0;overflow-wrap:anywhere}
.permission-item input{width:16px;height:16px;flex:none;accent-color:#087f78}
.permission-item input:disabled{cursor:not-allowed}
.role-footer{padding:15px 18px;display:flex;justify-content:flex-end;border-top:1px solid #e2e8ed;background:#fbfcfd}
.role-footer strong{background:#e3f5ef;border:1px solid #bfe2d5;color:#067459;padding:10px;border-radius:7px;font-size:11px}
.responsive-table{width:100%;overflow-x:auto}
.responsive-table td select{width:100%;min-width:145px;background:#fff;border:1px solid #d6e3e8;border-radius:7px;padding:8px}
.responsive-table td select:disabled{color:#74828b;background:#f2f4f6}
.active-toggle{display:flex;gap:6px;align-items:center;white-space:nowrap}
.active-toggle input{accent-color:#087f78}
.info-strip{margin:12px 20px;padding:11px 15px;background:#eef6f5;border:1px solid #d6e8e4;color:#477469;border-radius:8px;font-size:12px}
#invites-host{border-top:1px solid #e4ebef}
#invites-host .panel{border:0;box-shadow:none;margin:0}
#invites-host .panel-head{background:#fafcfd}
.admin-overview-callouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:17px 0}
.admin-overview-callouts .metric{min-height:85px}
#admin-body .panel-head h2{margin:0}
.admin-details-note{padding:15px 20px;color:#697f8c;font-size:12px;background:#fafcfd;border-top:1px solid #e4ebef}
.tv-page{background:radial-gradient(ellipse at 90% 0,#134459,#0d2c3b 50%,#091b2c);gap:1.55vh}
.tv-top h1{letter-spacing:-.4px}
.tv-exit{background:#e9f3f5;border:1px solid #b5ced9;color:#0f3041;padding:10px 16px;border-radius:10px;font-size:13px;font-weight:800;margin-left:18px;cursor:pointer}
.tv-exit:hover{background:#fff}
.tv-table .tv-number{font-size:clamp(20px,1.9vw,35px)}
.tv-table tr.tv-high{background:#4a2c33}
.tv-table tr.tv-high td:first-child{box-shadow:inset 6px 0 #ff5b5b}
@media(max-width:1000px){.shell{grid-template-columns:205px 1fr}.main{padding:20px}.perm-grid{grid-template-columns:1fr}.role-layout{grid-template-columns:165px minmax(0,1fr)}}
@media(max-width:700px){.shell{display:block}.sidebar{min-height:0}.sidebar .brand{padding:8px 10px}.nav{display:flex;flex-direction:row;max-height:none;overflow-x:auto}.nav-label{display:none}.nav button{white-space:nowrap;flex:none}.sidebar-foot{display:none}.topbar{height:auto}.admin-heading{align-items:start}.admin-shield{display:none}.role-layout{grid-template-columns:1fr}.role-list{display:flex;overflow-x:auto}.role-choice{min-width:120px}.admin-tabs{flex-wrap:wrap}.tv-exit{padding:7px;margin:5px}}

.setup-panel{margin:18px 0 22px}
.setup-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:18px 20px 23px}
.setup-tile{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;min-height:138px;padding:20px 18px;border:1px solid #e1e8ec;border-radius:11px;background:linear-gradient(145deg,#fff,#f4f8f9);color:#20384a;cursor:pointer}
.setup-tile:hover,.setup-tile:focus-visible{border-color:#6bbab2;box-shadow:0 5px 18px #0a786c18;background:#f5fbfa}
.setup-icon{display:grid;place-items:center;width:34px;height:34px;background:#e0f4ef;border-radius:9px;color:#087f78;font-size:20px;font-weight:850}
.setup-tile strong{font-size:13px}
.setup-tile small{font-size:11px;color:#708591;line-height:1.5}
@media(max-width:1000px){.setup-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.setup-tiles{grid-template-columns:1fr}}

.auth-brand{display:flex;align-items:center;gap:15px;margin-bottom:18px}
.auth-brand img{width:88px;height:70px;object-fit:contain;background:#050506;border-radius:9px}
.auth-brand h1{font-size:29px;margin:0 0 3px;color:#183346}
.auth-brand p{font-size:12px;letter-spacing:.8px;text-transform:uppercase;font-weight:800;margin:0;color:#087f78}
.tv-title{display:flex;align-items:center;gap:14px}
.tv-title .tv-logo{width:64px;height:52px;object-fit:contain;background:#050506;border-radius:8px}

/* Position-based permissions: readable hierarchy and genuinely locked actions. */
.authority-note{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;margin:16px 16px 2px;padding:15px 17px;background:#eff5f7;border:1px solid #d7e5e9;border-radius:10px;color:#526b7a;font-size:11px}
.authority-note strong{grid-column:1/-1;color:#173b4c;font-size:12px}
.authority-note span{padding:2px 0}
.position-blocked strong,.position-blocked small{color:#929da7!important}
.permission-item .locked-position{font-weight:700;font-size:9px;color:#a05a48!important}
.position-blocked input{cursor:not-allowed}
@media(max-width:1050px){.authority-note{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.authority-note{grid-template-columns:1fr}}

/* QNA internal General Contractor directory */
.gc-top{margin-bottom:22px}
.gc-top .subtle{margin:5px 0}
.gc-list-head{flex-wrap:wrap}
.gc-count{font-size:12px;color:#087f78;background:#e3f3ee;border-radius:20px;padding:3px 9px;margin-left:5px}
#gc-search{min-width:245px;padding:10px 13px;border:1px solid #d5e1e5;border-radius:9px;background:#fbfdfd}
.gc-directory-list{padding:6px 0}
.gc-directory-row{width:100%;display:flex;align-items:center;gap:16px;text-align:left;border:none;border-bottom:1px solid #edf1f3;background:white;padding:16px 22px;color:#223b4b}
.gc-directory-row:hover{background:#f4faf9}
.gc-directory-row:last-child{border-bottom:none}
.gc-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:10px;background:#e2f2ef;font-size:18px;font-weight:850;color:#167d75}
.gc-directory-info{display:grid;gap:5px;flex:1;min-width:0}
.gc-directory-info strong{font-size:14px;font-weight:750}
.gc-directory-info small{font-size:12px;color:#758894}
.gc-view{font-size:12px;font-weight:750;color:#087f78;white-space:nowrap}
.gc-view span{font-size:20px;margin-left:8px}
.gc-editor{padding:22px}
.gc-editor h3{font-size:16px;margin:3px 0 15px;color:#163d4f}
.gc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin:0 0 19px}
.gc-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.gc-field span{font-size:11px;font-weight:780;color:#526b7a}
.gc-field input,.gc-field textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #d2e0e6;border-radius:8px;background:#fff;color:#223b49}
.gc-field input:focus,.gc-field textarea:focus{border-color:#0a8b83;outline:2px solid #0b98882b}
.gc-field textarea{resize:vertical;min-height:72px}
.gc-field [disabled]{background:#f4f7f8;color:#607584}
.gc-contact-heading{margin-top:28px;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e1e9ed}
.gc-contact-heading h3{margin:0}
.gc-contact{background:#f9fbfc;border:1px solid #dde7eb;border-radius:11px;margin:15px 0;padding:16px 19px}
.gc-contact-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.gc-contact-top h4{font-size:13px;margin:0;color:#193c50}
.gc-switch{font-size:12px;color:#526b78;display:flex;align-items:center;gap:8px}
.gc-switch input{accent-color:#087f78;width:17px;height:17px}
.gc-emails{margin-top:8px}
.gc-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:20px;margin-top:24px;border-top:1px solid #e1e9ed}
@media(max-width:850px){.gc-form-grid{grid-template-columns:1fr}}
@media(max-width:620px){.gc-top{align-items:start;flex-direction:column}.gc-directory-row{padding:14px 12px}.gc-editor{padding:14px}.gc-view{font-size:10px}#gc-search{min-width:0;width:100%}.gc-actions{justify-content:stretch}.gc-actions .btn{flex:1}}

.gc-outlook-source{background:#f1f7f6;border:1px solid #d1e7e3;border-radius:9px;margin:0 0 20px;padding:11px 15px;font-size:12px;color:#4b6d70}
.gc-outlook-source summary{color:#0b766d;font-weight:750;cursor:pointer;list-style:disclosure-closed}
.gc-outlook-source[open] summary{margin-bottom:8px}
.gc-outlook-source ul{padding-left:20px;margin:8px 0;line-height:1.6}
.gc-outlook-source p{font-size:11px;margin:10px 0 0;color:#7c6260}
