@font-face{font-family:Geist;src:url('/portal-assets/geist-variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#130b03;--ink-soft:#2f2b1f;--cream:#fefbf2;--paper:#fbf8ed;--white:#fff;--blue:#2458dc;--blue-dark:#173c9f;--orange:#ff6f36;--orange-dark:#b9340b;--sky:#bddfff;--sand:#decb95;--success:#0e7c46;--warning:#8f6c0e;--error:#c03a1b;--line:rgba(19,11,3,.2);--muted:rgba(19,11,3,.68);--pad:clamp(20px,4vw,72px);--reading:72ch;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Geist,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
::selection{background:var(--orange);color:var(--ink)}
*{scrollbar-color:var(--ink) var(--paper);scrollbar-width:thin}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
button,input{font:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.skip-link{position:fixed;z-index:100;top:12px;left:12px;transform:translateY(-160%);padding:10px 16px;background:var(--ink);color:var(--white);text-decoration:none;border-radius:10px}.skip-link:focus{transform:none}
.portal-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:30px;min-height:82px;padding:0 var(--pad);border-bottom:1px solid var(--line);background:rgba(254,251,242,.97);backdrop-filter:blur(14px)}
.portal-logo{display:flex;width:176px}.portal-logo img{display:block;max-width:100%}
.portal-nav{display:flex;justify-content:center;gap:clamp(18px,3vw,48px)}
.portal-nav a{position:relative;display:flex;align-items:center;min-height:48px;font-size:13px;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.055em}
.portal-nav a::after{content:'';position:absolute;left:0;right:100%;bottom:7px;height:2px;background:var(--orange);transition:right .2s var(--ease)}.portal-nav a:hover::after,.portal-nav a[aria-current=page]::after{right:0}
.text-button{min-height:44px;padding:0;border:0;background:transparent;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}
.impersonation-bar,.notice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px var(--pad);border-bottom:1px solid var(--ink)}
.impersonation-bar{background:var(--sand)}.impersonation-bar button{min-height:38px;padding:7px 14px;border:1px solid var(--ink);border-radius:999px;background:transparent;font-weight:700;cursor:pointer}
.notice{justify-content:flex-start}.notice-success{background:color-mix(in srgb,var(--success) 12%,var(--white));color:var(--success)}.notice-error{background:color-mix(in srgb,var(--error) 12%,var(--white));color:var(--error)}.notice ul{margin:0}
main{min-height:calc(100vh - 162px)}
.page-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;padding:clamp(70px,8vw,126px) var(--pad);border-bottom:1px solid var(--line)}
.page-heading h1,.login-intro h1{max-width:1000px;margin:0 0 24px;font-size:clamp(54px,7vw,96px);font-weight:520;line-height:.96;letter-spacing:-.04em;text-wrap:balance}.page-heading p{max-width:var(--reading);margin:0;font-size:clamp(19px,2vw,25px)}
.compact-heading{display:block}.back-link{display:inline-flex;min-height:44px;align-items:center;margin-bottom:34px;font-weight:700}
.heading-with-action>div{max-width:920px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 21px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font-weight:700;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background .2s,color .2s}.button:hover{transform:translateY(-2px)}.button-primary{border-color:var(--orange);background:var(--orange)}.button-primary:hover{background:var(--orange-dark);border-color:var(--orange-dark);color:#fff}.button-danger{border-color:var(--error);color:var(--error)}.button-danger:hover{background:var(--error);color:#fff}
.login-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);min-height:calc(100vh - 150px);border-bottom:1px solid var(--line)}
.login-intro{display:flex;flex-direction:column;justify-content:center;padding:clamp(80px,10vw,160px) var(--pad);border-right:1px solid var(--line)}.login-intro p{max-width:670px;margin:0;font-size:clamp(21px,2vw,28px);line-height:1.25}
.login-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(60px,8vw,116px) var(--pad);background:var(--sky)}.login-panel h2{margin:0 0 18px;font-size:clamp(34px,4vw,56px);font-weight:520;line-height:1.02;letter-spacing:-.03em}.login-panel>p{max-width:52ch}.login-panel .button{align-self:flex-start;margin:18px 0}.quiet{color:var(--ink-soft);font-size:14px}.setup-message{padding:20px;border:1px solid var(--ink);background:rgba(255,255,255,.35)}
.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.summary-strip>div{display:flex;justify-content:space-between;gap:20px;padding:28px var(--pad);border-right:1px solid var(--line)}.summary-strip>div:last-child{border-right:0}.summary-strip span,.detail-grid dt,.domain-row>div>span,.customer-row>div>span{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.055em}.summary-strip strong{font-size:19px}
.ruled-section,.invoice-table,.account-state,.secret-panel,.admin-search{margin:clamp(60px,7vw,110px) var(--pad);border-top:1px solid var(--line)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.section-heading h2{margin:0;font-size:clamp(28px,3vw,46px);font-weight:520;letter-spacing:-.025em}.section-heading a{font-weight:700}
.licence-row,.customer-row{display:grid;grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(140px,.5fr));align-items:center;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}.licence-row>div,.customer-row>div{display:flex;flex-direction:column;gap:4px}.licence-row span,.customer-row span{color:var(--muted)}
.licence-detail{padding:34px 0;border-bottom:1px solid var(--line)}.licence-title{display:flex;align-items:start;justify-content:space-between;gap:24px}.licence-title h2{margin:0 0 6px;font-size:clamp(28px,3vw,44px);font-weight:520;letter-spacing:-.025em}.licence-title p{color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);margin:28px 0;padding:0;border-top:1px solid var(--line)}.detail-grid>div{padding:18px 18px 18px 0;border-bottom:1px solid var(--line)}.detail-grid dt{margin-bottom:5px}.detail-grid dd{margin:0;font-weight:650;overflow-wrap:anywhere}
.status{display:inline-flex;width:max-content;min-height:34px;align-items:center;padding:6px 11px;border:1px solid currentColor;border-radius:999px;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.status-active,.status-paid{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--white))}.status-grace,.status-unpaid,.status-overdue{color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,var(--white))}.status-suspended,.status-revoked,.status-cancelled{color:var(--error);background:color-mix(in srgb,var(--error) 10%,var(--white))}.status-expired,.status-refunded{color:var(--ink-soft);background:var(--paper)}
.domain-row{display:grid;grid-template-columns:minmax(260px,1.25fr) minmax(130px,.45fr) minmax(150px,.55fr) auto;align-items:center;gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}.domain-row h2{margin:0 0 4px;font-size:22px;font-weight:620;overflow-wrap:anywhere}.domain-row p{margin:0;color:var(--muted)}.domain-row>div{display:flex;flex-direction:column;gap:5px}
.invoice-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;align-items:center;gap:22px;padding:20px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.invoice-head{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.account-state,.secret-panel{padding:clamp(34px,5vw,64px) 0;border-bottom:1px solid var(--line)}.account-state h2,.secret-panel h2{font-size:clamp(32px,4vw,56px);font-weight:520}.account-state p,.secret-panel p{max-width:var(--reading);font-size:18px}.secret-key{max-width:none!important;padding:24px;border:1px solid var(--ink);background:var(--paper);font:650 clamp(15px,2vw,22px)/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;user-select:all}
.admin-search{padding:32px 0;border-bottom:1px solid var(--line)}.admin-search label{display:block;margin-bottom:10px;font-weight:700}.field-action{display:flex;max-width:820px;gap:12px}.field-action input{flex:1;min-width:0;height:48px;padding:10px 16px;border:1px solid var(--ink);border-radius:999px;background:#fff}.field-error{color:var(--error)}.customer-row{grid-template-columns:minmax(260px,1fr) minmax(180px,.5fr) auto}
.empty-state{padding:64px 0;border-bottom:1px solid var(--line)}.empty-state h2{margin:0 0 12px;font-size:clamp(30px,4vw,50px);font-weight:520;letter-spacing:-.025em}.empty-state p{max-width:var(--reading);margin:0;color:var(--muted);font-size:18px}
.checkout-shell{padding-bottom:clamp(70px,8vw,120px)}
.checkout-intro{padding:clamp(64px,8vw,118px) var(--pad);border-bottom:1px solid var(--line)}
.checkout-step{margin:0 0 20px;font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.065em;color:var(--blue-dark)}
.checkout-intro h1,.checkout-invalid h1{max-width:1100px;margin:0 0 24px;font-size:clamp(54px,7vw,96px);font-weight:520;line-height:.96;letter-spacing:-.04em;text-wrap:balance}
.checkout-intro>p:last-child{max-width:var(--reading);margin:0;font-size:clamp(19px,2vw,25px)}
.checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.58fr);gap:clamp(48px,7vw,116px);align-items:start;padding:clamp(60px,7vw,100px) var(--pad) 0}
.checkout-order{min-width:0}
.checkout-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--ink)}
.checkout-heading h2,.checkout-payment h2{margin:0;font-size:clamp(34px,4vw,54px);font-weight:520;line-height:1.05;letter-spacing:-.03em}
.checkout-heading span{color:var(--muted)}
.checkout-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px;min-height:104px;padding:22px 0;border-bottom:1px solid var(--line)}
.checkout-item h3{margin:0 0 5px;font-size:21px;overflow-wrap:anywhere}.checkout-item p{margin:0;color:var(--muted)}.checkout-item>strong{font-size:22px;font-variant-numeric:tabular-nums;white-space:nowrap}
.checkout-back{display:inline-flex;align-items:center;min-height:48px;margin-top:18px;font-weight:700}
.checkout-payment{position:sticky;top:112px;padding:clamp(32px,4vw,52px);background:var(--blue);color:#fff}
.checkout-payment dl{margin:26px 0;border-top:1px solid rgba(255,255,255,.55)}
.checkout-payment dl>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.55)}
.checkout-payment dt{font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.055em}.checkout-payment dd{margin:0;font-size:23px;font-weight:750;font-variant-numeric:tabular-nums}
.checkout-tax,.checkout-assurance{color:rgba(255,255,255,.78);font-size:14px}
.payment-methods{display:grid;gap:8px;margin:24px 0 16px;padding:0;border:0}
.payment-methods legend{margin-bottom:10px;font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.055em}
.payment-methods label{position:relative;cursor:pointer}.payment-methods input{position:absolute;inset:0;opacity:0}
.payment-methods span{display:flex;min-height:48px;align-items:center;padding:10px 14px;border:1px solid rgba(255,255,255,.65);border-radius:10px}
.payment-methods input:checked+span{background:#fff;border-color:#fff;color:var(--ink);font-weight:750}
.payment-methods input:focus-visible+span{outline:3px solid var(--orange);outline-offset:3px}
.checkout-submit{width:100%;margin-top:5px}.checkout-submit:disabled{cursor:wait;opacity:.64;transform:none}
.checkout-payment .setup-message{background:rgba(255,255,255,.16);border-color:#fff;color:#fff}
.checkout-invalid{padding:clamp(90px,12vw,180px) var(--pad)}.checkout-invalid p{max-width:var(--reading);font-size:19px}.checkout-invalid .button{margin-top:18px}
.portal-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px var(--pad);background:var(--ink);color:#fff;font-size:14px}.portal-footer a{min-height:44px;display:flex;align-items:center}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.portal-nav a::after{transition:none}}
@media(max-width:980px){.portal-header{grid-template-columns:170px 1fr}.portal-header>form{grid-column:2;grid-row:1;justify-self:end}.portal-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow-x:auto;padding-bottom:8px}.login-shell{grid-template-columns:1fr}.login-intro{border-right:0;border-bottom:1px solid var(--line)}.checkout-grid{grid-template-columns:1fr}.checkout-payment{position:static}.detail-grid{grid-template-columns:1fr 1fr}.domain-row{grid-template-columns:minmax(0,1fr) 1fr}.domain-row form{grid-column:2}.licence-row{grid-template-columns:1fr 1fr}.licence-row>div:first-child{grid-column:1/-1}}
@media(max-width:640px){.portal-header{position:static;display:flex;flex-wrap:wrap;gap:8px 20px;padding-block:14px}.portal-logo{width:150px}.portal-header>form{margin-left:auto}.portal-nav{order:3;width:100%;gap:22px}.portal-nav a{font-size:12px}.page-heading{display:block;padding-block:58px}.heading-with-action form{margin-top:28px}.heading-with-action .button{width:100%}.checkout-intro{padding-block:58px}.checkout-grid{padding-top:46px}.checkout-item{grid-template-columns:1fr}.checkout-item>strong{grid-row:2}.checkout-payment{padding:30px 22px}.summary-strip{grid-template-columns:1fr}.summary-strip>div{border-right:0;border-bottom:1px solid var(--line)}.summary-strip>div:last-child{border-bottom:0}.detail-grid,.licence-row,.domain-row,.customer-row{grid-template-columns:1fr}.domain-row form{grid-column:auto}.invoice-head{display:none}.invoice-row{grid-template-columns:1fr 1fr}.invoice-row>*::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.invoice-row>strong{grid-column:1/-1}.field-action{flex-direction:column}.field-action input{flex:auto;width:100%}.impersonation-bar{align-items:flex-start;flex-direction:column}.impersonation-bar form,.impersonation-bar button{width:100%}.portal-footer{align-items:flex-start;flex-direction:column}}
