@import "https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap";:root{--font-core:"Lato", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-num:"Lato", ui-sans-serif, system-ui, sans-serif;--paper-50:#fffdfa;--paper-100:#fbf8f3;--paper-200:#f6f2ec;--paper-300:#efeae2;--paper-400:#e6e0d6;--paper-500:#d8d1c5;--paper-600:#c0b8ab;--ink-900:#1c1a17;--ink-800:#46403a;--ink-700:#5f5750;--ink-600:#7c736a;--ink-500:#9b9288;--bark-900:#14120e;--bark-800:#191612;--bark-700:#221e19;--bark-600:#2d2823;--bark-500:#3b352e;--bone-100:#f4efe7;--bone-300:#c5bcb0;--bone-400:#aba296;--bone-500:#8b8278;--sable-800:#17130e;--sable-700:#201b15;--sable-600:#2b251d;--sable-500:#3d352b;--sable-tint:#ece7dd;--sable-tint-dark:#302a23;--leaf-700:#2d6b3f;--leaf-400:#7fc48f;--leaf-tint:#e8f1ea;--leaf-tint-dark:#17301f;--amber-700:#8a6410;--amber-400:#dbb35c;--amber-tint:#f7eed9;--amber-tint-dark:#33270f;--wine-700:#96241f;--wine-400:#e58d84;--wine-tint:#f7e6e2;--wine-tint-dark:#38201d;--box-slate:#3c4a52;--box-ink:#2b3242;--box-indigo:#3d4780;--box-violet:#5f4a8c;--box-plum:#7c3f68;--box-steel:#2f6a8c;--box-stone:#6b6157;--bg-app:var(--paper-200);--surface-card:var(--paper-50);--surface-sunken:var(--paper-100);--surface-muted:var(--paper-300);--surface-nav:var(--paper-50);--border-hairline:var(--paper-400);--border-soft:var(--paper-300);--border-strong:var(--paper-600);--text-primary:var(--ink-900);--text-secondary:var(--ink-700);--text-tertiary:var(--ink-500);--text-label:var(--ink-600);--text-on-brand:var(--paper-50);--text-link:var(--sable-600);--brand:var(--sable-600);--brand-hover:var(--sable-800);--brand-quiet:var(--sable-tint);--brand-on-quiet:var(--sable-700);--success:var(--leaf-700);--success-quiet:var(--leaf-tint);--warning:var(--amber-700);--warning-quiet:var(--amber-tint);--danger:var(--wine-700);--danger-quiet:var(--wine-tint);--focus-ring:color-mix(in oklab, var(--sable-600) 45%, transparent);--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--text-display-size:30px;--text-display-line:1.12;--text-display-track:-.03em;--text-title-size:22px;--text-title-line:1.25;--text-title-track:-.02em;--text-heading-size:17px;--text-heading-line:1.3;--text-heading-track:-.015em;--text-body-size:15px;--text-body-line:1.45;--text-meta-size:13px;--text-meta-line:1.4;--text-caption-size:11.5px;--text-caption-line:1.3;--text-label-size:13px;--text-label-line:1.2;--text-label-weight:var(--weight-semibold);--text-label-track:-.01em;--space-05:2px;--space-1:4px;--space-15:6px;--space-2:8px;--space-25:10px;--space-3:12px;--space-35:14px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--radius-card:var(--radius-lg);--shadow-card:0 1px 2px #1c1a170a;--shadow-raised:0 2px 8px -2px #1c1a171a;--shadow-modal:0 10px 34px -10px #1c1a1738;--dur-instant:90ms;--dur-fast:.14s;--dur-base:.2s;--dur-slow:.28s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1)}[data-theme=dark]{--bg-app:var(--bark-900);--surface-card:var(--bark-700);--surface-sunken:var(--bark-800);--surface-muted:var(--bark-600);--surface-nav:var(--bark-800);--border-hairline:var(--bark-500);--border-soft:var(--bark-600);--border-strong:#4a433a;--text-primary:var(--bone-100);--text-secondary:var(--bone-300);--text-tertiary:var(--bone-500);--text-label:var(--bone-300);--text-on-brand:var(--bark-900);--text-link:var(--bone-100);--brand:var(--bone-100);--brand-hover:#fff;--brand-quiet:var(--sable-tint-dark);--brand-on-quiet:var(--bone-100);--success:var(--leaf-400);--success-quiet:var(--leaf-tint-dark);--warning:var(--amber-400);--warning-quiet:var(--amber-tint-dark);--danger:var(--wine-400);--danger-quiet:var(--wine-tint-dark);--shadow-card:0 1px 2px #00000059;--shadow-modal:0 10px 34px -10px #000000b3;--focus-ring:color-mix(in oklab, var(--bone-100) 55%, transparent)}*{box-sizing:border-box}body{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-core);font-size:var(--text-body-size);line-height:var(--text-body-line);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--text-link);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--text-link) 32%, transparent);text-decoration-color:color-mix(in oklab, var(--text-link) 32%, transparent)}a:hover{color:var(--brand-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}button,input,select,textarea{font:inherit;color:inherit}:root{--scrim:#14120e66}[data-theme=dark]{--scrim:#0009}html,body,#root{height:100%}.page-center{min-height:100%;padding:var(--space-10);justify-content:center;align-items:center;display:flex}.card{background:var(--surface-card);border-radius:var(--radius-card);padding:var(--space-8)}.muted{color:var(--text-secondary)}.title{font-size:var(--text-title-size);line-height:var(--text-title-line);font-weight:var(--weight-bold);letter-spacing:var(--text-title-track)}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.btn{border-radius:var(--radius-md);height:36px;font-weight:var(--weight-bold);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn--lg{height:46px;font-size:15px}.btn--sm{height:30px;padding:0 10px;font-size:13px}.btn--block{width:100%}.btn--primary{background:var(--brand);color:var(--text-on-brand)}.btn--primary:hover:not(:disabled){background:var(--brand-hover)}.btn--secondary{background:var(--surface-muted);color:var(--text-primary)}.btn--ghost{color:var(--text-primary);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-muted)}.btn--danger{background:var(--danger);color:var(--text-on-brand)}.field{flex-direction:column;gap:6px;display:flex}.field>span{font-size:var(--text-label-size);font-weight:var(--weight-bold);color:var(--text-label)}.input{border-radius:var(--radius-md);background:var(--surface-sunken);height:44px;box-shadow:inset 0 0 0 1px var(--border-soft);border:0;padding:0 14px}.input:focus{outline:2px solid var(--focus-ring);outline-offset:0}textarea.input{resize:vertical;height:auto;min-height:80px;padding:10px 14px}.field-error{color:var(--danger);font-size:var(--text-meta-size)}.dialog{background:var(--surface-card);border-radius:var(--radius-lg);width:420px;max-width:calc(100vw - 32px);padding:var(--space-6);box-shadow:var(--shadow-modal);gap:var(--space-4);border:0;flex-direction:column;display:flex}.dialog::backdrop{background:var(--scrim)}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.toasts{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--brand);color:var(--text-on-brand);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);padding:10px 16px;font-size:14px}.toast--error{background:var(--danger)}.cb{cursor:pointer;background:var(--surface-card);width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--border-strong);color:var(--text-on-brand);border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;display:inline-flex}.cb[aria-checked=true],.cb[aria-checked=mixed]{background:var(--brand);box-shadow:none}.menu{background:var(--surface-card);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-modal);z-index:40;flex-direction:column;padding:6px;display:flex;position:absolute}.menu-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;height:36px;padding:0 10px;display:flex}.menu-item:hover{background:var(--surface-muted)}.logo-dark,[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:inline-block}.shell{height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--surface-nav);flex-direction:column;flex:none;gap:4px;width:248px;padding:20px 12px;display:flex;position:relative}.nav-item{border-radius:var(--radius-md);height:40px;color:var(--text-primary);font-weight:var(--weight-regular);align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-muted)}.nav-item[aria-current=page]{background:var(--brand-quiet);font-weight:var(--weight-semibold)}.nav-item .count{color:var(--text-tertiary);margin-left:auto;font-size:13px}.nav-sub{border-radius:10px;height:34px;padding-left:42px}.nav-label{color:var(--text-tertiary);padding:14px 10px 4px;font-size:12px}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.page-head{align-items:center;gap:12px;padding:24px 28px 12px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:0 28px 12px;display:flex}.table-wrap{flex:1;padding:0 28px 96px;overflow:auto}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{background:var(--surface-card);box-shadow:0 1px 0 var(--border-hairline);text-align:left;font-weight:var(--weight-semibold);color:var(--text-secondary);-webkit-user-select:none;user-select:none;white-space:nowrap;height:40px;padding:0 10px;font-size:13px;position:sticky;top:0}.tbl th button{all:unset;cursor:pointer;height:40px;color:inherit;font:inherit;align-items:center;gap:4px;display:inline-flex}.tbl td{white-space:nowrap;text-overflow:ellipsis;border:0;max-width:260px;height:56px;padding:0 10px;overflow:hidden}.tbl tbody tr{cursor:pointer}.tbl tbody tr:nth-child(2n){background:var(--surface-sunken)}.tbl tbody tr:hover{background:var(--surface-muted)}.tbl tbody tr[data-selected=true]{background:var(--brand-quiet)}.tbl .dim{color:var(--text-tertiary)}.title-btn{all:unset;cursor:pointer;font-weight:var(--weight-semibold)}.cover{border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-muted);width:32px;height:48px;display:block}.chip{border-radius:var(--radius-pill);background:var(--surface-muted);height:24px;font-size:12px;font-weight:var(--weight-semibold);cursor:pointer;border:0;align-items:center;padding:0 10px;display:inline-flex}.chip[aria-pressed=true]{background:var(--brand);color:var(--text-on-brand)}.search{min-width:280px;height:36px}.bulkbar{background:var(--brand);color:var(--text-on-brand);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);z-index:30;align-items:center;gap:4px;padding:6px 8px 6px 16px;display:flex;position:fixed;bottom:24px;left:calc(50% + 124px);transform:translate(-50%)}.bulkbar .btn--ghost{color:var(--text-on-brand)}.bulkbar .btn--ghost:hover:not(:disabled){background:color-mix(in oklab, var(--text-on-brand) 14%, transparent)}.panel{background:var(--surface-card);width:480px;box-shadow:var(--shadow-modal);z-index:35;animation:panelIn var(--dur-slow) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes panelIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.panel{animation:none}}.panel-head{border-bottom:1px solid var(--border-hairline);align-items:center;gap:8px;padding:16px 20px;display:flex}.panel-body{flex-direction:column;flex:1;gap:24px;padding:20px;display:flex;overflow:auto}.panel-foot{border-top:1px solid var(--border-hairline);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.panel h3{font-size:var(--text-heading-size);margin:0;font-weight:700}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.slots{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slot{aspect-ratio:2/3;border-radius:var(--radius-sm);background:var(--surface-sunken);border:1.5px dashed var(--border-strong);color:var(--text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;font-size:11.5px;display:flex;position:relative;overflow:hidden}.slot img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.slot[data-over=true]{border-color:var(--brand);background:var(--brand-quiet)}.slot:disabled{opacity:.55;cursor:not-allowed}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
