:root{
  --portal-paper:#f3f0e8;
  --portal-white:#fbfaf6;
  --portal-ink:#0e1011;
  --portal-panel:#171a1b;
  --portal-red:#ff4a35;
  --portal-steel:#777c7e;
  --portal-mist:#c9c9c3;
  --portal-line:rgba(14,16,17,.14);
  --portal-dark-line:rgba(243,240,232,.14);
  --portal-green:#70a889;
  --portal-amber:#d99e49;
  --portal-radius:2px;
  --portal-max:1440px;
}

html{scroll-padding-top:88px}
body.portal-body{min-height:100vh;overflow-x:hidden;background:var(--portal-paper);color:var(--portal-ink)}
body.portal-locked{overflow:hidden}
button,input,select,textarea{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--portal-red);outline-offset:3px}
.portal-shell{min-height:100vh}
.portal-hidden{display:none!important}
.portal-muted{color:var(--portal-steel)}
.portal-small{font-size:12px}
.portal-kicker{margin:0 0 14px;color:var(--portal-red);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.portal-number{font-variant-numeric:tabular-nums}

.demo-ribbon{position:relative;z-index:60;display:flex;justify-content:center;align-items:center;gap:12px;min-height:38px;padding:7px 20px;background:var(--portal-red);color:var(--portal-ink);font-size:11px;font-weight:800;letter-spacing:.055em;text-align:center;text-transform:uppercase}
.demo-ribbon span{display:inline-flex;align-items:center;gap:7px}
.demo-ribbon span::before{content:"";width:7px;height:7px;border:1px solid currentColor;border-radius:50%}

.portal-header{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;min-height:78px;padding:10px max(22px,calc((100vw - var(--portal-max))/2));border-bottom:1px solid var(--portal-dark-line);background:rgba(14,16,17,.96);color:var(--portal-paper);backdrop-filter:blur(18px)}
.portal-brand{display:flex;align-items:center;gap:16px;min-width:0}
.portal-brand img{display:block;width:170px;height:auto}
.portal-brand-divider{width:1px;height:34px;background:rgba(255,255,255,.24)}
.portal-brand-name{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.portal-nav{display:flex;justify-content:center;gap:24px;font-size:12px}
.portal-nav a,.portal-nav button{padding:9px 0;border:0;background:none;color:inherit;cursor:pointer}
.portal-nav a:hover,.portal-nav button:hover{color:var(--portal-red)}
.portal-header-actions{display:flex;align-items:center;gap:10px}
.portal-user-chip{display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid var(--portal-dark-line);background:none;color:inherit;cursor:pointer}
.portal-user-dot{display:grid;width:28px;height:28px;place-items:center;background:var(--portal-red);color:var(--portal-ink);font-size:10px;font-weight:800}
.portal-menu-button{display:none;border:1px solid var(--portal-dark-line);background:transparent;color:inherit;padding:9px 12px;cursor:pointer}

.portal-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 18px;border:1px solid var(--portal-red);border-radius:var(--portal-radius);background:var(--portal-red);color:var(--portal-ink);font-size:12px;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.portal-button:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(255,74,53,.18)}
.portal-button-dark{border-color:var(--portal-ink);background:var(--portal-ink);color:var(--portal-paper)}
.portal-button-ghost{border-color:rgba(243,240,232,.35);background:transparent;color:var(--portal-paper)}
.portal-button-paper{border-color:var(--portal-line);background:var(--portal-white);color:var(--portal-ink)}
.portal-button-small{min-height:38px;padding:0 13px;font-size:11px}
.portal-button-full{width:100%}

.portal-login{position:fixed;inset:0;z-index:80;display:grid;grid-template-columns:minmax(340px,.86fr) minmax(480px,1.14fr);height:100vh;height:100dvh;background:var(--portal-ink);color:var(--portal-paper)}
.portal-login-panel{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:clamp(30px,6vw,94px);background:var(--portal-ink)}
.portal-login-logo{width:min(260px,70%);margin-bottom:clamp(56px,9vh,100px)}
.portal-login h1{max-width:650px;margin:0 0 22px;font-size:clamp(44px,6vw,84px);line-height:.94;letter-spacing:-.055em}
.portal-login-lead{max-width:610px;margin:0 0 34px;color:#b8bab9;font-size:17px}
.portal-login-note{max-width:620px;margin-top:28px;padding-top:18px;border-top:1px solid var(--portal-dark-line);color:var(--portal-steel);font-size:11px}
.portal-login-form{display:grid;gap:16px;max-width:470px}
.portal-field{display:grid;gap:8px}
.portal-field>span,.portal-field>label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.portal-field input,.portal-field select,.portal-field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--portal-line);border-radius:0;background:var(--portal-white);color:var(--portal-ink)}
.portal-field textarea{min-height:108px;resize:vertical}
.portal-login .portal-field input{border-color:rgba(243,240,232,.24);background:#171a1b;color:var(--portal-paper)}
.portal-login-links{display:flex;justify-content:space-between;gap:16px;color:#b8bab9;font-size:11px}
.portal-login-links button{padding:0;border:0;background:none;color:inherit;cursor:pointer}
.portal-login-links button:hover{color:var(--portal-red)}
.portal-login-visual{position:relative;min-height:100%;overflow:hidden;border-left:1px solid var(--portal-dark-line);background:#121516}
.portal-login-visual::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(243,240,232,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(243,240,232,.05) 1px,transparent 1px);background-size:84px 84px}
.portal-login-visual::after{content:"";position:absolute;left:14%;right:8%;top:20%;height:1px;background:var(--portal-red);box-shadow:0 240px 0 rgba(255,74,53,.55),0 480px 0 rgba(255,74,53,.25)}
.login-data-stack{position:absolute;inset:12% 10%;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}
.login-data-bar{position:relative;height:clamp(42px,7vh,82px);border:1px solid var(--portal-dark-line);background:rgba(243,240,232,.025);overflow:hidden}
.login-data-bar::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--fill);background:linear-gradient(90deg,rgba(255,74,53,.8),rgba(255,74,53,.08));transform-origin:left center;animation:portal-fill 1.2s cubic-bezier(.2,.75,.2,1) both}
.login-data-bar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.login-data-caption{position:absolute;left:10%;right:10%;top:9%;display:flex;justify-content:space-between;color:#9c9f9e;font-size:10px;letter-spacing:.1em;text-transform:uppercase}

.portal-main{background:var(--portal-paper)}
.portal-hero{position:relative;padding:64px max(22px,calc((100vw - var(--portal-max))/2)) 46px;overflow:hidden;background:var(--portal-ink);color:var(--portal-paper)}
.portal-hero::after{content:"";position:absolute;left:max(22px,calc((100vw - var(--portal-max))/2));right:max(22px,calc((100vw - var(--portal-max))/2));bottom:0;height:1px;background:linear-gradient(90deg,var(--portal-red) 0 16%,rgba(255,255,255,.12) 16%)}
.portal-hero-grid{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:end}
.portal-hero h1{max-width:900px;margin:0;font-size:clamp(40px,5vw,72px);line-height:.98;letter-spacing:-.05em}
.portal-hero-copy{max-width:690px;margin:20px 0 0;color:#b8bab9;font-size:16px}
.portal-period{display:flex;gap:4px;padding:4px;border:1px solid var(--portal-dark-line)}
.portal-period button{padding:8px 12px;border:0;background:none;color:#b8bab9;font-size:10px;font-weight:800;cursor:pointer}
.portal-period button.is-active{background:var(--portal-paper);color:var(--portal-ink)}

.portal-content{padding:34px max(22px,calc((100vw - var(--portal-max))/2)) 96px}
.portal-section{margin-top:54px}
.portal-section:first-child{margin-top:0}
.portal-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--portal-line)}
.portal-section-head h2{margin:0;font-size:clamp(27px,3vw,42px);line-height:1;letter-spacing:-.035em}
.portal-section-head p{max-width:620px;margin:0;color:var(--portal-steel);font-size:13px}
.portal-grid{display:grid;gap:16px}
.portal-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.portal-grid-wide{grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr)}
.portal-card{position:relative;padding:22px;border:1px solid var(--portal-line);background:var(--portal-white)}
.portal-card-dark{border-color:var(--portal-dark-line);background:var(--portal-panel);color:var(--portal-paper)}
.portal-card-accent{border-top:3px solid var(--portal-red)}
.portal-card h3{margin:0 0 10px;font-size:18px}
.portal-card p:last-child{margin-bottom:0}
.portal-card-label{display:block;margin-bottom:30px;color:var(--portal-steel);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

.kpi-card{min-height:168px;display:flex;flex-direction:column}
.kpi-value{display:block;margin-top:auto;font-size:clamp(28px,3vw,46px);font-weight:650;line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.kpi-meta{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--portal-line);color:var(--portal-steel);font-size:10px}
.kpi-trend-up{color:var(--portal-green)}
.kpi-trend-warn{color:var(--portal-amber)}
.kpi-trend-red{color:var(--portal-red)}

.portal-tabs{display:flex;gap:4px;overflow:auto;padding:4px;border:1px solid var(--portal-line);background:var(--portal-white)}
.portal-tabs button{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;background:transparent;color:var(--portal-steel);font-size:11px;font-weight:750;cursor:pointer}
.portal-tabs button.is-active{background:var(--portal-ink);color:var(--portal-paper)}
.portal-tab-panel{margin-top:18px}

.opportunity-card{display:grid;grid-template-rows:auto 1fr auto;min-height:340px;padding:0;overflow:hidden}
.opportunity-art{position:relative;min-height:138px;background:var(--portal-ink);overflow:hidden}
.opportunity-art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 49.7%,rgba(243,240,232,.08) 50%,transparent 50.3%),linear-gradient(transparent 49.7%,rgba(243,240,232,.08) 50%,transparent 50.3%);background-size:52px 52px}
.opportunity-mass{position:absolute;right:12%;bottom:0;width:38%;height:78%;border:1px solid rgba(243,240,232,.28);background:linear-gradient(145deg,#2d3334,#111415);clip-path:polygon(22% 0,100% 12%,82% 100%,0 88%)}
.opportunity-mass::after{content:"";position:absolute;inset:20% -40% auto -120%;height:1px;background:var(--portal-red);transform:rotate(-8deg)}
.opportunity-code{position:absolute;top:14px;left:16px;color:var(--portal-red);font-size:9px;font-weight:800;letter-spacing:.11em}
.opportunity-body{padding:20px}
.opportunity-body p{color:var(--portal-steel);font-size:12px}
.opportunity-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 20px 20px}
.opportunity-stats span{display:block;font-size:8px;color:var(--portal-steel);text-transform:uppercase;letter-spacing:.06em}
.opportunity-stats strong{display:block;margin-top:5px;font-size:13px;font-variant-numeric:tabular-nums}

.scenario-lab{display:grid;grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);border:1px solid var(--portal-dark-line);background:var(--portal-ink);color:var(--portal-paper)}
.scenario-controls{padding:28px;border-right:1px solid var(--portal-dark-line)}
.range-field{margin-top:24px}
.range-field:first-of-type{margin-top:0}
.range-field-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:11px}
.range-field output{color:var(--portal-red);font-weight:800;font-variant-numeric:tabular-nums}
.range-field input[type=range]{width:100%;accent-color:var(--portal-red)}
.range-scale{display:flex;justify-content:space-between;color:var(--portal-steel);font-size:8px}
.scenario-output{position:relative;display:grid;grid-template-rows:auto 1fr;min-height:520px;padding:28px;overflow:hidden}
.scenario-output::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(243,240,232,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(243,240,232,.04) 1px,transparent 1px);background-size:64px 64px}
.scenario-summary{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--portal-dark-line)}
.scenario-summary div{padding:16px;background:#151819}
.scenario-summary span{display:block;margin-bottom:12px;color:var(--portal-steel);font-size:8px;letter-spacing:.06em;text-transform:uppercase}
.scenario-summary strong{font-size:20px;font-variant-numeric:tabular-nums}
.capital-diagram{position:relative;z-index:2;align-self:end;display:flex;align-items:end;gap:10px;height:290px;padding-top:34px;border-bottom:1px solid var(--portal-red)}
.capital-column{position:relative;flex:1;min-width:28px;height:var(--height);background:linear-gradient(180deg,var(--portal-red),rgba(255,74,53,.15));transition:height .45s cubic-bezier(.2,.75,.2,1)}
.capital-column:nth-child(2n){background:linear-gradient(180deg,var(--portal-paper),rgba(243,240,232,.08))}
.capital-column span{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);color:#b8bab9;font-size:8px;white-space:nowrap}
.scenario-insight{position:absolute;z-index:3;right:28px;bottom:26px;max-width:270px;padding:14px;border-left:2px solid var(--portal-red);background:rgba(14,16,17,.88);color:#c6c8c7;font-size:10px}

.funnel{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:7px;min-height:260px;padding:22px;border:1px solid var(--portal-line);background:var(--portal-white)}
.funnel-stage{display:flex;flex-direction:column;justify-content:flex-end;min-width:0;height:100%}
.funnel-bar{position:relative;min-height:12px;height:var(--height);background:var(--portal-ink);transition:height .4s ease}
.funnel-stage.is-money .funnel-bar{background:var(--portal-red)}
.funnel-value{margin-bottom:8px;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.funnel-name{min-height:34px;margin-top:8px;color:var(--portal-steel);font-size:8px;line-height:1.25;text-transform:uppercase;letter-spacing:.04em}

.portal-table-wrap{overflow:auto;border:1px solid var(--portal-line);background:var(--portal-white)}
.portal-table{width:100%;border-collapse:collapse;min-width:790px;font-size:11px}
.portal-table th{padding:12px 14px;border-bottom:1px solid var(--portal-line);color:var(--portal-steel);font-size:8px;letter-spacing:.07em;text-align:left;text-transform:uppercase;white-space:nowrap}
.portal-table td{padding:14px;border-bottom:1px solid rgba(14,16,17,.075);vertical-align:middle}
.portal-table tr:last-child td{border-bottom:0}
.portal-table tbody tr:hover{background:rgba(255,74,53,.035)}
.status{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--portal-line);font-size:8px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}
.status::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--portal-steel)}
.status-ok::before{background:var(--portal-green)}
.status-warn::before{background:var(--portal-amber)}
.status-alert::before{background:var(--portal-red)}

.bonus-ledger{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--portal-line);background:var(--portal-white)}
.bonus-ledger article{min-height:145px;padding:19px;border-right:1px solid var(--portal-line)}
.bonus-ledger article:last-child{border-right:0}
.bonus-ledger span{display:block;min-height:30px;color:var(--portal-steel);font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.bonus-ledger strong{display:block;margin-top:30px;font-size:24px;font-variant-numeric:tabular-nums}

.guest-drawer{position:fixed;inset:0;z-index:90;display:none}
.guest-drawer.is-open{display:block}
.drawer-shade{position:absolute;inset:0;border:0;background:rgba(14,16,17,.72);cursor:pointer}
.drawer-panel{position:absolute;top:0;right:0;width:min(620px,100%);height:100%;overflow:auto;padding:32px;background:var(--portal-paper);box-shadow:-30px 0 100px rgba(0,0,0,.25);animation:drawer-in .3s ease both}
.drawer-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:32px;padding-bottom:19px;border-bottom:1px solid var(--portal-line)}
.drawer-head h2{margin:0;font-size:32px;letter-spacing:-.04em}
.drawer-close{width:42px;height:42px;border:1px solid var(--portal-line);background:none;cursor:pointer}
.portal-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.portal-checkbox{display:flex;align-items:flex-start;gap:10px;font-size:11px;color:var(--portal-steel)}
.portal-checkbox input{margin-top:3px;accent-color:var(--portal-red)}
.form-message{margin-top:16px;padding:14px;border-left:3px solid var(--portal-green);background:rgba(112,168,137,.1);font-size:11px}

.portal-toast{position:fixed;right:22px;bottom:22px;z-index:110;max-width:380px;padding:15px 18px;border-left:3px solid var(--portal-red);background:var(--portal-ink);color:var(--portal-paper);box-shadow:0 18px 60px rgba(0,0,0,.28);font-size:11px;transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s ease}
.portal-toast.is-visible{transform:translateY(0);opacity:1}
.portal-footer{display:flex;justify-content:space-between;gap:28px;padding:36px max(22px,calc((100vw - var(--portal-max))/2));border-top:1px solid var(--portal-dark-line);background:var(--portal-ink);color:var(--portal-steel);font-size:10px}
.portal-footer a{color:var(--portal-paper)}

@keyframes portal-fill{from{transform:scaleX(0)}}
@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}

@media(max-width:1100px){
  .portal-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;padding:22px;background:var(--portal-ink);border-top:1px solid var(--portal-dark-line)}
  .portal-nav.is-open{display:flex}.portal-menu-button{display:block}
  .portal-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-grid-wide,.scenario-lab{grid-template-columns:1fr}
  .scenario-controls{border-right:0;border-bottom:1px solid var(--portal-dark-line)}
  .bonus-ledger{grid-template-columns:repeat(3,1fr)}.bonus-ledger article{border-bottom:1px solid var(--portal-line)}
}

@media(max-width:820px){
  body.portal-locked{overflow-y:auto}
  .portal-login{position:relative;grid-template-columns:1fr;min-height:100vh;height:auto}.portal-login-visual{display:none}.portal-login-panel{min-height:100vh;overflow:visible}
  .portal-hero-grid{grid-template-columns:1fr}.portal-period{justify-self:start}
  .portal-grid-3{grid-template-columns:1fr}.portal-grid-2{grid-template-columns:1fr}
  .scenario-summary{grid-template-columns:repeat(2,1fr)}
  .funnel{grid-template-columns:repeat(7,minmax(54px,1fr));overflow:auto}
}

@media(max-width:600px){
  .demo-ribbon{font-size:9px}.portal-header{grid-template-columns:1fr auto;min-height:67px;padding:8px 16px}.portal-brand img{width:132px}.portal-brand-divider,.portal-brand-name,.portal-header-actions .portal-button{display:none}
  .portal-user-chip{padding:5px}.portal-user-chip>span:not(.portal-user-dot){display:none}
  .portal-hero{padding:44px 18px 34px}.portal-hero h1{font-size:42px}.portal-content{padding:26px 18px 74px}
  .portal-section{margin-top:42px}.portal-section-head{align-items:flex-start;flex-direction:column;gap:10px}
  .portal-grid-4{grid-template-columns:1fr 1fr}.kpi-card{min-height:144px;padding:16px}.kpi-value{font-size:28px}
  .scenario-output{min-height:470px;padding:18px}.scenario-summary{grid-template-columns:1fr 1fr}.scenario-summary div{padding:12px}.capital-diagram{height:230px}.capital-column span{display:none}.scenario-insight{right:18px;bottom:18px;left:18px;max-width:none}
  .opportunity-stats{grid-template-columns:1fr 1fr}.portal-form-grid{grid-template-columns:1fr}.portal-form-grid .full{grid-column:auto}
  .bonus-ledger{grid-template-columns:1fr 1fr}.bonus-ledger article:nth-child(2n){border-right:0}.bonus-ledger strong{font-size:20px}
  .drawer-panel{padding:22px 18px}.portal-footer{flex-direction:column;padding:30px 18px}
}

@media(max-width:420px){.portal-grid-4{grid-template-columns:1fr}.portal-period{width:100%;overflow:auto}.portal-period button{flex:1}.portal-login-panel{padding:30px 22px}.portal-login h1{font-size:45px}.bonus-ledger{grid-template-columns:1fr}.bonus-ledger article{border-right:0}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
