:root {
    --ink: #17142d;
    --muted: #716f82;
    --line: #e9e7f1;
    --surface: #ffffff;
    --canvas: #f7f7fb;
    --primary: #7357ff;
    --primary-dark: #5b3fe5;
    --primary-soft: #eeeaff;
    --accent: #15c7a3;
    --accent-soft: #e3fbf5;
    --orange: #ff8b5e;
    --blue: #3b9df8;
    --danger: #e54c65;
    --warning: #f0a62e;
    --shadow-sm: 0 8px 24px rgba(35, 28, 72, .07);
    --shadow: 0 24px 70px rgba(35, 28, 72, .12);
    --radius: 18px;
    --radius-lg: 28px;
    --sidebar: 274px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--canvas); font-size: 15px; line-height: 1.55; }
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .btn { cursor: pointer; }
img { max-width: 100%; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow.light { color: #d8d0ff; }
.pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(21,199,163,.13); }

.brand { display: inline-flex; align-items: center; gap: 11px; font-weight: 850; font-size: 19px; letter-spacing: -.02em; }
.brand-mark { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 12px 12px 12px 4px; color: #fff; background: linear-gradient(135deg, var(--primary), #9f6bff); box-shadow: 0 8px 20px rgba(115,87,255,.28); }
.brand-large { font-size: 22px; }
.brand-large .brand-mark { width: 44px; height: 44px; }
.brand-light { color: #fff; }

.btn { border: 0; border-radius: 12px; min-height: 42px; padding: 10px 18px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-weight: 750; transition: .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--primary), #8d63ff); box-shadow: 0 10px 25px rgba(115,87,255,.24); }
.btn-primary:hover { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); box-shadow: 0 12px 30px rgba(115,87,255,.32); }
.btn-primary:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.btn-soft { color: var(--ink); background: #f0eef7; }
.btn-soft:hover { background: #e8e5f2; }
.btn-ghost { color: var(--primary); background: transparent; border: 1px solid #d8d1ff; }
.btn-white { color: var(--primary-dark); background: #fff; box-shadow: 0 15px 35px rgba(32,24,68,.18); }
.btn-large { min-height: 52px; padding: 14px 24px; border-radius: 14px; }
.btn-block { width: 100%; }
.text-link { color: var(--primary); font-weight: 750; }
.icon-button { display: grid; place-items: center; border: 0; border-radius: 9px; width: 36px; height: 36px; color: var(--primary); background: var(--primary-soft); }

input, select, textarea { width: 100%; border: 1px solid #dfdce9; border-radius: 11px; background: #fff; color: var(--ink); padding: 11px 13px; outline: none; transition: .2s; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(115,87,255,.1); }
input[type="color"] { min-height: 44px; padding: 5px; }
textarea { resize: vertical; }
label { display: grid; gap: 7px; color: #464256; font-size: 13px; font-weight: 700; }
.stack-form { display: grid; gap: 18px; }
.form-grid { display: grid; gap: 15px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
fieldset { border: 0; border-top: 1px solid var(--line); margin: 4px 0 0; padding: 18px 0 0; }
legend { padding-right: 15px; font-weight: 850; font-size: 15px; }
.check-line { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; }
.check-line input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--primary); }
.form-note { margin: 0; padding: 11px 13px; background: #f2f7ff; border-radius: 10px; color: #4c6183; font-size: 13px; }
.alert { padding: 13px 16px; border-radius: 11px; font-size: 14px; }
.alert ul { margin: 8px 0 0; padding-left: 20px; }
.alert-danger { color: #9b2f42; background: #fff0f3; border: 1px solid #ffd4dc; }
.alert-warning { color: #89601d; background: #fff8e7; border: 1px solid #f9dda2; }

/* Public navigation */
.public-body { background: #fff; }
.public-header { position: relative; z-index: 50; height: 78px; display: flex; align-items: center; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(232,229,241,.8); backdrop-filter: blur(14px); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; }
.public-nav { display: flex; align-items: center; gap: 25px; color: #4c485e; font-size: 14px; font-weight: 650; }
.public-nav > a:not(.btn):hover { color: var(--primary); }
.nav-toggle { display: none; background: transparent; border: 0; }
.nav-toggle span, .menu-button span { width: 22px; height: 2px; background: currentColor; display: block; margin: 4px 0; }
.language-menu { position: relative; }
.language-button { border: 0; padding: 7px 9px; border-radius: 8px; background: transparent; color: inherit; font-size: 12px; font-weight: 800; }
.language-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 8px); min-width: 145px; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); z-index: 10; }
.language-dropdown.open { display: grid; }
.language-dropdown a { padding: 7px 10px; border-radius: 7px; color: var(--ink); font-size: 13px; }
.language-dropdown a:hover { background: var(--primary-soft); }

/* Landing */
.hero { min-height: 720px; display: flex; align-items: center; position: relative; overflow: hidden; background: linear-gradient(145deg,#f9f8ff 15%,#f5f9ff 60%,#f1fffb); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(115,87,255,.13) 1px,transparent 1px); background-size: 25px 25px; mask-image: linear-gradient(to right,black,transparent 70%); }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(4px); }
.hero-orb-one { width: 420px; height: 420px; background: rgba(115,87,255,.12); right: -150px; top: -130px; }
.hero-orb-two { width: 300px; height: 300px; background: rgba(21,199,163,.11); left: 38%; bottom: -150px; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 70px; }
.hero-copy h1 { margin: 20px 0; max-width: 660px; font-size: clamp(46px,5.3vw,76px); line-height: .99; letter-spacing: -.055em; }
.hero-copy > p { max-width: 610px; margin: 0; color: var(--muted); font-size: 19px; line-height: 1.7; }
.hero-actions { display: flex; gap: 12px; margin: 32px 0 24px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 15px 22px; color: #777287; font-size: 12px; font-weight: 650; }
.hero-trust span::first-letter { color: var(--accent); }
.hero-visual { min-height: 515px; position: relative; display: grid; place-items: center; }
.hero-visual::before { content: ""; position: absolute; width: 430px; height: 430px; border-radius: 46% 54% 62% 38%; background: linear-gradient(135deg,rgba(115,87,255,.18),rgba(21,199,163,.12)); transform: rotate(12deg); }
.floating-card { position: relative; width: min(430px,90%); padding: 25px; border: 1px solid rgba(255,255,255,.75); border-radius: 25px; background: rgba(255,255,255,.92); box-shadow: 0 35px 80px rgba(50,36,106,.18); backdrop-filter: blur(18px); transform: rotate(-2deg); }
.mini-head { display: flex; justify-content: space-between; align-items: flex-start; }
.mini-head div { display: grid; }
.mini-head span { color: var(--muted); font-size: 12px; }
.mini-head strong { font-size: 20px; }
.live-badge { color: #0a9f82 !important; background: var(--accent-soft); padding: 5px 8px; border-radius: 8px; font-size: 9px !important; font-weight: 850; }
.mini-days { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; margin: 24px 0 15px; text-align: center; color: var(--muted); font-size: 11px; font-weight: 800; }
.mini-days span:nth-child(3) { color: #fff; background: var(--primary); border-radius: 8px; padding: 6px; margin: -6px 8px; }
.mini-slots { display: grid; gap: 12px; }
.mini-slots > div { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 9px; }
.mini-slots b { font-size: 12px; }
.mini-slots span { position: relative; display: grid; padding: 10px 12px 10px 16px; border-radius: 10px; background: color-mix(in srgb,var(--event) 10%,white); font-size: 12px; font-weight: 800; overflow: hidden; }
.mini-slots span::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--event); }
.mini-slots small { color: var(--muted); font-weight: 500; }
.floating-stat { position: absolute; z-index: 2; display: flex; align-items: center; gap: 11px; padding: 13px 16px; border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.floating-stat strong, .floating-stat small { display: block; }
.floating-stat small { color: var(--muted); font-size: 10px; }
.stat-one { top: 80px; right: -18px; }
.stat-two { bottom: 70px; left: -20px; }
.stat-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; color:#078b71; background:var(--accent-soft); }
.avatar-stack { display:flex; }
.avatar-stack i { width:29px; height:29px; display:grid; place-items:center; margin-left:-7px; border:2px solid white; border-radius:50%; color:#fff; background:var(--primary); font-size:10px; font-style:normal; }
.avatar-stack i:nth-child(2){background:var(--accent)} .avatar-stack i:nth-child(3){background:var(--orange)}
.section { padding: 105px 0; }
.section-tint { background: #f8f8fc; }
.section-heading { max-width: 600px; margin-bottom: 48px; }
.section-heading.centered { text-align: center; margin-inline: auto; }
.section-heading h2 { margin: 12px 0; font-size: clamp(34px,4vw,50px); line-height: 1.1; letter-spacing: -.04em; }
.section-heading p { margin: 0; color: var(--muted); font-size: 17px; }
.service-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.service-card { position: relative; display: flex; flex-direction: column; min-height: 300px; padding: 25px; border: 1px solid var(--line); border-radius: 20px; background: #fff; transition: .25s; overflow: hidden; }
.service-card:hover { transform: translateY(-6px); border-color: #d7d0ff; box-shadow: var(--shadow-sm); }
.service-number { position: absolute; right: 20px; top: 16px; color: #e4e1ed; font-size: 36px; font-weight: 900; }
.service-icon { display: grid; place-items:center; width:47px; height:47px; margin-bottom:27px; border-radius:14px; color:var(--service-color); background:color-mix(in srgb,var(--service-color) 12%,white); }
.service-card h3 { margin: 0 0 8px; font-size: 20px; }
.service-card p { flex:1; margin:0 0 22px; color:var(--muted); font-size:13px; }
.service-meta { display:flex; justify-content:space-between; align-items:center; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.service-meta strong { color:var(--ink); font-size:15px; }
.service-card > a { margin-top:15px; color:var(--primary); font-size:13px; font-weight:800; }
.empty-public { grid-column:1/-1; padding:60px; text-align:center; color:var(--muted); background:var(--canvas); border-radius:var(--radius); }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.team-card { padding:30px; border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); text-align:center; }
.team-avatar { display:grid; place-items:center; width:85px; height:85px; margin:0 auto 18px; border-radius:30px 30px 30px 10px; color:#fff; background:linear-gradient(135deg,var(--team-color),color-mix(in srgb,var(--team-color) 55%,#fff)); font-size:30px; font-weight:900; }
.team-card h3 { margin:0 0 3px; } .team-card p { margin:0; color:var(--muted); }
.how-section { background:#fff; }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:900px; margin:auto; }
.steps-grid article { position:relative; padding:30px; text-align:center; }
.steps-grid article:not(:last-child)::after { content:""; position:absolute; top:56px; right:-35%; width:70%; border-top:2px dashed #ded9f6; }
.steps-grid article > span { position:absolute; top:10px; right:25%; color:#ebe8f4; font-size:70px; font-weight:900; }
.step-icon { position:relative; display:grid; place-items:center; width:70px; height:70px; margin:0 auto 20px; border-radius:22px; color:var(--primary); background:var(--primary-soft); font-size:24px; }
.steps-grid article:nth-child(2) .step-icon { color:#07987c; background:var(--accent-soft); }
.steps-grid article:nth-child(3) .step-icon { color:#d65f35; background:#fff0e9; }
.cta-section { padding:20px 0 95px; }
.cta-card { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:60px 70px; border-radius:30px; color:#fff; background:linear-gradient(130deg,#292048,var(--primary) 65%,#9771ff); box-shadow:0 30px 70px rgba(67,44,160,.28); }
.cta-card h2 { max-width:650px; margin:10px 0; font-size:42px; line-height:1.08; letter-spacing:-.04em; }
.cta-card p { margin:0; color:#ddd7ff; }
.public-footer { padding:60px 0 20px; color:#ccc7dd; background:#151225; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; }
.footer-grid > div { display:grid; align-content:start; gap:9px; }
.footer-grid p { max-width:320px; color:#858099; }
.footer-grid strong { color:#fff; margin-bottom:10px; }
.footer-grid a:not(.brand):hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:25px; margin-top:45px; border-top:1px solid #2a263c; font-size:12px; }

/* Login */
.auth-page { min-height:100vh; background:#fff; }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:1.05fr .95fr; }
.auth-showcase { position:relative; overflow:hidden; display:flex; flex-direction:column; padding:55px clamp(45px,6vw,100px); color:#fff; background:linear-gradient(145deg,#16122d,#2c2054 55%,#5035aa); }
.auth-showcase::before,.auth-showcase::after { content:""; position:absolute; border-radius:50%; }
.auth-showcase::before { width:480px; height:480px; right:-170px; top:-160px; border:1px solid rgba(255,255,255,.12); box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.02); }
.auth-showcase::after { width:300px; height:300px; left:-130px; bottom:-130px; background:rgba(21,199,163,.12); }
.auth-quote { position:relative; z-index:1; margin:auto 0; max-width:590px; }
.auth-quote h1 { margin:14px 0 20px; font-size:clamp(42px,5vw,70px); line-height:1.02; letter-spacing:-.055em; }
.auth-quote p { max-width:530px; color:#c2bcd5; font-size:18px; }
.auth-decoration { position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; }
.decor-card { width:245px; padding:18px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
.decor-card span,.decor-card strong { display:block; }.decor-card span{color:#bfb8d5;font-size:12px}.decor-card strong{font-size:27px}.decor-card i{height:6px;margin-top:12px;display:block;background:rgba(255,255,255,.1);border-radius:5px;overflow:hidden}.decor-card b{height:100%;display:block;background:var(--accent);border-radius:5px}
.decor-bubbles { display:flex; }.decor-bubbles i{width:35px;height:35px;margin-left:-8px;border:2px solid #372b62;border-radius:50%;background:var(--primary)}.decor-bubbles i:nth-child(2){background:var(--accent)}.decor-bubbles i:nth-child(3){background:var(--orange)}
.auth-form-side { display:grid; place-items:center; padding:45px; }
.auth-form-wrap { width:min(430px,100%); }
.back-link { color:var(--muted); font-size:13px; font-weight:700; }
.auth-heading { margin:55px 0 30px; }.auth-heading h2{margin:10px 0 5px;font-size:38px;letter-spacing:-.04em}.auth-heading p{margin:0;color:var(--muted)}
.input-icon { position:relative; display:block; }.input-icon input{padding-left:42px}.input-icon > i{position:absolute;left:15px;top:11px;color:#918da2;font-style:normal}.password-toggle{position:absolute;right:9px;top:7px;width:34px;height:31px;border:0;background:transparent;color:#918da2}
.login-form { gap:20px; }
.auth-languages { display:flex; justify-content:center; gap:8px; margin-top:35px; }.auth-languages a{padding:5px 8px;border-radius:7px;color:var(--muted);font-size:11px;font-weight:800}.auth-languages a:hover{color:var(--primary);background:var(--primary-soft)}

/* Admin shell */
.admin-body { background:var(--canvas); }
.sidebar { position:fixed; z-index:100; inset:0 auto 0 0; width:var(--sidebar); display:flex; flex-direction:column; color:#c8c3d7; background:#171329; }
.sidebar-head { height:79px; display:flex; align-items:center; justify-content:space-between; padding:0 24px; border-bottom:1px solid #2b263c; }
.sidebar-close { display:none; border:0; color:#fff; background:transparent; font-size:26px; }
.business-chip { display:flex; align-items:center; gap:11px; margin:22px 16px 10px; padding:13px; border:1px solid #302a45; border-radius:13px; background:#211c36; }
.business-avatar { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:#fff; background:linear-gradient(135deg,var(--primary),#a46dff); font-weight:900; }
.business-chip div { min-width:0; display:grid; }.business-chip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:13px}.business-chip span:not(.business-avatar){color:#878197;font-size:10px;text-transform:uppercase}
.side-nav { display:grid; gap:4px; padding:8px 14px; overflow-y:auto; }
.nav-label { margin:18px 11px 6px; color:#6f6980; font-size:9px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.side-nav a { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 12px; border-radius:10px; font-size:13px; font-weight:650; }
.side-nav a:hover { color:#fff; background:#211c36; }
.side-nav a.active { color:#fff; background:linear-gradient(90deg,rgba(115,87,255,.25),rgba(115,87,255,.08)); box-shadow:inset 3px 0 var(--primary); }
.nav-icon { display:grid; place-items:center; width:24px; color:#8e86ad; font-size:17px; }
.side-nav a.active .nav-icon { color:#a994ff; }
.sidebar-foot { margin-top:auto; display:flex; align-items:center; gap:8px; padding:16px; border-top:1px solid #2b263c; }
.user-mini { min-width:0; flex:1; display:flex; gap:10px; align-items:center; }.user-avatar{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:#3c335a;font-size:12px;font-weight:850}.user-mini div{min-width:0;display:grid}.user-mini strong,.user-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-mini strong{color:#fff;font-size:12px}.user-mini span{color:#777085;font-size:9px}.sidebar-foot .icon-button{color:#a49cb7;background:#27213b}
.sidebar-overlay { display:none; }
.admin-main { min-height:100vh; margin-left:var(--sidebar); }
.admin-topbar { position:sticky; z-index:40; top:0; height:79px; display:flex; align-items:center; gap:15px; padding:0 32px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.9); backdrop-filter:blur(12px); }
.menu-button { display:none; border:0; background:transparent; }
.topbar-spacer { flex:1; }
.topbar-action { padding:8px 12px; border-radius:9px; color:var(--primary); background:var(--primary-soft); font-size:12px; font-weight:800; }
.admin-content { max-width:1580px; margin:auto; padding:34px; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; margin-bottom:27px; }
.page-heading h1 { margin:5px 0 3px; font-size:34px; line-height:1.15; letter-spacing:-.035em; }
.page-heading p { margin:0; color:var(--muted); }
.panel { border:1px solid #ebe9f2; border-radius:var(--radius); background:#fff; box-shadow:0 3px 14px rgba(42,34,73,.035); }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; border-bottom:1px solid var(--line); }.panel-head h2{margin:4px 0 0;font-size:18px}.panel-head .eyebrow{font-size:9px}
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:17px; margin-bottom:22px; }
.metric-card { position:relative; overflow:hidden; min-height:145px; display:flex; align-items:flex-start; gap:15px; padding:22px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 3px 13px rgba(42,34,73,.035); }
.metric-card::after { content:""; position:absolute; width:100px; height:100px; border-radius:50%; right:-45px; bottom:-55px; background:var(--metric-soft); }
.metric-icon { flex:0 0 auto; display:grid; place-items:center; width:43px; height:43px; border-radius:13px; color:var(--metric); background:var(--metric-soft); font-size:18px; font-weight:850; }
.metric-card > div:nth-child(2){display:grid}.metric-card span{color:var(--muted);font-size:11px;font-weight:700}.metric-card strong{margin:2px 0;font-size:25px;letter-spacing:-.03em}.metric-card small{color:#aaa6b5;font-size:10px}.metric-spark{position:absolute;right:18px;bottom:17px;color:var(--metric);font-size:15px;font-style:normal;letter-spacing:1px;opacity:.7}
.metric-card.purple{--metric:var(--primary);--metric-soft:var(--primary-soft)}.metric-card.green{--metric:#08a989;--metric-soft:var(--accent-soft)}.metric-card.orange{--metric:#e36c3e;--metric-soft:#fff0e9}.metric-card.blue{--metric:#2888df;--metric-soft:#e8f4ff}
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(310px,.65fr); gap:20px; }
.dashboard-side { display:grid; align-content:start; gap:20px; }
.agenda-list { padding:8px 24px 18px; }
.agenda-row { display:grid; grid-template-columns:50px 5px 1fr auto; align-items:center; gap:13px; min-height:68px; border-bottom:1px solid #f1eff5; }
.agenda-row:last-child{border:0}.agenda-row time{font-size:13px;font-weight:850}.agenda-line{height:37px;border-radius:5px;background:var(--line)}.agenda-main{display:grid}.agenda-main strong{font-size:13px}.agenda-main span{color:var(--muted);font-size:11px}
.status { display:inline-flex; align-items:center; white-space:nowrap; padding:5px 9px; border-radius:20px; font-size:9px; font-weight:850; }
.status-pending,.status-pending_payment{color:#9a6815;background:#fff5dc}.status-confirmed{color:#087e68;background:#e4f9f4}.status-arrived{color:#235eae;background:#e9f2ff}.status-in_service{color:#5c42c2;background:#eeeaff}.status-completed{color:#426074;background:#edf3f6}.status-cancelled_customer,.status-cancelled_business,.status-no_show{color:#b33a4f;background:#fff0f3}
.empty-state { min-height:180px; display:grid; place-items:center; align-content:center; gap:7px; padding:25px; color:var(--muted); text-align:center; }.empty-state > span{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;color:var(--primary);background:var(--primary-soft);font-size:20px}.empty-state strong{color:var(--ink)}.empty-state a{color:var(--primary);font-size:12px;font-weight:800}
.occupancy-panel { padding-bottom:24px; }.radial{--percent:calc(var(--value)*1%);width:170px;height:170px;margin:25px auto 0;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--primary) var(--percent),#efedf5 0);position:relative}.radial::after{content:"";position:absolute;inset:15px;border-radius:50%;background:#fff}.radial div{position:relative;z-index:1;display:grid;text-align:center}.radial strong{font-size:31px}.radial span{color:var(--muted);font-size:10px}
.quick-panel { padding-bottom:18px; }.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:16px}.quick-grid a{display:grid;gap:8px;min-height:95px;padding:13px;border:1px solid var(--line);border-radius:12px;color:#514d5f;font-size:10px;font-weight:750}.quick-grid a:hover{border-color:#cfc7ff;background:#faf9ff}.quick-grid span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:var(--primary);background:var(--primary-soft);font-size:16px}

/* Tables and panels */
.filter-panel { margin-bottom:16px; padding:14px 18px; }
.filter-form { display:flex; align-items:flex-end; gap:12px; }.filter-form label{min-width:160px}.filter-form .btn{margin-bottom:0}
.table-panel { overflow:hidden; }
.responsive-table { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th { padding:13px 18px; color:#908b9c; background:#faf9fc; border-bottom:1px solid var(--line); text-align:left; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
td { padding:15px 18px; border-bottom:1px solid #f0eef4; font-size:12px; vertical-align:middle; }
tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfcff}
.table-title { display:flex; align-items:center; gap:11px; min-width:210px; }.table-title > i{width:9px;height:36px;border-radius:6px}.table-title div{display:grid}.table-title strong{font-size:13px}.table-title span,.cell-sub{display:block;color:var(--muted);font-size:10px;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-dot { display:inline-block; width:8px; height:8px; margin-right:7px; border-radius:50%; }
.inline-status { display:flex; align-items:center; gap:5px; }.inline-status select{min-width:145px;padding:7px 9px;font-size:10px}.inline-status .icon-button{width:31px;height:31px}
.team-admin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; }
.employee-card { padding:21px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 3px 13px rgba(42,34,73,.035); }
.employee-top { display:flex; align-items:flex-start; justify-content:space-between; }.employee-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:18px 18px 18px 6px;color:#fff;background:linear-gradient(135deg,var(--employee),color-mix(in srgb,var(--employee) 55%,#fff));font-size:20px;font-weight:900}.employee-card h3{margin:16px 0 0}.employee-card > p{margin:2px 0 17px;color:var(--muted);font-size:12px}.employee-info{display:grid;gap:6px;padding:14px 0;border-top:1px solid var(--line);color:#666175;font-size:10px}.employee-foot{display:flex;justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid var(--line);font-size:9px}.employee-foot span{color:var(--muted)}

/* Modals and toast */
.modal { position:fixed; z-index:500; inset:0; display:none; place-items:center; padding:20px; }
.modal.open { display:grid; }
.modal-backdrop { position:absolute; inset:0; background:rgba(16,13,31,.62); backdrop-filter:blur(4px); }
.modal-dialog { position:relative; width:min(620px,100%); max-height:calc(100vh - 40px); overflow:auto; border-radius:20px; background:#fff; box-shadow:var(--shadow); animation:modal-in .2s ease; }
.modal-wide { width:min(860px,100%); }
@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.modal-head { position:sticky; z-index:2; top:0; display:flex; justify-content:space-between; align-items:center; padding:20px 23px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.95); backdrop-filter:blur(8px); }.modal-head h2{margin:3px 0 0;font-size:21px}.modal-head > button{border:0;background:transparent;color:var(--muted);font-size:25px}
.modal-body { padding:23px; }.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:17px;border-top:1px solid var(--line)}
.toast { position:fixed; z-index:1000; top:92px; right:25px; max-width:420px; display:flex; align-items:center; gap:14px; padding:13px 15px; border-radius:12px; box-shadow:var(--shadow-sm); animation:toast-in .25s ease; }
.toast button { margin-left:auto; border:0; background:transparent; color:inherit; font-size:18px; }
.toast-error{color:#9b2f42;background:#fff0f3;border:1px solid #ffd4dc}.toast-success{color:#087e68;background:#e4f9f4;border:1px solid #bdece1}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* Booking */
.booking-page { position:relative; overflow:hidden; min-height:calc(100vh - 78px); padding:80px 0 110px; background:linear-gradient(145deg,#f8f6ff,#f4fbff 60%,#f1fffb); }
.booking-orb { position:absolute; width:500px;height:500px;right:-200px;top:-160px;border-radius:50%;background:rgba(115,87,255,.1); }
.booking-shell { position:relative; display:grid; grid-template-columns:.7fr 1.3fr; align-items:start; gap:65px; }
.booking-intro { position:sticky; top:120px; }.booking-intro h1{margin:15px 0;font-size:50px;line-height:1.02;letter-spacing:-.05em}.booking-intro>p{color:var(--muted);font-size:16px}.booking-business{display:flex;align-items:center;gap:11px;margin-top:35px;padding-top:25px;border-top:1px solid #ddd9eb}.booking-business div{display:grid}.booking-business span:not(.business-avatar){color:var(--muted);font-size:11px}
.booking-card { display:grid; gap:1px; overflow:hidden; border:1px solid #e4e0ef; border-radius:23px; background:#e9e6f0; box-shadow:var(--shadow); }
.booking-step { padding:27px; background:#fff; }.booking-step-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.booking-step-head>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;color:#fff;background:var(--primary);font-size:12px;font-weight:850}.booking-step h2{margin:0;font-size:17px}
.service-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }.service-option input{position:absolute;opacity:0;pointer-events:none}.service-option>span{height:100%;display:grid;grid-template-columns:40px 1fr;column-gap:10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.service-option i{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--option);background:color-mix(in srgb,var(--option) 11%,white);font-style:normal}.service-option b{font-size:12px}.service-option small{color:var(--muted);font-size:9px}.service-option input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.1);background:#fcfbff}
.date-action { display:grid; grid-template-columns:1fr auto; gap:10px; }.slot-area{margin-top:14px}.slot-area>p{margin:0;color:var(--muted);font-size:12px}.slot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.slot-button{border:1px solid #ded9ec;border-radius:9px;padding:8px;color:#4e485f;background:#fff;font-size:11px;font-weight:800}.slot-button:hover,.slot-button.selected{color:#fff;border-color:var(--primary);background:var(--primary)}.slot-loading{height:35px;border-radius:9px;background:linear-gradient(90deg,#f1eff5,#faf9fc,#f1eff5);background-size:200%;animation:loading 1s infinite}@keyframes loading{to{background-position:-200%}}
.contact-step { border-top:0; }.contact-step[hidden]{display:none}
.booking-success { min-height:calc(100vh - 78px); display:grid; place-items:center; padding:60px 20px; background:linear-gradient(145deg,#f8f6ff,#effffb); }.success-card{width:min(570px,100%);padding:42px;border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:var(--shadow);text-align:center}.success-icon{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;color:#fff;background:var(--accent);box-shadow:0 13px 30px rgba(21,199,163,.3);font-size:30px;font-weight:900}.success-card h1{margin:10px 0;font-size:38px}.success-card>p{color:var(--muted)}.success-details{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:25px 0;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden}.success-details div{display:grid;padding:15px;background:#fff}.success-details span{color:var(--muted);font-size:9px;text-transform:uppercase}.success-details strong{font-size:13px}.confirmation-code{display:grid;margin:20px 0;padding:15px;border-radius:12px;background:var(--primary-soft)}.confirmation-code span{color:var(--muted);font-size:10px}.confirmation-code strong{color:var(--primary);font-size:22px;letter-spacing:.12em}

/* Audit */
.audit-count { padding:8px 12px; border-radius:10px; color:#5947ac; background:var(--primary-soft); font-size:11px; font-weight:800; }
.audit-timeline { position:relative; display:grid; gap:12px; margin:22px 0 0 17px; padding-left:31px; }.audit-timeline::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:#e1deeb}.audit-item{position:relative}.audit-marker{position:absolute;z-index:1;left:-48px;top:19px;width:34px;height:34px;display:grid;place-items:center;border:4px solid var(--canvas);border-radius:50%;color:var(--primary);background:var(--primary-soft);font-size:12px}.audit-marker.action-created{color:#07846d;background:var(--accent-soft)}.audit-marker.action-deleted{color:#b33a4f;background:#fff0f3}.audit-marker.action-login,.audit-marker.action-logout{color:#2a78c4;background:#e8f4ff}
.audit-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(42,34,73,.03)}.audit-main{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 18px}.audit-main>div{font-size:12px}.audit-main>div>strong{font-size:13px}.audit-main>div>span{color:var(--muted);margin:0 3px}.audit-main>div>b{color:var(--primary)}.audit-main small{display:block;margin-top:5px;color:#9893a4;font-size:9px}.actor-badge{padding:4px 8px;border-radius:8px;color:#777187;background:#f2f0f6;font-size:8px;font-weight:850;text-transform:uppercase}.audit-card details{border-top:1px solid var(--line)}.audit-card summary{padding:10px 18px;color:var(--primary);font-size:10px;font-weight:800;cursor:pointer}.audit-diff{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 18px 16px}.audit-diff>div{min-width:0}.audit-diff strong{font-size:9px;text-transform:uppercase}.audit-diff pre{max-height:240px;overflow:auto;margin:5px 0 0;padding:11px;border-radius:9px;color:#d9d3ed;background:#1e1931;font-size:9px;white-space:pre-wrap}.pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:26px 0}.pagination a{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:11px}.pagination a.active{color:#fff;border-color:var(--primary);background:var(--primary)}

/* Installer */
.installer-page { min-height:100vh; color:#fff; background:linear-gradient(135deg,#15112b,#352468); }
.installer-shell { min-height:100vh; display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:center; width:min(1240px,calc(100% - 50px)); margin:auto; padding:60px 0; }
.installer-brand h1 { max-width:520px;margin:26px 0 18px;font-size:55px;line-height:1.02;letter-spacing:-.05em}.installer-brand>p{max-width:520px;color:#bab3d0;font-size:17px}.install-points{display:grid;gap:7px;margin-top:30px;color:#d7d1e8;font-size:13px}.install-points span::first-letter{color:var(--accent)}
.installer-card { color:var(--ink); padding:34px; border-radius:25px; background:#fff; box-shadow:0 35px 90px rgba(0,0,0,.28); }.card-heading{margin-bottom:22px}.card-heading h2{margin:8px 0 2px;font-size:27px}.card-heading p{margin:0;color:var(--muted)}.step-pill{display:inline-flex;padding:4px 8px;border-radius:7px;color:var(--primary);background:var(--primary-soft);font-size:9px;font-weight:900;text-transform:uppercase}.requirements{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 23px}.requirement{padding:4px 7px;border-radius:6px;font-size:9px;font-weight:750}.requirement.ok{color:#087e68;background:#e4f9f4}.requirement.fail{color:#a53346;background:#fff0f3}.success-panel{text-align:center}.success-panel h2{font-size:32px}.success-panel p{color:var(--muted)}

/* Errors */
.error-page { min-height:70vh; display:grid; place-items:center; align-content:center; gap:15px; padding:40px; text-align:center; }.error-page>span{color:#ddd8ee;font-size:110px;font-weight:950;line-height:1}.error-page h1{max-width:600px;margin:0 0 10px;font-size:25px}

@media (max-width: 1180px) {
    .service-grid,.team-admin-grid { grid-template-columns:repeat(3,1fr); }
    .metric-grid { grid-template-columns:repeat(2,1fr); }
    .hero-grid { gap:25px; }
    .floating-stat { display:none; }
}

@media (max-width: 960px) {
    .public-header { height:68px; }
    .nav-toggle { display:block; }
    .public-nav { display:none; position:absolute; left:20px; right:20px; top:66px; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); flex-direction:column; align-items:stretch; gap:7px; }
    .public-nav.open { display:flex; }.public-nav>a{padding:7px 10px}.public-nav .btn{margin-top:4px}
    .hero { min-height:auto; padding:75px 0; }.hero-grid{grid-template-columns:1fr}.hero-copy{text-align:center}.hero-copy>p{margin-inline:auto}.hero-actions,.hero-trust{justify-content:center}.hero-visual{min-height:460px}
    .service-grid { grid-template-columns:repeat(2,1fr); }.team-grid{grid-template-columns:repeat(2,1fr)}
    .auth-shell { grid-template-columns:1fr; }.auth-showcase{display:none}.auth-form-side{min-height:100vh}
    .sidebar { transform:translateX(-100%); transition:.25s; box-shadow:var(--shadow); }.sidebar.open{transform:none}.sidebar-close{display:block}.sidebar-overlay.open{display:block;position:fixed;z-index:90;inset:0;background:rgba(20,16,38,.45)}
    .admin-main { margin-left:0; }.menu-button{display:block}.admin-content{padding:25px}.admin-topbar{height:68px;padding:0 22px}
    .dashboard-grid{grid-template-columns:1fr}.dashboard-side{grid-template-columns:repeat(2,1fr)}
    .team-admin-grid { grid-template-columns:repeat(2,1fr); }
    .booking-shell { grid-template-columns:1fr; gap:30px; }.booking-intro{position:static;text-align:center}.booking-business{justify-content:center;max-width:450px;margin:25px auto 0}
    .installer-shell{grid-template-columns:1fr}.installer-brand{text-align:center}.installer-brand h1,.installer-brand>p{margin-left:auto;margin-right:auto}.install-points{justify-content:center}.installer-brand .brand{justify-content:center}
}

@media (max-width: 680px) {
    .container { width:min(100% - 28px,1180px); }
    .hero-copy h1 { font-size:44px; }.hero-copy>p{font-size:16px}.hero-actions{flex-direction:column}.hero-visual{min-height:390px}.floating-card{padding:18px}
    .section { padding:75px 0; }.section-heading h2{font-size:34px}.service-grid,.team-grid,.steps-grid,.metric-grid,.dashboard-side,.team-admin-grid{grid-template-columns:1fr}.steps-grid article:not(:last-child)::after{display:none}
    .cta-card{padding:38px 25px;flex-direction:column;align-items:flex-start}.cta-card h2{font-size:33px}.footer-grid{grid-template-columns:1fr;gap:30px}
    .admin-content{padding:20px 14px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .btn{width:100%}.page-heading h1{font-size:29px}
    .metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card{min-height:132px;padding:16px;flex-direction:column}.metric-spark{display:none}
    .agenda-list{padding:5px 15px}.agenda-row{grid-template-columns:42px 4px 1fr}.agenda-row>.status{grid-column:3;margin-bottom:9px;justify-self:start}.panel-head{padding:18px}
    .form-grid.two,.form-grid.three{grid-template-columns:1fr}.filter-form{align-items:stretch;flex-direction:column}.filter-form label{min-width:0}.modal{padding:8px}.modal-dialog{max-height:calc(100vh - 16px);border-radius:16px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}
    .booking-page{padding:50px 0}.booking-intro h1{font-size:39px}.booking-step{padding:20px}.service-options{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(4,1fr)}.date-action{grid-template-columns:1fr}
    .success-card{padding:27px 20px}.success-details{grid-template-columns:1fr}
    .audit-timeline{margin-left:7px;padding-left:22px}.audit-marker{left:-39px;width:30px;height:30px}.audit-main{padding:14px;flex-direction:column}.audit-diff{grid-template-columns:1fr;padding:0 14px 14px}
    .installer-shell{width:min(100% - 20px,1240px);padding:25px 0;gap:30px}.installer-brand h1{font-size:38px}.installer-card{padding:22px}.requirements{display:grid}
    .toast{left:14px;right:14px;top:78px}
}

@media (max-width: 420px) {
    .metric-grid { grid-template-columns:1fr; }
    .slot-grid { grid-template-columns:repeat(3,1fr); }
}

