@font-face{font-family:Anta;src:url('fonts/anta.ttf') format('truetype');font-display:swap}
:root,[data-bs-theme=dark]{--page:#242424;--surface:#282828;--card:#363636;--text:#ebebeb;--muted:#8f8f8f;--line:#e3e3e3;--icon-bg:#fff;--icon:#173f72;--accent:#fff;--admin:#141b31;--admin-line:#293351}
[data-bs-theme=light]{--page:#eceff3;--surface:#fff;--card:#f2f4f7;--text:#252a31;--muted:#6c737e;--line:#30343a;--icon-bg:#fff;--icon:#174a86;--accent:#17191c;--admin:#fff;--admin-line:#ccd2dc}
*{box-sizing:border-box}html,body{transition:background-color .35s ease,color .35s ease}body{margin:0;background:var(--page);color:var(--text);font:13px/1.4 Anta,system-ui,sans-serif;min-height:100vh}.portal-body{padding:46px 2.5vw;background-image:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--icon) 12%,transparent),transparent 28%),radial-gradient(circle at 88% 100%,color-mix(in srgb,var(--text) 5%,transparent),transparent 30%);background-attachment:fixed}.portal-shell{position:relative;max-width:1880px;min-height:760px;margin:auto;padding:25px 5%;background:color-mix(in srgb,var(--surface) 96%,transparent);border-radius:8px;box-shadow:0 28px 80px #0002;transition:background-color .35s ease,box-shadow .35s ease}.portal-topnav{min-height:86px;display:flex;align-items:flex-start;justify-content:center;gap:24px;padding:8px 10px 46px;white-space:nowrap}.portal-topnav a{position:relative;color:color-mix(in srgb,var(--text) 23%,transparent);text-decoration:none;font-size:20px;font-weight:700;padding:8px 0;transition:color .25s ease,transform .25s ease}.portal-topnav a:hover{color:var(--text);transform:translateY(-2px)}.portal-topnav a.active{color:var(--text)}.portal-topnav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--accent);animation:underlineIn .45s cubic-bezier(.2,.8,.2,1)}.portal-topnav span{color:color-mix(in srgb,var(--text) 18%,transparent);font-size:22px;padding-top:6px}.theme-toggle{display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--text) 30%,transparent);background:transparent;color:var(--text);border-radius:50%;width:36px;height:36px;margin-left:6px;transition:transform .35s ease,background .25s ease}.theme-toggle:hover{transform:rotate(180deg) scale(1.08);background:color-mix(in srgb,var(--text) 8%,transparent)}.portal-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}.portal-group{display:grid;grid-template-columns:35% 65%;border:2px solid var(--line);border-radius:5px;min-height:540px;transition:border-color .3s ease,box-shadow .3s ease}.portal-group:has(.nav-link.active){box-shadow:0 16px 38px #0002}.portal-tabs{border:0;border-right:2px solid var(--line);margin:-2px 0 -2px -2px}.portal-tabs .nav-link{width:calc(100% + 2px);min-height:68px;display:flex;align-items:center;gap:16px;text-align:left;padding:14px 20px;border:2px solid var(--line);border-radius:5px 0 0 5px;margin:0 0 -2px;color:var(--text);background:transparent;font-size:15px;transition:background .22s ease,transform .22s ease,color .22s ease}.portal-tabs .nav-link:hover,.portal-tabs .nav-link:focus{color:var(--text);background:color-mix(in srgb,var(--text) 7%,transparent);transform:translateX(4px)}.portal-tabs .nav-link.active{position:relative;z-index:2;color:var(--text);background:var(--surface);border-color:var(--line);border-right-color:var(--surface);transform:translateX(2px)}.portal-tabs i{width:22px;text-align:center;font-size:17px;transition:transform .28s cubic-bezier(.2,.9,.3,1.4)}.portal-tabs .nav-link:hover i,.portal-tabs .nav-link.active i{transform:scale(1.18) rotate(-5deg)}.portal-panels{padding:16px 22px;min-width:0}.portal-panels .tab-pane.show{animation:panelIn .38s cubic-bezier(.2,.8,.2,1)}.portal-card{display:flex;align-items:center;gap:13px;min-height:59px;margin:5px 0;padding:8px 11px;border-radius:5px;background:var(--card);color:var(--text);text-decoration:none;box-shadow:0 5px 14px #0000;transition:transform .22s cubic-bezier(.2,.8,.2,1),filter .22s ease,box-shadow .22s ease}.tab-pane.show .portal-card{animation:cardIn .4s both}.tab-pane.show .portal-card:nth-child(2){animation-delay:.035s}.tab-pane.show .portal-card:nth-child(3){animation-delay:.07s}.tab-pane.show .portal-card:nth-child(4){animation-delay:.105s}.tab-pane.show .portal-card:nth-child(5){animation-delay:.14s}.tab-pane.show .portal-card:nth-child(6){animation-delay:.175s}.tab-pane.show .portal-card:nth-child(n+7){animation-delay:.21s}.portal-card:hover{transform:translateX(5px) scale(1.012);filter:brightness(1.08);box-shadow:0 9px 22px #0003;color:var(--text)}.portal-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:5px;background:var(--icon-bg);color:var(--icon);font-size:18px;transition:transform .25s cubic-bezier(.2,.9,.3,1.5),box-shadow .25s ease}.portal-card:hover .portal-icon{transform:scale(1.08) rotate(-3deg);box-shadow:0 5px 14px #0003}.portal-copy{display:flex;min-width:0;flex-direction:column}.portal-copy strong{font-size:14px;font-weight:400;overflow-wrap:anywhere}.portal-copy small{margin-top:4px;color:var(--muted);font-size:12px}.empty-panel{color:var(--muted);padding:1rem}@keyframes panelIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}@keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes underlineIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
body:not(.portal-body)>header{display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--admin-line);background:var(--admin)}body:not(.portal-body)>header .brand{font-weight:800;color:var(--text);text-decoration:none;font-size:1.25rem}body:not(.portal-body)>header nav{display:flex;gap:1rem}body:not(.portal-body)>header nav a{color:var(--muted)}body:not(.portal-body)>main{width:min(1180px,94%);margin:2.5rem auto}.card{background:var(--admin);border:1px solid var(--admin-line);color:var(--text);border-radius:18px;padding:clamp(1rem,3vw,2rem)}.narrow{max-width:460px;margin:6vh auto}.admin-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1.25rem}label{display:grid;gap:.4rem;margin:1rem 0;color:var(--muted)}input,select,button{font:inherit}.notice,.error{padding:.8rem 1rem;border-radius:10px;background:#21325e}.error{background:#55262b}.table-wrap{overflow:auto}.actions{display:flex;flex-wrap:wrap;gap:.35rem}.inline{display:inline}.modes{display:flex;gap:1rem;flex-wrap:wrap}.modes form{display:flex;align-items:center;gap:.6rem;padding:.7rem;background:var(--card);border-radius:10px}code{word-break:break-all}
@media(max-width:1500px){.portal-body{padding:20px}.portal-shell{padding:22px 3%}.portal-columns{gap:18px}.portal-group{grid-template-columns:42% 58%}.portal-tabs .nav-link{padding:12px 14px}.portal-panels{padding:12px}.portal-topnav{gap:15px}.portal-topnav a{font-size:16px}}
@media(max-width:1050px){.portal-columns{grid-template-columns:1fr;gap:24px}.portal-group{grid-template-columns:30% 70%;min-height:500px}}
@media(max-width:900px){.portal-body{padding:0}.portal-shell{padding:18px;min-height:100vh}.portal-topnav{overflow-x:auto;justify-content:flex-start;padding-bottom:28px}.portal-group{grid-template-columns:40% 60%;min-height:500px}.portal-tabs .nav-link{min-height:58px}.admin-grid{grid-template-columns:1fr}}
@media(max-width:560px){.portal-group{grid-template-columns:1fr;border:0}.portal-tabs{border:0;margin:0}.portal-tabs .nav-link{width:100%;border-radius:5px;margin-bottom:5px}.portal-tabs .nav-link.active{border-right-color:var(--line)}.portal-panels{padding:8px 0 22px}.portal-panels:has(.tab-pane.active){min-height:100px}.portal-topnav span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.portal-version{position:fixed;right:12px;bottom:8px;z-index:10;color:var(--muted);font:10px/1 Anta,system-ui,sans-serif;opacity:.55;user-select:none}
.portal-credit{position:fixed;left:50%;bottom:8px;z-index:10;transform:translateX(-50%);color:var(--muted);font:10px/1 Anta,system-ui,sans-serif;opacity:.55;white-space:nowrap;user-select:none}

/* v0.3.3 — measured against the original sasho.me layout */
.portal-body{padding:51px 2.5vw 46px;background-image:none}
.portal-shell{max-width:1880px;padding:25px 5%;box-shadow:none}
.portal-topnav a{font-size:18px;font-weight:600}
.portal-topnav a:hover{transform:none}
.portal-topnav>a,.portal-topnav>span,.portal-topnav>.theme-toggle{position:relative;top:-19px}
.portal-columns{gap:30px;align-items:start}
.portal-group{min-height:476px;align-self:start;box-shadow:none!important}
.portal-group:nth-child(1){grid-template-columns:161px minmax(0,1fr)}
.portal-group:nth-child(2){grid-template-columns:186px minmax(0,1fr)}
.portal-group:nth-child(3){grid-template-columns:131px minmax(0,1fr)}
.portal-tabs .nav-link{min-height:58px;gap:12px;padding:14px 20px;margin:0 0 1px;font-size:13px;line-height:26px;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.portal-tabs .nav-link:hover,.portal-tabs .nav-link:focus{background:color-mix(in srgb,var(--text) 6%,transparent);transform:none}
.portal-tabs .nav-link.active{transform:none}
.portal-tabs i{width:18px;font-size:14px;transition:color .18s ease,opacity .18s ease}
.portal-tabs .nav-link:hover i,.portal-tabs .nav-link.active i{transform:none}
.portal-panels{padding:14px 22px}
.portal-card{width:min(100%,292px);height:52px;min-height:52px;margin:5px auto;padding:8px;gap:12px;overflow:hidden;border:1px solid transparent;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease}
.portal-card:hover,.portal-card:focus-visible{transform:none;filter:none;background:color-mix(in srgb,var(--card) 90%,var(--text));border-color:color-mix(in srgb,var(--text) 17%,transparent);box-shadow:0 5px 14px #0002;color:var(--text);outline:none}
.portal-icon{flex-basis:33px;height:33px;font-size:13px;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.portal-card:hover .portal-icon,.portal-card:focus-visible .portal-icon{transform:none;box-shadow:0 2px 7px #0002}
.portal-copy{flex:1 1 auto}
.portal-copy strong,.portal-copy small{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.portal-copy strong{font-size:13px;line-height:16px}
.portal-copy small{margin-top:4px;font-size:12px;line-height:16px}
.theme-toggle{transition:background-color .18s ease,border-color .18s ease}
.theme-toggle:hover{transform:none;background:color-mix(in srgb,var(--text) 7%,transparent)}
.portal-panels .tab-pane.show{animation:panelIn .14s ease-out both}
.tab-pane.show .portal-card,.tab-pane.show .portal-card:nth-child(n){animation:none}
@media(max-width:1500px){.portal-body{padding-top:20px}.portal-shell{padding:22px calc(4% + 11px)}.portal-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.portal-group{min-height:476px}.portal-tabs .nav-link{min-height:58px;padding:14px 20px}.portal-panels{padding:14px 22px}.portal-topnav{gap:24px;padding-top:18px;padding-bottom:62px}.portal-topnav a{font-size:18px;line-height:36px;padding:6px 0}.portal-topnav>a,.portal-topnav>span,.portal-topnav>.theme-toggle{top:0}}
@media(max-width:1050px){.portal-columns{grid-template-columns:1fr;gap:24px}.portal-group{min-height:476px}}
@media(max-width:900px){.portal-group{min-height:476px}.portal-tabs .nav-link{min-height:58px}}
@media(max-width:560px){.portal-group{grid-template-columns:1fr!important;min-height:0}.portal-card{width:100%}.portal-panels{padding:8px 0 22px}}

/* v0.4.0 — fast, focused administration */
:root,[data-bs-theme=dark]{--admin-bg:#0d0f13;--admin-surface:#15181e;--admin-surface-2:#1c2028;--admin-border:#292f39;--admin-text:#f5f6f8;--admin-muted:#8d96a5;--admin-accent:var(--portal-dark-accent,#f59e0b);--admin-accent-soft:color-mix(in srgb,var(--admin-accent) 22%,#15181e);--admin-danger:#ff6570;--admin-success:#54d49b}
[data-bs-theme=light]{--admin-bg:#f2f4f8;--admin-surface:#fff;--admin-surface-2:#f6f7f9;--admin-border:#dfe3e9;--admin-text:#171a20;--admin-muted:#687180;--admin-accent:var(--portal-light-accent,#16a34a);--admin-accent-soft:color-mix(in srgb,var(--admin-accent) 12%,#fff);--admin-danger:#d73e4b;--admin-success:#14865b}
.admin-body,.auth-body{background:var(--admin-bg);color:var(--admin-text);font-family:Anta,system-ui,sans-serif}
.admin-header{position:sticky;top:0;z-index:50;min-height:68px;padding:0 clamp(18px,3vw,48px)!important;background:color-mix(in srgb,var(--admin-bg) 88%,transparent)!important;border-bottom:1px solid var(--admin-border)!important;backdrop-filter:blur(18px);box-shadow:0 8px 28px #00000012}
.admin-header .brand{display:flex;align-items:center;gap:10px;color:var(--admin-text)!important;font-size:17px!important;letter-spacing:.01em}
.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--admin-accent);color:#fff;font-size:17px;box-shadow:0 7px 20px color-mix(in srgb,var(--admin-accent) 30%,transparent)}
.admin-header nav{display:flex;align-items:center;gap:5px!important}
.admin-header nav a,.admin-header nav button{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:0;border-radius:10px;color:var(--admin-muted)!important;text-decoration:none;transition:background .14s ease,color .14s ease}
.admin-header nav a:hover,.admin-header nav button:hover{background:var(--admin-surface-2);color:var(--admin-text)!important}
.admin-header .theme-toggle{width:38px;height:38px;margin-left:4px;border:1px solid var(--admin-border)}
.admin-body>main{width:100%!important;max-width:none;margin:0!important}
.admin-main{width:min(1640px,calc(100% - 32px));margin:0 auto;padding:28px 0 42px}
.admin-overview{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;padding:0 3px}
.admin-overview h1{margin:2px 0 5px;font-size:clamp(27px,3vw,40px);letter-spacing:-.035em}
.admin-overview p{margin:0;color:var(--admin-muted)}
.eyebrow,.pane-kicker{display:block;color:var(--admin-accent)!important;font-size:10px!important;letter-spacing:.14em;text-transform:uppercase}
.admin-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-stats span{display:flex;align-items:baseline;gap:6px;padding:8px 11px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface);color:var(--admin-muted);white-space:nowrap}
.admin-stats strong{color:var(--admin-text);font-size:16px}
.admin-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.admin-workspace.has-editor{grid-template-columns:260px minmax(420px,1fr) 350px}
.admin-pane{min-width:0;border:1px solid var(--admin-border);border-radius:17px;background:var(--admin-surface);box-shadow:0 18px 50px #00000013}
.admin-sidebar{max-height:calc(100vh - 98px);padding:12px;overflow:auto;position:sticky;top:82px}
.pane-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:5px 4px 13px}
.pane-heading h2{margin:2px 0 0;font-size:18px;letter-spacing:-.02em}
.category-group{margin-top:12px}
.category-group-title{display:block;padding:0 8px 6px;color:var(--admin-muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.category-nav-item{position:relative;margin:3px 0;border:1px solid transparent;border-radius:11px;transition:background .13s ease,border-color .13s ease}
.category-nav-item:hover{background:var(--admin-surface-2);border-color:var(--admin-border)}
.category-nav-item.active{background:var(--admin-accent-soft);border-color:color-mix(in srgb,var(--admin-accent) 38%,transparent)}
.category-nav-item>a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:43px;padding:0 9px 0 31px;color:var(--admin-text);text-decoration:none}
.category-nav-item>a>i{color:var(--admin-muted);text-align:center}
.category-nav-item.active>a>i{color:var(--admin-accent)}
.category-nav-item small{min-width:23px;padding:3px 6px;border-radius:7px;background:var(--admin-surface-2);color:var(--admin-muted);text-align:center}
.category-tools{display:none;position:absolute;right:5px;top:4px;align-items:center;padding:2px;border-radius:8px;background:var(--admin-surface-2);box-shadow:0 4px 14px #0002}
.category-nav-item:hover .category-tools{display:flex}
.category-nav-item.active .category-tools{display:flex}
.category-tools+.x{display:none}
.category-tools .icon-action{width:29px;height:29px}
.category-tools~a{display:none}
.admin-content{padding:16px;min-height:560px}
.content-heading{padding:0 0 14px}
.selected-title{display:flex;align-items:center;gap:11px}
.selected-icon,.link-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:11px;background:var(--admin-accent-soft);color:var(--admin-accent);font-size:17px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:0 14px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface-2);color:var(--admin-text);text-decoration:none;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}
.button:hover{transform:translateY(-1px);color:var(--admin-text);border-color:color-mix(in srgb,var(--admin-accent) 55%,var(--admin-border))}
.button.primary,.icon-action.primary{border-color:var(--admin-accent);background:var(--admin-accent);color:#fff!important}
.button.wide{width:100%;margin-top:5px}
.icon-action{display:inline-grid;place-items:center;flex:0 0 auto;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--admin-muted);text-decoration:none;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}
.icon-action:hover{background:var(--admin-surface-2);border-color:var(--admin-border);color:var(--admin-text)}
.icon-action.danger{color:var(--admin-danger)}
.action-form{display:inline-flex;margin:0}
.admin-search{position:relative;display:block;margin:0 0 12px}
.admin-search i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--admin-muted)}
.admin-search input{width:100%;height:40px;padding:0 13px 0 38px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface-2);color:var(--admin-text);outline:none}
.admin-search input:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}
.link-list{display:grid;gap:7px}
.link-row{display:grid;grid-template-columns:22px 40px minmax(130px,1fr) minmax(100px,.7fr) auto auto;align-items:center;gap:9px;min-height:61px;padding:9px 10px 9px 7px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface-2);transition:border-color .12s ease,transform .12s ease,background .12s ease,opacity .12s ease}
.link-row:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--admin-accent) 40%,var(--admin-border));background:color-mix(in srgb,var(--admin-surface-2) 92%,var(--admin-accent))}
.link-row.is-hidden{opacity:.56}
.link-row[hidden]{display:none}
.link-copy{display:flex;min-width:0;flex-direction:column;gap:3px}
.link-copy strong,.link-copy span,.link-url{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.link-copy strong{font-size:13px}.link-copy span,.link-url{color:var(--admin-muted);font-size:11px}
.link-url{text-decoration:none}.link-url:hover{color:var(--admin-accent)}
.status-pill{padding:5px 7px;border-radius:8px;background:var(--admin-border);color:var(--admin-muted);font-size:10px;white-space:nowrap}
.status-pill.live{background:color-mix(in srgb,var(--admin-success) 14%,transparent);color:var(--admin-success)}
.row-actions{display:flex;align-items:center;gap:1px}
.row-actions .icon-action{width:30px;height:30px}
.admin-editor{position:sticky;top:82px;padding:16px}
.editor-form label{display:grid;gap:6px;margin:0 0 13px;color:var(--admin-muted);font-size:11px}
.editor-form input,.editor-form select,.auth-body input,.card input,.card select{width:100%;height:42px;padding:0 12px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface-2);color:var(--admin-text);outline:none}
.editor-form input:focus,.editor-form select:focus,.auth-body input:focus,.card input:focus,.card select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}
.icon-input{display:grid;grid-template-columns:42px minmax(0,1fr)}
.icon-input>[data-icon-preview]{display:grid;place-items:center;padding:0;border:1px solid var(--admin-border);border-right:0;border-radius:10px 0 0 10px;background:var(--admin-accent-soft);color:var(--admin-accent);cursor:pointer}
.icon-input input{border-radius:0 10px 10px 0}
.switch-field{display:flex!important;align-items:center;gap:9px!important;min-height:40px}
.switch-field input{width:18px;height:18px;margin:0;accent-color:var(--admin-accent)}
.danger-zone{margin-top:20px;padding-top:16px;border-top:1px solid var(--admin-border)}
.danger-zone p{margin:3px 0 10px;color:var(--admin-muted);font-size:11px}
.icon-action.labeled{display:flex;width:auto;padding:0 10px;gap:6px}
.empty-state{display:grid;justify-items:center;padding:70px 20px;color:var(--admin-muted);text-align:center}
.empty-state>i{font-size:32px}.empty-state h3{margin:12px 0 3px;color:var(--admin-text)}.empty-state p{margin:0}
.flash-stack{position:fixed;z-index:100;top:78px;right:20px;display:grid;gap:7px;width:min(380px,calc(100% - 40px))}
.notice{display:flex;align-items:center;gap:9px;margin:0!important;padding:11px 13px!important;border:1px solid color-mix(in srgb,var(--admin-accent) 30%,var(--admin-border));border-radius:11px!important;background:var(--admin-surface)!important;color:var(--admin-text);box-shadow:0 12px 30px #0003}
.notice.success{border-color:color-mix(in srgb,var(--admin-success) 45%,var(--admin-border))}.notice.danger{border-color:color-mix(in srgb,var(--admin-danger) 50%,var(--admin-border))}
.auth-body>main{width:min(460px,calc(100% - 30px))!important;margin:7vh auto!important}.auth-body .card{background:var(--admin-surface);border-color:var(--admin-border)}
.auth-body button,.card button{min-height:40px;padding:0 14px;border:1px solid var(--admin-accent);border-radius:10px;background:var(--admin-accent);color:#fff}
@media(max-width:1250px){.admin-workspace.has-editor{grid-template-columns:240px minmax(0,1fr)}.admin-workspace.has-editor .admin-editor{grid-column:2;position:static}.link-row{grid-template-columns:22px 40px minmax(120px,1fr) auto auto}.link-url{display:none}}
@media(max-width:820px){.admin-header nav a span{display:none}.admin-main{width:min(100% - 20px,700px);padding-top:18px}.admin-overview{align-items:flex-start;flex-direction:column}.admin-stats{justify-content:flex-start}.admin-workspace,.admin-workspace.has-editor{grid-template-columns:1fr}.admin-sidebar{position:static;max-height:none}.admin-workspace.has-editor .admin-editor{grid-column:1}.link-row{grid-template-columns:22px 40px minmax(0,1fr) auto}.status-pill{display:none}.row-actions{grid-column:3 / -1;justify-content:flex-end;border-top:1px solid var(--admin-border);padding-top:6px}.category-tools{display:flex}}

/* Compact portal cards inspired by the approved button reference */
:root,[data-bs-theme=dark]{--portal-link:#202020;--portal-link-hover:#292929;--portal-link-border:#4a4a4d;--portal-icon-bg:#343438;--portal-icon-fg:#aeb0b7}
[data-bs-theme=light]{--portal-link:#f5f6f8;--portal-link-hover:#fff;--portal-link-border:#c9ced6;--portal-icon-bg:#e4e7ec;--portal-icon-fg:#5f6875}
.portal-card{position:relative;height:50px;min-height:50px;padding:7px 9px;border:1px solid var(--portal-link-border);border-radius:11px;background:var(--portal-link);box-shadow:none}
.portal-card::after{content:"›";display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;border-radius:50%;background:var(--portal-icon-fg);color:var(--portal-link);font:18px/1 system-ui,sans-serif;opacity:0;transform:translateX(-4px);transition:opacity .14s ease,transform .14s ease}
.portal-card:hover,.portal-card:focus-visible{background:var(--portal-link-hover);border-color:color-mix(in srgb,var(--portal-icon-fg) 75%,var(--portal-link-border));box-shadow:0 7px 18px #0003}
.portal-card:hover::after,.portal-card:focus-visible::after{opacity:1;transform:none}
.portal-icon{flex-basis:34px;height:34px;border-radius:9px;background:var(--portal-icon-bg);color:var(--portal-icon-fg);font-size:14px}
.portal-copy strong{font-size:13px;font-weight:600}.portal-copy small{margin-top:2px;font-size:11px;color:var(--muted)}

.admin-body>main>.card,.admin-body>main>.admin-grid{width:min(1180px,calc(100% - 32px));margin:24px auto}
.admin-body .card{background:var(--admin-surface);border-color:var(--admin-border);color:var(--admin-text);box-shadow:0 18px 50px #00000013}
.admin-body .admin-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr)}
.admin-body table{width:100%;border-collapse:collapse}.admin-body th,.admin-body td{padding:11px 9px;border-bottom:1px solid var(--admin-border);text-align:left}.admin-body th{color:var(--admin-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.admin-body code{color:var(--admin-accent)}
@media(max-width:820px){.admin-body .admin-grid{grid-template-columns:1fr}.portal-card::after{opacity:1;transform:none}}

/* v0.5.0 — mouse drag-and-drop ordering in administration */
.drag-handle{display:grid;place-items:center;width:22px;height:32px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--admin-muted);cursor:grab;touch-action:none;transition:color .12s ease,background .12s ease,transform .12s ease}
.drag-handle:hover,.drag-handle:focus-visible{background:var(--admin-border);color:var(--admin-text);outline:none}
.drag-handle:active{cursor:grabbing}
.category-drag-handle{position:absolute;z-index:3;left:4px;top:5px}
.category-nav-item.is-dragging,.link-row.is-dragging{opacity:.34;transform:scale(.985)}
.category-group.is-drag-over{border-radius:12px;background:color-mix(in srgb,var(--admin-accent) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--admin-accent) 26%,transparent)}
.link-list.is-drag-over{border-radius:14px;box-shadow:0 0 0 2px color-mix(in srgb,var(--admin-accent) 18%,transparent)}
.drag-placeholder{height:4px;border-radius:4px;background:var(--admin-accent)}
.reorder-status{position:fixed;z-index:120;right:20px;bottom:20px;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 13px;border:1px solid var(--admin-border);border-radius:11px;background:var(--admin-surface);color:var(--admin-text);box-shadow:0 12px 34px #0004;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .15s ease,transform .15s ease}
.reorder-status.show{opacity:1;transform:none}.reorder-status.error{border-color:var(--admin-danger);color:var(--admin-danger)}.reorder-status.success{border-color:var(--admin-success);color:var(--admin-success)}
.admin-workspace.is-filtering .link-drag-handle{opacity:.3;cursor:not-allowed;pointer-events:none}
.link-row{user-select:none}.link-copy,.link-icon,.status-pill{cursor:grab}.link-row.is-dragging .link-copy,.link-row.is-dragging .link-icon,.link-row.is-dragging .status-pill{cursor:grabbing}

/* v0.6.0 — editable public navigation */
.nav-admin-main{max-width:1480px}
.nav-editor{padding:16px}
.nav-editor-help{display:flex;align-items:flex-start;gap:9px;margin-bottom:14px;padding:11px 13px;border:1px solid var(--admin-border);border-radius:11px;background:var(--admin-surface-2);color:var(--admin-muted);font-size:11px}
.nav-editor-help i{color:var(--admin-accent)}
.nav-editor-list{display:grid;gap:8px}
.nav-editor-row{display:grid;grid-template-columns:34px 42px minmax(115px,.5fr) minmax(145px,.55fr) minmax(230px,1.1fr) minmax(145px,.6fr);align-items:end;gap:10px;padding:11px;border:1px solid var(--admin-border);border-radius:13px;background:var(--admin-surface-2)}
.nav-editor-row>label{margin:0;font-size:10px}
.nav-editor-row>label>input,.nav-editor-row>label>select{width:100%;height:40px;padding:0 11px;border:1px solid var(--admin-border);border-radius:9px;background:var(--admin-surface);color:var(--admin-text);outline:none}.nav-editor-row>label>input:focus,.nav-editor-row>label>select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}.nav-editor-row>label>input:disabled{opacity:.58;cursor:not-allowed}
.nav-editor-order{display:grid;gap:2px;align-self:center}.nav-editor-order .icon-action{height:25px}
.nav-icon-preview{display:grid;place-items:center;width:42px;height:42px;align-self:end;border-radius:10px;background:var(--admin-accent-soft);color:var(--admin-accent);font-size:18px}
.nav-row-options{grid-column:3 / -1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:3px 2px 0}
.nav-row-options label{display:flex;align-items:center;gap:6px;margin:0;color:var(--admin-muted);font-size:10px}.nav-row-options input{width:15px;height:15px;accent-color:var(--admin-accent)}
.nav-row-options .delete-option{margin-left:auto;color:var(--admin-danger)}
.nav-editor-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:15px;border-top:1px solid var(--admin-border)}
@media(max-width:1050px){.nav-editor-row{grid-template-columns:34px 42px minmax(0,1fr) minmax(0,1.25fr)}.nav-editor-row>label:nth-of-type(3),.nav-editor-row>label:nth-of-type(4){grid-column:3 / -1}.nav-row-options{grid-column:3 / -1}}
@media(max-width:700px){.nav-editor-row{grid-template-columns:34px 42px minmax(0,1fr)}.nav-editor-row>label{grid-column:2 / -1}.nav-row-options{grid-column:1 / -1}.nav-row-options .delete-option{margin-left:0}}

/* v0.10.0 — subtitle search integrated into the portal */
.subtitle-shell{max-width:1500px;min-height:calc(100vh - 80px);padding-bottom:72px}
.subtitle-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1260px;margin:46px auto 20px}
.subtitle-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 7px;color:var(--portal-active-accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.subtitle-hero h1{margin:0;color:var(--text);font-size:clamp(28px,4vw,48px);line-height:1.05}
.subtitle-hero p:not(.subtitle-eyebrow){margin:10px 0 0;color:var(--muted);font-size:14px}
.subtitle-home,.subtitle-new-search{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 15px;border:1px solid var(--portal-button-border);border-radius:12px;background:var(--card);color:var(--text);font-weight:700;text-decoration:none;white-space:nowrap;transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease}
.subtitle-home:hover,.subtitle-new-search:hover{transform:translateY(-1px);border-color:var(--portal-active-accent);background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--card));color:var(--portal-active-accent)}
.subtitle-search{max-width:1260px;margin:0 auto 16px;padding:16px;border:1px solid var(--portal-button-border);border-radius:18px;background:var(--surface);box-shadow:0 14px 40px #0000000d}
.subtitle-search-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}
.subtitle-query{display:flex;align-items:center;gap:11px;min-width:0;height:48px;padding:0 15px;border:1px solid var(--portal-button-border);border-radius:13px;background:var(--card);color:var(--muted);transition:border-color .15s ease,box-shadow .15s ease}
.subtitle-query:focus-within{border-color:var(--portal-active-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-active-accent) 16%,transparent)}
.subtitle-query input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:15px}
.subtitle-query input::placeholder{color:var(--muted)}
.subtitle-search-main>button{display:inline-flex;align-self:center;align-items:center;justify-content:center;gap:6px;width:auto;height:38px;min-width:88px;padding:0 13px;border:1px solid var(--portal-active-accent);border-radius:10px;background:var(--portal-active-accent);color:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:filter .15s ease,transform .15s ease}
.subtitle-search-main>button:hover{filter:brightness(1.08);transform:translateY(-1px)}
.subtitle-search-main>.subtitle-new-search{align-self:center;width:auto;min-width:78px;min-height:38px;height:38px;padding:0 12px;border-radius:10px;font-size:12px}
.subtitle-filters{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:16px;margin-top:15px;padding-top:14px;border-top:1px solid var(--portal-button-border)}
.subtitle-filters fieldset{min-width:0;margin:0;padding:0;border:0}.subtitle-filters legend{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0 0 9px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.subtitle-filters legend span{display:flex;gap:5px}.subtitle-filters legend button{padding:2px 7px;border:0;border-radius:6px;background:transparent;color:var(--portal-active-accent);font:inherit;font-size:10px;font-weight:700;cursor:pointer}.subtitle-filters legend button:hover{background:color-mix(in srgb,var(--portal-active-accent) 12%,transparent)}
.subtitle-checks{display:flex;flex-wrap:wrap;gap:7px}.subtitle-checks label{display:flex;align-items:center;gap:7px;margin:0;padding:7px 10px;border:1px solid var(--portal-button-border);border-radius:9px;background:var(--card);color:var(--text);font-size:11px;cursor:pointer}.subtitle-checks input{accent-color:var(--portal-active-accent)}
.subtitle-limit{display:grid;align-content:start;gap:8px;margin:0;color:var(--muted);font-size:11px;font-weight:700}.subtitle-limit select{height:36px;padding:0 10px;border:1px solid var(--portal-button-border);border-radius:9px;background:var(--card);color:var(--text);outline:none}
.subtitle-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:1260px;margin:0 auto 12px;padding:10px 14px;border:1px solid var(--portal-button-border);border-radius:12px;background:color-mix(in srgb,var(--portal-active-accent) 6%,var(--surface));color:var(--muted);font-size:12px}.subtitle-summary strong{color:var(--text)}
.subtitle-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1260px;margin:0 auto}
.subtitle-source{overflow:hidden;border:1px solid var(--portal-button-border);border-radius:16px;background:var(--surface)}
.subtitle-source>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--portal-button-border);background:color-mix(in srgb,var(--portal-active-accent) 7%,var(--card))}.subtitle-source h2{margin:0;color:var(--text);font-size:16px}.subtitle-source header p{margin:3px 0 0;color:var(--muted);font-size:10px}.subtitle-source header>span{padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--portal-active-accent) 15%,transparent);color:var(--portal-active-accent);font-size:10px;font-weight:800;white-space:nowrap}
.subtitle-source ol{display:grid;gap:6px;margin:0;padding:10px;list-style:none}.subtitle-source li a{display:flex;align-items:flex-start;gap:11px;padding:10px;border:1px solid transparent;border-radius:11px;color:var(--text);text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}.subtitle-source li a:hover{transform:translateX(2px);border-color:color-mix(in srgb,var(--portal-active-accent) 45%,var(--portal-button-border));background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--card))}.subtitle-source li>a>i{margin-top:2px;color:var(--portal-active-accent)}.subtitle-source li span{display:grid;min-width:0;gap:3px}.subtitle-source li strong{overflow-wrap:anywhere;font-size:12px}.subtitle-source li small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.subtitle-empty{margin:0;padding:24px 16px;color:var(--muted);text-align:center;font-size:12px}.subtitle-empty.error{color:#e36a73}
.subtitle-fallback,.subtitle-fallback-form button{display:flex;align-items:center;justify-content:center;gap:7px;width:calc(100% - 20px);min-height:36px;margin:0 10px 10px;padding:0 10px;border:1px solid var(--portal-button-border);border-radius:9px;background:var(--card);color:var(--muted);font:inherit;font-size:10px;font-weight:700;text-decoration:none;cursor:pointer}.subtitle-fallback:hover,.subtitle-fallback-form button:hover{border-color:var(--portal-active-accent);color:var(--portal-active-accent)}.subtitle-fallback-form{margin:0}
.subtitle-start{display:grid;place-items:center;gap:8px;max-width:1260px;min-height:260px;margin:0 auto;border:1px dashed var(--portal-button-border);border-radius:18px;background:var(--surface);color:var(--muted);text-align:center}.subtitle-start>i{font-size:36px;color:var(--portal-active-accent)}.subtitle-start strong{color:var(--text);font-size:18px}.subtitle-start span{font-size:12px}
.subtitle-footer{max-width:1260px;margin:20px auto 0;color:var(--muted);font-size:10px;text-align:center}
@media(max-width:900px){.subtitle-hero{margin-top:28px}.subtitle-results{grid-template-columns:1fr}.subtitle-filters{grid-template-columns:1fr 140px}}
@media(max-width:620px){.subtitle-shell{padding-left:13px;padding-right:13px}.subtitle-hero{align-items:flex-start;margin-top:22px}.subtitle-hero h1{font-size:30px}.subtitle-hero p:not(.subtitle-eyebrow){font-size:12px}.subtitle-home{width:42px;min-width:42px;padding:0;font-size:0}.subtitle-home i{font-size:15px}.subtitle-search{padding:12px}.subtitle-search-main{grid-template-columns:1fr auto}.subtitle-query{grid-column:1 / -1}.subtitle-search-main>button{min-width:0;padding:0 15px}.subtitle-new-search{min-width:0}.subtitle-filters{grid-template-columns:1fr}.subtitle-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.subtitle-checks label{min-width:0}.subtitle-summary{align-items:flex-start;flex-direction:column}.subtitle-start{min-height:220px}}
@media(max-width:390px){.subtitle-checks{grid-template-columns:1fr}}

@media(min-width:901px){
  .portal-topnav{position:relative;gap:4.5px;transform:translateX(-3px)}
  .portal-topnav a{display:flex;align-items:center;justify-content:center;padding-left:10px!important;padding-right:10px!important}
  .portal-topnav a:nth-of-type(1){width:105px}.portal-topnav a:nth-of-type(2){width:114px}.portal-topnav a:nth-of-type(3){width:101px}.portal-topnav a:nth-of-type(4){width:91px}.portal-topnav a:nth-of-type(5){width:99px}.portal-topnav a:nth-of-type(6){width:112px}
  .portal-topnav>span{display:grid;place-items:center;flex:0 0 35px;width:35px;padding:0}
  .portal-topnav>.theme-toggle{position:absolute!important;left:calc(50% + 417px);top:-19px;margin:0}
}
@media(min-width:901px) and (max-width:1500px){.portal-topnav>.theme-toggle{top:0}}

@media(min-width:901px){.portal-topnav a:nth-of-type(n){width:auto;min-width:74px}.portal-topnav>.theme-toggle{position:relative!important;left:auto;top:-19px;flex:0 0 36px}}
@media(min-width:901px) and (max-width:1500px){.portal-topnav>.theme-toggle{top:0}}

/* v0.4.1 — compact categories without the empty table-like frames */
.portal-group{min-height:0!important;border:0;border-radius:0;background:transparent}
.portal-tabs{display:grid;align-content:start;min-width:0;gap:6px;margin:0;border:0}
.portal-tabs .nav-link{position:relative;width:100%;min-width:0;height:50px;min-height:50px;margin:0;padding:7px 9px;gap:10px;border:1px solid var(--portal-link-border);border-radius:11px;background:var(--portal-link);box-shadow:none;font-size:13px;line-height:1.15;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.portal-tabs .nav-link::after{content:"›";display:grid;place-items:center;flex:0 0 18px;width:18px;height:18px;margin-left:auto;border-radius:50%;background:var(--portal-icon-fg);color:var(--portal-link);font:17px/1 system-ui,sans-serif;opacity:.38;transition:opacity .14s ease,transform .14s ease}
.portal-tabs .nav-link:hover,.portal-tabs .nav-link:focus-visible{z-index:1;background:var(--portal-link-hover);border-color:color-mix(in srgb,var(--portal-icon-fg) 72%,var(--portal-link-border));box-shadow:0 7px 18px #0002;transform:translateY(-1px);outline:none}
.portal-tabs .nav-link:hover::after,.portal-tabs .nav-link:focus-visible::after{opacity:1;transform:translateX(1px)}
.portal-tabs .nav-link.active{z-index:2;background:var(--portal-link-hover);border-color:color-mix(in srgb,var(--portal-active-accent) 62%,var(--portal-link-border));box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-active-accent) 13%,transparent),0 7px 18px #0002;transform:none}
.portal-tabs .nav-link.active::after{opacity:1;background:var(--portal-active-accent);color:#fff;transform:rotate(90deg)}
.portal-tabs .nav-link>i{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:var(--portal-icon-bg);color:var(--portal-icon-fg);font-size:14px;transition:background-color .14s ease,color .14s ease}
.portal-tabs .nav-link:hover>i,.portal-tabs .nav-link:focus-visible>i,.portal-tabs .nav-link.active>i{transform:none}
.portal-tabs .nav-link.active>i{background:color-mix(in srgb,var(--portal-active-accent) 20%,var(--portal-icon-bg));color:var(--portal-active-accent)}
.portal-tabs .nav-link>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}
.portal-panels{padding:0 0 0 14px}
.portal-panels .tab-pane.show{animation:panelIn .14s ease-out both}
.portal-card{margin:0 0 6px}
@media(min-width:1501px){.portal-group:nth-child(1),.portal-group:nth-child(2),.portal-group:nth-child(3){grid-template-columns:180px minmax(0,1fr)}}
@media(min-width:901px) and (max-width:1500px){.portal-group:nth-child(1),.portal-group:nth-child(2),.portal-group:nth-child(3){grid-template-columns:155px minmax(0,1fr)}.portal-panels{padding-left:12px}}
@media(max-width:560px){.portal-tabs{gap:6px}.portal-tabs .nav-link{height:50px;min-height:50px;border-radius:11px}.portal-tabs .nav-link.active{border-right-color:color-mix(in srgb,var(--portal-active-accent) 62%,var(--portal-link-border))}.portal-panels{padding:10px 0 20px}}

/* v0.7.3 — compact minimum width, expanding to the longest label */
.portal-topnav a>i{margin-right:8px}
.portal-tabs .nav-link>span{line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:clip}
@media(min-width:561px){.portal-group:nth-child(1),.portal-group:nth-child(2),.portal-group:nth-child(3){grid-template-columns:var(--category-width,180px) minmax(0,1fr)}}

/* v0.7.4 — mobile category content opens directly below its button */
@media(max-width:560px){.portal-tabs>.tab-pane{width:100%;padding:2px 0 12px}.portal-tabs>.tab-pane.show{display:block}.portal-tabs>.tab-pane .portal-card{margin:6px 0}.portal-panels:not(:has(.tab-pane.active)){display:none}}

/* v0.7.5 — mobile top navigation stays fully inside the viewport */
@media(max-width:560px){.portal-topnav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px 4px;min-height:0;padding:2px 0 24px;overflow:visible;white-space:normal}.portal-topnav a{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;height:34px;padding:0 4px;overflow:hidden;color:color-mix(in srgb,var(--text) 45%,transparent);font-size:13px;line-height:1;white-space:nowrap;text-overflow:ellipsis}.portal-topnav a>i{flex:0 0 auto;margin-right:6px}.portal-topnav>.theme-toggle{justify-self:center;width:34px;height:34px;margin:0}.portal-topnav a.active:after{bottom:-2px}}
@media(max-width:350px){.portal-topnav a{font-size:12px;padding-inline:2px}.portal-topnav a>i{margin-right:4px}}

/* v0.7.6 — conventional mobile hamburger menu with adjacent theme toggle */
.mobile-nav-toggle{display:none}
@media(max-width:560px){.portal-topnav{display:grid;grid-template-columns:38px 38px;justify-content:end;align-items:center;gap:8px;min-height:0;padding:2px 0 24px;overflow:visible;white-space:normal}.portal-topnav>.mobile-nav-toggle{display:grid;grid-column:1;grid-row:1;place-items:center;width:38px;height:38px;padding:0;border:1px solid color-mix(in srgb,var(--text) 30%,transparent);border-radius:10px;background:var(--portal-link);color:var(--text);font-size:22px;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.portal-topnav>.mobile-nav-toggle:active{transform:scale(.94)}.portal-topnav>.theme-toggle{grid-column:2;grid-row:1;justify-self:auto;width:38px;height:38px;margin:0;border-radius:10px}.portal-topnav>a{display:none;grid-column:1 / -1;justify-self:end;width:min(270px,calc(100vw - 36px));height:44px;padding:0 13px;border:1px solid var(--portal-link-border);border-radius:10px;background:var(--portal-link);color:var(--text);font-size:14px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 7px 18px #0001}.portal-topnav.mobile-open>a{display:flex;animation:mobileMenuIn .18s ease-out both}.portal-topnav.mobile-open>a:nth-of-type(2){animation-delay:.025s}.portal-topnav.mobile-open>a:nth-of-type(3){animation-delay:.05s}.portal-topnav.mobile-open>a:nth-of-type(4){animation-delay:.075s}.portal-topnav.mobile-open>a:nth-of-type(5){animation-delay:.1s}.portal-topnav.mobile-open>a:nth-of-type(6){animation-delay:.125s}.portal-topnav>a.active{border-color:color-mix(in srgb,var(--admin-accent) 55%,var(--portal-link-border));background:color-mix(in srgb,var(--admin-accent) 10%,var(--portal-link))}.portal-topnav>a.active::after{display:none}.portal-topnav>a>i{width:20px;margin-right:9px;text-align:center}.portal-topnav>span{display:none}}
@keyframes mobileMenuIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

/* v0.7.7 / v0.7.9 — opened-category links with theme-specific accent */
:root,[data-bs-theme=dark]{--portal-active-accent:var(--portal-dark-accent,#f59e0b);--portal-active-brightness:var(--portal-dark-brightness,100%);--portal-active-contrast:var(--portal-dark-contrast,100%);--portal-open-card:color-mix(in srgb,var(--portal-active-accent) 8%,#282828);--portal-open-card-hover:color-mix(in srgb,var(--portal-active-accent) 14%,#292929);--portal-open-card-border:color-mix(in srgb,var(--portal-active-accent) 38%,#353535);--portal-open-icon-bg:color-mix(in srgb,var(--portal-active-accent) 19%,#303030);--portal-open-icon-fg:color-mix(in srgb,var(--portal-active-accent) 78%,#fff)}
[data-bs-theme=light]{--portal-active-accent:var(--portal-light-accent,#16a34a);--portal-active-brightness:var(--portal-light-brightness,100%);--portal-active-contrast:var(--portal-light-contrast,100%);--portal-open-card:color-mix(in srgb,var(--portal-active-accent) 5%,#f8fafc);--portal-open-card-hover:color-mix(in srgb,var(--portal-active-accent) 3%,#fff);--portal-open-card-border:color-mix(in srgb,var(--portal-active-accent) 28%,#d6dbe3);--portal-open-icon-bg:color-mix(in srgb,var(--portal-active-accent) 12%,#eef1f5);--portal-open-icon-fg:var(--portal-active-accent)}
.tab-pane.active .portal-card{background:var(--portal-open-card);border-color:var(--portal-open-card-border);box-shadow:0 4px 13px color-mix(in srgb,var(--portal-active-accent) 9%,transparent)}
.tab-pane.active .portal-card .portal-icon{background:var(--portal-open-icon-bg);color:var(--portal-open-icon-fg)}
.tab-pane.active .portal-card:hover,.tab-pane.active .portal-card:focus-visible{background:var(--portal-open-card-hover);border-color:color-mix(in srgb,var(--portal-active-accent) 82%,var(--portal-open-card-border));box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-active-accent) 14%,transparent),0 8px 20px #0003}
.tab-pane.active .portal-card:hover::after,.tab-pane.active .portal-card:focus-visible::after{background:var(--portal-active-accent);color:#fff}
.portal-tabs .nav-link.active,.tab-pane.active .portal-card{filter:brightness(var(--portal-active-brightness)) contrast(var(--portal-active-contrast))}

/* v0.7.8 — visual Bootstrap icon picker for every icon field */
.icon-picker-trigger{transition:background-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}.icon-picker-trigger:hover,.icon-picker-trigger:focus-visible{background:color-mix(in srgb,var(--admin-accent-soft) 78%,var(--admin-accent));color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 16%,transparent);outline:none}.icon-picker-trigger:active{transform:scale(.95)}
.nav-icon-preview{border:0;cursor:pointer}
body.icon-picker-open{overflow:hidden}
.icon-picker-overlay[hidden]{display:none}.icon-picker-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#0009;backdrop-filter:blur(7px)}
.icon-picker-dialog{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(760px,100%);max-height:min(760px,calc(100vh - 32px));overflow:hidden;border:1px solid var(--admin-border);border-radius:20px;background:var(--admin-bg);color:var(--admin-text);box-shadow:0 32px 100px #0008;animation:iconPickerIn .18s ease-out}
.icon-picker-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px 12px}.icon-picker-dialog h2{margin:3px 0 0;font-size:24px}.icon-picker-dialog>header .icon-action{width:38px;height:38px}
.icon-picker-search{position:relative;display:block;margin:0 22px 14px}.icon-picker-search>i{position:absolute;left:14px;top:50%;z-index:1;transform:translateY(-50%);color:var(--admin-muted)}.icon-picker-search>input{width:100%;height:46px;margin:0;padding:0 14px 0 42px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface);color:var(--admin-text);outline:none}.icon-picker-search>input:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}
.icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));align-content:start;gap:8px;min-height:220px;padding:2px 22px 18px;overflow:auto}.icon-picker-choice{display:grid;place-items:center;gap:7px;min-width:0;height:82px;padding:9px 6px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface);color:var(--admin-muted);cursor:pointer;transition:background-color .13s ease,border-color .13s ease,color .13s ease,transform .13s ease}.icon-picker-choice>i{color:var(--admin-text);font-size:24px}.icon-picker-choice>span{width:100%;overflow:hidden;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.icon-picker-choice:hover,.icon-picker-choice:focus-visible{border-color:var(--admin-accent);background:var(--admin-accent-soft);color:var(--admin-text);transform:translateY(-2px);outline:none}.icon-picker-choice.selected{border-color:var(--admin-accent);background:var(--admin-accent);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--admin-accent) 28%,transparent)}.icon-picker-choice.selected>i{color:#fff}
.icon-picker-more{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 16px;border:1px dashed var(--admin-accent);border-radius:12px;background:var(--admin-accent-soft);color:var(--admin-accent);font:inherit;font-weight:700;cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .14s ease}.icon-picker-more:hover,.icon-picker-more:focus-visible{background:var(--admin-accent);color:#fff;transform:translateY(-1px);outline:none}
.icon-picker-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;border-top:1px solid var(--admin-border);background:var(--admin-surface);color:var(--admin-muted);font-size:10px}.icon-picker-dialog>footer>[data-icon-picker-status]{color:var(--admin-accent)}
@keyframes iconPickerIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:600px){.icon-picker-overlay{padding:8px}.icon-picker-dialog{max-height:calc(100vh - 16px);border-radius:16px}.icon-picker-dialog>header{padding:16px 16px 10px}.icon-picker-search{margin:0 16px 12px}.icon-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:2px 16px 14px}.icon-picker-choice{height:76px}.icon-picker-dialog>footer{align-items:flex-start;flex-direction:column;gap:3px;padding:10px 16px}}

/* v0.7.9 — configurable public theme accents */
.appearance-main{width:min(1100px,calc(100% - 32px));margin:0 auto;padding:28px 0 42px}.appearance-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:14px;align-items:start}.appearance-form,.appearance-preview{padding:20px}.appearance-form h2,.appearance-preview h2{margin:2px 0 7px;font-size:20px}.appearance-form>p,.appearance-preview>p{margin:0 0 18px;color:var(--admin-muted)}.accent-controls{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:end}.accent-controls label{margin:0}.accent-color-input{width:76px!important;height:46px!important;padding:4px!important;border-radius:12px!important;cursor:pointer}.accent-color-input::-webkit-color-swatch-wrapper{padding:0}.accent-color-input::-webkit-color-swatch{border:0;border-radius:8px}.accent-color-input::-moz-color-swatch{border:0;border-radius:8px}.accent-presets{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.accent-swatch{width:34px;height:34px;padding:0;border:2px solid color-mix(in srgb,var(--swatch) 65%,var(--admin-border));border-radius:50%;background:var(--swatch);cursor:pointer;box-shadow:0 0 0 2px var(--admin-surface),0 0 0 3px var(--admin-border);transition:transform .14s ease,box-shadow .14s ease}.accent-swatch:hover,.accent-swatch:focus-visible{transform:scale(1.1);box-shadow:0 0 0 2px var(--admin-surface),0 0 0 4px var(--swatch);outline:none}.appearance-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:20px}.appearance-actions form{margin:0}.appearance-demo{--portal-active-accent:var(--preview-accent,#f59e0b);display:grid;gap:9px;padding:18px;border:1px solid var(--admin-border);border-radius:15px;background:#242424;color:#ebebeb}.appearance-demo-category,.appearance-demo-link{display:flex;align-items:center;gap:10px;min-height:50px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--portal-active-accent) 62%,#404040);border-radius:11px;background:color-mix(in srgb,var(--portal-active-accent) 9%,#282828);box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-active-accent) 13%,transparent)}.appearance-demo-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--portal-active-accent) 20%,#303030);color:var(--portal-active-accent)}.appearance-demo-copy{display:flex;min-width:0;flex-direction:column}.appearance-demo-copy small{color:#969696}.appearance-demo-arrow{display:grid;place-items:center;width:18px;height:18px;margin-left:auto;border-radius:50%;background:var(--portal-active-accent);color:#fff}.appearance-demo-link{margin-left:16px;background:color-mix(in srgb,var(--portal-active-accent) 8%,#282828);border-color:color-mix(in srgb,var(--portal-active-accent) 38%,#353535);box-shadow:none}.appearance-demo-link .appearance-demo-icon{background:color-mix(in srgb,var(--portal-active-accent) 19%,#303030);color:color-mix(in srgb,var(--portal-active-accent) 78%,#fff)}
@media(max-width:760px){.appearance-layout{grid-template-columns:1fr}.appearance-main{width:min(100% - 20px,1100px);padding-top:18px}.accent-controls{grid-template-columns:68px minmax(0,1fr)}.accent-color-input{width:68px!important}}

/* v0.7.9 — independent dark and light accent editors */
.appearance-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr)}.appearance-editor-stack{display:grid;gap:14px}.appearance-save{width:100%}.appearance-preview-pair{display:grid;gap:14px}.appearance-demo.light{--demo-bg:#f8fafc;--demo-text:#252a31;--demo-border:#d6dbe3;--demo-card:#fff;--demo-icon:#eef1f5;background:var(--demo-bg);color:var(--demo-text)}.appearance-demo-category{border-color:color-mix(in srgb,var(--portal-active-accent) 62%,var(--demo-border,#404040));background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--demo-card,#282828))}.appearance-demo-icon{background:color-mix(in srgb,var(--portal-active-accent) 20%,var(--demo-icon,#303030))}.appearance-demo-link{background:color-mix(in srgb,var(--portal-active-accent) 8%,var(--demo-card,#282828));border-color:color-mix(in srgb,var(--portal-active-accent) 38%,var(--demo-border,#353535))}.appearance-demo-link .appearance-demo-icon{background:color-mix(in srgb,var(--portal-active-accent) 19%,var(--demo-icon,#303030))}
@media(max-width:560px){.portal-topnav>a.active{border-color:color-mix(in srgb,var(--portal-active-accent) 55%,var(--portal-link-border));background:color-mix(in srgb,var(--portal-active-accent) 10%,var(--portal-link))}}

/* v0.8.0 — brightness and contrast controls for active portal items */
.effect-controls{display:grid;gap:13px;margin:18px 0}.effect-control{display:grid;gap:7px;margin:0!important}.effect-control>span{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--admin-text)}.effect-control output{min-width:46px;padding:3px 7px;border-radius:7px;background:var(--admin-surface-2);color:var(--admin-accent);font-size:10px;text-align:center}.effect-control input[type=range]{width:100%;height:22px;margin:0;accent-color:var(--admin-accent);cursor:pointer}.appearance-demo-category,.appearance-demo-link{filter:brightness(var(--preview-brightness,100%)) contrast(var(--preview-contrast,100%));transition:filter .12s ease,background-color .12s ease,border-color .12s ease}

/* v0.8.2 — themed administration and denied-access redirects */
.security-main{max-width:1480px}
.security-modes,.security-card{padding:16px}
.security-modes{margin-bottom:14px}
.security-modes .pane-heading,.security-card .pane-heading{padding:0 0 13px}
.security-modes .modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.security-modes .modes form{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0;padding:12px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface-2)}
.security-modes .modes span{display:grid;gap:2px}.security-modes .modes small{color:var(--admin-muted)}
.security-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);gap:14px;align-items:start}
.security-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}
.security-card{min-width:0}.security-card table{width:100%;border-collapse:collapse}.security-card th,.security-card td{padding:11px 9px;border-bottom:1px solid var(--admin-border);text-align:left}.security-card th{color:var(--admin-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.security-card code{color:var(--admin-accent)}
.security-form label{display:grid;gap:6px;margin:0 0 13px;color:var(--admin-muted);font-size:11px}.security-form input,.security-form select{width:100%;height:42px;padding:0 12px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface-2);color:var(--admin-text);outline:none}.security-form input:focus,.security-form select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}
.security-help{margin:-3px 0 15px;color:var(--admin-muted);font-size:11px;line-height:1.6}
@media(max-width:900px){.security-grid,.security-settings-grid,.security-modes .modes{grid-template-columns:1fr}.security-rules{order:2}}

/* v0.8.3 — independent category colors and three saved appearance variants */
:root,[data-bs-theme=dark]{--portal-category-bg:var(--portal-dark-category,#202020);--portal-category-hover:color-mix(in srgb,var(--portal-category-bg) 88%,#fff)}
[data-bs-theme=light]{--portal-category-bg:var(--portal-light-category,#f5f6f8);--portal-category-hover:color-mix(in srgb,var(--portal-category-bg) 94%,#000)}
.portal-tabs .nav-link{background:var(--portal-category-bg)}
.portal-tabs .nav-link::after{color:var(--portal-category-bg)}
.portal-tabs .nav-link:hover,.portal-tabs .nav-link:focus-visible{background:var(--portal-category-hover)}
.portal-tabs .nav-link.active{background:color-mix(in srgb,var(--portal-active-accent) 10%,var(--portal-category-bg))}
.color-control-title{display:block;margin:4px 0 10px;color:var(--admin-text);font-size:12px}
.appearance-slots{padding:20px}.appearance-slots .pane-heading{padding:0 0 7px}.appearance-slots>p{margin:0 0 15px;color:var(--admin-muted);font-size:11px;line-height:1.55}
.appearance-slot-list{display:grid;gap:8px}.appearance-slot{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface-2)}.appearance-slot>div{display:grid;gap:2px}.appearance-slot small{color:var(--admin-muted)}.appearance-slot.is-empty{border-style:dashed}.slot-colors{display:flex;align-items:center;padding-left:5px}.slot-colors i{display:block;width:24px;height:24px;margin-left:-5px;border:2px solid var(--admin-surface-2);border-radius:50%;background:var(--slot-color);box-shadow:0 0 0 1px var(--admin-border)}.slot-actions{display:flex;gap:6px}.slot-actions .button{min-height:34px;padding:0 10px;font-size:11px}.slot-actions .button:disabled{opacity:.42;pointer-events:none}
.appearance-demo-category{background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--preview-category,var(--demo-card,#282828)))}
@media(max-width:680px){.appearance-slot{grid-template-columns:1fr auto}.slot-actions{grid-column:1/-1}.slot-actions .button{flex:1}}

/* v0.8.4 — public IP restriction can hide selected categories */
.security-category-scope{margin-bottom:14px;padding:16px}.security-category-scope .pane-heading{padding:0 0 10px}
.security-scope-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.security-scope-option{position:relative;display:block;margin:0!important;cursor:pointer}.security-scope-option>input{position:absolute;width:1px!important;height:1px!important;opacity:0}.security-scope-option>span{display:grid;grid-template-columns:34px minmax(0,1fr);gap:2px 10px;min-height:76px;padding:12px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface-2);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.security-scope-option i{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--admin-border);color:var(--admin-muted);font-size:16px}.security-scope-option strong{align-self:end;color:var(--admin-text);font-size:12px}.security-scope-option small{color:var(--admin-muted);line-height:1.4}.security-scope-option>input:checked+span{border-color:var(--admin-accent);background:var(--admin-accent-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--admin-accent) 12%,transparent)}.security-scope-option>input:checked+span i{background:var(--admin-accent);color:#fff}.security-scope-option>input:focus-visible+span{outline:2px solid var(--admin-accent);outline-offset:2px}
.security-category-picker{margin:0 0 14px;padding:12px;border:1px solid var(--admin-border);border-radius:12px;transition:opacity .15s ease}.security-category-picker legend{float:none;width:auto;margin:0 0 9px;padding:0 5px;color:var(--admin-text);font-size:11px}.security-category-picker.is-disabled{opacity:.42;pointer-events:none}.security-category-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.security-category-group{display:grid;align-content:start;gap:5px}.security-category-group>strong{margin-bottom:3px;color:var(--admin-accent);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.security-category-group label{display:flex;align-items:center;gap:8px;margin:0;padding:8px;border-radius:9px;background:var(--admin-surface);color:var(--admin-text);font-size:11px;cursor:pointer}.security-category-group label:hover{background:var(--admin-accent-soft)}.security-category-group input{flex:0 0 auto;width:16px!important;height:16px!important;margin:0;padding:0;accent-color:var(--admin-accent)}.security-category-group span{display:flex;min-width:0;align-items:center;gap:7px}.security-category-group span i{width:17px;color:var(--admin-muted);text-align:center}
.security-public-pickers{transition:opacity .15s ease}.security-public-pickers.is-disabled{opacity:.42;pointer-events:none}.security-nav-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.security-nav-options label{display:flex;align-items:center;gap:8px;margin:0;padding:9px;border-radius:9px;background:var(--admin-surface);color:var(--admin-text);font-size:11px;cursor:pointer}.security-nav-options label:hover,.security-search-option:hover{background:var(--admin-accent-soft)}.security-nav-options input,.security-search-option input{flex:0 0 auto;width:16px!important;height:16px!important;margin:0;padding:0;accent-color:var(--admin-accent)}.security-nav-options span{display:flex;min-width:0;align-items:center;gap:7px}.security-nav-options span i{width:17px;color:var(--admin-muted);text-align:center}.security-search-option{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px;margin:0!important;padding:10px;border-radius:9px;background:var(--admin-surface);cursor:pointer}.security-search-option>span{display:grid;gap:2px;color:var(--admin-text)}.security-search-option>span i{display:none}.security-search-option small{color:var(--admin-muted);font-weight:400}
@media(max-width:900px){.security-scope-options{grid-template-columns:1fr}.security-category-groups,.security-nav-options{grid-template-columns:1fr}.security-category-group{gap:6px}}

/* v0.8.5 — configurable category and link-button outlines */
:root,[data-bs-theme=dark]{--portal-button-border:var(--portal-dark-border,#4a4a4d)}
[data-bs-theme=light]{--portal-button-border:var(--portal-light-border,#c9ced6)}
.portal-tabs .nav-link,.portal-card{border-color:var(--portal-button-border)}
.portal-tabs .nav-link:hover,.portal-tabs .nav-link:focus-visible{border-color:color-mix(in srgb,var(--portal-active-accent) 35%,var(--portal-button-border))}
.portal-tabs .nav-link.active{border-color:var(--portal-button-border)}
.portal-card:hover,.portal-card:focus-visible{border-color:color-mix(in srgb,var(--portal-active-accent) 55%,var(--portal-button-border))}
.tab-pane.active .portal-card{border-color:var(--portal-button-border)}
.tab-pane.active .portal-card:hover,.tab-pane.active .portal-card:focus-visible{border-color:color-mix(in srgb,var(--portal-active-accent) 70%,var(--portal-button-border))}

/* v0.10.7 — independent link-button colors for dark and light themes */
:root,[data-bs-theme=dark]{--portal-link-button-bg:var(--portal-dark-link,#282828);--portal-link-button-hover:color-mix(in srgb,var(--portal-link-button-bg) 88%,#fff);--portal-open-card:color-mix(in srgb,var(--portal-active-accent) 8%,var(--portal-link-button-bg));--portal-open-card-hover:color-mix(in srgb,var(--portal-active-accent) 14%,var(--portal-link-button-hover))}
[data-bs-theme=light]{--portal-link-button-bg:var(--portal-light-link,#f8fafc);--portal-link-button-hover:color-mix(in srgb,var(--portal-link-button-bg) 94%,#000);--portal-open-card:color-mix(in srgb,var(--portal-active-accent) 5%,var(--portal-link-button-bg));--portal-open-card-hover:color-mix(in srgb,var(--portal-active-accent) 9%,var(--portal-link-button-hover))}
.portal-card{background:var(--portal-link-button-bg)}
.portal-card::after{color:var(--portal-link-button-bg)}
.portal-card:hover,.portal-card:focus-visible{background:var(--portal-link-button-hover)}
.tab-pane.active .portal-card{background:var(--portal-open-card)}
.tab-pane.active .portal-card:hover,.tab-pane.active .portal-card:focus-visible{background:var(--portal-open-card-hover)}
.appearance-demo-link{background:color-mix(in srgb,var(--portal-active-accent) 8%,var(--preview-link,var(--demo-card,#282828)))}
.appearance-demo.light .appearance-demo-link{background:color-mix(in srgb,var(--portal-active-accent) 5%,var(--preview-link,var(--demo-card,#fff)))}
.appearance-demo-category,.appearance-demo-link{border-color:var(--preview-border,var(--demo-border,#4a4a4d))}

/* v0.10.8 — the selected category follows the configured link-button color */
.portal-tabs .nav-link.active{background:var(--portal-open-card)}
.portal-tabs .nav-link.active:hover,.portal-tabs .nav-link.active:focus-visible{background:var(--portal-open-card-hover)}
.appearance-demo-category.active{background:color-mix(in srgb,var(--portal-active-accent) 8%,var(--preview-link,var(--demo-card,#282828)))}
.appearance-demo.light .appearance-demo-category.active{background:color-mix(in srgb,var(--portal-active-accent) 5%,var(--preview-link,var(--demo-card,#fff)))}

/* v0.8.6 — public theme switch sits above the version badge */
.portal-theme-toggle{position:fixed;right:10px;bottom:max(29px,calc(env(safe-area-inset-bottom) + 29px));z-index:11;width:38px;height:38px;margin:0;border-color:color-mix(in srgb,var(--text) 24%,transparent);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 24px #0003;backdrop-filter:blur(8px)}
.portal-theme-toggle:hover,.portal-theme-toggle:focus-visible{background:color-mix(in srgb,var(--portal-active-accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--portal-active-accent) 60%,var(--text));box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-active-accent) 14%,transparent),0 10px 26px #0004;outline:none}
@media(max-width:560px){.portal-topnav{grid-template-columns:38px}.portal-theme-toggle{right:10px;bottom:max(31px,calc(env(safe-area-inset-bottom) + 31px));width:40px;height:40px;border-radius:12px}}

/* v0.9.0 — selectable same-tab web search below the portal buttons */
:root,[data-bs-theme=dark]{--portal-search-bg:#303134;--portal-search-border:#5f6368;--portal-search-text:#f1f3f4;--portal-search-muted:#bdc1c6}
[data-bs-theme=light]{--portal-search-bg:#fff;--portal-search-border:#dfe1e5;--portal-search-text:#202124;--portal-search-muted:#5f6368}
.portal-search-section{display:flex;justify-content:center;margin:52px auto 12px;padding:0 16px}.portal-search-form{width:min(680px,100%)}
.portal-search-box{display:grid;grid-template-columns:28px minmax(110px,1fr) auto 40px;align-items:center;min-height:54px;padding:4px 7px 4px 16px;border:1px solid var(--portal-search-border);border-radius:28px;background:var(--portal-search-bg);color:var(--portal-search-text);box-shadow:0 2px 6px #0002;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.portal-search-box:focus-within{border-color:color-mix(in srgb,var(--portal-active-accent) 55%,var(--portal-search-border));box-shadow:0 1px 6px #0003,0 0 0 3px color-mix(in srgb,var(--portal-active-accent) 12%,transparent);transform:translateY(-1px)}
.portal-search-icon{color:var(--portal-search-muted);font-size:17px}.portal-search-box>input{min-width:0;height:44px;padding:0 8px;border:0;outline:0;background:transparent;color:var(--portal-search-text);font:15px/1.2 Anta,system-ui,sans-serif}.portal-search-box>input::placeholder{color:var(--portal-search-muted)}
.portal-search-engine{margin:0}.portal-search-engine select{max-width:148px;height:36px;padding:0 28px 0 11px;border:0;border-left:1px solid color-mix(in srgb,var(--portal-search-border) 72%,transparent);outline:0;background-color:transparent;color:var(--portal-search-muted);font:11px/1 Anta,system-ui,sans-serif;cursor:pointer}.portal-search-engine select:focus-visible{color:var(--portal-search-text)}.portal-search-engine option{background:var(--portal-search-bg);color:var(--portal-search-text)}
.portal-search-box>button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--portal-active-accent);color:#fff;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.portal-search-box>button:hover,.portal-search-box>button:focus-visible{filter:brightness(1.12);box-shadow:0 4px 12px color-mix(in srgb,var(--portal-active-accent) 35%,transparent);transform:translateX(1px);outline:0}
.nav-search-settings{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,.8fr) repeat(3,minmax(150px,.55fr));align-items:center;gap:14px;margin-top:16px;padding:18px;border:1px solid var(--admin-border);border-radius:14px;background:var(--admin-surface-2)}.nav-search-settings h2{margin:3px 0 4px;color:var(--admin-text);font-size:18px}.nav-search-settings p{margin:0;color:var(--admin-muted);font-size:11px}.nav-search-toggle{display:flex;align-items:center;gap:12px;margin:0;padding:12px;border:1px solid var(--admin-border);border-radius:11px;background:var(--admin-surface);cursor:pointer}.nav-search-toggle>input{flex:0 0 auto;width:18px;height:18px;accent-color:var(--admin-accent)}.nav-search-toggle>span{display:grid;gap:2px}.nav-search-toggle strong{color:var(--admin-text);font-size:12px}.nav-search-toggle small{color:var(--admin-muted);font-size:9px}.nav-search-engine{margin:0;color:var(--admin-muted);font-size:10px}.nav-search-engine select{width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface);color:var(--admin-text);outline:0}.nav-search-engine select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--admin-accent) 15%,transparent)}
.portal-search-section.above{margin-top:0;margin-bottom:42px}
.portal-topnav a{color:var(--text)!important;opacity:.45;transition:color .25s ease,opacity .25s ease,transform .25s ease;-webkit-text-fill-color:currentColor}
.portal-topnav a:hover,.portal-topnav a:focus-visible,.portal-topnav a.active{color:var(--text)!important;opacity:1;-webkit-text-fill-color:currentColor}
.portal-web-results{max-width:980px;margin:0 auto 38px;overflow:hidden;border:1px solid var(--portal-button-border);border-radius:17px;background:var(--surface);box-shadow:0 15px 42px #0002}.portal-web-results>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--portal-button-border);background:color-mix(in srgb,var(--portal-active-accent) 7%,var(--surface))}.portal-web-results>header span{color:var(--portal-active-accent);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-web-results>header h2{margin:3px 0 0;color:var(--text);font-size:17px}.portal-web-results>header>a{display:flex;align-items:center;gap:7px;color:var(--portal-active-accent);font-size:11px;font-weight:800;text-decoration:none}.portal-web-results ol{display:grid;gap:3px;margin:0;padding:9px;list-style:none}.portal-web-results li>a{display:grid;grid-template-columns:36px minmax(0,1fr) 16px;align-items:start;gap:11px;padding:10px;border:1px solid transparent;border-radius:11px;color:var(--text);text-decoration:none;transition:background-color .14s ease,border-color .14s ease}.portal-web-results li>a:hover{border-color:color-mix(in srgb,var(--portal-active-accent) 45%,var(--portal-button-border));background:color-mix(in srgb,var(--portal-active-accent) 8%,var(--card))}.portal-web-result-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--portal-active-accent) 14%,var(--card));color:var(--portal-active-accent)}.portal-web-results li>a>span:nth-child(2){display:grid;min-width:0;gap:2px}.portal-web-results strong{font-size:12px}.portal-web-results small{overflow:hidden;color:var(--portal-active-accent);font-size:9px;white-space:nowrap;text-overflow:ellipsis}.portal-web-results p{display:-webkit-box;overflow:hidden;margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}.portal-web-results li>a>i{margin-top:3px;color:var(--muted)}.portal-web-results-empty{margin:0!important;padding:28px!important;text-align:center}
@media(max-width:1250px){.nav-search-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-search-settings-copy{grid-column:1 / -1}}
@media(max-width:900px){.nav-search-settings{grid-template-columns:1fr}.nav-search-settings-copy{grid-column:auto}.portal-search-section{margin-top:38px}.portal-search-section.above{margin-top:0;margin-bottom:30px}}
@media(max-width:560px){.portal-web-results{margin-bottom:68px}.portal-web-results>header{align-items:flex-start;flex-direction:column}.portal-web-results li>a{grid-template-columns:34px minmax(0,1fr) 14px}}
@media(max-width:560px){.portal-search-section{margin:28px auto 64px;padding:0}.portal-search-box{grid-template-columns:25px minmax(70px,1fr) 42px 36px;min-height:50px;padding-left:13px}.portal-search-engine select{width:42px;max-width:42px;padding:0 8px;border-left:1px solid color-mix(in srgb,var(--portal-search-border) 72%,transparent);color:transparent}.portal-search-engine{position:relative}.portal-search-engine::after{content:"⋮";position:absolute;inset:0;display:grid;place-items:center;color:var(--portal-search-muted);pointer-events:none}.portal-search-box>button{width:34px;height:34px}.portal-search-box>input{font-size:14px}}

/* v0.10.5 — password-protected public IP self-authorization */
.portal-topnav a.portal-ip-authorize{color:var(--portal-active-accent)!important;opacity:1;-webkit-text-fill-color:currentColor}
.portal-topnav a.portal-ip-authorize:hover,.portal-topnav a.portal-ip-authorize:focus-visible{color:var(--portal-active-accent)!important;background:color-mix(in srgb,var(--portal-active-accent) 10%,transparent);-webkit-text-fill-color:currentColor}
.ip-authorization-card{width:min(560px,calc(100% - 28px));margin:clamp(32px,8vh,88px) auto 84px;padding:clamp(20px,4vw,34px);border:1px solid var(--portal-button-border);border-radius:20px;background:var(--surface);box-shadow:0 22px 60px #0002}
.ip-authorization-card>.eyebrow{margin:0 0 8px;color:var(--portal-active-accent);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.ip-authorization-card>h1{margin:0;color:var(--text);font-size:clamp(26px,4.4vw,34px);line-height:1.08;letter-spacing:-.025em;text-wrap:balance}.ip-authorization-card>p{margin:12px 0 22px;color:var(--muted);font-size:12px;line-height:1.6;text-wrap:pretty}.ip-authorization-card code{display:inline-block;max-width:100%;padding:3px 7px;overflow-x:auto;border:1px solid var(--portal-button-border);border-radius:7px;background:var(--card);color:var(--portal-active-accent);word-break:normal;overflow-wrap:normal;white-space:nowrap;vertical-align:middle;scrollbar-width:none}.ip-authorization-card code::-webkit-scrollbar{display:none}
.ip-authorization-form{display:grid;gap:14px}.ip-authorization-form>label,.ip-duration-fields>label{display:grid;gap:7px;margin:0;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.ip-authorization-form input[type=password],.ip-authorization-form input[type=date],.ip-authorization-form select{width:100%;height:46px;padding:0 13px;border:1px solid var(--portal-button-border);border-radius:11px;outline:0;background:var(--card);color:var(--text);font:inherit;font-size:13px;text-transform:none;letter-spacing:normal}.ip-authorization-form input:focus,.ip-authorization-form select:focus{border-color:var(--portal-active-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-active-accent) 14%,transparent)}
.ip-authorization-form fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:0;border:0}.ip-authorization-form legend{margin:0 0 7px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.ip-access-choice{position:relative;margin:0;cursor:pointer}.ip-access-choice>input{position:absolute;width:1px;height:1px;opacity:0}.ip-access-choice>span{display:grid;gap:3px;height:100%;min-height:68px;padding:12px;border:1px solid var(--portal-button-border);border-radius:12px;background:var(--card);transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.ip-access-choice strong{color:var(--text);font-size:12px}.ip-access-choice small{color:var(--muted);font-size:10px;line-height:1.4}.ip-access-choice>input:checked+span{border-color:var(--portal-active-accent);background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--card));box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-active-accent) 12%,transparent)}.ip-access-choice>input:focus-visible+span{outline:2px solid var(--portal-active-accent);outline-offset:2px}
.ip-duration-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ip-duration-fields.is-hidden,.ip-custom-date.is-hidden{display:none}.ip-authorization-form .wide{width:100%;min-height:46px;margin-top:2px}.ip-authorization-back{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:var(--muted);font-size:11px;font-weight:700;text-decoration:none}.ip-authorization-back:hover{color:var(--portal-active-accent)}
.ip-authorization-success{display:flex;align-items:center;gap:13px;margin-bottom:20px;padding:14px;border:1px solid color-mix(in srgb,#20b477 50%,var(--portal-button-border));border-radius:13px;background:color-mix(in srgb,#20b477 10%,var(--card))}.ip-authorization-success>i{font-size:30px;color:#20b477}.ip-authorization-success>span{display:grid;gap:2px}.ip-authorization-success strong{color:var(--text);font-size:13px}.ip-authorization-success small{color:var(--muted);font-size:10px}
.security-self-authorization{margin-bottom:14px;padding:16px}.security-self-authorization .pane-heading{padding:0 0 10px}.security-self-authorization-form{display:flex;align-items:center;justify-content:space-between;gap:16px}.security-self-authorization-form>label{display:flex;align-items:center;gap:11px;min-width:0;margin:0;padding:12px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface-2);cursor:pointer}.security-self-authorization-form>label>input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--admin-accent)}.security-self-authorization-form>label>span{display:grid;gap:3px}.security-self-authorization-form strong{color:var(--admin-text);font-size:12px}.security-self-authorization-form small{color:var(--admin-muted);font-size:10px;line-height:1.45}.security-self-authorization-form>.button{flex:0 0 auto}
@media(max-width:720px){.security-self-authorization-form{align-items:stretch;flex-direction:column}.security-self-authorization-form>.button{width:100%}}
@media(max-width:560px){.portal-topnav>a.portal-ip-authorize{border-color:color-mix(in srgb,var(--portal-active-accent) 60%,var(--portal-link-border));background:color-mix(in srgb,var(--portal-active-accent) 9%,var(--portal-link))}.ip-authorization-card{width:calc(100% - 20px);margin-top:20px;padding:20px}.ip-authorization-card>h1{font-size:29px}.ip-authorization-card>p{font-size:11px}.ip-authorization-form fieldset,.ip-duration-fields{grid-template-columns:1fr}}

/* v0.10.19 — restored search width with category-matched control height */
.portal-utility-row{display:flex;flex-direction:column;align-items:stretch;gap:9px;width:min(760px,100%);min-width:0;margin:42px auto 12px}.portal-utility-row.above{margin-top:0;margin-bottom:42px}.portal-utility-row.clock-only{align-items:center}.portal-utility-row .portal-clock-section{display:flex;flex:0 0 auto;justify-content:center;width:100%;margin:0;padding:0}.portal-utility-row .portal-search-section{flex:0 0 auto;width:100%;min-width:0;margin:0;padding:0}.portal-utility-row .portal-search-form{width:100%;max-width:none}.portal-utility-row .portal-search-box{height:50px;min-height:50px}.portal-utility-row .portal-search-box>input{height:40px}
.portal-clock-stage{display:flex;align-items:center;justify-content:center;width:auto;height:auto;min-height:18px;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none}.portal-clock-stage::before{display:none}.portal-clock-stage:hover{border:0;box-shadow:none;transform:none}
.portal-clock-led{position:static;display:grid;place-items:center;width:auto;height:auto;margin-right:7px;border-radius:0;background:transparent;color:color-mix(in srgb,var(--text) 66%,var(--muted));font-size:12px;transform:none}.portal-clock-readout{position:static;min-width:0;transform:none}.portal-clock-values{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}.portal-clock-values>i{flex:0 0 1px;width:1px;height:14px;background:color-mix(in srgb,var(--text) 17%,transparent)}.portal-clock-time,.portal-clock-date{flex:0 0 auto;color:color-mix(in srgb,var(--text) 88%,var(--muted));font:700 13.5px/1 Anta,system-ui,sans-serif;letter-spacing:.01em;white-space:nowrap}.portal-clock-time{text-shadow:none}.portal-clock-date{color:color-mix(in srgb,var(--text) 88%,var(--muted))}
.nav-search-settings{grid-template-columns:minmax(220px,1.25fr) repeat(2,minmax(190px,.8fr)) repeat(3,minmax(145px,.6fr))}
@media(max-width:1250px){.nav-search-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-search-settings-copy{grid-column:1/-1}}
@media(max-width:900px){.nav-search-settings{grid-template-columns:1fr}.nav-search-settings-copy{grid-column:auto}}
@media(max-width:900px){.portal-utility-row{width:100%;margin-right:0;margin-left:0}.portal-utility-row.above{margin-top:0}}
@media(max-width:560px){.portal-utility-row{align-items:stretch;gap:9px;margin-bottom:32px}.portal-utility-row .portal-clock-section{width:100%;margin:0 auto}.portal-utility-row .portal-search-section{width:100%;margin:0;padding:0}.portal-clock-stage{width:auto;height:auto}.portal-clock-time,.portal-clock-date{font-size:13.5px}}
