:root{color-scheme:light;--bg:#eef2f7;--surface:#fff;--line:#d8dee8;--text:#172033;--muted:#667085;--primary:#1d4ed8;--success:#15803d;--warning:#a16207;--danger:#b91c1c;--shadow:0 8px 30px #1e293b18;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button,select,input,textarea{font:inherit}button{border:0;border-radius:8px;background:var(--primary);color:#fff;padding:.65rem .9rem;font-weight:700;cursor:pointer}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}.ghost{background:#fff;color:#334155;border:1px solid var(--line)}.danger-outline{background:#fff;color:var(--danger);border:1px solid #fecaca}label{display:grid;gap:.35rem;font-weight:650;color:#344054}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:7px;padding:.62rem;background:#fff;color:var(--text)}textarea{resize:vertical}.session-dialog{width:min(820px,calc(100vw - 32px));border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px #0f172a55}.session-dialog::backdrop{background:#0f172acc}.session-dialog form{padding:26px;display:grid;gap:18px}.brand{display:flex;align-items:center;gap:12px}.brand h1,.brand p{margin:0}.brand p{color:var(--muted);margin-top:4px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#1d4ed8,#7c3aed);display:grid;place-items:center;color:#fff;font-size:23px;font-weight:900}.compact .brand-mark{width:34px;height:34px}.compact div{display:grid}.compact small{color:#64748b}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}fieldset{border:1px solid var(--line);border-radius:10px}.checks{display:flex;gap:16px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:6px}.checks input{width:auto}.drop-zone{border:2px dashed #94a3b8;border-radius:12px;padding:24px;display:grid;place-items:center;gap:5px;color:#475569;background:#f8fafc}.drop-zone.drag{border-color:var(--primary);background:#eff6ff}.file-actions{display:flex;gap:8px;flex-wrap:wrap}.file-button{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.65rem .9rem;cursor:pointer}.file-button input{display:none}.summary-box,.privacy-note{padding:12px;border-radius:9px;background:#f8fafc;border:1px solid var(--line)}.privacy-note{background:#ecfdf5;border-color:#bbf7d0;color:#166534}menu{display:flex;justify-content:flex-end;gap:10px;margin:0;padding:0}.app-shell{height:100vh;display:grid;grid-template-rows:auto auto 1fr}.topbar{display:flex;align-items:center;gap:14px;padding:9px 14px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 10px #1e293b0a;z-index:3}.topbar .brand{margin-right:auto}.topbar label{display:flex;align-items:center;gap:7px}.topbar select{width:auto;padding:.48rem}.toggle{background:#e2e8f0;color:#475569}.toggle.active{background:#dcfce7;color:#166534}.sync-status{min-width:100px;text-align:center;color:var(--muted)}.sync-status.error{color:var(--danger);font-weight:700}.batch-bar{padding:8px 14px;display:flex;align-items:center;gap:10px;background:#dbeafe;border-bottom:1px solid #93c5fd}.batch-bar label{display:flex;align-items:center;gap:6px}.batch-bar select{width:300px}.workspace{display:grid;grid-template-columns:260px minmax(360px,1fr) minmax(430px,600px);min-height:0}.sidebar,.inspector{background:var(--surface);min-height:0}.sidebar{border-right:1px solid var(--line);display:grid;grid-template-rows:auto auto 1fr auto;padding:12px;gap:10px}.sidebar-head{display:flex;justify-content:space-between}.sample-list{overflow:auto;display:grid;align-content:start;gap:6px}.sample-item{width:100%;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"dot title" "dot meta";text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);padding:9px}.sample-item.selected{outline:2px solid var(--primary);border-color:transparent}.sample-item .dot{grid-area:dot;align-self:center}.sample-item strong{grid-area:title;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sample-item small{grid-area:meta;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.dot.invalid{background:#dc2626}.dot.pending{background:#eab308}.dot.complete{background:#16a34a}.dot.active-batch{background:#2563eb}.legend{font-size:11px;color:var(--muted);display:grid;grid-template-columns:1fr 1fr;gap:6px}.viewer{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr auto}.viewer-head{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:#f8fafc;border-bottom:1px solid var(--line)}.viewer-head>div:first-child{display:grid}.viewer-head small{color:var(--muted)}.zoom-controls{display:flex;align-items:center;gap:6px}.zoom-controls button{padding:.35rem .6rem}.canvas-stage{min-height:0;overflow:hidden;position:relative;background:#151a23;display:grid;place-items:center}.canvas-stage canvas{display:block;max-width:none;transform-origin:center center}.canvas-stage #viewerMessage{position:absolute;color:#cbd5e1}.validation-message{padding:7px 12px;background:#fff7ed;color:#9a3412;min-height:30px}.inspector{border-left:1px solid var(--line);overflow:auto;padding:12px;display:grid;align-content:start;gap:10px}.panel{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}.panel h2{font-size:15px;margin:0 0 10px}.panel-title{display:flex;justify-content:space-between;align-items:center}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-card{border:1px solid var(--line);border-radius:9px;padding:9px;display:grid;gap:6px}.field-card.full{grid-column:1/-1}.field-card h3{font-size:13px;margin:0}.option-grid{display:grid;gap:5px}.option-button{padding:.52rem .55rem;text-align:left;border:2px solid transparent;box-shadow:inset 0 0 0 1px #00000012}.option-button.selected{border-color:#111827;box-shadow:0 0 0 2px #fff inset}.shortcut{float:right;opacity:.7}.completion{border-radius:8px;padding:9px;text-align:center;font-weight:800}.completion.pending{background:#fef9c3;color:#854d0e}.completion.complete{background:#dcfce7;color:#166534}.completion.invalid{background:#fee2e2;color:#991b1b}.choice-row{display:grid;gap:6px;margin-bottom:10px}.choice-buttons{display:flex;gap:6px;flex-wrap:wrap}.choice-buttons button{background:#f1f5f9;color:#334155;border:1px solid var(--line)}.choice-buttons button.selected{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.reason-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}.reason-list label{display:flex;align-items:center;gap:5px;font-weight:500}.reason-list input{width:auto}.angle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.angle-card{border:1px solid var(--line);border-radius:9px;padding:8px;display:grid;gap:6px}.angle-card h3{font-size:12px;margin:0}.angle-canvas{width:100%;height:100px;background:#f8fafc;border-radius:6px;cursor:crosshair}.angle-controls{display:grid;grid-template-columns:1fr auto;gap:5px}.angle-controls label{display:flex;align-items:center;font-size:11px}.angle-controls label input{width:auto}.angle-category{font-size:11px;color:var(--muted);min-height:28px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.filming-choice{border:1px solid var(--line);border-radius:8px;padding:8px}.filming-choice h3{font-size:12px;margin:0 0 5px}.filming-choice select{padding:.48rem}.inspector-actions{position:sticky;bottom:-12px;background:#fff;border-top:1px solid var(--line);padding:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.inspector-actions kbd{font-size:10px;opacity:.75}.toast-region{position:fixed;right:18px;bottom:18px;display:grid;gap:8px;z-index:20}.toast{background:#0f172a;color:#fff;padding:11px 14px;border-radius:8px;box-shadow:var(--shadow);max-width:420px}.toast.error{background:#991b1b}@media(max-width:1100px){.workspace{grid-template-columns:220px minmax(300px,1fr) 430px}.topbar{flex-wrap:wrap}.angle-grid{grid-template-columns:1fr}.angle-canvas{height:90px}}@media(max-width:820px){.workspace{grid-template-columns:1fr;grid-template-rows:210px 55vh auto}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.inspector{border-left:0}.topbar .brand{width:100%}.form-grid,.tool-grid,.choice-grid{grid-template-columns:1fr}.batch-bar{overflow:auto}.batch-bar select{width:220px}}

