:root{--bg:#f6f1e9;--ink:#1f1b17;--muted:#5b554d;--line:#e3d9cb;--rule:#efe8dd;--green:#1f6f5f;--green-dark:#164f44;--green-pale:#e2efe9;--red:#b5441f;--red-pale:#f7e4dc;--card:#fff}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:'Atkinson Hyperlegible',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1{font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:600;line-height:1.1;margin:0}
h2{font-size:20px;font-weight:700;margin:0}
button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}
a{color:var(--green)}
.wrap{max-width:430px;margin:0 auto;padding:28px 20px 40px;display:flex;flex-direction:column;gap:16px;min-height:100vh}
.logo{display:block;width:100%;max-width:300px;height:auto;margin:0 auto}
.logo-small{width:190px;height:auto;display:block}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.muted{color:var(--muted)}
.small{font-size:16px}
.big{font-size:20px;line-height:1.3}
.bold{font-weight:700}
.green{color:var(--green);font-weight:700}
.red{color:var(--red);font-weight:700}
.stack{display:flex;flex-direction:column;gap:2px;min-width:0}
.card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.card-due{border:2px solid var(--red);padding:12px 12px 12px 18px}
.card-col{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.status{display:flex;align-items:center;gap:6px;font-size:18px;white-space:nowrap}
.status svg{flex-shrink:0}
.rows{display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:68px;padding:12px 18px;border-radius:14px;text-align:left;font-size:20px}
.row-open{background:var(--card);border:1px solid var(--line)}
.row-open:hover,.row-open:focus-visible{border-color:var(--green)}
.row-mine{background:var(--green-pale);border:2px solid var(--green)}
.row-full{background:#efe9df;border:1px solid var(--line);color:var(--muted)}
.row-off{background:var(--card);border:1px dashed #cfc4b4;color:var(--muted)}
.row-cancelled{background:#efe9df;border:1px solid var(--line);color:var(--muted);text-decoration:line-through}
.sub{font-size:16px;color:var(--muted)}
.primary{min-height:56px;padding:0 22px;border:0;border-radius:14px;background:var(--green);color:#fff;font-size:20px;font-weight:700;white-space:nowrap}
.primary:hover{background:var(--green-dark)}
.primary:disabled{opacity:.6;cursor:default}
.secondary{min-height:56px;padding:0 22px;border:1px solid #cfc4b4;border-radius:14px;background:var(--card);font-size:20px}
.secondary:hover{border-color:var(--green)}
.danger{min-height:56px;padding:0 22px;border:1px solid var(--red);border-radius:14px;background:var(--card);color:var(--red);font-size:20px;font-weight:700}
.linkbtn{background:none;border:0;padding:10px 0;color:var(--green);font-size:18px;text-decoration:underline;min-height:44px;align-self:flex-start}
label{font-size:18px;font-weight:700}
input[type=text],input[type=email],input[type=tel],input[type=search],select{width:100%;min-height:56px;padding:12px 16px;border:1px solid #cfc4b4;border-radius:14px;background:var(--card);font-size:20px;font-family:inherit;color:var(--ink)}
input:focus,select:focus{outline:2px solid var(--green);outline-offset:1px}
.field{display:flex;flex-direction:column;gap:6px}
.choices{display:flex;flex-direction:column;gap:8px}
.choice{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:19px;cursor:pointer}
.choice input{width:22px;height:22px;margin:0;accent-color:var(--green)}
.choice.on{border:2px solid var(--green);background:var(--green-pale)}
.choice .sub{font-size:15px}
.note{font-size:15px;color:var(--muted);line-height:1.45}
.banner{padding:12px 16px;border-radius:12px;background:var(--green-pale);color:var(--green-dark);font-size:17px;line-height:1.4}
.banner.warn{background:var(--red-pale);color:#7a2c12}
hr{border:0;border-top:1px solid var(--line);margin:8px 0}
/* bottom sheet */
.sheet-back{position:fixed;inset:0;background:rgba(31,27,23,.35);display:none;align-items:flex-end;justify-content:center;z-index:20}
.sheet-back.show{display:flex}
.sheet{width:100%;max-width:430px;background:var(--bg);border-radius:20px 20px 0 0;padding:20px 20px 32px;display:flex;flex-direction:column;gap:12px;max-height:85vh;overflow:auto}
.sheet h2{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:600}
#bc-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-size:17px;opacity:0;transition:all .2s;max-width:90vw;text-align:center;z-index:30;pointer-events:none}
#bc-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#bc-toast.err{background:var(--red)}
.spin{display:inline-block;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.hidden{display:none!important}
