/* =========================================================
   MeeCal — Feuille de style globale
   /public/assets/css/style.css
   ========================================================= */

/* ─── RESET & BASE ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --black:    #0f0f0f;
    --white:    #fafaf8;
    --ink:      #1a1a1a;
    --muted:    #6b6b6b;
    --subtle:   #f2f1ee;
    --border:   #e2e1de;
    --accent:   #2a5cff;
    --accent-hover: #1a4aee;
    --success:  #1a7a4a;
    --success-bg: #ecfdf5;
    --success-bdr: #a7f3d0;
    --warning:  #92400e;
    --warning-bg: #fffbeb;
    --warning-bdr: #fde68a;
    --danger:   #991b1b;
    --danger-bg: #fef2f2;
    --danger-bdr: #fecaca;
    --danger-border: #fecaca;
    --font-display: 'DM Serif Display', Georgia, serif;
    --font-body:    'DM Sans', system-ui, sans-serif;
    --max-w: 1120px;
    --section-gap: 7rem;
    --radius:    10px;
    --radius-lg: 16px;
}

html { scroll-behavior: smooth; }
body { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; }
.wrap { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; }

/* ─── NAV ─── */
.nav { position: sticky; top: 0; z-index: 100; background: rgba(250,250,248,.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
.nav-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; height: 64px; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: var(--font-display); font-size: 1.35rem; color: var(--ink); text-decoration: none; letter-spacing: -.01em; }
.nav-logo span { color: var(--accent); }
.nav-links { display: flex; align-items: center; gap: 2rem; list-style: none; }
.nav-links a { font-size: .875rem; color: var(--muted); text-decoration: none; transition: color .2s; }
.nav-links a:hover { color: var(--ink); }
.nav-cta { background: var(--ink) !important; color: var(--white) !important; padding: .5rem 1.1rem !important; border-radius: 6px; font-weight: 500; font-size: .875rem !important; transition: background .2s !important; }
.nav-cta:hover { background: var(--accent) !important; color: var(--white) !important; }

/* ─── HERO ─── */
.hero { padding: 6rem 0 5rem; border-bottom: 1px solid var(--border); overflow: hidden; }
.hero-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.hero-badge { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); background: #eef2ff; padding: .35rem .85rem; border-radius: 20px; margin-bottom: 1.5rem; }
.hero-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.hero h1 { font-family: var(--font-display); font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.08; letter-spacing: -.02em; color: var(--ink); margin-bottom: 1.5rem; }
.hero h1 em { font-style: italic; color: var(--accent); }
.hero-sub { font-size: 1.1rem; color: var(--muted); line-height: 1.65; max-width: 460px; margin-bottom: 2.5rem; }
.hero-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.btn-primary { display: inline-block; background: var(--ink); color: var(--white); padding: .85rem 1.75rem; border-radius: 8px; font-weight: 500; font-size: .95rem; text-decoration: none; transition: background .2s, transform .15s; }
.btn-primary:hover { background: var(--accent); transform: translateY(-1px); }
.btn-ghost { display: inline-block; color: var(--muted); font-size: .9rem; text-decoration: none; border-bottom: 1px solid var(--border); padding-bottom: 1px; transition: color .2s, border-color .2s; }
.btn-ghost:hover { color: var(--ink); border-color: var(--ink); }
.hero-note { margin-top: 1.25rem; font-size: .8rem; color: var(--muted); display: flex; align-items: center; gap: .4rem; }
.hero-note::before { content: '✓'; color: var(--success); font-weight: 500; }
.hero-visual { position: relative; }
.hero-mockup { background: var(--white); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 2px 40px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04); }
.mockup-bar { background: var(--subtle); border-bottom: 1px solid var(--border); padding: .75rem 1rem; display: flex; align-items: center; gap: .5rem; }
.mockup-dot { width: 10px; height: 10px; border-radius: 50%; }
.mockup-dot:nth-child(1) { background: #ff5f57; }
.mockup-dot:nth-child(2) { background: #febc2e; }
.mockup-dot:nth-child(3) { background: #28c840; }
.mockup-url { flex: 1; background: var(--white); border: 1px solid var(--border); border-radius: 6px; padding: .3rem .75rem; font-size: .75rem; color: var(--muted); margin-left: .5rem; }
.mockup-body { padding: 1.5rem; }
.mockup-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.mockup-title { font-size: .85rem; font-weight: 500; color: var(--ink); }
.mockup-tag { font-size: .7rem; font-weight: 500; padding: .25rem .65rem; border-radius: 20px; background: #eef2ff; color: var(--accent); }
.mockup-slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1.25rem; }
.slot { border: 1px solid var(--border); border-radius: 8px; padding: .6rem .4rem; text-align: center; font-size: .72rem; color: var(--muted); cursor: pointer; transition: all .15s; }
.slot.available { background: var(--white); }
.slot.available:hover { border-color: var(--accent); color: var(--accent); }
.slot.selected { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 500; }
.slot.taken { background: var(--subtle); color: #ccc; cursor: default; text-decoration: line-through; }
.mockup-service { background: var(--subtle); border-radius: 10px; padding: 1rem; display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.service-icon { width: 36px; height: 36px; border-radius: 8px; background: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
.service-info { flex: 1; }
.service-name { font-size: .8rem; font-weight: 500; color: var(--ink); }
.service-meta { font-size: .72rem; color: var(--muted); }
.mockup-btn { width: 100%; background: var(--ink); color: #fff; border: none; border-radius: 8px; padding: .7rem; font-size: .82rem; font-weight: 500; cursor: pointer; font-family: var(--font-body); }
.hero-float { position: absolute; bottom: -1rem; left: -1.5rem; background: var(--white); border: 1px solid var(--border); border-radius: 12px; padding: .75rem 1rem; display: flex; align-items: center; gap: .75rem; box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.float-icon { width: 32px; height: 32px; border-radius: 8px; background: #ecfdf5; display: flex; align-items: center; justify-content: center; font-size: .9rem; }
.float-text { font-size: .75rem; color: var(--ink); font-weight: 500; }
.float-sub { font-size: .68rem; color: var(--muted); }

/* ─── LOGOS ─── */
.logos { padding: 2.5rem 0; border-bottom: 1px solid var(--border); }
.logos-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; }
.logos-label { text-align: center; font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.5rem; }
.logos-row { display: flex; align-items: center; justify-content: center; gap: 3rem; flex-wrap: wrap; }
.logo-pill { font-size: .82rem; font-weight: 500; color: var(--muted); opacity: .6; letter-spacing: .02em; transition: opacity .2s; }
.logo-pill:hover { opacity: 1; }

/* ─── STEPS ─── */
.steps { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.section-header { margin-bottom: 4rem; }
.section-tag { font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); margin-bottom: .75rem; display: block; }
.section-header h2 { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.12; letter-spacing: -.02em; color: var(--ink); margin-bottom: .75rem; }
.section-header p { font-size: 1rem; color: var(--muted); max-width: 520px; }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.step-card { background: var(--white); padding: 2.5rem 2rem; position: relative; }
.step-num { font-family: var(--font-display); font-size: 4rem; line-height: 1; color: var(--border); margin-bottom: 1.25rem; display: block; }
.step-card h3 { font-size: 1rem; font-weight: 500; color: var(--ink); margin-bottom: .5rem; line-height: 1.3; }
.step-card p { font-size: .875rem; color: var(--muted); line-height: 1.65; }

/* ─── FEATURES ─── */
.features { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.features-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.features-list { display: flex; flex-direction: column; gap: 0; }
.feature-item { padding: 1.5rem 0; border-bottom: 1px solid var(--border); cursor: pointer; }
.feature-item:first-child { border-top: 1px solid var(--border); }
.feature-item-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.feature-item h3 { font-size: .95rem; font-weight: 500; color: var(--ink); }
.feature-item p { font-size: .875rem; color: var(--muted); margin-top: .5rem; line-height: 1.6; max-height: 0; overflow: hidden; transition: max-height .35s ease, margin .35s; }
.feature-item.active p { max-height: 100px; }
.feature-item.active .feature-arrow { transform: rotate(90deg); color: var(--accent); }
.feature-arrow { font-size: 1.1rem; color: var(--muted); transition: transform .25s, color .25s; flex-shrink: 0; }
.features-visual { position: sticky; top: 90px; }
.fv-card { background: var(--subtle); border: 1px solid var(--border); border-radius: 16px; padding: 2rem; min-height: 320px; display: flex; flex-direction: column; gap: 1rem; }
.fv-label { font-size: .72rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.fv-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--ink); line-height: 1.2; }
.fv-bars { display: flex; flex-direction: column; gap: .5rem; margin-top: .5rem; }
.fv-bar-row { display: flex; align-items: center; gap: .75rem; }
.fv-bar-label { font-size: .75rem; color: var(--muted); width: 80px; flex-shrink: 0; }
.fv-bar-track { flex: 1; background: var(--border); border-radius: 4px; height: 6px; overflow: hidden; }
.fv-bar-fill { height: 100%; border-radius: 4px; background: var(--accent); }

/* ─── SECTORS ─── */
.sectors { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.sectors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }
.sector-card { border: 1px solid var(--border); border-radius: 16px; padding: 1.75rem; background: var(--white); transition: border-color .2s, transform .2s; }
.sector-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.sector-icon { font-size: 1.5rem; margin-bottom: 1rem; display: block; line-height: 1; }
.sector-card h3 { font-size: .95rem; font-weight: 500; color: var(--ink); margin-bottom: .5rem; }
.sector-card p { font-size: .82rem; color: var(--muted); line-height: 1.6; margin-bottom: 1rem; }
.sector-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.sector-tag { font-size: .68rem; font-weight: 500; padding: .25rem .6rem; border-radius: 20px; background: var(--subtle); color: var(--muted); letter-spacing: .02em; }

/* ─── COMPARISON ─── */
.comparison { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.comp-table { width: 100%; border-collapse: collapse; margin-top: 3rem; font-size: .875rem; }
.comp-table th { text-align: left; padding: 1rem 1.25rem; font-weight: 500; font-size: .8rem; color: var(--muted); border-bottom: 1px solid var(--border); letter-spacing: .02em; }
.comp-table th.col-meecal { color: var(--accent); background: #eef2ff; border-radius: 8px 8px 0 0; }
.comp-table td { padding: .9rem 1.25rem; border-bottom: 1px solid var(--border); color: var(--ink); vertical-align: middle; }
.comp-table tr:last-child td { border-bottom: none; }
.comp-table td.col-meecal { background: #f7f8ff; }
.comp-table td.col-feat { font-size: .82rem; color: var(--muted); }
.check { color: var(--success); font-size: 1rem; }
.cross { color: #ccc; font-size: 1rem; }
.partial { color: #f59e0b; font-size: .8rem; font-weight: 500; }

/* ─── TESTIMONIALS ─── */
.testimonials { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }
.testi-card { border: 1px solid var(--border); border-radius: 16px; padding: 1.75rem; background: var(--white); }
.testi-stars { display: flex; gap: 2px; margin-bottom: 1rem; }
.star { color: #f59e0b; font-size: .85rem; }
.testi-quote { font-size: .875rem; color: var(--ink); line-height: 1.65; margin-bottom: 1.25rem; font-style: italic; }
.testi-author { display: flex; align-items: center; gap: .75rem; }
.testi-avatar { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 500; flex-shrink: 0; }
.testi-name { font-size: .82rem; font-weight: 500; color: var(--ink); }
.testi-role { font-size: .75rem; color: var(--muted); }

/* ─── PRICING ─── */
.pricing { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.pricing-card { border: 1px solid var(--border); border-radius: 16px; padding: 2rem; background: var(--white); position: relative; }
.pricing-card.featured { border-color: var(--accent); border-width: 2px; }
.pricing-popular { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--accent); color: #fff; font-size: .7rem; font-weight: 500; padding: .25rem .85rem; border-radius: 20px; white-space: nowrap; letter-spacing: .04em; }
.pricing-plan { font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .75rem; }
.pricing-price { font-family: var(--font-display); font-size: 2.4rem; color: var(--ink); line-height: 1; margin-bottom: .25rem; }
.pricing-price span { font-family: var(--font-body); font-size: .9rem; color: var(--muted); font-weight: 400; }
.pricing-sub { font-size: .78rem; color: var(--muted); margin-bottom: 1.5rem; }
.pricing-divider { height: 1px; background: var(--border); margin-bottom: 1.5rem; }
.pricing-features { list-style: none; display: flex; flex-direction: column; gap: .6rem; margin-bottom: 2rem; }
.pricing-features li { font-size: .82rem; color: var(--muted); display: flex; align-items: flex-start; gap: .5rem; }
.pricing-features li::before { content: '✓'; color: var(--success); font-weight: 500; flex-shrink: 0; margin-top: 1px; }
.pricing-btn { display: block; text-align: center; padding: .8rem; border-radius: 8px; font-size: .875rem; font-weight: 500; text-decoration: none; transition: all .2s; }
.pricing-btn-solid { background: var(--accent); color: #fff; border: 1px solid var(--accent); }
.pricing-btn-solid:hover { background: var(--accent-hover); }

/* ─── FAQ ─── */
.faq { padding: var(--section-gap) 0; border-bottom: 1px solid var(--border); }
.faq-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 5rem; align-items: start; }
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-bottom: 1px solid var(--border); padding: 1.25rem 0; cursor: pointer; }
.faq-item:first-child { border-top: 1px solid var(--border); }
.faq-q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .9rem; font-weight: 500; color: var(--ink); user-select: none; }
.faq-arrow { font-size: 1rem; color: var(--muted); transition: transform .25s; flex-shrink: 0; }
.faq-item.open .faq-arrow { transform: rotate(45deg); color: var(--accent); }
.faq-a { font-size: .85rem; color: var(--muted); line-height: 1.7; max-height: 0; overflow: hidden; transition: max-height .4s ease, margin .3s; }
.faq-item.open .faq-a { max-height: 200px; margin-top: .75rem; }

/* ─── TRUST ─── */
.trust { padding: 3rem 0; border-bottom: 1px solid var(--border); background: var(--subtle); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.trust-item { display: flex; align-items: flex-start; gap: .75rem; }
.trust-icon { font-size: 1.1rem; flex-shrink: 0; line-height: 1.5; }
.trust-item strong { display: block; font-size: .82rem; font-weight: 500; color: var(--ink); margin-bottom: .15rem; }
.trust-item p { font-size: .75rem; color: var(--muted); line-height: 1.5; }

/* ─── FINAL CTA ─── */
.final-cta { padding: var(--section-gap) 0; text-align: center; }
.final-cta h2 { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.02em; color: var(--ink); margin-bottom: 1rem; }
.final-cta p { font-size: 1rem; color: var(--muted); margin-bottom: 2rem; max-width: 420px; margin-left: auto; margin-right: auto; }
.final-cta-actions { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.reassurance { margin-top: 1.25rem; font-size: .78rem; color: var(--muted); display: flex; align-items: center; justify-content: center; gap: 1.5rem; }
.reassurance span::before { content: '✓ '; color: var(--success); }

/* ─── FOOTER ─── */
.footer { border-top: 1px solid var(--border); padding: 2rem 0; }
.footer-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; font-size: .8rem; color: var(--muted); }
.footer-logo { font-family: var(--font-display); font-size: 1rem; color: var(--ink); text-decoration: none; }
.footer-logo span { color: var(--accent); }
.footer-links { display: flex; gap: 1.5rem; list-style: none; }
.footer-links a { color: var(--muted); text-decoration: none; transition: color .2s; }
.footer-links a:hover { color: var(--ink); }

/* ─── DASHBOARD (admin + client) ─── */
.dashboard-wrap{max-width:1120px;margin:0 auto;padding:2.5rem 2rem 4rem}
.dash-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.dash-greeting{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);letter-spacing:-.02em;line-height:1.1;margin-bottom:.3rem}
.dash-greeting em{color:var(--accent);font-style:italic}
.dash-subtitle{font-size:.875rem;color:var(--muted)}
.section-block{margin-bottom:2.5rem}
.section-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}
.section-block-title{font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.section-block-action{font-size:.8rem;color:var(--accent);text-decoration:none;font-weight:500}
.section-block-action:hover{color:var(--accent-hover)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.grid-2-1{display:grid;grid-template-columns:1fr 320px;gap:1rem;align-items:start}
.stat-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:1.25rem 1.5rem;text-decoration:none;display:block;color:inherit;transition:transform .15s,box-shadow .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.07)}
.stat-card.warn{border-left-color:#f59e0b}
.stat-card.ok{border-left-color:#22c55e}
.stat-label{font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;display:block}
.stat-value{font-family:var(--font-display);font-size:2.2rem;line-height:1;color:var(--ink);margin-bottom:.3rem}
.stat-delta{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .5rem;border-radius:20px;font-size:.68rem;font-weight:500}
.delta-up{background:var(--success-bg);color:var(--success)}
.delta-warn{background:var(--warning-bg);color:var(--warning)}
.stat-desc{font-size:.78rem;color:var(--muted)}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.card-plain{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}
.card-head{padding:.85rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.card-head-title{font-size:.82rem;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:.4rem}
.card-head-link{font-size:.75rem;color:var(--accent);text-decoration:none;font-weight:500}
.card-head-link:hover{text-decoration:underline}
.card-body{padding:1.25rem}
.chart-wrap{position:relative;height:195px}
.request-list{display:flex;flex-direction:column}
.request-item{padding:.85rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:.75rem;text-decoration:none;color:inherit;transition:background .15s}
.request-item:last-child{border-bottom:none}
.request-item:hover{background:var(--subtle)}
.req-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}
.dot-open{background:#22c55e}.dot-pending{background:#f59e0b}
.req-info{flex:1;min-width:0}
.req-company{font-size:.82rem;font-weight:500;color:var(--ink)}
.req-subject{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.req-date{font-size:.68rem;color:var(--muted);margin-top:.1rem}
.req-badge{display:inline-flex;align-items:center;padding:.15rem .6rem;border-radius:20px;font-size:.65rem;font-weight:500;border:1px solid transparent;white-space:nowrap;flex-shrink:0}
.badge-open{background:var(--success-bg);color:var(--success);border-color:#a7f3d0}
.badge-pending{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-bdr)}
.recent-table{width:100%;border-collapse:collapse;font-size:.82rem}
.recent-table th{background:var(--subtle);padding:.65rem 1rem;text-align:left;font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}
.recent-table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
.recent-table tr:last-child td{border-bottom:none}
.recent-table tr:hover td{background:var(--subtle)}
.td-name{font-weight:500;color:var(--ink)}
.td-muted{color:var(--muted);font-size:.75rem}
.td-pill{display:inline-block;padding:.15rem .6rem;border-radius:20px;font-size:.65rem;font-weight:500;background:#eef2ff;color:var(--accent);border:1px solid #c7d2fe}
.card-plain .card-tag{font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;display:block}
.card-plain h3{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.4rem;line-height:1.3}
.card-plain p{font-size:.82rem;color:var(--muted);line-height:1.55;margin-bottom:1.1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;text-align:center;padding:.65rem 1rem;border-radius:8px;font-family:var(--font-body);font-size:.85rem;font-weight:500;text-decoration:none;transition:background .2s,transform .15s;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.card-plain .btn{display:flex;width:100%}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover{background:var(--accent)}
.btn-ghost{background:var(--subtle);color:var(--ink);border-color:var(--border)}.btn-ghost:hover{border-color:var(--ink);background:var(--white)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:580px}
thead th{background:var(--subtle);padding:.75rem 1rem;text-align:left;font-size:.72rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:.85rem 1rem;border-bottom:1px solid var(--border);color:var(--ink);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--subtle)}
.td-company{font-weight:500}
.dashboard-wrap .alert{display:flex;margin-top:1rem}
.empty-state{padding:2.5rem 1.5rem;text-align:center;color:var(--muted)}
.empty-state-icon{font-size:2rem;margin-bottom:.75rem;display:block}
.empty-state p{font-size:.875rem;line-height:1.6}
@media(max-width:1000px){.grid-2-1{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.dashboard-wrap{padding:1.5rem 1rem 3rem}.grid-3,.grid-4{grid-template-columns:1fr}.dash-header{flex-direction:column}}

/* ─── BOOKING STAFF ─── */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem;margin-bottom:1.25rem}
.staff-option{position:relative;display:block;cursor:pointer}
.staff-option input{position:absolute;opacity:0;pointer-events:none}
.staff-box{padding:1.25rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--white);display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;transition:border-color .15s,box-shadow .15s,transform .15s}
.staff-option:hover .staff-box{border-color:var(--accent);transform:translateY(-1px)}
.staff-option input:checked + .staff-box{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--white));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.staff-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid var(--border);background:#eef2ff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s}
.staff-option input:checked + .staff-box .staff-avatar{border-color:var(--accent)}
.staff-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.staff-initials{font-size:.875rem;font-weight:600;color:var(--accent);letter-spacing:.02em}
.staff-name{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.3}
.staff-option input:checked + .staff-box .staff-name{color:var(--accent)}
.staff-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);transition:border-color .15s,background .15s,box-shadow .15s}
.staff-option input:checked + .staff-box .staff-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--white)}
.staff-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
@media(max-width:480px){.staff-grid{grid-template-columns:1fr 1fr}}

/* ─── BOOKING SERVICE ─── */
.svc-group{margin-bottom:1.5rem}.svc-group:last-child{margin-bottom:0}
.svc-group-label{font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem;display:block}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem}
.svc-option{position:relative;display:block;cursor:pointer}
.svc-option input{position:absolute;opacity:0;pointer-events:none}
.svc-box{height:100%;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--white);padding:1.1rem 1.1rem 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s}
.svc-option:hover .svc-box{border-color:var(--accent);transform:translateY(-1px)}
.svc-option input:checked + .svc-box{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--white));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.svc-content{min-width:0;flex:1}
.svc-name{font-size:.95rem;font-weight:500;color:var(--ink);line-height:1.3;margin:0 0 .35rem}
.svc-option input:checked + .svc-box .svc-name{color:var(--accent)}
.svc-hint{font-size:.75rem;color:var(--muted)}
.svc-hint-selected{font-size:.75rem;color:var(--accent);font-weight:500;display:none}
.svc-option input:checked + .svc-box .svc-hint{display:none}
.svc-option input:checked + .svc-box .svc-hint-selected{display:block}
.svc-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;margin-top:2px;transition:border-color .15s,background .15s,box-shadow .15s}
.svc-option input:checked + .svc-box .svc-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 4px var(--white)}
.svc-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
@media(max-width:480px){.svc-grid{grid-template-columns:1fr}}

/* ─── BOOKING PARTICIPANTS ─── */
.part-grid{display:grid;gap:.75rem;margin-bottom:1.25rem}
.part-choice{position:relative;display:block;cursor:pointer}
.part-box{height:80px;border-radius:var(--radius-lg);border:1.5px solid var(--border);background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer;user-select:none}
.part-box-num{font-weight:700;font-size:1.5rem;color:var(--ink);line-height:1}
.part-box-label{font-size:.68rem;color:var(--muted);letter-spacing:.03em}
.part-choice:hover .part-box{border-color:var(--accent);transform:translateY(-1px)}
.part-choice.selected .part-box{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--white));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.part-choice.selected .part-box .part-box-num{color:var(--accent)}
.part-choice.selected .part-box .part-box-label{color:var(--accent);font-weight:500}
.part-numeric-wrap{margin-bottom:1.25rem;display:none}
.part-numeric-wrap.visible{display:block}
.part-numeric-wrap label{display:block;font-size:.78rem;font-weight:500;color:var(--muted);margin-bottom:.4rem;letter-spacing:.03em;text-transform:uppercase}
.part-numeric-input{width:120px;padding:.6rem .85rem;font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--ink);background:var(--white);border:1.5px solid var(--accent);border-radius:var(--radius);text-align:center;transition:box-shadow .2s}
.part-numeric-input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
@media(max-width:560px){.part-grid{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:380px){.part-grid{grid-template-columns:repeat(2,1fr)!important}}

/* ─── BOOKING PACKAGE (cinéma) ─── */
.bk-packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}
.bk-pkg-card{background:var(--white);border:2px solid var(--border);border-radius:12px;padding:1.25rem;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:.75rem;position:relative}
.bk-pkg-card:hover{border-color:var(--accent)}
.bk-pkg-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--white))}
.bk-pkg-card.selected::after{content:"✓";position:absolute;top:.75rem;right:.75rem;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.bk-pkg-card input[type="radio"]{display:none}
.bk-pkg-body{display:flex;flex-direction:column;gap:.4rem;flex:1}
.bk-pkg-name{font-size:.95rem;font-weight:500;color:var(--ink)}
.bk-pkg-desc{font-size:.78rem;color:var(--muted)}
.bk-pkg-includes{margin:.5rem 0 0;padding:0 0 0 1rem;font-size:.78rem;color:var(--muted);line-height:1.8}
.bk-pkg-price{font-family:var(--font-display);font-size:1.25rem;color:var(--accent);margin-top:auto}
@media(max-width:560px){.bk-packages-grid{grid-template-columns:1fr}}

/* ─── BOOKING LOCATION ─── */
.loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:1.25rem}
.loc-grid.single{grid-template-columns:1fr}
.loc-option{position:relative;display:block;cursor:pointer}
.loc-option input{position:absolute;opacity:0;pointer-events:none}
.loc-box{height:100%;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--white);overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}
.loc-option:hover .loc-box{border-color:var(--accent);transform:translateY(-1px)}
.loc-option input:checked + .loc-box{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.loc-cover{width:100%;height:160px;object-fit:cover;display:block;border-bottom:1px solid var(--border)}
.loc-cover-placeholder{width:100%;height:160px;display:flex;align-items:center;justify-content:center;background:var(--subtle);border-bottom:1px solid var(--border);font-size:1.5rem;color:var(--muted)}
.loc-body{padding:1rem}
.loc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}
.loc-name{font-size:.95rem;font-weight:500;color:var(--ink);line-height:1.3}
.loc-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);background:var(--white);flex-shrink:0;margin-top:2px;transition:border-color .15s,background .15s,box-shadow .15s}
.loc-option input:checked + .loc-box .loc-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 4px var(--white)}
.loc-address{font-size:.78rem;color:var(--muted);line-height:1.5}
.loc-instructions{margin-top:.75rem;padding:.75rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius)}
.loc-instructions-title{font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
.loc-instructions-text{font-size:.78rem;color:var(--ink);line-height:1.5}
.loc-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
@media(max-width:560px){.loc-grid{grid-template-columns:1fr}}

/* ─── BOOKING GUESTS (cinéma) ─── */
.req{color:#ef4444}
.bk-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}
.bk-field-group{display:flex;flex-direction:column;gap:.4rem}
.bk-field-label{font-size:.82rem;font-weight:500;color:var(--ink)}
.bk-field-hint{font-size:.72rem;color:var(--muted);margin:0}
.bk-counter{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}
.bk-counter-btn{width:38px;height:38px;border-radius:8px;border:1px solid var(--border);background:var(--subtle);font-size:1.2rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.bk-counter-btn:hover{border-color:var(--accent);color:var(--accent)}
.bk-counter-input{width:72px;text-align:center;padding:.6rem;font-family:var(--font-body);font-size:1.1rem;font-weight:500;border:1px solid var(--border);border-radius:8px}
.bk-counter-input:focus{outline:none;border-color:var(--accent)}
@media(max-width:560px){.bk-fields-grid{grid-template-columns:1fr}}

/* ─── BOOKING FILM (cinéma) ─── */
.step-title{font-family:var(--font-display);font-size:1.4rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.35rem}
.step-sub{font-size:.875rem;color:var(--muted);margin-bottom:1.25rem;line-height:1.6}
.bk-recap-bar{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.65rem 1rem;font-size:.82rem;color:#1e40af;margin-bottom:1.25rem}
.bk-film-card{background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:1rem;transition:border-color .15s}
.bk-film-info{display:flex;gap:1rem;padding:1.1rem}
.bk-film-poster{width:65px;height:97px;object-fit:cover;border-radius:6px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.bk-film-poster-ph{width:65px;height:97px;border-radius:6px;flex-shrink:0;background:var(--subtle);display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.bk-film-meta{flex:1;min-width:0}
.bk-film-title{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}
.bk-film-vote{font-size:.72rem;color:#92400e;font-weight:400}
.bk-film-tags{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.72rem;color:var(--muted);margin-bottom:.35rem}
.bk-age-tag{background:#fef2f2;color:#991b1b;padding:1px 6px;border-radius:4px;font-weight:600}
.bk-film-overview{font-size:.75rem;color:var(--muted);line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bk-sessions-row{padding:.75rem 1.1rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.4rem}
.bk-session-btn{padding:.45rem .9rem;border:1px solid var(--border);border-radius:8px;background:var(--subtle);cursor:pointer;font-family:var(--font-body);display:flex;flex-direction:column;align-items:center;gap:.1rem;transition:all .15s}
.bk-session-btn:hover{border-color:var(--accent);background:#f0f4ff}
.bk-session-btn.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--white));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.bk-ses-date{font-size:.65rem;color:var(--muted)}
.bk-ses-time{font-size:.82rem;font-weight:500;color:var(--ink)}
.step-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}
.btn-secondary{background:var(--subtle);color:var(--ink);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--ink)}

/* ─── BOOKING EXTRAS ─── */
.extra-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;margin-bottom:.75rem}
.extra-option{position:relative;display:block;cursor:pointer}
.extra-option input{position:absolute;opacity:0;pointer-events:none}
.extra-box{height:100%;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--white);padding:1.1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s}
.extra-option:hover .extra-box{border-color:var(--accent);transform:translateY(-1px)}
.extra-option input:checked + .extra-box{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--white));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.extra-content{min-width:0;flex:1}
.extra-option .extra-name{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.3;margin:0 0 .35rem}
.extra-option input:checked + .extra-box .extra-name{color:var(--accent)}
.extra-option .extra-desc{font-size:.75rem;color:var(--muted);line-height:1.5}
.extra-option .extra-price{display:inline-flex;align-items:center;margin-top:.5rem;padding:.2rem .65rem;border-radius:20px;border:1px solid var(--border);background:var(--subtle);font-size:.72rem;font-weight:500;color:var(--ink);white-space:nowrap}
.extra-option input:checked + .extra-box .extra-price{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--white));color:var(--accent)}
.extra-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);background:var(--white);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}
.extra-option input:checked + .extra-box .extra-check{border-color:var(--accent);background:var(--accent)}
.extra-option input:checked + .extra-box .extra-check::after{content:'';width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px);display:block}
.extra-note{font-size:.78rem;color:var(--muted);margin-bottom:1.25rem;padding:.75rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius)}
.extra-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
@media(max-width:480px){.extra-grid{grid-template-columns:1fr}}

/* ─── BOOKING DONE ─── */
.done-wrap{text-align:center;padding:.5rem 0 1.5rem}
.done-icon{width:64px;height:64px;border-radius:50%;background:var(--success-bg);border:2px solid var(--success-bdr);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:1.75rem}
.done-title{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.4rem}
.done-sub{font-size:.875rem;color:var(--muted);margin-bottom:1.5rem}
.done-recap{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem;text-align:left}
.done-recap-head{padding:.75rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.done-recap-title{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.done-ref{font-size:.72rem;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--white));padding:.2rem .65rem;border-radius:20px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}
.done-recap-body{padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.done-row{display:flex;flex-direction:column;gap:.1rem}
.done-key{font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.done-val{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.4}
.done-val.accent{font-family:var(--font-display);font-size:1.05rem;color:var(--accent);letter-spacing:-.01em}
.done-mail-note{font-size:.78rem;color:var(--muted);padding:.75rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem;line-height:1.5}
.portal-invite{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem;text-align:left}
.portal-invite-head{padding:.75rem 1.25rem;background:color-mix(in srgb,var(--accent) 6%,var(--white));border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));display:flex;align-items:center;gap:.5rem}
.portal-invite-head-title{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}
.portal-invite-body{padding:1.1rem 1.25rem;background:var(--white)}
.portal-invite-body p{font-size:.875rem;color:var(--muted);line-height:1.6;margin:0 0 .85rem}
.portal-invite-body strong{color:var(--ink)}
.btn-portal{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.1rem;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:.82rem;font-weight:500;text-decoration:none;transition:background .15s}
.btn-portal:hover{background:var(--accent-hover,#1a4aee)}
.portal-already{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem;background:var(--subtle);margin-bottom:1.25rem;font-size:.875rem;color:var(--muted);line-height:1.6}
.portal-already a{color:var(--accent);text-decoration:none;font-weight:500}
.portal-already a:hover{text-decoration:underline}
.done-actions{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}

/* ─── BOOKING DATETIME ─── */
.dur-panel{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg)}
.dur-btn{width:36px;height:36px;border:1.5px solid var(--border);border-radius:8px;background:var(--subtle);color:var(--ink);font-size:1.1rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dur-btn:hover:not(:disabled){border-color:var(--accent);background:var(--white);transform:translateY(-1px)}
.dur-btn:disabled{opacity:.3;cursor:not-allowed}
.dur-display{min-width:110px;text-align:center;padding:.6rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius)}
.dur-value{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);line-height:1}
.dur-label{font-size:.62rem;color:var(--muted);margin-top:.2rem;letter-spacing:.05em;text-transform:uppercase}
.cal-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--border);background:var(--subtle)}
.cal-title{font-weight:500;font-size:.875rem;color:var(--ink);text-transform:capitalize}
.cal-nav{display:flex;gap:.35rem}
.cal-nav-btn{width:30px;height:30px;border-radius:7px;border:1px solid var(--border);background:var(--white);color:var(--ink);font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}
.cal-nav-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--white))}
.cal-nav-btn.disabled{opacity:.25;pointer-events:none}
.dur-panel{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg)}
.dur-btn{width:48px;height:48px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--subtle);color:var(--ink);font-size:1.25rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;display:flex;align-items:center;justify-content:center}
.dur-btn:hover:not(:disabled){border-color:var(--accent);background:var(--white);transform:translateY(-1px)}
.dur-btn:disabled{opacity:.35;cursor:not-allowed}
.dur-display{min-width:150px;text-align:center;padding:.85rem 1.25rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius)}
.dur-value{font-family:var(--font-display);font-size:2rem;color:var(--ink);line-height:1}
.dur-label{font-size:.72rem;color:var(--muted);margin-top:.25rem;letter-spacing:.04em;text-transform:uppercase}
.cal-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid var(--border);background:var(--subtle)}
.cal-title{font-weight:500;font-size:.95rem;color:var(--ink);text-transform:capitalize}
.cal-nav{display:flex;gap:.4rem}
.cal-nav-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--white);color:var(--ink);font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}
.cal-nav-btn:hover{border-color:var(--accent)}
.cal-nav-btn.disabled{opacity:.3;pointer-events:none}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:.85rem}
.cal-wd{text-align:center;font-size:.65rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:.35rem 0}
.cal-day{min-height:52px;border-radius:var(--radius);border:1px solid transparent;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:500;color:var(--muted);transition:border-color .15s,background .15s,transform .1s}
.cal-day.empty{background:transparent;border:none}
.cal-day.past{color:var(--border)}
.cal-day.blocked{color:var(--border)}
.cal-day.unavail{color:var(--border)}
.cal-day.avail{color:var(--ink);background:var(--white);border-color:var(--border);text-decoration:none;cursor:pointer;font-weight:500}
.cal-day.avail:hover{border-color:var(--accent);transform:translateY(-1px)}
.cal-day.selected{background:color-mix(in srgb,var(--accent) 10%,var(--white));border-color:var(--accent);color:var(--accent);font-weight:600;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.times-wrap{margin-bottom:1.25rem}
.times-label{font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;display:block}
.times-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem}
.time-opt{position:relative;display:block;cursor:pointer}
.time-opt input{position:absolute;opacity:0;pointer-events:none}
.time-pill{padding:.65rem .5rem;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--white);text-align:center;font-size:.82rem;font-weight:500;color:var(--ink);transition:border-color .15s,background .15s,box-shadow .15s}
.time-opt:hover .time-pill{border-color:var(--accent)}
.time-opt input:checked + .time-pill{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--white));color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.dt-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
@media(max-width:480px){.cal-day{min-height:42px;font-size:.78rem}.cal-grid{gap:4px;padding:.6rem}.dur-display{min-width:120px}.dur-value{font-size:1.6rem}}

/* ─── BOOKING CUSTOMER ─── */
.cust-layout{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}
.cust-form{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}
.cust-section-title{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;display:block}
.cust-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.cust-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}
.cust-field:last-of-type{margin-bottom:0}
.cust-label{font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cust-input{width:100%;padding:.65rem .85rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s}
.cust-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.cust-input.invalid{border-color:var(--danger);background:var(--danger-bg)}
.cust-input[readonly]{background:var(--subtle);color:var(--muted);cursor:default}
.cust-help{font-size:.72rem;color:var(--muted);margin-top:1rem;line-height:1.5}
.field-error{font-size:.7rem;color:var(--danger);margin-top:.2rem;display:none}
.field-error.visible{display:block}
.phone-group{display:flex;gap:.5rem}
.phone-dial{flex-shrink:0;padding:.65rem .6rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-appearance:none;width:110px;transition:border-color .2s}
.phone-dial:focus{outline:none;border-color:var(--accent)}
.phone-number{flex:1}
.portal-connected-badge{display:flex;align-items:center;gap:.5rem;padding:.6rem .85rem;background:color-mix(in srgb,var(--accent) 6%,var(--white));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:var(--radius);font-size:.78rem;color:var(--accent);margin-bottom:1rem}
.portal-connected-badge a{margin-left:auto;font-size:.72rem;color:var(--muted);text-decoration:none}
.portal-connected-badge a:hover{color:var(--ink);text-decoration:underline}
.sms-consent-option{margin-top:.85rem;padding:.9rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background .15s;display:none}
.sms-consent-option.visible{display:block}
.sms-consent-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--white))}
.sms-consent-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;user-select:none}
.sms-consent-checkbox{flex-shrink:0;width:18px;height:18px;margin-top:1px;accent-color:var(--accent);cursor:pointer}
.sms-consent-text{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.3}
.sms-consent-sub{font-size:.72rem;color:var(--muted);margin-top:.2rem;line-height:1.45}
.quote-option{margin-top:1.1rem;padding:.9rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background .15s}
.quote-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--white))}
.quote-option-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;user-select:none}
.quote-checkbox{flex-shrink:0;width:18px;height:18px;margin-top:1px;accent-color:var(--accent);cursor:pointer}
.quote-label-text{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.3}
.quote-label-sub{font-size:.75rem;color:var(--muted);margin-top:.2rem;line-height:1.45}
.billing-accordion{margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.billing-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;background:var(--subtle);border:none;cursor:pointer;font-family:var(--font-body);font-size:.82rem;font-weight:500;color:var(--muted);text-align:left;transition:color .15s}
.billing-toggle:hover{color:var(--ink)}
.billing-toggle .toggle-arrow{font-size:.75rem;transition:transform .25s;flex-shrink:0}
.billing-toggle.open{color:var(--ink)}
.billing-toggle.open .toggle-arrow{transform:rotate(180deg)}
.billing-body{display:none;padding:1rem;background:var(--white);border-top:1px solid var(--border)}
.billing-body.open{display:block}
.cust-summary{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.cust-summary-head{padding:.8rem 1.1rem;background:var(--subtle);border-bottom:1px solid var(--border);font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.cust-summary-body{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.85rem}
.cust-sum-key{font-size:.68rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem;display:block}
.cust-sum-val{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.4}
.cust-sum-date{font-family:var(--font-display);font-size:1.1rem;color:var(--accent);letter-spacing:-.01em}
.portal-login-hint{margin-top:1rem;padding:.75rem .85rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);font-size:.78rem;color:var(--muted);line-height:1.5}
.portal-login-hint a{color:var(--accent);text-decoration:none;font-weight:500}
.portal-login-hint a:hover{text-decoration:underline}
.cust-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
.form-divider{height:1px;background:var(--border);margin:1.1rem 0}
@media(max-width:820px){.cust-layout{grid-template-columns:1fr}}
@media(max-width:480px){.cust-row-2{grid-template-columns:1fr}}

/* ─── BOOKING CONFIRM ─── */
.confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.confirm-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}
.confirm-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem}
.confirm-block.accent{border-left:3px solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0}
.confirm-block.full{grid-column:1/-1}
.confirm-key{font-size:.65rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;display:block}
.confirm-val{font-size:.875rem;font-weight:500;color:var(--ink);line-height:1.4}
.confirm-val.large{font-family:var(--font-display);font-size:1.1rem;color:var(--accent);letter-spacing:-.01em}
.confirm-sub{font-size:.75rem;color:var(--muted);margin-top:.2rem;line-height:1.4}
.confirm-section{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1.25rem 0 .6rem;display:flex;align-items:center;gap:.5rem}
.confirm-section::after{content:'';flex:1;height:1px;background:var(--border)}
.extras-list{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1rem}
.extra-item{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.25rem;border-bottom:1px solid var(--border);font-size:.875rem}
.extra-item:last-child{border-bottom:none}
.extra-name{font-weight:500;color:var(--ink)}
.extra-price{color:var(--muted);font-size:.78rem}
.confirm-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .65rem;border-radius:20px;font-size:.7rem;font-weight:500;border:1px solid transparent}
.badge-sms{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.badge-quote{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.confirm-note{font-size:.78rem;color:var(--muted);padding:.75rem 1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem;line-height:1.5}
.confirm-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.btn-confirm{display:inline-flex;align-items:center;gap:.4rem;padding:.75rem 1.5rem;border-radius:var(--radius);font-family:var(--font-body);font-size:.875rem;font-weight:500;background:var(--accent);color:#fff;border:none;cursor:pointer;transition:opacity .15s,transform .1s}
.btn-confirm:hover{opacity:.88;transform:translateY(-1px)}
.flash-ok{padding:.75rem 1rem;border-radius:8px;background:var(--success-bg);border:1px solid var(--success-bdr);color:var(--success);font-size:.875rem;margin-bottom:1rem}
.flash-err{padding:.75rem 1rem;border-radius:8px;background:var(--danger-bg);border:1px solid var(--danger-bdr);color:var(--danger);font-size:.875rem;margin-bottom:1rem}
@media(max-width:640px){.confirm-grid,.confirm-grid-3{grid-template-columns:1fr}}

/* ─── SETTINGS HUB ─── */
.page-intro{font-size:.875rem;color:var(--muted);font-family:var(--font-body)}
.hub-section{margin-bottom:2rem}
.hub-section-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.85rem}
.hub-section-icon{font-size:1.1rem;flex-shrink:0;line-height:1;width:24px;text-align:center}
.hub-section-text{display:flex;flex-direction:column;gap:.1rem}
.hub-section-label{font-size:.72rem;font-weight:600;color:var(--muted);font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.hub-section-sub{font-size:.75rem;color:var(--muted);font-family:var(--font-body);line-height:1.4}
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem}
.item-card{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.9rem 1.1rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.item-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.item-label{font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:.15rem;font-family:var(--font-body)}
.item-desc{font-size:.72rem;color:var(--muted);line-height:1.4;font-family:var(--font-body)}
.item-arrow{color:var(--muted);font-size:.75rem;flex-shrink:0;margin-top:.15rem;transition:color .15s}
.item-card:hover .item-arrow{color:var(--accent)}
@media(max-width:600px){.items-grid{grid-template-columns:1fr}}

/* ─── SETTINGS SERVICES ─── */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.toolbar-info{font-size:.82rem;color:var(--muted)}
.toolbar-info strong{color:var(--ink)}
.service-group{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1rem}
.group-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border)}
.group-head-left{display:flex;align-items:center;gap:.65rem}
.group-name{font-size:.85rem;font-weight:500;color:var(--ink)}
.group-count{font-size:.72rem;color:var(--muted);background:var(--border);padding:.15rem .55rem;border-radius:20px;transition:background .15s,color .15s}
.group-count.has-selected{background:#eef2ff;color:var(--accent)}
.group-toggle{font-size:.72rem;font-weight:500;color:var(--accent);background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-body)}
.group-toggle:hover{text-decoration:underline}
.group-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.subsvc-item{border:2px solid var(--border);border-radius:var(--radius);background:var(--white);overflow:hidden;transition:border-color .15s}
.subsvc-item.selected{border-color:var(--accent)}
.subsvc-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;user-select:none}
.subsvc-checkbox{flex-shrink:0;width:20px;height:20px;border-radius:5px;border:2px solid var(--border);background:var(--white);display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}
.subsvc-item.selected .subsvc-checkbox{border-color:var(--accent);background:var(--accent)}
.subsvc-checkbox::after{content:'';display:none;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px)}
.subsvc-item.selected .subsvc-checkbox::after{display:block}
.subsvc-name{font-size:.875rem;font-weight:500;color:var(--ink);flex:1}
.subsvc-item.selected .subsvc-name{color:var(--accent)}
.subsvc-item input[type="checkbox"]{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.pricing-panel{display:none;border-top:1px solid var(--border);background:var(--subtle);padding:1rem 1.25rem}
.pricing-panel.open{display:block}
.price-input{width:100%;padding:.45rem .65rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;outline:none;transition:border-color .15s}
.price-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(42,92,255,.1)}
.price-input.price-missing{border-color:var(--danger);background:var(--danger-bg)}
.price-select{width:100%;padding:.45rem .65rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;outline:none;cursor:pointer;-webkit-appearance:none;transition:border-color .15s}
.price-select:focus{border-color:var(--accent)}

/* ─── SETTINGS LOCATIONS ─── */
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.85rem}
.btn-sm{padding:.4rem .75rem;font-size:.75rem}
.badge-archived{background:var(--subtle);color:var(--muted);border-color:var(--border)}
.loc-list{display:flex;flex-direction:column;gap:.75rem}
.loc-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.loc-item.archived{opacity:.65}
.loc-left{display:flex;align-items:center;gap:.85rem;min-width:0}
.loc-thumb{width:48px;height:48px;border-radius:10px;border:1px solid var(--border);background:var(--subtle);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.75rem;overflow:hidden}
.loc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.loc-name{font-size:.875rem;font-weight:500;color:var(--ink)}
.loc-addr{font-size:.72rem;color:var(--muted);line-height:1.4;margin-top:.15rem}
.loc-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;flex-wrap:wrap}
.edit-panel{background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-top:.6rem}
.edit-panel-label{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.85rem;display:block}
@media(max-width:700px){.form-grid-3{grid-template-columns:1fr}}

/* ─── SETTINGS INVOICES ─── */
.section-head-title{font-size:.82rem;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:.5rem}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}
.toggle-info .toggle-label{font-size:.875rem;font-weight:500;color:var(--ink);display:block;margin-bottom:.1rem}
.toggle-info .toggle-desc{font-size:.75rem;color:var(--muted);line-height:1.5}
.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:24px;cursor:pointer;transition:background .2s}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-wrap input:checked + .toggle-slider{background:var(--accent)}
.toggle-wrap input:checked + .toggle-slider::before{transform:translateX(20px)}
.option-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:20px;font-size:.68rem;font-weight:500}
.option-active{background:var(--success-bg);color:var(--success);border:1px solid var(--success-bdr)}
.option-inactive{background:var(--subtle);color:var(--muted);border:1px solid var(--border)}
.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}

/* ─── SETTINGS EXTRAS ─── */
.extras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}
.extra-card{background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .15s}
.extra-card:hover{border-color:#c8c6c2}
.extra-card.inactive{opacity:.6}
.extra-card-head{padding:1rem;border-bottom:1px solid var(--border);background:var(--subtle);display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.extra-name{font-size:.875rem;font-weight:500;color:var(--ink)}
.extra-card-body{padding:1rem}
.extra-desc{font-size:.78rem;color:var(--muted);line-height:1.5;margin-bottom:.75rem}
.extra-meta{font-size:.72rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.extra-actions{display:flex;gap:.35rem;flex-wrap:wrap}
.price-tag{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;padding:2px 8px;border-radius:12px;font-size:.68rem;font-weight:500}
@media(max-width:600px){.extras-grid{grid-template-columns:1fr}}

/* ─── SETTINGS EVENTS ─── */
.form-card-icon{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem}
.form-card-title{font-size:.875rem;font-weight:500;color:var(--ink)}
.form-grid .full{grid-column:1/-1}
.toggle-label{font-size:.82rem;color:var(--ink)}
input[type="checkbox"].toggle{width:36px;height:20px;border-radius:10px;appearance:none;-webkit-appearance:none;background:var(--border);cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}
input[type="checkbox"].toggle:checked{background:var(--accent)}
input[type="checkbox"].toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .2s}
input[type="checkbox"].toggle:checked::after{left:18px}
.types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:1.5rem}
.type-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s,transform .15s}
.type-card:hover{border-color:#c8c6c2;transform:translateY(-1px)}
.type-card.inactive{opacity:.6}
.type-card-head{padding:1.1rem 1.25rem;display:flex;align-items:flex-start;gap:.75rem;border-bottom:1px solid var(--border)}
.type-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;background:var(--subtle)}
.type-name{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.2rem}
.type-desc{font-size:.78rem;color:var(--muted);line-height:1.5}
.type-meta{padding:.75rem 1.25rem;display:flex;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--border);font-size:.75rem;color:var(--muted)}
.type-meta-item{display:flex;align-items:center;gap:.3rem}
.type-actions{padding:.75rem 1.25rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
@media(max-width:600px){.types-grid{grid-template-columns:1fr}}

/* ─── SETTINGS EMPLOYEES ─── */
.create-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr 200px auto;gap:.75rem;align-items:end}
.badge-owner{background:#f0f4ff;color:var(--accent);border-color:#c7d2fe}
.badge-admin{background:#fefce8;color:#854d0e;border-color:#fde68a}
.badge-staff{background:var(--subtle);color:var(--muted);border-color:var(--border)}
.badge-superadmin{background:#faf5ff;color:#7e22ce;border-color:#e9d5ff}
.badge-active{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}
.badge-inactive{background:var(--warning-bg);color:var(--warning);border-color:#fde68a}
.badge-self{background:#f0f4ff;color:var(--accent);border-color:#c7d2fe;font-size:.6rem}
.actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.btn-promote{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}.btn-promote:hover{background:var(--success);color:#fff}
.btn-demote{background:var(--subtle);color:var(--muted);border-color:var(--border)}.btn-demote:hover{border-color:var(--ink);color:var(--ink)}
.btn-toggle-off{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}.btn-toggle-off:hover{background:var(--danger);color:#fff}
.btn-toggle-on{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}.btn-toggle-on:hover{background:var(--success);color:#fff}
.btn-delete{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}.btn-delete:hover{background:var(--danger);color:#fff}
@media(max-width:860px){.create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.create-grid{grid-template-columns:1fr}}

/* ─── SETTINGS COMPANY ─── */
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.form-textarea{width:100%;padding:.65rem .85rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s;min-height:100px;resize:vertical;line-height:1.5;-webkit-appearance:none}
.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.logo-section{display:flex;flex-direction:column;gap:1rem}
.logo-row{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius)}
.logo-preview{width:72px;height:72px;border-radius:10px;border:1px solid var(--border);background:var(--white);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.logo-preview img{width:100%;height:100%;object-fit:contain;display:block}
.logo-placeholder{font-size:.68rem;color:var(--muted);text-align:center;padding:.5rem;line-height:1.3}
.logo-type-badge{font-size:.65rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;display:block}
@media(max-width:600px){.form-grid-2{grid-template-columns:1fr}.logo-row{flex-direction:column}}

/* ─── CALENDARS PAGE ─── */
.providers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:1.5rem}
.provider-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.provider-card.connected{border-color:#a7f3d0}
.provider-card.error{border-color:var(--danger-bdr)}
.provider-head{padding:1.1rem 1.25rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--border)}
.provider-icon{width:36px;height:36px;border-radius:10px;background:var(--subtle);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.provider-name{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.15rem}
.provider-desc{font-size:.75rem;color:var(--muted);line-height:1.4}
.provider-body{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;gap:.75rem}
.provider-info{font-size:.78rem;color:var(--muted)}
.provider-info strong{color:var(--ink)}
.provider-error{background:var(--danger-bg);border:1px solid var(--danger-bdr);border-radius:7px;padding:.6rem .85rem;font-size:.72rem;color:var(--danger);line-height:1.4}
.modal-box{width:min(600px,100%);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.modal-head{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--subtle);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.modal-title{font-size:.95rem;font-weight:500;color:var(--ink)}
.modal-sub{font-size:.75rem;color:var(--muted)}
.modal-body{padding:1.25rem}
.modal-close{background:none;border:1px solid var(--border);border-radius:7px;padding:.35rem .7rem;cursor:pointer;font-size:.75rem;color:var(--muted);transition:all .15s;flex-shrink:0}
.modal-close:hover{border-color:var(--ink);color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.form-full{grid-column:1/-1}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}

/* ─── SETTINGS BOOKING ─── */
.section-icon{font-size:1rem}
.setting-row{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--border)}
.setting-row:last-child{border-bottom:none;padding-bottom:0}
.setting-row:first-child{padding-top:0}
.setting-info{flex:1;min-width:0}
.setting-label{font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:.2rem}
.setting-desc{font-size:.78rem;color:var(--muted);line-height:1.5}
.setting-control{flex-shrink:0;display:flex;align-items:center}
.num-input{display:flex;align-items:center;gap:.5rem}
.num-input input{width:80px;padding:.5rem .75rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;text-align:center;transition:border-color .2s}
.num-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.num-input .unit{font-size:.78rem;color:var(--muted)}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle-track{position:absolute;inset:0;background:var(--border);border-radius:24px;cursor:pointer;transition:background .2s}
.toggle input:checked + .toggle-track{background:var(--accent)}
.toggle-track::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.toggle input:checked + .toggle-track::after{transform:translateX(20px)}
.toggle-wrap{display:flex;align-items:center;gap:.6rem}
.toggle-status{font-size:.78rem;color:var(--muted);min-width:40px}
.form-footer{display:flex;justify-content:flex-end;margin-top:1.5rem}
@media(max-width:600px){.setting-row{flex-direction:column;gap:.75rem}.setting-control{align-self:flex-start}}

/* ─── BILLING PAGE ─── */
.billing-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}
.bcard{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem}
.bcard.featured{border-color:var(--accent);border-width:2px}
.bcard-label{font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.bcard-title{font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.5rem}
.bcard-sub{font-size:.82rem;color:var(--muted);line-height:1.6;margin-bottom:1.25rem}
.bcard-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.82rem}
.bcard-row:last-of-type{border-bottom:none}
.bcard-row-label{color:var(--muted)}
.bcard-row-value{font-weight:500;color:var(--ink);text-align:right}
.price-display{display:flex;align-items:baseline;gap:.35rem;margin:1rem 0}
.price-amount{font-family:var(--font-display);font-size:2.5rem;color:var(--ink);line-height:1}
.price-period{font-size:.875rem;color:var(--muted)}
.btn-checkout{display:block;width:100%;padding:.85rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;text-align:center;text-decoration:none;transition:background .15s,transform .1s}
.btn-checkout:hover{background:var(--accent-hover,#1a4aee);transform:translateY(-1px)}
.btn-portal{display:block;width:100%;padding:.75rem 1rem;margin-top:.75rem;background:var(--subtle);color:var(--ink);border:1px solid var(--border);border-radius:8px;font-family:var(--font-body);font-size:.82rem;font-weight:500;cursor:pointer;text-align:center;text-decoration:none;transition:all .15s}
.btn-portal:hover{border-color:var(--ink);background:var(--white)}
.beta-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .85rem;border-radius:20px;background:#eef2ff;border:1px solid #c7d2fe;color:var(--accent);font-size:.72rem;font-weight:500;margin-bottom:1rem}
.includes-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin:1rem 0}
.includes-list li{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:var(--muted)}
.includes-list li::before{content:'✓';color:#065f46;font-weight:500;flex-shrink:0}
.inv-link{color:var(--accent);text-decoration:none;font-size:.78rem}
.inv-link:hover{text-decoration:underline}
.alert-ok{background:var(--success-bg);border:1px solid var(--success-bdr);color:var(--success)}
.alert-err{background:var(--danger-bg);border:1px solid var(--danger-bdr);color:var(--danger)}
@media(max-width:700px){.billing-grid{grid-template-columns:1fr}}

/* ─── SETTINGS ACCOUNT ─── */
.breadcrumb-sep{color:var(--border)}
.profile-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:#eef2ff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);font-size:1.1rem;font-weight:500}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.profile-name{font-size:.95rem;font-weight:500;color:var(--ink)}
.profile-meta{font-size:.78rem;color:var(--muted);margin-top:.1rem}
.email-pending{background:var(--warning-bg);border:1px solid var(--warning-bdr);border-radius:8px;padding:.75rem 1rem;font-size:.82rem;color:var(--warning);line-height:1.6}
.form-label .req{color:var(--danger)}
.btn-save{display:inline-flex;align-items:center;padding:.65rem 1.25rem;border-radius:8px;font-family:var(--font-body);font-size:.875rem;font-weight:500;background:var(--ink);color:#fff;border:1px solid var(--ink);cursor:pointer;transition:background .15s,transform .1s;align-self:flex-start}
.btn-save:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}

/* ─── PORTAL REGISTER ─── */
.portal-register-body{font-family:var(--font-body);font-size:14px;background:var(--subtle);color:var(--ink);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;-webkit-font-smoothing:antialiased}
.portal-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:2rem;width:100%;max-width:420px}
.brand{font-family:var(--font-display);font-size:1.5rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:1.5rem;text-align:center}
.brand span{color:var(--accent)}
.portal-card h1{font-family:var(--font-display);font-size:1.3rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.4rem}
.portal-subtitle{font-size:.875rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.55}
.portal-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}
.portal-field label{font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.portal-field input[type="password"]{width:100%;padding:.65rem .85rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s}
.portal-field input[type="password"]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.12)}
.portal-btn{display:block;width:100%;padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s;text-align:center;text-decoration:none;margin-top:.25rem}
.portal-btn:hover{background:var(--accent-hover,#1a4aee)}
.portal-btn.ghost{background:var(--subtle);color:var(--ink);border:1px solid var(--border)}
.welcome-name{font-weight:500;color:var(--ink)}
.field-hint{font-size:.72rem;color:var(--muted);margin-top:.3rem}

/* ─── PORTAL ─── */
.topbar{background:var(--white);border-bottom:1px solid var(--border);padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:10}
.topbar-brand{font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.topbar-brand span{color:var(--accent)}
.topbar-right{display:flex;align-items:center;gap:.85rem}
.topbar-avatar{width:32px;height:32px;border-radius:50%;background:#eef2ff;color:var(--accent);font-size:.75rem;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.topbar-name{font-size:.82rem;font-weight:500;color:var(--ink)}
.topbar-logout{font-size:.78rem;color:var(--muted);text-decoration:none;padding:.35rem .75rem;border:1px solid var(--border);border-radius:6px;transition:all .15s}
.topbar-logout:hover{color:var(--danger);border-color:#fecaca;background:var(--danger-bg)}
.portal-page{max-width:860px;margin:0 auto;padding:2rem 1.5rem}
.portal-title{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.4rem}
.portal-sub{font-size:.875rem;color:var(--muted);margin-bottom:2rem}
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}
.info-card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem}
.info-key{font-size:.65rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem;display:block}
.info-val{font-size:.875rem;font-weight:500;color:var(--ink)}
.bookings-list{display:flex;flex-direction:column;gap:.6rem}
.booking-card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center}
.booking-date{font-family:var(--font-display);font-size:1.05rem;letter-spacing:-.01em;color:var(--accent);margin-bottom:.2rem}
.booking-meta{font-size:.82rem;color:var(--muted)}
.booking-meta strong{color:var(--ink)}
.booking-ref{font-size:.72rem;color:var(--muted);margin-top:.3rem}
.status-badge{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:20px;font-size:.72rem;font-weight:500;white-space:nowrap;border:1px solid}
@media(max-width:600px){.booking-card{grid-template-columns:1fr}.topbar-name{display:none}}

/* ─── WEBHOOKS PAGE ─── */
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.tool-card{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;background:var(--subtle);border:1px solid var(--border);border-radius:8px;font-size:.78rem;font-weight:500;color:var(--ink)}
.tool-icon{font-size:1.1rem;flex-shrink:0}
.notif-card{border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:.65rem;background:var(--white)}
.notif-card:last-child{margin-bottom:0}
.notif-card.paused{background:var(--subtle);opacity:.75}
.notif-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.notif-dest{font-weight:500;font-size:.82rem;color:var(--ink);word-break:break-all;flex:1}
.notif-status{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:500;padding:.2rem .6rem;border-radius:20px;flex-shrink:0}
.notif-events{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}
.event-pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;padding:.2rem .6rem;border-radius:20px;background:#eef2ff;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}
.notif-stats{margin-bottom:.65rem;padding:.6rem .85rem;background:var(--subtle);border-radius:8px;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.stat-ok{color:var(--success);font-weight:500}
.stat-err{color:var(--danger);font-weight:500}
.notif-actions{display:flex;gap:.4rem;flex-wrap:wrap}

/* ─── MEETINGS PAGE ─── */
.inv-list{display:flex;flex-direction:column;gap:1rem}
.inv-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .15s}
.inv-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.06)}
.inv-card.is-expired{opacity:.7}
.inv-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;flex-wrap:wrap}
.inv-card-left{display:flex;flex-direction:column;gap:.3rem}
.inv-title{font-size:.95rem;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.inv-meta{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.inv-meta span{display:flex;align-items:center;gap:.25rem}
.inv-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.inv-slots{border-top:1px solid var(--border);background:var(--subtle);padding:1rem 1.25rem;display:none}
.inv-slots.open{display:block}
.slots-title{font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.slots-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.slot-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;border:1px solid var(--border);background:var(--white);color:var(--ink)}
.slot-pill.booked{background:var(--success-bg);border-color:var(--success-bdr);color:var(--success)}
.slot-pill.booked::before{content:'✓ '}
.badge-pending{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-bdr)}
.badge-booked{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}
.badge-expired{background:var(--subtle);color:var(--muted);border-color:var(--border)}
.badge-cancelled{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}
.modal-title{font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:.5rem}
.modal-body{font-size:.82rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.6}
.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}
.copy-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--ink);color:var(--white);padding:.6rem 1.25rem;border-radius:20px;font-size:.78rem;font-weight:500;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:2000;white-space:nowrap}
.copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:600px){.inv-card-head{flex-direction:column;align-items:flex-start}.inv-actions{width:100%}}

/* ─── MEETING PAGE ─── */
.breadcrumb{font-size:.78rem;color:var(--muted);margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.form-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem}
.form-card-head{padding:.85rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border);font-size:.82rem;font-weight:500;color:var(--ink)}
.form-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:1.1rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label,.field-row label{font-size:.78rem;font-weight:500;color:var(--ink)}
.field label .req{color:var(--accent);margin-left:.15rem}
.field label .hint{font-weight:400;color:var(--muted);font-size:.72rem;margin-left:.3rem}
.form-card input[type="text"],.form-card input[type="email"],.form-card input[type="number"],.form-card input[type="date"],.form-card input[type="time"],.form-card textarea,.form-card select{width:100%;padding:.6rem .85rem;font-family:var(--font-body);font-size:.85rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .15s;appearance:none;-webkit-appearance:none}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.form-card textarea{resize:vertical;min-height:80px;line-height:1.5}
.duration-wrap{display:flex;gap:.75rem;align-items:flex-start}
.duration-wrap select{flex:1}
.duration-custom-wrap{display:none;flex-direction:column;gap:.35rem;flex:0 0 140px}
.duration-custom-wrap.visible{display:flex}
.duration-custom-wrap label{font-size:.72rem;color:var(--muted)}
.dates-list{display:flex;flex-direction:column;gap:.85rem}
.date-row{display:grid;grid-template-columns:1fr 120px 120px auto;gap:.65rem;align-items:end;background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem}
.date-row .field{margin:0}
.btn-remove-date{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid var(--danger-bdr);background:var(--danger-bg);color:var(--danger);font-size:1rem;cursor:pointer;flex-shrink:0;transition:opacity .15s;margin-bottom:2px}
.btn-remove-date:hover{opacity:.75}
.btn-add-date{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;font-family:var(--font-body);font-size:.78rem;font-weight:500;background:var(--subtle);color:var(--ink);border:1px dashed var(--border);cursor:pointer;transition:border-color .15s;margin-top:.25rem}
.btn-add-date:hover{border-color:var(--accent);color:var(--accent)}
.form-actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}
.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}
@media(max-width:600px){.date-row{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.date-row .field:first-child{grid-column:1/-1}.btn-remove-date{margin-left:auto}.field-row{grid-template-columns:1fr}.duration-wrap{flex-direction:column}.duration-custom-wrap{flex:1;width:100%}}

/* ─── INVOICES PAGE ─── */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.filter-btn{padding:.4rem 1rem;border-radius:20px;font-size:.78rem;font-weight:500;border:1px solid var(--border);background:var(--white);color:var(--muted);cursor:pointer;text-decoration:none;transition:all .15s}
.filter-btn:hover,.filter-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.filter-count{font-size:.65rem;background:rgba(255,255,255,.25);padding:.05rem .35rem;border-radius:10px;margin-left:.25rem}
.billing-off-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;background:var(--warning-bg);border:1px solid var(--warning-bdr);border-radius:var(--radius-lg);margin-bottom:1.25rem;flex-wrap:wrap}
.billing-off-text{font-size:.82rem;color:var(--warning);font-weight:500}
.td-number{font-weight:500;font-family:monospace;font-size:.82rem;color:var(--ink)}
.td-client{font-weight:500;color:var(--ink)}
.td-client-email{font-size:.75rem;color:var(--muted)}
.td-amount{font-weight:500;text-align:right;white-space:nowrap}
.td-date{font-size:.8rem;color:var(--muted);white-space:nowrap}
.td-actions{text-align:right;white-space:nowrap;display:flex;gap:.3rem;justify-content:flex-end;flex-wrap:wrap}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0}
.badge-draft{background:#f3f4f6;color:#6b7280}.badge-draft::before{background:#9ca3af}
.badge-sent{background:#fffbeb;color:#92400e}.badge-sent::before{background:#f59e0b}
.badge-invoiced{background:#eff6ff;color:#1d4ed8}.badge-invoiced::before{background:#3b82f6}
.badge-paid{background:var(--success-bg);color:var(--success)}.badge-paid::before{background:#10b981}
.badge-cancelled{background:#f9fafb;color:#9ca3af}.badge-cancelled::before{background:#d1d5db}
.btn-success{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}.btn-success:hover{background:var(--success);color:#fff}
.alert-warning{background:var(--warning-bg);border:1px solid var(--warning-bdr);color:var(--warning)}
@media(max-width:768px){.td-date,.td-client-email{display:none}}

/* ─── DASHBOARD INDEX ─── */
.dash-greeting em{color:var(--accent);font-style:italic}
.dash-meta{font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.role-badge{display:inline-flex;align-items:center;padding:.2rem .75rem;border-radius:20px;font-size:.68rem;font-weight:500;background:var(--accent-light,#eef2ff);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.pending-alert{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1.25rem;background:var(--warning-bg);border:1px solid var(--warning-bdr);border-radius:var(--radius-lg);margin-bottom:1.75rem}
.pending-alert-text{font-size:.875rem;font-weight:500;color:var(--warning)}
.pending-alert-sub{font-size:.75rem;color:#a16207;margin-top:.1rem}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.75rem}
.stat-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;text-decoration:none;display:block;color:inherit;transition:transform .15s,box-shadow .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.07)}
.stat-card.accent{border-left-color:var(--accent)}
.stat-card.ok{border-left-color:#22c55e}
.stat-card.warn{border-left-color:#f59e0b}
.stat-card.danger{border-left-color:var(--danger)}
.stat-card.revenue{border-left-color:var(--secondary,#1a1a1a)}
.stat-label{font-size:.65rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;display:block}
.stat-value{font-family:var(--font-display);font-size:1.9rem;line-height:1;color:var(--secondary,#1a1a1a);margin-bottom:.2rem}
.stat-desc{font-size:.72rem;color:var(--muted)}
.stat-evol{display:inline-flex;align-items:center;gap:.2rem;font-size:.68rem;font-weight:500;padding:.1rem .4rem;border-radius:20px}
.evol-up{background:#dcfce7;color:#15803d}
.evol-down{background:var(--danger-bg);color:var(--danger)}
.evol-flat{background:var(--subtle);color:var(--muted)}
.two-col{display:grid;grid-template-columns:1fr 340px;gap:1.25rem;align-items:start}
.left-col{display:flex;flex-direction:column;gap:1.25rem}
.right-col{display:flex;flex-direction:column;gap:1.25rem}
.card-head-title{font-size:.82rem;font-weight:500;color:var(--secondary,#1a1a1a);display:flex;align-items:center;gap:.5rem}
.card-head-link{font-size:.75rem;color:var(--accent);text-decoration:none;font-weight:500}
.card-head-link:hover{text-decoration:underline}
.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:20px;font-size:.65rem;font-weight:500;background:var(--accent);color:#fff}
.count-badge.warn{background:#f59e0b}
.bk-table{width:100%;border-collapse:collapse;font-size:.82rem}
.bk-table th{background:var(--subtle);padding:.6rem 1rem;text-align:left;font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}
.bk-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
.bk-table tr:last-child td{border-bottom:none}
.bk-table tr:hover td{background:var(--subtle)}
.bk-name{font-weight:500;color:var(--ink)}
.bk-muted{color:var(--muted);font-size:.75rem}
.badge{display:inline-flex;align-items:center;padding:.15rem .65rem;border-radius:20px;font-size:.65rem;font-weight:500;border:1px solid transparent;white-space:nowrap}
.badge-ok{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}
.badge-warn{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-bdr)}
.badge-off{background:var(--subtle);color:var(--muted);border-color:var(--border)}
.badge-invoice{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.pending-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--border)}
.pending-item:last-child{border-bottom:none;padding-bottom:0}
.pending-item:first-child{padding-top:0}
.pending-name{font-weight:500;font-size:.875rem;color:var(--ink);margin-bottom:.15rem}
.pending-detail{font-size:.72rem;color:var(--muted)}
.pending-actions{display:flex;gap:.4rem;flex-shrink:0}
.next-date{font-family:var(--font-display);font-size:1.35rem;color:var(--accent);letter-spacing:-.01em;line-height:1.1;margin-bottom:.3rem}
.next-service{font-size:.875rem;font-weight:500;color:var(--secondary,#1a1a1a);margin-bottom:.2rem}
.next-client{font-size:.78rem;color:var(--muted)}
.next-empty{text-align:center;padding:1.25rem;color:var(--muted);font-size:.82rem}
.quote-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem 0;border-bottom:1px solid var(--border)}
.quote-item:first-child{padding-top:0}
.quote-item:last-child{border-bottom:none;padding-bottom:0}
.quote-num{font-family:monospace;font-size:.75rem;color:var(--muted)}
.quote-client{font-size:.82rem;font-weight:500;color:var(--ink)}
.quote-amt{font-size:.82rem;font-weight:500;color:var(--ink);white-space:nowrap}
.copy-confirm{font-size:.75rem;color:var(--success);display:none;align-items:center;gap:.3rem;margin-top:.35rem}
.copy-confirm.show{display:flex}
.info-row{display:flex;flex-direction:column;gap:.1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}
.info-row:first-child{padding-top:0}
.info-row:last-child{border-bottom:none}
.info-key{font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.info-val{font-size:.82rem;color:var(--ink)}
.section-label{font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.85rem;display:block}
.actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.85rem}
.action-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.1rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.action-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.action-icon{font-size:1.25rem;line-height:1}
.action-label{font-size:.82rem;font-weight:500}
.action-sub{font-size:.72rem;color:var(--muted)}
.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-accent:hover{opacity:.88}
@media(max-width:1050px){.two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr)}.actions-grid{grid-template-columns:1fr 1fr}}

/* ─── CLIENTS PAGE ─── */
.search-bar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1.25rem}
.search-input{flex:1;min-width:240px;max-width:420px;padding:.65rem .9rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}
.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.td-dash{color:var(--border)}
.page-info{font-size:.75rem;color:var(--muted)}

/* ─── BOOKINGS PAGE ─── */
.status-pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .85rem;border-radius:20px;font-size:.75rem;font-weight:500;border:1px solid var(--border);background:var(--white);text-decoration:none;color:var(--muted);transition:border-color .15s,color .15s}
.status-pill:hover{border-color:var(--ink);color:var(--ink)}
.status-pill.active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.status-pill.pending-pill{border-color:#fde68a;background:var(--warning-bg);color:var(--warning)}
.pill-count{display:inline-block;padding:0 6px;border-radius:10px;font-size:.65rem;background:rgba(0,0,0,.08)}
.status-pill.active .pill-count{background:rgba(255,255,255,.2)}
.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1.25rem}
.filter-input{padding:.6rem .85rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s;flex:1;min-width:180px;max-width:320px}
.filter-input:focus{outline:none;border-color:var(--accent)}
.toolbar-count{font-size:.78rem;color:var(--muted);margin-left:auto;white-space:nowrap}
.td-contact{font-size:.75rem;color:var(--muted);display:flex;flex-direction:column;gap:.1rem}
.participants-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:500;padding:.15rem .55rem;border-radius:20px;background:#eef2ff;color:var(--accent);white-space:nowrap}
.btn-reply{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:7px;font-family:var(--font-body);font-size:.75rem;font-weight:500;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;transition:background .15s;white-space:nowrap}
.btn-reply:hover{background:var(--accent-hover)}
.table-note{font-size:.75rem;color:var(--muted);margin-top:.75rem}
.booking-summary{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.25rem}
.summary-card{background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem}
.summary-label{font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem}
.summary-value{font-size:.82rem;font-weight:500;color:var(--ink);word-break:break-word}
.reply-options{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.25rem}
.reply-option{position:relative;display:block;cursor:pointer}
.reply-option input{position:absolute;opacity:0;pointer-events:none}
.reply-option-ui{border:1px solid var(--border);background:var(--white);border-radius:var(--radius);padding:.85rem;text-align:center;font-size:.82rem;font-weight:500;color:var(--ink);transition:border-color .15s,background .15s}
.reply-option:hover .reply-option-ui{border-color:var(--accent)}
.reply-option input:checked + .reply-option-ui{border-color:var(--accent);background:#eef2ff;color:var(--accent)}
@media(max-width:640px){.booking-summary{grid-template-columns:1fr}.reply-options{grid-template-columns:1fr}}

/* ─── AVAILABILITIES PAGE ─── */
.av-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.card-head-title{font-size:.82rem;font-weight:500;color:var(--ink)}
.day-block{background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;margin-bottom:.6rem}
.day-block:last-child{margin-bottom:0}
.day-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}
.day-name{font-size:.875rem;font-weight:500;color:var(--ink)}
.ranges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.range-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem .3rem .8rem;background:var(--white);border:1px solid var(--border);border-radius:20px;font-size:.75rem;font-weight:500;color:var(--ink);white-space:nowrap}
.range-pill-del{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:none;border:none;cursor:pointer;color:var(--muted);font-size:.75rem;line-height:1;padding:0;transition:color .15s,background .15s;flex-shrink:0}
.range-pill-del:hover{color:var(--danger);background:var(--danger-bg)}
.pill-unavailable{font-size:.72rem;color:var(--muted);font-style:italic}
.inline-add{display:none;margin-top:.75rem;padding:.85rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius)}
.inline-add .time-row{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}
.inline-add .form-group{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:110px}
.inline-add label{font-size:.72rem;font-weight:500;color:var(--muted)}
.time-input{width:100%;padding:.5rem .7rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;transition:border-color .2s}
.time-input:focus{outline:none;border-color:var(--accent)}
.btn-add{background:var(--subtle);color:var(--ink);border:1px solid var(--border);font-size:.72rem;padding:.3rem .6rem}
.btn-add:hover{border-color:var(--accent);color:var(--accent)}
.btn-day-del{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.72rem;padding:.2rem .5rem;border-radius:5px;transition:color .15s,background .15s}
.btn-day-del:hover{color:var(--danger);background:var(--danger-bg)}
.year-group,.month-group{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden}
.year-group > summary,.month-group > summary{list-style:none;cursor:pointer;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.82rem;font-weight:500;color:var(--ink);background:var(--subtle);user-select:none;transition:background .15s}
.year-group > summary::-webkit-details-marker,.month-group > summary::-webkit-details-marker{display:none}
.year-group > summary:hover,.month-group > summary:hover{background:var(--border)}
.group-head-left{display:flex;align-items:center;gap:.6rem}
.caret{font-size:.65rem;color:var(--muted);transition:transform .2s}
details[open] > summary .caret{transform:rotate(90deg)}
.toggle-hint{font-size:.68rem;color:var(--muted)}
.month-group-body{padding:.75rem}
.year-group-body{padding:.5rem .75rem .75rem}
.date-block{background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:.5rem}
.date-block:last-child{margin-bottom:0}
.date-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}
.date-label{font-size:.82rem;font-weight:500;color:var(--ink)}
.modal-box{width:min(900px,100%);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15);max-height:90vh;overflow-y:auto}
.modal-head{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--subtle);display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:1}
.modal-title{font-size:.95rem;font-weight:500;color:var(--ink)}
.modal-sub{font-size:.75rem;color:var(--muted)}
.modal-body{padding:1.25rem}
.modal-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:1.25rem}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.cal-month-label{font-size:.875rem;font-weight:500;color:var(--ink)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.cal-weekdays span{text-align:center;font-size:.65rem;font-weight:500;color:var(--muted);padding:.2rem 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-day{aspect-ratio:1;border:1px solid var(--border);border-radius:7px;background:var(--white);font-size:.75rem;font-weight:500;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s}
.cal-day:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.cal-day.selected{background:var(--accent);border-color:var(--accent);color:#fff}
.cal-day:disabled{opacity:.35;cursor:not-allowed;color:var(--muted)}
.modal-right{display:flex;flex-direction:column;gap:.75rem}
.time-card{background:var(--subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem}
.time-card-label{font-size:.72rem;font-weight:500;color:var(--muted);margin-bottom:.5rem;display:block}
.selection-count{font-size:.78rem;color:var(--muted);padding:.5rem;border-radius:7px;background:var(--subtle);border:1px solid var(--border);text-align:center}
.selection-count.has-selection{color:var(--success);border-color:var(--success-bdr);background:var(--success-bg)}
.flash-auto{animation:fadeout 0s 5s forwards}
@keyframes fadeout{to{opacity:0;pointer-events:none}}
@media(max-width:860px){.av-layout{grid-template-columns:1fr}}
@media(max-width:640px){.modal-grid{grid-template-columns:1fr}}
@media(max-width:600px){.inline-add .time-row{flex-direction:column}}

/* ─── API KEYS PAGE ─── */
.page-intro{font-size:.875rem;color:var(--muted);line-height:1.65;max-width:560px}
.token-alert{background:var(--warning-bg);border:1px solid var(--warning-bdr);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
.token-alert-title{font-weight:600;color:var(--warning);font-size:.875rem;margin-bottom:.3rem;display:flex;align-items:center;gap:.4rem}
.token-alert-sub{font-size:.78rem;color:var(--warning);margin-bottom:.85rem;line-height:1.5}
.token-box{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--warning-bdr);border-radius:8px;padding:.65rem 1rem}
.token-val{font-family:monospace;font-size:.78rem;word-break:break-all;flex:1;color:var(--ink);letter-spacing:.02em}
.btn-copy{flex-shrink:0;padding:.4rem .85rem;border-radius:6px;border:1px solid var(--warning-bdr);background:var(--warning-bg);color:var(--warning);font-family:var(--font-body);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}
.btn-copy.copied{background:#92400e;color:#fff;border-color:#92400e}
.section{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.25rem}
.section-head{padding:.9rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.section-title{font-size:.875rem;font-weight:500;color:var(--ink)}
.section-sub{font-size:.75rem;color:var(--muted)}
.section-body{padding:1.25rem 1.5rem}
.perms-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.perm-card{position:relative;border:1.5px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;cursor:pointer;transition:border-color .2s,background .2s;background:var(--white)}
.perm-card:hover{border-color:var(--accent);background:#eef2ff}
.perm-card:has(input:checked){border-color:var(--accent);background:#eef2ff}
.perm-card input{position:absolute;opacity:0;pointer-events:none}
.perm-card-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}
.perm-icon{font-size:1rem;flex-shrink:0}
.perm-label{font-size:.82rem;font-weight:500;color:var(--ink)}
.perm-desc{font-size:.72rem;color:var(--muted);line-height:1.45;padding-left:1.5rem}
.perm-card:has(input:checked) .perm-label{color:var(--accent)}
.perm-check{position:absolute;top:.7rem;right:.7rem;width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:var(--white);display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:.6rem}
.perm-card:has(input:checked) .perm-check{background:var(--accent);border-color:var(--accent);color:#fff}
.conn-card{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.65rem;background:var(--white)}
.conn-card:last-child{margin-bottom:0}
.conn-card.inactive{background:var(--subtle);opacity:.7}
.conn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.conn-name{font-weight:500;font-size:.875rem;color:var(--ink);display:flex;align-items:center;gap:.5rem}
.conn-status{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:500;padding:.15rem .55rem;border-radius:20px}
.status-on{background:var(--success-bg);color:var(--success)}
.status-off{background:var(--subtle);color:var(--muted)}
.status-expired{background:var(--danger-bg);color:var(--danger)}
.conn-perms{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem}
.perm-tag{display:inline-flex;align-items:center;gap:.25rem;font-size:.68rem;padding:.15rem .5rem;border-radius:20px;background:var(--subtle);color:var(--muted);border:1px solid var(--border)}
.conn-meta{font-size:.72rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.65rem}
.conn-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.explainer{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}
.explainer-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-align:center}
.explainer-icon{font-size:1.5rem;display:block;margin-bottom:.5rem}
.explainer-title{font-size:.78rem;font-weight:500;color:var(--ink);margin-bottom:.25rem}
.explainer-desc{font-size:.7rem;color:var(--muted);line-height:1.5}
@media(max-width:580px){.explainer{grid-template-columns:1fr}}
@media(max-width:520px){.perms-grid{grid-template-columns:1fr}}

/* ─── ANALYTICS PAGE ─── */
.period-selector{display:flex;gap:.5rem;align-items:center}
.period-btn{display:inline-flex;align-items:center;padding:.45rem 1rem;border-radius:8px;font-size:.78rem;font-weight:500;text-decoration:none;border:1px solid var(--border);color:var(--muted);background:var(--white);transition:all .15s;cursor:pointer}
.period-btn:hover{border-color:var(--accent);color:var(--accent)}
.period-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.kpi-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;position:relative;overflow:hidden}
.kpi-card.k-accent{border-left-color:var(--accent)}
.kpi-card.k-ok{border-left-color:#22c55e}
.kpi-card.k-rev{border-left-color:var(--secondary)}
.kpi-card.k-clients{border-left-color:#8b5cf6}
.kpi-label{font-size:.65rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;display:block}
.kpi-value{font-family:var(--font-display);font-size:2rem;line-height:1;color:var(--secondary);margin-bottom:.35rem}
.kpi-footer{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--muted);flex-wrap:wrap}
.stat-evol{display:inline-flex;align-items:center;padding:.1rem .4rem;border-radius:20px;font-size:.65rem;font-weight:500}
.evol-up{background:#dcfce7;color:#15803d}
.evol-down{background:var(--danger-bg);color:var(--danger)}
.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.chart-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.chart-head{padding:.85rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.chart-title{font-size:.82rem;font-weight:500;color:var(--secondary)}
.chart-body{padding:1.25rem;position:relative}
.chart-canvas-wrap{position:relative;height:220px}
.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.service-item{margin-bottom:.85rem}
.service-item:last-child{margin-bottom:0}
.service-row-ana{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.3rem;font-size:.82rem}
.service-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.service-meta{color:var(--muted);font-size:.72rem;white-space:nowrap}
.service-bar-track{height:6px;background:var(--subtle);border-radius:4px;overflow:hidden}
.service-bar-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .4s ease}
.client-table{width:100%;border-collapse:collapse;font-size:.82rem}
.client-table th{padding:.55rem .85rem;text-align:left;font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--subtle);white-space:nowrap}
.client-table td{padding:.7rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle}
.client-table tr:last-child td{border-bottom:none}
.client-table tr:hover td{background:var(--subtle)}
.client-name{font-weight:500;color:var(--ink)}
.client-email{font-size:.72rem;color:var(--muted)}
.badge-ok{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}
.badge-muted{background:var(--subtle);color:var(--muted);border-color:var(--border)}
@media(max-width:900px){.charts-grid{grid-template-columns:1fr}.bottom-grid{grid-template-columns:1fr}}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}}

/* ─── USERS PAGE ─── */
.filter-search{position:relative;flex:1;min-width:200px;max-width:320px}
.filter-search input{width:100%;padding:.6rem .85rem .6rem 2.2rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s}
.filter-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.filter-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.8rem;pointer-events:none}
.filter-count{font-size:.78rem;color:var(--muted);margin-left:auto;white-space:nowrap}
.row-editing > td{background:#f7f8ff}
.btn-reset{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-bdr)}.btn-reset:hover{background:var(--warning);color:#fff}
.switch{position:relative;display:inline-block;width:40px;height:22px;vertical-align:middle;flex-shrink:0}
.switch input{display:none}
.slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:999px;transition:background .2s;border:1px solid #ccc}
.slider::before{content:'';position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.switch input:checked + .slider{background:#16a34a;border-color:#15803d}
.switch input:checked + .slider::before{transform:translateX(18px)}
.edit-input,.edit-select{width:100%;padding:.4rem .6rem;font-family:var(--font-body);font-size:.78rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:6px;transition:border-color .2s;-webkit-appearance:none}
.edit-input:focus,.edit-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(42,92,255,.1)}
.edit-actions-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}

/* ─── SERVICES PAGE ─── */
.group-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1rem}
.group-head{padding:.75rem 1.25rem;background:var(--subtle);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.group-head-name{font-size:.875rem;font-weight:500;color:var(--ink)}
.group-head-count{font-size:.72rem;color:var(--muted);white-space:nowrap}
.service-row{padding:1rem 1.25rem;border-bottom:1px solid var(--border)}
.service-row:last-child{border-bottom:none}
.service-row:hover{background:var(--subtle)}
.service-main{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.service-name{font-weight:500;font-size:.875rem;color:var(--ink)}
.service-date{font-size:.72rem;color:var(--muted);white-space:nowrap;flex-shrink:0}
.sub-section-label{font-size:.68rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;display:block}
.sub-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}
.sub-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:20px;font-size:.72rem;font-weight:500;background:var(--subtle);color:var(--ink);border:1px solid var(--border)}
.sub-add-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}
.sub-input{flex:1;min-width:180px;padding:.45rem .75rem;font-family:var(--font-body);font-size:.78rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;transition:border-color .2s;-webkit-appearance:none}
.sub-input:focus{outline:none;border-color:var(--accent)}
.btn-add-sub{background:var(--subtle);color:var(--ink);border:1px solid var(--border);font-size:.75rem;padding:.4rem .75rem}
.btn-add-sub:hover{border-color:var(--accent);color:var(--accent)}
.btn-primary:disabled{background:var(--border);color:var(--muted);border-color:var(--border);cursor:not-allowed;transform:none}
.no-cat-notice{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .9rem;background:var(--danger-bg);border:1px solid var(--danger-bdr);border-radius:7px;font-size:.78rem;color:var(--danger);margin-top:.75rem}
@media(max-width:680px){.create-grid{grid-template-columns:1fr}}

/* ─── REQUESTS PAGE ─── */
.status-counters{display:flex;gap:.75rem;flex-wrap:wrap}
.counter-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:500;padding:.3rem .85rem;border-radius:20px;border:1px solid var(--border);background:var(--white);text-decoration:none;color:var(--muted);transition:border-color .2s,color .2s}
.counter-pill:hover{border-color:var(--ink);color:var(--ink)}
.counter-pill.active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.counter-num{font-weight:500;font-size:.72rem;padding:1px 7px;border-radius:20px;background:rgba(0,0,0,.08)}
.counter-pill.active .counter-num{background:rgba(255,255,255,.2)}
.layout-split{display:grid;grid-template-columns:1.5fr 1fr;gap:1.25rem;align-items:start}
.card-head-sub{font-size:.72rem;color:var(--muted)}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.filter-input{padding:.5rem .75rem;font-family:var(--font-body);font-size:.78rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;transition:border-color .2s;-webkit-appearance:none}
.filter-input:focus{outline:none;border-color:var(--accent)}
.filter-select{padding:.5rem 2rem .5rem .75rem;font-family:var(--font-body);font-size:.78rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6b6b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;cursor:pointer;transition:border-color .2s}
.filter-select:focus{outline:none;border-color:var(--accent)}
.filter-check{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--muted);cursor:pointer;user-select:none}
.row-open td{background:#f0f3ff}
.td-subject{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-sticky{position:sticky;top:80px}
.detail-body{padding:1.25rem}
.kv-grid{display:grid;grid-template-columns:110px 1fr;gap:.4rem .75rem;font-size:.82rem;margin-bottom:1.25rem}
.kv-key{color:var(--muted);font-size:.75rem;padding-top:2px}
.kv-val{color:var(--ink)}
.divider{height:1px;background:var(--border);margin:1.1rem 0}
.detail-section-title{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.message-box{white-space:pre-wrap;font-size:.82rem;line-height:1.55;color:var(--ink);background:var(--subtle);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;max-height:200px;overflow-y:auto}
.form-inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.form-inline select{padding:.45rem .75rem;font-family:var(--font-body);font-size:.78rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:7px;-webkit-appearance:none;flex:1;min-width:120px}
.form-inline select:focus{outline:none;border-color:var(--accent)}
.note-textarea{width:100%;padding:.65rem .85rem;font-family:var(--font-body);font-size:.82rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;min-height:100px;resize:vertical;transition:border-color .2s;line-height:1.5}
.note-textarea:focus{outline:none;border-color:var(--accent)}
.actions-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:1rem}
@media(max-width:1100px){.layout-split{grid-template-columns:1fr}}
@media(max-width:700px){.filters{flex-direction:column;align-items:stretch}}

/* ─── PROMO PAGE ─── */
.create-card{background:var(--white);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:2rem}
.create-head{padding:1rem 1.5rem;background:var(--subtle);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}
.create-head-icon{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem}
.create-head-title{font-size:.875rem;font-weight:500;color:var(--ink)}
.create-body{padding:1.5rem}
.create-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.create-grid .full{grid-column:1/-1}
.form-hint{font-size:.72rem;color:var(--muted)}
.form-input,.form-select{padding:.65rem .85rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s;-webkit-appearance:none}
.form-input:focus,.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6b6b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem;cursor:pointer}
.td-code{font-family:monospace;font-size:.85rem;font-weight:600;letter-spacing:.05em;color:var(--ink)}
.badge-active{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.badge-used{background:#f2f1ee;color:#6b6b6b;border:1px solid #e2e1de}
.badge-revoked{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.badge-free{background:#f2f1ee;color:#6b6b6b;border:1px solid #e2e1de}
.modal-box{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.75rem;width:100%;max-width:420px;box-shadow:0 8px 40px rgba(0,0,0,.12)}
.modal-title{font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:1.25rem}
.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.25rem}
@media(max-width:600px){.create-grid{grid-template-columns:1fr}.create-grid .full{grid-column:1}}

/* ─── FINANCES PAGE ─── */
.view-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem;border-bottom:1px solid var(--border)}
.view-tab{display:inline-block;padding:.6rem 1.1rem;font-size:.82rem;font-weight:500;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;transition:color .2s,border-color .2s;margin-bottom:-1px}
.view-tab:hover{color:var(--ink)}
.view-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}
.kpi-card{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:1.1rem 1.25rem}
.kpi-label{font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;display:block}
.kpi-value{font-family:var(--font-display);font-size:1.8rem;line-height:1;color:var(--ink);margin-bottom:.3rem}
.kpi-sub{font-size:.72rem;color:var(--muted)}
.kpi-card.kpi-warn{border-left-color:#f59e0b}
.kpi-card.kpi-danger{border-left-color:var(--danger)}
.card-title{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}
.card-sub{font-size:.82rem;color:var(--muted)}
.module-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.module-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:500;padding:.3rem .75rem;border-radius:20px;border:1px solid var(--border)}
.module-badge.ok{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}
.module-badge.bad{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}
.chart-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}
.chart-title{font-size:.82rem;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem}
.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}
.section-label{font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.td-amount{font-weight:500;font-variant-numeric:tabular-nums}
@media(max-width:700px){.kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}}

/* ─── ADMIN COMPANIES PAGE ─── */
.page-subtitle{font-size:.875rem;color:var(--muted)}
.toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.search-wrap{flex:1;min-width:200px;max-width:360px;position:relative}
.search-wrap input{width:100%;padding:.65rem .9rem .65rem 2.4rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s}
.search-wrap input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.85rem;pointer-events:none}
.btn-accent{background:var(--accent);color:var(--white);border-color:var(--accent)}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-success{background:var(--success-bg);color:var(--success);border-color:var(--success-bdr)}.btn-success:hover{background:var(--success);color:#fff;border-color:var(--success)}
.btn-sm{padding:.45rem .85rem;font-size:.78rem}
.company-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1rem;overflow:hidden;transition:border-color .2s}
.company-card:hover{border-color:#c8c6c2}
.company-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.5rem;flex-wrap:wrap}
.company-info{flex:1;min-width:260px}
.company-name{font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.company-meta{font-size:.78rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin-bottom:.6rem}
.meta-sep{color:var(--border)}
.owner-row{font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.owner-name{color:var(--ink);font-weight:500}
.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.68rem;font-weight:500;white-space:nowrap}
.badge-sector{background:var(--subtle);color:var(--muted);border:1px solid var(--border)}
.company-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;flex-shrink:0}
.sub-badge{display:inline-flex;align-items:center;gap:.3rem;padding:2px 10px;border-radius:20px;font-size:.68rem;font-weight:500;white-space:nowrap}
.sub-active{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.sub-trialing{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.sub-expired,.sub-canceled,.sub-past_due{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.sub-none{background:#f2f1ee;color:#6b6b6b;border:1px solid #e2e1de}
.sub-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}
.company-card .edit-panel{border-top:1px solid var(--border);padding:1.5rem;background:var(--subtle);display:none}
.company-card .edit-panel.open{display:block}
.company-card .edit-panel-title{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}
.edit-grid .full{grid-column:1/-1}
.form-group label{display:block;font-size:.78rem;font-weight:500;color:var(--ink);margin-bottom:.35rem}
.form-group input,.form-group select{width:100%;padding:.65rem .9rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.edit-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}
.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2rem;flex-wrap:wrap}
.page-btn{padding:.5rem .85rem;border-radius:8px;font-size:.82rem;font-weight:500;text-decoration:none;border:1px solid var(--border);color:var(--ink);background:var(--white);transition:all .15s}
.page-btn:hover{border-color:var(--accent);color:var(--accent)}
.page-btn.active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.page-btn.disabled{opacity:.4;pointer-events:none}
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;padding:1rem}
.modal-overlay.open{display:flex}
.modal{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.75rem;width:100%;max-width:440px;box-shadow:0 8px 40px rgba(0,0,0,.12)}
.modal-title{font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:.25rem}
.modal-company{font-size:.8rem;color:var(--muted);margin-bottom:1.5rem}
.modal-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}
.modal-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}
.modal-section-title{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.modal-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.modal input[type="number"],.modal select{padding:.55rem .75rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;-webkit-appearance:none}
.modal input[type="number"]:focus,.modal select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.modal-hint{font-size:.75rem;color:var(--muted);line-height:1.5;margin-top:.4rem}
@media(max-width:700px){.edit-grid{grid-template-columns:1fr}.edit-grid .full{grid-column:1}.company-main{flex-direction:column}.company-actions{justify-content:flex-start}}

/* ─── ADMIN PAGES (category, etc.) ─── */
.admin-wrap{max-width:760px;margin:0 auto;padding:2.5rem 2rem 4rem}
.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap}
.page-header-back{font-size:.82rem;color:var(--muted);text-decoration:none;transition:color .2s}
.page-header-back:hover{color:var(--ink)}
.page-title{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);color:var(--ink);letter-spacing:-.02em;line-height:1.1;flex:1}
.count-badge{display:inline-flex;align-items:center;padding:.3rem .85rem;border-radius:20px;font-size:.75rem;font-weight:500;background:var(--subtle);color:var(--muted);border:1px solid var(--border)}
.alert-success{background:var(--success-bg);border:1px solid var(--success-bdr);color:var(--success)}
.form-row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}
.form-group{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:220px}
.form-label{font-size:.78rem;font-weight:500;color:var(--ink)}
.form-input{width:100%;padding:.65rem .85rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;outline:none}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.edit-panel{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:1.1rem;margin-bottom:1.1rem}
.edit-panel-label{font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;display:block}
.btn-save{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-save:hover{background:var(--accent);border-color:var(--accent)}
.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bdr)}.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.td-name{font-weight:500}
.td-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.empty-icon{font-size:2rem;margin-bottom:.75rem;display:block}
@media(max-width:600px){.admin-wrap{padding:1.5rem 1rem 3rem}.form-row{flex-direction:column}}

/* ─── ONBOARDING FORM ─── */
.page{display:grid;grid-template-columns:360px 1fr;min-height:100vh}
.page .sidebar{background:var(--ink);padding:3rem 2.5rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}
.page .sidebar .logo{font-family:var(--font-display);font-size:1.75rem;color:var(--white);letter-spacing:-.02em;margin-bottom:3rem;text-decoration:none;display:block}
.page .sidebar .logo span{color:var(--accent)}
.page .sidebar-title{font-family:var(--font-display);font-size:1.85rem;color:var(--white);letter-spacing:-.02em;line-height:1.2;margin-bottom:.85rem}
.page .sidebar-sub{font-size:.875rem;color:rgba(255,255,255,.5);line-height:1.65;margin-bottom:2.5rem}
.page .sidebar-price{background:rgba(42,92,255,.15);border:1px solid rgba(42,92,255,.3);border-radius:10px;padding:.85rem 1rem;margin-bottom:2.5rem}
.page .sidebar-price-label{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:.25rem}
.page .sidebar-price-amount{font-family:var(--font-display);font-size:1.6rem;color:var(--white);letter-spacing:-.01em;line-height:1}
.page .sidebar-price-amount span{font-family:var(--font-body);font-size:.8rem;color:rgba(255,255,255,.5);font-weight:400}
.page .sidebar-price-note{font-size:.72rem;color:rgba(255,255,255,.4);margin-top:.35rem}
.page .sidebar-features{display:flex;flex-direction:column;gap:.5rem;margin-bottom:auto}
.page .sidebar-feature{display:flex;align-items:flex-start;gap:.6rem;font-size:.8rem;color:rgba(255,255,255,.55);line-height:1.5}
.page .sidebar-feature::before{content:'✓';color:var(--accent);font-weight:600;flex-shrink:0;margin-top:.05rem}
.page .sidebar-footer{margin-top:2rem;font-size:.72rem;color:rgba(255,255,255,.2);line-height:1.6}
.page .main{display:flex;align-items:flex-start;justify-content:center;padding:4rem 3rem;min-height:100vh}
.form-wrap{width:100%;max-width:560px}
.form-header{margin-bottom:2.5rem}
.form-eyebrow{font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;display:block}
.form-title{font-family:var(--font-display);font-size:2.2rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.5rem;line-height:1.15}
.form-sub{font-size:.875rem;color:var(--muted);line-height:1.6}
.form-section{margin-bottom:2rem}
.form-section-title{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
.field{margin-bottom:1rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.field-row-3{display:grid;grid-template-columns:1fr 2fr 1fr;gap:.75rem}
.form-wrap label{display:block;font-size:.72rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.form-wrap label .req{color:var(--accent)}
.form-wrap input,.form-wrap select{display:block;width:100%;padding:.75rem 1rem;font-family:var(--font-body);font-size:.875rem;color:var(--ink);background:var(--white);border:1px solid var(--border);border-radius:8px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;outline:none}
.form-wrap input:focus,.form-wrap select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
.form-wrap input.error,.form-wrap select.error{border-color:var(--danger)}
.form-wrap select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6b6b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}
.alert-email{background:var(--subtle);border:1px solid var(--border);color:var(--ink);font-size:.82rem}
.alert-email a{color:var(--accent);text-decoration:none;font-weight:500}
.alert-email a:hover{text-decoration:underline}
.email-checking{font-size:.72rem;color:var(--muted);margin-top:.3rem;display:none}
.email-checking.visible{display:block}
.btn-submit{width:100%;padding:.9rem;background:var(--ink);color:var(--white);font-family:var(--font-body);font-size:.95rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background .2s,transform .15s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}
.btn-submit:hover:not(:disabled){background:var(--accent);transform:translateY(-1px)}
.btn-submit:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;transform:none}
.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.form-note{margin-top:.85rem;font-size:.75rem;color:var(--muted);text-align:center;line-height:1.6}
.form-note a{color:var(--accent);text-decoration:none}
.form-note a:hover{text-decoration:underline}
.stripe-redirect{display:none;text-align:center;padding:3rem 2rem}
.stripe-redirect.visible{display:block}
.stripe-icon{font-size:3rem;margin-bottom:1rem}
.stripe-title{font-family:var(--font-display);font-size:1.75rem;color:var(--ink);margin-bottom:.5rem;letter-spacing:-.02em}
.stripe-sub{font-size:.875rem;color:var(--muted);line-height:1.6}
@media(max-width:900px){
    .page{grid-template-columns:1fr}
    .page .sidebar{position:static;height:auto;padding:2rem 1.5rem 1.5rem}
    .page .sidebar-features,.page .sidebar-footer{display:none}
    .page .main{padding:2rem 1.5rem 3rem}
    .form-title{font-size:1.75rem}
}
@media(max-width:520px){
    .field-row,.field-row-3{grid-template-columns:1fr}
    .page .main{padding:1.5rem 1rem 3rem}
}

/* ─── PAGES LÉGALES (privacy, CGU) ─── */
.site-header{border-bottom:1px solid var(--border);padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.back-link{font-size:.82rem;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border);transition:color .15s,border-color .15s}
.back-link:hover{color:var(--accent);border-color:var(--accent)}
.legal-hero{background:var(--subtle);border-bottom:1px solid var(--border);padding:3rem 2rem;text-align:center}
.hero-eyebrow{display:inline-block;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.hero-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);color:var(--ink);letter-spacing:-.03em;line-height:1.1;margin-bottom:1rem}
.hero-sub{font-size:.9rem;color:var(--muted);max-width:500px;margin:0 auto;line-height:1.6}
.hero-date{display:inline-block;margin-top:1.5rem;font-size:.75rem;color:var(--muted);background:var(--border);padding:.25rem .75rem;border-radius:20px}
.content-wrap{max-width:740px;margin:0 auto;padding:3rem 2rem 5rem}
.toc{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:3rem}
.toc-title{font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.toc ol{padding-left:1.25rem;display:flex;flex-direction:column;gap:.3rem}
.toc a{font-size:.875rem;color:var(--muted);text-decoration:none;transition:color .15s}
.toc a:hover{color:var(--accent)}
.legal-section{margin-bottom:2.75rem;padding-bottom:2.75rem;border-bottom:1px solid var(--border)}
.legal-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.section-num{display:inline-block;font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}
.section-title{font-family:var(--font-display);font-size:1.35rem;color:var(--ink);letter-spacing:-.02em;margin-bottom:.85rem;line-height:1.2}
.legal-section p{color:var(--muted);margin-bottom:.85rem;font-size:.9rem}
.legal-section p:last-child{margin-bottom:0}
.legal-section p strong{color:var(--ink);font-weight:500}
.legal-section ul,.legal-section ol{padding-left:1.5rem;margin-bottom:.85rem;display:flex;flex-direction:column;gap:.3rem}
.legal-section li{color:var(--muted);font-size:.9rem}
.legal-section li strong{color:var(--ink);font-weight:500}
.third-party-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:.85rem}
.third-party-table th{background:var(--subtle);padding:.6rem .85rem;text-align:left;font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border)}
.third-party-table td{padding:.65rem .85rem;border:1px solid var(--border);color:var(--muted);vertical-align:top}
.third-party-table td:first-child{font-weight:500;color:var(--ink)}
.highlight-box{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.25rem;margin-bottom:.85rem}
.highlight-box p{margin-bottom:0}
.contact-box{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-top:1rem}
.contact-box p{margin-bottom:.35rem}
.contact-box a{color:var(--accent);text-decoration:none}
.contact-box a:hover{text-decoration:underline}
.site-footer{border-top:1px solid var(--border);padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}
.site-footer a{color:var(--muted);text-decoration:none}
.site-footer a:hover{color:var(--accent)}
@media(max-width:640px){
    .site-header{padding:1rem}
    .legal-hero{padding:2rem 1rem}
    .content-wrap{padding:2rem 1rem 4rem}
    .site-footer{padding:1rem;flex-direction:column;gap:.5rem}
    .third-party-table{font-size:.75rem}
}

/* ─── LOGIN ─── */
body.page-login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem;background:var(--subtle)}
.login-logo{margin-bottom:2rem;text-align:center}
.login-logo a{font-family:var(--font-display);font-size:1.8rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.login-logo a span{color:var(--accent)}
.login-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:420px}
.login-header{margin-bottom:1.75rem}
.login-header h1{font-family:var(--font-display);font-size:1.6rem;font-weight:400;color:var(--ink);margin-bottom:.25rem;letter-spacing:-.01em}
.login-header p{font-size:.85rem;color:var(--muted)}
.alert-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}
.alert-ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.alert-icon{flex-shrink:0;margin-top:1px;font-style:normal}
.form-group{margin-bottom:1.1rem}
label{display:block;font-size:.82rem;font-weight:500;color:var(--ink);margin-bottom:.4rem}
input[type="email"],input[type="password"]{width:100%;padding:.7rem .9rem;border:1px solid var(--border);border-radius:8px;background:var(--white);color:var(--ink);font-family:var(--font-body);font-size:.95rem;transition:border-color .2s,box-shadow .2s;appearance:none}
input[type="email"]:focus,input[type="password"]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,92,255,.1)}
input:disabled{background:var(--subtle);color:var(--muted);cursor:not-allowed}
input.invalid{border-color:var(--danger)}
.forgot-row{display:flex;justify-content:flex-end;margin-top:.35rem}
.forgot-row a{font-size:.78rem;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.forgot-row a:hover{color:var(--accent);border-color:var(--accent)}
.btn-submit{width:100%;padding:.85rem;margin-top:.5rem;background:var(--ink);color:var(--white);font-family:var(--font-body);font-size:.95rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background .2s,transform .15s}
.btn-submit:hover:not(:disabled){background:var(--accent);transform:translateY(-1px)}
.btn-submit:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;transform:none}
.attempts-bar{display:flex;align-items:center;gap:.6rem;margin-top:.85rem}
.attempts-dots{display:flex;gap:4px}
.attempts-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}
.attempts-dot.active{background:var(--accent)}
.attempts-dot.used{background:var(--danger-border)}
.attempts-label{font-size:.72rem;color:var(--muted)}
.divider{display:flex;align-items:center;gap:.75rem;margin:1.75rem 0 1.25rem;font-size:.78rem;color:var(--muted)}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border)}
.first-login{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:1.1rem}
.first-login-title{font-size:.82rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}
.first-login-sub{font-size:.78rem;color:var(--muted);margin-bottom:.85rem;line-height:1.5}
.first-login .form-group{margin-bottom:.75rem}
.first-login input[type="email"]{font-size:.875rem;padding:.65rem .85rem}
.first-login .btn-invite{width:100%;padding:.7rem;background:var(--subtle);color:var(--ink);font-family:var(--font-body);font-size:.875rem;font-weight:500;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s}
.first-login .btn-invite:hover{background:var(--border)}
.login-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border);text-align:center;font-size:.82rem;color:var(--muted)}
.login-footer a{color:var(--accent);text-decoration:none;font-weight:500}
.login-footer a:hover{text-decoration:underline}
.page-footer{margin-top:2rem;font-size:.75rem;color:var(--muted);text-align:center}
.page-footer a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border);transition:color .2s}
.page-footer a:hover{color:var(--ink)}

/* ─── ANIMATIONS ─── */
.fade-up { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.fade-up.visible { opacity: 1; transform: none; }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
    .hero-inner { grid-template-columns: 1fr; }
    .hero-visual { display: none; }
    .steps-grid { grid-template-columns: 1fr; }
    .features-layout { grid-template-columns: 1fr; }
    .features-visual { display: none; }
    .sectors-grid { grid-template-columns: 1fr 1fr; }
    .testi-grid { grid-template-columns: 1fr; }
    .trust-grid { grid-template-columns: 1fr 1fr; }
    .faq-layout { grid-template-columns: 1fr; gap: 2rem; }
    .nav-links { display: none; }
    .comp-table { font-size: .78rem; }
}
@media (max-width: 600px) {
    .sectors-grid { grid-template-columns: 1fr; }
    .trust-grid { grid-template-columns: 1fr; }
    .hero { padding: 3rem 0 3rem; }
}