.toast-region[data-v-76d89329]{z-index:80;pointer-events:none;position:fixed;bottom:0;right:0}.toast-region--assertive[data-v-76d89329]{width:0;height:0}.toast-stack[data-v-76d89329]{right:var(--space-5);bottom:var(--space-5);gap:var(--space-2);max-width:min(360px, calc(100vw - 2 * var(--space-4)));flex-direction:column;display:flex;position:fixed}.toast[data-v-76d89329]{pointer-events:auto;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:.7rem .75rem .7rem .85rem;display:flex;position:relative;overflow:hidden}.toast__accent[data-v-76d89329]{width:4px;position:absolute;top:0;bottom:0;left:0}.toast--success .toast__accent[data-v-76d89329]{background:var(--success)}.toast--success .toast__icon[data-v-76d89329]{color:var(--success)}.toast--error .toast__accent[data-v-76d89329]{background:var(--danger)}.toast--error .toast__icon[data-v-76d89329]{color:var(--danger)}.toast--info .toast__accent[data-v-76d89329]{background:var(--info)}.toast--info .toast__icon[data-v-76d89329]{color:var(--info)}.toast__icon[data-v-76d89329]{flex:none}.toast__msg[data-v-76d89329]{color:var(--text);font-size:.875rem;line-height:1.4}.toast__close[data-v-76d89329]{color:var(--text-subtle);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;flex:none;margin-left:auto;padding:4px;display:flex}.toast__close[data-v-76d89329]:hover{color:var(--text);background:var(--surface-2)}.toast-enter-active[data-v-76d89329],.toast-leave-active[data-v-76d89329]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-76d89329],.toast-leave-to[data-v-76d89329]{opacity:0;transform:translate(16px)}@media (prefers-reduced-motion:reduce){.toast-enter-from[data-v-76d89329],.toast-leave-to[data-v-76d89329]{transform:none}}:root{--brand-600:#4338ca;--brand-700:#3730a3;--brand-500:#6366f1;--brand-050:#eef2ff;--accent-teal:#0d9488;--bg:#f7f8fa;--surface:#fff;--surface-2:#f1f3f7;--border:#e3e6ec;--border-strong:#cbd1db;--text:#161a22;--text-muted:#5a6472;--text-subtle:#828b99;--success:#15803d;--success-bg:#e7f6ee;--success-fg:#0f5c2e;--warning:#b45309;--warning-bg:#fef6e7;--warning-fg:#7a4a08;--danger:#dc2626;--danger-bg:#fdecec;--danger-fg:#991b1b;--info:#2563eb;--info-bg:#eaf1fe;--info-fg:#1e40af;--guest-fg:#0f6b62;--guest-bg:#dff3f1;--focus-ring:#6366f1;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-pill:999px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #10182824;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--space-10:64px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--maxw:1120px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--brand-600:#818cf8;--brand-700:#a5b4fc;--brand-500:#6366f1;--brand-050:#1e1b4b;--accent-teal:#2dd4bf;--bg:#0e1116;--surface:#161b22;--surface-2:#1e242e;--border:#2a313c;--border-strong:#3a424e;--text:#e8ebf0;--text-muted:#a6b0be;--text-subtle:#7a8494;--success:#4ade80;--success-bg:#0f2a1c;--success-fg:#86efac;--warning:#fbbf24;--warning-bg:#2a2210;--warning-fg:#fcd34d;--danger:#f87171;--danger-bg:#2a1516;--danger-fg:#fca5a5;--info:#60a5fa;--info-bg:#0f1e33;--info-fg:#93c5fd;--guest-fg:#5eead4;--guest-bg:#0f2b28;--focus-ring:#a5b4fc;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 12px 32px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}[data-theme=dark]{--brand-600:#818cf8;--brand-700:#a5b4fc;--brand-500:#6366f1;--brand-050:#1e1b4b;--accent-teal:#2dd4bf;--bg:#0e1116;--surface:#161b22;--surface-2:#1e242e;--border:#2a313c;--border-strong:#3a424e;--text:#e8ebf0;--text-muted:#a6b0be;--text-subtle:#7a8494;--success:#4ade80;--success-bg:#0f2a1c;--success-fg:#86efac;--warning:#fbbf24;--warning-bg:#2a2210;--warning-fg:#fcd34d;--danger:#f87171;--danger-bg:#2a1516;--danger-fg:#fca5a5;--info:#60a5fa;--info-bg:#0f1e33;--info-fg:#93c5fd;--guest-fg:#5eead4;--guest-bg:#0f2b28;--focus-ring:#a5b4fc;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 12px 32px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}html{font-family:var(--font-sans)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}#app{flex-direction:column;min-height:100vh;display:flex}a{color:var(--brand-600);text-decoration:none}a:hover{color:var(--brand-700);text-decoration:underline}h1,h2,h3,h4{color:var(--text);margin:0;font-weight:700;line-height:1.25}h1{letter-spacing:-.01em;font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}p{margin:0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:3px}.mono{font-family:var(--font-mono)}.container{width:100%;max-width:var(--maxw);padding:var(--space-6) var(--space-4) var(--space-10);margin:0 auto}.container--narrow{max-width:520px}.stack>*+*{margin-top:var(--space-4)}.stack-sm>*+*{margin-top:var(--space-2)}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.eyebrow{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);font-size:.6875rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card--flush{padding:0;overflow:hidden}.card--pop{box-shadow:var(--shadow-md)}.btn{font:inherit;cursor:pointer;border-radius:var(--r-md);background:var(--brand-600);color:#fff;justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;border:1px solid #0000;min-height:44px;padding:.625rem 1rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--brand-700);color:#fff;text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn--secondary{color:var(--brand-600);border-color:var(--border-strong);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--brand-050);color:var(--brand-700)}.btn--ghost{color:var(--text);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--tint{background:var(--brand-050);color:var(--brand-600);border-color:#0000}.btn--tint:hover:not(:disabled){background:var(--brand-050);color:var(--brand-700);filter:brightness(.97)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger);filter:brightness(.92);color:#fff}.btn--danger-soft{background:var(--danger-bg);color:var(--danger-fg);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.btn--link{color:var(--brand-600);background:0 0;border:none;min-height:0;padding:0;font-weight:600}.btn--link:hover:not(:disabled){color:var(--brand-700);background:0 0;text-decoration:underline}.btn--sm{border-radius:var(--r-sm);min-height:34px;padding:.375rem .7rem;font-size:.8125rem}.btn--lg{min-height:48px;padding:.8rem 1.25rem;font-size:1rem}.btn--block{width:100%}.btn--icon{border-radius:var(--r-md);width:40px;min-height:40px;padding:0}.btn--icon.btn--sm{width:34px;min-height:34px}.field{gap:var(--space-2);flex-direction:column;display:flex}.field>label,.label{color:var(--text);font-size:.875rem;font-weight:600}.hint{color:var(--text-muted);font-size:.75rem;font-weight:400}.error-text{color:var(--danger-fg);font-size:.8125rem;font-weight:500}.input,input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],select,textarea{border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-height:44px;font:inherit;background:var(--surface);color:var(--text);padding:0 .75rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}textarea{min-height:90px;padding:.6rem .75rem}select{cursor:pointer}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-500) 28%, transparent);outline:none}.input[aria-invalid=true],input[aria-invalid=true]{border-color:var(--danger)}.input[aria-invalid=true]:focus,input[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 25%, transparent)}input::placeholder,textarea::placeholder{color:var(--text-subtle)}input[type=checkbox]{width:auto;min-height:0;accent-color:var(--brand-600)}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;padding:.25rem .5rem;font-size:.625rem;font-weight:600;display:inline-flex}.badge--viewer{background:var(--surface-2);color:var(--text-muted)}.badge--editor{background:var(--info-bg);color:var(--info-fg)}.badge--admin{background:var(--brand-050);color:var(--brand-700)}.badge--owner{background:var(--warning-bg);color:var(--warning-fg)}.badge--guest{background:var(--guest-bg);color:var(--guest-fg)}.alert{gap:var(--space-3);border-radius:var(--r-md);border:1px solid #0000;align-items:flex-start;padding:.75rem .85rem;font-size:.875rem;line-height:1.45;display:flex}.alert svg{flex:none;margin-top:1px}.alert__body{flex-direction:column;gap:6px;min-width:0;display:flex}.alert--error{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger-fg)}.alert--success{background:var(--success-bg);border-color:color-mix(in srgb, var(--success) 35%, transparent);color:var(--success-fg)}.alert--warn{background:var(--warning-bg);border-color:color-mix(in srgb, var(--warning) 35%, transparent);color:var(--warning-fg)}.alert--info{background:var(--info-bg);border-color:color-mix(in srgb, var(--info) 35%, transparent);color:var(--info-fg)}.alert a{color:inherit;font-weight:600;text-decoration:underline}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--surface-2) 60%, var(--border)) 50%, var(--surface-2) 75%);background-size:380px 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:-380px 0}to{background-position:380px 0}}.spinner{border:2px solid color-mix(in srgb, currentColor 30%, transparent);border-top-color:currentColor;border-radius:50%;flex:none;width:1.05em;height:1.05em;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center-state{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-muted);flex-direction:column;display:flex}.grid-assets{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.grid-assets{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid-assets{grid-template-columns:repeat(3,1fr)}}@media (width>=1280px){.grid-assets{grid-template-columns:repeat(4,1fr)}}.grid-folders{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=640px){.grid-folders{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid-folders{grid-template-columns:repeat(3,1fr)}}@media (width>=1280px){.grid-folders{grid-template-columns:repeat(4,1fr)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-3);z-index:100;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:.6rem .9rem;font-weight:600;transition:top .15s;position:absolute;top:-60px}.skip-link:focus{top:var(--space-3);text-decoration:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.skeleton{animation:none}}
