@font-face{font-family:Azonix;src:url(/fonts/Azonix.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:light;--bg: #faf9fd;--surface: #ffffff;--surface-2: #f3f0fa;--ink: #1a1523;--muted: #655d75;--border: #e5e0f0;--accent: #6a2cf0;--accent-hover: #5a1fdc;--accent-ink: #ffffff;--accent-soft: #efe7ff;--accent-soft-ink: #4a17b8;--danger: #c0271f;--danger-soft: #fdecea;--warning-bg: #fff6e0;--warning-ink: #6b4a00;--glow-a: rgba(155, 92, 255, .2);--glow-b: rgba(249, 168, 255, .22);--scrim: rgba(22, 16, 34, .55);--shadow: 0 1px 2px rgba(40, 20, 80, .06), 0 12px 32px rgba(40, 20, 80, .1);--radius-sm: 8px;--radius: 14px;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-logo: "Azonix", var(--font-ui)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #110f16;--surface: #1b1823;--surface-2: #25212f;--ink: #ece8f5;--muted: #a39bb3;--border: #322c40;--accent: #a98bff;--accent-hover: #bda6ff;--accent-ink: #1a0b40;--accent-soft: #2d2247;--accent-soft-ink: #d5c6ff;--danger: #ff8a80;--danger-soft: #45191a;--warning-bg: #3a2f10;--warning-ink: #ffdf8a;--glow-a: rgba(140, 90, 255, .22);--glow-b: rgba(230, 120, 255, .12);--scrim: rgba(0, 0, 0, .7);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .45)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--ink);background:var(--bg);font-family:var(--font-ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{width:1.25rem;height:1.25rem;flex-shrink:0;fill:currentColor}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.5rem;padding:0 1rem;border:1px solid transparent;border-radius:999px;background:transparent;font-weight:600;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{border-color:var(--border);background:var(--surface)}.btn-secondary:hover,.btn-ghost:hover,.btn-icon:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:var(--surface)}.btn-link{min-height:0;padding:.25rem .5rem;color:var(--muted);font-weight:500}.btn-link:hover{color:var(--ink)}.btn-icon{width:2.5rem;padding:0}.btn-block{width:100%}.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:2rem 1.25rem;background:radial-gradient(720px 420px at 50% -10%,var(--glow-a),transparent 65%),radial-gradient(560px 360px at 85% 105%,var(--glow-b),transparent 60%),var(--bg)}.auth-card{width:100%;max-width:22rem;display:grid;justify-items:center;gap:.4rem;text-align:center;animation:rise .36s ease both}.auth-mark{width:5rem;height:5rem;object-fit:contain}.auth-heading{margin:.5rem 0 0;font-size:1.35rem;font-weight:650;letter-spacing:-.01em}.auth-subtitle{margin:0 0 1rem;color:var(--muted);text-wrap:balance}.auth-form{width:100%;display:grid;gap:.85rem;text-align:left}.field{display:grid;gap:.35rem}.field label{font-size:.85rem;font-weight:600}.field-control{position:relative}.field-control input{width:100%;height:2.75rem;padding:0 2.75rem 0 .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.field-control input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-toggle{position:absolute;inset:0 0 0 auto;width:2.75rem;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted)}.auth-warning{margin:0;padding:.65rem .8rem;border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning-ink);font-size:.85rem}.auth-error{margin:0;color:var(--danger);font-weight:500}.auth-card>.btn-link{margin-top:.5rem}.app{min-height:100vh}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.5rem}.brand-mark{width:2rem;height:2rem;object-fit:contain}.brand-text{font-family:var(--font-logo);font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase}.search{flex:1;max-width:28rem;display:flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 .9rem;border:1px solid transparent;border-radius:999px;background:var(--surface-2);color:var(--muted)}.search:focus-within{border-color:var(--accent);background:var(--surface)}.search-input{flex:1;min-width:0;border:0;outline:none;background:none;color:var(--ink)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}.app-main{max-width:90rem;margin:0 auto;padding:1rem 1.25rem 5rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.chips{display:flex;gap:.4rem}.chip{height:2rem;padding:0 .9rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:550}.chip:hover{color:var(--ink)}.chip.is-active{border-color:transparent;background:var(--accent-soft);color:var(--accent-soft-ink)}.summary{margin:0;display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.85rem}.summary .icon{width:1rem;height:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.9rem}.tile{display:grid;gap:.1rem;padding:0;border:0;background:none;text-align:left;min-width:0}.tile-thumb{position:relative;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;margin-bottom:.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);transition:border-color .12s ease,transform .12s ease}.tile:hover .tile-thumb{border-color:var(--accent);transform:translateY(-1px)}.tile-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;animation:fade .2s ease both}.tile-icon{width:2rem;height:2rem}.tile-badge{position:absolute;right:.5rem;bottom:.5rem;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#0009;color:#fff}.tile-badge .icon{width:.9rem;height:.9rem}.tile:not(.has-thumb) .tile-badge{display:none}.tile-name{overflow:hidden;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.tile-meta{color:var(--muted);font-size:.8rem}.empty{display:grid;justify-items:center;gap:.25rem;padding:4rem 1rem;text-align:center}.empty-mark{width:6rem;height:6rem;object-fit:contain;opacity:.9}.empty h2{margin:.5rem 0 0;font-size:1.15rem}.empty p{max-width:26rem;margin:0;color:var(--muted)}.progress{height:4px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.progress-bar{width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .16s ease}.upload-panel{position:fixed;right:1.25rem;bottom:1.25rem;z-index:20;width:min(22rem,calc(100vw - 2.5rem));display:grid;gap:.6rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.upload-status{margin:0;overflow:hidden;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:none;place-items:center;background:var(--scrim);pointer-events:none}.drop-overlay.is-active{display:grid}.drop-card{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.5rem;border:2px dashed var(--accent);border-radius:var(--radius);background:var(--surface);font-size:1rem}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-rows:auto 1fr;background:#0b0a0f;color:#f1eef8;animation:fade .16s ease both}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .9rem .6rem 1.25rem}.viewer-title{display:grid;min-width:0}.viewer-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-title span{color:#a39bb3;font-size:.8rem}.viewer-actions{display:flex;gap:.25rem}.viewer .btn-icon:hover:not(:disabled){background:#ffffff1f}.viewer-stage{min-height:0;display:grid;place-items:center;padding:0 1rem 1rem}.viewer-media{max-width:100%;max-height:100%;min-height:0;object-fit:contain;border-radius:var(--radius-sm)}.viewer-loading{width:min(18rem,80vw);display:grid;gap:.75rem;text-align:center}.viewer-loading .progress{background:#ffffff24}.viewer-loading .progress-bar{background:#a98bff}.viewer-status{margin:0;color:#a39bb3}.viewer-status.is-error{color:#ff8a80}.viewer-file{display:grid;justify-items:center;gap:.75rem;color:#a39bb3}.viewer-file p{margin:0}.viewer-file-icon{width:3.5rem;height:3.5rem}.viewer-file .btn-primary{background:#a98bff;color:#1a0b40}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:var(--scrim);animation:fade .14s ease both}.modal{width:100%;max-width:24rem;padding:1.35rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.modal-title{margin:0 0 .4rem;font-size:1.1rem}.modal-message{margin:0 0 1.25rem;color:var(--muted);overflow-wrap:anywhere}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.toast-stack{position:fixed;left:50%;bottom:1.25rem;z-index:60;display:grid;gap:.5rem;transform:translate(-50%)}.toast{max-width:min(28rem,calc(100vw - 2.5rem));padding:.7rem 1rem;border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);box-shadow:var(--shadow);overflow-wrap:anywhere;animation:rise .2s ease both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:640px){.app-header{flex-wrap:wrap;gap:.6rem;padding:.6rem .9rem}.search{order:3;flex-basis:100%;max-width:none}.btn-compact .btn-label,.btn-secondary .btn-label{display:none}.btn-compact,.header-actions .btn-secondary{width:2.5rem;padding:0}.app-main{padding:.9rem .9rem 5rem}.grid{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.6rem}}
