:root{--bg: #f2f2f7;--panel: #ffffff;--panel2: #f9f9fb;--text: #1c1c1e;--muted: #6e6e73;--line: rgba(60,60,67,.18);--accent: #0a84ff;--accent-text: #fff;--warn: #b35c00;--error: #d70015;--radius: 14px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;color-scheme:light dark}@media (prefers-color-scheme: dark){:root:not([data-theme=matcha]){--bg: #1c1c1e;--panel: #2c2c2e;--panel2: #232325;--text: #f2f2f7;--muted: #a1a1a6;--line: rgba(235,235,245,.16);--warn: #ffb340;--error: #ff6961}}:root[data-theme=matcha]{--bg: #f4efe3;--panel: #fbf8f0;--panel2: #f1ebdc;--text: #2f3326;--muted: #6d725e;--line: rgba(80,90,60,.2);--accent: #6b8f47;--accent-text: #fff;color-scheme:light;--font: "Iowan Old Style", "Palatino", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.4 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}.app{display:grid;height:100%;grid-template-columns:0 1fr 0;grid-template-rows:52px 1fr;transition:grid-template-columns .2s}.app.with-sidebar{grid-template-columns:300px 1fr 0}.app.with-inspector{grid-template-columns:0 1fr 400px}.app.with-sidebar.with-inspector{grid-template-columns:300px 1fr 400px}.toolbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;padding-top:env(safe-area-inset-top);background:var(--panel);border-bottom:1px solid var(--line);min-width:0}.tb-left{display:flex;align-items:center;gap:8px;min-width:0}.doc-title{display:flex;flex-direction:column;line-height:1.15;min-width:0}.doc-title b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-title span{font-size:12px;color:var(--muted);white-space:nowrap}.tb-actions{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.tb-actions button,.icon{flex-shrink:0;min-height:44px;min-width:44px;padding:0 12px;border:0;background:none;color:var(--accent);border-radius:10px;font-weight:500;white-space:nowrap}.tb-actions button.on,.tb-actions button:hover:not(:disabled),.icon:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.sidebar{grid-row:2;overflow:auto;background:var(--panel2);border-right:1px solid var(--line);padding:12px;min-width:0}.app:not(.with-sidebar) .sidebar{display:none}.sidebar h2{font-size:22px;margin:4px 4px 12px}.grabber{display:none}.card{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:10px;min-height:44px}.card.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.card-title{font-weight:600;font-size:16px}.card-desc{color:var(--muted);font-size:13px;margin:2px 0 8px}.card-stats{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}.facts{margin-top:12px}.meta{color:var(--muted);font-size:13px;margin:6px 0}.warn{color:var(--warn);font-size:13px;margin:6px 0}.error{color:var(--error);font-size:13px;white-space:pre-wrap}.note{font-size:14px;margin:6px 0}.stage{grid-row:2;grid-column:2;position:relative;min-width:0;overflow:hidden}.viewer{position:absolute;inset:0;touch-action:none}.bottom-bar{position:absolute;left:0;right:0;bottom:max(16px,env(safe-area-inset-bottom));display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:0 16px;pointer-events:none}.bottom-bar>*{pointer-events:auto}.seg{display:inline-flex;background:color-mix(in srgb,var(--panel) 85%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:12px;padding:3px;box-shadow:0 4px 20px #00000014}.seg button{border:0;background:none;min-height:38px;padding:0 14px;border-radius:9px;font-weight:500}.seg button.on{background:var(--panel);box-shadow:0 1px 4px #00000026}:root[data-theme=matcha] .seg button.on{background:var(--accent);color:var(--accent-text)}.seg.small button{min-height:32px;padding:0 10px;font-size:13px}.spinner{position:absolute;top:16px;right:16px;width:26px;height:26px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.legend-float{position:absolute;top:14px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px 10px;font-size:12px;display:flex;gap:8px;align-items:center}.ramp{display:inline-block;width:90px;height:10px;border-radius:5px;background:linear-gradient(90deg,#26f,#fff,#f32);border:1px solid var(--line)}.inspector{grid-row:2;grid-column:3;overflow:hidden;background:var(--panel);border-left:1px solid var(--line);display:flex;min-width:0}.pattern{display:flex;flex-direction:column;padding:12px;min-height:0;width:100%}.pattern-head{display:flex;gap:8px;align-items:center}.pattern-head select{flex:1;min-width:0;min-height:36px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);padding:0 8px}.lines{overflow:auto;flex:1;font:12px/1.45 ui-monospace,SF Mono,Menlo,monospace;margin-top:6px}.line{padding:3px 6px;border-radius:6px;cursor:pointer}.line:hover{background:var(--panel2)}.line.sub{color:var(--muted);cursor:default}.line.on{background:color-mix(in srgb,#ffd60a 45%,transparent)}.chart{overflow:auto;flex:1}.chart-svg svg{display:block;max-width:100%;height:auto;background:var(--panel2);border-radius:6px;cursor:pointer}.legend{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;margin:8px 0}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px;border:1px solid var(--line)}.scrim{position:fixed;inset:0;background:#00000040;z-index:10}.sheet{position:fixed;z-index:11;top:64px;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 88px);overflow:auto;background:var(--panel);border-radius:18px;box-shadow:0 20px 60px #00000040;padding:8px 20px 20px}.sheet.wide{width:min(980px,calc(100vw - 32px))}.sheet[aria-label=Annotate]{left:auto;right:16px;transform:none;width:min(380px,calc(100vw - 32px))}.sheet-head{display:flex;align-items:center;gap:10px;position:sticky;top:0;background:var(--panel);padding:10px 0;z-index:1}.sheet-head h2{flex:1;margin:0;font-size:20px}.sheet section{border-top:1px solid var(--line);padding:10px 0}.sheet h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:4px 0 8px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);margin:6px 0;flex:1;min-width:0}.field input,.field select{color:var(--text);min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);padding:0 10px;width:100%}.field input[type=color]{padding:2px}.row2{display:flex;gap:10px;flex-wrap:wrap}.row2>*{flex:1 1 120px}.check{display:flex;gap:8px;align-items:center;min-height:44px}.pill{min-height:40px;padding:0 16px;border-radius:20px;border:0;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600;display:inline-flex;align-items:center}.pill.primary{background:var(--accent);color:var(--accent-text);width:100%;justify-content:center;min-height:48px;margin-top:8px}.file{position:relative;overflow:hidden}.file input,.menu-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.link{border:0;background:none;color:var(--accent);padding:0;min-height:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;border-radius:22px;border:1px solid var(--line);background:var(--panel2);padding:0 14px}.chip.on{background:var(--accent);color:var(--accent-text);border-color:transparent}.slider{display:grid;grid-template-columns:1fr 1.4fr 56px;gap:10px;align-items:center;min-height:44px;font-size:14px}.slider b{text-align:right;font-variant-numeric:tabular-nums}.costs{width:100%;border-collapse:collapse;font-size:14px}.costs td,.costs th{padding:4px;text-align:left;border-bottom:1px solid var(--line)}.costs input{width:70px;min-height:34px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);padding:0 6px}.popover{position:fixed;z-index:12;top:56px;right:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px #0003;padding:6px;display:flex;flex-direction:column;min-width:260px}.popover button,.menu-file{border:0;background:none;text-align:left;min-height:44px;padding:0 12px;border-radius:9px;position:relative;display:flex;align-items:center;cursor:pointer}.popover button:hover,.menu-file:hover{background:var(--panel2)}.popover hr{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}canvas.bed{width:100%;height:min(52vh,460px);display:block;border-radius:12px;border:1px solid var(--line)}.bed-controls{display:flex;gap:12px;align-items:center;margin-top:10px}.bed-controls input{flex:1}.instruction{font:13px ui-monospace,Menlo,monospace;min-height:2.8em}@media (max-width: 760px){.app,.app.with-sidebar,.app.with-inspector,.app.with-sidebar.with-inspector{grid-template-columns:0 1fr 0}.sidebar{display:block!important;position:fixed;z-index:5;left:0;right:0;bottom:0;height:64px;border-radius:18px 18px 0 0;border:1px solid var(--line);transition:height .25s;overflow:hidden;box-shadow:0 -6px 30px #0000001f}.app.with-sidebar .sidebar{height:62vh;overflow:auto}.grabber{display:block;width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 8px;padding:8px 0;background-clip:content-box;cursor:pointer}.sidebar h2{font-size:17px}.bottom-bar{bottom:80px}.inspector{position:fixed;z-index:6;inset:52px 0 0}.tb-actions button{padding:0 8px}.doc-title span{display:none}}@media print{.toolbar,.sidebar,.bottom-bar{display:none}}
