:root{--bg: #10151a;--panel: #171e25;--panel-2: #1e262e;--border: #2a343d;--text: #e8edf2;--muted: #8f9ba7;--accent: #5eb0ef;--overdue: #f0777c;--act: #f0b849;--booked: #6fd08c;--radius: 10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}.app{max-width:640px;margin:0 auto;padding:0 14px calc(28px + env(safe-area-inset-bottom))}header.top{position:sticky;top:0;z-index:5;background:var(--bg);padding:14px 0 10px;border-bottom:1px solid var(--border);margin-bottom:16px}header.top h1{font-size:19px;margin:0;letter-spacing:-.2px}header.top h1 span{color:var(--accent)}header.top .date{color:var(--muted);font-size:13px;margin-top:2px}nav.tabs{display:flex;gap:4px;margin-top:12px;overflow-x:auto}nav.tabs a{flex:0 0 auto;padding:7px 13px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--muted);text-decoration:none;font-size:14px;white-space:nowrap}nav.tabs a.active{background:var(--accent);border-color:var(--accent);color:#08121b;font-weight:600}section{margin-bottom:22px}section>h2{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin:0 0 9px;display:flex;align-items:center;gap:7px}section>h2 .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}section.overdue h2 .dot{background:var(--overdue)}section.act_now h2 .dot{background:var(--act)}section.booked h2 .dot{background:var(--booked)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:13px 14px;margin-bottom:9px}.row-title{font-weight:600;font-size:16px}.row-meta{color:var(--muted);font-size:13.5px;margin-top:2px}.row-meta.overdue{color:var(--overdue)}.row-meta.booked{color:var(--booked)}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}button,.btn{font:inherit;font-size:15px;padding:11px 15px;min-height:44px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:active,.btn:active{transform:translateY(1px)}button.primary{background:var(--accent);border-color:var(--accent);color:#08121b;font-weight:600}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:default}a.call{color:var(--accent);text-decoration:none;font-size:14px}.field{margin-bottom:14px}.field label{display:block;font-size:13.5px;color:var(--muted);margin-bottom:5px}input,select,textarea{width:100%;font:inherit;font-size:16px;padding:11px 12px;min-height:44px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text)}textarea{min-height:74px;resize:vertical}.field-row{display:flex;gap:10px}.field-row .field{flex:1}.empty{color:var(--muted);padding:22px 4px;text-align:center;font-size:14.5px}.error{background:#33191b;border:1px solid #6d2b30;color:#f3b0b4;padding:11px 13px;border-radius:8px;margin-bottom:14px;font-size:14.5px}.notice{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:11px 13px;border-radius:8px;font-size:13.5px;margin-bottom:16px}.spinner{color:var(--muted);padding:26px 4px;text-align:center}.preset-group{margin-bottom:18px}.preset-group h3{font-size:14px;margin:0 0 8px;color:var(--text)}.preset{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--border);border-radius:8px;background:var(--panel);margin-bottom:7px;cursor:pointer;min-height:48px}.preset.on{border-color:var(--accent);background:var(--panel-2)}.preset input[type=checkbox]{width:21px;height:21px;min-height:0;flex:0 0 auto;accent-color:var(--accent)}.preset .p-title{font-size:15px}.preset .p-sub{color:var(--muted);font-size:12.5px}.dose{display:flex;align-items:center;gap:11px}.dose .time{font-variant-numeric:tabular-nums;font-weight:600;font-size:15px;min-width:52px}.dose .grow{flex:1;min-width:0}.state{font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.state.due{color:var(--act);border-color:var(--act)}.state.missed{color:var(--overdue);border-color:var(--overdue)}.state.taken{color:var(--booked);border-color:var(--booked)}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}.login form{width:100%;max-width:330px}.login h1{font-size:25px;margin:0 0 6px;text-align:center}.login h1 span{color:var(--accent)}.login p{color:var(--muted);text-align:center;margin:0 0 22px;font-size:14px}.login button{width:100%}@media(min-width:700px){.app{padding-top:6px}}
