/* Lawn — Augusta palette over Millie's structure.
   Clubhouse cream ground, Masters green, badge gold, azalea for attention.
   Scoreboard convention: red means something needs looking at. */
:root{
  --bg:#F4F1E8; --surface:#FFFFFF; --surface-2:#EDE9DC; --line:#DDD6C3;
  --ink:#16261C; --ink-2:#5A6B5F; --ink-3:#95A099;

  --green:#046A38; --green-soft:#E2EFE6; --green-line:#AFD3BE;
  --gold:#8A6D14;  --gold-soft:#F7EFD4;  --gold-line:#E0CB8C;
  --azalea:#AB3A58; --azalea-soft:#F8E4E9; --azalea-line:#E4B4C2;
  --teal:#1C5F62;  --teal-soft:#DEEDEE;  --teal-line:#A6CCCE;
  --earth:#6E5133; --earth-soft:#EFE6DA; --earth-line:#D2BFA5;
  --slate:#35586F; --slate-soft:#E0EAF0; --slate-line:#AFC8D6;

  --warn:#A8342A; --warn-soft:#F9E5E2; --warn-line:#E6B3AC;

  --glass:rgba(255,255,255,.72);
  --shadow:0 1px 2px rgba(22,38,28,.06), 0 8px 24px -12px rgba(22,38,28,.20);
  --r:18px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0D1712; --surface:#15231A; --surface-2:#1D2F23; --line:#2B4033;
    --ink:#EDE9DC; --ink-2:#9BAEA1; --ink-3:#6C7F73;
    --green:#5FB585; --green-soft:#12301F; --green-line:#28553944;
    --gold:#DCBB63;  --gold-soft:#302713;  --gold-line:#57472044;
    --azalea:#E087A0; --azalea-soft:#2F1A21; --azalea-line:#5A303C44;
    --teal:#63B5B8;  --teal-soft:#112A2B;  --teal-line:#24505244;
    --earth:#C0A181; --earth-soft:#271D14; --earth-line:#4A392644;
    --slate:#8FB4CC; --slate-soft:#132430; --slate-line:#2B455644;
    --warn:#EE8478; --warn-soft:#331815; --warn-line:#5C2C2644;
    --glass:rgba(21,35,26,.74);
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 28px -14px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --bg:#0D1712; --surface:#15231A; --surface-2:#1D2F23; --line:#2B4033;
  --ink:#EDE9DC; --ink-2:#9BAEA1; --ink-3:#6C7F73;
  --green:#5FB585; --green-soft:#12301F; --green-line:#28553944;
  --gold:#DCBB63;  --gold-soft:#302713;  --gold-line:#57472044;
  --azalea:#E087A0; --azalea-soft:#2F1A21; --azalea-line:#5A303C44;
  --teal:#63B5B8;  --teal-soft:#112A2B;  --teal-line:#24505244;
  --earth:#C0A181; --earth-soft:#271D14; --earth-line:#4A392644;
  --slate:#8FB4CC; --slate-soft:#132430; --slate-line:#2B455644;
  --warn:#EE8478; --warn-soft:#331815; --warn-line:#5C2C2644;
  --glass:rgba(21,35,26,.74);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 28px -14px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
/* A class rule with display:grid/flex beats the UA stylesheet's [hidden]{display:none},
   so anything toggled via [hidden] needs this or it stays visible. */
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%; background:var(--bg);}
body{margin:0; background:var(--bg); color:var(--ink);
  font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;
  font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased;}
button{font:inherit; color:inherit; cursor:pointer; border:0; background:none;}
input,select,textarea{font:inherit; color:inherit;}
:focus-visible{outline:2px solid var(--green); outline-offset:3px; border-radius:6px;}
.mono{font-family:"DM Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums;}

.wrap{max-width:470px; margin:0 auto; padding-inline:18px;
  padding-block:22px calc(88px + env(safe-area-inset-bottom));}

/* ---- header ---- */
.top{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px;}
.name{font-family:Gabarito,system-ui,sans-serif; font-weight:800; font-size:30px;
  letter-spacing:-.02em; line-height:1; color:var(--green);}
.day{font-size:12px; color:var(--ink-2); letter-spacing:.06em; text-transform:uppercase;}

/* ---- status strip ---- */
.strip{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px;}
.strip > div{padding:9px 10px 10px; min-width:0; background:var(--surface-2);
  border:1px solid var(--line); border-radius:12px;}
.strip .k{font-size:9px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.strip .v{font-family:"DM Mono",monospace; font-variant-numeric:tabular-nums;
  font-size:clamp(15px,4.5vw,18px); font-weight:500; letter-spacing:-.03em;
  white-space:nowrap; overflow:hidden;}
.strip .s{font-size:11px; color:var(--ink-3); margin-top:1px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.strip .v.ok{color:var(--green);} .strip .v.bad{color:var(--warn);} .strip .v.mid{color:var(--gold);}

/* ---- primary action ---- */
.logbtn{width:100%; min-height:54px; border-radius:14px; background:var(--green);
  color:#F4F1E8; font-family:Gabarito,sans-serif; font-weight:700; font-size:17px;
  display:flex; align-items:center; justify-content:center; gap:9px;
  box-shadow:var(--shadow); transition:transform .1s; margin-bottom:16px;}
.logbtn:active{transform:scale(.985);}

/* ---- tabs ---- */
.tabs{display:flex; gap:4px; background:var(--surface-2); padding:3px;
  border-radius:11px; margin-bottom:14px; border:1px solid var(--line);}
.tab{flex:1; min-height:38px; border-radius:9px; font-size:13px; font-weight:600;
  color:var(--ink-2); transition:background .15s,color .15s;}
.tab[aria-selected="true"]{background:var(--surface); color:var(--ink); box-shadow:var(--shadow);}

/* ---- cards & rows ---- */
.card{background:var(--glass); backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow);}
.sect{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); margin:18px 0 8px; font-family:"DM Mono",monospace;}
.sect:first-child{margin-top:0;}

.row{background:var(--surface); border:1px solid var(--line); border-radius:13px;
  padding:12px 13px; margin-bottom:7px;}
.row.overdue{border-color:var(--warn-line); background:var(--warn-soft);}
.row.due{border-color:var(--gold-line);}
.row.blocked{opacity:.72; border-style:dashed;}
.rh{display:flex; align-items:baseline; justify-content:space-between; gap:10px;}
.rt{font-family:Gabarito,sans-serif; font-weight:700; font-size:15px; line-height:1.25;}
.rz{font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3);
  font-family:"DM Mono",monospace; white-space:nowrap;}
.rw{font-size:13px; color:var(--ink-2); margin-top:4px; line-height:1.45;}
.rd{font-family:"DM Mono",monospace; font-size:11px; color:var(--ink-3); margin-top:5px;}
.rhint{font-size:12px; color:var(--green); margin-top:5px; font-weight:600;}

/* ---- budget bars ---- */
.bud{margin-bottom:9px;}
.budh{display:flex; justify-content:space-between; align-items:baseline; gap:8px;
  font-size:13px; margin-bottom:4px;}
.budh b{font-weight:600;} .budh span{font-family:"DM Mono",monospace; font-size:11px; color:var(--ink-3);}
.bar{height:7px; border-radius:4px; background:var(--surface-2); overflow:hidden;
  border:1px solid var(--line);}
.bar i{display:block; height:100%; background:var(--green); border-radius:3px;}
.bar i.mid{background:var(--gold);} .bar i.bad{background:var(--warn);}

/* ---- findings ---- */
.find{border-radius:11px; padding:10px 12px; margin-bottom:7px; font-size:13px; line-height:1.45;
  border:1px solid;}
.find.block{background:var(--warn-soft); border-color:var(--warn-line); color:var(--warn);}
.find.warn{background:var(--gold-soft); border-color:var(--gold-line); color:var(--gold);}
.find.note{background:var(--surface-2); border-color:var(--line); color:var(--ink-2);}
.find b{font-family:Gabarito,sans-serif; display:block; font-size:10px; letter-spacing:.09em;
  text-transform:uppercase; margin-bottom:3px; opacity:.85;}
.find .basis{display:block; margin-top:5px; font-size:11px; opacity:.8; font-style:italic;}
.find .house{display:inline-block; margin-top:5px; font-size:10px; letter-spacing:.06em;
  text-transform:uppercase; opacity:.7; font-family:"DM Mono",monospace;}

/* ---- log rows ---- */
.log{background:var(--surface); border:1px solid var(--line); border-radius:12px;
  padding:10px 12px; margin-bottom:6px; display:grid; grid-template-columns:62px 1fr auto; gap:10px;}
.log .d{font-family:"DM Mono",monospace; font-size:11px; color:var(--ink-2); padding-top:2px;}
.log .items{font-size:13px; line-height:1.5;}
.log .items i{font-style:normal; color:var(--ink-3); font-family:"DM Mono",monospace; font-size:11px;}
.log .n{font-size:11px; color:var(--ink-3); margin-top:3px; line-height:1.4;}
.log .x{color:var(--ink-3); font-size:15px; padding:0 4px; align-self:start;}
.log .x:active{color:var(--warn);}
.pill{display:inline-block; font-size:9px; letter-spacing:.07em; text-transform:uppercase;
  padding:2px 7px; border-radius:20px; font-family:"DM Mono",monospace; margin-right:4px;}
.p-fert{background:var(--green-soft); color:var(--green);}
.p-herb{background:var(--azalea-soft); color:var(--azalea);}
.p-pest{background:var(--gold-soft); color:var(--gold);}
.p-fung{background:var(--teal-soft); color:var(--teal);}
.p-pgr{background:var(--slate-soft); color:var(--slate);}
.p-amend{background:var(--earth-soft); color:var(--earth);}

/* ---- bottom sheet ---- */
.scrim{position:fixed; inset:0; background:rgba(13,23,18,.45); z-index:40;
  opacity:0; transition:opacity .2s;}
.scrim.on{opacity:1;}
.sheet{position:fixed; left:0; right:0; bottom:0; z-index:50; background:var(--bg);
  border-radius:20px 20px 0 0; border-top:1px solid var(--line);
  max-height:92vh; overflow-y:auto; transform:translateY(100%); transition:transform .24s cubic-bezier(.2,.8,.2,1);
  padding:8px 18px calc(22px + env(safe-area-inset-bottom));}
.sheet.on{transform:translateY(0);}
.grab{width:38px; height:4px; border-radius:2px; background:var(--line); margin:6px auto 14px;}
.sheet h2{font-family:Gabarito,sans-serif; font-size:19px; margin:0 0 14px;}

.fl{display:block; font-size:11px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:5px;}
.f{display:flex; flex-direction:column; gap:14px;}
input[type=date],input[type=text],input[type=number],select,textarea{
  width:100%; min-height:46px; padding:10px 12px; border-radius:11px;
  border:1px solid var(--line); background:var(--surface);}
textarea{min-height:70px; resize:vertical;}
.seg{display:flex; gap:6px;}
.seg button{flex:1; min-height:46px; border-radius:11px; border:1px solid var(--line);
  background:var(--surface); font-size:14px; font-weight:600; color:var(--ink-2);}
.seg button[aria-pressed="true"]{background:var(--green); color:#F4F1E8; border-color:var(--green);}

.pick{display:grid; grid-template-columns:minmax(0,1fr) 84px 34px 34px; gap:7px;
  align-items:center; margin-bottom:4px;}
.pick select{min-height:44px; min-width:0;}
.pick input{min-height:44px; text-align:right; padding-inline:8px; min-width:0;}
.pick .u{font-family:"DM Mono",monospace; font-size:12px; color:var(--ink-3);}
.pick .x{min-height:44px; color:var(--ink-3); font-size:17px;}
.addp{width:100%; min-height:44px; border-radius:11px; border:1px dashed var(--line);
  color:var(--ink-2); font-size:13px; font-weight:600;}

.save{width:100%; min-height:52px; border-radius:13px; background:var(--green); color:#F4F1E8;
  font-family:Gabarito,sans-serif; font-weight:700; font-size:16px;}
.save:disabled{opacity:.5;}
.save.over{background:var(--warn);}
.ghost{width:100%; min-height:46px; border-radius:12px; border:1px solid var(--line);
  color:var(--ink-2); font-size:14px; font-weight:600; background:var(--surface);}

.err{color:var(--warn); font-size:13px; margin:0;}
.empty{text-align:center; color:var(--ink-3); font-size:14px; padding:30px 0; font-style:italic;}

/* ---- login ---- */
.login{display:flex; flex-direction:column; justify-content:center; min-height:100dvh; gap:20px;}
.login .name{font-size:38px; text-align:center;}

/* ---- toast ---- */
.toast{visibility:hidden; opacity:0; position:fixed; left:50%; bottom:calc(22px + env(safe-area-inset-bottom));
  transform:translate(-50%,120%); z-index:60; background:var(--ink); color:var(--bg);
  padding:11px 17px; border-radius:11px; font-size:14px; font-weight:600;
  transition:transform .24s cubic-bezier(.2,.8,.2,1), opacity .2s; max-width:85vw;}
.toast.on{visibility:visible; opacity:1; transform:translate(-50%,0);}
.toast.bad{background:var(--warn); color:#fff;}
