:root{--bg:#f5f5f0;--paper:#fffefa;--ink:#183632;--muted:#6b7c78;--line:#e1e7df;--green:#17594e;--green-soft:#e4f0e7;--peach:#ffefe3;--danger:#a3423b;--shadow:0 8px 28px rgba(28,52,44,.055);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{margin:0;min-height:100%;background:var(--bg)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.43;cursor:default}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1.5px;line-height:1.12}h2{font-size:21px;letter-spacing:-.75px}h3{font-size:16px;letter-spacing:-.3px}p{line-height:1.55}label{display:block;font-weight:650;font-size:13px;margin-bottom:8px}strong{font-weight:710}.startup{padding:40vh 24px;text-align:center;color:var(--muted)}
.shell{max-width:650px;margin:0 auto;padding:20px 18px 110px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:830;letter-spacing:-.8px}.brand-mark{width:32px;height:32px;border-radius:11px;background:var(--green);color:white;display:grid;place-items:center;font-weight:750}.micro{font-size:12px;color:var(--muted)}.header-meta{border:1px solid var(--line);padding:8px 10px;border-radius:20px;background:var(--paper);font-size:11px;color:var(--muted)}.intro{margin-bottom:18px}.intro .eyebrow{margin-bottom:8px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.7px;color:var(--green);font-weight:850}.subtitle{color:var(--muted);font-size:13px;margin-top:8px;line-height:1.6}
.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:20px;margin-bottom:14px;box-shadow:var(--shadow)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.card-heading{display:flex;align-items:center;gap:10px;font-size:18px;letter-spacing:-.6px;font-weight:800}.symbol{height:35px;width:35px;display:grid;place-items:center;font-size:19px;background:var(--green-soft);border-radius:12px}.symbol.evening{background:var(--peach)}.badge{font-size:11px;font-weight:700;background:var(--green-soft);color:var(--green);border-radius:16px;padding:7px 10px;white-space:nowrap}.badge.muted{background:#f2f2ee;color:var(--muted)}.question{margin-top:20px}.question:first-child{margin-top:0}.question-label{font-size:13px;font-weight:720;margin-bottom:10px}.choices{display:grid;gap:7px;grid-template-columns:repeat(4,minmax(0,1fr))}.choices.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.option{border:1px solid #e3e9e2;background:#f5f7f3;border-radius:11px;color:#38534e;padding:12px 5px;min-height:47px;font-size:11px;font-weight:640;line-height:1.22;display:grid;place-items:center;text-align:center}.option.selected{border-color:#14594a;background:#e0ede3;box-shadow:0 0 0 1px #14594a inset;color:#154b40}.option:hover{border-color:#7aaba0}.field{border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px 13px;color:var(--ink);width:100%;min-height:47px}.field:focus,.option:focus-visible,.btn:focus-visible,.nav-btn:focus-visible{outline:3px solid #91b9a1;outline-offset:2px}.textarea{resize:vertical;min-height:73px}.helper{font-size:11px;color:var(--muted);margin-top:6px}.divider{height:1px;background:var(--line);margin:19px 0}.btn{padding:12px 15px;border-radius:13px;font-weight:750;font-size:13px;border:1px solid transparent;background:var(--green);color:white;min-height:45px;display:inline-flex;align-items:center;justify-content:center;gap:9px}.btn.secondary{background:var(--paper);color:var(--green);border-color:#c6d9ce}.btn.ghost{background:#edf2ed;color:var(--ink)}.btn.danger{background:#fff0ed;color:var(--danger);border-color:#eccbc6}.btn.full{width:100%}.btn-row{display:flex;gap:9px;flex-wrap:wrap}.btn-row .btn{flex:1}.save-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.saved{font-size:11px;color:var(--muted)}.lock-icon{height:58px;width:58px;border-radius:19px;background:var(--green-soft);display:grid;place-items:center;font-size:27px;margin-bottom:17px}.auth{max-width:450px;margin:8vh auto 0;padding:15px}.auth .card{padding:25px}.auth h1{margin:8px 0 10px}.auth p{font-size:13px;color:var(--muted)}.auth form{margin-top:23px}.auth input{margin-bottom:14px}.notice{background:var(--green-soft);border-radius:13px;padding:13px;color:#295548;font-size:12px;line-height:1.55;margin-top:14px}.notice.warn{background:#fff2dd;color:#785331}.notice.error{background:#fce9e7;color:var(--danger)}.toast{position:fixed;z-index:99;bottom:92px;left:50%;transform:translate(-50%,10px);opacity:0;pointer-events:none;background:#203d36;color:#fff;padding:11px 18px;border-radius:18px;box-shadow:0 12px 40px #12261c55;font-size:12px;max-width:90%;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.nav{position:fixed;bottom:0;left:0;right:0;background:#fffefaeb;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:4;padding:9px 12px max(9px,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:2px}.nav-btn{flex:1;max-width:155px;background:transparent;color:#798981;border:0;border-radius:12px;padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700}.nav-btn.active{color:var(--green);background:#ebf3eb}.nav-emoji{font-size:19px;line-height:1.2}.date-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.date-bar label{margin:0}.date-bar input{width:160px;height:40px;padding:7px 9px;font-size:12px}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{background:#f2f6f0;border-radius:14px;padding:15px}.metric .value{font-weight:850;font-size:28px;letter-spacing:-1px}.metric .text{font-size:11px;color:var(--muted);line-height:1.4}.small-list{display:flex;flex-direction:column;gap:8px}.history-item{width:100%;text-align:left;background:#fafbf8;border:1px solid var(--line);border-radius:13px;padding:13px;display:flex;justify-content:space-between;align-items:center}.history-item:hover{border-color:#a5c3b1}.history-item .date{font-size:13px;font-weight:750}.history-item .desc{font-size:11px;color:var(--muted);margin-top:4px}.history-item .pill{font-size:11px;background:#eff2ea;color:#536a5a;padding:6px 8px;border-radius:30px}.history-item .pill.problem{background:#fce9df;color:#9a5438}.bar-chart{height:140px;display:flex;align-items:end;gap:5px;margin:20px 0 6px;border-bottom:1px solid #dce7da}.bar-chart .bar{flex:1;min-width:2px;max-height:100%;background:#d3e3d2;border-radius:4px 4px 0 0;position:relative}.bar-chart .bar.ha{background:#d28a65}.bar-chart .bar .tick{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted)}.muted{color:var(--muted)}.mt{margin-top:12px}.mb{margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.right{text-align:right}.compact{font-size:12px}.settings-detail{color:var(--muted);font-size:12px;line-height:1.55;margin:6px 0 15px}.status-line{display:flex;gap:9px;align-items:center;font-size:12px;margin:9px 0;color:var(--muted)}.status-dot{height:8px;width:8px;border-radius:50%;background:#c89a4d}.status-dot.ok{background:#428e66}.status-dot.off{background:#c89a4d}.links{display:flex;gap:12px;flex-wrap:wrap}.text-btn{background:none;border:none;color:var(--green);font-size:12px;font-weight:700;text-decoration:underline;padding:8px 0}.backup-list{max-height:190px;overflow-y:auto;margin:10px 0}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:10px 1px}.backup-row span{font-size:12px;color:var(--muted)}.backup-row button{font-size:12px}.daylabel{padding:5px 10px;border-radius:20px;background:#ecf1e7;font-size:11px;color:#54705e}.actionhint{margin-top:8px;font-size:11px;color:var(--muted)}.hint-head{font-weight:790;color:var(--ink);font-size:13px;margin:10px 0 4px}@media(min-width:650px){.shell{padding-top:34px}.nav{max-width:510px;margin:0 auto;left:0;right:0;border-radius:20px 20px 0 0;border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:360px){.shell{padding-left:12px;padding-right:12px}.card{padding:16px}.option{font-size:10px;padding:10px 2px}.card-heading{font-size:17px}}
.choices.split-choice{grid-template-columns:repeat(2,minmax(0,1fr))}.card[id]{scroll-margin-top:20px}.field[type="time"]{appearance:auto}.field[type="date"]{appearance:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.card-heading .micro{font-weight:500}.question-label.inline{margin:0}.bar-chart .bar{height:18%}.bar-chart .bar.ha{height:100%}
/* Infusion timeline: compact enough for Android, with independently editable entries. */
.big-date{font-weight:800;font-size:15px;letter-spacing:-.3px;line-height:1.4;margin-top:5px}
.infusion-item{display:flex;align-items:center;justify-content:space-between;gap:9px;background:#fafbf8;border:1px solid var(--line);border-radius:13px;padding:12px;flex-wrap:wrap}
.infusion-info{display:flex;flex-direction:column;align-items:start;gap:7px}
.infusion-info .date{font-size:13px;font-weight:750}
.infusion-info .pill{font-size:10px;border-radius:20px;padding:5px 9px;background:#f5efe2;color:#8a682f}
.infusion-info .pill.done{background:#e4f0e7;color:#1c654c}
.infusion-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.infusion-actions .text-btn{padding:6px 3px;text-decoration:none;font-size:11px}
.danger-text{color:#a3423b}
.cycle-list{margin:9px 0 17px;border-top:1px solid var(--line)}
.cycle-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}
.cycle-row span{color:var(--muted)}
.cycle-row strong{font-size:12px}
@media(max-width:390px){.nav{padding-left:6px;padding-right:6px;gap:0}.nav-btn{font-size:9px;padding-left:1px;padding-right:1px}.nav-emoji{font-size:17px}.infusion-actions{width:100%}}

.choices.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
