:root{--bg:#f4f7fe;--surface:#ffffffeb;--surface-strong:#fffffffa;--surface-soft:#f4f7fed6;--ink:#101828;--muted:#667085;--line:#1118271a;--line-strong:#4f70ff2e;--primary:#4f7cff;--primary-strong:#2f5cf0;--secondary:#39d2c0;--secondary-soft:#39d2c029;--accent:#ff8c42;--danger:#ef4444;--warning:#f59e0b;--positive:#16a34a;--shadow-lg:0 28px 80px #3859b529;--shadow-md:0 16px 42px #4f7cff1f;--radius-2xl:32px;--radius-xl:24px;--radius-lg:18px;--radius-md:14px;--font-display:"Outfit", sans-serif;--font-sans:"Plus Jakarta Sans", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:142px}body{min-height:100vh;color:var(--ink);font-family:var(--font-sans);background:radial-gradient(circle at 15% 20%,#4f7cff38,#0000 28%),radial-gradient(circle at 85% 12%,#39d2c02e,#0000 24%),radial-gradient(circle at 50% 100%,#ff8c421f,#0000 24%),linear-gradient(#f7f9ff 0%,#eef4ff 100%);margin:0}body:before{z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(#7c93cc14 1px,#0000 1px),linear-gradient(90deg,#7c93cc14 1px,#0000 1px);background-size:24px 24px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 88%);mask-image:linear-gradient(#000c,#0000 88%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}code{color:var(--primary-strong);font-family:var(--font-sans);background:#4f7cff14;border:1px solid #4f7cff29;border-radius:999px;padding:6px 10px;font-size:.88rem}h1,h2,h3,h4,strong{font-family:var(--font-display);letter-spacing:-.04em;margin:0}p{margin:0;line-height:1.65}.portal-shell,.auth-shell{min-height:100vh;position:relative}.portal-shell{padding:10px 24px calc(20px + env(safe-area-inset-bottom)) 8px}.auth-shell{justify-content:center;align-items:center;padding:20px;display:flex}.portal-backdrop{pointer-events:none;background:radial-gradient(circle at 12% 14%,#4f7cff24,#0000 18%),radial-gradient(circle at 88% 8%,#39d2c02e,#0000 20%),linear-gradient(#fff3,#0000 56%);position:absolute;inset:0}.portal-chrome,.auth-layout{z-index:1;width:100%;margin:0 auto;position:relative}.auth-layout{width:min(560px,100%);display:block}.auth-hero-panel,.auth-card,.portal-header,.section-card,.metric-card,.project-card{border:1px solid var(--line);border-radius:var(--radius-2xl);background:var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-hero-panel{color:#f8fbff;background:linear-gradient(145deg,#4f7cfff0,#39d2c0d6),linear-gradient(#ffffff1f,#0000);padding:28px;position:relative;overflow:hidden}.auth-hero-panel:after{content:"";background:#ffffff2e;border-radius:50%;width:260px;height:260px;position:absolute;bottom:-120px;right:-80px}.auth-card,.portal-header,.section-card{padding:22px}.auth-card{gap:18px;display:grid}.sso-panel{background:#4f7cff0f;border:1px solid #4f7cff24;border-radius:22px;gap:.75rem;margin-bottom:1rem;padding:1rem 1.1rem;display:grid}.sso-panel h3{margin:0;font-size:1.1rem}.sso-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.sso-link{justify-content:center;min-width:14rem}.sso-button-content{align-items:center;gap:.6rem;display:inline-flex}.sso-icon{flex:none;width:18px;height:18px}.role-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.role-choice-card{cursor:pointer;align-items:center;gap:12px;display:flex}.role-choice-card input{accent-color:#4f7bf3;width:18px;height:18px;margin:0}.sso-link-disabled{pointer-events:none;cursor:not-allowed;opacity:.55;filter:saturate(.7)}.auth-copy,.portal-description,.metric-detail,.empty-state,.project-card p,.credential-card p,.device-card p,.wire-list li,.timeline-row span{color:var(--muted)}.auth-hero-panel .auth-copy,.auth-hero-panel .device-card p,.auth-hero-panel .section-eyebrow{color:#f8fbffd6}.audit-payload{color:var(--ink);white-space:pre-wrap;background:#0f172a0a;border:1px solid #4f7cff1a;border-radius:16px;margin:10px 0 0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.5;overflow-x:auto}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-mark,.brand-chip,.account-chip{background:#ffffff24;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;display:inline-flex;box-shadow:inset 0 1px #fff3}.auth-card .brand-mark,.portal-header .brand-chip,.portal-header .account-chip{border-color:var(--line-strong);color:var(--primary-strong);background:#4f7cff14}.account-chip{text-decoration:none;transition:transform .16s,border-color .16s,background .16s}.account-chip:hover{background:#4f7cff1f;border-color:#4f7cff38;transform:translateY(-1px)}.account-menu{position:relative}.account-summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.account-summary::-webkit-details-marker{display:none}.account-menu[open] .account-summary{background:#4f7cff1f;border-color:#4f7cff38}.account-menu-panel{z-index:10;border:1px solid var(--line);background:var(--surface-strong);min-width:190px;box-shadow:var(--shadow-lg);border-radius:18px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0}.account-menu-link{width:100%;min-height:44px;color:inherit;border-radius:12px;align-items:center;gap:10px;padding:0 12px;text-decoration:none;transition:background .16s,transform .16s;display:inline-flex}.account-menu-link:hover{background:#4f7cff14;transform:translateY(-1px)}.section-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#667085db;margin-bottom:8px;font-size:.78rem;font-weight:700}.auth-hero-panel h1,.portal-title-row h1{font-size:clamp(2rem,4.1vw,3.3rem);line-height:.92}.auth-form-header h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1}.device-grid,.card-grid,.review-card-grid{gap:16px;display:grid}.device-grid{margin-top:26px}.device-card{border-radius:var(--radius-xl);background:#ffffff2e;border:1px solid #ffffff24;align-items:flex-start;gap:12px;padding:16px;display:flex}.device-card strong{margin-bottom:4px;display:block}.auth-form-header{margin-bottom:18px}.locale-switcher{display:inline-flex}.locale-switcher-label{color:var(--muted);align-items:center;gap:10px;font-size:.88rem;font-weight:600;display:inline-flex}.locale-select{min-width:170px;min-height:44px;padding:10px 14px}.credential-card{border-radius:var(--radius-xl);background:#4f7cff0f;border:1px solid #4f7cff1f;align-items:flex-start;gap:12px;padding:18px;display:flex}.credential-pills{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.portal-header{z-index:5;background:linear-gradient(#fffffffa,#f8fafff0);gap:18px;max-height:520px;margin-bottom:18px;padding:20px 24px 22px;transition:max-height .22s,margin-bottom .18s,gap .18s,padding .18s,border-radius .18s,box-shadow .18s,background .18s,transform .18s;display:grid;position:sticky;top:10px;overflow:hidden}.portal-layout{align-items:flex-start;gap:12px;display:flex}.mobile-sidebar-toggle,.portal-sidebar-scrim{display:none}.portal-main{flex:1;min-width:0}.portal-sidebar{border:1px solid var(--line);border-radius:var(--radius-2xl);width:292px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffffffa,#f8fafff0);flex:0 0 292px;padding:16px;transition:width .18s,flex-basis .18s,transform .18s,top .18s,padding .18s;position:sticky;top:10px;overflow:hidden}.portal-sidebar:before{background:linear-gradient(90deg, var(--primary), var(--secondary));content:"";height:4px;position:absolute;inset:0 0 auto}.portal-sidebar-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.portal-sidebar-top strong{margin-top:2px;font-size:1.02rem;display:block}.sidebar-collapse-button{border:1px solid var(--line);background:var(--surface-strong);min-height:44px;color:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:8px;padding:0 12px;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.sidebar-collapse-button:hover{background:#4f7cff14;border-color:#4f7cff2e;transform:translateY(-1px)}.portal-sidebar-nav{gap:8px;display:grid}.portal-sidebar-item{gap:6px;display:grid}.portal-sidebar-item-subnav{border-left:1px solid #4f7cff29;flex-direction:column;align-items:stretch;gap:6px;margin-left:16px;padding-left:12px;display:flex}.portal-sidebar-project-group{gap:6px;display:grid}.portal-sidebar-project-row{align-items:stretch;gap:8px;display:flex}.portal-sidebar-project-row>.portal-sidebar-sublink{flex:auto}.portal-sidebar-project-toggle{border:1px solid var(--line);background:var(--surface-strong);width:34px;min-height:34px;color:var(--muted);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;margin-top:0;transition:transform .16s,background .16s,border-color .16s,color .16s;display:inline-flex}.portal-sidebar-project-toggle:hover{color:var(--ink);background:#4f7cff14;border-color:#4f7cff29;transform:translateY(-1px)}.portal-sidebar-project-subnav{border-left:1px solid #4f7cff1f;flex-direction:column;align-items:stretch;gap:6px;margin-left:18px;padding-left:12px;display:flex}.portal-sidebar-project-subnav>*{min-width:0}.portal-sidebar-project-subnav .portal-sidebar-sublink{width:100%}.portal-sidebar-sublink{min-height:34px;color:var(--muted);border-radius:14px;align-items:center;gap:10px;padding:0 12px 0 13px;text-decoration:none;transition:transform .16s,background .16s,color .16s;display:inline-flex}.portal-sidebar-sublink:hover{color:var(--ink);background:#4f7cff14;transform:translateY(-1px)}.portal-sidebar-sublink-active{color:var(--primary-strong);background:linear-gradient(135deg,#4f7cff24,#39d2c014)}.portal-sidebar-sublink-tertiary{min-height:30px;padding-left:11px;font-size:.9rem}.portal-sidebar-subitem-bullet{background:#4f7cff6b;border-radius:999px;flex:none;width:6px;height:6px}.portal-sidebar-link{min-height:42px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:16px;align-items:center;gap:12px;padding:0 13px;text-decoration:none;transition:transform .16s,border-color .16s,background .16s,color .16s;display:inline-flex}.portal-sidebar-link:hover{color:var(--ink);background:#4f7cff14;border-color:#4f7cff29;transform:translateY(-1px)}.portal-sidebar-link-active{color:var(--primary-strong);background:linear-gradient(135deg,#4f7cff24,#39d2c01a);border-color:#4f7cff33}.portal-sidebar-label{white-space:nowrap}.portal-sidebar-footnote{color:var(--muted);margin-top:14px;font-size:.84rem}.portal-sidebar-collapsed{flex-basis:84px;width:84px}.portal-sidebar-collapsed .portal-sidebar-top{justify-content:center;align-items:center}.portal-sidebar-collapsed .portal-sidebar-top>div,.portal-sidebar-collapsed .portal-sidebar-label,.portal-sidebar-collapsed .portal-sidebar-footnote,.portal-sidebar-collapsed .portal-sidebar-item-subnav,.portal-sidebar-collapsed .portal-sidebar-project-subnav{display:none}.portal-sidebar-collapsed .portal-sidebar-project-row{justify-content:center}.portal-sidebar-collapsed .portal-sidebar-project-toggle{display:none}.portal-sidebar-collapsed .portal-sidebar-link{justify-content:center;padding-inline:0}.portal-sidebar-collapsed .sidebar-collapse-button{padding-inline:10px}.portal-header-top,.portal-header-top-left,.portal-title-row,.section-card-header,.list-title-row{gap:14px;display:flex}.portal-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;transition:gap .18s,min-height .18s}.portal-header-top-left{flex-wrap:wrap;align-items:center;transition:gap .18s}.portal-header-actions,.portal-chip-group{flex-wrap:wrap;gap:10px;transition:gap .18s;display:flex}.portal-search{flex:360px;min-width:260px;max-width:520px;position:relative}.portal-search-field{border:1px solid var(--line);background:var(--surface-strong);min-height:44px;box-shadow:var(--shadow-md);color:var(--muted);border-radius:16px;align-items:center;gap:10px;padding:0 14px;display:flex}.portal-search-input{width:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:none}.portal-search-input::placeholder{color:var(--muted)}.portal-search-panel{z-index:30;border:1px solid var(--line);max-height:min(70vh,560px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffffa;border-radius:18px;padding:12px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.portal-search-group+.portal-search-group{border-top:1px solid #4f7cff1a;margin-top:14px;padding-top:14px}.portal-search-group-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.78rem;font-weight:700}.portal-search-group-list{gap:8px;display:grid}.portal-search-result{color:inherit;border:1px solid #0000;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;transition:transform .16s,border-color .16s,background .16s;display:grid}.portal-search-result:hover{background:#4f7cff0d;border-color:#4f7cff1f;transform:translateY(-1px)}.portal-search-result-icon{width:32px;height:32px;color:var(--primary-strong);background:#4f7cff14;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.portal-search-result-copy{min-width:0}.portal-search-result-copy strong,.portal-search-result-copy span,.portal-search-result-meta{display:block}.portal-search-result-copy strong,.portal-search-result-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-search-result-copy span,.portal-search-result-meta,.portal-search-state{color:var(--muted)}.portal-search-result-meta{text-align:right;font-size:.9rem}.portal-search-state{margin:0;padding:8px 4px}.portal-title-row{opacity:1;justify-content:space-between;align-items:flex-start;gap:20px;max-height:420px;margin-top:18px;transition:max-height .22s,margin-top .22s,opacity .18s,transform .22s;overflow:hidden;transform:translateY(0)}.portal-title-copy{min-width:0;max-width:58rem}.portal-description{max-width:52rem;font-size:1.02rem}.portal-chip-group{margin-top:10px}.info-chip{min-height:32px;color:var(--primary-strong);background:#4f7cff14;border:1px solid #4f7cff1f;border-radius:999px;align-items:center;padding:6px 11px;font-size:.78rem;font-weight:600;display:inline-flex}.info-chip-link{color:inherit;text-decoration:none;transition:transform .16s,border-color .16s,background .16s}.info-chip-link:hover{transform:translateY(-1px)}.info-chip-accent{color:#0f766e;background:#39d2c024;border-color:#39d2c02e}.trust-panel{border-radius:var(--radius-xl);background:linear-gradient(145deg,#4f7cff14,#39d2c01a);border:1px solid #4f7cff1f;align-items:flex-start;gap:12px;width:min(290px,100%);padding:12px 14px;display:flex}.trust-panel strong{margin-bottom:2px;display:block}.back-link,.secondary-link,.primary-link{border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 15px;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:inline-flex}.context-chip{max-width:min(34vw,380px);min-height:44px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;background:#4f7cff0f;border:1px solid #4f7cff1f;border-radius:16px;align-items:center;padding:0 15px;font-weight:600;display:inline-flex;overflow:hidden}.back-link,.secondary-link{border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow-md)}.primary-link{color:#fff;background:linear-gradient(135deg, var(--primary), var(--secondary));border:0;box-shadow:0 18px 32px #4f7cff3d}.back-link:hover,.secondary-link:hover,.primary-link:hover{transform:translateY(-1px)}.button-reset{appearance:none;cursor:pointer;color:inherit;font:inherit;border:0}.button-reset:disabled,.primary-link:disabled{opacity:.72;cursor:wait}.portal-grid,.section-card-body,.timeline-list,.form-stack,.wire-list,.evidence-list{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.metric-card{box-shadow:var(--shadow-md);padding:14px 16px 16px;position:relative;overflow:hidden}.metric-card:before{content:"";background:#4f7cff2e;width:6px;position:absolute;inset:0 auto 0 0}.metric-card-positive{background:linear-gradient(180deg, #16a34a14, #ffffffe6 45%), var(--surface);border-color:#16a34a33}.metric-card-positive:before{background:linear-gradient(#16a34ae6,#39d2c0b3)}.metric-card-positive .metric-label,.metric-card-positive .metric-value{color:#12703b}.metric-card-warning{background:linear-gradient(180deg, #f59e0b1a, #ffffffe6 48%), var(--surface);border-color:#f59e0b38}.metric-card-warning:before{background:linear-gradient(#f59e0bf2,#ff8c42b8)}.metric-card-warning .metric-label,.metric-card-warning .metric-value{color:#9a5a07}.metric-card-neutral{background:linear-gradient(180deg, #4f7cff14, #ffffffeb 48%), var(--surface);border-color:#4f7cff2e}.metric-card-neutral:before{background:linear-gradient(#4f7cffe6,#39d2c0a6)}.metric-card-neutral .metric-label,.metric-card-neutral .metric-value{color:#3554b7}.metric-card-danger{background:linear-gradient(180deg, #ef44441a, #ffffffe6 46%), var(--surface);border-color:#ef444433}.metric-card-danger:before{background:linear-gradient(#ef4444eb,#ff8c42b8)}.metric-card-danger .metric-label,.metric-card-danger .metric-value{color:#b32424}.metric-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric-label{color:var(--muted);font-size:.8rem;font-weight:600}.metric-value{margin:8px 0 6px;font-size:clamp(1.45rem,2vw,1.95rem);line-height:1;display:block}.metric-detail{font-size:.84rem;line-height:1.45}.section-card{box-shadow:var(--shadow-md);scroll-margin-top:142px}.portal-header-collapsed{max-height:76px;box-shadow:var(--shadow-md);background:#fffffff5;border-radius:20px;gap:0;margin-bottom:12px;padding:10px 14px}.portal-header-collapsed .portal-title-row{display:none}.portal-header-collapsed .brand-chip,.portal-header-collapsed .account-chip,.portal-header-collapsed .back-link,.portal-header-collapsed .locale-select,.portal-header-collapsed .context-chip{min-height:34px}.portal-header-collapsed .brand-chip,.portal-header-collapsed .account-chip,.portal-header-collapsed .back-link,.portal-header-collapsed .context-chip{padding:0 12px}.portal-header-collapsed .locale-switcher-label>span{opacity:.72}.portal-header-collapsed .portal-header-top,.portal-header-collapsed .portal-header-top-left,.portal-header-collapsed .portal-header-actions{gap:8px}.portal-header-collapsed .portal-search{flex-basis:260px;max-width:360px}.portal-header-collapsed .portal-search-field{min-height:36px;padding-inline:12px}.portal-header-collapsed .brand-chip{gap:0;padding-inline:10px}.portal-header-collapsed .brand-chip svg{margin:0}.portal-header-collapsed .brand-chip{font-size:0}.portal-header-collapsed .back-link{gap:6px;padding-inline:12px;font-size:.94rem}.portal-header-collapsed .context-chip{max-width:min(28vw,260px);font-size:.94rem}.portal-header-collapsed .account-summary{gap:6px;font-size:.94rem}.portal-header-collapsed .trust-panel{width:auto;min-width:228px;padding:12px 14px;display:none}.portal-layout-header-collapsed .portal-sidebar{top:12px}.section-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.section-card-header h2{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1}.card-grid,.review-card-grid{grid-template-columns:1fr}.contractor-workspace,.project-switcher,.contractor-workspace-grid,.contractor-main-column,.contractor-side-column,.mini-metric-grid,.two-column-grid,.policy-grid,.category-chip-group{gap:16px;display:grid}.project-switcher{grid-template-columns:1fr}.project-switcher-item{appearance:none;border-radius:var(--radius-xl);width:100%;color:inherit;text-align:left;cursor:pointer;background:#ffffffe0;border:1px solid #4f7cff1a;padding:16px;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}.project-switcher-item:hover,.project-switcher-item-active{box-shadow:var(--shadow-md);background:linear-gradient(#4f7cff14,#39d2c014);border-color:#4f7cff47;transform:translateY(-1px)}.contractor-workspace-grid{grid-template-columns:1fr;align-items:start}.mini-metric-grid,.two-column-grid{grid-template-columns:1fr;margin-top:18px}.mini-metric-card,.policy-card{border-radius:var(--radius-xl);background:#4f7cff0d;border:1px solid #4f7cff1a;padding:14px 16px}.ai-recommendation-card{border-radius:var(--radius-xl);background:linear-gradient(160deg,#39d2c024,#4f7cff14);border:1px solid #39d2c02e;padding:14px 16px}.ai-recommendation-card p+p{margin-top:6px}.mini-metric-card strong{margin-top:8px;font-size:1.25rem;display:block}.policy-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:18px}.category-chip-group{grid-template-columns:repeat(auto-fit,minmax(110px,max-content));justify-content:start}.project-card-highlight{background:linear-gradient(160deg,#4f7cff1a,#39d2c014),#ffffffeb}.info-chip-danger{color:#b91c1c;background:#ef44441a;border-color:#ef444424}.project-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-md);background:linear-gradient(#fffffff5,#f6f9ffe0);padding:18px}.project-card p+p{margin-top:6px}.project-card-footer{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.project-card-inline-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.form-error-inline{color:#b91c1c;font-size:.92rem}.compact-form-grid{gap:12px}.detail-list{gap:6px;margin:10px 0 0;padding-left:18px;display:grid}.list-title-row{justify-content:space-between;align-items:flex-start}.list-title-row strong{font-size:1.04rem}.wire-list,.evidence-list{margin:0;padding:0;list-style:none}.wire-list li{border-radius:var(--radius-xl);background:#4f7cff0d;border:1px solid #4f7cff14;padding:16px 18px}.photo-gallery-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:16px;display:grid}.photo-gallery-card{border-radius:var(--radius-xl);background:#4f7cff0d;border:1px solid #4f7cff14;gap:12px;margin:0;padding:14px;display:grid}.photo-gallery-link{display:block}.photo-gallery-image{aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--radius-xl) - 6px);background:#1118270a;border:1px solid #11182714;width:100%;display:block}.photo-gallery-card figcaption{overflow-wrap:anywhere;gap:6px;display:grid}.photo-gallery-card figcaption strong{font-size:1rem}.photo-gallery-card figcaption p{overflow-wrap:anywhere}.chart-card,.chart-list,.chart-row{gap:12px;display:grid}.chart-list{margin:0;padding:0;list-style:none}.chart-row{border-radius:var(--radius-xl);background:#4f7cff0d;border:1px solid #4f7cff14;padding:14px 16px}.chart-row-active{box-shadow:var(--shadow-md);background:linear-gradient(160deg,#39d2c01f,#4f7cff14);border-color:#39d2c057}.chart-row-link{color:inherit;gap:12px;text-decoration:none;transition:transform .16s;display:grid}.chart-row-link:hover{transform:translateY(-1px)}.chart-row-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.chart-row-header span{color:var(--muted);font-size:.88rem}.chart-bar-track{background:#0f172a14;border-radius:999px;height:10px;overflow:hidden}.chart-bar-fill{border-radius:inherit;background:linear-gradient(135deg, var(--primary), var(--secondary));min-width:6px;height:100%;display:block}.timeline-row{border-radius:var(--radius-xl);background:#4f7cff0d;border:1px solid #4f7cff14;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(120px,.7fr));align-items:center;gap:12px;padding:16px 18px;display:grid}.timeline-row strong{margin-bottom:4px;display:block}.pill{letter-spacing:.01em;text-transform:capitalize;border-radius:999px;align-items:center;min-height:30px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.pill-neutral{color:#4f46e5;background:#6366f11a}.pill-positive{color:var(--positive);background:#16a34a1f}.pill-warning{color:#b45309;background:#f59e0b24}.pill-danger{color:#b91c1c;background:#ef44441f}.form-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.form-grid>*{grid-column:span 6}.form-grid>.form-span-full{grid-column:1/-1}.field{gap:8px;display:grid}fieldset.field{border:0;min-width:0;margin:0;padding:0}.field span{color:#344054;font-size:.92rem;font-weight:700}.field-hint{color:var(--muted);font-size:.88rem}.warning-box{color:#8a5308;background:#f59e0b17;border:1px solid #f59e0b3d;border-radius:18px;margin-top:12px;padding:14px 16px}.compact-list{gap:6px;margin:8px 0 0;padding-left:18px;display:grid}.input{width:100%;min-height:56px;color:var(--ink);background:#fffffffa;border:1px solid #4f7cff1f;border-radius:18px;padding:14px 16px;box-shadow:inset 0 1px 1px #4f7cff0a}.input:focus{border-color:#4f7cff70;outline:none;box-shadow:0 0 0 4px #4f7cff1f,inset 0 1px 1px #4f7cff0a}.locked-input{align-items:center;display:flex}.textarea{resize:vertical;min-height:136px}.file-input{padding-top:14px}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.checkbox-card{background:#fffffff5;border:1px solid #4f7cff1f;border-radius:18px;align-items:center;gap:10px;min-height:56px;padding:12px 14px;display:flex;box-shadow:inset 0 1px 1px #4f7cff0a}.checkbox-card input{width:18px;height:18px;accent-color:var(--primary)}.disclaimer-checkbox{align-items:flex-start}.inline-action-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.secondary-button{appearance:none;border:1px solid var(--line);background:var(--surface-strong);min-height:48px;box-shadow:var(--shadow-md);color:inherit;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;padding:0 16px;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:inline-flex}.secondary-button:hover{transform:translateY(-1px)}.secondary-button:disabled{opacity:.72;cursor:wait}.submit-row{justify-content:flex-start;display:flex}.submit-row>*{width:100%}.banner{border-radius:16px;padding:12px 14px;font-weight:600}.banner-danger{color:#b91c1c;background:#ef44441a;border:1px solid #ef444424}.banner-warning{color:#9a5a07;background:#f59e0b1f;border:1px solid #f59e0b2e}.banner-success{color:#12703b;background:#16a34a1a;border:1px solid #16a34a2e}.empty-state{padding:6px 0}.evidence-list a{color:var(--primary-strong);text-underline-offset:3px;text-decoration:underline}.table-grid{border-radius:var(--radius-xl);border:1px solid #4f7cff1a;overflow:hidden}.access-profile-table,.project-side-user-table{-webkit-overflow-scrolling:touch;overflow:auto hidden}.table-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:14px 16px;display:grid}.table-row+.table-row{border-top:1px solid #4f7cff14}.table-header{color:var(--primary-strong);letter-spacing:.08em;text-transform:uppercase;background:#4f7cff14;font-size:.78rem;font-weight:700}.access-profile-header,.access-profile-row{grid-template-columns:42px minmax(220px,1.2fr) minmax(240px,1.35fr) minmax(110px,.65fr) minmax(120px,.75fr) minmax(220px,.95fr) minmax(220px,.95fr) minmax(220px,1.1fr);align-items:start;min-width:1640px}.access-profile-identity{gap:4px;display:grid}.access-profile-avatar{object-fit:cover;background:#4f7cff14;border:1px solid #4f7cff2e;border-radius:999px;width:40px;height:40px}.access-profile-avatar-fallback{color:var(--primary-strong);justify-content:center;align-items:center;font-size:.82rem;font-weight:700;display:inline-flex}.access-profile-identity span{color:var(--muted);word-break:break-word}.access-profile-summary{flex-wrap:wrap;gap:8px;display:flex}.access-profile-directory{gap:16px;display:grid}.access-profile-search{max-width:420px}.access-profile-bulk-bar{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.access-profile-bulk-field{min-width:220px;max-width:320px}.access-profile-bulk-feedback{flex:100%;margin:0}.project-access-form,.project-access-members{gap:12px;display:grid}.project-access-form{margin-top:16px}.project-access-table{overflow-x:auto}.project-access-header,.project-access-row{grid-template-columns:minmax(240px,1.5fr) minmax(160px,.9fr) minmax(140px,.8fr) minmax(140px,.8fr);align-items:start;min-width:920px}.project-access-row [role=cell]:first-child{gap:4px;display:grid}.project-access-row [role=cell]:first-child span{color:var(--muted);word-break:break-word}.project-side-user-header [role=columnheader]{white-space:nowrap}.project-side-user-header,.project-side-user-row{min-width:1640px;grid-template-columns:42px minmax(220px,1.2fr) minmax(240px,1.35fr) minmax(110px,.65fr) minmax(120px,.75fr) minmax(220px,.95fr) minmax(220px,.95fr) minmax(220px,1.1fr)!important;display:grid!important}.inline-access-form{gap:8px;display:grid}.inline-access-control .input{min-width:0}.inline-access-save{width:100%}.inline-access-error{margin:0}.access-profile-projects{flex-wrap:wrap;gap:8px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:980px){.auth-layout{grid-template-columns:1.05fr .95fr}.device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.submit-row>*{width:auto}}@media (max-width:979px){.mobile-sidebar-toggle{z-index:8;border:1px solid var(--line);min-height:44px;box-shadow:var(--shadow-md);color:var(--ink);background:#fffffff5;border-radius:16px;align-items:center;gap:10px;padding:0 15px;display:inline-flex;position:sticky;top:10px}.portal-sidebar-scrim{z-index:7;opacity:0;pointer-events:none;background:#10182852;border:0;transition:opacity .18s;position:fixed;inset:0}.portal-sidebar-scrim-visible{opacity:1;pointer-events:auto}.portal-layout{flex-direction:column;gap:14px}.portal-sidebar{z-index:9;flex-basis:auto;width:min(360px,100vw - 16px);max-width:calc(100vw - 16px);position:fixed;top:10px;bottom:10px;left:8px;overflow-y:auto;transform:translate(calc(-100% - 20px))}.portal-sidebar-mobile-open{transform:translate(0)}.portal-sidebar-collapsed{width:min(360px,100vw - 16px)}.portal-sidebar .sidebar-collapse-button{display:none}.portal-sidebar-collapsed .portal-sidebar-top{justify-content:space-between;align-items:flex-start}.portal-sidebar-collapsed .portal-sidebar-top>div,.portal-sidebar-collapsed .portal-sidebar-label,.portal-sidebar-collapsed .portal-sidebar-footnote,.portal-sidebar-collapsed .portal-sidebar-item-subnav{display:revert}.portal-sidebar-collapsed .portal-sidebar-link{justify-content:flex-start;padding-inline:13px}.portal-title-row{flex-direction:column;align-items:flex-start}.portal-header-collapsed .portal-title-row{align-items:flex-start}.trust-panel{width:100%}}@media (max-width:720px){html{scroll-padding-top:112px}.portal-shell,.auth-shell{padding:10px 16px 10px 8px}.portal-header{max-height:none;margin-bottom:14px;padding:18px;position:static;top:auto}.section-card{scroll-margin-top:112px}.portal-title-row{gap:16px;margin-top:16px}.portal-title-row h1{font-size:clamp(1.85rem,8vw,2.6rem);line-height:1}.mobile-sidebar-toggle{justify-content:center;width:100%;top:0}.portal-header-collapsed{max-height:none;padding:18px}.portal-header-collapsed .portal-description{display:block}.portal-header-collapsed .portal-chip-group{display:flex}.portal-description{font-size:.96rem}.trust-panel{padding:14px 16px}.form-grid{grid-template-columns:1fr}.form-grid>*{grid-column:1/-1}.timeline-row,.table-row,.contractor-workspace-grid{grid-template-columns:1fr}.list-title-row,.section-card-header{flex-direction:column}}@media (max-width:640px){.metric-grid{scrollbar-width:none;grid-auto-columns:minmax(240px,84vw);grid-auto-flow:column;padding-bottom:4px;overflow-x:auto}.metric-grid::-webkit-scrollbar{display:none}.portal-header-actions,.portal-chip-group,.project-card-footer,.credential-pills{width:100%}.portal-search{min-width:100%;max-width:none}.back-link,.secondary-link,.primary-link{width:100%}.auth-card,.auth-hero-panel,.portal-header,.section-card,.metric-card,.project-card{border-radius:24px}.portal-chip-group{gap:8px;margin-top:14px}.role-choice-grid{grid-template-columns:1fr}.info-chip{min-height:32px;padding:6px 10px;font-size:.78rem}}.card-admin-form{gap:12px;display:grid}.card-admin-form .button-reset:disabled{opacity:.55;cursor:not-allowed}.hosted-card-frame{gap:12px;margin-top:12px;display:grid}.hosted-card-iframe{background:#f7f4ea;border:1px solid #0f172a1f;border-radius:20px;width:100%;min-height:360px}.hosted-card-page{color:#1f2937;background:radial-gradient(circle at 0 0,#cddde7e6,#0000 36%),linear-gradient(#f7f4ea 0%,#efe7d3 100%);min-height:100vh;padding:24px}.hosted-card-surface{background:#ffffffe6;border:1px solid #0f172a14;border-radius:28px;gap:18px;max-width:760px;margin:0 auto;padding:24px;display:grid;box-shadow:0 24px 80px #0f172a1f}.hosted-card-visual{color:#f8fafc;background:linear-gradient(145deg,#13202b 0%,#244455 100%);border-radius:24px;gap:10px;padding:24px;display:grid}.stripe-issuing-view{gap:16px;display:grid}.stripe-issuing-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.stripe-issuing-slot{background:#fffffff2;border:1px solid #0f172a1f;border-radius:18px;min-height:52px;padding:14px 16px}.stripe-issuing-copy{min-width:160px}
