:root{--ground:#f6f7f5;--surface:#fff;--ink:#15171a;--ink-2:#4a4f57;--line:#dfe2dd;--accent:#0f6e66;--accent-ink:#fff;--accent-soft:#e3f1ef;--warn:#c2650a;--warn-bg:#fdf3e7;--danger:#b3261e;--radius:12px;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-head:"Space Grotesk", var(--font-body);--tap:44px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font:16px/1.5 var(--font-body);margin:0}h1,h2{font-family:var(--font-head);margin:0 0 .5rem;line-height:1.2}h1{font-size:1.25rem}h2{font-size:1.05rem}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.muted{color:var(--ink-2)}.small{font-size:.85rem}.prewrap{white-space:pre-wrap;margin:0}.shell{min-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.page{gap:1rem;max-width:40rem;margin:0 auto;padding:1rem;display:grid}.topbar{z-index:2;grid-template-columns:var(--tap) 1fr auto;background:var(--ground);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.5rem 1rem;display:grid;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.topbar__back{width:var(--tap);height:var(--tap);color:var(--ink);place-items:center;font-size:2rem;text-decoration:none;display:grid}.bottomnav{z-index:2;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.bottomnav a,.bottomnav button{min-height:56px;font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;font-weight:600;text-decoration:none;display:grid}.bottomnav [aria-current=page]{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:.75rem;padding:1rem;display:grid}.cards{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.item{color:inherit;gap:.4rem;text-decoration:none}.item--warn{border-color:var(--warn)}.item__top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.item__name{font-weight:600}.item__cat{color:var(--ink-2);font-size:.85rem}.item__meta{color:var(--ink-2);justify-content:space-between;gap:.5rem;font-size:.9rem;display:flex}.badge{background:var(--warn-bg);color:var(--warn);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.tiles{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;display:grid}.tile__n{font-family:var(--font-head);font-size:1.3rem;font-weight:700}.tile__l{color:var(--ink-2);font-size:.8rem}.tile--warn{background:var(--warn-bg);border-color:var(--warn)}.tile--warn .tile__n{color:var(--warn)}.level{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.level__fill{background:var(--accent);height:100%;display:block}.level--warn .level__fill{background:var(--warn)}.stats{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:0;display:grid}.stats dt{color:var(--ink-2);font-size:.8rem}.stats dd{margin:0;font-weight:600}.math{color:var(--ink-2);margin:0;padding-left:1.2rem;font-size:.9rem}.history{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.history li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:0 .5rem;padding-bottom:.5rem;display:grid}.history__note{color:var(--ink-2);grid-column:1/-1;font-size:.85rem}.actions{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;display:grid}.search,input,select,textarea{width:100%;min-height:var(--tap);font:inherit;color:var(--ink);background:var(--surface);border:1px solid #b9beb6;border-radius:8px;padding:.6rem .75rem}textarea{resize:vertical}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--accent)}.chips{gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);min-height:36px;font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;padding:0 .9rem}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.form fieldset{border:0;gap:.75rem;margin:0;padding:0;display:grid}.form legend{font-family:var(--font-head);margin-bottom:.5rem;font-weight:700}.field{gap:.25rem;display:grid}.field label{font-size:.9rem;font-weight:600}.field__hint,.field__error{color:var(--ink-2);margin:0;font-size:.85rem}.field__error{color:var(--danger)}.field--error input,.field--error select{border-color:var(--danger)}.row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.check{min-height:var(--tap);align-items:center;gap:.6rem;display:flex}.stepper{grid-template-columns:var(--tap) 1fr var(--tap);gap:.5rem;display:grid}.stepper input{text-align:center}.stepper button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;font-size:1.4rem}.segmented{border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.segmented button{min-height:var(--tap);background:var(--surface);font:inherit;cursor:pointer;border:0;font-weight:600}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.btn{min-height:var(--tap);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;place-items:center;padding:0 1rem;font-weight:600;text-decoration:none;display:inline-grid}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--secondary{background:var(--surface);color:var(--accent);border-color:var(--accent)}.btn--danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.link{min-height:var(--tap);font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.notice{border:1px solid var(--line);background:var(--accent-soft);border-radius:10px;padding:.75rem 1rem}.notice--warn{background:var(--warn-bg);border-color:var(--warn);color:#7a3f06}.notice--error{border-color:var(--danger);color:var(--danger);background:#fbeaea}.empty{text-align:center;justify-items:center;gap:1rem;padding:2rem 1rem;display:grid}.auth{gap:1rem;max-width:26rem;margin:0 auto;padding:2rem 1rem;display:grid}.brand{color:var(--accent);text-align:center;font-size:1.8rem}.auth__alt{text-align:center;margin:0}.auth__alt .link{justify-self:center}.words{background:var(--ground);border-radius:8px;grid-template-columns:repeat(2,1fr);gap:.4rem 1rem;margin:0;padding:.75rem;font-family:ui-monospace,SF Mono,Menlo,monospace;list-style:none;display:grid}.words__n{width:1.8em;color:var(--ink-2);text-align:right;margin-right:.4em;display:inline-block}.strength{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.strength span{background:var(--line);border-radius:2px;height:4px}.strength--1 span:first-child{background:var(--warn)}.strength--2 span:nth-child(-n+2),.strength--3 span{background:var(--accent)}@media (min-width:40rem){.words{grid-template-columns:repeat(3,1fr)}}.tiles--2{grid-template-columns:repeat(2,1fr)}.badge--muted{background:var(--line);color:var(--ink-2)}.slots{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.slot{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.15rem .75rem;padding-bottom:.75rem;display:grid}.slot:last-child{border-bottom:0;padding-bottom:0}.slot__name{color:var(--ink);font-weight:600;text-decoration:none}.slot__dose{grid-column:1;font-size:.85rem}.slot__actions{grid-area:1/2/span 2;gap:.5rem;display:flex}.slot__status{color:var(--accent);grid-area:1/2/span 2;font-weight:600}.slot--skipped .slot__status,.slot--taken .slot__name,.slot--skipped .slot__name{color:var(--ink-2)}.calc{background:var(--accent-soft);border-radius:8px;margin:0;padding:.75rem}.projection{border:1px solid var(--accent);border-radius:var(--radius);gap:.5rem;padding:1rem;display:grid}.row--3{grid-template-columns:1fr 1fr auto;margin-top:.5rem}.field__label{font-size:.9rem;font-weight:600}.plain{margin:0;padding-left:1.1rem}details summary{min-height:var(--tap);cursor:pointer;color:var(--accent);align-items:center;font-weight:600;display:flex}.syncbar{z-index:3;text-align:center;background:var(--accent-soft);color:var(--accent);padding:.4rem 1rem;font-size:.85rem;position:sticky;top:0}.syncbar--offline{background:var(--warn-bg);color:#7a3f06}.topbar__actions{gap:.5rem;display:flex}.channel{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.channel:last-child{border-bottom:0}.channel p{margin:.15rem 0 0}.previews{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.previewnote{background:var(--ground);border:1px solid var(--line);border-radius:12px;gap:.15rem;padding:.75rem;font-size:.95rem;display:grid}.previewnote__app{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.serverview{background:var(--ground);border:1px solid var(--line);border-radius:8px;margin:0;padding:.75rem;font-size:.8rem;overflow-x:auto}.topbar__actions{align-items:center}.danger{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.danger h3{color:var(--danger);font-family:var(--font-head);margin:0}.seegroup+.seegroup{margin-top:.75rem}.seegroup h3{font-family:var(--font-head);margin:0 0 .25rem;font-size:.95rem}.seelist{gap:.5rem;margin:0;display:grid}.seelist dt{font-weight:600}.seelist dd{color:var(--ink-2);margin:0;font-size:.9rem}.commit{word-break:break-all}
