:root{--jh-cream:#f7f5e4;--jh-amber:#fdbe2a;--jh-ink:#282020;--jh-peach:#ffb274;--jh-aqua:#b9e3de;--jh-blue:#0f81cc;--jh-basil:#286628;--jh-fresh:#7ee97e;--jh-orange:#fd8513;--jh-forest:#284038;--jh-aegean:#124b71;--jh-warm-white:#fcfaf9;--jh-red-grey:#755952;--jh-blue-dk:#0c6aa8;--jh-ink-soft:#4a4040;--jh-cream-2:#efebd6;--jh-cream-3:#e8e3cc;--jh-line:#28202021;--jh-line-2:#28202012;--jh-sh-sm:0 1px 2px #2820200d;--jh-sh:0 4px 18px #28202012;--jh-sh-lg:0 18px 48px #28202021;--jh-r-sm:8px;--jh-r-md:12px;--jh-r-lg:18px;--jh-r-xl:26px;--jh-maxw:1180px;--jh-canvas:var(--jh-cream);--jh-surface:var(--jh-warm-white);--jh-interactive:var(--jh-blue);--jh-accent:var(--jh-amber);--jh-text:var(--jh-ink);--jh-text-soft:var(--jh-ink-soft);--jh-success:var(--jh-basil);--jh-warning:var(--jh-orange);--jh-font-display:"Merriweather", Georgia, serif;--jh-font-body:"Public Sans", system-ui, -apple-system, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--jh-canvas);color:var(--jh-text);font-family:var(--jh-font-body);min-height:100dvh;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--jh-font-display);color:var(--jh-text);margin:0;line-height:1.2}a{color:var(--jh-interactive)}::selection{background:var(--jh-amber);color:var(--jh-ink)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--jh-interactive);outline-offset:2px}.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:560px;margin:0 auto;padding:0 16px 48px}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:14px 0 10px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand .wing{width:26px;height:26px;color:var(--jh-amber);flex:none}.brand h1{font-size:17px;font-weight:700;line-height:1.15}.clock{text-align:right;white-space:nowrap;line-height:1.25}.clock .t{font-size:15px;font-weight:700}.clock .d{color:var(--jh-text-soft);font-size:12.5px}.card{background:var(--jh-surface);border:1px solid var(--jh-line);border-radius:var(--jh-r-lg);box-shadow:var(--jh-sh);margin:12px 0;padding:16px}.card h2{margin-bottom:8px;font-size:15px}.muted{color:var(--jh-text-soft);font-size:14px}.row{flex-wrap:wrap;gap:10px;display:flex}.row>*{flex:140px}.status{align-items:center;gap:14px;display:flex}.status .dot{background:var(--jh-red-grey);border-radius:50%;flex:none;width:14px;height:14px}.status[data-state=on] .dot{background:var(--jh-basil);box-shadow:0 0 0 4px #2866282e}.status[data-state=lunch] .dot{background:var(--jh-amber);box-shadow:0 0 0 4px #fdbe2a40}.status .label{font-family:var(--jh-font-display);font-size:22px;font-weight:900}.status .big{margin-left:auto;font-size:30px;font-weight:800}.tag{background:var(--jh-cream-2);color:var(--jh-text);border-radius:999px;margin:2px 6px 2px 0;padding:3px 9px;font-size:12.5px;font-weight:600;display:inline-block}.tag.on{color:var(--jh-basil);background:#e3f3e3}.tag.warn{color:#8a4504;background:#ffe9d2}.tag.bad{color:#8a1f1f;background:#fbe0e0}.gps{border-radius:var(--jh-r-md);background:var(--jh-cream-2);border:1px solid var(--jh-line-2);padding:10px 12px;font-size:14px}.gps.ok{background:#e3f3e3;border-color:#28662840}.gps.bad{background:#ffe9d2;border-color:#fd851359}.acts{gap:10px;margin-top:12px;display:grid}.act{border-radius:var(--jh-r-md);border:1px solid var(--jh-line);background:var(--jh-surface);text-align:left;cursor:pointer;width:100%;min-height:64px;box-shadow:var(--jh-sh-sm);align-items:center;gap:14px;padding:12px 16px;display:flex}.act:hover{background:var(--jh-cream-2)}.act:disabled{opacity:.55;cursor:default}.act[data-k=in]{background:var(--jh-interactive);border-color:var(--jh-interactive);color:#fcfaf9}.act[data-k=in]:hover{background:var(--jh-blue-dk)}.act[data-k=out]{border-color:var(--jh-ink)}.act .icon{flex:none;width:26px;height:26px}.act .lbl{font-size:17px;font-weight:700}.act small{opacity:.85;font-size:13px;font-weight:400;display:block}.btn{border-radius:var(--jh-r-sm);border:1px solid var(--jh-line);background:var(--jh-surface);cursor:pointer;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-weight:600;display:inline-flex}.btn:hover{background:var(--jh-cream-2)}.btn.primary{background:var(--jh-interactive);border-color:var(--jh-interactive);color:#fcfaf9}.btn.primary:hover{background:var(--jh-blue-dk)}.btn.block{width:100%}.btn.link{color:var(--jh-interactive);white-space:nowrap;background:0 0;border:0;min-height:36px;padding:6px 8px}.btn:disabled{opacity:.55;cursor:default}.google{justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;font-size:16px;display:flex}.note{border-radius:var(--jh-r-md);background:var(--jh-cream-2);margin-top:12px;padding:10px 12px;font-size:14px}.note.warn{background:#ffe9d2}.note.bad{background:#fbe0e0}.err{color:#8a1f1f;min-height:1.2em;margin-top:6px;font-size:14px}.f{margin:10px 0;display:block}.f>span{color:var(--jh-text-soft);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.f input,.f select{border-radius:var(--jh-r-sm);border:1px solid var(--jh-line);background:var(--jh-surface);width:100%;min-height:44px;padding:8px 10px}.scrim{z-index:10;background:#28202073;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}@media (width>=640px){.scrim{align-items:center}}.sheet{background:var(--jh-surface);border-radius:var(--jh-r-xl);width:100%;max-width:440px;max-height:92dvh;box-shadow:var(--jh-sh-lg);padding:22px 20px;overflow-y:auto}.done{text-align:center}.done .mark{background:var(--jh-basil);color:#fcfaf9;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 12px;display:flex}.done .mark.bad{background:var(--jh-orange)}.done h3{font-size:22px;font-weight:900}.done .tm{margin:6px 0;font-size:34px;font-weight:800}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--jh-line-2);justify-content:space-between;gap:10px;padding:8px 0;font-size:14px;display:flex}.list li:first-child{border-top:0}.kv{grid-template-columns:1fr auto;gap:4px 12px;font-size:14px;display:grid}.kv b{font-weight:700}details summary{cursor:pointer;color:var(--jh-interactive);margin-top:6px;font-size:14px}table.ledger{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}table.ledger th,table.ledger td{text-align:right;border-top:1px solid var(--jh-line-2);padding:4px 6px}table.ledger th:first-child,table.ledger td:first-child{text-align:left}.signin{max-width:420px;margin:10vh auto 0}@media (width<=420px){.brand h1{font-size:15px}.clock .t{font-size:14px}}.signin h1{margin:14px 0 6px;font-size:28px;font-weight:900}.divider{color:var(--jh-text-soft);align-items:center;gap:10px;margin:18px 0 6px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--jh-line);flex:1}.app.wide{max-width:960px}.tabs{border-bottom:1px solid var(--jh-line);gap:4px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{color:var(--jh-text-soft);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 12px;font-weight:600}.tab.on{color:var(--jh-text);border-bottom-color:var(--jh-amber)}.board{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.tile{background:var(--jh-surface);border:1px solid var(--jh-line);border-radius:var(--jh-r-lg);box-shadow:var(--jh-sh-sm);padding:14px}.tile .nm{font-family:var(--jh-font-display);font-size:17px;font-weight:700}.tile .st{color:var(--jh-text-soft);align-items:center;gap:6px;margin:4px 0;font-size:13px;display:flex}.tile .dot{background:var(--jh-red-grey);border-radius:50%;width:10px;height:10px}.tile[data-state=on] .dot{background:var(--jh-basil)}.tile[data-state=lunch] .dot{background:var(--jh-amber)}.tile .big{font-size:28px;font-weight:800}table.ledger td,table.ledger th{vertical-align:top}
