:root{--bg: #1b1d22;--panel: #23262c;--panel-2: #2a2e35;--line: #363a42;--text: #e6e7ea;--muted: #9aa0a8;--accent: #3b82f6;--accent-2: #2563eb;--danger: #ef4444;--stage: #3a3d44;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button,input,select{font:inherit;color:inherit}h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}p{margin:4px 0 8px;line-height:1.4}ul{list-style:none;margin:0;padding:0}.muted{color:var(--muted)}.small{font-size:11.5px}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.app{display:flex;flex-direction:column;height:100%}.main{flex:1;display:flex;min-height:0}.toolbar{height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:nowrap;overflow-x:auto}.brand{font-weight:700;letter-spacing:.02em;margin-right:4px;white-space:nowrap}.layout-select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 8px;max-width:200px}.tb-group{display:flex;align-items:center;gap:4px;padding:0 6px;border-left:1px solid var(--line)}.zoom-label{color:var(--muted);font-variant-numeric:tabular-nums;min-width:62px;text-align:center;font-size:12px}.spacer{flex:1}.menu{position:relative}.menu summary{list-style:none;cursor:pointer}.menu summary::-webkit-details-marker{display:none}.menu-body{position:absolute;right:0;top:calc(100% + 4px);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;z-index:20;min-width:220px;box-shadow:0 8px 24px #0006}.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 10px;cursor:pointer;white-space:nowrap;line-height:1.2}.btn:hover{border-color:#4a4f59;background:#313640}.btn:disabled{opacity:.4;cursor:default}.btn.active{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:#fca5a5;border-color:#5b2a2a}.btn.danger:hover{background:#3a1f1f}.btn.small{padding:2px 8px;font-size:12px}.btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.btn-grid .btn{white-space:normal}.sidebar{width:320px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.inspector{width:320px;flex:none;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto}.tabs{display:flex;border-bottom:1px solid var(--line)}.tab{flex:1;background:none;border:none;padding:9px 4px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.panel{overflow-y:auto;flex:1}.section{padding:10px 12px;border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-body{display:flex;flex-direction:column;gap:6px}.row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.row>.field{flex:1;min-width:110px}.row>.btn{flex:1}.field{display:flex;flex-direction:column;gap:3px}.field-label{color:var(--muted);font-size:11.5px}.field-input{display:flex;align-items:center;gap:6px}.field input[type=number],.field input[type=text],.field select{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 7px;min-width:0}.field input[type=color]{width:40px;height:26px;padding:0;border:1px solid var(--line);border-radius:6px;background:none}.field input[type=range]{width:100%}.hint{color:var(--muted);font-size:11.5px;white-space:nowrap;min-width:34px}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle select{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.note{background:#3a3322;border:1px solid #6b5a1e;color:#fde68a;border-radius:6px;padding:6px 8px;font-size:12px}.tips li{margin:0 0 6px 14px;list-style:disc;color:var(--muted);line-height:1.4}.frame-list li{display:flex;align-items:center;gap:8px;padding:6px;border-radius:6px;cursor:pointer}.frame-list li:hover{background:var(--panel-2)}.frame-list li.active{background:#1e3a8a55;outline:1px solid var(--accent-2)}.dot{width:12px;height:12px;border-radius:50%;border:1px solid #0006;flex:none}.fl-thumb{width:36px;height:36px;background:var(--bg);border-radius:4px;overflow:hidden;flex:none}.fl-thumb img{width:100%;height:100%;object-fit:cover;display:block}.fl-main{display:flex;flex-direction:column;min-width:0;flex:1}.fl-label{font-weight:600}.flag{background:#f59e0b;color:#000;font-weight:700;border-radius:50%;width:16px;height:16px;display:grid;place-items:center;font-size:11px;flex:none}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.thumb{padding:0;border:2px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg);cursor:pointer;aspect-ratio:1}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb.active{border-color:var(--accent)}.thumb.big{width:64px;height:64px;flex:none}.thumb.assignable:hover{border-color:#10b981}.photo-list li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line)}.pl-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid #0008;cursor:pointer;padding:0;position:relative}.swatch.active{outline:2px solid var(--accent);outline-offset:2px}.swatch.custom input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer}.layout-list li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line)}.layout-list li.active .ll-pick{color:var(--accent)}.ll-pick{background:none;border:none;font-size:16px;cursor:pointer;width:24px}.ll-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.calib{background:#0f2f2a;border:1px solid #10b981;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:8px;line-height:1.4}.stage-wrap{flex:1;overflow:auto;background:var(--stage);display:flex}.stage-wrap svg{flex:none}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:#111;color:#fff;padding:8px 14px;border-radius:8px;box-shadow:0 6px 20px #0006;z-index:30}.guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;color:#111;overflow:auto;z-index:50}.guide-toolbar{position:sticky;top:0;display:flex;gap:12px;align-items:center;padding:10px 20px;background:#f3f4f6;border-bottom:1px solid #ddd;color:#111}.guide-toolbar .btn{background:#fff;border-color:#ccc;color:#111}.guide-toolbar .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.guide-toolbar select{padding:4px 6px;border-radius:6px;border:1px solid #ccc;background:#fff;color:#111}.guide{max-width:1100px;margin:0 auto;padding:24px 24px 60px}.guide h1{font-size:22px;margin:0 0 6px}.guide-meta{color:#555;margin:0 0 6px}.guide-warn{background:#fff7ed;border:1px solid #fdba74;border-radius:8px;padding:8px 12px;margin:10px 0}.guide-warn ul{margin:4px 0 0 18px;list-style:disc}.guide-diagram{width:100%;max-height:640px;border:1px solid #ddd;border-radius:8px;margin:14px 0;background:#fff}.guide-table{width:100%;border-collapse:collapse;font-size:12.5px}.guide-table th,.guide-table td{border-bottom:1px solid #e5e7eb;padding:6px 8px;text-align:left;vertical-align:top}.guide-table th{background:#f9fafb;font-weight:600}.guide-table td.num{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.guide .muted{color:#666}@media print{@page{margin:12mm}body{background:#fff}.no-print,.app{display:none!important}.guide-overlay{position:static;overflow:visible}.guide{max-width:none;padding:0}.guide-diagram{max-height:45vh;page-break-inside:avoid}.guide-table{page-break-inside:auto}.guide-table tr{page-break-inside:avoid}}.btn.ghost{border-color:transparent;background:none;cursor:default;opacity:.7}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;background:var(--bg);padding:1px 4px;border-radius:4px}
