/* Layout: phone-first app shell — sticky top bar, sticky day strip with prev/next buttons showing one day at a time, bottom tab bar, bottom sheets for detail. Centered column on desktop. */
:root{
  --sky:#eef4f8; --card:#ffffff; --card-2:#f4f8fb; --line:#dbe5ec;
  --ink:#14263a; --muted:#5d7083; --accent:#1f6fb2; --accent-ink:#ffffff; --accent-soft:#e1eefa;
  --sun:#f2b632; --sun-soft:#fdf2d6; --sun-ink:#6b4a00;
  --ok:#1d8a55; --ok-soft:#e0f3e8; --warn:#c07a00; --warn-soft:#fdf0d5; --bad:#c6423a; --bad-soft:#fbe5e3;
  --shadow:0 1px 2px rgba(20,38,58,.08),0 2px 8px rgba(20,38,58,.05);
  --display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --sky:#0d1620; --card:#15212d; --card-2:#1a2836; --line:#24364a;
  --ink:#e6eef5; --muted:#93a6b8; --accent:#5aa8ec; --accent-ink:#06121e; --accent-soft:#16304a;
  --sun:#f2b632; --sun-soft:#3a2f12; --sun-ink:#f6d78a;
  --ok:#4cc98a; --ok-soft:#143326; --warn:#f0b04a; --warn-soft:#3a2c12; --bad:#ef7a70; --bad-soft:#3b1d1b;
  --shadow:0 1px 2px rgba(0,0,0,.4); color-scheme:dark}}
:root[data-theme="dark"]{
  --sky:#0d1620; --card:#15212d; --card-2:#1a2836; --line:#24364a;
  --ink:#e6eef5; --muted:#93a6b8; --accent:#5aa8ec; --accent-ink:#06121e; --accent-soft:#16304a;
  --sun:#f2b632; --sun-soft:#3a2f12; --sun-ink:#f6d78a;
  --ok:#4cc98a; --ok-soft:#143326; --warn:#f0b04a; --warn-soft:#3a2c12; --bad:#ef7a70; --bad-soft:#3b1d1b;
  --shadow:0 1px 2px rgba(0,0,0,.4); color-scheme:dark}

*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--sky);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.4}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

.app{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--sky);position:relative}
@media (min-width:600px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}

.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--accent);color:var(--accent-ink);padding:12px 16px 12px}
.top-row{display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--sun);color:#3a2800;display:grid;place-items:center;flex:none}
.brand h1{white-space:nowrap;font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.01em;margin:0;line-height:1.1}
.brand small{display:block;font-size:12.5px;opacity:.85;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand > div{min-width:0}
.who{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border-radius:999px;padding:5px 6px 5px 12px;font-size:13.5px;white-space:nowrap}
.who select{background:none;border:0;color:inherit;font:inherit;font-weight:700;max-width:120px;cursor:pointer}
.who select option{color:#14263a}

main{flex:1;padding:12px 16px 110px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
.chip{padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14.5px;white-space:nowrap;color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--card);border-color:var(--ink)}

.day{margin-top:14px}
.day-head{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--top-h,96px));z-index:5;background:var(--sky);padding:8px 0 8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.day-head h2{font-family:var(--display);font-size:20px;font-weight:700;margin:0;text-transform:capitalize;text-wrap:balance}
.rel{font-size:12.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 7px;text-transform:uppercase;letter-spacing:.05em}
.day-sum{margin-left:auto;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.note{display:flex;gap:10px;align-items:flex-start;background:var(--sun-soft);color:var(--sun-ink);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:15px}
.note .ico{width:20px;height:20px;margin-top:1px}
.closed{background:var(--card-2);border:1px dashed var(--line);border-radius:12px;padding:14px;color:var(--muted);text-align:center;font-size:15px}
.closed b{display:block;color:var(--ink);font-family:var(--display);font-size:17px}

.svc-list{display:flex;flex-direction:column;background:var(--card);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.svc{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;border-top:1px solid var(--line);width:100%;text-align:left}
.svc:first-child{border-top:0}
.svc:hover{background:var(--card-2)}

.daynav{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--top-h,96px));z-index:10;background:var(--sky);margin:0 -16px;padding:10px 8px 8px;display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}
.navbtn{width:40px;height:56px;border-radius:12px;display:grid;place-items:center;flex:none;color:var(--accent)}
.navbtn:hover{background:var(--card)}
.navbtn:disabled{opacity:.3;cursor:default}
.strip{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;padding:2px}
.strip::-webkit-scrollbar{display:none}
.dpill{flex:none;width:56px;border-radius:14px;background:var(--card);border:1.5px solid var(--line);padding:5px 0 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0;position:relative}
.dpill .dw{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.dpill .dn{font-family:var(--display);font-size:20px;font-weight:700;line-height:1.1}
.dpill .de{font-size:13px;line-height:1.2;height:16px}
.dpill[aria-current="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.dpill[aria-current="true"] .dw{color:var(--accent-ink);opacity:.85}
.dpill .mine-dot{position:absolute;top:4px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--sun)}
.day-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:14px 0 10px}
.day-title h2{font-family:var(--display);font-size:24px;font-weight:700;margin:0;text-wrap:balance}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:12px 2px 0}
.emo{font-size:22px;line-height:1;width:28px;text-align:center;flex:none}
.motto{font-style:italic;color:var(--muted);font-size:14.5px;border-left:3px solid var(--sun);padding:4px 0 4px 12px;margin:0 0 16px;max-width:60ch}
.stat{width:12px;height:12px;border-radius:50%;flex:none}
.stat.ok{background:var(--ok)}.stat.warn{background:var(--warn)}.stat.bad{background:var(--bad)}
.svc-main{flex:1;min-width:0}
.svc-name{font-weight:700;font-size:16.5px;display:flex;align-items:center;gap:6px}
.svc-time{font-weight:400;font-size:13.5px;color:var(--muted)}
.svc-people{font-size:15px;color:var(--ink);font-weight:400;margin-top:2px;line-height:1.3}
.miss-tag{font-size:13px;font-weight:700;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:1px 7px;margin-left:4px;white-space:nowrap}
.svc{padding-top:8px;padding-bottom:8px}
.svc-people:not(.empty){display:flex;flex-wrap:wrap;gap:3px 4px;margin-top:3px}
.nbox{display:inline-block;border:0.5px solid var(--muted);border-color:color-mix(in srgb, var(--muted) 45%, transparent);border-radius:6px;padding:0 6px;font-size:14.5px;line-height:1.4;white-space:nowrap}
.nbox.me{border-color:var(--accent);background:var(--card)}
.svc-people.empty{color:var(--muted);font-weight:400}
.svc-people.empty{font-style:italic}
.seats{display:flex;gap:3px;margin-top:6px;flex-wrap:wrap}
.seat{width:16px;height:6px;border-radius:3px;background:var(--line)}
.seat.f{background:var(--ok)}
.svc.part .seat.f{background:var(--warn)}
.cnt{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px;align-self:center}
.join{flex:none;min-width:96px;height:40px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:14.5px;padding:0 12px}
.join.in{background:var(--card);color:var(--accent);border:1.5px solid var(--accent)}
.join:disabled{opacity:.45;cursor:default}

.empty-state{background:var(--card);border-radius:14px;padding:28px 20px;text-align:center;color:var(--muted);box-shadow:var(--shadow)}
.empty-state h3{font-family:var(--display);color:var(--ink);margin:6px 0;font-size:19px}

.section-title{font-family:var(--display);font-size:22px;font-weight:700;margin:6px 0 10px}
.sub{color:var(--muted);font-size:14.5px;margin:-6px 0 12px;max-width:60ch}
.mine-card{display:flex;gap:14px;align-items:center;background:var(--card);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);margin-bottom:8px;width:100%;text-align:left}
.date-tile{width:54px;flex:none;text-align:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);padding:6px 0}
.date-tile b{display:block;font-family:var(--display);font-size:22px;line-height:1}
.date-tile span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.stat-box{background:var(--card);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow)}
.stat-box b{display:block;font-family:var(--display);font-size:24px;font-variant-numeric:tabular-nums}
.stat-box span{font-size:12.5px;color:var(--muted)}

.log{background:var(--card);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.log-row{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:14.5px;align-items:flex-start}
.log-row:first-child{border-top:0}
.log-ico{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:none}
.log-ico.in{background:var(--ok-soft);color:var(--ok)}.log-ico.out{background:var(--bad-soft);color:var(--bad)}
.log-ico .ico{width:16px;height:16px}
.log-t{font-size:12.5px;color:var(--muted)}
.reason{display:inline-block;font-size:12.5px;background:var(--card-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin-left:4px}

.admin-tabs{display:flex;gap:6px;margin-bottom:12px;background:var(--card);padding:4px;border-radius:12px;box-shadow:var(--shadow)}
.admin-tabs button{flex:1;padding:9px 6px;border-radius:9px;font-size:14.5px;color:var(--muted);font-weight:700}
.admin-tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
.row-card{display:flex;align-items:center;gap:12px;background:var(--card);padding:12px 14px;border-top:1px solid var(--line)}
.row-card:first-child{border-top:0}
.row-card .grow{flex:1;min-width:0}
.row-card .t{font-weight:700}
.row-card .s{font-size:13.5px;color:var(--muted)}
.btn{height:40px;padding:0 14px;border-radius:10px;font-weight:700;font-size:14.5px;background:var(--card-2);border:1px solid var(--line)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.wide{width:100%;height:48px;font-size:16px}
.toggle{position:relative;width:46px;height:28px;border-radius:14px;background:var(--line);flex:none;transition:background .15s}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.toggle[aria-checked="true"]{background:var(--ok)}
.toggle[aria-checked="true"]::after{transform:translateX(18px)}
.toggle.red[aria-checked="true"]{background:var(--bad)}
.daycfg{background:var(--card);border-top:1px solid var(--line);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.daycfg:first-child{border-top:0}
.daycfg-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.daycfg-top .t{font-weight:700;text-transform:capitalize;flex:1;min-width:120px}
.mini{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}
.daycfg input{width:100%;border:1px solid var(--line);background:var(--card-2);border-radius:8px;padding:8px 10px;color:var(--ink);font:inherit;font-size:14.5px}

.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:center;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabbar-in{display:flex;width:100%;max-width:560px}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px 10px;font-size:12.5px;color:var(--muted);font-weight:700;position:relative}
.tab[aria-selected="true"]{color:var(--accent)}
.tab[aria-selected="true"]::before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
.tab .badge{position:absolute;top:4px;left:calc(50% + 8px);background:var(--bad);color:#fff;font-size:11px;border-radius:9px;padding:0 5px;min-width:18px;text-align:center}

.scrim{position:fixed;inset:0;background:rgba(10,20,30,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--card);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;border-radius:20px 20px 0 0;padding:8px 18px calc(18px + env(safe-area-inset-bottom,0px));animation:up .2s ease-out}
@keyframes up{from{transform:translateY(30px);opacity:.5}to{transform:none;opacity:1}}
.grab{width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 12px}
.sheet h3{font-family:var(--display);font-size:24px;margin:0;line-height:1.15}
.sheet .when{color:var(--muted);font-size:15px;margin-top:2px}
.cover{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 12px;font-weight:700;font-size:14.5px;margin:12px 0 6px}
.cover.ok{background:var(--ok-soft);color:var(--ok)}.cover.warn{background:var(--warn-soft);color:var(--warn)}.cover.bad{background:var(--bad-soft);color:var(--bad)}
.people{list-style:none;padding:0;margin:8px 0 16px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.people li{font-size:17px;font-weight:700;padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
.people li:first-child{border-top:0}
.people li .tel{margin-left:auto;font-weight:400;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;user-select:all}
.people li.free{color:var(--muted);font-style:italic;font-weight:400}
.people li.me{background:var(--accent-soft);font-weight:700}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:#fff;flex:none}
.av.free{background:transparent;border:1.5px dashed var(--line)}
.actions{display:flex;flex-direction:column;gap:8px}
.choice{display:flex;gap:10px;align-items:center;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;width:100%;text-align:left;margin-bottom:8px}
.choice[aria-checked="true"]{border-color:var(--accent);background:var(--accent-soft)}
.choice .dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:none}
.choice[aria-checked="true"] .dot{border:6px solid var(--accent)}
.choice small{display:block;color:var(--muted);font-size:13px}
.notify{display:flex;gap:12px;align-items:flex-start;background:var(--card-2);border-radius:12px;padding:12px 14px;margin:6px 0 10px}
.notify .grow{flex:1}
.notify small{display:block;color:var(--muted);font-size:13.5px}
textarea.msg{width:100%;border:1px solid var(--line);background:var(--card-2);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit;resize:vertical;min-height:70px;margin-bottom:12px}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field label{font-size:13.5px;font-weight:700;color:var(--muted)}
.field input,.field select{border:1px solid var(--line);background:var(--card-2);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit}
.days-pick{display:flex;gap:6px;flex-wrap:wrap}
.days-pick button{width:44px;height:40px;border-radius:10px;border:1.5px solid var(--line);font-weight:700;font-size:14px}
.days-pick button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);z-index:60;background:var(--ink);color:var(--card);padding:11px 16px;border-radius:12px;font-size:14.5px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:calc(100% - 32px);text-align:center}

/* ===== Compact one-screen day ===== */
.top{padding:8px 16px}
.brand-mark{width:30px;height:30px;border-radius:8px}
.brand-mark .ico{width:18px;height:18px}
.brand h1{font-size:19px}
.brand small{display:none}
.daynav{padding:6px 6px 6px}
.navbtn{width:32px;height:46px}
.dpill{width:48px;padding:3px 0 2px;border-radius:12px}
.dpill .dn{font-size:17px}
.dpill .dw{font-size:11px}
.dpill .de{font-size:11px;height:14px}
.wsep{flex:none;width:1.5px;align-self:stretch;margin:4px 4px;background:var(--line);border-radius:1px}
.week-line{margin-top:8px;font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.week-line b{color:var(--accent)}
.day-title{margin:2px 0 6px;gap:8px;align-items:center}
.day-title h2{font-size:18px}
.day-title .day-sum{margin-left:auto;white-space:nowrap}
.note{padding:6px 10px;margin-bottom:6px;font-size:14px;border-radius:10px}
main{padding-bottom:84px}
.legend{margin-top:8px;font-size:12px;gap:4px 12px}
.day-title{flex-wrap:nowrap}.day-title h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tab{padding:6px 4px 7px}

.welcome{max-width:380px;margin:24px auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.w-mark{width:64px;height:64px;border-radius:18px;background:var(--sun);color:#3a2800;display:grid;place-items:center}
.w-mark .ico{width:32px;height:32px}
.welcome h2{font-family:var(--display);font-size:24px;margin:6px 0 0;text-wrap:balance}
.w-sub{color:var(--muted);font-size:15px;margin:0 0 8px;max-width:34ch}
.w-label{font-weight:700;font-size:14px;align-self:stretch;text-align:left}
.code-in{width:100%;height:64px;border:2px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font-family:var(--display);font-size:32px;text-align:center;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.code-in:focus{border-color:var(--accent);outline:none}
.w-err{color:var(--bad);font-size:14px;min-height:20px;margin:0}
.w-help{color:var(--muted);font-size:14px;margin:4px 0 0}
.w-demo{font-size:12.5px;color:var(--muted);background:var(--card-2);border:1px dashed var(--line);border-radius:10px;padding:8px 10px;margin-top:10px}
body.out .who{display:none}
.code-show{font-family:var(--display);font-size:44px;font-weight:700;text-align:center;letter-spacing:.08em;margin:18px 0 8px;color:var(--accent);font-variant-numeric:tabular-nums}
@media (max-width:440px){.who > span{display:none}.who select{max-width:120px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
