:root{
  --bg:#0a0a0b;--bg2:#161618;--card:#121214;--card2:#1a1a1d;--line:rgba(255,255,255,.09);--text:#f4f4f2;--muted:#8f8f98;
  --accent:#d6ff3f;--accent-text:#d6ff3f;--accent-ink:#0a0a0b;--accent-soft:rgba(214,255,63,.12);
  --violet:#8b5cf6;--ok:#3ddc97;--warn:#ffb340;--bad:#ff5d6c;--info:#5eb6ff;
  --r:22px;--shadow:0 20px 50px -20px rgba(0,0,0,.7);
  --display:'Bricolage Grotesque','Inter',system-ui,sans-serif;
}
:root[data-theme=light]{
  --bg:#f3f2ee;--bg2:#ffffff;--card:#ffffff;--card2:#f7f6f2;--line:rgba(10,10,11,.09);--text:#0d0d0f;--muted:#6b6b73;
  --accent:#c6f432;--accent-text:#4d6600;--accent-ink:#0a0a0b;--accent-soft:rgba(150,200,0,.16);--shadow:0 20px 50px -25px rgba(20,20,0,.25);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.5 'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
h1,h2,h3{margin:0;line-height:1.08;font-family:var(--display);letter-spacing:-.02em;font-weight:800}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.hidden{display:none!important}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.center{text-align:center}
.row{display:flex;gap:10px;align-items:center}
.row.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
.gap{display:grid;gap:14px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.modal-open{overflow:hidden}
a,button,label,input,select,textarea,.item,.svc,.day,.slot,.wk,.tile{touch-action:manipulation}
input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;appearance:none;min-height:50px;min-width:0;text-align:left;display:block}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
input,select,textarea,button{font-size:16px}
::selection{background:var(--accent);color:var(--accent-ink)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--card2);color:var(--text);
  padding:12px 20px;border-radius:99px;cursor:pointer;font-weight:600;text-decoration:none;min-height:48px;transition:transform .12s,background .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{background:var(--bg2)}
.btn:active{transform:scale(.96)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:0 8px 30px -8px var(--accent)}
.btn.primary:hover{filter:brightness(1.06)}
.btn.danger{background:transparent;border-color:rgba(255,93,108,.45);color:var(--bad)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.sm{padding:8px 14px;min-height:40px;font-size:.88rem}
.btn.block{display:flex;width:100%}
.btn[disabled]{opacity:.35;pointer-events:none;box-shadow:none}

input,select,textarea{width:100%;background:var(--card2);border:1.5px solid transparent;border-radius:16px;padding:13px 16px;min-height:50px;outline:none;transition:border-color .15s,background .15s}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}
input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--bg2)}
textarea{resize:vertical;min-height:84px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%238f8f98' stroke-width='2'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
label.f{display:grid;gap:6px;font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.02em}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--accent)}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:99px;font-size:.74rem;font-weight:700;background:var(--card2);color:var(--muted)}
.chip::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.ok{color:var(--ok);background:rgba(61,220,151,.12)}.chip.warn{color:var(--warn);background:rgba(255,179,64,.12)}
.chip.bad{color:var(--bad);background:rgba(255,93,108,.12)}.chip.info{color:var(--info);background:rgba(94,182,255,.12)}

.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%) translateY(30px);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:99px;
  font-weight:600;opacity:0;transition:.25s;z-index:200;max-width:90vw;text-align:center;pointer-events:none;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
.modal{background:var(--bg2);width:100%;max-width:560px;max-height:92vh;max-height:92dvh;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:auto;border-radius:30px 30px 0 0;padding:26px 20px calc(24px + env(safe-area-inset-bottom));border:1px solid var(--line);animation:up .28s cubic-bezier(.2,.9,.3,1);position:relative}
.modal::before{content:'';display:block;width:42px;height:4px;border-radius:9px;background:var(--line);margin:-14px auto 16px}
@keyframes up{from{transform:translateY(60px);opacity:0}}
@keyframes fade{from{opacity:0}}
@media(min-width:700px){.modal-bg{align-items:center}.modal{border-radius:30px}.modal::before{display:none}}
.modal h3{margin-bottom:16px;font-size:1.5rem}
.modal .actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.modal .actions .btn{flex:1}
.stars{color:var(--accent-text);letter-spacing:2px}
