:root{--bg: #e8e8e8;--panel-bg: #fbfbfc;--panel-border: #dcdde1;--text: #1d1f24;--text-muted: #6b7280;--accent: #2f6df6;--accent-text: #ffffff;--danger: #d9534f;--control-bg: #ffffff;--control-border: #c9ccd4;--radius: 8px;--panel-width: 320px;--sheet-collapsed: 56px;--sheet-expanded: 55vh;--touch: 40px;--shadow: 0 2px 10px rgba(0, 0, 0, .08);color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,Segoe UI,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);overflow:hidden;-webkit-text-size-adjust:100%}.app-root{position:fixed;inset:0;display:flex;flex-direction:row;align-items:stretch}.stage{position:relative;flex:1 1 auto;min-width:0;min-height:0;background:var(--bg)}.canvas-host{position:absolute;inset:0;touch-action:none;overscroll-behavior:none}.canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.overlay{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:10px 12px}.status{align-self:flex-start;background:#ffffffd9;border:1px solid var(--panel-border);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--text);box-shadow:var(--shadow)}.status[hidden]{display:none}.footer{align-self:flex-start;margin-top:auto;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--text-muted);pointer-events:auto}.footer__title{font-weight:700;color:var(--text)}.footer__credit,.footer__credit:visited{color:var(--text-muted)}.fatal{position:fixed;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--text);background:var(--bg)}.panel{flex:0 0 var(--panel-width);width:var(--panel-width);display:flex;flex-direction:column;background:var(--panel-bg);border-left:1px solid var(--panel-border);min-height:0}.panel__handle{display:none}.panel__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 12px 32px}.panel__credit{margin:16px 0 0;font-size:11px;color:var(--text-muted)}.sec{border-bottom:1px solid var(--panel-border)}.sec__title{cursor:pointer;list-style:none;padding:12px 4px;min-height:var(--touch);display:flex;align-items:center;font-weight:700;font-size:13px;letter-spacing:.02em;user-select:none}.sec__title::-webkit-details-marker{display:none}.sec__title:before{content:"▸";display:inline-block;margin-right:6px;font-size:10px;color:var(--text-muted);transition:transform .15s ease}.sec[open]>.sec__title:before{transform:rotate(90deg)}.sec__body{padding:0 4px 14px;display:flex;flex-direction:column;gap:10px}.block{display:flex;flex-direction:column;gap:8px}.block__title{margin:6px 0 0;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:none}.muted{margin:0;font-size:11px;color:var(--text-muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--small{grid-template-columns:repeat(3,minmax(0,1fr))}.btn{min-height:var(--touch);padding:8px 10px;border:1px solid var(--control-border);border-radius:var(--radius);background:var(--control-bg);color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn--wide{width:100%}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:700}.btn--danger{color:var(--danger);border-color:#e6b8b7}.btn--chip{font-size:12px;padding:6px}.btn--flat{flex:1 1 auto;text-align:left}.btn--icon{flex:0 0 auto;width:var(--touch);padding:0;font-size:18px;line-height:1;color:var(--danger)}.list{display:flex;flex-direction:column;gap:6px}.list__item{display:flex;gap:6px;align-items:stretch}.row{display:flex;flex-direction:column;gap:4px}.row--color{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;min-height:var(--touch)}.row__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.row__label{font-size:12px;color:var(--text)}.row__value{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.range{width:100%;height:28px;accent-color:var(--accent);touch-action:pan-y}.color{width:56px;height:32px;padding:2px;border:1px solid var(--control-border);border-radius:6px;background:var(--control-bg);cursor:pointer}.color:disabled{opacity:.4;cursor:default}.select{min-height:34px;padding:4px 8px;border:1px solid var(--control-border);border-radius:6px;background:var(--control-bg);color:var(--text);font:inherit}.check{display:flex;align-items:center;gap:8px;min-height:var(--touch);font-size:13px;cursor:pointer;user-select:none}.check input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}.radios{display:flex;flex-direction:column}.toast-host{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:100;pointer-events:none}.toast{background:#1d1f24eb;color:#fff;padding:8px 16px;border-radius:999px;font-size:13px;box-shadow:var(--shadow);opacity:1;transition:opacity .25s ease;max-width:80vw;text-align:center}.toast--out{opacity:0}@media(max-width:767px){.app-root{flex-direction:column}.stage{flex:1 1 auto}.canvas-host,.overlay{bottom:var(--sheet-collapsed)}.panel{position:fixed;left:0;right:0;bottom:0;width:auto;flex:none;height:var(--sheet-collapsed);border-left:none;border-top:1px solid var(--panel-border);border-radius:14px 14px 0 0;box-shadow:0 -3px 14px #0000001f;z-index:20}.panel--expanded{height:var(--sheet-expanded)}.panel__handle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:var(--sheet-collapsed);flex:0 0 var(--sheet-collapsed);border:none;background:transparent;color:var(--text);font:inherit;font-weight:700;cursor:pointer;padding:6px 0;user-select:none;-webkit-user-select:none;touch-action:manipulation}.panel__grip{display:block;width:42px;height:4px;border-radius:999px;background:var(--control-border)}.panel__scroll{display:none;padding-bottom:40px}.panel--expanded .panel__scroll{display:block}.footer__title{display:none}.toast-host{bottom:calc(var(--sheet-collapsed) + 16px)}}
