:root{--text:#202124;--text-h:#111827;--bg:#f7f7fb;--border:#d7dce5;--surface:#fff;--accent:#5b21b6;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body[data-theme=light]{--text:#202124;--text-h:#111827;--bg:#f7f7fb;--border:#d7dce5;--surface:#fff;--accent:#5b21b6}body[data-theme=dark]{--text:#e5e7eb;--text-h:#f9fafb;--bg:#101218;--border:#2a3140;--surface:#161b24;--accent:#a78bfa}#root{min-height:100vh}body{background-color:var(--bg);color:var(--text);min-width:320px;margin:0}h1{color:var(--text-h);margin:0;font-size:clamp(1.6rem,4.8vw,2.2rem)}h2{color:var(--text-h);margin:0;font-size:clamp(1.25rem,3.6vw,1.5rem)}p{margin:0}a{color:var(--accent)}.app-shell{min-height:100vh}.page{box-sizing:border-box;flex-direction:column;gap:1.25rem;width:min(1520px,100%);margin:0 auto;padding:1.5rem 1rem;display:flex}.page-home{gap:2rem}.kana-choice-grid{flex-wrap:wrap;align-items:stretch;gap:1rem;display:flex}.home-dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.kana-choice-card{background:var(--surface);flex:320px;max-width:calc(25% - .75rem)}.kana-preview{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.kana-preview-item{border:1px solid var(--border);width:2.5rem;height:2.5rem;color:var(--text-h);background:var(--bg);border-radius:8px;place-items:center;font-size:1.25rem;font-weight:600;display:grid}.responsive-test-layout,.responsive-canvas-layout{width:100%}@media (width<=1199px){.kana-choice-card{max-width:calc(50% - .5rem)}}@media (width<=899px){.page{padding:1.25rem .875rem}.home-dashboard-grid{grid-template-columns:1fr}.kana-choice-card{max-width:100%}}@media (width<=599px){.page{gap:1rem;padding:1rem .75rem}.page-home{gap:1.5rem}.kana-choice-grid{gap:.75rem}.kana-preview{gap:.375rem;margin-top:.75rem}.kana-preview-item{width:2.1rem;height:2.1rem;font-size:1.05rem}}.status-message{margin:0}.status-error{color:#c0392b}
