/* ══════════════════════════════════════════════════════════════════════════
   CoreFlow layout — gate, shell, pages, dialogs
   ══════════════════════════════════════════════════════════════════════ */

.brand-badge { width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,var(--cf-cyan),#8a2be2);display:flex;align-items:center;justify-content:center;box-shadow:0 0 22px rgba(0,180,255,.45);flex:none; }
.brand-badge.sm { width:30px;height:30px;border-radius:10px;box-shadow:0 0 18px rgba(0,180,255,.4); }
.avatar { width:28px;height:28px;border-radius:50%;background:linear-gradient(140deg,#8a2be2,var(--cf-cyan));display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;color:#0b0e14;flex:none; }
.icon-btn { width:28px;height:28px;border:none;border-radius:9px;background:rgba(147,151,171,.08);color:var(--color-neutral-400);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px; }
.icon-btn:hover { color:var(--color-text); }
.icon-btn.danger { background:rgba(255,0,122,.08);color:var(--cf-magenta-soft); }
.icon-btn.danger:hover { background:rgba(255,0,122,.2); }
.tag { display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase; }
.empty { padding:26px;text-align:center;color:var(--color-neutral-600);font-size:13px;border-radius:var(--radius-md);background:rgba(11,14,20,.4);box-shadow:inset 0 0 0 1px #1e2434; }
.panel-head { display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap; }
.grid-2 { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px; }
.inline-field { display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--color-neutral-500);font-family:var(--font-mono); }
.inline-field input[type=checkbox] { accent-color:var(--cf-cyan); }

/* — gate — */
.gate-root { position:relative;width:100vw;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:30px; }
.gate-glow { position:absolute;inset:-20%;background:radial-gradient(32% 42% at 20% 16%,rgba(0,114,255,.2),transparent 70%),radial-gradient(30% 40% at 82% 80%,rgba(138,43,226,.18),transparent 72%);filter:blur(40px);pointer-events:none; }
.gate-card { position:relative;width:760px;max-width:100%;max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:20px;padding:30px 32px 28px;border-radius:30px;background:linear-gradient(160deg,#171c2b,#101420 68%);box-shadow:0 0 0 1px rgba(0,240,255,.2),0 30px 70px rgba(0,0,0,.6);animation:cf-in .3s ease both; }
.step-pill { display:flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px; }
.step-num { width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px; }
.grid-zones { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px; }
.zone { display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:rgba(11,14,20,.6);box-shadow:0 0 0 1px #232839; }
.zone-txt { display:flex;flex-direction:column;gap:3px;flex:1;min-width:0; }
.zone-ctl { display:flex;align-items:center;gap:9px;flex:none; }
.zone-btn { width:30px;height:30px;border:none;border-radius:10px;background:rgba(147,151,171,.1);color:var(--color-neutral-300);font:inherit;font-size:16px;cursor:pointer; }
.zone-btn.plus { background:rgba(0,240,255,.1);color:var(--cf-cyan-soft); }
.zone-btn.plus:hover { background:rgba(0,240,255,.2); }
.zone-btn.minus:hover { background:rgba(255,0,122,.16); }
.zone-btn:disabled { opacity:.4;cursor:not-allowed; }
.gate-error { padding:11px 14px;border-radius:14px;background:rgba(255,0,122,.1);box-shadow:0 0 0 1px rgba(255,0,122,.4);font-size:12.5px;color:var(--cf-magenta-soft); }
.gate-foot { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--color-divider); }

/* — shell — */
.shell { position:relative;width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column; }
.shell-glow { position:absolute;inset:-30% -10% auto -10%;height:62%;background:radial-gradient(38% 58% at 18% 0%,rgba(0,114,255,.16),transparent 70%),radial-gradient(34% 52% at 84% 8%,rgba(138,43,226,.15),transparent 72%);filter:blur(30px);pointer-events:none; }
.topbar { position:relative;flex:none;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 22px;border-bottom:1px solid var(--color-divider);background:rgba(14,17,25,.88); }
.shell-body { position:relative;flex:1;min-height:0;display:flex; }
.sidebar { flex:none;width:208px;min-height:0;overflow-y:auto;padding:14px 12px;border-right:1px solid var(--color-divider);background:rgba(14,17,25,.6);display:flex;flex-direction:column;gap:4px; }
.nav-item { display:flex;align-items:center;gap:11px;padding:10px 12px;border:none;border-radius:12px;background:transparent;color:var(--color-neutral-400);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .16s,color .16s; }
.nav-item:hover { background:rgba(0,240,255,.07);color:var(--color-text); }
.nav-item.on { background:rgba(0,240,255,.1);box-shadow:inset 0 0 0 1px rgba(0,240,255,.28);color:var(--cf-cyan-soft); }
.nav-badge { flex:none;min-width:20px;padding:2px 6px;border-radius:999px;background:rgba(166,224,74,.14);box-shadow:0 0 0 1px rgba(166,224,74,.3);font-family:var(--font-mono);font-size:10px;color:var(--cf-lime);text-align:center; }
.content { flex:1;min-width:0;min-height:0;overflow-y:auto;padding:22px 26px 30px;display:flex;flex-direction:column;gap:20px; }
.page-head { display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap; }
.floor-switch { display:flex;gap:5px;flex-wrap:wrap;padding:5px;border-radius:18px;background:rgba(11,14,20,.7);box-shadow:0 0 0 1px #232839; }
.floor-btn { padding:7px 13px;border:none;border-radius:14px;background:transparent;color:var(--color-neutral-500);font:inherit;cursor:pointer;transition:background .16s,color .16s; }
.floor-btn:hover { color:var(--color-text); }
.floor-btn.on { background:rgba(0,240,255,.12);box-shadow:0 0 0 1px rgba(0,240,255,.3);color:var(--cf-cyan-soft); }

/* — kpis — */
.kpi-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px; }
.kpi { position:relative;overflow:hidden;padding:16px 18px;border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:9px; }
.kpi-glow { position:absolute;inset:auto -20% -60% 40%;height:110%;filter:blur(18px);pointer-events:none; }
.kpi-value { position:relative;font-family:var(--font-heading);font-weight:500;font-size:27px;letter-spacing:-.03em; }
.kpi-bar { position:relative;height:4px;border-radius:2px;background:#202638;overflow:hidden; }
.kpi-bar > div { height:100%;border-radius:2px;transition:width .9s cubic-bezier(.2,.7,.3,1); }

/* — rooms — */
.rooms-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px; }
.room-card { display:flex;flex-direction:column;gap:12px;padding:16px 17px 17px;border-radius:22px; }
.tv-row { display:flex;align-items:center;gap:12px;padding:11px 13px;border:none;border-radius:16px;background:rgba(11,14,20,.55);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:box-shadow .16s,transform .16s; }
.tv-row:hover:not(:disabled) { transform:translateY(-2px); }
.tv-row:disabled { cursor:not-allowed;opacity:.7; }
.tv-screen { flex:none;width:42px;height:30px;border-radius:6px;background:#0b0e14;display:flex;align-items:center;justify-content:center; }
.tv-screen.sm { width:34px;height:24px; }
.multi-row { display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 4px 2px 56px; }
.dev-row { display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 11px;border-radius:14px;background:rgba(11,14,20,.5);box-shadow:inset 0 0 0 1px #232839; }

/* — billiards — */
.tables-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px; }
.table-card { display:flex;flex-direction:column;gap:11px;padding:14px 15px 15px;border:none;border-radius:22px;background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:box-shadow .16s,transform .16s; }
.table-card:hover { transform:translateY(-3px); }
.cloth { position:relative;display:block;width:100%;aspect-ratio:2/1;border-radius:12px;background:radial-gradient(120% 120% at 50% 40%,#1f7a4d,#125e3a);box-shadow:inset 0 0 0 5px #2a2016,inset 0 0 26px rgba(0,0,0,.55); }
.cloth-inner { position:absolute;inset:12% 8%;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); }
.ball { position:absolute;width:11px;height:11px;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.55),inset -1px -1px 2px rgba(0,0,0,.35);transform:translate(-50%,-50%); }

/* — shift / cash — */
.cash-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px; }
.cash-card { display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:18px;background:rgba(11,14,20,.5);box-shadow:0 0 0 1px #232839; }
.op-row { display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;background:rgba(11,14,20,.4);box-shadow:inset 0 0 0 1px #1c2233;font-size:13px; }

/* — settings — */
.stab { display:flex;align-items:center;gap:9px;padding:9px 15px;border:none;border-radius:999px;background:rgba(11,14,20,.6);box-shadow:0 0 0 1px #232839;color:var(--color-neutral-500);font:inherit;font-size:13px;cursor:pointer;transition:background .16s,color .16s; }
.stab:hover { color:var(--color-text); }
.stab.on { background:rgba(0,240,255,.1);box-shadow:0 0 0 1px rgba(0,240,255,.3);color:var(--cf-cyan-soft); }
.tree-room { display:flex;flex-direction:column;gap:9px;padding:14px;border-radius:16px;background:rgba(11,14,20,.4);box-shadow:inset 0 0 0 1px #1c2233; }
.tree-tv { display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:rgba(11,14,20,.5); }
.tree-tables { display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--color-divider); }
.table-chip { display:inline-flex;align-items:center;gap:6px; }
.chips-inline { display:inline-flex;gap:5px;flex-wrap:wrap; }
.rate-fields { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.pack-edit { display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:rgba(11,14,20,.45); }
.matrix { width:100%;border-collapse:collapse;font-size:12px; }
.matrix th,.matrix td { padding:6px 10px;text-align:left;border-bottom:1px solid var(--color-divider);white-space:nowrap; }
.matrix th { font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-neutral-600); }

/* — devices — */
.hub-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px; }
.hub-card { display:flex;flex-direction:column;gap:11px;padding:15px 16px 16px;border-radius:20px;background:rgba(11,14,20,.4); }
.hub-icon { flex:none;width:34px;height:34px;border-radius:12px;background:rgba(0,240,255,.1);display:flex;align-items:center;justify-content:center; }
.dev-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px; }
.device-card { display:flex;flex-direction:column;gap:12px;padding:15px 16px;border-radius:20px;background:rgba(11,14,20,.4); }
.device-meta { display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;font-size:12px; }
.device-meta span { display:flex;flex-direction:column;gap:2px; }
.power-btn { width:36px;height:36px;border:none;border-radius:12px;background:rgba(147,151,171,.1);color:var(--color-neutral-400);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none; }
.power-btn.on { background:rgba(166,224,74,.14);box-shadow:0 0 0 1px rgba(166,224,74,.35);color:var(--cf-lime); }
.scenario-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px; }
.scenario { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:16px;background:rgba(11,14,20,.4);box-shadow:inset 0 0 0 1px #1c2233;cursor:pointer; }
.scenario input[type=checkbox] { accent-color:var(--cf-cyan);width:18px;height:18px; }

/* — stock — */
.stock { width:100%;border-collapse:collapse;font-size:13px; }
.stock th,.stock td { padding:9px 10px;text-align:left;border-bottom:1px solid var(--color-divider); }
.stock th { font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-neutral-600); }
.stock .chip { margin-left:6px; }

/* — dialog bits — */
.seg { display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:14px;background:rgba(11,14,20,.6);box-shadow:0 0 0 1px #232839; }
.seg-opt { padding:8px 14px;border:none;border-radius:10px;background:transparent;color:var(--color-neutral-500);font:inherit;font-size:12.5px;cursor:pointer;transition:background .16s,color .16s; }
.seg-opt:hover:not(:disabled) { color:var(--color-text); }
.seg-opt.on { background:rgba(0,240,255,.14);color:var(--cf-cyan-soft);box-shadow:0 0 0 1px rgba(0,240,255,.35); }
.seg-opt:disabled { opacity:.35;cursor:not-allowed; }
.sale-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px; }
.stepper { display:inline-flex;align-items:center;gap:9px; }
.pack-list { display:flex;flex-direction:column;gap:8px; }
.pack { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:none;border-radius:14px;background:rgba(11,14,20,.5);box-shadow:0 0 0 1px #232839;color:var(--color-text);font:inherit;text-align:left;cursor:pointer; }
.pack.on { box-shadow:0 0 0 1px rgba(0,240,255,.4);background:rgba(0,240,255,.06); }
.bar-list { display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto; }
.bar-item { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:12px;background:rgba(11,14,20,.45); }
.note-box { padding:12px 14px;border-radius:14px;background:rgba(11,14,20,.5);box-shadow:inset 0 0 0 1px #232839;font-size:12.5px;line-height:1.5;color:var(--color-neutral-400); }
.dialog-foot { display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--color-divider); }
.place-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:12px; }
.stat { display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:rgba(11,14,20,.5);box-shadow:inset 0 0 0 1px #232839; }
