:root{--text:#1f2933;--muted:#5b6672;--bg:#fff;--panel:#f7f8fa;--border:#d9dde3;--accent:#2f6f4f;--accent-text:#fff;--estimated:#f59e0b;--unknown:#e11d48;--error-bg:#fdecef;--info-bg:#e8f3ec;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app{flex-direction:column;height:100dvh;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 16px;display:flex}.toolbar h1{margin:0 auto 0 0;font-size:16px;font-weight:600}.field{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}select,button{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:40px;color:var(--text);border-radius:8px;padding:0 12px}button{background:var(--accent);border-color:var(--accent);color:var(--accent-text);cursor:pointer}button.secondary{background:var(--bg);border-color:var(--border);color:var(--text)}.message{justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:14px;display:flex}.message.info{background:var(--info-bg)}.message.error{background:var(--error-bg)}.message button{min-height:32px;color:var(--text);background:0 0;border:none;font-size:18px}.viewport{touch-action:none;flex:1;min-height:0;position:relative}.legend{color:var(--muted);background:#ffffffd9;border-radius:8px;flex-wrap:wrap;gap:12px;padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:16px;left:16px}.legend span{align-items:center;gap:4px;display:inline-flex}.swatch{border-radius:2px;width:12px;height:12px;display:inline-block}.swatch.estimated{border:2px solid var(--estimated)}.swatch.unknown{border:2px solid var(--unknown)}.swatch.swing{background:#64748b59}@media (width<=600px){.toolbar h1{width:100%}}
