:root{color-scheme:light;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#10261a;background:#eef7ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#e6f4e8 0,#f8fbf8 46%,#eef7ef)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:4px solid #fbbf24;outline-offset:3px}.shell{width:min(100%,720px);min-height:100vh;margin:0 auto;padding:max(1.25rem,env(safe-area-inset-top)) 1.15rem calc(2rem + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.25rem 0 1.1rem}.header-brand{display:flex;align-items:center;min-width:0;gap:.7rem}.header-mascot{flex:0 0 auto;width:3.1rem;height:3.1rem;border-radius:999px;object-fit:cover;box-shadow:0 3px 10px #1877be38}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,7vw,2.65rem);letter-spacing:-.045em;line-height:1}h2{font-size:clamp(1.35rem,5vw,1.8rem);line-height:1.12;margin-bottom:.55rem}.brand{margin:0 0 .35rem;font-size:.76rem;font-weight:800;letter-spacing:.13em;color:#167240}.date{text-transform:capitalize;color:#466353;font-weight:650;margin:0 0 1rem}.muted{color:#50695a;line-height:1.45}.small{font-size:.9rem}.intro{color:#425b4a;font-size:1.1rem;line-height:1.5}.app-header h1{font-size:2.15rem}.icon-button{width:3.25rem;height:3.25rem;border:1px solid #bad8c0;border-radius:999px;color:#14532d;background:#fff;font-size:1.7rem;font-weight:700}.icon-button:hover{background:#e9f8ec}.group-card,.card,.pairing-card{background:#fff;border:1px solid #d5e8d8;box-shadow:0 10px 28px #14532d14;border-radius:1.35rem;padding:1.3rem;margin:1rem 0}.group-card.pending{border:2px solid #64b67a;box-shadow:0 12px 30px #16653421}.group-card.done{border-color:#b7d9be;background:#f7fcf7}.group-card.neutral{border-color:#d5e8d8}.eyebrow{display:inline-block;margin-bottom:.55rem;border-radius:99px;padding:.32rem .65rem;background:#d9f5df;color:#155e30;font-size:.75rem;font-weight:800;letter-spacing:.08em}.time{margin:0 0 .3rem;color:#14532d;font-weight:800;font-size:2rem}.state{display:inline-block;margin-bottom:1rem;border-radius:999px;padding:.26rem .64rem;background:#f0f4f1;color:#496253;font-weight:700}.dose-list{padding:0;margin:.85rem 0 1.2rem;list-style:none}.dose-list li{position:relative;padding:.7rem .2rem .7rem 1.45rem;border-bottom:1px solid #edf3ee;font-size:1.08rem;font-weight:620;line-height:1.4}.dose-list li:before{content:"●";position:absolute;left:.12rem;color:#1c9a52;font-size:.8rem;top:.9rem}.action-grid{display:grid;gap:.7rem}.button{min-height:3.2rem;border:0;border-radius:.9rem;padding:.72rem 1rem;font-weight:800;line-height:1.2;transition:transform .12s ease,filter .12s ease}.button:hover{filter:brightness(.97)}.button:active{transform:scale(.985)}.button[disabled]{opacity:.55;cursor:wait}.button.primary,.button.success{color:#fff;background:#166534}.button.secondary{color:#164a2a;background:#eaf6ec;border:1px solid #b9dcbc}.button.warning{color:#4e3100;background:#fde9a9}.button.large{min-height:4rem;font-size:1.08rem}.button.wide{width:100%}.install-banner{width:100%;margin-bottom:.9rem;border:1px solid #8ac99b;background:#e1f7e5;color:#14532d;border-radius:.85rem;padding:.86rem 1rem;font-weight:800;text-align:left}.day-card h2,.query-card h2{margin-bottom:.35rem}.day-row{display:flex;align-items:center;gap:1rem;padding:.8rem 0;border-top:1px solid #edf3ee}.day-time{min-width:3.75rem;color:#14532d;font-weight:850;font-size:1.08rem}.day-content{display:grid;gap:.25rem}.tiny-state{font-size:.84rem;color:#537061}.history-note{margin:1rem 0 0;padding-top:.85rem;border-top:1px solid #edf3ee}.query-row{display:flex;gap:.6rem;align-items:stretch}.query-input,.technical-input{width:100%;min-height:3.3rem;padding:.75rem .9rem;border:2px solid #b8d8be;border-radius:.8rem;color:#162b1e;background:#fff}.query-row .button{min-width:7rem}.query-reply{white-space:pre-line;margin-top:1rem;padding:.95rem;border-left:5px solid #51a76b;background:#f1faf3;border-radius:.55rem;line-height:1.5}.notice{margin:.85rem 0;padding:.9rem 1rem;border-radius:.8rem;line-height:1.4}.notice.ok{background:#def7e3;color:#155d2c}.notice.error{background:#fde6e4;color:#822019}.notice.info{background:#e8f1fb;color:#1e4f7a}.footer-note{margin:1.5rem .2rem 0;color:#64796b;font-size:.86rem;line-height:1.45}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:end center;padding:1rem;background:#05180c7a}.modal{width:min(100%,620px);max-height:min(88vh,740px);overflow:auto;border-radius:1.35rem;padding:1.35rem;background:#fff;box-shadow:0 22px 60px #00000047}.modal h2{margin-bottom:.75rem}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem;margin-top:1rem}.stack{display:grid;gap:.8rem}.check-list{display:grid;gap:.65rem}.check-item{display:flex;align-items:center;gap:.7rem;min-height:3.2rem;padding:.65rem .75rem;border:2px solid #d7e8d9;border-radius:.8rem;font-weight:650}.check-item input{width:1.45rem;height:1.45rem;accent-color:#166534}.pairing-shell{display:grid;align-content:center;min-height:100vh}.pairing-card{max-width:520px;margin:0 auto;padding:1.7rem;text-align:center}.pairing-mascot{display:block;width:min(10rem,46vw);height:auto;margin:-5.25rem auto .55rem;border-radius:50%;box-shadow:0 10px 30px #1877be33}.pair-code{width:100%;min-height:4rem;margin:.4rem 0 .85rem;border:3px solid #87c999;border-radius:.95rem;color:#153d23;background:#fbfffb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.6rem,8vw,2.3rem);font-weight:800;letter-spacing:.17em;text-align:center;text-transform:uppercase}.pairing-help{max-width:430px;margin:1rem auto;color:#617766;text-align:center}.technical{margin-top:1.2rem;color:#4d6655;text-align:left}.technical summary{cursor:pointer;font-size:.9rem}.technical-input{margin:.75rem 0}@media (min-width: 540px){.shell{padding-left:1.8rem;padding-right:1.8rem}.action-grid{grid-template-columns:1fr 1fr}.action-grid .warning{grid-column:1 / -1}.modal-backdrop{place-items:center}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
