.portal-page{color-scheme:dark}
.portal-sidebar nav{scrollbar-width:none}
.portal-sidebar nav::-webkit-scrollbar{display:none}

.portal-page { min-height:100dvh; display:flex; flex-direction:column; }
.portal-header { height:88px; padding:0 42px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #ffffff07; flex-shrink:0; }
.back-to-site { font-size:12px; color:var(--muted); }
.back-to-site:hover { color:var(--accent); }
.portal-loading { margin:auto; text-align:center; padding:90px 20px; color:var(--muted); font-size:13px; }
.loading-ring { display:inline-block; width:27px; height:27px; border:2px solid #263222; border-top-color:var(--accent); border-radius:50%; animation:loading .8s linear infinite; }
.portal-loading p { margin-top:15px; }
.portal-auth { width:min(1040px,calc(100% - 60px)); margin:auto; display:grid; grid-template-columns:1fr 420px; gap:90px; align-items:center; padding:75px 0; }
.auth-intro h1 { font-size:52px; letter-spacing:-2px; line-height:1.2; margin:22px 0; }
.auth-intro p { color:var(--muted); font-size:14px; max-width:340px; }
.auth-benefits { display:flex; flex-direction:column; gap:14px; font-size:12px; color:#b7c5ac; margin-top:32px; }
.auth-card { padding:34px; background:#121922; border-radius:12px; }
.auth-card h2 { font-size:25px; letter-spacing:-.8px; margin-top:27px; }
.auth-card>p { color:var(--muted); font-size:12px; }
.auth-mode-tabs { display:flex; gap:25px; border-bottom:1px solid #ffffff09; }
.auth-mode-tabs button { border:0; border-bottom:2px solid transparent; background:none; color:var(--muted); font-size:12px; padding:0 0 11px; }
.auth-mode-tabs [aria-selected=true] { color:var(--accent); border-bottom-color:var(--accent); }
.password-field { position:relative; }
.password-field input { padding-right:75px; }
.password-field button { position:absolute; right:10px; top:12px; color:#a2adbc; background:none; border:0; font-size:10px; }
.auth-card form>.button { width:100%; margin-top:12px; }
.portal-error { color:#eeb4a8; font-size:12px; line-height:1.7; }
.portal-error:empty { display:none; }
#password-hint,#registration-note { font-size:10px; color:#8995a5; margin:12px 0; line-height:1.7; }
.auth-privacy { font-size:10px!important; text-align:center; margin:22px 0 0; }
.auth-privacy a:hover { color:var(--accent); }
.portal-shell { flex:1; display:grid; grid-template-columns:240px minmax(0,1fr); width:min(1500px,100%); margin-inline:auto; }
.portal-sidebar { padding:38px 22px; border-right:1px solid #ffffff07; display:flex; flex-direction:column; gap:20px; }
.sidebar-heading { font-size:9px; letter-spacing:1.7px; color:#71808f; padding:0 14px; }
.portal-sidebar nav { display:flex; flex-direction:column; gap:5px; }
.portal-sidebar nav button { text-align:left; display:flex; align-items:center; gap:11px; background:none; border:0; border-radius:6px; font-size:12px; color:#939fad; padding:12px 14px; transition:color .2s,background .2s; }
.portal-sidebar nav button:hover { background:#ffffff04; color:#d9e2e9; }
.portal-sidebar nav button.selected { background:#b6ef710b; color:var(--accent); }
.portal-sidebar nav button>span { font-size:18px; width:20px; line-height:1; }
.sidebar-account { margin-top:auto; padding:30px 12px 0; display:flex; align-items:center; gap:12px; }
.account-avatar { background:#202e1b; color:var(--accent); border-radius:9px; display:grid; place-items:center; width:35px; height:35px; font-size:12px; flex-shrink:0; }
.sidebar-account strong { font-size:11px; font-weight:500; display:block; overflow-wrap:anywhere; }
.sidebar-account small { display:block; font-size:9px; color:#778693; margin-top:2px; }
.logout-button { background:none; border:0; text-align:left; padding:0 14px; font-size:11px; color:#8b97a6; }
.logout-button:hover { color:var(--accent); }
.portal-content { padding:38px 48px 70px; min-width:0; }
.portal-breadcrumb { font-size:10px; color:#6e7f8e; display:flex; gap:10px; }
.portal-breadcrumb>span:last-child { color:#9aa8b4; }
.portal-page-heading { margin:37px 0 30px; display:flex; gap:20px; align-items:center; justify-content:space-between; }
.portal-page-heading h1 { font-size:36px; letter-spacing:-1.5px; line-height:1.3; margin:12px 0; }
.portal-page-heading p { color:var(--muted); font-size:12px; margin:0; }
.portal-page-heading>.button { font-size:10px; white-space:nowrap; padding:10px 14px; }
.portal-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:30px; }
.portal-stat { background:#141c25; border-radius:9px; padding:22px; }
.portal-stat small { color:var(--muted); font-size:11px; }
.portal-stat strong { display:block; font:600 31px/1.6 'Manrope',sans-serif; color:#e7edf0; }
.portal-stat span { font-size:10px; color:#879788; }
.portal-section { padding:26px; background:#111820; border-radius:10px; margin-bottom:20px; }
.portal-section h2 { font-size:17px; letter-spacing:-.4px; margin:0 0 10px; }
.portal-section>p { font-size:12px; color:var(--muted); line-height:1.85; }
.section-title-row { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:15px; }
.section-title-row h2 { margin:0; }
.section-title-row button { background:none; border:0; color:var(--accent); font-size:10px; }
.empty-state { padding:35px 20px; text-align:center; }
.empty-state>.empty-icon { font-size:32px; margin-bottom:16px; }
.empty-state h2 { font-size:20px; letter-spacing:-.6px; }
.empty-state p { max-width:430px; color:var(--muted); font-size:12px; margin:12px auto 20px; line-height:1.85; }
.empty-state .button { font-size:11px; }
.portal-note { color:#8b9b88; background:#172016; padding:17px 20px; border-radius:7px; font-size:11px; line-height:1.8; margin-top:20px; }
.portal-note strong { color:#c5d5bb; font-weight:500; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.owned-product { padding:24px; background:#141c25; border-radius:9px; }
.owned-product .product-type { font-size:9px; color:#8a9c7f; letter-spacing:1px; }
.owned-product h2 { font-size:19px; margin:14px 0 8px; letter-spacing:-.5px; }
.owned-product p { font-size:11px; color:var(--muted); }
.status-label { font-size:9px; color:var(--accent); background:#b6ef7109; padding:4px 8px; border-radius:4px; display:inline-block; }
.status-label.inactive { color:#cfa68a; background:#cfa68a09; }
.product-meta { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:#8793a2; border-top:1px solid #ffffff08; margin-top:20px; padding-top:15px; }
.license-card { padding:26px; background:#141c25; border-radius:10px; margin-bottom:18px; }
.license-card h2 { font-size:18px; margin:0; }
.license-card .license-key { font-family:monospace; letter-spacing:1px; overflow-wrap:anywhere; font-size:15px; padding:18px 20px; background:#0d131a; border-radius:6px; margin:20px 0 14px; color:#c2d5b3; user-select:all; }
.license-actions { display:flex; flex-wrap:wrap; gap:10px; }
.license-actions .button { font-size:10px; padding:9px 14px; }
.license-entitlements { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0; padding:0; list-style:none; }
.license-entitlements li { font-size:10px; color:#9cac91; background:#b6ef7107; border-radius:4px; padding:4px 8px; }
.license-card .license-help { color:var(--muted); font-size:10px; line-height:1.8; margin:20px 0 0; }
.table-scroll { overflow-x:auto; }
.invoice-table { width:100%; border-collapse:collapse; font-size:11px; white-space:nowrap; }
.invoice-table th { text-align:left; font-weight:400; font-size:9px; letter-spacing:.6px; color:#7f91a1; padding:15px 12px; }
.invoice-table td { padding:20px 12px; border-top:1px solid #ffffff08; color:#b1becc; }
.invoice-table td:first-child { color:#e2e8ed; }
.invoice-table a { color:var(--accent); }
.account-details { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.account-field small { display:block; font-size:10px; color:#778897; margin-bottom:7px; }
.account-field strong { display:block; font-size:13px; font-weight:400; overflow-wrap:anywhere; }
.account-field code { font-size:11px; overflow-wrap:anywhere; color:#9eacb9; }
.profile-form { max-width:440px; margin-top:20px; }
.profile-form .button { width:auto; }
.portal-toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); z-index:10; padding:12px 20px; border-radius:7px; background:#263522; color:#d5e3cd; font-size:12px; max-width:calc(100% - 40px); }
.portal-footer { padding:20px 42px; border-top:1px solid #ffffff07; color:#677887; font-size:9px; display:flex; justify-content:space-between; }
.portal-footer a { color:#8b9ba9; }
.portal-footer a:hover { color:var(--accent); }
@keyframes loading { to { transform:rotate(360deg); } }
@media(max-width:1100px) {
 .portal-content{padding-inline:30px}.portal-shell{grid-template-columns:210px minmax(0,1fr)}
 .portal-auth{gap:45px;grid-template-columns:1fr 390px}.auth-intro h1{font-size:43px}
 .portal-stats{gap:10px}.portal-stat{padding:18px}
}
@media(max-width:760px) {
 .portal-header{height:74px;padding-inline:20px}.portal-header .brand{font-size:20px}.back-to-site{font-size:10px}
 .portal-auth{grid-template-columns:1fr;gap:30px;width:calc(100% - 36px);padding:35px 0}
 .auth-intro h1{font-size:38px}.auth-intro p{font-size:12px}.auth-benefits{display:none}.auth-card{padding:25px}
 .portal-shell{display:block}.portal-sidebar{padding:15px 18px;border:0;border-bottom:1px solid #ffffff07}
 .sidebar-heading,.sidebar-account,.portal-sidebar>.logout-button{display:none}
 .portal-sidebar nav{flex-direction:row;overflow-x:auto;gap:6px}.portal-sidebar nav button{white-space:nowrap;font-size:10px;padding:9px 11px;gap:7px}.portal-sidebar nav button>span{font-size:15px;width:auto}
 .portal-content{padding:25px 18px 40px}.portal-page-heading{margin:25px 0}.portal-page-heading h1{font-size:28px}
 .portal-page-heading .eyebrow{font-size:7px}.portal-page-heading p{font-size:11px;max-width:240px}
 .portal-page-heading>.button{font-size:9px;padding:8px}.portal-stats{gap:8px}.portal-stat{padding:16px 11px}
 .portal-stat small{font-size:9px}.portal-stat strong{font-size:25px}.portal-stat span{font-size:8px}
 .portal-section{padding:22px 18px}.empty-state{padding:28px 5px}.empty-state h2{font-size:19px}.empty-state p{font-size:11px}
 .product-grid,.account-details{grid-template-columns:1fr}.license-card{padding:22px 18px}.license-card .license-key{font-size:12px;padding:15px}
 .portal-footer{padding-inline:20px}.portal-note{font-size:10px}.portal-page .portal-section>.logout-button{display:inline-block;padding:0}
}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}}

.auth-text-button{display:block;background:none;border:0;padding:0;color:var(--accent);font-size:12px;margin:18px 0 0;cursor:pointer;text-align:left}
.auth-text-button:hover{text-decoration:underline;text-underline-offset:4px}
.flow-message{color:#b6ef71;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.flow-message:empty{display:none}
.flow-hint{font-size:11px;color:var(--muted);line-height:1.7}
#portal-flow-form{margin-top:24px}
#portal-flow-form input{max-width:100%}

.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.shop-product{display:flex;flex-direction:column;transition:background .2s,transform .2s}
.shop-product:hover{transform:translateY(-3px);background:#18232a}
.shop-product.in-cart{background:#1b2b20}
.shop-product h2{font-size:19px;margin:14px 0 8px}
.shop-dependency{color:var(--muted);font-size:11px;line-height:1.8;flex:1}
.shop-price{font-size:23px;display:block;margin:22px 0 16px;font-weight:500}
.shop-product .button{font-size:10px;padding:12px 14px;width:100%}
.shop-cart{position:sticky;top:24px;padding:24px}
.shop-cart>p,.shop-fine-print{font-size:11px;color:var(--muted);line-height:1.8}
.shop-cart>.button{width:100%;font-size:12px;margin-top:18px}
.cart-items{list-style:none;padding:0;margin:22px 0;font-size:11px}
.cart-items li{display:flex;justify-content:space-between;gap:16px;margin:16px 0;color:#bfccd7}
.cart-items strong{white-space:nowrap;font-weight:400;color:#e7edf3}
.cart-total{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding-top:20px;border-top:1px solid #ffffff0b}
.shop-cart .auth-text-button{line-height:1.7;font-size:11px}
@media(max-width:1100px){.shop-layout{grid-template-columns:1fr}.shop-cart{position:static;grid-row:1}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.shop-grid{grid-template-columns:1fr}.shop-product .button{font-size:12px}.shop-cart{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){.shop-product{transition:none}.shop-product:hover{transform:none}}

.portal-header{gap:20px}.portal-header .brand{margin-right:auto}
.portal-sidebar{position:sticky;top:0;height:calc(100dvh - 88px);align-self:start}.portal-sidebar nav{min-height:0;overflow-y:auto;flex:1}.sidebar-account{margin-top:0;padding-top:4px;flex-shrink:0}
.portal-sidebar{padding:24px 18px;gap:16px}.portal-sidebar nav button{padding:9px 12px;font-size:11px;line-height:1.5}.nav-group{margin-bottom:16px}.nav-category{margin-bottom:6px}
.ticket-customer summary{font-size:11px;color:#a8b8c4;cursor:pointer}.ticket-customer[open] summary{margin-bottom:22px}.ticket-customer .account-field strong{font-size:11px;white-space:pre-wrap}
.nav-group{margin-bottom:20px}.nav-group:last-child{margin-bottom:0}
.nav-category{display:block;padding:0 14px;margin-bottom:9px;font-size:8px;letter-spacing:1.3px;color:#627281}
.nav-items{display:flex;flex-direction:column;gap:4px}.nav-items button{width:100%}
.portal-sidebar .sidebar-heading{display:none}.portal-sidebar{padding-top:32px}
.customer-number{display:inline-flex;align-items:center;gap:7px;background:none;border:0;color:#a8b8c4;font:11px/1.6 monospace;cursor:pointer;padding:4px 0;white-space:nowrap;transition:color .2s}
.customer-number:hover{color:var(--accent)}.sidebar-account .customer-number{font-size:10px}
.sidebar-account{padding-inline:6px}.account-avatar{background:none}.account-avatar .profile-avatar{width:35px;height:35px;border-radius:9px}
.profile-avatar{display:inline-grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#24351e;color:var(--accent);font-size:14px;border-radius:13px;overflow:hidden}
.profile-avatar img{display:block;width:100%;height:100%;object-fit:cover}.profile-avatar.large{width:88px;height:88px;font-size:27px;border-radius:23px}
.role-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;line-height:1.4;padding:5px 9px;border-radius:5px;background:#b0bac80d;color:#a8b7c4;vertical-align:middle}
.role-owner{background:#b6ef7114;color:#b6ef71}.role-support{background:#87baff13;color:#a1c6f7}
.profile-summary{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:30px}
.profile-summary-identity{display:flex;align-items:center;gap:22px;min-width:0}.profile-summary h2{margin:9px 0 10px;font-size:24px;overflow-wrap:anywhere}.profile-summary .customer-number{margin-left:12px}.profile-summary .eyebrow{font-size:8px}
.avatar-controls{max-width:280px}.avatar-controls label{position:relative;display:inline-block;margin:0;cursor:pointer;font-size:11px}.avatar-controls input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0}.avatar-controls:focus-within label{outline:2px solid var(--accent);outline-offset:4px}
.field-hint{font-size:11px;color:#7e8f9f;line-height:1.7}.text-button{background:none;border:0;padding:8px 0;color:#a5b4c1;font-size:11px;cursor:pointer}.text-button:hover{color:var(--accent)}.avatar-controls .text-button{margin-left:12px}
.profile-editor{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin-top:24px}.profile-editor label:has(textarea){grid-column:1/-1}.profile-editor>.button{justify-self:start;grid-column:1/-1;margin-top:16px;font-size:12px}
.portal-page textarea,.portal-page select{font:inherit;font-size:12px;color:#dce4eb;background:#0b121a;border:1px solid #ffffff0c;border-radius:6px;padding:12px 14px;outline:none;max-width:100%}
.portal-page textarea{display:block;width:100%;resize:vertical;min-height:130px;margin-top:9px;line-height:1.8}.portal-page textarea:focus,.portal-page select:focus{border-color:#b6ef7170}
.portal-page .button:disabled{opacity:.42;cursor:not-allowed;transform:none}.workspace-loading{font-size:12px;color:var(--muted);padding:30px}
.ticket-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:24px;flex-wrap:wrap}.ticket-toolbar h2{font-size:18px;letter-spacing:-.4px;margin:0}.ticket-toolbar>div:first-child{margin-right:auto}.ticket-toolbar .field-hint{margin:5px 0 0}.ticket-toolbar>.text-button{margin-right:auto}.ticket-toolbar .button{font-size:11px}
.filter-label{display:flex;flex-direction:column;gap:7px;margin:0;color:#7e8f9f;font-size:10px}.filter-label select{min-width:155px}
.ticket-list{display:flex;flex-direction:column;gap:9px}.ticket-row{display:flex;align-items:center;gap:20px;width:100%;padding:23px 25px;border:0;border-radius:10px;background:#121b24;color:inherit;text-align:left;cursor:pointer;transition:background .2s,transform .2s}
.ticket-row:hover{background:#19262d;transform:translateX(3px)}.ticket-row-main{flex:1;min-width:0}.ticket-row-main small{display:block;font-size:9px;color:#7c918c;letter-spacing:.3px}.ticket-row-main strong{display:block;font-size:14px;font-weight:500;margin:9px 0;overflow-wrap:anywhere}.ticket-row-main>span{display:block;font-size:10px;color:#8493a2}.ticket-row-meta{text-align:right;flex-shrink:0}.ticket-row-meta time{display:block;font-size:9px;color:#768998;margin-top:10px}.ticket-arrow{color:#6d8964}
.ticket-status{display:inline-flex;font-size:10px;padding:5px 9px;border-radius:5px;white-space:nowrap}.status-open{background:#b6ef7112;color:#b8db9c}.status-waiting{background:#e9c58112;color:#d7ba88}.status-answered{background:#90baff12;color:#a5c3e9}.status-closed{background:#a4afbc0d;color:#8999a7}
.ticket-pagination{display:flex;gap:20px;justify-content:center;align-items:center;margin-top:25px;font-size:11px;color:var(--muted)}.ticket-pagination .button{font-size:11px}
.new-ticket{margin-top:18px;max-width:850px}.ticket-form{margin-top:20px}.ticket-form>.button{margin-top:20px;font-size:12px}.ticket-form>.filter-label{margin:20px 0}.ticket-form textarea{min-height:170px}
.ticket-detail-heading h2{font-size:25px;margin:15px 0;overflow-wrap:anywhere}.ticket-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:13px;font-size:10px;color:#8496a6}.ticket-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:24px}.ticket-actions .button{font-size:10px;padding:12px 14px}
.ticket-timeline{display:flex;flex-direction:column;gap:16px;margin:25px 0}.ticket-message{background:#121b24;border-radius:12px;padding:25px}.ticket-message.staff-message{background:#15231d}.message-header{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.message-header strong{font-size:12px;font-weight:500}.message-header time{margin-left:auto;font-size:9px;color:#78908a}.message-body{font-size:12px;line-height:1.95;color:#bbc8d0;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0 0}.ticket-event{font-size:10px;color:#7d908a;text-align:center;overflow-wrap:anywhere;margin:6px 0}
.team-search{display:flex;gap:12px;align-items:end;margin-top:15px}.team-search label{flex:1;max-width:500px}.team-search .button{font-size:11px;margin-bottom:0}.team-card{display:flex;align-items:center;justify-content:space-between;gap:25px}.team-card h2{font-size:17px}.team-card p{font-size:11px;color:#8195a5;overflow-wrap:anywhere}.team-role-form{display:flex;gap:12px;align-items:end}.team-role-form .button{font-size:10px;white-space:nowrap}.team-role-form select{min-width:120px}
@media(max-width:1100px){.profile-summary{align-items:start;flex-direction:column}.avatar-controls{max-width:none}.team-card{align-items:start;flex-direction:column}}
@media(max-width:760px){.portal-header{gap:14px}.portal-header>.customer-number{font-size:10px}.portal-header .back-to-site{display:none}.portal-sidebar{padding:16px 18px}.portal-sidebar nav{gap:24px}.nav-group{margin:0;flex-shrink:0}.nav-category{font-size:7px;padding:0 7px;margin-bottom:7px}.nav-items{flex-direction:row;gap:4px}.nav-items button{width:auto}.profile-summary{padding:23px 20px}.profile-summary-identity{gap:16px}.profile-avatar.large{width:65px;height:65px;border-radius:18px;font-size:23px}.profile-summary h2{font-size:21px}.profile-summary .customer-number{margin-left:7px;font-size:10px}.profile-editor{grid-template-columns:1fr}.profile-editor label:has(textarea){grid-column:auto}.ticket-row{padding:18px 16px;gap:10px}.ticket-row-main strong{font-size:12px}.ticket-row-meta time{font-size:8px;max-width:110px;line-height:1.6}.ticket-status{font-size:8px}.ticket-arrow{display:none}.ticket-toolbar{gap:13px}.ticket-toolbar>.filter-label{flex:1}.ticket-toolbar>.button{align-self:end}.ticket-toolbar select{min-width:0;width:100%}.ticket-detail-heading h2{font-size:21px}.ticket-message{padding:20px}.message-header{gap:8px}.message-header time{width:100%;margin-left:0}.ticket-actions .filter-label{flex:1}.ticket-actions select{width:100%;min-width:0}.team-role-form{flex-wrap:wrap}.team-search .button{padding:13px}.team-search input{min-width:0}.ticket-pagination{gap:10px}}
@media(prefers-reduced-motion:reduce){.ticket-row{transition:none}.ticket-row:hover{transform:none}}
@media(max-width:760px){.portal-sidebar{position:static;height:auto}.portal-sidebar nav{overflow-y:hidden;flex:none}.sidebar-account{display:none}}
@media(min-width:761px){.portal-sidebar nav{gap:0}.portal-sidebar nav button{padding:8px 12px}.nav-group{margin-bottom:12px}.nav-category{margin-bottom:5px}}
