:root{--bg: #f4f5f7;--panel: #fff;--ink: #1d2330;--muted: #677085;--line: #d9dde5;--accent: #1f6feb;--red: #d33;--amber: #e3a008;--green: #2b9a4b;font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y}#app{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}[hidden]{display:none!important}button,select,input{font:inherit}button{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 12px;cursor:pointer;color:inherit}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.on{background:var(--ink);border-color:var(--ink);color:#fff}button:disabled{opacity:.5}input,select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff}input[type=number]{width:5.5em}h1{font-size:20px;margin:0 0 12px}h2{font-size:16px;margin:16px 0 8px}.muted{color:var(--muted);font-size:13px}.err{color:var(--red)}.page{max-width:900px;margin:0 auto;padding:24px 16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:8px;max-width:360px}.topnav{display:flex;gap:8px;align-items:center;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.topnav .sp{flex:1}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}.list tr{cursor:pointer}.list tr:hover td{background:#f0f3f8}.editor{display:grid;grid-template-columns:1fr 340px;grid-template-rows:auto 1fr;height:100%}.editor .bar{grid-column:1 / -1;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line)}.editor .bar .sp{flex:1}.stage{position:relative;overflow:hidden;background:#e9ebef;touch-action:none}.stage svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none}.side{overflow:auto;overscroll-behavior:contain;background:var(--panel);border-left:1px solid var(--line);padding:10px}.side h2:first-child{margin-top:0}.hint{position:absolute;left:10px;bottom:10px;background:#1d2330d9;color:#fff;padding:6px 10px;border-radius:8px;font-size:13px;pointer-events:none}.grp{display:grid;grid-template-columns:16px 1fr auto;gap:6px;align-items:center;padding:6px;border-radius:8px;cursor:pointer}.grp.sel{background:#e7effd}.grp .dot{width:14px;height:14px;border-radius:50%}.props{display:grid;grid-template-columns:auto 1fr;gap:6px 8px;align-items:center;margin:8px 0}.matrix{border-collapse:collapse;font-variant-numeric:tabular-nums}.matrix td,.matrix th{border:1px solid var(--line);padding:3px 6px;text-align:center;min-width:30px}.matrix td.f{background:#fde3e3;cursor:pointer}.matrix td.b{background:#fff3cd;cursor:pointer}.matrix td.v{background:#e3f5e8;cursor:pointer}.matrix td.man{outline:2px solid var(--ink);outline-offset:-2px}.matrix td.cur{box-shadow:inset 0 0 0 2px var(--accent)}.detail{font-size:13px;background:#f7f8fa;border-radius:8px;padding:8px;margin-top:8px}@media (max-width: 900px){.editor{grid-template-columns:1fr;grid-template-rows:auto 1fr 45%}.side{border-left:0;border-top:1px solid var(--line)}}.bar .divider{width:1px;align-self:stretch;background:var(--line);margin:0 4px}.prog-stage{overflow:auto;background:#fff;touch-action:pan-x pan-y}.prog-scroll{padding:12px;min-width:max-content}.issues{margin:4px 0 8px;padding-left:18px;color:var(--red);font-size:13px}table.small td,table.small th{padding:3px 4px;font-size:13px}table.small input[type=number]{width:4.5em}.print-only{display:none}@media print{html,body,#app{position:static;overflow:visible;height:auto}body.printing .editor>:not(.prog-stage){display:none!important}body.printing .editor{display:block;height:auto}body.printing .prog-stage{overflow:visible}body.printing .print-only{display:block}@page{size:A4 landscape;margin:12mm}}.editor.wide{grid-template-columns:1fr}.hbs{margin-top:16px;max-width:900px}table.deriv input[type=number]{width:5em}table.deriv td.fix input{font-weight:700;border-color:var(--accent)}table.deriv td{vertical-align:top}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182073;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal .card{max-width:520px;width:100%}button.danger{color:#fff;background:var(--red);border-color:var(--red)}
