:root{--ground:#fbf8f4;--surface:#ffffff;--ink:#231f20;--muted:#6b6460;--faint:#9a928c;--line:#eee7df;--line-soft:#f3eee8;--line-strong:#e2dbd3;--brand-pink:#cd3a61;--brand-orange:#e57937;--brand-gold:#e6b53f;--brand-sage:#aab987;--brand-teal:#56bac0;--brand-gradient:linear-gradient(90deg,#cd3a61,#e57937 35%,#e6b53f 55%,#aab987 78%,#56bac0);--good:#1f6e72;--good-bg:#e4f4f4;--warn:#8a5a0e;--warn-bg:#fbefd6;--bad:#9e2449;--bad-bg:#f9e1e7;--tint-pink:#fbf3f5;--tint-gold:#fcf6ea;--tint-teal:#edf6f6;--tint-sage:#f3f6ec;--radius:16px;--heading:"Jost",system-ui,sans-serif;--body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--ground);color:var(--ink);font:15px/1.5 var(--body);position:relative}body:before{content:"";position:fixed;inset:0;z-index:-1;background:url(/brand/bg-soft.jpg) 50%/cover no-repeat;opacity:.85;pointer-events:none}a{color:var(--ink);text-underline-offset:3px}a:hover{color:var(--brand-pink)}h1,h2,h3{font-family:var(--heading)}h1{font-size:36px;font-weight:500;letter-spacing:.01em;margin:0 0 4px;line-height:1.15}h2{font-size:14px;font-weight:600;letter-spacing:.16em;margin:0 0 16px}.eyebrow,h2{text-transform:uppercase}.eyebrow{margin:0 0 6px;font-size:13px;letter-spacing:.14em}.eyebrow,.sub{color:var(--muted)}.sub{margin:0 0 24px}.muted{color:var(--muted)}.small{font-size:13px}.topbar{background:rgba(255,255,255,.86);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px)}.topbar-inner{max-width:1120px;margin:0 auto;padding:14px 32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.topbar-rule{height:3px;background:var(--brand-gradient)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand img{width:40px;height:40px}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-name{font-family:var(--heading);font-weight:600;font-size:17px;letter-spacing:.18em}.brand-product{font-size:12px;letter-spacing:.06em;color:var(--muted)}.topbar nav{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:24px;font-size:14px;font-weight:500}.nav-link{white-space:nowrap}.account{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:500}.account form{display:flex;margin:0}.account .btn.link{font-size:14px;line-height:1.4}.nav-link{text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:2px solid transparent}.nav-link[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.nav-divider{width:1px;height:20px;background:var(--line-strong)}.topbar .who{color:var(--muted)}main{max-width:1120px;margin:0 auto;padding:40px 32px 64px}.card{border:1px solid var(--line);border-radius:var(--radius);padding:32px;margin-bottom:24px;box-shadow:0 1px 2px rgba(35,31,32,.04)}.btn,.card{background:var(--surface)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line-strong);border-radius:10px;padding:8px 16px;font:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer}.btn,.btn:hover{color:var(--ink)}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#3a3435}.btn.small{min-height:32px;padding:4px 12px;font-size:13px}.btn.link{border:none;background:none;padding:0;min-height:0;color:var(--muted);font-weight:500}.btn.link:hover{color:var(--ink)}.btn.icon{width:44px;height:44px;padding:0}.btn:disabled{opacity:.6;cursor:progress}.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-pink);outline-offset:2px}.alert{border-radius:10px;padding:10px 14px;margin:0 0 16px;font-size:14px;text-align:left;background:var(--tint-gold);color:var(--warn)}.alert.good{background:var(--good-bg);color:var(--good)}.alert.bad{background:var(--bad-bg);color:var(--bad)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap;background:var(--line-soft);color:var(--muted)}.pill.good{background:var(--good-bg);color:var(--good)}.pill.accent{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.lunch{background:#ebe7f8;color:#4d3f94}.pill .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.pill.good .dot{background:var(--brand-teal)}.pill.accent .dot{background:var(--brand-gold)}.pill.lunch .dot{background:#8b7fd1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line-soft);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;border-bottom-color:var(--line)}td.day,th{font-weight:600}td .muted{color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.toolbar h2{margin:0}.toolbar input[type=search]{font:inherit;padding:9px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);min-width:240px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px 16px;gap:12px 16px;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:4px;font-size:14px}.field span{color:var(--muted)}.field input,.field textarea{font:inherit;padding:9px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}.field textarea{min-height:72px;resize:vertical}.field.wide{grid-column:1/-1}.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}details.warnings summary{cursor:pointer;color:var(--warn);font-weight:500}details.warnings ul{margin:8px 0 0;padding-left:20px}dl.facts{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 16px;gap:6px 16px;margin:0}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px;margin:0 0 24px}.stat-tile{border-radius:12px;padding:16px 20px;display:flex;flex-direction:column}.stat-tile:first-child{background:var(--tint-pink)}.stat-tile:nth-child(2){background:var(--tint-gold)}.stat-tile:nth-child(3){background:var(--tint-teal)}.stat-tile:nth-child(4){background:var(--tint-sage)}.stat-tile>span{font-size:13px;color:var(--muted)}.stat-tile strong{font-family:var(--heading);font-size:28px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 40px rgba(35,31,32,.08)}.login-rule{height:4px;background:var(--brand-gradient)}.login-body{padding:40px 40px 36px;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.login-body img{width:300px;max-width:100%;height:auto}.login-body h1{font-size:26px;letter-spacing:.04em;margin:0 0 6px}.login-body p{margin:0}.login-body form{width:100%}.btn.google{width:100%;min-height:52px;font-size:16px;font-weight:600;border-radius:12px;gap:12px}.google-mark{width:26px;height:26px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center}@media (max-width:640px){.topbar-inner{padding:12px 16px}.topbar nav{gap:2px 16px;font-size:13.5px}.nav-divider,.topbar .who{display:none}.brand img{width:36px;height:36px}main{padding:24px 16px 48px}.card{padding:20px}h1{font-size:28px}.login-body{padding:32px 24px 28px}}.nav-badge{justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--brand-pink);color:#fff;font-size:11px;font-weight:600;vertical-align:1px}.check,.nav-badge{display:inline-flex;align-items:center}.check{gap:8px;min-height:40px;font-size:14px}.counts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.person{font-weight:600}.person small{display:block;font-weight:400;color:var(--muted);font-size:12px}.empty{padding:24px;text-align:center;color:var(--muted)}.field select{font:inherit;padding:9px 12px;min-height:40px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}.card-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:4px}.card-head h2{margin:0}.help{color:var(--muted);font-size:14px;margin:0 0 16px;max-width:72ch}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:20px}.inline-form .field{flex:0 1 auto}.inline-form .field.grow{flex:1 1 220px}td.actions{text-align:right;white-space:nowrap}td.actions form{display:inline;margin:0}.btn.deny{color:var(--bad);border-color:var(--bad-bg)}.btn.deny:hover{border-color:var(--bad);color:var(--bad)}.setting-row{display:flex;gap:8px;align-items:center;margin:0}.setting-row input,.setting-row select{font:inherit;padding:7px 10px;min-height:36px;min-width:0;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}.sync-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;padding:14px 18px;margin-bottom:20px;border-radius:12px;background:var(--tint-teal)}.sync-bar form{margin:0}.status-note{font-size:12px;color:var(--muted);display:block;margin-top:2px}.settings-table td.setting-label{width:45%}@media (max-width:640px){.settings-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--line-soft)}.settings-table td{display:block;width:100%!important;border:0;padding:4px 0}.sync-bar{padding:12px 14px}}