:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:light dark;--bg: light-dark(#f6f7f9, #131417);--surface: light-dark(#ffffff, #1c1d21);--surface-2: light-dark(#eef0f3, #26272c);--border: light-dark(#e4e6ea, #33353b);--border-strong: light-dark(#d7d9df, #3d3f45);--success-border: light-dark(#a6d5b8, #2f6b45);--frame-bg: light-dark(#e6e8ec, #23252a);--frame-text: light-dark(#8b919c, #7b818c);--star-off: light-dark(#a6abb5, #6f747e);--text: light-dark(#1b1d22, #e8e9ec);--text-muted: light-dark(#69707c, #9aa0ab);--accent: light-dark(#4f46e5, #818cf8);--accent-hover: light-dark(#4338ca, #a5b0fb);--accent-soft: light-dark(#eceefc, #272a41);--on-accent: light-dark(#ffffff, #16171b);--success: light-dark(#15803d, #4ade80);--success-soft: light-dark(#e9f7ef, #16301f);--danger: light-dark(#dc2626, #f87171);--danger-soft: light-dark(#fdeded, #3a1b1b);--warning: light-dark(#b45309, #fbbf24);--warning-soft: light-dark(#fdf3e2, #362a13);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow-1: 0 1px 2px rgb(0 0 0 / 6%), 0 1px 3px rgb(0 0 0 / 8%);--shadow-2: 0 6px 16px rgb(0 0 0 / 14%)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1{font-size:1.45rem;letter-spacing:-.01em;margin:.5rem 0 1rem}h2{font-size:1.05rem;margin:1.5rem 0 .5rem}.app>header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.25rem;padding:.65rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.app header .brand{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;text-decoration:none;color:inherit}.app header .brand svg{color:var(--accent)}.app header nav{display:flex;gap:.35rem}.app header nav a{text-decoration:none;color:var(--text-muted);padding:.3rem .7rem;border-radius:var(--r-sm);font-size:.9rem;font-weight:500}.app header nav a:hover{color:var(--text);background:var(--surface-2)}.app header nav a[aria-current=page]{color:var(--accent);background:var(--accent-soft)}main{padding:1.5rem 1.25rem 3rem;max-width:1200px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.page-head h1{margin:0}button{font:inherit;font-size:.875rem;font-weight:500;padding:.42rem .85rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}button:hover:not(:disabled){background:var(--surface-2)}button:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);border-color:transparent;color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-success{background:var(--success-soft);border-color:transparent;color:var(--success)}.btn-success:hover:not(:disabled){background:color-mix(in srgb,var(--success) 22%,var(--success-soft))}.btn-danger{background:transparent;border-color:transparent;color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}input,select,textarea{font:inherit;font-size:.875rem;padding:.42rem .6rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:1px}::placeholder{color:var(--text-muted)}input[type=checkbox]{accent-color:var(--accent);width:auto;padding:0}label.check{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem}.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;line-height:1;padding:.28rem .6rem;border-radius:999px;background:var(--surface-2);color:var(--text-muted)}.chip code{font-family:inherit;font-size:inherit}.chip-muted{background:var(--surface-2);color:var(--text-muted)}.chip-accent{background:var(--accent-soft);color:var(--accent)}.chip-success{background:var(--success-soft);color:var(--success)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.chip-warning{background:var(--warning-soft);color:var(--warning)}.spinner{width:.7em;height:.7em;flex:none;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%,to{opacity:.45}50%{opacity:.85}}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1rem}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:.9rem;text-decoration:none;color:inherit;box-shadow:var(--shadow-1)}.card h2{margin:0 0 .25rem}.card p{margin:.15rem 0;color:var(--text-muted);font-size:.875rem}.room-card{transition:transform .12s,box-shadow .12s}.room-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.item-card{position:relative}.item-card h3{margin:.65rem 0 .1rem;font-size:.95rem}.item-card p{margin:.15rem 0;font-size:.875rem}.item-card .sub,.item-card .meta{font-size:.82rem;color:var(--text-muted)}.item-card .value-row{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.item-card .value-row strong{font-size:.875rem;font-weight:700;color:var(--text)}.item-card .serial{font-family:ui-monospace,monospace;font-size:.8rem;color:var(--text-muted)}.item-card.status-rejected{opacity:.45}.status-badge{position:absolute;top:1.35rem;left:1.35rem;box-shadow:var(--shadow-1)}.ai-chip{vertical-align:middle;margin-left:.3rem}.actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;align-items:center}.actions select{max-width:100%}.edit-form{display:flex;flex-direction:column;gap:.4rem;margin-top:.6rem}.error{background:var(--danger-soft);color:var(--danger);padding:.6rem .9rem;border-radius:var(--r-md);font-size:.9rem;margin:.75rem 0}.error-text{color:var(--danger);font-size:.85rem}.hint{font-size:.8rem;font-weight:400;color:var(--text-muted);margin:.3rem 0}.empty{margin-top:1rem;padding:2.5rem 1rem;border:1px dashed var(--border);border-radius:var(--r-lg);text-align:center;color:var(--text-muted);font-size:.95rem}.settings{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;margin:.75rem 0;padding:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-1)}.settings label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:500;color:var(--text-muted)}.new-room{display:flex;gap:.6rem;margin:.75rem 0;flex-wrap:wrap}.new-room input{min-width:240px}.review-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.25rem}.toolbar-hint{margin-left:auto;font-size:.78rem;color:var(--text-muted)}.toolbar-hint kbd{font-size:.68rem;padding:2px 5px;min-width:0}.room-checks{display:flex;flex-direction:column;gap:.35rem;margin-left:1.5rem}.videos{margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem}.drop-zone{border:2px dashed var(--border);border-radius:var(--r-lg);padding:1.4rem 1rem;text-align:center;cursor:pointer;color:var(--text);font-size:.95rem;font-weight:500;background:var(--surface);transition:border-color .12s,background .12s;display:flex;flex-direction:column;gap:.3rem;align-items:center}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.video-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.video-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.55rem .8rem;font-size:.875rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.video-row .name{font-weight:500;overflow-wrap:anywhere}.video-meta{font-size:.82rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.video-pill{margin-left:auto}.export-card{max-width:560px;padding:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.export-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;max-width:560px}.export-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.55rem .8rem;font-size:.875rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.flag-btn{position:absolute;top:1.35rem;right:1.35rem;background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted);line-height:1;box-shadow:var(--shadow-1);border-radius:999px;padding:.15rem .4rem}.flag-btn.flagged{color:var(--warning)}.hv-room h2{margin:1.25rem 0 .5rem}.hv-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.hv-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.hv-toggle{display:flex;align-items:center;gap:.6rem;width:100%;padding:.7rem 1rem;background:none;border:none;cursor:pointer;text-align:left;color:inherit;font:inherit}.page-intro{max-width:620px;font-size:.875rem;color:var(--text-muted);line-height:1.5}.hv-caret{color:var(--text-muted);font-size:.75rem;width:.75rem;flex:none}.hv-sub{font-size:.8125rem;color:var(--text-muted);overflow-wrap:anywhere}.hv-chips{margin-left:auto;display:flex;gap:.35rem;flex-wrap:wrap}.detail-panel{padding:.75rem 1rem 1rem;border-top:1px solid var(--border)}.photo-strip{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.5rem}.photo-strip figure{margin:0}.photo-strip img{height:120px;border-radius:var(--r-sm);display:block}.photo-strip figcaption{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-muted)}.extract-note{margin:.4rem 0 0;max-width:46ch;font-size:.8rem;color:var(--text-muted);line-height:1.45}.suggestions{margin-top:.75rem;border-collapse:collapse;width:100%;max-width:640px;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.suggestions thead th{background:var(--surface-2);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.suggestions th{text-align:left;padding:.4rem .75rem;color:var(--text-muted)}.suggestions td{padding:.4rem .75rem;font-size:.84rem}.suggestions tbody tr{border-top:1px solid var(--border)}.suggestions td.current{color:var(--text-muted)}.suggestions td.suggested{font-weight:600}.suggestions td.suggested.mono{font-family:ui-monospace,monospace}.suggestions td.suggested.illegible{font-weight:400;color:var(--text-muted)}.saved-flag{color:var(--success);font-size:.8rem;font-weight:600;white-space:nowrap}.name-editor{display:flex;align-items:center;gap:.4rem;min-width:0}.name-editor .rename-btn{font-size:.85rem;padding:.15rem .45rem}.name-editor input{flex:1;min-width:0;font-weight:600;padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}.name-editor .editor-error{color:var(--danger);font-size:.8rem}.room-card .rename-btn{opacity:0;transition:opacity .12s}.room-card:hover .rename-btn,.room-card:focus-within .rename-btn{opacity:1}.page-sub{margin:-.4rem 0 1.2rem;color:var(--text-muted);font-size:.875rem}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{display:flex;flex-direction:column;gap:.625rem;padding:1rem}.stat-num{font-size:1.875rem;font-weight:700;letter-spacing:-.02em}.stat-sub{font-size:.8125rem;color:var(--text-muted)}.stat-card.stat-warn{background:var(--warning-soft);border-color:light-dark(#f0dcb8,#4d3a17)}.stat-card.stat-warn .stat-sub{color:light-dark(#8a5a20,#e7c17a)}.btn-warn-outline{align-self:flex-start;text-decoration:none;font-size:.875rem;font-weight:500;padding:.42rem .85rem;border:1px solid var(--warning);border-radius:var(--r-sm);color:var(--warning)}.btn-warn-outline:hover{background:color-mix(in srgb,var(--warning) 12%,transparent)}.progress{display:flex;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-fill{height:100%}.progress-fill.success{background:var(--success)}.progress-fill.warning{background:var(--warning)}.review-panel{margin-top:1rem;padding:1rem}.review-panel h2{margin:0 0 .25rem}.review-panel .muted{margin:0 0 .75rem;color:var(--text-muted);font-size:.875rem}.review-rows{display:flex;flex-direction:column;gap:.4rem}.review-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--r-md);text-decoration:none;color:inherit}.review-row:hover{background:var(--surface-2)}.review-name{font-size:.84rem;font-weight:500}.review-go{margin-left:auto;font-size:.8125rem;color:var(--text-muted)}.header-right{margin-left:auto;display:flex;align-items:center;gap:.875rem}.icon-btn{width:28px;height:28px;padding:0;border-radius:999px;display:grid;place-items:center;font-size:.85rem}.icon-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.help-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0c0d1157}.help-panel{position:absolute;top:0;right:0;bottom:0;width:404px;max-width:100vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:-8px 0 28px #0000002e;overflow-y:auto;animation:pop .14s ease-out}.help-head{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;gap:.75rem;padding:.9rem 1.125rem;background:var(--surface);border-bottom:1px solid var(--border)}.help-head h2{margin:0}.help-head .btn-ghost{margin-left:auto}.help-context{margin:.15rem 0 0;font-size:.78rem;color:var(--text-muted)}.help-body{padding:1rem 1.125rem;display:flex;flex-direction:column;gap:1.375rem}.help-body section{display:flex;flex-direction:column;gap:.5rem}.help-body p{margin:0;font-size:.84rem;line-height:1.5}.help-keys{margin:0;display:flex;flex-direction:column;gap:.4rem}.help-keys>div{display:flex;align-items:center;gap:.6rem}.help-keys dt{margin:0}.help-keys dd{margin:0;font-size:.84rem;color:var(--text-muted)}kbd{font-family:ui-monospace,monospace;font-size:.72rem;font-weight:700;min-width:26px;display:inline-block;text-align:center;padding:4px 7px;border-radius:5px;border:1px solid var(--border-strong);background:var(--surface-2)}.help-qa{display:flex;flex-direction:column;gap:.2rem}.help-q{font-weight:600}.help-a{color:var(--text-muted)}.help-support{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.8rem;border-radius:var(--r-md);background:var(--surface-2)}.help-support .btn-primary{text-decoration:none;display:inline-block}.help-support-note{font-size:.75rem;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.room-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.room-top{display:flex;align-items:flex-start;gap:.5rem}.room-top .name-editor{flex:1;min-width:0}.room-card .room-delete{margin:0;font-size:.8rem;padding:.15rem .4rem;opacity:0;transition:opacity .12s}.room-card:hover .room-delete,.room-card:focus-within .room-delete{opacity:1}.room-card .room-delete:hover{color:var(--danger);background:var(--danger-soft)}.room-chips{display:flex;gap:.4rem;flex-wrap:wrap}.delete-confirm{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:color-mix(in srgb,var(--surface) 95%,transparent);border-radius:var(--r-lg);padding:1rem;display:flex;flex-direction:column;justify-content:center;gap:.75rem;animation:pop .12s ease-out}.delete-confirm p{margin:0;font-size:.875rem}.item-card{padding:0;overflow:hidden}.item-card .frame{position:relative;aspect-ratio:4/3;background:var(--frame-bg)}.item-card .frame img{width:100%;height:100%;object-fit:cover;display:block}.frame-skeleton{width:100%;height:100%;background:var(--frame-bg);animation:shimmer 1.4s ease-in-out infinite}.frame-empty{width:100%;height:100%;display:grid;place-items:center;color:var(--frame-text);font-size:.8rem}.item-card .status-badge{top:.5rem;left:.5rem;z-index:2}.item-card .flag-btn{top:.5rem;right:.5rem;z-index:2}.flag-btn{color:var(--star-off);background:#ffffffbf}.frame-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:#0c0d119e;opacity:0;transition:opacity .12s}.item-card:hover .frame-overlay,.item-card:focus-within .frame-overlay{opacity:1}.btn-overlay{background:#ffffffe0;border-color:transparent;color:#1b1d22;border-radius:var(--r-sm)}.btn-overlay:hover:not(:disabled){background:#fff}.item-card .item-body{padding:.75rem .8125rem .8125rem}.item-card h3{margin:0 0 .1rem;font-size:.9rem;font-weight:600;line-height:1.3;text-wrap:pretty}.item-card.status-confirmed{border-color:var(--success-border)}.item-card.focused{outline:2px solid var(--accent);outline-offset:2px}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 16px #00000038;font-size:.875rem;animation:pop .14s ease-out}.toast-undo{color:var(--accent);font-weight:600}.divider{width:100%;border:0;border-top:1px solid var(--border);margin:.25rem 0}.room-detail{margin-left:.4rem;font-size:.78rem;color:var(--text-muted)}.packet-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;width:100%}.packet-stats div{display:flex;flex-direction:column;gap:.15rem}.packet-stats strong{font-size:1.1875rem;font-weight:700}.packet-stats span{font-size:.78rem;color:var(--text-muted)}.blocked-banner{width:100%;padding:.75rem .875rem;border-radius:var(--r-md);background:var(--warning-soft);border:1px solid light-dark(#f0dcb8,#4d3a17);display:flex;flex-direction:column;gap:.6rem}.blocked-banner p{margin:0;font-size:.875rem}.onb-page{overflow-x:hidden}.onb-bar{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-top:-1.5rem}.onb-steps{display:flex;gap:.25rem}.onb-steps i{width:34px;height:4px;border-radius:999px;background:var(--surface-2)}.onb-steps i.on{background:var(--accent)}.onb-card{max-width:560px;margin:2rem auto;padding:1.75rem;background:var(--surface);border-radius:1rem;box-shadow:0 8px 26px #0000001a;display:flex;flex-direction:column;gap:1.125rem}.onb-card h1{font-size:1.375rem;margin:0}.onb-chips{display:flex;gap:.4rem;flex-wrap:wrap}@media(max-width:480px){.stat-row,.packet-stats{grid-template-columns:1fr}}.record-btn{width:100%;padding:.9rem;font-size:1rem;margin-bottom:.75rem}.upload-progress{margin:.5rem 0 .75rem}.upload-progress .bar{height:6px;border-radius:3px;background:var(--accent);transition:width .2s ease}.upload-progress span{display:block;margin-top:.35rem;font-size:.82rem;color:var(--text-muted)}@media(hover:none){.item-card .frame-overlay,.room-card .rename-btn,.room-card .room-delete{opacity:1}}@supports (padding: max(0px)){.app header{padding-top:max(.65rem,env(safe-area-inset-top));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.app main{padding-bottom:max(3rem,env(safe-area-inset-bottom))}}@media(hover:none){.icon-btn,.btn-overlay,.room-delete,.rename-btn{min-width:48px;min-height:48px}.toolbar-hint{display:none}.room-card .rename-btn{margin-left:auto}}.auth{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.auth-left{background:var(--accent-soft);border-right:1px solid var(--border);padding:44px 40px;display:flex;flex-direction:column;gap:26px}.auth-brand{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}.auth-pitch{margin:auto 0;display:flex;flex-direction:column;gap:18px}.auth-pitch h1{font-size:27px;line-height:1.2;letter-spacing:-.015em;margin:0}.auth-bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.auth-bullets li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--text-muted)}.auth-bullets svg{color:var(--success);flex:none;margin-top:3px}.auth-footnote{font-size:12px;color:var(--text-muted);margin:0}.auth-right{padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.auth-panel{width:100%;max-width:360px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.auth-panel h2{font-size:20px;margin:0}.auth-panel form{display:flex;flex-direction:column;gap:14px}.auth-panel label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-muted)}.auth-panel input{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}.auth-panel .btn-primary{width:100%}.auth-alt{font-size:13px;text-align:center;margin:0}.auth-alt a{color:var(--accent)}@media(max-width:760px){.auth{grid-template-columns:1fr;min-height:auto}.auth-left{border-right:none;border-bottom:1px solid var(--border);padding:20px;gap:0}.auth-pitch,.auth-footnote{display:none}.auth-right{padding:28px 20px}}.issued-code{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:.75rem .9rem;font-size:.85rem;color:var(--text-muted);max-width:44rem}.issued-code code{font-size:.95rem;color:var(--text);word-break:break-all;-webkit-user-select:all;user-select:all}
