:root{--text:#3f3a4a;--text-muted:#7a7488;--text-h:#1f1a2b;--bg:#faf9fc;--panel:#fff;--border:#e6e3ee;--accent:#7c3aed;--accent-soft:#7c3aed1a;--accent-2:#f59e0b;--success:#16a34a;--danger:#dc2626;--series-1:#2a78d6;--series-2:#1baf7a;--series-3:#eda100;--series-4:#4a3aa7;--shadow:#1f1a2b14 0 4px 16px -4px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--text:#d4d1de;--text-muted:#928da3;--text-h:#f5f3fa;--bg:#16141d;--panel:#1f1c29;--border:#322e3d;--accent:#a78bfa;--accent-soft:#a78bfa26;--accent-2:#fbbf24;--series-1:#3987e5;--series-2:#199e70;--series-3:#c98500;--series-4:#9085e9;--shadow:#0006 0 4px 16px -4px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--text:#d4d1de;--text-muted:#928da3;--text-h:#f5f3fa;--bg:#16141d;--panel:#1f1c29;--border:#322e3d;--accent:#a78bfa;--accent-soft:#a78bfa26;--accent-2:#fbbf24;--series-1:#3987e5;--series-2:#199e70;--series-3:#c98500;--series-4:#9085e9;--shadow:#0006 0 4px 16px -4px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{color:var(--text-h);margin:0 0 8px}.navbar{padding:12px 24px;padding-top:calc(env(safe-area-inset-top,0px) + 12px);padding-left:calc(env(safe-area-inset-left,0px) + 24px);padding-right:calc(env(safe-area-inset-right,0px) + 24px);border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:24px;display:flex}.brand{color:var(--text-h);font-size:18px;font-weight:700}.nav-links{flex-wrap:wrap;flex:1;gap:4px;display:flex}.nav-links a{color:var(--text-muted);border-radius:8px;padding:8px 12px;font-weight:500;text-decoration:none}.nav-links a.active{background:var(--accent-soft);color:var(--accent)}.person-switcher{align-items:center;gap:6px;display:flex}.person-pill{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:500}.person-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.person-pill.add{color:var(--text-muted);border-style:dashed}.add-person-form input{border:1px solid var(--border);border-radius:999px;width:100px;padding:6px 14px}.brand-row{align-items:center;display:flex}.nav-hamburger{display:none}.nav-collapse{flex:1;align-items:center;gap:24px;display:flex}.nav-actions{align-items:center;gap:6px;display:flex}@media (width<=720px){.navbar{padding:10px 14px;padding-top:calc(env(safe-area-inset-top,0px) + 10px);padding-left:calc(env(safe-area-inset-left,0px) + 14px);padding-right:calc(env(safe-area-inset-right,0px) + 14px);flex-direction:column;align-items:stretch;gap:0}.brand-row{justify-content:space-between;width:100%}.brand{font-size:17px}.nav-hamburger{color:var(--text-h);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:26px;line-height:1;display:block}.nav-collapse{flex-direction:column;align-items:stretch;gap:8px;padding-top:12px;display:none}.nav-collapse.open{display:flex}.nav-links{flex-direction:column;gap:2px}.nav-links a{border-radius:10px;padding:12px 10px;font-size:17px}.nav-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;padding-top:8px}.content{padding:16px 14px}}.content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:32px}.page h1{font-size:32px}.subtitle{color:var(--text-muted);margin-bottom:24px}.quick-links{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.tile{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text-h);text-align:center;border-radius:16px;padding:24px;font-size:18px;font-weight:600;text-decoration:none;transition:transform .15s;display:block}.tile:hover{transform:translateY(-2px)}button{font:inherit}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 20px;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--panel);color:var(--text);border:1px solid var(--border)}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:24px}.grammar-note{color:var(--text);line-height:1.7}.grammar-note strong{color:var(--text-h)}.grammar-note li{margin-left:20px}.grammar-note blockquote{border-left:3px solid var(--accent);color:var(--text-h);margin:8px 0;padding:4px 14px;font-style:italic}.gram-table{border-collapse:collapse;margin:10px 0}.gram-table td{border:1px solid var(--border);padding:6px 14px}.gram-table tr:first-child td{color:var(--text-h);font-weight:700}.gate{min-height:100vh;padding:24px;padding-top:calc(env(safe-area-inset-top,0px) + 24px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 24px);justify-content:center;align-items:center;display:flex}.gate-inner{text-align:center;width:100%;max-width:560px}.gate-brand{color:var(--text-h);margin-bottom:32px;font-size:20px;font-weight:700}.gate-title{color:var(--text-h);margin:0 0 8px;font-size:34px}.gate-sub{color:var(--text-muted);margin:0 0 32px}.gate-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));justify-content:center;gap:16px;display:grid}.gate-card{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:24px 12px;transition:transform .12s,border-color .12s;display:flex}.gate-card:hover{border-color:var(--accent);transform:translateY(-3px)}.gate-avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:32px;font-weight:700;display:flex}.gate-name{color:var(--text-h);font-size:17px;font-weight:600}.gate-add input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);text-align:center;border-radius:10px;padding:8px 12px}.gate-foot{color:var(--text-muted);margin-top:32px;font-size:14px}
