:root{--bg:#fafaf7;--fg:#1d1d1b;--muted:#6b6b66;--line:#deded8;--accent:#2f5d8a;--ok:#2e7d4f;--ng:#b3261e;--warn-bg:#fff4d6;color:var(--fg);background:var(--bg);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,sans-serif;font-size:17px;line-height:1.6}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{max-width:560px;min-height:100vh;padding:0 16px calc(80px + env(safe-area-inset-bottom));margin:0 auto}main{padding-top:12px}h1{margin:8px 0 12px;font-size:1.25rem}h2{margin:20px 0 8px;font-size:1.05rem}button{font:inherit;border:1px solid var(--line);min-height:44px;color:var(--fg);background:#fff;border-radius:10px;padding:8px 14px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.45}input[type=text],textarea,select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:10px}.card{border:1px solid var(--line);background:#fff;border-radius:14px;margin:12px 0;padding:16px}.word{text-align:center;overflow-wrap:anywhere;margin:16px 0;font-size:2rem;font-weight:600}.stack{flex-direction:column;gap:8px;display:flex}.row{flex-wrap:wrap;gap:8px;display:flex}.row>button{flex:1 1 0}.muted{color:var(--muted);font-size:.9rem}.warn{background:var(--warn-bg);border-radius:10px;padding:10px 12px}.okmsg{color:var(--ok)}.ngmsg{color:var(--ng)}.testbar,.warnbar{margin:0 -16px;padding:6px 16px;font-size:.85rem}.testbar{background:#e3ecf7}.warnbar{background:var(--warn-bg)}.savebar{left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));text-align:center;pointer-events:none;position:fixed}.badge{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 12px;font-size:.85rem;display:inline-block}.badge.ok{color:var(--ok)}.badge.ng{color:var(--ng);pointer-events:auto}.tabs{border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{border:none;border-radius:0;flex:1;min-height:56px;font-size:.85rem}.tabs button.active{color:var(--accent);font-weight:600}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--line);text-align:left;padding:4px 6px}ul.errors{color:var(--ng);padding-left:1.2em}
