:root{
  --bg:#f3f6fb; --surface:#ffffff; --surface2:#e9eef8; --text:#101828; --muted:#5b6575; --accent:#0b5fff; --accent2:#0a9b72; --danger:#c62828; --warn:#b26a00; --ok:#147a50; --border:#d8e0ee; --shadow:0 12px 30px rgba(16,24,40,.10); --radius:22px; --focus:3px solid #ffbf47; color-scheme:light;
}
[data-theme="dark"]{--bg:#07111f;--surface:#0f1c2e;--surface2:#17263b;--text:#f1f5f9;--muted:#b9c4d4;--accent:#69a6ff;--accent2:#32d39a;--danger:#ff8383;--warn:#ffd166;--ok:#42d392;--border:#29405d;--shadow:0 12px 30px rgba(0,0,0,.35);color-scheme:dark;}
*{box-sizing:border-box} html{font-size:18px} body{margin:0;background:linear-gradient(140deg,var(--bg),var(--surface2));color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.55;min-height:100vh;padding-bottom:92px} button,input,select,textarea{font:inherit} button{touch-action:manipulation}.skip{position:absolute;left:-999px;top:auto}.skip:focus{left:1rem;top:1rem;background:var(--accent);color:#fff;padding:.7rem;border-radius:.8rem;z-index:50}.app-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;backdrop-filter:blur(16px);background:color-mix(in srgb,var(--surface) 88%,transparent);border-bottom:1px solid var(--border)}.brand{display:flex;gap:.8rem;align-items:center}.brand-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--surface2);box-shadow:inset 0 0 0 1px var(--border)}h1{font-size:1.3rem;line-height:1.1;margin:0}.brand p{margin:.2rem 0 0;color:var(--muted);font-size:.86rem}.header-actions{display:flex;gap:.5rem}.ghost,.primary,.danger-btn{border:1px solid var(--border);border-radius:999px;padding:.72rem 1rem;background:var(--surface);color:var(--text);min-height:44px}.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:750}.danger-btn{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger),var(--border) 50%)}button:hover{filter:brightness(.98)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus);outline-offset:3px}.statusbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;max-width:1180px;margin:0 auto}.progress-wrap{display:flex;align-items:center;gap:.5rem;min-width:230px}.progress-wrap progress{width:130px;height:12px;accent-color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;border:1px solid var(--border);padding:.28rem .62rem;background:var(--surface);color:var(--muted);font-size:.84rem;font-weight:700}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.danger{color:var(--danger)}main{max-width:1180px;margin:0 auto;padding:0 1rem 2rem}.view{display:none;animation:fade .18s ease}.view.active{display:block}@keyframes fade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem;padding:.45rem max(.45rem,env(safe-area-inset-left)) calc(.45rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(18px)}.bottom-nav button{border:0;background:transparent;color:var(--muted);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .2rem;min-height:58px;font-size:1.08rem}.bottom-nav button span{font-size:.72rem}.bottom-nav button.active{background:var(--surface2);color:var(--accent);font-weight:800}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;align-items:stretch}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.panel h2,.card h2,.card h3{margin-top:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.module{display:flex;flex-direction:column;gap:.7rem;text-align:left;min-height:155px}.module .icon{font-size:2rem}.module button,.wide-btn{align-self:flex-start}.searchbar{display:flex;gap:.6rem;align-items:center;margin:1rem 0}.searchbar input,.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:16px;padding:.8rem 1rem;background:var(--surface);color:var(--text);min-height:46px}.field{display:grid;gap:.35rem;margin:.7rem 0}.field label{font-weight:750}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.8rem 0}.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tabs button{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);padding:.55rem .85rem}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.chapter-list{display:grid;gap:.8rem}.chapter-content{font-size:1.02rem}.chapter-content ul,.chapter-content ol{padding-left:1.2rem}.chapter-content code,.formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:.1rem .35rem}.formula{display:block;padding:.8rem;margin:.75rem 0;white-space:normal}.note{border-left:5px solid var(--accent);background:var(--surface2);padding:.8rem;border-radius:16px;margin:.8rem 0}.quiz-options{display:grid;gap:.6rem;margin:1rem 0}.option{display:flex;gap:.65rem;align-items:flex-start;border:1px solid var(--border);border-radius:16px;padding:.8rem;background:var(--surface2);cursor:pointer}.option input{margin-top:.3rem;transform:scale(1.2)}.result{border-radius:16px;padding:.85rem;margin-top:.8rem}.result.ok{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok),var(--border) 60%)}.result.bad{background:color-mix(in srgb,var(--danger) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--danger),var(--border) 60%)}table{border-collapse:collapse;width:100%;overflow:hidden;border-radius:16px;font-size:.95rem}th,td{border:1px solid var(--border);padding:.65rem;text-align:left}th{background:var(--surface2)}.table-scroll{overflow-x:auto}.checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}.checkitem{display:flex;gap:.6rem;align-items:flex-start;padding:.75rem;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}.checkitem input{transform:scale(1.25);margin-top:.25rem}.svgbox{margin:1rem 0;background:var(--surface2);border:1px solid var(--border);border-radius:20px;overflow:hidden;padding:.5rem}.svgbox svg{width:100%;height:auto;display:block}.tool-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.calc-output{font-weight:800;font-size:1.1rem;padding:.85rem;border-radius:16px;background:var(--surface2);min-height:3.2rem}.glossary-list{display:grid;gap:.7rem}.term{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:.8rem}.term strong{color:var(--accent)}.small{font-size:.86rem;color:var(--muted)}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;border:1px solid var(--border);border-bottom-width:3px;border-radius:8px;padding:.05rem .35rem;background:var(--surface2)}.pillrow{display:flex;gap:.4rem;flex-wrap:wrap}.hidden{display:none!important}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:var(--text);color:var(--surface);padding:.7rem 1rem;border-radius:999px;box-shadow:var(--shadow);z-index:60;max-width:90vw;text-align:center}.sim-grid{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:1rem;align-items:start}.sim-canvas{background:var(--surface2);border:1px solid var(--border);border-radius:18px;padding:.5rem}.import-box{display:none}@media (max-width:760px){html{font-size:17px}.hero{grid-template-columns:1fr}.statusbar{align-items:flex-start;flex-direction:column}.progress-wrap{width:100%;justify-content:space-between}.progress-wrap progress{flex:1}.sim-grid{grid-template-columns:1fr}.app-header{align-items:flex-start}.brand-icon{width:42px;height:42px}.header-actions{flex-direction:column}.bottom-nav button span{font-size:.65rem}.bottom-nav{grid-template-columns:repeat(6,1fr)}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
