:root{--color-bg:#f3f2f2;--color-surface:#eae9e9;--color-text:#201e1d;--color-accent:#0088b0;--color-accent-2:#d6006c;--color-divider:color-mix(in srgb,#201e1d 16%,transparent);--n100:#f8f4f4;--n200:#eae7e7;--n300:#d7d3d3;--n400:#bab6b6;--n500:#9b9797;--n600:#7d7979;--n700:#605d5d;--n800:#444141;--n900:#2d2b2b;--a100:#e9f8ff;--a200:#cbeeff;--a300:#99e0ff;--a400:#62c5ee;--a500:#38a6cf;--a600:#1186ac;--a700:#006786;--a800:#004961;--a900:#0a303e;--m100:#fff1f4;--m200:#ffdee6;--m300:#ffc0d0;--m400:#ff90b1;--m500:#ff458e;--m600:#d82071;--m700:#aa0b56;--m800:#790e3d;--m900:#4b1528;--level-green:#1a7f37;--level-orange:#b45309;--level-red:#c0271c;--sp1:5px;--sp2:10px;--sp3:15px;--sp4:20px;--sp6:30px;--sp8:40px;--radius:8px;--radius-sm:6px;--radius-lg:14px;--scale:1;--line-height:1.6;--line-height-heading:1.15;--shadow-sm:0 1px 2px rgba(16,24,32,.06), 0 1px 3px rgba(16,24,32,.05);--shadow-md:0 2px 4px rgba(16,24,32,.06), 0 4px 12px rgba(16,24,32,.07);--shadow-lg:0 8px 24px rgba(16,24,32,.1), 0 2px 6px rgba(16,24,32,.06);--ring:0 0 0 3px color-mix(in srgb,var(--color-accent) 28%,transparent)}:root[data-dark=true]{--color-bg:#1b1a1a;--color-surface:#242222;--color-text:#f2efef;--color-divider:color-mix(in srgb,#f2efef 18%,transparent);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 2px 6px rgba(0,0,0,.45);--shadow-lg:0 10px 28px rgba(0,0,0,.55);--n100:#2d2b2b;--n200:#3a3838;--n300:#4a4747;--n400:#5c5959;--n500:#726e6e;--n600:#8d8989;--n700:#a8a4a4;--n800:#c7c3c3;--n900:#eeeaea;--level-green:#3fb950;--level-orange:#d29922;--level-red:#f2695f}:root[data-contrast=true]{--color-text:#000;--color-bg:#fff;--color-surface:#fff;--color-divider:#000;--n700:#000;--n600:#111;--level-green:#006400;--level-orange:#8a4b00;--level-red:#a80000}:root[data-contrast=true][data-dark=true]{--color-text:#fff;--color-bg:#000;--color-surface:#000;--color-divider:#fff;--n700:#fff;--n600:#f0f0f0;--color-accent:#4fd2ff;--a700:#8be3ff;--a100:#00323f;--a300:#0a5a70;--m100:#3a0a1c;--m700:#ff9db5;--level-green:#5ee27a;--level-orange:#ffc061;--level-red:#ff8a7a}:root[data-dyslexia=true]{--font-body:"Comic Sans MS","Comic Sans",cursive}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;padding:10px 16px;background:var(--color-accent);color:#fff;z-index:100;clip:auto}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body,"Source Serif 4"),Georgia,serif;font-size:calc(19px * var(--scale));line-height:var(--line-height)}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{background:none;border:none;cursor:pointer}input,select,textarea{background:var(--n100);border:1px solid var(--n400);border-radius:var(--radius);padding:10px 12px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:root[data-contrast=true] :focus-visible{outline:3px solid var(--color-text);outline-offset:2px}:root[data-underline=true] a:not(.btn):not(.chip),:root[data-underline=true] .btn-ghost{text-decoration:underline;text-underline-offset:3px}:root[data-targets=large] .btn,:root[data-targets=large] .chip,:root[data-targets=large] button,:root[data-targets=large] input[type=checkbox]+label,:root[data-targets=large] .bottom-nav a{min-height:48px}:root[data-targets=large] .chip{padding:12px 18px}:root[data-targets=large] input[type=checkbox],:root[data-targets=large] input[type=radio]{width:24px;height:24px}.hair{border:none;border-top:1px solid var(--color-divider);margin:0}.hair-thick{border:none;border-top:2px solid var(--color-text);margin:0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp3)}.flex{display:flex;align-items:center;gap:var(--sp2)}.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:14px;font-weight:600;color:var(--a700)}.gloss{font-size:17px;color:var(--n700)}.measure{max-width:65ch}:root[data-motion=reduced] *,:root[data-motion=reduced] *:before,:root[data-motion=reduced] *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}h1,h2,h3{line-height:var(--line-height-heading)}h1,h2{text-wrap:balance}h3{text-wrap:pretty}h1{font-size:calc(clamp(32px,7.5vw,46px) * var(--scale));font-weight:700;letter-spacing:-.022em;margin:0 0 var(--sp3)}h2{font-size:calc(clamp(23px,4.2vw,28px) * var(--scale));font-weight:600;letter-spacing:-.012em;margin:0 0 var(--sp2)}h3{font-size:calc(21px * var(--scale));font-weight:600;letter-spacing:-.006em;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);padding:12px 20px;font-size:calc(17px * var(--scale));font-weight:600;text-decoration:none;line-height:1.2;transition:transform .12s ease,background .15s ease,box-shadow .15s ease,border-color .15s ease}.btn:active{transform:translateY(1px) scale(.995)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--ring)}.btn-solid{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-solid:hover:not(:disabled){background:var(--a700);box-shadow:var(--shadow-md)}.btn-outline{border:1px solid var(--n400);background:var(--color-bg)}.btn-outline:hover:not(:disabled){background:var(--n100);border-color:var(--color-text)}.btn-ghost{color:var(--color-accent);background:transparent}.btn-ghost:hover{text-decoration:underline}.btn-block{width:100%}.btn-lg{padding:16px 24px;font-size:calc(19px * var(--scale));min-height:56px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp3)}.field label{font-size:15px;font-weight:600}.field input{width:100%}.card{border:1px solid var(--color-divider);border-radius:var(--radius);padding:var(--sp4);background:var(--color-surface);box-shadow:var(--shadow-sm)}.chip{border:1px solid var(--n400);border-radius:999px;padding:6px 14px;font-size:15px;cursor:pointer;background:transparent;transition:background .15s ease,border-color .15s ease}.chip:hover{border-color:var(--color-text)}.chip.active{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.tag{display:inline-block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:2px;font-weight:700}.tag-high{background:var(--m200);color:var(--m800)}.tag-med{background:var(--n200);color:var(--n800)}.tag-low{background:var(--a100);color:var(--a800)}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.on{background:var(--color-accent)}.status-dot.off{background:var(--n400)}.status-dot.alert{background:var(--color-accent-2)}.level-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none;border:1px solid color-mix(in srgb,var(--color-text) 35%,transparent)}.level-dot.green{background:var(--level-green)}.level-dot.orange{background:var(--level-orange)}.level-dot.red{background:var(--level-red)}.progress-bar{height:10px;background:var(--n200);border-radius:8px;overflow:hidden}.progress-bar>span{display:block;height:100%;background:var(--color-accent);transition:width .5s ease}.banner{padding:14px 18px;border-left:3px solid;margin:var(--sp3) 0;font-size:calc(17px * var(--scale));border-radius:0 4px 4px 0}.banner.info{background:var(--a100);border-color:var(--color-accent)}.banner.warn{background:var(--m100);border-color:var(--color-accent-2)}.banner.error{background:var(--m100);border-color:var(--m700)}.error-text{color:var(--m700);font-size:15px;margin-top:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp3);text-align:center;padding:var(--sp8) var(--sp4);border:1px dashed var(--n400);border-radius:6px;color:var(--n700)}.empty-state i{font-size:40px;color:var(--n500)}.spinner{width:20px;height:20px;border:2.5px solid var(--n300);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{display:flex;flex-direction:column;min-height:100%}.topbar{padding:calc(var(--sp3) + env(safe-area-inset-top)) calc(var(--sp4) + env(safe-area-inset-right)) var(--sp3) calc(var(--sp4) + env(safe-area-inset-left));border-bottom:2px solid var(--color-text);display:flex;align-items:center;gap:var(--sp3);position:sticky;top:0;background:var(--color-bg);z-index:20}.logo{font-size:calc(24px * var(--scale));font-weight:700;display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}.logo i{color:var(--color-accent)}.topbar .spacer{flex:1}.readbtn{border:1px solid var(--color-accent);color:var(--color-accent);padding:10px 16px;border-radius:var(--radius);font-size:calc(15px * var(--scale));font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.readbtn.on{background:var(--color-accent);color:#fff}.reader-banner{background:var(--a100);border-bottom:1px solid var(--a300);padding:10px var(--sp4);display:flex;align-items:center;gap:10px;font-size:15px}.pulse-dot{width:10px;height:10px;border-radius:50%;background:var(--color-accent);animation:pulse 1.4s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}main.content{flex:1;max-width:900px;width:100%;margin:0 auto;padding:var(--sp6) calc(var(--sp4) + env(safe-area-inset-right)) calc(var(--sp8) + 70px + env(safe-area-inset-bottom)) calc(var(--sp4) + env(safe-area-inset-left))}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;border-top:1px solid var(--color-divider);background:var(--color-surface);z-index:20;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;font-size:12px;color:var(--n600);text-decoration:none;min-height:56px;justify-content:center}.bottom-nav a i{font-size:22px}.bottom-nav a.active{color:var(--color-accent)}.bottom-nav .more-sheet{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom));left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-divider);padding:var(--sp3) calc(var(--sp3) + env(safe-area-inset-right)) var(--sp3) calc(var(--sp3) + env(safe-area-inset-left));display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.bottom-nav .more-sheet a{flex-direction:row;justify-content:flex-start;gap:10px;padding:10px;border-radius:6px}.bottom-nav .more-sheet a:hover{background:var(--n100)}.safety-banner{background:var(--a100);border:1px solid var(--a300);border-radius:6px;padding:var(--sp3) var(--sp4);font-size:15px;color:var(--a900);margin-bottom:var(--sp4)}:root[data-dark=true] .safety-banner,:root[data-dark=true] .reader-banner{background:#0d2b36;border-color:#1c5468;color:#d6f2ff}.list-row{display:flex;align-items:flex-start;gap:var(--sp3);padding:var(--sp3) 0;border-bottom:1px solid var(--color-divider)}.divider-section{margin-bottom:var(--sp6)}.landing-hero{text-align:center;padding:var(--sp8) var(--sp4) var(--sp6);max-width:640px;margin:0 auto}.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp3)}.home-feature{display:block;text-decoration:none;transition:border-color .15s ease}.home-feature:hover{border-color:var(--color-accent)}:root[data-motion=reduced] .home-feature{transition:none}.auth-card{max-width:420px;margin:0 auto;padding:var(--sp6)}.auth-toggle{display:flex;justify-content:center;gap:var(--sp4);margin-bottom:var(--sp4)}.auth-toggle button{font-weight:600;padding-bottom:4px;border-bottom:2px solid transparent}.auth-toggle button.active{border-color:var(--color-accent);color:var(--color-accent)}.upload-dropzone{border:2px dashed var(--n400);border-radius:8px;padding:var(--sp8) var(--sp4);text-align:center;transition:border-color .15s,background .15s}.upload-dropzone.drag{border-color:var(--color-accent);background:var(--a100)}.term-popover{position:absolute;background:var(--color-text);color:var(--color-bg);padding:10px 14px;border-radius:var(--radius-sm);font-size:15px;max-width:280px;z-index:50;box-shadow:var(--shadow-lg)}.page-head{margin-bottom:var(--sp6)}.page-head h1{margin-bottom:var(--sp2)}.page-head .lede{font-size:calc(18px * var(--scale));color:var(--n700);margin:0;max-width:62ch}.card-panel{position:relative;overflow:hidden;padding:var(--sp4) var(--sp4) var(--sp4) calc(var(--sp4) + 4px)}.card-panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:transparent}.card-panel.tone-accent:before{background:var(--color-accent)}.card-panel.tone-alert:before{background:var(--color-accent-2)}.card-head{display:flex;align-items:center;gap:var(--sp2);margin-bottom:var(--sp2)}.card-head h2{margin:0;font-size:calc(21px * var(--scale))}.card-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;flex:none;font-size:20px;background:var(--n200);color:var(--n800)}.card-icon.tone-accent{background:var(--a100);color:var(--a700)}.card-icon.tone-alert{background:var(--m100);color:var(--m700)}:root[data-dark=true] .card-icon.tone-accent{background:#0d2b36;color:#7fdcff}:root[data-dark=true] .card-icon.tone-alert{background:#3a0a1c;color:#ff9db5}.card-count{margin-left:auto;font-size:15px;font-weight:700;min-width:28px;height:28px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--n200);color:var(--n800)}.card-body>:last-child{margin-bottom:0}.card-action{display:inline-flex;align-items:center;gap:6px;margin-top:var(--sp3);color:var(--color-accent);font-weight:600;font-size:calc(16px * var(--scale))}a.card-link{display:block;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}a.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--n400)}a.card-link:hover .card-action{text-decoration:underline}a.card-link:focus-visible{box-shadow:var(--ring)}:root[data-motion=reduced] a.card-link{transition:none}:root[data-motion=reduced] a.card-link:hover{transform:none}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp3);align-items:start}.grid-cards>.divider-section{margin-bottom:0}.span-all{grid-column:1/-1}.mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp2)}.mini-list li{display:flex;flex-direction:column;gap:1px;padding-bottom:var(--sp2);border-bottom:1px solid var(--color-divider);font-size:calc(17px * var(--scale))}.mini-list li:last-child{border-bottom:none;padding-bottom:0}.mini-list .gloss{font-size:15px}.med-card{display:flex;gap:var(--sp3);align-items:flex-start;border:1px solid var(--color-divider);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:var(--sp3) var(--sp4);margin-bottom:var(--sp3)}.med-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:10px;background:var(--a100);color:var(--a700);font-size:21px}:root[data-dark=true] .med-mark{background:#0d2b36;color:#7fdcff}.med-main{flex:1;min-width:0}.med-title{display:flex;align-items:baseline;gap:var(--sp2);flex-wrap:wrap}.med-title h3{margin:0}.med-dose{font-weight:700;font-size:calc(17px * var(--scale));color:var(--a700);background:var(--a100);border-radius:999px;padding:1px 10px;white-space:nowrap}:root[data-dark=true] .med-dose{background:#0d2b36;color:#7fdcff}.med-sub{margin:2px 0 0;font-size:15px}.med-purpose{margin:var(--sp2) 0 0;font-size:calc(16px * var(--scale))}.med-toggle{margin-top:var(--sp2);font-size:15px;padding:0}.med-detail{margin:var(--sp2) 0 0;padding-top:var(--sp2);border-top:1px solid var(--color-divider);display:grid;grid-template-columns:auto 1fr;gap:4px var(--sp3);font-size:15px}.med-detail dt{font-weight:600;color:var(--n700)}.med-detail dd{margin:0}@media (max-width:520px){.med-detail{grid-template-columns:1fr;gap:2px}.med-detail dd{margin-bottom:var(--sp2)}}.slots{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--sp2)}.slot{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:14px;font-weight:600;border:1px solid var(--color-divider);color:var(--n600);background:transparent}.slot.on{background:var(--a100);border-color:var(--a300);color:var(--a800)}.slot.on i{color:var(--color-accent)}.slot.off{opacity:.55;text-decoration:line-through}:root[data-dark=true] .slot.on{background:#0d2b36;border-color:#1c5468;color:#cdeeff}#google_translate_element,.goog-te-banner-frame,.skiptranslate iframe{display:none!important}body{top:0!important}.goog-tooltip,.goog-tooltip:hover{display:none!important}.goog-text-highlight{background:none!important;box-shadow:none!important}.lang-select{display:flex;align-items:center;gap:6px;color:var(--n700)}.lang-select i{font-size:20px;color:var(--color-accent)}.lang-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--n400);border-radius:var(--radius);padding:8px 30px 8px 10px;font-size:calc(15px * var(--scale));font-weight:600;color:var(--color-text);cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color .15s ease,box-shadow .15s ease}.lang-select select:hover{border-color:var(--color-text)}.lang-select select:focus-visible{box-shadow:var(--ring)}.translation-notice{display:flex;gap:10px;align-items:flex-start;background:var(--a100);border-bottom:1px solid var(--a300);padding:12px calc(var(--sp4) + env(safe-area-inset-right)) 12px calc(var(--sp4) + env(safe-area-inset-left));font-size:15px;color:var(--a900)}.translation-notice i{font-size:20px;flex:none;margin-top:2px}.translation-notice p{margin:0;max-width:70ch}:root[data-dark=true] .translation-notice{background:#0d2b36;border-color:#1c5468;color:#d6f2ff}.topbar-nav{display:none}@media (min-width:900px){.bottom-nav{display:none}main.content{padding-bottom:var(--sp8)}.topbar-nav{display:flex;align-items:center;gap:var(--sp1)}.topbar-nav a{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--n700);padding:8px 12px;border-radius:var(--radius);font-size:calc(16px * var(--scale));font-weight:600;transition:background .15s ease,color .15s ease}.topbar-nav a i{font-size:19px}.topbar-nav a:hover{background:var(--n100);color:var(--color-text)}.topbar-nav a.active{color:var(--color-accent);background:var(--a100)}:root[data-dark=true] .topbar-nav a.active{background:#0d2b36}}@media (max-width:520px){.topbar{flex-wrap:wrap;row-gap:var(--sp2)}.lang-select select{padding:6px 26px 6px 8px}}
