:root{--bg: #080f25;--bg-elevated: #101935;--panel: #212c4d;--panel-strong: #37446b;--panel-border: #37446b;--panel-border-strong: #4a5876;--sidebar-bg: #212c4d;--topbar-bg: #080f25;--ink: #d9e1fa;--ink-strong: #ffffff;--muted: #aeb9e1;--muted-soft: #7e89ac;--accent: #6c72ff;--accent-strong: #9a91fb;--accent-soft: rgba(108, 114, 255, .16);--accent-soft-strong: rgba(108, 114, 255, .32);--accent-glow: rgba(108, 114, 255, .45);--accent-gradient: linear-gradient(135deg, #6c72ff 0%, #9a91fb 100%);--danger: #ff5a65;--danger-soft: rgba(255, 90, 101, .14);--danger-soft-strong: rgba(255, 90, 101, .32);--success: #14ca74;--success-soft: rgba(20, 202, 116, .14);--warn: #fdb52a;--warn-soft: rgba(253, 181, 42, .14);--hairline: #37446b;--ring: 0 0 0 3px rgba(108, 114, 255, .28);--shadow-sm: 0 1px 2px #080f254d;--shadow-md: 0 8px 24px #080f2561;--shadow-lg: 0 24px 60px #080f25aa;--hover-tint: #0a1226;--hover-tint-strong: #060c1a;--subtle-tint: #1a2240;--highlight-inset: rgba(255, 255, 255, .22);--highlight-inset-soft: rgba(255, 255, 255, .06);--strong-divider: #5d6c7b;--grid-line: #101935;--marker-dot: rgba(154, 145, 251, .14);--top-highlight: rgba(154, 145, 251, .4);--grad-stop-mid: rgba(154, 145, 251, .05);--grad-stop-end: rgba(154, 145, 251, .2);--panel-grad-start: rgba(255, 255, 255, .03);--panel-grad-end: rgba(255, 255, 255, .01);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius: 10px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur: .2s;--dur-slow: .28s;--sidebar-width: 264px;--sidebar-width-collapsed: 72px;--topbar-height: 60px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,system-ui,sans-serif;font-feature-settings:"ss01","cv11","cv02";color:var(--ink);background:var(--bg);color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}[data-theme=light]{--bg: #eef2f9;--bg-elevated: #ffffff;--panel: #ffffff;--panel-strong: #e7edf5;--panel-border: #d6dfe9;--panel-border-strong: #c1ccdb;--sidebar-bg: #ffffff;--topbar-bg: #eef2f9;--ink: #0f1a3a;--ink-strong: #080f25;--muted: #4a5876;--muted-soft: #7e89ac;--accent: #6c72ff;--accent-strong: #4a3aff;--accent-soft: rgba(108, 114, 255, .1);--accent-soft-strong: rgba(108, 114, 255, .22);--accent-glow: rgba(108, 114, 255, .35);--danger: #dc2b2b;--danger-soft: rgba(220, 43, 43, .1);--danger-soft-strong: rgba(220, 43, 43, .22);--success: #11845b;--success-soft: rgba(17, 132, 91, .1);--warn: #d5691b;--warn-soft: rgba(213, 105, 27, .1);--hairline: #d6dfe9;--ring: 0 0 0 3px rgba(108, 114, 255, .22);--shadow-sm: 0 1px 2px #080f2514;--shadow-md: 0 4px 12px #080f2529;--shadow-lg: 0 16px 40px #080f253d;--hover-tint: #e7edf5;--hover-tint-strong: #d6dfe9;--subtle-tint: #f4f7fb;--highlight-inset: rgba(255, 255, 255, .55);--highlight-inset-soft: rgba(255, 255, 255, .35);--strong-divider: #aeb9e1;--grid-line: #d6dfe9;--marker-dot: rgba(108, 114, 255, .14);--top-highlight: rgba(255, 255, 255, .6);--grad-stop-mid: rgba(255, 255, 255, 0);--grad-stop-end: rgba(255, 255, 255, .5);--panel-grad-start: rgba(255, 255, 255, .6);--panel-grad-end: rgba(255, 255, 255, .2);color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh;position:relative;overflow-x:hidden;font-size:14px;line-height:1.55}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 50% at 12% 10%,rgba(99,102,241,.07) 0%,transparent 60%),radial-gradient(50% 40% at 92% 18%,rgba(168,85,247,.05) 0%,transparent 60%),radial-gradient(60% 50% at 78% 92%,rgba(56,189,248,.04) 0%,transparent 60%),radial-gradient(40% 40% at 8% 88%,rgba(236,72,153,.04) 0%,transparent 60%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:56px 56px;background-position:-1px -1px;-webkit-mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 70%);mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 70%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}::selection{background:var(--accent-soft);color:var(--ink-strong)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"sidebar topbar" "sidebar content";min-height:100vh;transition:grid-template-columns var(--dur) var(--ease)}.app-shell.is-collapsed{grid-template-columns:var(--sidebar-width-collapsed) 1fr}@media (max-width: 900px){.app-shell,.app-shell.is-collapsed{grid-template-columns:1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"topbar" "content"}}.app-sidebar{grid-area:sidebar;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:.6px solid var(--panel-border);z-index:20;overflow:hidden}.app-sidebar-head{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);height:var(--topbar-height);border-bottom:1px solid var(--panel-border);flex-shrink:0}.app-sidebar-brand{display:inline-flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--ink-strong);font-weight:600;letter-spacing:-.01em;overflow:hidden;flex:1;min-width:0}.app-sidebar-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0}.app-sidebar-name{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--dur) var(--ease)}.app-shell.is-collapsed .app-sidebar-name,.is-collapsed .app-sidebar-name{opacity:0;pointer-events:none}.app-sidebar-collapse{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:all var(--dur-fast) var(--ease);flex-shrink:0}.app-sidebar-collapse:hover{color:var(--ink-strong);background:var(--panel);border-color:var(--panel-border)}.app-sidebar-collapse:focus-visible{outline:none;box-shadow:var(--ring)}@media (max-width: 900px){.app-sidebar{display:none}}.app-sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-5)}.app-sidebar-section{display:flex;flex-direction:column;gap:var(--space-1)}.app-sidebar-section-label{padding:0 var(--space-3);margin-bottom:var(--space-2);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell.is-collapsed .app-sidebar-section-label,.is-collapsed .app-sidebar-section-label{opacity:0;height:0;margin:0;padding:0}.app-sidebar-link{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-3) 0 calc(var(--space-3) + 4px);height:36px;border-radius:var(--radius);border-left:4px solid transparent;background:transparent;color:var(--muted);font-size:.875rem;font-weight:500;text-decoration:none;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-left-color var(--dur-fast) var(--ease);white-space:nowrap;overflow:hidden;flex-shrink:0}.app-sidebar-link:hover{color:var(--ink-strong);background:var(--subtle-tint)}.app-sidebar-link[aria-current=page]{color:var(--ink-strong);background:var(--panel);border-radius:var(--radius);border-left-color:var(--accent);font-weight:600}.app-sidebar-link-icon{width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:inherit}.app-sidebar-link-label{flex:1;overflow:hidden;text-overflow:ellipsis;opacity:1;transition:opacity var(--dur) var(--ease)}.app-shell.is-collapsed .app-sidebar-link-label,.is-collapsed .app-sidebar-link-label{opacity:0;pointer-events:none}.app-sidebar-link-kbd{margin-left:auto;font-size:.7rem;color:var(--muted-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.app-sidebar-cta{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) var(--space-3) var(--space-2);padding:0 var(--space-3);height:36px;border-radius:var(--radius);background:var(--accent-gradient);color:#fff;font-size:.875rem;font-weight:600;text-decoration:none;border:1px solid transparent;box-shadow:0 6px 16px -6px var(--accent-glow),inset 0 1px 0 var(--highlight-inset);transition:filter var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);flex-shrink:0}.app-sidebar-cta:hover{filter:brightness(1.08)}.app-sidebar-cta:focus-visible{outline:none;box-shadow:var(--ring),0 6px 16px -6px var(--accent-glow)}.app-sidebar-cta.is-active{box-shadow:0 0 0 2px var(--accent-soft-strong),0 6px 16px -6px var(--accent-glow)}.app-sidebar-cta-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-sidebar-cta-label{flex:1}.app-sidebar-cta-kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.65rem;padding:1px 5px;border-radius:4px;background:#ffffff2e;border:1px solid rgba(255,255,255,.28);color:#fff;line-height:1}.app-shell.is-collapsed .app-sidebar-cta-label,.is-collapsed .app-sidebar-cta-label,.app-shell.is-collapsed .app-sidebar-cta-kbd,.is-collapsed .app-sidebar-cta-kbd{display:none}.app-shell.is-collapsed .app-sidebar-cta,.is-collapsed .app-sidebar-cta{justify-content:center;padding:0}.app-topbar{grid-area:topbar;position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-6);height:var(--topbar-height);background:var(--topbar-bg);border-bottom:.6px solid var(--panel-border)}.app-topbar-mobile-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--panel-border);background:var(--panel);color:var(--ink);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.app-topbar-mobile-toggle:hover{background:var(--panel-strong)}.app-topbar-mobile-toggle:focus-visible{outline:none;box-shadow:var(--ring)}@media (max-width: 900px){.app-topbar-mobile-toggle{display:inline-flex}}.app-breadcrumbs{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--muted);flex:0 1 auto;min-width:0}.app-breadcrumb-link{color:var(--muted);text-decoration:none;transition:color var(--dur-fast) var(--ease);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block}.app-breadcrumb-link:hover{color:var(--ink-strong)}.app-breadcrumb-current{color:var(--ink-strong);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px;display:inline-block}.app-breadcrumb-sep{color:var(--muted-soft);-webkit-user-select:none;user-select:none}.app-topbar-search{flex:1;max-width:480px;margin-left:auto;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);height:36px;border-radius:var(--radius);border:1px solid var(--panel-border);background:var(--panel);transition:all var(--dur-fast) var(--ease)}.app-topbar-search:focus-within{border-color:#818cf880;box-shadow:0 0 0 4px #6366f124;background:var(--panel-strong)}.app-topbar-search-icon{color:var(--muted);flex-shrink:0;width:16px;height:16px}.app-topbar-search input{flex:1;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.875rem;outline:none;min-width:0}.app-topbar-search input::placeholder{color:var(--muted-soft)}.app-topbar-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:var(--space-2)}.app-avatar{border-radius:999px;background:var(--accent-gradient);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;flex-shrink:0;box-shadow:inset 0 1px #fff3}.app-topbar-user-menu{position:relative}.app-topbar-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--panel-border);background:var(--panel);color:var(--muted);cursor:pointer;flex-shrink:0;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.app-topbar-theme-toggle:hover{color:var(--ink-strong);background:var(--panel-strong);border-color:var(--strong-divider)}.app-topbar-theme-toggle:focus-visible{outline:none;box-shadow:var(--ring)}.lang-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:10px;border:1px solid var(--panel-border);background:var(--panel);font-size:.72rem;font-weight:600;letter-spacing:.04em;flex-shrink:0}.lang-toggle-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);padding:4px 10px;border-radius:7px;cursor:pointer;font:inherit;letter-spacing:inherit;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.lang-toggle-btn:hover{color:var(--ink-strong)}.lang-toggle-btn:focus-visible{outline:none;box-shadow:var(--ring)}.lang-toggle-btn.is-active{background:var(--accent-soft);color:var(--accent-strong)}.lang-toggle--floating{background:#141620b8;border-color:var(--strong-divider);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}.lang-toggle--floating .lang-toggle-btn{color:var(--ink)}.lang-toggle--floating .lang-toggle-btn.is-active{background:#6366f138;color:var(--ink-strong)}.auth-locale-bar{position:absolute;top:clamp(1rem,2vw,1.5rem);right:clamp(1rem,2vw,1.5rem);z-index:2}.app-topbar-user{border:0;padding:0;cursor:pointer;border-radius:999px;transition:box-shadow var(--dur-fast) var(--ease)}.app-topbar-user:hover{box-shadow:0 0 0 3px var(--accent-soft)}.app-topbar-user:focus-visible{outline:none;box-shadow:var(--ring)}.app-topbar-user-pop{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:220px;background:var(--bg-elevated);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);z-index:30;animation:app-topbar-user-pop-in .14s var(--ease)}@keyframes app-topbar-user-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.app-topbar-user-pop-meta{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, var(--radius));background:var(--panel-strong)}.app-topbar-user-pop-label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.app-topbar-user-pop-email{font-size:.825rem;font-weight:500;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.app-topbar-user-pop-action{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:0;background:transparent;border-radius:var(--radius-sm, var(--radius));color:var(--ink-strong);font:inherit;font-size:.85rem;cursor:pointer;text-align:left}.app-topbar-user-pop-action:hover{background:var(--panel-strong)}.app-topbar-user-pop-action:focus-visible{outline:none;box-shadow:var(--ring)}.app-content{grid-area:content;display:flex;flex-direction:column;min-width:0;position:relative}.page-container{width:100%;max-width:1400px;margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-12)}@media (max-width: 720px){.page-container{padding:var(--space-6) var(--space-4) var(--space-10)}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap}.page-header-main{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;flex:1 1 280px}.page-header-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong)}.page-header-title{margin:0;font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:600;letter-spacing:-.025em;color:var(--ink-strong);line-height:1.2}.page-header-description{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55;max-width:60ch}.page-header-actions{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.page-grid{display:flex;flex-direction:column;gap:var(--space-5)}.card{position:relative;background:var(--bg-elevated);border:.6px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:none;padding:var(--space-5) var(--space-6);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.card.is-elevated{background:var(--bg-elevated);box-shadow:0 2px 8px #080f2533}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.card-title{margin:0;font-size:1rem;font-weight:600;color:var(--ink-strong);letter-spacing:-.01em}.card-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--muted)}.card-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.card-body{display:flex;flex-direction:column;gap:var(--space-4)}.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--panel-border)}.app-header{display:flex;flex-direction:column;gap:var(--space-2)}.app-header h1{margin:0;font-size:2rem;letter-spacing:-.025em;font-weight:600;color:var(--ink-strong)}.app-header .tagline{margin:.5rem 0 0;color:var(--muted)}.card h2{margin:0 0 .75rem;font-size:1.1rem;font-weight:600;color:var(--ink-strong);letter-spacing:-.01em}.card ul{margin:0;padding-left:1.25rem;color:var(--muted);line-height:1.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:0 var(--space-4);height:38px;border:1px solid var(--panel-border-strong);border-radius:var(--radius);background:var(--panel);color:var(--ink);font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.btn:hover{border-color:var(--strong-divider);background:var(--panel-strong);color:var(--ink-strong);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{background:var(--accent-gradient);border-color:transparent;color:#fff;box-shadow:0 8px 20px -8px var(--accent-glow),inset 0 1px #ffffff38}.btn.primary:hover{filter:brightness(1.08);box-shadow:0 14px 28px -10px var(--accent-glow),inset 0 1px #ffffff47;color:#fff}.btn.primary:focus-visible{box-shadow:var(--ring),0 8px 20px -8px var(--accent-glow)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--ink-strong);background:var(--panel)}.btn.danger{color:var(--danger);border-color:#f8717166;background:transparent}.btn.danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.icon{width:36px;padding:0;flex-shrink:0}.btn.small{height:30px;padding:0 var(--space-3);font-size:.8125rem}.btn.sm{height:32px;padding:0 var(--space-3);font-size:.8125rem}.btn.lg{height:44px;padding:0 var(--space-5);font-size:.95rem}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2);height:22px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em;border:1px solid var(--panel-border-strong);background:var(--panel);color:var(--muted);white-space:nowrap;text-transform:uppercase}.badge.accent{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent-soft-strong)}.badge.success{color:var(--success);background:var(--success-soft);border-color:#34d3994d}.badge.warn{color:var(--warn);background:var(--warn-soft);border-color:#fbbf244d}.badge.danger{color:var(--danger);background:var(--danger-soft);border-color:#f871714d}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#040509b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:50;padding:var(--space-4);animation:fade-in var(--dur) var(--ease)}.modal{position:relative;background:var(--bg-elevated);border:1px solid var(--panel-border);border-radius:var(--radius-lg);padding:var(--space-6);width:min(480px,100%);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-lg);max-height:calc(100vh - 4rem);overflow:auto;animation:modal-in var(--dur-slow) var(--ease-spring)}.modal header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.modal header h3{margin:0;font-size:1.05rem;color:var(--ink-strong);font-weight:600;letter-spacing:-.01em}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:all var(--dur-fast) var(--ease);font-size:1.2rem;flex-shrink:0}.modal-close:hover{color:var(--ink-strong);background:var(--panel)}.modal-close:focus-visible{outline:none;box-shadow:var(--ring)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.media-lightbox-backdrop{padding:0;align-items:stretch;justify-content:stretch;background:#020306eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.media-lightbox{position:relative;width:100%;height:100%;max-width:none;max-height:none;border-radius:0;border:0;padding:0;display:grid;grid-template-rows:auto 1fr auto;background:transparent;box-shadow:none;overflow:hidden}.media-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:linear-gradient(to bottom,#020306a6,#02030600);color:var(--ink-strong);z-index:2}.media-lightbox-title{font-weight:600;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.media-lightbox-stage{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:0 var(--space-4);min-height:0;position:relative}.media-lightbox-viewport{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;height:100%;overflow:hidden;-webkit-user-select:none;user-select:none}.media-lightbox-image{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center center;transition:transform var(--dur-fast) var(--ease);will-change:transform;-webkit-user-drag:none}.media-lightbox-video{max-width:100%;max-height:100%;outline:none;background:#000;border-radius:var(--radius-md)}.media-lightbox-nav{flex:0 0 auto;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#ffffff14;color:var(--ink-strong);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.media-lightbox-nav:hover{background:#ffffff29}.media-lightbox-nav:focus-visible{outline:none;box-shadow:var(--ring)}.media-lightbox-nav-spacer{flex:0 0 44px;height:44px}.media-lightbox-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:linear-gradient(to top,#020306a6,#02030600);color:var(--ink-strong);z-index:2}.media-lightbox-meta{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.85rem;color:#ffffffc7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-lightbox-actions{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.media-lightbox-actions .btn,.media-lightbox-actions button{background:#ffffff14;color:var(--ink-strong);border-color:#ffffff1f}.media-lightbox-actions .btn:hover,.media-lightbox-actions button:hover{background:#ffffff29}.empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--panel);border:1px solid var(--panel-border);color:var(--muted);margin-bottom:var(--space-2)}.empty-title{margin:0;color:var(--ink-strong);font-weight:600;font-size:1rem}.skeleton{background:linear-gradient(90deg,var(--panel) 0%,var(--panel-strong) 50%,var(--panel) 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite;border-radius:var(--radius);height:1em}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;color:var(--muted);background:var(--panel-strong);border:1px solid var(--panel-border-strong);border-radius:4px;box-shadow:inset 0 -1px #0000004d}.status{margin:0;padding:var(--space-3);background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;color:var(--muted);white-space:pre-wrap;overflow-x:auto}.error{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:.85rem}.auth-shell{position:relative;display:grid;grid-template-columns:1fr;gap:0;min-height:100vh;width:100%;max-width:1280px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem);isolation:isolate}@media (min-width: 960px){.auth-shell{grid-template-columns:1.05fr 1fr;align-items:stretch;gap:clamp(2rem,4vw,4rem);padding:clamp(2rem,5vw,4rem)}}.auth-side{position:relative;display:none;flex-direction:column;justify-content:space-between;align-items:center;padding:clamp(2rem,4vw,3.5rem);border-radius:24px;border:1px solid var(--panel-border);box-shadow:var(--shadow-lg);overflow:hidden;isolation:isolate;background-color:#0f1019;background-image:url(/images/login-hero.png),radial-gradient(120% 80% at 0% 0%,rgba(99,102,241,.35) 0%,transparent 55%),radial-gradient(120% 80% at 100% 100%,rgba(168,85,247,.3) 0%,transparent 55%),linear-gradient(160deg,#1a1c2e,#0f1019);background-repeat:no-repeat;background-position:center center;background-size:cover}.auth-side:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--marker-dot) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%);mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%);opacity:.35;mix-blend-mode:soft-light;pointer-events:none;z-index:0}.auth-side>*{position:relative;z-index:1}@media (min-width: 960px){.auth-side{display:flex}}.auth-brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--ink-strong)}.auth-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}.auth-side-foot{margin-top:2rem;font-size:.82rem;color:var(--muted-soft)}.auth-panel{display:flex;align-items:center;justify-content:center;width:100%}.form-card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:1.1rem;padding:clamp(1.75rem,3vw,2.5rem);background:#141620b8;border:1px solid var(--panel-border);border-radius:20px;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);position:relative;isolation:isolate}.form-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,var(--top-highlight) 0%,var(--grad-stop-mid) 40%,var(--grad-stop-end) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}.form-card-head{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.25rem;align-items:center}.form-card-eyebrow{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;padding:.25rem .6rem;border-radius:999px;background:var(--accent-soft);border:1px solid rgba(99,102,241,.35);font-size:.75rem;font-weight:500;letter-spacing:.02em;color:var(--accent-strong)}.form-card-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-strong);box-shadow:0 0 0 4px #6366f12e}.form-card h2{margin:0;font-size:1.65rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;color:var(--ink-strong)}.form-card-sub{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55}.field{display:flex;flex-direction:column;gap:.45rem;font-size:.9rem}.field-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.field label,.field-label{color:var(--ink);font-weight:500;font-size:.85rem;letter-spacing:.005em}.field-label{display:inline-flex;align-items:center;gap:.4rem}.field-link{margin-left:auto;color:var(--accent-strong);font-size:.82rem;text-decoration:none;font-weight:500;transition:color .16s ease}.field-link:hover{color:var(--ink-strong);text-decoration:underline;text-underline-offset:3px}.field-shell{position:relative;display:flex;align-items:center}.field-icon{position:absolute;left:.9rem;width:16px;height:16px;color:var(--muted);pointer-events:none;transition:color .16s ease}.field input,.field textarea,.field select{width:100%;padding:.65rem .9rem;border:1px solid var(--panel-border-strong);border-radius:var(--radius);background:var(--subtle-tint);color:var(--ink);font:inherit;font-size:.9rem;line-height:1.4;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.field input::placeholder,.field textarea::placeholder{color:var(--muted-soft)}.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--strong-divider);background:var(--hover-tint)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:#818cf899;background:var(--hover-tint-strong);box-shadow:0 0 0 4px #6366f12e}.field input:focus+.field-trailing,.field input:focus~.field-icon,.field:focus-within .field-icon{color:var(--accent-strong)}.field input[aria-invalid=true],.field textarea[aria-invalid=true],.field select[aria-invalid=true]{border-color:#f871718c;background:#f871710a}.field input[aria-invalid=true]:focus,.field textarea[aria-invalid=true]:focus,.field select[aria-invalid=true]:focus{border-color:#f87171cc;box-shadow:0 0 0 4px #f871712e}.field-with-icon input,.field-with-icon textarea{padding-left:2.5rem}.field-with-icon input.has-trailing{padding-right:2.75rem}.field-trailing{position:absolute;right:.55rem;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;transition:color .16s ease,background .16s ease}.field-trailing:hover{color:var(--ink-strong);background:var(--hover-tint-strong)}.field-trailing:focus-visible{outline:none;box-shadow:var(--ring)}.field-error{display:flex;align-items:center;gap:.35rem;color:var(--danger);font-size:.82rem;font-weight:500;animation:shake .32s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.field-hint{color:var(--muted);font-size:.78rem;line-height:1.5}.form-submit{margin-top:.4rem;padding:.78rem 1rem;border-radius:12px;font-size:.95rem;font-weight:600;letter-spacing:.005em}.form-submit[disabled]{background:var(--hover-tint-strong);border-color:var(--panel-border);color:var(--muted);cursor:not-allowed;box-shadow:none}.form-foot{margin:.25rem 0 0;text-align:center;color:var(--muted);font-size:.9rem}.form-foot a{color:var(--accent-strong);text-decoration:none;font-weight:500;transition:color .16s ease}.form-foot a:hover{color:var(--ink-strong);text-decoration:underline;text-underline-offset:3px}.form-fineprint{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--panel-border);text-align:center;font-size:.78rem;color:var(--muted-soft);line-height:1.5}.password-strength{display:flex;gap:4px;margin-top:.4rem}.password-strength span{flex:1;height:4px;border-radius:2px;background:var(--hover-tint-strong);transition:background .2s ease}.password-strength.weak .s1{background:var(--danger)}.password-strength.fair .s1,.password-strength.fair .s2{background:#fbbf24}.password-strength.good .s1,.password-strength.good .s2,.password-strength.good .s3{background:var(--accent-strong)}.password-strength.strong span{background:var(--success)}.upload-zone{display:flex;flex-direction:column;gap:var(--space-4)}.drop-area{border:2px dashed var(--panel-border-strong);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-6);text-align:center;cursor:pointer;background:var(--subtle-tint);color:var(--ink);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.drop-area:hover,.drop-area.dragging{border-color:var(--accent-strong);background:#6366f10f}.drop-area:focus-visible{outline:none;box-shadow:var(--ring)}.drop-title{margin:0;font-weight:600;color:var(--ink-strong);font-size:1rem}.drop-hint{margin:0;font-size:.85rem;color:var(--muted)}.upload-queue{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-md);overflow:hidden}.upload-queue-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--panel-border)}.upload-queue-head strong{font-size:.875rem;color:var(--ink-strong)}.upload-queue ul{list-style:none;margin:0;padding:0}.upload-row{display:grid;grid-template-columns:1fr 140px 90px;gap:var(--space-4);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--panel-border);font-size:.85rem}.upload-row:last-child{border-bottom:none}.upload-row .row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.upload-row .row-bar{background:var(--hover-tint);border-radius:999px;overflow:hidden;height:6px}.upload-row .bar{height:100%;background:linear-gradient(90deg,var(--accent),#a855f7);transition:width 80ms ease;border-radius:inherit}.upload-row.state-ok .bar{background:var(--success)}.upload-row.state-err .bar{background:var(--danger)}.upload-row .row-status{font-size:.78rem;text-align:right;color:var(--muted)}.upload-row.state-err .row-status{color:var(--danger)}.file-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.file-card{background:linear-gradient(180deg,var(--panel-grad-start) 0%,var(--panel-grad-end) 100%);border:1px solid var(--panel-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.file-card:hover{transform:translateY(-2px);border-color:var(--panel-border-strong);box-shadow:var(--shadow-md)}.file-preview{display:block;aspect-ratio:4 / 3;background:#14161d;overflow:hidden;position:relative}button.file-preview{padding:0;border:0;cursor:pointer;width:100%;text-align:left;color:inherit}.file-preview img,.file-preview video{width:100%;height:100%;object-fit:cover;display:block}.file-meta{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.file-name{font-weight:500;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-strong)}.file-info{font-size:.78rem;color:var(--muted)}.file-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.vault-grid{display:grid;grid-template-columns:280px 1fr;gap:var(--space-6);margin-top:var(--space-4)}@media (max-width: 1024px){.vault-grid{grid-template-columns:1fr}}.vault-sidebar{display:flex;flex-direction:column;gap:var(--space-3);position:sticky;top:calc(var(--topbar-height) + var(--space-4));align-self:start}.vault-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.folder-tree-wrap{background:var(--bg-elevated);border:1px solid var(--panel-border);border-radius:var(--radius-md);padding:var(--space-3);max-height:calc(100vh - var(--topbar-height) - var(--space-12));overflow:auto}.folder-tree{list-style:none;margin:0;padding:0}.folder-row{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2);height:32px;border-radius:8px;color:var(--ink)}.folder-row:hover{background:var(--hover-tint)}.folder-row.selected{background:var(--accent-soft);color:var(--ink-strong);border:1px solid var(--accent-soft-strong)}.folder-row.selected .folder-name-btn,.folder-row.selected .folder-action{color:var(--ink-strong)}.folder-toggle{border:0;background:transparent;cursor:pointer;padding:0;width:16px;color:inherit;font-size:.7rem}.folder-name-btn{display:flex;gap:var(--space-2);align-items:center;border:0;background:transparent;cursor:pointer;padding:0;color:inherit;font:inherit;flex:1;overflow:hidden;font-size:.875rem}.folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-icon{font-size:1rem;flex-shrink:0}.folder-action{border:0;background:transparent;cursor:pointer;padding:0 var(--space-2);color:var(--muted);font-size:1.05rem}.folder-action:hover{color:var(--danger)}.folder-create{padding-top:var(--space-2)}.folder-create form{display:flex;gap:var(--space-2);align-items:center}.folder-create input{flex:1;padding:.4rem .65rem;border:1px solid var(--panel-border-strong);border-radius:8px;background:var(--hover-tint);color:var(--ink);font:inherit;font-size:.85rem}.folder-create input:focus{outline:none;border-color:#818cf899;box-shadow:0 0 0 3px #6366f12e}.filter-bar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.filter-bar .search-bar{flex:1 1 240px;padding:.55rem .85rem;border:1px solid var(--panel-border-strong);border-radius:var(--radius);background:var(--hover-tint);color:var(--ink);font:inherit;font-size:.875rem}.filter-bar .search-bar:focus{outline:none;border-color:#818cf899;box-shadow:0 0 0 3px #6366f12e}.filter-kind{display:flex;gap:var(--space-2)}.filter-kind .btn{text-transform:capitalize}.tag-input{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.4rem .5rem;border:1px solid var(--panel-border-strong);border-radius:var(--radius);background:var(--hover-tint);min-height:40px;flex:1 1 280px}.tag-input-field{flex:1;min-width:120px;border:0;outline:none;font:inherit;background:transparent;color:var(--ink);padding:.2rem}.tag-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;background:var(--accent-soft);border:1px solid var(--accent-soft-strong);border-radius:999px;font-size:.8rem;color:var(--accent-strong)}.tag-chip.small{font-size:.72rem;padding:.05rem .45rem}.tag-chip-remove{background:transparent;border:0;cursor:pointer;color:var(--accent-strong);font-size:1rem;padding:0 .1rem;line-height:1}.tag-chip-remove:hover{color:var(--ink-strong)}.tag-suggest{position:absolute;top:100%;left:0;right:0;margin:.25rem 0 0;padding:.25rem 0;list-style:none;background:var(--bg-elevated);border:1px solid var(--panel-border);border-radius:var(--radius);z-index:20;max-height:200px;overflow:auto;box-shadow:var(--shadow-md)}.tag-suggest li button{width:100%;text-align:left;background:transparent;border:0;padding:.4rem .65rem;font:inherit;cursor:pointer;color:var(--ink);font-size:.875rem}.tag-suggest li button:hover{background:var(--hover-tint)}.file-tags{display:flex;flex-wrap:wrap;gap:.3rem}.share-result input{width:100%;padding:.6rem .75rem;border:1px solid var(--panel-border-strong);border-radius:var(--radius);background:var(--hover-tint);color:var(--ink);font:inherit;font-size:.875rem}.row{display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}.public-shell{max-width:880px;margin:0 auto;padding:3rem 1.5rem 6rem}.public-shell header h1{margin:0;font-size:1.5rem;color:var(--ink-strong)}.public-shell .card img,.public-shell .card video{max-width:100%;height:auto;border-radius:8px}:root{--toast-bg: rgba(20, 22, 32, .92);--toast-color: #f4f4f6}.app-mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:40;animation:fade-in var(--dur) var(--ease);display:none}.app-mobile-drawer-backdrop.is-open{display:block}@media (max-width: 900px){.app-mobile-drawer .app-sidebar{display:flex;position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);z-index:45;transform:translate(-100%);transition:transform var(--dur) var(--ease)}.app-mobile-drawer.is-open .app-sidebar{transform:translate(0)}}@media (max-width: 720px){.app-topbar{padding:0 var(--space-4)}.app-topbar-actions{margin-left:auto}.app-topbar-search{display:none}.page-header{gap:var(--space-3)}.card{padding:var(--space-4) var(--space-5)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app-nav{display:none}.home-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media (max-width: 720px){.home-stats-grid{grid-template-columns:1fr}}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.activity-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);font-size:.875rem}.activity-row-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--accent, #7c5cff)}.activity-summary{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-time{color:var(--muted);font-size:.78rem;white-space:nowrap}.home-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.home-skeleton-grid .skeleton{aspect-ratio:4 / 3}.gallery-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.gallery-toolbar>*{min-width:0}.gallery-search{flex:1 1 240px;min-width:200px;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);height:36px;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);color:var(--ink);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.gallery-search:hover{border-color:var(--strong-divider);background:var(--panel-strong)}.gallery-search:focus-within{border-color:#818cf880;background:var(--panel-strong);box-shadow:0 0 0 4px #6366f124}.gallery-search-icon{flex-shrink:0;width:16px;height:16px;color:var(--muted);transition:color var(--dur-fast) var(--ease)}.gallery-search:focus-within .gallery-search-icon{color:var(--accent-strong)}.gallery-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:.875rem;padding:0;height:100%}.gallery-search input::placeholder{color:var(--muted-soft)}.gallery-search input::-webkit-search-cancel-button,.gallery-search input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.gallery-search-clear{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.gallery-search-clear:hover{color:var(--ink-strong);background:var(--hover-tint-strong)}.gallery-search-clear:focus-visible{outline:none;box-shadow:var(--ring)}.gallery-kind-toggle{display:inline-flex;gap:var(--space-1);padding:2px;background:var(--hover-tint);border-radius:var(--radius);border:1px solid var(--panel-border)}.gallery-kind-toggle .btn{border:0}.gallery-view-toggle{display:inline-flex;gap:var(--space-1)}.gallery-view-toggle .btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-soft-strong);color:var(--accent-strong)}.gallery-popover-anchor{position:relative}.btn.album-sort-trigger{height:36px}.gallery-popover{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:var(--bg-elevated);border:1px solid var(--panel-border-strong);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-lg);z-index:20}.gallery-popover .field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-3)}.gallery-popover .field:last-child{margin-bottom:0}.gallery-popover-row{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:0;color:var(--ink);text-align:left;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font:inherit}.gallery-popover-row:hover{background:var(--panel)}.gallery-popover-row.is-active{color:var(--accent-strong)}[data-gallery-surface]{margin-top:var(--space-4)}.gallery-card{position:relative;background:linear-gradient(180deg,var(--panel-grad-start) 0%,var(--panel-grad-end) 100%);border:1px solid var(--panel-border);border-radius:var(--radius-md);overflow:hidden;transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);cursor:pointer;list-style:none}.gallery-card:hover{transform:translateY(-2px);border-color:var(--panel-border-strong);box-shadow:var(--shadow-md)}.gallery-card.is-selected{border-color:var(--accent-strong);box-shadow:0 0 0 2px var(--accent-soft-strong),var(--shadow-md)}.gallery-card-preview{display:block;aspect-ratio:4 / 3;background:#14161d;overflow:hidden}button.gallery-card-preview{padding:0;border:0;cursor:pointer;width:100%;text-align:left;color:inherit;font:inherit}.gallery-card-preview img,.gallery-card-preview video{width:100%;height:100%;object-fit:cover;display:block}.gallery-card-check{position:absolute;top:8px;left:8px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-strong);color:#fff;box-shadow:0 2px 8px #0006}.gallery-card-meta{padding:var(--space-3) var(--space-4)}.gallery-card-name{font-weight:500;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-strong)}.gallery-card-info{font-size:.78rem;color:var(--muted)}.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.gallery-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.gallery-list .variant-list{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:var(--space-3)}.gallery-list .variant-list .gallery-card-preview{aspect-ratio:4 / 3;width:80px;height:60px}.gallery-list .variant-list .gallery-card-meta{padding:0}.gallery-timeline{display:flex;flex-direction:column;gap:var(--space-6)}.gallery-timeline-day-head{position:sticky;top:calc(var(--topbar-height) + 64px);z-index:4;background:var(--bg);padding:var(--space-2) 0;margin:0;font-size:.85rem;font-weight:600;color:var(--ink-strong);border-bottom:1px solid var(--hairline)}.gallery-timeline-day-list{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.bulk-action-bar{position:sticky;bottom:0;z-index:6;margin-top:var(--space-4);background:linear-gradient(180deg,var(--bg-elevated) 0%,rgba(13,15,21,.95) 100%);border:1px solid var(--accent-soft-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:bulk-bar-in .14s var(--ease)}.bulk-action-bar-inner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-3);flex-wrap:wrap}.bulk-action-bar-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@keyframes bulk-bar-in{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){.bulk-action-bar{animation:none}}
