:root{
  --bg:#07141c;
  --bg2:#0b1f2a;
  --panel:#0e2733;
  --panel2:#12303d;
  --text:#f7fbfc;
  --muted:#9cb4bd;
  --teal:#70c0c7;
  --teal2:#43aeb9;
  --line:rgba(112,192,199,.22);
  --good:#58c58b;
  --warn:#f2b960;
  --danger:#e87878;
  --shadow:0 18px 60px rgba(0,0,0,.34);
  --radius:24px;
}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#061118 0%,#0a1d26 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;min-height:100dvh;overflow-x:hidden}
button,input,select,textarea{font:inherit;font-size:16px}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.hidden{display:none!important}
.muted{color:var(--muted)}
.eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:800}
.badge{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:rgba(112,192,199,.07);padding:7px 10px;border-radius:999px;font-size:.78rem;color:#d8f3f5}
.badge.good{border-color:rgba(88,197,139,.28);background:rgba(88,197,139,.09);color:#bdf0d0}
.badge.warn{border-color:rgba(242,185,96,.28);background:rgba(242,185,96,.09);color:#ffe0aa}
.badge.danger{border-color:rgba(232,120,120,.28);background:rgba(232,120,120,.09);color:#ffc5c5}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(255,255,255,.04)}

/* Login */
.login-page{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.1fr .9fr;background:#061118;position:relative;overflow:hidden}
.login-art{position:relative;min-height:100vh;min-height:100dvh;background-image:linear-gradient(180deg,rgba(2,11,16,.18),rgba(2,11,16,.72)),url('assets/hero-pool.jpg');background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:clamp(32px,6vw,84px)}
.login-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,#061118 100%);pointer-events:none}
.hero-copy{position:relative;z-index:2;max-width:680px}
.hero-copy h1{margin:10px 0 12px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.7rem,6vw,5.7rem);line-height:.97;font-weight:500;letter-spacing:-.03em}
.hero-copy p{max-width:580px;font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.6;color:#d6e3e7}
.login-panel{min-height:100vh;min-height:100dvh;padding:calc(34px + env(safe-area-inset-top)) clamp(24px,4vw,58px) calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center;position:relative;background:radial-gradient(circle at 70% 10%,rgba(112,192,199,.12),transparent 34%),#061118}
.brand-login{display:flex;justify-content:center;margin-bottom:28px}.brand-login img{width:min(380px,85%);max-height:150px;object-fit:contain}
.login-panel h2{text-align:center;margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,3vw,3rem);font-weight:500}.login-panel>p{text-align:center;color:var(--muted);line-height:1.55;margin:10px auto 24px;max-width:560px}
.quick-logins{display:grid;gap:12px;max-width:560px;width:100%;margin:0 auto}.login-card{border:1px solid rgba(112,192,199,.15);background:linear-gradient(180deg,rgba(17,46,59,.88),rgba(10,30,39,.92));border-radius:20px;padding:18px 20px;color:#fff;display:flex;align-items:center;gap:16px;transition:.2s ease;text-align:left}.login-card:hover{transform:translateY(-2px);border-color:rgba(112,192,199,.46);box-shadow:0 14px 34px rgba(0,0,0,.25)}
.avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,var(--teal),#267e8b);font-weight:900;color:#06202a}.login-card .meta{flex:1}.login-card strong{display:block;font-size:1rem}.login-card small{display:block;margin-top:4px;color:var(--muted)}.login-card .arrow{color:var(--teal);font-size:1.35rem}
.demo-note{max-width:560px;margin:18px auto 0;border:1px dashed rgba(112,192,199,.2);padding:12px 14px;border-radius:14px;color:#8ca6af;font-size:.82rem;line-height:1.5}
.tech-entry{position:absolute;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border:0;background:transparent;color:rgba(255,255,255,.16);font-size:.68rem;letter-spacing:.1em;padding:12px;white-space:nowrap}.tech-entry:hover{color:rgba(112,192,199,.75)}

/* shell */
.shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:282px 1fr;background:var(--bg)}
.sidebar{position:sticky;top:0;height:100vh;height:100dvh;background:linear-gradient(180deg,#07141c,#0a202a);border-right:1px solid var(--line);padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;z-index:40}
.side-logo{height:74px;object-fit:contain;object-position:left center;margin:2px 4px 24px}.side-user{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:18px;background:rgba(112,192,199,.05);margin-bottom:18px}.side-user strong{display:block}.side-user small{color:var(--muted)}
.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#a9bec5;border-radius:14px;padding:12px 13px;display:flex;align-items:center;gap:11px;text-align:left;font-weight:680}.nav button:hover{background:rgba(112,192,199,.06);color:#e9f7f8}.nav button.active{background:linear-gradient(90deg,rgba(112,192,199,.17),rgba(112,192,199,.05));color:#fff;box-shadow:inset 3px 0 0 var(--teal)}.nav .ico{width:22px;text-align:center;color:var(--teal)}
.side-bottom{margin-top:auto;display:grid;gap:8px}.ghost-btn{border:1px solid var(--line);background:rgba(255,255,255,.02);color:#c9d8dc;border-radius:14px;padding:11px 13px}.ghost-btn:hover{border-color:rgba(112,192,199,.46)}
.main{min-width:0;padding:24px clamp(18px,3vw,42px) 46px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;position:sticky;top:0;z-index:25;padding:14px 0;background:linear-gradient(180deg,var(--bg) 65%,rgba(7,20,28,0));backdrop-filter:blur(8px)}.topbar h1{margin:0;font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(1.65rem,2.7vw,2.55rem)}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:9px;align-items:center}.icon-btn,.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:14px;padding:11px 14px;font-weight:760;transition:.2s}.primary-btn{background:linear-gradient(135deg,var(--teal),var(--teal2));color:#06171f}.primary-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.secondary-btn{background:rgba(112,192,199,.08);border:1px solid var(--line);color:#dff7f8}.danger-btn{background:rgba(232,120,120,.09);border:1px solid rgba(232,120,120,.2);color:#ffc4c4}.icon-btn{width:44px;height:44px;padding:0;border:1px solid var(--line);background:#0d2530;color:#fff;display:grid;place-items:center}.mobile-menu{display:none}

.content{display:grid;gap:20px}.grid-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi,.card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(15,43,55,.86),rgba(10,30,39,.92));border-radius:var(--radius);box-shadow:0 12px 38px rgba(0,0,0,.12)}.kpi{padding:20px;position:relative;overflow:hidden}.kpi::after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;right:-32px;top:-36px;background:radial-gradient(circle,rgba(112,192,199,.2),transparent 68%)}.kpi .label{color:var(--muted);font-size:.82rem}.kpi .value{font-family:Georgia,'Times New Roman',serif;font-size:2rem;margin-top:6px}.kpi .hint{font-size:.78rem;margin-top:4px;color:#84cfd5}
.card{padding:20px}.card h3{margin:0 0 6px;font-family:Georgia,'Times New Roman',serif;font-size:1.3rem;font-weight:500}.card .sub{color:var(--muted);font-size:.85rem;margin-bottom:16px}.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-card{position:relative;overflow:hidden;min-height:220px}.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(4,14,19,.88))}.photo-card .overlay{position:absolute;left:20px;right:20px;bottom:18px;z-index:2}.photo-card h3{font-size:1.7rem;margin:0}.photo-card p{margin:6px 0 0;color:#dce7ea}

/* tables/lists */
.table-wrap{overflow:auto;border-radius:16px;border:1px solid rgba(112,192,199,.12)}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid rgba(112,192,199,.1)}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#82bbc0;background:rgba(3,14,19,.35)}td{font-size:.9rem;color:#dce7ea}tr:last-child td{border-bottom:0}.money{font-variant-numeric:tabular-nums}.row-actions{display:flex;gap:6px}.mini-btn{border:1px solid var(--line);background:rgba(112,192,199,.06);color:#e8f8f9;border-radius:10px;padding:7px 9px;font-size:.78rem}
.list{display:grid;gap:10px}.list-item{display:flex;gap:12px;align-items:center;border:1px solid rgba(112,192,199,.12);background:rgba(255,255,255,.015);padding:13px;border-radius:16px}.list-item .grow{flex:1;min-width:0}.list-item strong{display:block}.list-item small{color:var(--muted)}.date-box{width:50px;height:50px;border-radius:14px;background:rgba(112,192,199,.11);display:grid;place-items:center;text-align:center;color:#dff7f8}.date-box b{font-size:1.05rem}.date-box span{font-size:.65rem;text-transform:uppercase;color:var(--teal)}
.progress{height:7px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#5fd398);border-radius:inherit}

/* calendar */
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.calendar-head h3{margin:0}.calendar-nav{display:flex;gap:6px}.calendar-nav button{border:1px solid var(--line);background:rgba(255,255,255,.02);color:#fff;border-radius:10px;width:36px;height:36px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.dow{text-align:center;font-size:.68rem;text-transform:uppercase;color:#70939e;padding:6px}.day{min-height:96px;border:1px solid rgba(112,192,199,.11);border-radius:14px;padding:8px;background:rgba(255,255,255,.012);position:relative;overflow:hidden}.day.muted-day{opacity:.34}.day .num{font-size:.78rem;color:#a8bec5}.day.today{border-color:rgba(112,192,199,.6);box-shadow:inset 0 0 0 1px rgba(112,192,199,.26)}.event-pill{margin-top:6px;border-radius:8px;padding:5px 6px;font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(112,192,199,.12);color:#dff7f8;border-left:3px solid var(--teal)}.event-pill.confirmed{background:rgba(88,197,139,.1);border-left-color:var(--good)}.event-pill.hold{background:rgba(242,185,96,.1);border-left-color:var(--warn)}

/* forms/modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(640px,100%);max-height:88vh;overflow:auto;background:#0b202a;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:22px}.modal h2{margin:0 0 16px;font-family:Georgia,'Times New Roman',serif;font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.77rem;color:#91abb4;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(112,192,199,.2);background:#07171e;color:#fff;border-radius:13px;padding:12px 13px;outline:none;min-height:46px}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(112,192,199,.75);box-shadow:0 0 0 3px rgba(112,192,199,.08)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.password-wrap{position:relative}.password-wrap input{padding-right:46px}.password-wrap button{position:absolute;right:6px;top:6px;width:34px;height:34px;border:0;background:transparent;color:var(--muted)}

/* client */
.client-shell{min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 100% 0%,rgba(112,192,199,.11),transparent 32%),var(--bg)}.client-header{max-width:1140px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 20px 10px;display:flex;justify-content:space-between;align-items:center;gap:16px}.client-header img{width:230px;max-height:76px;object-fit:contain;object-position:left}.client-main{max-width:1140px;margin:auto;padding:16px 20px calc(96px + env(safe-area-inset-bottom));display:grid;gap:18px}.client-hero{min-height:310px;border-radius:30px;overflow:hidden;position:relative;background:url('assets/event-table.jpg') center/cover}.client-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,14,19,.88),rgba(4,14,19,.22))}.client-hero .copy{position:absolute;z-index:2;left:clamp(20px,4vw,44px);top:50%;transform:translateY(-50%);max-width:590px}.client-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(2.2rem,5vw,4.4rem);margin:8px 0;line-height:1}.client-hero p{color:#d5e5e8;max-width:520px;line-height:1.55}.client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.info-tile{border:1px solid var(--line);border-radius:20px;padding:18px;background:linear-gradient(180deg,rgba(15,43,55,.82),rgba(10,30,39,.92))}.info-tile .big{font-family:Georgia,'Times New Roman',serif;font-size:1.6rem;margin-top:5px}.copy-row{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(112,192,199,.13);border-radius:14px;margin-top:9px;background:rgba(255,255,255,.014)}.copy-row .grow{flex:1;min-width:0}.copy-row strong{word-break:break-word}.copy-btn{border:1px solid var(--line);background:rgba(112,192,199,.07);color:#dff7f8;border-radius:10px;padding:8px 10px;font-size:.78rem}.client-bottom-nav{display:none}
.stars{display:flex;gap:6px}.star{border:0;background:transparent;font-size:2rem;color:#3e5660;padding:0 2px}.star.on{color:#f4c66c}

/* super admin */
.super-banner{border:1px solid rgba(112,192,199,.26);background:linear-gradient(135deg,rgba(112,192,199,.1),rgba(8,24,31,.8));padding:16px 18px;border-radius:18px;display:flex;justify-content:space-between;gap:16px;align-items:center}.session-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px;border:1px solid rgba(112,192,199,.12);border-radius:18px;background:rgba(255,255,255,.014)}.online{color:var(--good)}.offline{color:#728a92}

/* mobile */
@media(max-width:1040px){.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.three-col{grid-template-columns:1fr 1fr}.client-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .login-page{display:block}.login-art{min-height:40vh;padding:32px 24px}.login-art::after{background:linear-gradient(180deg,transparent 40%,#061118 100%)}.hero-copy h1{font-size:3.1rem}.login-panel{min-height:auto;padding-top:14px;padding-bottom:58px}.brand-login{display:none}
  .shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(82vw,300px);transform:translateX(-102%);transition:transform .22s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.sidebar-scrim{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:35}.main{padding:10px 16px 34px}.mobile-menu{display:grid}.topbar{padding-top:calc(8px + env(safe-area-inset-top));align-items:flex-start}.topbar p{font-size:.82rem}.top-actions .desktop-only{display:none}
  .calendar{gap:4px}.day{min-height:76px;padding:6px}.event-pill{font-size:.58rem;padding:4px}.card{padding:16px}
  .client-main{padding-left:14px;padding-right:14px}.client-header{padding-left:14px;padding-right:14px}.client-header img{width:180px}.client-grid{grid-template-columns:1fr}.client-bottom-nav{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:50;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(7,20,28,.92);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:18px;padding:7px;box-shadow:var(--shadow)}.client-bottom-nav button{border:0;background:transparent;color:#8ca8b1;border-radius:12px;padding:9px 5px;font-size:.67rem}.client-bottom-nav button.active{background:rgba(112,192,199,.11);color:#fff}
}
@media(max-width:620px){.grid-kpi{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:15px}.kpi .value{font-size:1.6rem}.three-col{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.calendar{grid-template-columns:repeat(7,1fr)}.day{min-height:58px;border-radius:10px}.event-pill{font-size:0;width:7px;height:7px;border-radius:50%;padding:0;border:0;margin:5px auto 0;background:var(--teal)}.event-pill.confirmed{background:var(--good)}.event-pill.hold{background:var(--warn)}.dow{font-size:.56rem}.client-hero{min-height:360px}.client-hero::after{background:linear-gradient(180deg,rgba(4,14,19,.18),rgba(4,14,19,.86))}.client-hero .copy{top:auto;bottom:26px;transform:none}.client-header img{width:155px}.super-banner{align-items:flex-start;flex-direction:column}.session-card{grid-template-columns:auto 1fr}.session-card .mini-btn{grid-column:1/-1;width:100%}}
@media(max-width:390px){.grid-kpi{grid-template-columns:1fr}.topbar h1{font-size:1.55rem}.hero-copy h1{font-size:2.65rem}}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:200;background:#dff8f9;color:#06202a;padding:11px 15px;border-radius:999px;font-weight:800;opacity:0;pointer-events:none;transition:.22s;box-shadow:var(--shadow);max-width:calc(100vw - 30px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
