.portal-root{--pt-ease:cubic-bezier(.22, .61, .21, 1);--pt-spring:cubic-bezier(.32, .72, 0, 1);--pt-side-w:272px;background:var(--bg-primary);min-height:100dvh;color:var(--text-primary);font-family:var(--font-body,system-ui, sans-serif)}.portal-shell{height:100dvh;display:flex;overflow:hidden}.portal-side{width:var(--pt-side-w);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);z-index:90;flex-direction:column;flex-shrink:0;height:100%;display:flex}.portal-side:before{content:"";background:radial-gradient(120% 100% at 30% 0%, color-mix(in srgb, var(--brand) 7%, transparent), transparent 70%);pointer-events:none;height:180px;position:absolute;inset:0 0 auto}.portal-side__brand{border-bottom:1px solid var(--border-subtle);padding:22px 18px 16px;position:relative}.portal-side__top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.portal-side__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--brand);font-size:10px;font-weight:800}.portal-side__appearance{border-left:1px solid var(--border-subtle);margin-left:auto;padding-left:12px;line-height:0}.portal-side__appearance-trigger{border:1px solid var(--border);background:var(--badge-bg);color:var(--text-secondary);cursor:pointer;transition:color .18s var(--pt-ease), border-color .18s var(--pt-ease), background-color .18s var(--pt-ease);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.portal-side__appearance-trigger:hover,.portal-side__appearance-trigger[aria-expanded=true]{color:var(--text-primary);border-color:var(--brand-light)}.portal-side__appearance-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;margin:10px 0 12px;padding:12px 14px}.portal-side__name{font-family:var(--font-display,Georgia, serif);color:var(--text-primary);overflow-wrap:anywhere;font-size:clamp(20px,1.6vw,23px);font-weight:400;line-height:1.15;text-decoration:none;display:block}.portal-side__name em{color:var(--brand);font-style:italic}.portal-side__public{color:var(--text-secondary);transition:color .18s var(--pt-ease);align-items:center;gap:6px;margin-top:8px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.portal-side__public:hover{color:var(--brand)}.portal-nav{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:14px 12px 18px;overflow-y:auto}.portal-nav__group+.portal-nav__group{margin-top:18px}.portal-nav__label{letter-spacing:.18em;text-transform:uppercase;width:100%;color:var(--text-muted);text-align:left;cursor:pointer;transition:color .18s var(--pt-ease);background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:2px 10px;font-family:inherit;font-size:10.5px;font-weight:800;display:flex}.portal-nav__label:hover{color:var(--text-secondary)}.portal-nav__label:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.portal-nav__chevron{opacity:.7;width:10px;height:10px;transition:transform .25s var(--pt-spring);flex:none}.portal-nav__group.is-collapsed .portal-nav__chevron{transform:rotate(-90deg)}.portal-nav__items{transition:grid-template-rows .3s var(--pt-ease);grid-template-rows:1fr;display:grid}.portal-nav__items-inner{opacity:1;min-height:0;transition:opacity .22s var(--pt-ease);overflow:hidden}.portal-nav__group.is-collapsed .portal-nav__items{grid-template-rows:0fr}.portal-nav__group.is-collapsed .portal-nav__items-inner{opacity:0}@media (prefers-reduced-motion:reduce){.portal-nav__items,.portal-nav__items-inner,.portal-nav__chevron{transition:none}}.portal-nav__link{color:var(--text-secondary);transition:color .18s var(--pt-ease), background-color .18s var(--pt-ease);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:600;text-decoration:none;display:flex;position:relative}.portal-nav__link:before{content:"";background:var(--brand);width:2px;height:16px;transition:transform .25s var(--pt-spring);border-radius:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)scaleY(0)}.portal-nav__link:hover{color:var(--text-primary);background:var(--badge-bg)}.portal-nav__link.is-active{color:var(--brand);background:color-mix(in srgb, var(--brand) 11%, transparent)}.portal-nav__link.is-active:before{transform:translateY(-50%)scaleY(1)}.portal-nav__icon{text-align:center;filter:grayscale();opacity:.6;width:18px;transition:filter .18s var(--pt-ease), opacity .18s var(--pt-ease);font-size:14px}.portal-nav__link:hover .portal-nav__icon,.portal-nav__link.is-active .portal-nav__icon{filter:none;opacity:1}.portal-nav__label-text{flex:1}.portal-nav__preview{letter-spacing:.06em;text-transform:uppercase;color:var(--brand);background:color-mix(in srgb, var(--brand) 13%, transparent);border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:9.5px;font-weight:800}.portal-nav__link.is-locked{color:var(--text-secondary)}.portal-side__foot{border-top:1px solid var(--border-subtle);padding:12px 18px 16px}.portal-side__switch{color:var(--text-muted);transition:color .18s var(--pt-ease);align-items:center;gap:8px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.portal-side__switch:hover{color:var(--text-primary)}.portal-topbar{z-index:80;background:color-mix(in srgb, var(--bg-secondary) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:10px 14px;display:none;position:sticky;top:0}.portal-topbar__name{min-width:0;font-family:var(--font-display,Georgia, serif);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:18px;overflow:hidden}.portal-burger{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;padding:0 9px;display:inline-flex}.portal-burger span{background:var(--text-primary);height:2px;transition:transform .25s var(--pt-spring), opacity .2s var(--pt-ease);border-radius:2px}.portal-burger[aria-expanded=true] span:first-child{transform:translateY(6px)rotate(45deg)}.portal-burger[aria-expanded=true] span:nth-child(2){opacity:0}.portal-burger[aria-expanded=true] span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.portal-scrim{z-index:85;background:color-mix(in srgb, var(--bg-primary) 62%, transparent);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .28s var(--pt-ease);border:none;padding:0;display:none;position:fixed;inset:0}.portal-main{scroll-behavior:smooth;flex:1;min-width:0;height:100dvh;overflow:clip auto}.portal-page{max-width:1060px;margin:0 auto;padding:clamp(24px,3.5vw,44px) clamp(16px,3vw,36px) 80px}.portal-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:26px;display:flex}.portal-page__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--brand);margin-bottom:6px;font-size:10.5px;font-weight:800}.portal-page__title{font-family:var(--font-display,Georgia, serif);color:var(--text-primary);margin:0;font-size:clamp(28px,3.4vw,38px);font-weight:400;line-height:1.05}.portal-page__title em{color:var(--brand);font-style:italic}.portal-page__sub{color:var(--text-secondary);margin:6px 0 0;font-size:13.5px}.portal-page__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:640px){.portal-page__head{flex-direction:column;align-items:stretch}.portal-page__actions{width:100%}}@media (max-width:920px){.portal-topbar{display:flex}.portal-side{height:100dvh;transition:transform .32s var(--pt-spring);box-shadow:18px 0 60px color-mix(in srgb, var(--bg-primary) 55%, transparent);will-change:transform;position:fixed;inset:0 auto 0 0;transform:translate(-104%)}.portal-side.is-open{transform:translate(0)}.portal-scrim{display:block}.portal-scrim.is-open{opacity:1;pointer-events:auto}.portal-nav__link{min-height:44px}}.portal-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:14px;padding:18px 20px}.portal-card--tint{background:color-mix(in srgb, var(--brand) 7%, var(--bg-card));border-color:color-mix(in srgb, var(--brand) 32%, transparent)}.portal-card--interactive{cursor:pointer;text-align:left;width:100%;color:inherit;transition:border-color .2s var(--pt-ease), transform .2s var(--pt-ease), box-shadow .2s var(--pt-ease);font-family:inherit}.portal-card--interactive:hover{border-color:color-mix(in srgb, var(--brand) 38%, var(--border));box-shadow:var(--card-shadow-hover,var(--card-shadow));transform:translateY(-2px)}.portal-section-title{font-family:var(--font-body,system-ui, sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:10px;margin:0 0 12px;font-size:11px;font-weight:800;display:flex}.portal-section-title:before{content:"";background:var(--brand);border-radius:2px;flex-shrink:0;width:16px;height:2px}.portal-section-title .portal-badge{letter-spacing:normal;text-transform:none}.portal-stat{display:block}.portal-stat__value{font-family:var(--font-display,Georgia, serif);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:clamp(28px,2.6vw,34px);line-height:1;display:block}.portal-stat--accent .portal-stat__value{color:var(--brand);text-shadow:0 0 18px var(--brand-glow)}.portal-stat__label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:7px;font-size:11.5px;font-weight:700;display:block}.portal-stat__hint{color:var(--text-secondary);margin-top:3px;font-size:12px;display:block}.portal-empty{border:1px dashed color-mix(in srgb, var(--text-primary) 16%, transparent);text-align:center;color:var(--text-muted);background:color-mix(in srgb, var(--bg-card) 55%, transparent);border-radius:14px;padding:26px 20px;font-size:13.5px;font-weight:600}.portal-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;min-height:38px;transition:color .18s var(--pt-ease), border-color .18s var(--pt-ease), background-color .18s var(--pt-ease), transform .18s var(--pt-ease), box-shadow .18s var(--pt-ease);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.portal-btn:hover{color:var(--text-primary);border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-1px)}.portal-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.portal-btn--primary{background:var(--brand);border-color:var(--brand);color:var(--bg-primary)}.portal-btn--primary:hover{color:var(--bg-primary);border-color:var(--brand);box-shadow:0 4px 22px var(--brand-glow)}.portal-btn--ghost{background:0 0}.portal-btn--danger{border-color:color-mix(in srgb, var(--color-error) 45%, transparent);color:var(--color-error);background:0 0}.portal-btn--danger:hover{color:var(--color-error);border-color:var(--color-error);background:color-mix(in srgb, var(--color-error) 9%, transparent)}.portal-btn--sm{border-radius:8px;min-height:30px;padding:5px 12px;font-size:12px}.portal-input{background:var(--input-bg);border:1px solid var(--input-border,var(--border));width:100%;color:var(--text-primary);box-sizing:border-box;transition:border-color .18s var(--pt-ease), box-shadow .18s var(--pt-ease);border-radius:10px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.portal-input::placeholder{color:var(--text-muted)}.portal-input:focus{border-color:color-mix(in srgb, var(--brand) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent)}.portal-badge{background:var(--badge-bg);color:var(--text-secondary);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:800;display:inline-flex}.portal-badge--brand{background:color-mix(in srgb, var(--brand) 13%, transparent);color:var(--brand)}.portal-badge--success{background:color-mix(in srgb, var(--color-success) 13%, transparent);color:var(--color-success)}.portal-badge--muted{color:var(--text-muted)}.portal-badge--danger{background:color-mix(in srgb, var(--color-error) 13%, transparent);color:var(--color-error)}.portal-banner{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;display:flex}.portal-banner--brand{background:color-mix(in srgb, var(--brand) 8%, var(--bg-card));border-color:color-mix(in srgb, var(--brand) 35%, transparent)}.portal-banner__body{flex:1;min-width:200px}.portal-banner__title{color:var(--text-primary);font-size:14px;font-weight:800}.portal-banner--brand .portal-banner__title{color:var(--brand)}.portal-banner__text{color:var(--text-secondary);margin-top:2px;font-size:12.5px}.portal-banner-row{background:color-mix(in srgb, var(--brand) 6%, var(--bg-card));border:1px solid color-mix(in srgb, var(--brand) 24%, transparent);color:var(--text-primary);transition:background var(--duration-fast,.15s) var(--pt-ease,ease);border-radius:12px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.portal-banner-row:hover{background:color-mix(in srgb, var(--brand) 11%, var(--bg-card))}.portal-banner-row__text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.portal-banner-row__arrow{color:var(--brand);flex-shrink:0;font-weight:800}.portal-gate{text-align:center;background:color-mix(in srgb, var(--brand) 5%, var(--bg-card));border:1px solid color-mix(in srgb, var(--brand) 30%, var(--border));border-radius:18px;max-width:460px;margin:56px auto;padding:32px 28px}.portal-gate__icon{margin-bottom:14px;font-size:40px;line-height:1}.portal-gate__badge{letter-spacing:.04em;text-transform:uppercase;color:var(--brand);background:color-mix(in srgb, var(--brand) 13%, transparent);border-radius:999px;margin-bottom:12px;padding:3px 11px;font-size:11px;font-weight:800;display:inline-block}.portal-gate__title{color:var(--text-primary);margin:0 0 8px;font-size:20px;font-weight:700}.portal-gate__text{color:var(--text-secondary);margin:0 0 22px;font-size:13.5px;line-height:1.6}.portal-gate__actions{flex-direction:column;align-items:center;gap:10px;display:flex}.portal-gate__actions .portal-btn{min-width:200px}.portal-meter{background:var(--bg-secondary);border-radius:999px;height:7px;overflow:hidden}.portal-meter__fill{background:linear-gradient(90deg, color-mix(in srgb, var(--brand) 70%, var(--bg-secondary)), var(--brand));transform-origin:0;height:100%;transition:width .5s var(--pt-ease);border-radius:999px}.portal-meter--low .portal-meter__fill{background:var(--color-warning)}.portal-row{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color .18s var(--pt-ease), transform .18s var(--pt-ease);border-radius:11px;align-items:center;gap:12px;padding:11px 15px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.portal-row:hover{border-color:color-mix(in srgb, var(--brand) 38%, var(--border));transform:translate(2px)}.portal-row--accent{background:color-mix(in srgb, var(--brand) 8%, var(--bg-card));border-color:color-mix(in srgb, var(--brand) 35%, transparent)}.portal-row__count{background:var(--badge-bg);min-width:25px;height:25px;color:var(--text-secondary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0 7px;font-size:12.5px;font-weight:800;display:inline-flex}.portal-row--accent .portal-row__count{background:var(--brand);color:var(--bg-primary)}.portal-row__arrow{color:var(--text-muted);transition:transform .18s var(--pt-ease), color .18s var(--pt-ease);flex-shrink:0;font-size:13px}.portal-row:hover .portal-row__arrow{color:var(--brand);transform:translate(3px)}.portal-check{color:var(--text-primary);align-items:center;gap:10px;padding:6px 0;font-size:13px;text-decoration:none;display:flex}.portal-check__mark{color:var(--text-muted);flex-shrink:0;font-weight:800}.portal-check.is-ok{color:var(--text-secondary)}.portal-check.is-ok .portal-check__mark{color:var(--brand)}.portal-check__fix{color:var(--brand);flex-shrink:0;font-size:12px;font-weight:700}a.portal-check:hover .portal-check__fix{text-decoration:underline}.portal-link{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:700;text-decoration:none}.portal-link:hover{text-decoration:underline}.portal-grid-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.portal-cols-2{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}@media (max-width:1000px){.portal-cols-2{grid-template-columns:1fr}}.portal-stack{flex-direction:column;gap:9px;display:flex}.portal-section{margin-bottom:30px}.portal-reveal{animation:portal-reveal-in .42s var(--pt-ease) both}@keyframes portal-reveal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.portal-reveal{animation:none}}.portal-skel{background:var(--bg-card);border:1px solid var(--border);animation:portal-skel-pulse 1.4s var(--pt-ease) infinite alternate;border-radius:14px}@keyframes portal-skel-pulse{0%{opacity:.35}to{opacity:.65}}.portal-field{min-width:0;display:block}.portal-field__label{color:var(--text-secondary);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.portal-field__hint{color:var(--text-muted);margin:5px 0 0;font-size:11.5px}.portal-scroll-x,.portal-tabs,.portal-table{--sx-bg:var(--bg-secondary);background-image:linear-gradient(to right, var(--sx-bg) 45%, transparent), linear-gradient(to left, var(--sx-bg) 45%, transparent), linear-gradient(to right, color-mix(in srgb, var(--text-primary) 20%, transparent), transparent), linear-gradient(to left, color-mix(in srgb, var(--text-primary) 20%, transparent), transparent);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:30px 100%,30px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.portal-tabs{border:1px solid var(--border-subtle);background-color:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:12px;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.portal-tabs__tab{color:var(--text-secondary);white-space:nowrap;cursor:pointer;transition:color .18s var(--pt-ease), background-color .18s var(--pt-ease);background:0 0;border:0;border-radius:9px;padding:7px 14px;font-family:inherit;font-size:12.5px;font-weight:700}.portal-tabs__tab:hover{color:var(--text-primary)}.portal-tabs__tab.is-active{background:var(--bg-card);color:var(--brand);box-shadow:var(--card-shadow)}.portal-modal{z-index:120;background:color-mix(in srgb, var(--bg-primary) 55%, transparent);-webkit-backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.portal-modal__dialog{background:var(--bg-card);border:1px solid var(--border);width:100%;max-width:480px;max-height:min(86dvh,720px);box-shadow:var(--card-shadow);animation:portal-modal-in .24s var(--pt-spring);border-radius:16px;padding:22px;overflow-y:auto}.portal-modal__title{font-family:var(--font-display,Georgia, serif);color:var(--text-primary);overflow-wrap:anywhere;margin:0 0 16px;font-size:22px;font-weight:400;line-height:1.15}.portal-modal__actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}@keyframes portal-modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}.portal-table{border:1px solid var(--border);--sx-bg:var(--bg-card);background-color:var(--bg-card);border-radius:12px;overflow-x:auto}.portal-table table{border-collapse:collapse;width:100%;min-width:420px;font-size:13px}.portal-table th{text-align:left;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--text-muted);background:color-mix(in srgb, var(--bg-secondary) 65%, transparent);border-bottom:1px solid var(--border);padding:9px 14px;font-size:10.5px;font-weight:800}.portal-table td{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:10px 14px}.portal-table tbody tr{transition:background-color .15s var(--pt-ease)}.portal-table tbody tr:hover{background:color-mix(in srgb, var(--brand) 5%, transparent)}.portal-table tbody tr:last-child td{border-bottom:0}.portal-root :is(a,button,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb, var(--brand) 70%, transparent);outline-offset:2px}.portal-formgrid-2{grid-template-columns:1fr 1fr;display:grid}.portal-price-form-grid{grid-template-columns:1fr 120px 120px;display:grid}.portal-pairing-grid{grid-template-columns:1fr auto 1fr;display:grid}@media (max-width:640px){.portal-formgrid-2,.portal-price-form-grid,.portal-pairing-grid{grid-template-columns:1fr}}.portal-builder-shell{grid-template-columns:minmax(0,1fr) minmax(0,380px);display:grid}@media (max-width:860px){.portal-builder-shell{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.portal-root *,.portal-root :before,.portal-root :after{transition:none!important;animation:none!important}.portal-skel{opacity:.5}}
