@font-face{font-family:NSC Favorit Mono;src:url(/fonts/NSCFavoritMono-Regular.otf) format("opentype");font-weight:400;font-display:swap}:root{--red: #E84500;--red-hover: #FF5A14;--green: #00FF00;--yellow: #E3FF00;--bg: #0A0A0A;--surface: #121212;--surface-2: #1A1A1A;--line: #262626;--line-strong: #353535;--text: #F2F2F2;--muted: #9A9A9A;--faint: #6B6B6B;--fresh: #2FD36B;--aging: #E3C500;--stale: #E84500;--radius: 10px;--radius-sm: 7px;--sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "NSC Favorit Mono", ui-monospace, "SF Mono", Menlo, monospace;--max: 1440px;--gutter: 32px;color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}#app{display:flex;flex-direction:column;min-height:100vh}main{flex:1;width:100%;max-width:var(--max);margin:0 auto;padding:36px var(--gutter) 64px}button{font:inherit;color:inherit}.hidden{display:none!important}.ic{display:inline-flex;width:16px;height:16px;flex:none}.ic svg{width:100%;height:100%}.topbar{position:sticky;top:0;z-index:50;background:#0a0a0ad1;backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line)}.topbar:before{content:"";display:block;height:3px;background:var(--red)}.topbar-inner{max-width:var(--max);margin:0 auto;height:64px;padding:0 var(--gutter);display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none}.brand img{height:34px;width:auto;display:block}.main-nav{display:flex;gap:4px;height:100%}.nav-link{background:none;border:none;color:var(--muted);font-weight:600;font-size:14px;padding:0 14px;cursor:pointer;position:relative;transition:color .15s}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--red)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.status{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);white-space:nowrap}.dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}.dot.fresh,.fresh .dot{background:var(--fresh);box-shadow:0 0 0 3px #2fd36b26}.dot.stale,.stale .dot{background:var(--stale)}.aging .dot{background:var(--aging)}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.icon-btn:hover{color:var(--text);border-color:var(--line-strong)}.icon-btn.danger:hover{color:#fff;background:var(--red);border-color:var(--red)}.icon-btn.spin .ic{animation:spin .6s linear}@keyframes spin{to{transform:rotate(360deg)}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px}.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:8px}h1{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.lede{color:var(--muted);font-size:15px;margin-top:8px;max-width:560px}.stats{display:grid;grid-template-columns:repeat(4,auto);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:none}.stat{padding:12px 20px;min-width:108px}.stat+.stat{border-left:1px solid var(--line)}.stat-value{font-size:20px;font-weight:700;letter-spacing:-.01em}.stat-label{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap}.toolbar{position:sticky;top:67px;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;margin-bottom:20px;background:var(--bg);border-bottom:1px solid var(--line)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:all .15s}.chip:hover{color:var(--text);border-color:var(--line-strong)}.chip.active{color:#fff;background:var(--red);border-color:var(--red)}.chip .count{font-family:var(--mono);font-size:11px;opacity:.75}.search,.select{display:flex;align-items:center;gap:8px;padding:0 12px;height:36px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--faint);transition:border-color .15s}.search{width:260px}.search:focus-within,.select:focus-within{border-color:var(--red)}.search input,.select select{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit}.select select{cursor:pointer;padding-right:4px}.select select option{background:var(--surface)}.library-body,.archive-body{display:flex;flex-direction:column;gap:44px}.group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.group-head h2{font-size:18px;font-weight:700;letter-spacing:-.01em}.group-head h2:before{content:"";display:inline-block;width:4px;height:14px;background:var(--red);margin-right:10px;border-radius:2px}.group-count{font-size:13px;color:var(--faint)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.grid-sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:var(--surface);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}.card:hover{border-color:var(--line-strong)}.thumb{position:relative;display:block;width:100%;aspect-ratio:1 / 1;background:#000;border:none;border-bottom:1px solid var(--line);cursor:zoom-in;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain;display:block}.thumb-hover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:13px;background:#0000008c;opacity:0;transition:opacity .2s}.thumb:hover .thumb-hover,.thumb:focus-visible .thumb-hover{opacity:1}.thumb.pending{display:flex;align-items:center;justify-content:center;cursor:default;background:repeating-linear-gradient(-45deg,transparent 0 14px,rgba(255,255,255,.02) 14px 28px),#0d0d0d;color:var(--faint);font-size:13px}.badge{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;padding:3px 7px;border-radius:4px;background:#0a0a0ad9;border:1px solid var(--red);color:var(--red)}.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}.card-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px}.cat{display:inline-flex;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.age{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.card h3{font-size:15.5px;font-weight:650;letter-spacing:-.005em;line-height:1.3}.card-actions{display:flex;gap:8px;margin-top:auto;padding-top:10px}.card-actions .btn{flex:1}.card.skeleton{pointer-events:none}.card.skeleton .thumb,.card.skeleton .card-body{cursor:default}.card.skeleton .card-body{min-height:96px}.card.skeleton .thumb,.card.skeleton .card-body{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.tag{font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:2px 6px;margin-left:8px;border-radius:4px;border:1px solid var(--red);color:var(--red);vertical-align:1px}.card-actions .btn.ghost:hover{background:var(--red);border-color:var(--red);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;font-size:13.5px;font-weight:600;text-decoration:none;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn.sm{height:34px;padding:0 12px;font-size:13px}.btn.primary{background:var(--red);color:#fff}.btn.primary:hover{background:var(--red-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary:disabled:hover{background:var(--red)}.btn.ghost{background:var(--surface-2);color:var(--text);border-color:var(--line-strong)}.btn.ghost:hover{border-color:var(--muted)}.frame{background:var(--surface);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}.frame-thumb{position:relative;display:block;aspect-ratio:1 / 1;background:#000;border-bottom:1px solid var(--line)}.frame-thumb img{width:100%;height:100%;object-fit:contain;display:block}.frame-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px}.frame-title{font-weight:650;font-size:14px}.frame-time{font-size:12px;color:var(--muted)}.frame-actions{display:flex;gap:8px;margin-top:10px}.frame-actions .btn{flex:1}.empty{color:var(--muted);padding:64px 0;text-align:center;border:1px dashed var(--line);border-radius:var(--radius)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#000000e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;grid-template-columns:1fr 340px}.lb-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:40px 72px;min-height:0}.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 60px #0009}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#1e1e1ee6;border:1px solid var(--line-strong);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}.lb-nav:hover{background:var(--red);border-color:var(--red)}.lb-nav.prev{left:16px}.lb-nav.next{right:16px}.lb-nav .ic{width:20px;height:20px}.lb-panel{background:var(--surface);border-left:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.lb-top{display:flex;justify-content:space-between;align-items:center}.lb-top .eyebrow{margin:0}.lb-panel h3{font-size:22px;font-weight:700;letter-spacing:-.015em;line-height:1.2}.lb-meta{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.meta-row{display:flex;justify-content:space-between;gap:12px;font-size:13px}.meta-row span:first-child{color:var(--muted)}.lb-actions{display:flex;flex-direction:column;gap:8px}.lb-hint{margin-top:auto;font-size:12px;color:var(--faint)}.footer{border-top:1px solid var(--line)}.footer-inner{max-width:var(--max);margin:0 auto;padding:20px var(--gutter);display:flex;justify-content:space-between;gap:16px;font-size:12.5px;color:var(--muted)}.muted{color:var(--faint)}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(ellipse at top,rgba(232,69,0,.12),transparent 60%),var(--bg)}.login-box{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:36px 32px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px #00000080}.login-box .lockup{width:220px;max-width:80%;margin:0 auto}.login-sub{text-align:center;font-family:var(--mono);font-size:11.5px;letter-spacing:.24em;color:var(--red);margin-bottom:10px}.login-box input{height:42px;padding:0 14px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none}.login-box input:focus{border-color:var(--red)}.login-box .btn{height:42px}.login-box .err{color:var(--yellow);font-size:12.5px;min-height:16px;text-align:center}@media(max-width:1100px){.page-head{flex-direction:column;align-items:flex-start}.lightbox{grid-template-columns:1fr;grid-template-rows:1fr auto}.lb-panel{border-left:none;border-top:1px solid var(--line);max-height:45vh}.lb-hint{display:none}}@media(max-width:760px){:root{--gutter: 16px}main{padding-top:24px}.topbar-inner{gap:16px;height:56px}.brand img{height:24px}.status-text{display:none}.status{padding:8px}.toolbar{top:59px;flex-direction:column;align-items:stretch}.chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.chip{flex:none}.search{width:100%}h1{font-size:24px}.stats{grid-template-columns:repeat(2,1fr);width:100%}.stat:nth-child(3){border-left:none}.stat:nth-child(n+3){border-top:1px solid var(--line)}.grid{grid-template-columns:1fr}.grid-sm{grid-template-columns:repeat(2,1fr);gap:10px}.lb-stage{padding:16px 52px}.lb-nav{width:36px;height:36px}.lb-nav.prev{left:8px}.lb-nav.next{right:8px}.footer-inner{flex-direction:column;gap:4px}}body.wide main{max-width:1680px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;animation:spin .7s linear infinite;flex:none}.fc-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}.fc-main{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto;display:flex;flex-direction:column;gap:12px}.fc-preview{position:relative;background:#050505;border:1px solid var(--line);overflow:hidden;aspect-ratio:2087 / 1440;-webkit-user-select:none;user-select:none}.fc-stage{position:relative;width:100%;cursor:grab;touch-action:none}.fc-stage.panning{cursor:grabbing}.fc-img{display:block;width:100%;pointer-events:none}.fc-img:not([src]){visibility:hidden}.fc-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.ell-ui{opacity:0;transition:opacity .15s}.fc-preview:hover .ell-ui,.fc-stage.editing .ell-ui{opacity:1}.ell-body{fill:transparent;stroke:#fff;stroke-width:3;stroke-dasharray:14 10;cursor:move;vector-effect:non-scaling-stroke}.ell-handle{fill:#fff;stroke:var(--red);stroke-width:5;cursor:pointer}.ell-handle.move{cursor:move;fill:var(--red);stroke:#fff}.fc-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:24px;background:radial-gradient(ellipse at center,rgba(232,69,0,.08),transparent 70%);pointer-events:none}.fc-empty h2{font-size:22px;font-weight:700;letter-spacing:-.01em}.fc-empty p{color:var(--muted);max-width:460px}.fc-busy{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;background:#0a0a0ad9;border:1px solid var(--line-strong);border-radius:999px}.fc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:26px}.fc-chip{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--text);white-space:nowrap}.fc-time{margin-left:auto;font-size:12px;color:var(--muted)}.fc-hint{font-size:12px;color:var(--faint)}.fc-actions{display:flex;gap:10px}.fc-toast{align-self:flex-start;display:flex;gap:12px;align-items:center;padding:9px 14px;font-size:13px;background:var(--surface-2);border:1px solid var(--line-strong);border-left:3px solid var(--red)}.fc-toast a{color:var(--red);font-weight:600}.fc-panel{display:flex;flex-direction:column;gap:14px}.fc-card{background:var(--surface);border:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:12px}.fc-card-h,.fc-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:400}.fc-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted)}.fc-panel textarea,.fc-panel input[type=text],.fc-panel select{width:100%;font:inherit;font-size:13.5px;color:var(--text);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;outline:none;resize:vertical}.fc-panel select{height:36px;padding:0 8px;cursor:pointer}.fc-panel textarea:focus,.fc-panel input:focus,.fc-panel select:focus{border-color:var(--red)}.fc-prompt{min-height:72px}.fc-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fc-note{font-size:12px;color:var(--faint);line-height:1.4}.fc-inline{display:flex;gap:6px;align-items:center}.fc-inline input[type=number]{width:72px}.icon-btn.sm{width:30px;height:30px;flex:none}.fc-check{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--text);cursor:pointer}.fc-check input{accent-color:var(--red);width:15px;height:15px}.fc-panel input[type=range]{accent-color:var(--red);width:100%}.seg{display:flex;flex-wrap:wrap;gap:4px}.seg button{font-size:12.5px;font-weight:600;padding:6px 10px;background:var(--bg);color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer}.seg button:hover{color:var(--text)}.seg button.active{background:var(--red);border-color:var(--red);color:#fff}.fc-steps{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--faint)}.fc-steps li{display:flex;align-items:center;gap:8px}.fc-steps li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line-strong);flex:none}.fc-steps li.done{color:var(--muted)}.fc-steps li.done:before{background:var(--fresh)}.fc-steps li.now{color:var(--text)}.fc-steps li.now:before{background:var(--red);animation:pulse 1s ease-in-out infinite}.fc-steps li.fail{color:var(--yellow)}.fc-steps li.fail:before{background:var(--yellow)}@keyframes pulse{50%{opacity:.3}}.fc-summary{font-size:13px;color:var(--text);display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}.fc-sources{display:flex;flex-wrap:wrap;gap:6px}.fc-details summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.fc-src{max-height:360px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.45;color:var(--muted)}@media(max-width:1100px){.fc-layout{grid-template-columns:1fr}.fc-main{position:static}}
