*{box-sizing:border-box}
html,body{margin:0}
body{font-family:'Rubik',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;background:var(--a-bg);color:var(--a-ink);font-size:var(--fs-base);line-height:1.5;transition:background var(--dur-3)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--a-primary)}
:focus-visible{outline:2px solid var(--a-primary);outline-offset:2px}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
.muted{color:var(--a-muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* app bar */
.appbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--a-surface);border-bottom:1px solid var(--a-hair)}
.appbar .brand{display:flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;color:var(--a-ink)}
.appbar nav{display:flex;gap:4px;margin-inline-start:16px;flex-wrap:wrap}
.appbar nav a{padding:8px 12px;border-radius:var(--r-pill);text-decoration:none;color:var(--a-muted);font-weight:600;font-size:var(--fs-sm)}
.appbar nav a[aria-current=page]{background:var(--a-primary-soft);color:var(--a-primary)}
.appbar .spacer{flex:1}
.iconbtn{background:none;border:1px solid var(--a-hair);border-radius:var(--r-pill);min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px}
.iconbtn:hover{background:var(--a-surface2)}
/* buttons */
.btn{border:1px solid var(--a-hair);background:var(--a-surface);border-radius:var(--r-m);padding:10px 16px;min-height:44px;font-weight:600;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn:hover{background:var(--a-surface2)}
.btn.primary{background:var(--a-primary-fill);border-color:var(--a-primary-fill);color:var(--a-primary-ink);font-weight:800}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{border-color:transparent;background:none;color:var(--a-primary)}
.btn.danger{color:var(--a-crit)}
.btn.small{min-height:36px;padding:6px 12px;font-size:var(--fs-sm)}
.btn.dashed{border-style:dashed;background:none;color:var(--a-primary);width:100%}
/* segmented / chips with real selected state */
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button,.chip{border:1.5px solid var(--a-hair);background:var(--a-surface);border-radius:var(--r-pill);padding:8px 14px;min-height:40px;font-weight:600;font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:6px}
.seg button[aria-pressed=true],.chip[aria-pressed=true]{background:var(--tone,var(--a-primary-fill));border-color:var(--tone,var(--a-primary-fill));color:var(--a-on-fill)}
.seg button[aria-pressed=true]::before,.chip[aria-pressed=true]::before{content:"✓";font-weight:800}
.seg.days button{min-width:44px;justify-content:center}
.seg.days button[aria-pressed=true]::before{content:none}
/* cards */
.card{background:var(--a-surface);border:1px solid var(--a-hair);border-radius:var(--r-l);padding:16px;box-shadow:var(--sh-1)}
.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.field>label,.flabel{font-weight:700;font-size:var(--fs-sm)}
.input,select.input{border:1.5px solid var(--a-hair);background:var(--a-surface);border-radius:var(--r-m);padding:10px 12px;min-height:44px;font-size:var(--fs-input)}
.input:focus{border-color:var(--a-primary);outline:none}
.hint{font-size:var(--fs-xs);color:var(--a-muted)}
/* inline issues */
.issue{display:flex;gap:6px;align-items:flex-start;font-size:var(--fs-sm);color:var(--a-muted);background:var(--a-surface2);border-radius:var(--r-s);padding:6px 10px;margin-top:6px}
.issue::before{content:"○";font-weight:800}
.show-errors .issue{color:var(--a-crit);background:var(--a-crit-soft)}
.show-errors .issue::before{content:"!"}
.show-errors .has-issue{border-color:var(--a-crit)!important;box-shadow:0 0 0 3px var(--a-crit-soft)}
/* toast */
#toasts{position:fixed;inset-inline-start:50%;bottom:24px;transform:translateX(50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{background:var(--a-readout);color:var(--a-readout-ink);border-radius:var(--r-m);padding:10px 12px 10px 16px;display:flex;gap:16px;align-items:center;box-shadow:var(--sh-3);min-width:280px;animation:tin var(--dur-3) var(--ease-std)}
.toast button{background:none;border:0;color:#9fb0ff;font-weight:800;padding:6px 8px}
.toast .bar{height:3px;background:#ffffff55;position:absolute}
@keyframes tin{from{opacity:0;transform:translateY(12px)}}
.switch{position:relative;width:48px;height:28px;border-radius:999px;background:var(--a-outline);border:0;padding:0;flex:none}
.switch::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:inset-inline-start var(--dur-2)}
.switch[aria-checked=true]{background:var(--a-act)}
.switch[aria-checked=true]::after{inset-inline-start:23px}
.badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-pill);padding:2px 10px;font-size:var(--fs-xs);font-weight:700;background:var(--a-surface2);color:var(--a-muted)}
.wrap{max-width:1320px;margin:0 auto;padding:20px}
h1,h2,h3{margin:0;line-height:1.25}
