@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
:root{--green:#1F2A24;--off-white:#F4F4EF;--gold:#C9B895;--white:#FFF;--text:#1F2A24;--muted:#68706B;--line:rgba(31,42,36,.14);--line-dark:rgba(244,244,239,.16);--soft:#EAEAE3;--success:#315D43;--warning:#7A6330;--danger:#8B3D3D;--shadow:0 24px 70px rgba(20,28,23,.14);--body-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--off-white);color:var(--text);font-family:var(--body-font);-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 10px;color:var(--gold);font-size:.72rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}.muted,.section-copy{color:var(--muted);line-height:1.65}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 18px;background:linear-gradient(rgba(31,42,36,.94),rgba(31,42,36,.94)),radial-gradient(circle at 85% 15%,rgba(201,184,149,.22),transparent 36%)}.auth-card{width:min(100%,480px);padding:44px;background:var(--off-white);box-shadow:var(--shadow)}.auth-brand{display:block;width:250px;max-width:80%}.auth-brand img{display:block;width:100%;height:auto}.auth-rule{height:1px;margin:30px 0;background:var(--line)}.auth-card h1{margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:500;letter-spacing:-.045em}.auth-card .muted{margin:14px 0 0}.form-stack{display:grid;gap:18px;margin-top:30px}.form-stack label{display:grid;gap:8px;font-size:.82rem;font-weight:600}.form-stack input{width:100%;height:50px;padding:0 14px;border:1px solid rgba(31,42,36,.25);border-radius:0;background:var(--white);color:var(--text);outline:none}.form-stack input:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(31,42,36,.08)}.primary-button,.secondary-button,.disabled-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 18px;border:1px solid var(--green);background:var(--green);color:var(--off-white);cursor:pointer;font-weight:600;transition:transform 160ms ease,opacity 160ms ease}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.65;transform:none}.secondary-button{background:transparent;color:var(--green)}.disabled-button{background:var(--soft);border-color:var(--line);color:var(--muted);cursor:not-allowed}.text-button{margin-top:18px;padding:0;border:0;background:transparent;color:var(--green);cursor:pointer;font-size:.86rem;font-weight:600}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.form-message{min-height:18px;margin:0;color:var(--danger);font-size:.82rem;line-height:1.45}.form-message.success{color:var(--success)}.security-note{margin:20px 0 0;color:var(--muted);font-size:.76rem;line-height:1.55}.back-link{display:inline-block;margin-top:30px;color:var(--muted);font-size:.8rem}.back-link:hover{color:var(--green)}.portal{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:34px 24px 28px;background:var(--green);color:var(--off-white);display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}.side-brand{display:block;width:185px}.side-brand img{display:block;width:100%;height:auto}.side-label{margin:34px 8px 14px;color:rgba(244,244,239,.46);font-size:.68rem;letter-spacing:.16em}.sidebar nav{display:grid;gap:5px}.portal-nav-link{width:100%;padding:12px;border:0;border-left:2px solid transparent;background:transparent;color:rgba(244,244,239,.66);text-align:left;cursor:pointer;font-size:.9rem}.portal-nav-link:hover{color:var(--off-white)}.portal-nav-link.active{border-left-color:var(--gold);color:var(--off-white);background:rgba(244,244,239,.05)}.sidebar-bottom{display:grid;gap:12px}.site-link{padding:8px 0;color:rgba(244,244,239,.55);font-size:.78rem}.logout-button{min-height:42px;border:1px solid var(--line-dark);background:transparent;color:var(--off-white);cursor:pointer}.logout-button:hover{border-color:var(--gold)}.portal-main{min-width:0}.portal-header{min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 42px;border-bottom:1px solid var(--line);background:rgba(244,244,239,.96)}.portal-header h1{margin:0;font-size:1.7rem;font-weight:500;letter-spacing:-.035em}.header-user{display:grid;gap:4px;text-align:right}.header-user span{font-weight:600;font-size:.88rem}.header-user small{color:var(--muted)}.loading-state{padding:60px 42px;color:var(--muted)}#portalContent{padding:42px}.portal-section{display:none;max-width:1250px;margin:0 auto}.portal-section.active-section{display:block}.section-head,.welcome-row,.panel-heading,.billing-panel{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}.section-head{margin-bottom:30px}.section-head h2,.welcome-row h2{margin:0;font-size:clamp(1.8rem,3vw,2.65rem);font-weight:500;letter-spacing:-.045em}.section-copy{max-width:700px;margin:12px 0 0}.welcome-row{margin-bottom:30px;align-items:center}.status-pill,.soft-pill,.pending-label{display:inline-flex;align-items:center;min-height:32px;padding:0 11px;border:1px solid var(--line);color:var(--muted);font-size:.72rem;font-weight:600;white-space:nowrap}.status-pill.active{border-color:rgba(49,93,67,.3);background:rgba(49,93,67,.07);color:var(--success)}.soft-pill{background:rgba(201,184,149,.15);color:var(--green)}.pending-label{margin-top:10px;background:rgba(201,184,149,.13);color:var(--warning)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.metric-card{min-height:145px;padding:22px;border:1px solid var(--line);background:var(--white);display:flex;flex-direction:column;justify-content:space-between}.metric-card span{color:var(--muted);font-size:.78rem}.metric-card strong{margin:14px 0;font-size:1.7rem;font-weight:500;letter-spacing:-.04em}.metric-card small{color:var(--muted);font-size:.72rem}.panel{margin-bottom:20px;padding:26px;border:1px solid var(--line);background:var(--white)}.panel h3{margin:0;font-size:1.08rem;font-weight:600}.panel p{color:var(--muted);line-height:1.65}.panel-heading{margin-bottom:20px;align-items:center}.panel-heading span{color:var(--muted);font-size:.78rem}.inline-link{border:0;padding:0;background:transparent;color:var(--green);font-weight:600;cursor:pointer}.checklist{display:grid}.check-item{min-height:54px;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:12px;border-top:1px solid var(--line)}.check-item:first-child{border-top:0}.check-icon{width:20px;height:20px;display:grid;place-items:center;border:1px solid rgba(31,42,36,.24);border-radius:50%;color:var(--muted);font-size:.68rem}.check-item.complete .check-icon{border-color:var(--success);background:var(--success);color:#fff}.check-item span:last-child{color:var(--muted);font-size:.74rem}.check-item.complete span:last-child{color:var(--success)}.check-item.actionable{background:rgba(201,184,149,.07)}.check-action{color:var(--green);font-size:.76rem;font-weight:600;text-decoration:underline;text-underline-offset:3px}.check-action:hover{color:var(--warning)}.empty-state{padding:26px 0;color:var(--muted);font-size:.88rem}.empty-state.spacious{min-height:260px;display:grid;place-content:center;gap:8px;text-align:center}.empty-state.spacious strong{color:var(--green);font-size:1rem}.preference-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.rules-list{display:grid;gap:12px}.rule-card{padding:18px;border:1px solid var(--line)}.rule-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.rule-top strong{font-size:.95rem}.rule-strength{padding:5px 8px;border:1px solid var(--line);font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.rule-strength.hard{background:rgba(31,42,36,.06);color:var(--green)}.rule-strength.preference{background:rgba(201,184,149,.14);color:var(--warning)}.rule-details{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.rule-chip{padding:6px 8px;background:var(--off-white);color:var(--muted);font-size:.72rem}.info-note{margin:18px 0 0;color:var(--muted);font-size:.78rem;line-height:1.55}.billing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-panel{align-items:center}.billing-panel>div{max-width:700px}.billing-panel p{margin-bottom:0}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.account-grid .panel{margin-bottom:0}.detail-list{margin:20px 0 0}.detail-list div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.detail-list dt{color:var(--muted);font-size:.78rem}.detail-list dd{margin:0;font-size:.86rem;font-weight:500;word-break:break-word}.agreement-card{display:flex;flex-direction:column;justify-content:space-between;gap:22px;border-top:3px solid var(--gold)}.agreement-card .primary-button{align-self:flex-start}.agreement-card .eyebrow{margin-bottom:8px}
@media(max-width:1080px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preference-metrics,.billing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.portal{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:20px}.sidebar>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px}.side-label{display:none}.side-brand{width:150px}.sidebar nav{grid-column:1/-1;grid-template-columns:repeat(5,minmax(max-content,1fr));overflow-x:auto;padding-top:10px}.portal-nav-link{border-left:0;border-bottom:2px solid transparent;text-align:center;white-space:nowrap;padding:10px}.portal-nav-link.active{border-bottom-color:var(--gold)}.sidebar-bottom{display:none}.portal-header{padding:20px;min-height:88px}#portalContent{padding:28px 20px 46px}.loading-state{padding:42px 20px}.account-grid{grid-template-columns:1fr}}@media(max-width:620px){.auth-card{padding:32px 24px}.portal-header{align-items:flex-start}.header-user{display:none}.metric-grid,.preference-metrics,.billing-grid{grid-template-columns:1fr}.section-head,.welcome-row,.panel-heading,.billing-panel{flex-direction:column;gap:16px}.check-item{grid-template-columns:26px 1fr}.check-item>span:last-child,.check-action{grid-column:2}.detail-list div{grid-template-columns:1fr;gap:5px}.rule-top{align-items:flex-start;flex-direction:column}.agreement-card .primary-button{width:100%}}