:root{color-scheme:light;--bg:#f4f7fb;--surface:#fff;--surface-2:#f6f9fc;--surface-3:#ecf2ff;--text:#2a3547;--text-muted:#5a6a85;--text-soft:#7c8fac;--line:#ebf1f6;--line-strong:#dfe5ef;--accent:#5d87ff;--accent-hover:#4570ea;--accent-text:#fff;--accent-weak:#ecf2ff;--danger:#fa896b;--danger-hover:#e46f50;--danger-weak:#fdede8;--ok:#13deb9;--ok-weak:#e6fffa;--warn:#ffae1f;--warn-weak:#fef5e5;--info:#539bff;--info-weak:#ebf3fe;--radius:12px;--radius-sm:8px;--radius-lg:18px;--shadow:0 0 2px #919eab33, 0 12px 24px -4px #919eab1f;--shadow-sm:0 1px 2px #919eab2e;--gap:20px;--sidebar-w:270px;--topbar-h:72px;--font-sans:"Segoe UI", ui-sans-serif, system-ui, -apple-system, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.6}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}h1,h2,h3{letter-spacing:-.01em;color:var(--text);margin:0;line-height:1.32}h1{font-size:1.5rem;font-weight:700}p{margin:0}.page-wrapper{min-height:100vh;position:relative}.left-sidebar{z-index:40;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand-logo{min-height:var(--topbar-h);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 24px;text-decoration:none;display:flex}.brand-logo__mark,.brand-mark{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#5d87ff 0%,#49beff 100%);border-radius:9px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:800;display:inline-flex}.brand-logo__text{color:var(--text);flex-direction:column;font-size:18px;font-weight:700;line-height:1.15;display:flex}.brand-logo__tag{color:var(--text-soft);letter-spacing:.08em;font-size:11px;font-weight:500}.sidebar-nav{scrollbar-width:thin;flex:1;padding:6px 14px 28px;overflow-y:auto}.admin-menu__title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);margin:22px 0 6px;padding:0 10px;font-size:11px;font-weight:700}.admin-menu__items{flex-direction:column;gap:2px;display:flex}.admin-menu__item{border-radius:var(--radius-sm);color:var(--text);align-items:center;gap:12px;padding:10px 12px;font-size:14px;line-height:1.35;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.admin-menu__item:hover{background:var(--surface-2);color:var(--accent)}.admin-menu__item .nav-icon{color:currentColor;opacity:.9;flex:none;width:18px;height:18px}.admin-body{margin-left:var(--sidebar-w);flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:30;min-height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.app-header__crumbs{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;display:flex}.app-header__actions{align-items:center;gap:10px;margin-left:auto;display:flex}.menu-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:none}.app-main{flex:1;padding:26px 24px 56px}.container{width:100%;max-width:1680px;margin:0 auto}.page-wrapper[data-auth=out] .left-sidebar,.page-wrapper[data-auth=out] .app-header{display:none}.page-wrapper[data-auth=out] .admin-body{margin-left:0}.page-wrapper[data-auth=out] .app-main{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth{justify-content:center;width:100%;display:flex}.auth .card{border-radius:var(--radius-lg);width:min(430px,100%);padding:38px 34px}.auth__brand{align-items:center;gap:12px;margin-bottom:26px;display:flex}.auth__brand-name{color:var(--text);font-size:20px;font-weight:700}.auth__brand-tag{color:var(--text-soft);font-size:12px}.auth h2{font-size:1.35rem}.auth__sub{color:var(--text-muted);margin-top:6px;font-size:13px}.auth .form-actions .btn{justify-content:center;width:100%;padding:11px 18px;font-size:15px}.auth__foot{color:var(--text-soft);text-align:center;margin-top:18px;font-size:12px}.stack{gap:var(--gap);flex-direction:column;display:flex}.stack--tight{gap:10px}.page{gap:var(--gap);flex-direction:column;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head__title{color:var(--text);font-size:1.45rem;font-weight:700}.page-head__desc{color:var(--text-muted);margin-top:4px;font-size:13.5px}.page-head__desc:empty{display:none}.page-head__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.row-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid-2{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.grid-2--wide{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.hr{background:var(--line);border:0;height:1px;margin:6px 0}.muted{color:var(--text-muted)}.small{font-size:12.5px}.mono{font-family:var(--font-mono);font-size:12.5px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:0;padding:24px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.section-title{color:var(--text);margin:26px 0 6px;font-size:.95rem;font-weight:700}.section-title:first-child{margin-top:0}.stat-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;position:relative;overflow:hidden}.stat:after{content:"";background:var(--accent-weak);border-radius:50%;width:84px;height:84px;position:absolute;bottom:-26px;right:-18px}.stat__label{z-index:1;color:var(--text-muted);font-size:13px;position:relative}.stat__value{z-index:1;color:var(--text);margin-top:6px;font-size:1.6rem;font-weight:700;position:relative}.btn{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1.4;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn--sm{padding:6px 12px;font-size:12.5px}.btn--ghost{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.btn--danger{background:var(--danger-weak);color:var(--danger-hover);border-color:#0000}.btn--danger:hover{background:var(--danger);color:#fff}.field{flex-direction:column;gap:6px;display:flex}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--text-soft)}input:hover,select:hover,textarea:hover{border-color:#c6d3e6}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5d87ff29}select.field,textarea.field{width:100%}textarea{resize:vertical;min-height:84px}.check-row{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.check{color:var(--text);align-items:center;gap:7px;font-size:13.5px;display:inline-flex}.check input{width:auto}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.form-error{color:var(--danger-hover);font-size:13px}.hint{color:var(--text-soft);font-size:12.5px;line-height:1.6}.tbl-scroll{border-radius:var(--radius-sm);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{color:var(--text-muted);letter-spacing:.04em;text-align:left;text-transform:uppercase;background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.table th:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.table th:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.table td{border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;padding:13px 14px}.table code{background:var(--surface-2);font-family:var(--font-mono);border-radius:5px;padding:2px 6px;font-size:12px}.cell-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.chip{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.chip--role{background:var(--accent-weak);color:var(--accent)}.whoami{align-items:center;gap:8px;display:flex}.notice{border-radius:var(--radius-sm);background:var(--accent-weak);color:#3c5fc4;padding:13px 16px;font-size:13.5px}.notice--warn{background:var(--warn-weak);color:#96650a}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--text-muted);text-align:center;padding:34px 20px}.msg-list{flex-direction:column;gap:10px;display:flex}.msg{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:16px 18px}.msg--unread{border-left:3px solid var(--accent);background:#fbfdff}.msg-body{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;margin-top:6px}.kv{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;display:flex}.kv:last-child{border-bottom:0}.kv__k{color:var(--text-muted);flex:none;font-size:12.5px}.kv__v{color:var(--text);text-align:right;word-break:break-word;font-weight:600}.code{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;padding:10px 12px;font-size:12px}.thumb{border-radius:var(--radius-sm);border:1px solid var(--line);object-fit:cover;background:var(--surface-2);width:96px;height:64px}.thumb--tiny{width:48px;height:36px}.pager{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;display:flex}.tabbar{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);gap:4px;padding:5px;display:flex;overflow-x:auto}.tab{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;padding:8px 14px;font-size:13.5px;font-weight:600;text-decoration:none}.tab:hover{background:var(--surface-2);color:var(--text)}.tab[aria-current=page]{background:var(--accent-weak);color:var(--accent)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar__right,.toolbar__left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toast-wrap{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:22px;right:22px}.toast{border-radius:var(--radius-sm);color:#fff;background:#243b55;min-width:200px;max-width:360px;padding:12px 16px;font-size:13.5px;animation:.18s ease-out toast-in;box-shadow:0 12px 30px -10px #10182880}.toast--error{background:#b42318}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}@media (width<=1199px){.left-sidebar{transition:transform .2s;transform:translate(-100%);box-shadow:0 0 40px #1018282e}.admin-body{margin-left:0}.menu-toggle{display:inline-flex}body.sidebar-open .left-sidebar{transform:translate(0)}body.sidebar-open:before{content:"";z-index:35;background:#10182866;position:fixed;inset:0}}@media (width<=720px){.app-main{padding:18px 14px 40px}.app-header{padding:0 14px}.card{padding:18px}.grid-2,.grid-2--wide{grid-template-columns:1fr}}.bars{align-items:flex-end;gap:14px;height:180px;padding:8px 4px 0;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar__value{color:var(--text-muted);font-size:12px;font-weight:600}.bar__fill{background:var(--accent-weak);border-radius:6px 6px 0 0;width:100%;max-width:44px;min-height:4px}.bar__fill--1{background:#dbe5ff;height:25%}.bar__fill--2{background:#b9cdfd;height:50%}.bar__fill--3{background:#8fadfc;height:75%}.bar__fill--4{background:var(--accent);height:100%}.bar__label{color:var(--text-soft);font-size:12px}.dashboard-grid{gap:var(--gap);grid-template-columns:minmax(320px,.85fr) minmax(0,1.4fr);display:grid}@media (width<=1100px){.dashboard-grid{grid-template-columns:1fr}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root,:root[data-theme=light]{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg:#fafafa;--surface:#fff;--surface-2:#f5f5f5;--surface-3:#f0f0f0;--text:#0a0a0a;--text-muted:#525252;--text-soft:#737373;--line:#e5e5e5;--line-strong:#d4d4d4;--accent:#171717;--accent-hover:#000;--accent-text:#fff;--accent-weak:#f0f0f0;--danger:#dc2626;--danger-hover:#b91c1c;--danger-weak:#fef2f2;--ok:#16a34a;--ok-weak:#f0fdf4;--warn:#d97706;--warn-weak:#fffbeb;--radius:10px;--radius-sm:8px;--radius-lg:12px;--shadow:0 1px 2px #0000000d;--shadow-sm:0 1px 2px #0000000a}body{font-family:var(--font-sans)}.brand-logo__mark,.brand-mark{color:#fff;background:#0a0a0a;border-radius:8px}.admin-menu__item[aria-current=page]{color:#fff;background:#0a0a0a;font-weight:500}.btn{background:#0a0a0a;border-radius:8px}.btn--ghost{border-color:var(--line-strong);color:var(--text);background:#fff}.btn--ghost:hover{background:var(--surface-2);border-color:var(--text);color:var(--text)}.stat:after{background:#f0f0f0}.admin-menu__title{letter-spacing:.12em;color:var(--text-soft)}:root{--sidebar-w:240px;--topbar-h:56px;--gap:16px;--bg:#fbfbfb;--surface:#fff;--surface-2:#fafafa;--surface-3:#f4f4f5;--text:#0a0a0a;--text-muted:#525252;--text-soft:#8f8f8f;--line:#ececec;--line-strong:#dcdcdc;--accent:#0a0a0a;--accent-hover:#262626;--accent-weak:#f4f4f5;--danger:#c2410c;--danger-hover:#9a3412;--danger-weak:#fff7ed;--ok:#15803d;--ok-weak:#f0fdf4;--warn:#b45309;--warn-weak:#fffbeb;--radius:8px;--radius-sm:6px;--radius-lg:10px;--shadow:none;--shadow-sm:none}body{background:var(--bg);font-size:13px;line-height:1.55}h1{letter-spacing:-.01em;font-size:20px;font-weight:600}h2{font-size:14px;font-weight:600}h3{font-size:13px;font-weight:600}a{color:inherit;text-underline-offset:2px}a:hover{text-decoration:underline}.left-sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line)}.brand-logo{min-height:var(--topbar-h);border-bottom:1px solid var(--line);gap:9px;padding:0 16px}.brand-logo__mark,.brand-mark{letter-spacing:0;background:#0a0a0a;border-radius:6px;width:24px;height:24px;font-size:10.5px;font-weight:700}.brand-logo__text{font-size:13.5px;font-weight:600;line-height:1.2}.brand-logo__tag{letter-spacing:.04em;color:var(--text-soft);font-size:10px;font-weight:500}.sidebar-nav{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#dcdcdc transparent;padding:6px 8px 18px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar-thumb{background-color:#dcdcdc;background-clip:padding-box;border:2px solid #0000;border-radius:99px}.admin-menu__group{margin:0}.admin-menu__title{letter-spacing:.06em;color:var(--text-soft);margin:14px 8px 5px;padding:0;font-size:10.5px;font-weight:600}.admin-menu__items{gap:1px}.admin-menu__item{border-radius:var(--radius-sm);color:#404040;gap:8px;min-height:30px;padding:5px 8px;font-size:13px;font-weight:450}.admin-menu__item:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.admin-menu__item[aria-current=page]{background:var(--surface-3);color:var(--text);font-weight:500}.admin-menu__item[aria-current=page] .nav-icon{opacity:1}.admin-menu__item .nav-icon{opacity:.65;width:15px;height:15px}.app-header{min-height:var(--topbar-h);backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--line);background:#ffffffdb;gap:12px;padding:0 20px}.app-header__crumbs{color:var(--text-soft);gap:6px;min-width:0;font-size:12.5px}.app-header__crumbs a{color:var(--text-muted);text-decoration:none}.app-header__crumbs a:hover{color:var(--text)}.app-header__crumbs .crumb-sep{color:#d4d4d4}.app-header__crumbs .crumb-current{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.app-header__actions{gap:6px}.account-menu{position:relative}.account-menu__trigger{border-radius:var(--radius-sm);height:30px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 8px 0 4px;font-size:12.5px;display:inline-flex}.account-menu__trigger:hover{background:var(--surface-3)}.account-menu__avatar{color:#fff;text-transform:uppercase;background:#0a0a0a;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:10.5px;font-weight:600;display:inline-flex}.account-menu__panel{z-index:60;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:208px;padding:5px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000014}.account-menu__panel[hidden]{display:none}.account-menu__id{border-bottom:1px solid var(--line);margin-bottom:4px;padding:6px 8px 8px}.account-menu__id strong{font-size:12.5px;font-weight:600;display:block}.account-menu__id span{color:var(--text-soft);font-size:11px}.account-menu__item{border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;text-decoration:none;display:flex}.account-menu__item:hover{background:var(--surface-3);text-decoration:none}.account-menu__item--danger{color:var(--danger)}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.sidebar-toggle{display:none}@media (width>=1024px){.sidebar-toggle{display:inline-flex}body.nav-collapsed .left-sidebar{border-right:0;width:0;overflow:hidden}body.nav-collapsed .admin-body{margin-left:0}}.app-main{padding:22px 24px 72px}.container{max-width:1140px}.page-wrapper[data-auth=out] .app-main{padding:24px}.page{flex-direction:column;gap:16px;display:flex}.page-head{flex-wrap:wrap;align-items:flex-start;gap:16px;padding-bottom:2px;display:flex}.page-head__titles{min-width:0}.page-head__title{letter-spacing:-.01em;font-size:20px;font-weight:600}.page-head__desc{max-width:72ch;color:var(--text-soft);margin-top:3px;font-size:12.5px}.page-head__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.tabbar{display:none}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:none;padding:16px}.panel-head{gap:8px;margin-bottom:10px}.panel-head h2,.panel-head h3{font-size:13px;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:none;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;display:flex;overflow:visible}.stat:after{display:none}.stat__label{letter-spacing:.02em;color:var(--text-soft);font-size:11.5px;font-weight:500;display:block}.stat__value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:0;font-size:21px;font-weight:600;line-height:1.25;display:block}.stat__meta{color:var(--text-soft);margin-top:2px;font-size:11.5px}@media (width<=1180px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;gap:6px;height:30px;padding:0 12px;font-size:12.5px;font-weight:500}.btn:hover{background:var(--accent-hover)}.btn--sm{border-radius:5px;height:26px;padding:0 8px;font-size:12px}.btn--ghost{background:var(--surface);border:1px solid var(--line-strong);color:var(--text)}.btn--ghost:hover{background:var(--surface-2);color:var(--text);border-color:#c4c4c4}.btn--danger{color:var(--danger);background:0 0;border:1px solid #0000}.btn--danger:hover{background:var(--danger-weak);color:var(--danger-hover);border-color:#fed7aa}.btn--danger-solid{color:#fff;background:#dc2626}.btn--danger-solid:hover{background:#b91c1c}.btn:disabled{opacity:.45;cursor:not-allowed}.btn[aria-busy=true]{opacity:.7;pointer-events:none}.field>label{color:var(--text);font-size:12px;font-weight:500}input[type=text],input[type=url],input[type=search],input[type=number],input[type=email],input[type=password],input[type=date],input[type=datetime-local],select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:30px;color:var(--text);font:inherit;padding:5px 9px;font-size:12.5px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#0a0a0a;outline:none;box-shadow:0 0 0 3px #0a0a0a14}textarea{min-height:84px}.hint,.small.muted{color:var(--text-soft);font-size:11.5px}.form-actions{gap:8px}.form-error{font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:0}.toolbar__left,.toolbar__right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar__right{margin-left:auto}.search-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:220px;height:30px;color:var(--text-soft);align-items:center;gap:6px;padding:0 9px;display:flex}.search-input input{background:0 0;border:0;flex:1;height:28px;min-height:0;padding:0;font-size:12.5px}.search-input input:focus-visible{box-shadow:none;outline:none}.search-input svg{flex:none;width:13px;height:13px}.tbl-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:auto}.table{border-collapse:separate;border-spacing:0;font-size:12.5px}.table th{z-index:1;border-bottom:1px solid var(--line);background:var(--surface-2);color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:7px 12px;font-size:10.5px;font-weight:600;position:sticky;top:0}.table td{vertical-align:middle;border-bottom:1px solid #f4f4f5;padding:9px 12px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-2)}.table th:first-child,.table td:first-child{padding-left:14px}.table th:last-child,.table td:last-child{padding-right:14px}.table a{color:var(--text);text-decoration:none}.table a:hover{text-decoration:underline}.table code{background:var(--surface-3);font-family:var(--font-mono);color:#404040;border-radius:4px;padding:1px 5px;font-size:11.5px}.cell-actions{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.table td:has(.cell-actions),.table th:has(.cell-actions){white-space:nowrap;width:1%}.cell-actions .btn{border-radius:5px;height:24px;padding:0 7px;font-size:11.5px}.cell-actions .btn--ghost{border-color:#0000}.cell-actions .btn--ghost:hover{border-color:var(--line-strong)}.cell-clip{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.cell-sub{color:var(--text-soft);margin-top:2px;font-size:11px}.badge{background:var(--surface-3);height:19px;color:var(--text-muted);white-space:nowrap;border-radius:99px;align-items:center;padding:0 7px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.badge--published,.badge--ok{background:var(--ok-weak);color:#15803d}.badge--draft{background:var(--surface-3);color:var(--text-muted)}.badge--warn{background:var(--warn-weak);color:#b45309}.badge--muted{background:var(--surface-3);color:var(--text-soft)}.badge--danger{background:var(--danger-weak);color:#b91c1c}.chip{border:1px solid var(--line);background:var(--surface);height:22px;color:var(--text-muted);border-radius:99px;padding:0 8px;font-size:11.5px}.notice{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);border-left:2px solid #a3a3a3;padding:10px 12px;font-size:12.5px}.notice--warn{background:var(--warn-weak);color:#92400e;border-left-color:#d97706}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--text-soft);text-align:center;background:0 0;padding:28px 20px}.field-lock{color:var(--text-soft);align-items:center;gap:6px;font-size:11.5px;display:flex}.field-lock svg{flex:none;width:12px;height:12px}.is-locked{opacity:.55}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}@media (width<=900px){.grid-2{grid-template-columns:minmax(0,1fr)}}.stack{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field input,.field select,.field textarea{width:100%}.form-actions{align-items:center;gap:8px;margin-top:2px;display:flex}.kv{gap:8px;font-size:12.5px}.kv__k{color:var(--text-soft)}.nowrap{white-space:nowrap}.dashboard-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px}@media (width<=1100px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}}.todo-list{flex-direction:column;display:flex}.todo{border-bottom:1px solid #f4f4f5;align-items:flex-start;gap:10px;padding:10px 2px;display:flex}.todo:last-child{border-bottom:0;padding-bottom:2px}.todo__dot{background:#d97706;border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.todo__body{flex:1;min-width:0}.todo__body strong{font-size:12.5px;font-weight:600;display:block}.todo__body span{color:var(--text-soft);margin-top:1px;font-size:11.5px;display:block}.todo .btn{flex:none}.quick-actions{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;display:flex}.quick-actions__label{color:var(--text-soft);margin-right:4px;font-size:11.5px}.stat--link{transition:border-color .12s,background-color .12s;position:relative}.stat--link:hover{border-color:var(--line-strong);background:#fcfcfc}.stat__hit{border-radius:inherit;position:absolute;inset:0}.stat--link:focus-within{border-color:#0a0a0a}.bars{gap:10px;padding-top:6px}.bar__fill{background:#171717;border-radius:3px 3px 0 0}.bar__value{color:var(--text-soft);font-size:10.5px}.bar__label{font-size:10.5px}.modal-backdrop{z-index:90;backdrop-filter:blur(2px);background:#0a0a0a5c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(440px,100%);padding:18px;box-shadow:0 20px 50px #0000002e}.modal__title{font-size:14px;font-weight:600}.modal__body{color:var(--text-muted);white-space:pre-line;margin-top:6px;font-size:12.5px}.modal__field{margin-top:12px}.modal__actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toast-wrap{gap:6px;bottom:20px;right:20px}.toast{border-radius:var(--radius-sm);color:#fff;background:#171717;border:1px solid #262626;padding:8px 12px;font-size:12.5px;box-shadow:0 8px 24px #00000029}.toast--error{background:#7f1d1d;border-color:#991b1b}@media (width<=1023px){.left-sidebar{width:var(--sidebar-w);transition:transform .18s;transform:translate(-100%)}body.sidebar-open .left-sidebar{transform:translate(0)}.admin-body{margin-left:0}.app-main{padding:16px 14px 64px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head__actions{width:100%;margin-left:0}}@media (width<=640px){.stat-grid{grid-template-columns:1fr}.search-input{width:100%;min-width:0}}.module-toolbar{margin-top:-2px}.module-toolbar .toolbar{margin:0}.field{max-width:760px}.field--wide,.card .form-actions{max-width:none}.tbl-scroll .table{min-width:1000px}.table .small{white-space:nowrap}.page .lot-inline .field input,.page .lot-inline .field select{height:30px;max-height:30px;padding:0 10px}.lot-inline>.field{align-self:flex-start}.head-actions{align-items:center;gap:8px;display:flex}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:calc(var(--radius) - 2px);--radius-md:var(--radius);--radius-lg:calc(var(--radius) + 2px);--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-border:#e5e5e5;--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-background:#fff;--color-foreground:#0a0a0a;--color-primary:#0a0a0a;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-destructive:#dc2626;--color-destructive-foreground:#fafafa;--color-muted:#fafafa;--color-muted-foreground:#737373;--color-accent:#f5f5f5;--color-accent-foreground:#171717;--color-popover:#fff;--color-popover-foreground:#0a0a0a;--color-card:#fff;--color-card-foreground:#0a0a0a}}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mb-1{margin-bottom:var(--spacing)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-3{height:calc(var(--spacing) * 3)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-14{height:calc(var(--spacing) * 14)}.h-\[30px\]{height:30px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-72{max-height:calc(var(--spacing) * 72)}.min-h-dvh{min-height:100dvh}.w-2\/3{width:66.6667%}.w-8{width:calc(var(--spacing) * 8)}.w-16{width:calc(var(--spacing) * 16)}.w-56{width:calc(var(--spacing) * 56)}.w-\[1\%\]{width:1%}.w-\[56px\]{width:56px}.w-\[104px\]{width:104px}.w-\[110px\]{width:110px}.w-\[120px\]{width:120px}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[264px\]{width:264px}.w-\[320px\]{width:320px}.w-\[380px\]{width:380px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[86vw\]{max-width:86vw}.max-w-\[120px\]{max-width:120px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[360px\]{max-width:360px}.max-w-\[420px\]{max-width:420px}.max-w-\[1200px\]{max-width:1200px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[7rem\]{min-width:7rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[420px\]{min-width:420px}.min-w-\[520px\]{min-width:520px}.min-w-\[640px\]{min-width:640px}.min-w-\[760px\]{min-width:760px}.min-w-\[820px\]{min-width:820px}.min-w-\[860px\]{min-width:860px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.\[scrollbar-width\:thin\]{scrollbar-width:thin}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\!rounded-lg{border-radius:var(--radius-lg)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-border{border-color:var(--color-border)!important}.border-amber-200\/70{border-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.border-amber-200\/70{border-color:color-mix(in oklab, var(--color-amber-200) 70%, transparent)}}.border-destructive\/20{border-color:#dc262633}@supports (color:color-mix(in lab, red, red)){.border-destructive\/20{border-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.border-destructive\/25{border-color:#dc262640}@supports (color:color-mix(in lab, red, red)){.border-destructive\/25{border-color:color-mix(in oklab, var(--color-destructive) 25%, transparent)}}.border-emerald-200\/70{border-color:#a4f4cfb3}@supports (color:color-mix(in lab, red, red)){.border-emerald-200\/70{border-color:color-mix(in oklab, var(--color-emerald-200) 70%, transparent)}}.border-input{border-color:var(--color-input)}.border-transparent{border-color:#0000}.\!bg-muted{background-color:var(--color-muted)!important}.\!bg-popover{background-color:var(--color-popover)!important}.\!bg-primary{background-color:var(--color-primary)!important}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-50\/60{background-color:#fffbeb99}@supports (color:color-mix(in lab, red, red)){.bg-amber-50\/60{background-color:color-mix(in oklab, var(--color-amber-50) 60%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--color-background)}.bg-background\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-background\/95{background-color:color-mix(in oklab, var(--color-background) 95%, transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab, red, red)){.bg-black\/20{background-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/5{background-color:#dc26260d}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab, var(--color-destructive) 5%, transparent)}}.bg-destructive\/10{background-color:#dc26261a}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--color-destructive) 10%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-50\/60{background-color:#ecfdf599}@supports (color:color-mix(in lab, red, red)){.bg-emerald-50\/60{background-color:color-mix(in oklab, var(--color-emerald-50) 60%, transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-muted\/40{background-color:#fafafa66}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--color-muted) 40%, transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\!text-\[13px\]{font-size:13px!important}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[21px\]{font-size:21px}.text-\[26px\]{font-size:26px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.\!text-muted-foreground{color:var(--color-muted-foreground)!important}.\!text-popover-foreground{color:var(--color-popover-foreground)!important}.\!text-primary-foreground{color:var(--color-primary-foreground)!important}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-900{color:var(--color-amber-900)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-destructive\/80{color:#dc2626cc}@supports (color:color-mix(in lab, red, red)){.text-destructive\/80{color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-900\/80{color:#004e3bcc}@supports (color:color-mix(in lab, red, red)){.text-emerald-900\/80{color:color-mix(in oklab, var(--color-emerald-900) 80%, transparent)}}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/60{color:#73737399}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--color-muted-foreground) 60%, transparent)}}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:var(--color-primary)}.opacity-0{opacity:0}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.last\:mb-0:last-child{margin-bottom:0}@media (hover:hover){.hover\:border-foreground\/15:hover{border-color:#0a0a0a26}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/15:hover{border-color:color-mix(in oklab, var(--color-foreground) 15%, transparent)}}.hover\:border-foreground\/20:hover{border-color:#0a0a0a33}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/20:hover{border-color:color-mix(in oklab, var(--color-foreground) 20%, transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent\/40:hover{background-color:#f5f5f566}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.hover\:bg-destructive\/10:hover{background-color:#dc26261a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--color-destructive) 10%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#dc2626e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-muted\/50:hover{background-color:#fafafa80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--color-muted) 50%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#0a0a0ae6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-destructive:hover{color:var(--color-destructive)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-destructive\/10:focus{background-color:#dc26261a}@supports (color:color-mix(in lab, red, red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab, var(--color-destructive) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-destructive:focus{color:var(--color-destructive)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring\/20:focus{--tw-ring-color:#0a0a0a33}@supports (color:color-mix(in lab, red, red)){.focus\:ring-ring\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-ring) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--color-ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:#0a0a0a33}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-ring) 20%, transparent)}}.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:#0a0a0a4d}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-ring) 30%, transparent)}}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-accent[data-highlighted]{background-color:var(--color-accent)}.data-\[highlighted\]\:text-accent-foreground[data-highlighted]{color:var(--color-accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--color-muted)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in oklab, var(--color-background) 80%, transparent)}}}@media (width>=40rem){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=48rem){.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.15fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:text-destructive svg{color:var(--color-destructive)}.\[\&_svg\]\:text-muted-foreground svg{color:var(--color-muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:truncate>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:root{--radius:8px;color-scheme:light}*,:before,:after{box-sizing:border-box}body{margin:0}@keyframes ui-in{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}.ui-pop{animation:.12s ease-out ui-in}.ui-fade{animation:.12s ease-out ui-fade}@layer base{#admin-root :where(:not(.legacy-host *)),#admin-root :where(:not(.legacy-host *)):before,#admin-root :where(:not(.legacy-host *)):after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--color-border)}#admin-root :where(button:not(.legacy-host *)){color:inherit;font:inherit;cursor:pointer;background-color:#0000;background-image:none}#admin-root :where(input:not(.legacy-host *),select:not(.legacy-host *),textarea:not(.legacy-host *)){color:inherit;font:inherit;background-color:#0000}#admin-root :where(ul:not(.legacy-host *),ol:not(.legacy-host *)){margin:0;padding:0;list-style:none}#admin-root :where(a:not(.legacy-host *)){color:inherit;text-decoration:none}#admin-root :where(h1:not(.legacy-host *),h2:not(.legacy-host *),h3:not(.legacy-host *),h4:not(.legacy-host *),p:not(.legacy-host *),figure:not(.legacy-host *)){font-size:inherit;font-weight:inherit;margin:0}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
