/* Dashboard */
body[data-admin]{padding-bottom:0;background:#EFF3FB}
.a-login{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--grad-navy);position:relative;overflow:hidden}
.a-login::after{content:"";position:absolute;right:-120px;bottom:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(52,195,190,.45),transparent 68%)}
.a-card{background:#fff;border-radius:28px;padding:32px 26px;width:min(420px,100%);box-shadow:0 40px 80px -30px rgba(0,0,0,.5);position:relative;z-index:1}
.a-card .logo{justify-content:center;margin-bottom:18px}
.a-card h1{font-size:1.5rem;margin:0 0 4px;text-align:center}
.a-card p.sub{text-align:center;color:var(--muted);font-size:.9rem;margin-bottom:22px}
.a-err{display:none;background:#FEF3F2;color:#B42318;border:1px solid #FECDCA;border-radius:12px;padding:10px 12px;font-size:.85rem;margin-bottom:14px}
.a-err.show{display:block}

.a-top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.a-top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.a-top .who{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--muted)}
.a-top .who b{color:var(--navy);display:block;font-size:.85rem}
.live{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:var(--ok);background:#E8F8EE;padding:5px 10px;border-radius:999px}
.live i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:pulse 1.8s infinite}
.live.demo{color:#B54708;background:#FEF0C7}.live.demo i{background:#F79009}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.5)}100%{box-shadow:0 0 0 8px rgba(22,163,74,0)}}
.a-main{padding:22px 0 60px}
.a-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.a-head h2{font-size:1.5rem}
.a-head p{color:var(--muted);font-size:.9rem}
.a-demo{background:#FFFAEB;border:1px solid #FEDF89;color:#93370D;border-radius:14px;padding:12px 14px;font-size:.85rem;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--sh-sm);display:flex;gap:12px;align-items:center}
.kpi .ib{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none}
.kpi b{display:block;font-size:1.6rem;line-height:1.1;color:var(--navy);font-weight:800}
.kpi span{font-size:.76rem;color:var(--muted);font-weight:600}
.kpi.k1 .ib{background:#E8EFFD;color:var(--blue)}.kpi.k2 .ib{background:#FEF0C7;color:#B54708}
.kpi.k3 .ib{background:#DDF6F5;color:#0E7C77}.kpi.k4 .ib{background:#EDE9FE;color:#6D28D9}
.tools{display:grid;gap:10px;margin-bottom:16px}
.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;padding:9px 15px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:.84rem;color:var(--muted);display:flex;gap:7px;align-items:center}
.tab em{font-style:normal;font-size:.72rem;background:#EEF2FA;border-radius:999px;padding:1px 8px;color:var(--navy)}
.tab.on{background:var(--navy);border-color:var(--navy);color:#fff}.tab.on em{background:rgba(255,255,255,.18);color:#fff}
.search{display:flex;gap:8px}
.search input{flex:1;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);font:inherit;background:#fff;min-width:0}
.search input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,79,214,.12)}
.dh{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:20px 4px 8px;display:flex;align-items:center;gap:10px}
.dh::after{content:"";flex:1;height:1px;background:var(--line)}
.dh .today{color:var(--blue)}
.ap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;grid-template-columns:64px 1fr auto;gap:4px 14px;align-items:center;margin-bottom:10px;box-shadow:var(--sh-sm);transition:.15s;cursor:pointer}
.ap:hover{border-color:#C9D8F7;box-shadow:var(--sh)}
.ap.new{animation:flash 2.4s}
@keyframes flash{0%,40%{background:#EAF7FF}100%{background:#fff}}
.ap-time{grid-row:span 2;text-align:center;background:#F1F5FD;border-radius:14px;padding:10px 0;color:var(--navy)}
.ap-time b{display:block;font-size:1.15rem;line-height:1.1}.ap-time span{font-size:.68rem;font-weight:700;color:var(--muted)}
.ap h4{font-size:1rem;color:var(--navy);line-height:1.25}.ap h4 small{font-weight:600;color:var(--muted);font-size:.78rem}
.ap p{font-size:.82rem;color:var(--muted)}
.badge{font-size:.7rem;font-weight:800;padding:5px 10px;border-radius:999px;white-space:nowrap;justify-self:end}
.s-pending{background:#FEF0C7;color:#B54708}.s-confirmed{background:#D1FADF;color:#05603A}
.s-completed{background:#E0E7FF;color:#3730A3}.s-cancelled{background:#FEE4E2;color:#B42318}.s-no_show{background:#F2F4F7;color:#475467}
.ap-act{grid-column:2 / -1;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.ap-act .btn{padding:8px 14px;font-size:.8rem}
.ib-sm{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:0;background:#EAF1FD;color:var(--blue)}
.ib-sm.wa{background:#E8F8EE;color:var(--wa)}
.ib-sm .ico{width:18px;height:18px}
.a-empty{background:#fff;border:1px dashed #C9D5F0;border-radius:18px;padding:40px 20px;text-align:center;color:var(--muted)}
.a-empty b{display:block;color:var(--navy);margin-bottom:4px}

/* sheet */
.ov{position:fixed;inset:0;background:rgba(7,26,74,.5);backdrop-filter:blur(3px);z-index:80;display:none;align-items:flex-end;justify-content:center}
.ov.show{display:flex}
.sheet{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:26px 26px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));animation:up .3s cubic-bezier(.2,.9,.3,1)}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet .sh-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.sheet h3{font-size:1.25rem;color:var(--navy);line-height:1.2}
.sheet .x{width:36px;height:36px;border-radius:50%;border:0;background:#F1F5FD;color:var(--navy);display:grid;place-items:center;flex:none}
.sheet .sum{margin:14px 0}
.sheet textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px;font:inherit;min-height:76px;resize:vertical}
.sheet textarea:focus{outline:0;border-color:var(--blue)}
.sheet .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.sheet .row .btn{flex:1;min-width:130px}
.btn-danger{background:#FEE4E2;color:#B42318}
.btn-ok{background:#D1FADF;color:#05603A}
.resched{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.resched .dates{padding-bottom:8px}
.resched .slots{grid-template-columns:repeat(3,1fr)}

@media(min-width:760px){
  .kpis{grid-template-columns:repeat(4,1fr)}
  .tools{grid-template-columns:1fr 320px;align-items:center}
  .ap{grid-template-columns:76px 1fr auto auto;padding:14px 18px;gap:4px 18px}
  .ap-time{grid-row:auto}
  .ap-act{grid-column:auto;margin:0}
  .ov{align-items:center}
  .sheet{border-radius:26px}
}

.hide-m{display:none}
@media(min-width:600px){.hide-m{display:block}}
.a-top .who{gap:10px}

[hidden]{display:none!important}
