@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;700&family=Noto+Serif+KR:wght@500;700&display=swap');

/* =========== TOKENS =========== */
:root {
  --bg-void:#07060a; --bg-stone:#13100d; --bg-card:#1c1812; --bg-raised:#241f18;
  --border-iron:#3a3228; --border-blade:#524637;
  --fg-parchment:#f0e4ce; --fg-ash:#b8ac95; --fg-smoke:#7a7060;
  --accent-gold:#c9a876; --accent-gold-bright:#e4c48a;
  --accent-blood:#8b0000; --accent-blood-bright:#b91c1c;
  --accent-ember:#d97706; --accent-moss:#4d7c3a; --accent-steel:#7c93a8;
  --font-heading:'Cormorant Garamond','Noto Serif KR',Georgia,serif;
  --font-body:'Inter','Noto Sans KR',-apple-system,system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --radius-sm:3px; --radius-md:5px; --radius-lg:8px;
  --grain-opacity:0.035;
}

* { box-sizing:border-box; }
html,body {
  margin:0; padding:0;
  background:var(--bg-void); color:var(--fg-parchment);
  font-family:var(--font-body); font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

/* Grain overlay */
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:9000;
  opacity:var(--grain-opacity); mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>");
}

/* =========== UTILITY =========== */
.mono { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.caps { text-transform:uppercase; letter-spacing:.14em; font-size:11px; color:var(--fg-smoke); font-weight:600; }
.muted { color:var(--fg-smoke); }
.small { font-size:12px; }
.flex { display:flex; align-items:center; gap:10px; }
.adena { color:var(--accent-gold); }
.ok { color:var(--accent-moss); }
.err { color:var(--accent-blood-bright); }

::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:var(--bg-void); }
::-webkit-scrollbar-thumb { background:var(--border-iron); border-radius:2px; }
::-webkit-scrollbar-thumb:hover { background:var(--border-blade); }

/* =========== BUTTONS =========== */
button, .btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-heading); text-transform:uppercase; letter-spacing:.18em;
  font-size:12px; padding:12px 18px; border-radius:var(--radius-sm); border:0; cursor:pointer;
  transition:180ms ease-out;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
  background:var(--accent-gold); color:var(--bg-void); font-weight:600;
}
button:hover, .btn-primary:hover {
  background:var(--accent-gold-bright);
  box-shadow:0 0 20px -4px rgba(201,168,118,0.4), inset 0 0 0 1px rgba(255,255,255,0.1);
}
.btn-primary { background:var(--accent-gold); color:var(--bg-void); }
.btn-secondary, button.secondary {
  background:transparent; border:1px solid var(--border-blade); color:var(--fg-parchment);
}
.btn-secondary:hover, button.secondary:hover {
  background:var(--bg-raised); border-color:var(--accent-gold); color:var(--accent-gold-bright);
}
.btn-danger, button.danger {
  background:var(--accent-blood); color:var(--fg-parchment);
}
.btn-danger:hover, button.danger:hover {
  background:var(--accent-blood-bright);
}
.btn-ghost {
  background:transparent; color:var(--fg-ash);
}
.btn-ghost:hover { color:var(--fg-parchment); background:var(--bg-raised); }
button.success, .btn-success {
  background:var(--accent-moss); color:var(--fg-parchment);
}
button.success:hover, .btn-success:hover {
  background:#5e8f48;
}
.btn.full, button.full { width:100%; }
.btn.sm, button.sm { padding:7px 11px; font-size:10px; letter-spacing:.16em; }
.btn.xs, button.xs { padding:5px 9px; font-size:9px; letter-spacing:.14em; }

/* =========== INPUTS =========== */
input[type=text], input[type=password], input[type=email], input[type=number],
input[type=date], input[type=datetime-local],
select, textarea, .input, .select, .textarea {
  width:100%; background:var(--bg-void);
  border:1px solid var(--border-iron); color:var(--fg-parchment);
  padding:11px 13px; border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:14px;
  outline:none; transition:150ms;
}
input:focus, select:focus, textarea:focus {
  border-color:var(--accent-gold);
  box-shadow:0 0 0 3px rgba(201,168,118,0.15);
}
input::placeholder, textarea::placeholder { color:var(--fg-smoke); }
textarea { min-height:64px; resize:vertical; font-family:var(--font-mono); }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.field label {
  font-family:var(--font-heading); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-ash);
}

/* =========== HEADINGS =========== */
h1, h2, h3, h4 {
  font-family:var(--font-heading); font-weight:500;
  color:var(--fg-parchment); letter-spacing:.04em;
}
h1 { font-size:20px; letter-spacing:.2em; text-transform:uppercase; }
h2 { font-size:16px; letter-spacing:.24em; text-transform:uppercase; margin:0 0 14px; }
h3 { font-size:13px; letter-spacing:.22em; text-transform:uppercase; margin:0; }

/* =========== CARD =========== */
.card, .section-card {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:20px;
}
.section { margin-bottom:28px; }
.section-head {
  display:flex; align-items:baseline; gap:14px;
  margin:0 0 14px; padding:0 4px; flex-wrap:wrap;
}
.section-head h2 { margin:0; font-weight:500; font-size:16px; letter-spacing:.24em; }
.section-head .sub {
  color:var(--fg-smoke); font-size:11px;
  font-family:var(--font-mono); letter-spacing:.12em;
}
.section-card .sc-head {
  padding:14px 18px; border-bottom:1px solid var(--border-iron);
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.section-card .sc-head h3 { margin:0; font-weight:500; }
.section-card .sc-head .count {
  font-family:var(--font-mono); font-size:11px; color:var(--fg-smoke); letter-spacing:.12em;
}
.section-card .sc-head .action { margin-left:auto; }
.section-card { padding:0; overflow:hidden; }
.section-card .sc-body { padding:16px 18px; }

/* =========== BADGES (rune style) =========== */
.badge {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-heading); font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  padding:3px 9px 3px 8px; border-radius:2px;
  border:1px solid var(--border-iron); background:var(--bg-void); color:var(--fg-ash);
}
.badge::before {
  content:""; width:6px; height:6px; border-radius:50%; background:var(--fg-smoke);
}
.badge.pending, .badge.scheduled {
  color:var(--accent-ember); border-color:rgba(217,119,6,0.4);
}
.badge.pending::before, .badge.scheduled::before {
  background:var(--accent-ember); box-shadow:0 0 6px var(--accent-ember);
}
.badge.approved, .badge.completed {
  color:var(--accent-gold-bright); border-color:rgba(201,168,118,0.4);
}
.badge.approved::before, .badge.completed::before { background:var(--accent-gold); }
.badge.active {
  color:var(--accent-moss); border-color:rgba(77,124,58,0.4);
}
.badge.active::before { background:var(--accent-moss); }
.badge.rejected, .badge.flagged {
  color:var(--accent-blood-bright); border-color:rgba(185,28,28,0.4);
}
.badge.rejected::before, .badge.flagged::before {
  background:var(--accent-blood-bright); box-shadow:0 0 6px var(--accent-blood-bright);
}

/* tab badges */
.tab-badge {
  background:var(--accent-blood); color:#fff5e8;
  font-family:var(--font-mono); font-size:10px;
  padding:1px 6px; border-radius:2px; min-width:18px; text-align:center;
  margin-left:4px;
}
.tab-badge:empty { display:none; }

/* inline status pill */
.status-scheduled { color:var(--accent-ember); }
.status-active { color:var(--accent-moss); }
.status-completed { color:var(--accent-gold-bright); }
.status-approved { color:var(--accent-gold-bright); }
.status-flagged { color:var(--accent-blood-bright); }
.status-rejected { color:var(--accent-blood-bright); }

.pill {
  display:inline-block; background:var(--bg-raised); padding:2px 7px; border-radius:2px;
  font-size:9px; font-family:var(--font-heading); letter-spacing:.18em; text-transform:uppercase;
  color:var(--fg-smoke); border:1px solid var(--border-iron); margin:0.15rem;
}

/* =========== TABLES =========== */
table, .rtable {
  width:100%; border-collapse:collapse; font-size:13px; margin-top:0.5rem;
}
table thead th, .rtable thead th,
table tr:first-child th, table th {
  text-align:left; padding:10px 14px;
  background:var(--bg-stone);
  font-family:var(--font-heading); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-smoke); font-weight:600;
  border-bottom:1px solid var(--border-iron);
}
table tbody td, .rtable tbody td, table td {
  padding:12px 14px; border-bottom:1px solid var(--border-iron);
  color:var(--fg-parchment); vertical-align:middle;
}
table tr:hover, .rtable tbody tr:hover { background:var(--bg-raised); }
table tr:last-child td { border-bottom:0; }
.rtable .num, table .num { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.rtable .adena, table .adena { color:var(--accent-gold); font-weight:500; }

/* =========== EMPTY STATE =========== */
.empty-state {
  padding:48px 24px; text-align:center;
  background:var(--bg-card);
  border:1px dashed var(--border-iron); border-radius:var(--radius-md);
  display:flex; flex-direction:column; align-items:center;
  margin:0.5rem 0;
}
.empty-state svg {
  width:64px; height:64px; margin:0 0 16px;
  stroke:var(--border-blade); fill:none;
  stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round;
  opacity:.95; display:block;
}
.empty-state .et {
  font-family:var(--font-heading); font-size:13px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-ash); margin-bottom:8px;
}
.empty-state .es {
  font-size:12px; color:var(--fg-smoke); max-width:440px;
  margin:0 auto 12px; line-height:1.7;
}
.empty-state .actions { margin-top:8px; display:flex; gap:10px; }

.empty-row {
  text-align:center; padding:40px 20px !important; color:var(--fg-smoke);
}
.empty-row .inner { display:flex; flex-direction:column; align-items:center; }
.empty-row svg {
  width:48px; height:48px; stroke:var(--border-blade); fill:none;
  stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; margin-bottom:12px;
}
.empty-row .et {
  font-family:var(--font-heading); font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-ash); margin-bottom:6px;
}
.empty-row .es {
  font-size:12px; color:var(--fg-smoke); max-width:420px; line-height:1.7;
}

/* =========== HEADER (admin horizontal nav fallback) =========== */
header {
  background:var(--bg-stone);
  padding:14px 32px; border-bottom:1px solid var(--border-iron);
}
header h1 {
  margin:0; font-size:16px; letter-spacing:.22em;
  color:var(--fg-parchment); font-weight:500;
}
header nav { margin-top:10px; display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
header nav a {
  color:var(--fg-ash); padding:8px 14px; text-decoration:none;
  font-family:var(--font-heading); font-size:10px;
  letter-spacing:.2em; text-transform:uppercase;
  border-radius:var(--radius-sm); transition:150ms;
}
header nav a:hover, header nav a.active {
  color:var(--accent-gold-bright); background:var(--bg-card);
}
header nav a#logout { margin-left:auto; color:var(--fg-smoke); }
header nav a#logout:hover { color:var(--accent-blood-bright); }
.header-row { display:flex; align-items:center; gap:14px; }
.lang-selector { margin-left:auto; }
.lang-selector-top { position:absolute; top:16px; right:18px; }
.lang-select {
  background:var(--bg-void); color:var(--fg-parchment);
  border:1px solid var(--border-iron); padding:6px 10px; border-radius:var(--radius-sm);
  font-size:12px; font-family:var(--font-body);
}
.lang-switch {
  display:flex; background:var(--bg-void); border:1px solid var(--border-iron);
  border-radius:var(--radius-sm); overflow:hidden;
}
.lang-switch button {
  background:transparent; border:0; color:var(--fg-smoke);
  font-family:var(--font-heading); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; padding:7px 12px; cursor:pointer;
  box-shadow:none;
}
.lang-switch button.on {
  background:var(--bg-raised); color:var(--accent-gold-bright);
  box-shadow:inset 0 -2px 0 var(--accent-gold);
}

main {
  padding:28px 32px 64px; max-width:1600px; margin:0 auto;
}
.tab { display:none; }
.tab.active { display:block; }

/* =========== LOGIN PAGE =========== */
body.login-body { min-height:100vh; }
.login-shell {
  min-height:100vh; display:grid; grid-template-columns:1fr 1fr;
  background:var(--bg-void); position:relative; overflow:hidden;
}
.login-art {
  position:relative;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(201,168,118,0.12), transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(139,0,0,0.15), transparent 55%),
    linear-gradient(180deg,#0b0907 0%,#050403 100%);
  border-right:1px solid var(--border-iron); padding:48px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.login-art::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  opacity:0.09; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.8'/></svg>");
}
.login-brand {
  display:flex; align-items:center; gap:14px;
  position:relative; z-index:1;
}
.login-brand .mark {
  width:44px; height:44px; border:1px solid var(--accent-gold);
  border-radius:2px; display:grid; place-items:center;
  background:rgba(201,168,118,0.06);
}
.login-brand .mark svg {
  width:22px; height:22px; stroke:var(--accent-gold); fill:none; stroke-width:1.5;
}
.login-brand .t1 {
  font-family:var(--font-heading); font-size:22px; color:var(--fg-parchment);
  letter-spacing:.18em; text-transform:uppercase;
}
.login-brand .t2 {
  font-family:var(--font-heading); font-size:10px; color:var(--fg-smoke);
  letter-spacing:.4em; text-transform:uppercase; margin-top:3px;
}
.login-hero { position:relative; z-index:1; }
.login-hero h1 {
  font-family:var(--font-heading); font-weight:700; font-size:56px; line-height:1.05;
  color:var(--fg-parchment); margin:0 0 20px; letter-spacing:.02em; text-transform:none;
}
.login-hero h1 .em {
  color:var(--accent-gold); display:block;
  font-style:italic; font-weight:500; font-size:38px; margin-top:4px;
}
.login-hero p {
  color:var(--fg-ash); font-size:15px; max-width:440px; line-height:1.6;
}
.login-footstrip {
  position:relative; z-index:1; display:flex; gap:28px;
  color:var(--fg-smoke); font-family:var(--font-mono); font-size:11px;
}
.login-footstrip .kbd { color:var(--accent-gold); }
.login-form-wrap {
  display:grid; place-items:center; padding:48px; background:var(--bg-stone);
  position:relative;
}
.login-card {
  width:100%; max-width:440px;
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-top:2px solid var(--accent-gold); border-radius:var(--radius-md);
  padding:36px 32px 28px;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.8);
}
.login-card h2 {
  font-family:var(--font-heading); font-size:20px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--fg-parchment); margin:0 0 6px;
}
.login-card .sub {
  color:var(--fg-smoke); font-size:12px; margin-bottom:24px;
  font-family:var(--font-mono); letter-spacing:.1em;
}
.login-tabs {
  display:flex; gap:4px; margin-bottom:20px;
  background:var(--bg-void); padding:4px; border-radius:var(--radius-sm);
  border:1px solid var(--border-iron);
}
.login-tab {
  flex:1; background:transparent; border:0; color:var(--fg-smoke);
  font-family:var(--font-heading); font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; padding:8px 10px; cursor:pointer; border-radius:2px;
  box-shadow:none;
}
.login-tab.active {
  background:var(--bg-card); color:var(--fg-parchment);
  box-shadow:inset 0 0 0 1px var(--border-iron);
}
.login-form-group { display:flex; flex-direction:column; gap:12px; margin-bottom:10px; }
.login-form-group label {
  display:block; color:var(--fg-ash); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; margin-bottom:5px;
  font-family:var(--font-heading);
}
.login-card .btn, .login-card button#btn-login { width:100%; margin-top:12px; }
.login-card .meta {
  display:flex; justify-content:space-between; align-items:center;
  margin-top:22px; font-size:11px; color:var(--fg-smoke);
}
.login-card .meta a { color:var(--accent-steel); text-decoration:none; }
.login-card .meta a:hover { color:var(--accent-gold-bright); }
.login-link { font-size:11px; color:var(--fg-smoke); font-family:var(--font-mono); margin-top:10px; }
.login-link a { color:var(--accent-steel); text-decoration:none; }
.login-link a:hover { color:var(--accent-gold-bright); }
.success-box {
  background:var(--bg-void); border:1px solid var(--accent-moss);
  border-radius:var(--radius-sm); padding:16px; margin-bottom:10px;
}
.success-box p { margin:6px 0; font-size:13px; color:var(--fg-parchment); }
.btn-copy {
  padding:4px 8px; font-size:9px; letter-spacing:.12em;
  background:var(--bg-raised); color:var(--fg-ash); border:1px solid var(--border-iron);
}
.btn-copy:hover { background:var(--bg-card); color:var(--accent-gold); }
#err, .err-msg { color:var(--accent-blood-bright); font-size:12px; margin:8px 0; min-height:16px; }

/* =========== CLIENT PANEL =========== */
.client-shell { background:var(--bg-void); min-height:100vh; }
.client-header {
  position:sticky; top:0; z-index:50;
  background:var(--bg-stone); border-bottom:1px solid var(--border-iron);
  padding:14px 32px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;
}
.client-header .brand { display:flex; align-items:center; gap:11px; }
.client-header .brand .mark {
  width:30px; height:30px; border:1px solid var(--accent-gold);
  border-radius:2px; display:grid; place-items:center;
}
.client-header .brand .mark svg {
  width:15px; height:15px; stroke:var(--accent-gold); fill:none; stroke-width:1.5;
}
.client-header .brand .name {
  font-family:var(--font-heading); font-size:14px; color:var(--fg-parchment);
  letter-spacing:.22em; text-transform:uppercase;
}
.client-header .who {
  margin-left:16px; padding-left:16px; border-left:1px solid var(--border-iron);
  font-size:12px; color:var(--fg-ash);
}
.client-header .who .who-name {
  color:var(--fg-parchment); font-weight:500;
}
.client-header .who .who-role {
  color:var(--fg-smoke); font-size:10px;
  letter-spacing:.2em; text-transform:uppercase; margin-top:2px;
}
.client-header .hspacer { flex:1; }
.client-header .period {
  display:flex; background:var(--bg-void); border:1px solid var(--border-iron);
  border-radius:var(--radius-sm); overflow:hidden;
}
.client-header .period button {
  background:transparent; border:0; color:var(--fg-smoke);
  font-family:var(--font-heading); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; padding:9px 14px; cursor:pointer;
  box-shadow:none;
}
.client-header .period button.on, .client-header .period button.active {
  background:var(--bg-raised); color:var(--accent-gold-bright);
  box-shadow:inset 0 -2px 0 var(--accent-gold);
}

.client-body {
  padding:28px 32px 64px; max-width:1400px; margin:0 auto;
}

/* Rental hero */
.rental-hero {
  position:relative;
  background:
    radial-gradient(circle at 22% 28%, rgba(201,168,118,0.22), transparent 58%),
    radial-gradient(circle at 80% 120%, rgba(139,0,0,0.18), transparent 55%),
    var(--bg-card);
  border:1px solid var(--border-iron); border-top:2px solid var(--accent-gold);
  border-radius:var(--radius-lg);
  padding:32px 36px; margin-bottom:28px; overflow:hidden;
  display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center;
}
.rental-hero.empty-variant {
  border-top-color:var(--border-blade); background:var(--bg-card);
}
.rental-hero.low {
  border-top-color:var(--accent-blood-bright);
  animation:lowpulse 2.4s ease-in-out infinite;
}
@keyframes lowpulse {
  0%,100% { box-shadow:0 0 0 rgba(185,28,28,0); }
  50% { box-shadow:0 0 30px -4px rgba(185,28,28,0.35); }
}
.rental-hero::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>");
  opacity:calc(var(--grain-opacity) * 2); mix-blend-mode:overlay;
}
.rental-hero.empty-variant::after { opacity:0; }
.rental-hero > * { position:relative; z-index:1; }
.rl-label {
  font-family:var(--font-heading); letter-spacing:.32em; text-transform:uppercase;
  font-size:10px; color:var(--fg-smoke); margin-bottom:12px;
}
.rl-value {
  font-family:var(--font-heading); font-weight:600; font-size:72px; line-height:1;
  color:var(--accent-gold-bright); letter-spacing:.02em;
  text-shadow:0 0 40px rgba(228,196,138,0.25);
}
.rl-value.dim { color:var(--fg-smoke); text-shadow:none; }
.rl-value.low { color:var(--accent-blood-bright); }
.rl-value .unit {
  font-size:18px; color:var(--fg-ash); margin-left:10px;
  letter-spacing:.2em; text-transform:uppercase; font-weight:500;
}
.rl-meta { display:flex; gap:24px; margin-top:20px; flex-wrap:wrap; }
.rl-meta .item { font-size:12px; color:var(--fg-ash); }
.rl-meta .item b {
  display:block; color:var(--fg-parchment);
  font-family:var(--font-mono); font-size:16px; margin-top:3px;
}
.rl-meta .item.dim b { color:var(--fg-smoke); }
.rl-meta .item.good b { color:var(--accent-moss); }
.rl-meta .item.bad b { color:var(--accent-blood-bright); }
.rl-actions { display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }
.rl-gauge {
  width:180px; height:180px; position:relative; display:grid; place-items:center;
}
.rl-gauge svg {
  width:100%; height:100%; transform:rotate(-90deg);
}
.rl-gauge .track { fill:none; stroke:var(--border-iron); stroke-width:6; }
.rl-gauge .fill {
  fill:none; stroke:var(--accent-gold); stroke-width:6; stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(201,168,118,0.4));
  transition:stroke-dasharray 300ms ease-out;
}
.rl-gauge.low .fill { stroke:var(--accent-blood-bright); filter:drop-shadow(0 0 6px rgba(185,28,28,0.4)); }
.rl-gauge .pct {
  position:absolute; font-family:var(--font-heading); font-size:26px; color:var(--fg-parchment);
  text-align:center;
}
.rl-gauge .pct.dim { color:var(--fg-smoke); }
.rl-gauge .pct .s {
  font-size:11px; color:var(--fg-smoke); letter-spacing:.2em;
  text-transform:uppercase; display:block; text-align:center; margin-top:2px;
}
.rental-empty-caption {
  margin-top:18px; font-size:12px; color:var(--fg-smoke); font-family:var(--font-mono);
}

/* Accounts grid */
.accounts-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.acc-card {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:18px;
  transition:180ms ease-out; position:relative; overflow:hidden;
}
.acc-card:hover {
  border-color:var(--border-blade); background:var(--bg-raised);
  transform:translateY(-1px);
  box-shadow:0 20px 40px -20px rgba(0,0,0,0.6);
}
.acc-card .acc-top {
  display:flex; justify-content:space-between; align-items:flex-start; gap:10px;
}
.acc-card .acc-code {
  font-family:var(--font-heading); font-size:18px; color:var(--fg-parchment); letter-spacing:.1em;
}
.acc-card .acc-adena { margin-top:14px; }
.acc-card .acc-adena .lbl {
  font-size:10px; text-transform:uppercase; letter-spacing:.2em;
  color:var(--fg-smoke); font-family:var(--font-heading);
}
.acc-card .acc-adena .val {
  font-family:var(--font-heading); font-size:28px; color:var(--accent-gold);
  margin-top:4px; letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.acc-card .acc-adena .val .u {
  font-size:11px; color:var(--fg-smoke); margin-left:4px;
  letter-spacing:.2em; text-transform:uppercase; font-weight:500;
}
.acc-card .acc-meta {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;
  margin-top:16px; padding-top:14px; border-top:1px solid var(--border-iron);
}
.acc-card .acc-meta .ml {
  font-size:10px; text-transform:uppercase; letter-spacing:.18em;
  color:var(--fg-smoke); font-family:var(--font-heading);
}
.acc-card .acc-meta .mv {
  font-family:var(--font-mono); font-size:14px; color:var(--fg-parchment); margin-top:2px;
}
.acc-card .acc-meta .mv.xp { color:var(--accent-moss); }
.acc-card .acc-footer {
  display:flex; justify-content:space-between; align-items:center;
  margin-top:14px; padding-top:12px; border-top:1px solid var(--border-iron);
  gap:12px;
}
.acc-card .xpbar {
  flex:1; height:4px; background:var(--bg-void);
  border-radius:2px; overflow:hidden;
}
.acc-card .xpbar i {
  display:block; height:100%; background:linear-gradient(90deg,var(--accent-moss),#6fa453);
  transition:width 300ms ease-out;
}
.acc-card .owner-history-btn {
  padding:6px 10px; background:transparent; color:var(--accent-gold);
  font-family:var(--font-heading); font-size:10px; letter-spacing:.14em;
  border:0; box-shadow:none;
}
.acc-card .owner-history-btn:hover {
  background:var(--bg-raised); color:var(--accent-gold-bright);
}

/* =========== LIVE =========== */
.live-section {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:18px; position:relative;
}
.live-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(105deg,#8b0000 0%,#b91c1c 60%,transparent 100%);
  padding:4px 12px 4px 10px; border-radius:2px;
  font-family:var(--font-heading); font-size:10px; letter-spacing:.3em;
  text-transform:uppercase; color:#fff5e8;
}
.live-badge.dim { background:var(--bg-raised); color:var(--fg-smoke); }
.live-dot {
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:#ff3838; box-shadow:0 0 8px #ff3838;
  animation:bloodpulse 1.4s ease-in-out infinite;
  vertical-align:middle;
}
.live-badge.dim .live-dot {
  background:var(--fg-smoke); box-shadow:none; animation:none;
}
@keyframes bloodpulse {
  0%,100% { opacity:.6; transform:scale(1); }
  50% { opacity:1; transform:scale(1.3); }
}
.live-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
}
.live-card {
  background:var(--bg-void); border:1px solid var(--border-iron);
  border-radius:var(--radius-sm); overflow:hidden;
}
.live-card .thumb {
  aspect-ratio:16/9;
  background:
    repeating-linear-gradient(45deg, rgba(201,168,118,0.04) 0, rgba(201,168,118,0.04) 10px, transparent 10px, transparent 20px),
    linear-gradient(135deg,#211b14,#15110c);
  position:relative; border-bottom:1px solid var(--border-iron);
}
.live-card .thumb.no-img::after {
  content:"SCREENSHOT"; position:absolute; bottom:6px; left:8px;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.2em; color:var(--fg-smoke);
}
.live-card .thumb .ts {
  position:absolute; top:6px; right:8px;
  background:rgba(7,6,10,0.75); font-family:var(--font-mono); font-size:10px;
  color:var(--fg-ash); padding:2px 6px; border-radius:2px; z-index:1;
}
.live-card .thumb img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:brightness(0.92);
}
.live-card .lbody { padding:12px 14px; }
.live-card .lhead {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:8px; gap:8px;
}
.live-card .lcode {
  font-family:var(--font-heading); font-size:13px; color:var(--fg-parchment); letter-spacing:.12em;
}
.live-card .lworker {
  font-size:11px; color:var(--fg-ash); margin:4px 0;
}
.live-card .lnums {
  display:flex; gap:14px; margin-top:6px; flex-wrap:wrap;
}
.live-card .lnums .li {
  font-size:10px; color:var(--fg-smoke);
  font-family:var(--font-heading); letter-spacing:.18em; text-transform:uppercase;
}
.live-card .lnums .li b {
  display:block; font-family:var(--font-mono); font-size:13px; color:var(--fg-parchment); margin-top:2px;
}
.live-card .lnums .li.adena b { color:var(--accent-gold); }
.live-card .warn {
  margin-top:10px; padding:6px 9px;
  background:rgba(217,119,6,0.12); border-left:2px solid var(--accent-ember);
  color:var(--fg-ash); font-size:11px; font-family:var(--font-mono);
}
.snap-chart { padding:8px 0; }
.snap-chart svg { display:block; }
.snap-legend {
  display:flex; gap:14px; justify-content:center; font-size:10px;
  color:var(--fg-smoke); margin-top:4px; font-family:var(--font-heading);
  letter-spacing:.14em; text-transform:uppercase;
}
.snap-legend-item { display:inline-flex; align-items:center; gap:5px; }
.snap-legend-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.snap-timeline {
  max-height:240px; overflow-y:auto;
  display:flex; flex-direction:column; gap:4px;
  border-top:1px solid var(--border-iron);
  padding:8px 12px; margin-top:0;
}
.snap-item {
  background:var(--bg-card); border-left:2px solid var(--accent-steel);
  padding:6px 9px; border-radius:2px; font-size:11px;
}
.snap-item.snap-warn {
  border-left-color:var(--accent-ember); background:rgba(217,119,6,0.08);
}
.snap-head {
  color:var(--fg-smoke); font-family:var(--font-mono);
  font-size:10px; margin-bottom:2px;
}
.snap-body { line-height:1.45; color:var(--fg-ash); font-size:11px; }
.snap-body b { color:var(--fg-parchment); }
.snap-warnings {
  margin-top:3px; color:var(--accent-ember); font-size:10px;
}
.delta { margin-left:4px; font-size:10px; padding:1px 4px; border-radius:2px; }
.delta.pos { background:rgba(77,124,58,0.15); color:var(--accent-moss); }
.delta.neg { background:rgba(185,28,28,0.15); color:var(--accent-blood-bright); }
.snap-worker {
  padding:4px 0; color:var(--fg-ash); font-size:12px;
  border-bottom:1px solid var(--border-iron); margin-bottom:6px;
}

/* =========== FILTER BAR (shifts) =========== */
.filter-bar {
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin-bottom:8px;
}
.filter-bar select, .filter-bar input[type=text], .filter-bar input[type=date] {
  width:auto; min-width:140px; padding:7px 10px; font-size:12px;
}
.filter-bar input[type=text] { min-width:220px; flex:1; }
.filter-bar button {
  padding:7px 12px; font-size:10px; letter-spacing:.16em;
  background:transparent; border:1px solid var(--border-blade); color:var(--fg-parchment);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
}
.filter-bar button:hover { background:var(--bg-raised); border-color:var(--accent-gold); color:var(--accent-gold-bright); box-shadow:none; }
.row-actions { display:flex; gap:6px; flex-wrap:wrap; }

/* =========== TICKETS FORM =========== */
.form-grid {
  display:grid; grid-template-columns:repeat(12,1fr); gap:12px;
}
.form-grid .col-3 { grid-column:span 3; }
.form-grid .col-4 { grid-column:span 4; }
.form-grid .col-6 { grid-column:span 6; }
.form-grid .col-12 { grid-column:span 12; }
.hint {
  margin-top:12px; padding:12px 14px;
  background:rgba(124,147,168,0.06); border-left:2px solid var(--accent-steel);
  font-size:12px; color:var(--fg-ash); font-family:var(--font-mono); line-height:1.7;
}
.hint b { color:var(--fg-parchment); font-weight:600; }
.tz-hint {
  display:block; font-size:10px; color:var(--fg-smoke);
  font-family:var(--font-mono); margin-top:3px;
}
.ticket-msg {
  margin-top:10px; padding:8px 12px; border-radius:var(--radius-sm);
  font-size:12px; min-height:14px; font-family:var(--font-mono);
}
.ticket-msg.ok { background:rgba(77,124,58,0.12); color:var(--accent-moss); }
.ticket-msg.err { background:rgba(185,28,28,0.12); color:var(--accent-blood-bright); }

/* =========== HISTORY DRAWER =========== */
.history-drawer {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:20px; margin-top:14px;
}
.history-drawer .hh {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:14px; gap:10px; flex-wrap:wrap;
}
.history-drawer .htitle {
  font-family:var(--font-heading); font-size:14px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-parchment);
}
.history-drawer .chart-wrap {
  height:220px; margin-bottom:16px;
  background:var(--bg-void); border-radius:var(--radius-sm);
  padding:10px;
}

/* Hours card (client hours history) */
.hours-card {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:18px 22px;
}
.hours-balance-row {
  display:flex; justify-content:space-between; align-items:center;
  gap:20px; flex-wrap:wrap;
}
.hours-label {
  font-family:var(--font-heading); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-smoke);
}
.hours-value {
  font-family:var(--font-heading); font-size:28px; font-weight:700;
  color:var(--accent-gold); margin-top:4px;
}
.hours-value.low { color:var(--accent-blood-bright); }
#hours-history-table { width:100%; margin-top:8px; }
#hours-history-table th {
  background:var(--bg-void); color:var(--fg-smoke);
  text-align:left; padding:6px 10px;
}
#hours-history-table td {
  padding:6px 10px; border-bottom:1px solid var(--border-iron);
}
.hours-pos { color:var(--accent-moss); }
.hours-neg { color:var(--accent-blood-bright); }

/* =========== ADMIN SIDEBAR =========== */
.admin-shell {
  background:var(--bg-void); min-height:100vh;
  display:grid; grid-template-columns:220px 1fr;
}
.admin-shell[data-collapsed="true"] { grid-template-columns:56px 1fr; }
.sidebar {
  background:var(--bg-stone); border-right:1px solid var(--border-iron);
  position:sticky; top:0; height:100vh; overflow:hidden;
  display:flex; flex-direction:column;
}
.sidebar .sb-brand {
  padding:20px 18px 16px; display:flex; align-items:center; gap:11px;
  border-bottom:1px solid var(--border-iron);
}
.sidebar .sb-brand .mark {
  width:30px; height:30px; flex:0 0 30px;
  border:1px solid var(--accent-gold); border-radius:2px;
  display:grid; place-items:center;
}
.sidebar .sb-brand .mark svg {
  width:15px; height:15px; stroke:var(--accent-gold); fill:none; stroke-width:1.5;
}
.sidebar .sb-brand .name {
  font-family:var(--font-heading); font-size:13px; color:var(--fg-parchment);
  letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; overflow:hidden;
}
.sidebar .sb-brand .sub {
  font-family:var(--font-mono); font-size:9px; color:var(--fg-smoke); letter-spacing:.18em;
}
.sb-nav { flex:1; padding:12px 10px; overflow-y:auto; }
.sb-section-label {
  padding:14px 10px 6px; font-family:var(--font-heading); font-size:9px;
  letter-spacing:.3em; text-transform:uppercase; color:var(--fg-smoke);
}
.sb-item {
  display:flex; align-items:center; gap:12px; padding:9px 10px;
  margin-bottom:2px; border-radius:var(--radius-sm);
  color:var(--fg-ash); cursor:pointer; position:relative; font-size:12px;
  font-family:var(--font-heading); letter-spacing:.18em; text-transform:uppercase;
  border:0; background:transparent; width:100%; text-align:left; transition:150ms;
  box-shadow:none; text-decoration:none;
}
.sb-item svg {
  width:18px; height:18px; flex:0 0 18px;
  stroke:currentColor; fill:none; stroke-width:1.5;
}
.sb-item:hover, .sb-item.active {
  background:var(--bg-card); color:var(--fg-parchment);
}
.sb-item.active::before {
  content:""; position:absolute; left:-10px; top:6px; bottom:6px;
  width:2px; background:var(--accent-gold); border-radius:1px;
}
.sb-item .sb-badge {
  margin-left:auto; background:var(--accent-blood); color:#fff5e8;
  font-family:var(--font-mono); font-size:10px; padding:1px 6px;
  border-radius:2px; min-width:18px; text-align:center;
}
.sb-item .sb-badge:empty { display:none; }
.sb-item .label-text {
  flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.admin-shell[data-collapsed="true"] .sidebar .name,
.admin-shell[data-collapsed="true"] .sidebar .sub,
.admin-shell[data-collapsed="true"] .sidebar .sb-section-label,
.admin-shell[data-collapsed="true"] .sidebar .label-text,
.admin-shell[data-collapsed="true"] .sidebar .sb-badge { display:none; }
.admin-shell[data-collapsed="true"] .sidebar .sb-brand {
  justify-content:center; padding:16px 8px;
}
.sb-footer {
  padding:10px; border-top:1px solid var(--border-iron);
  display:flex; align-items:center; gap:10px;
}
.sb-footer .sb-user {
  display:flex; align-items:center; gap:10px; flex:1; min-width:0;
}
.sb-footer .ava {
  width:28px; height:28px; flex:0 0 28px; border-radius:2px;
  background:linear-gradient(135deg,#3a2c1d,#1c140b);
  border:1px solid var(--border-blade);
  display:grid; place-items:center;
  font-family:var(--font-heading); font-size:11px; color:var(--accent-gold);
}
.sb-footer .uinfo { font-size:11px; min-width:0; }
.sb-footer .uinfo .un {
  color:var(--fg-parchment); font-weight:500;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sb-footer .uinfo .ur {
  color:var(--fg-smoke); font-family:var(--font-heading);
  font-size:9px; letter-spacing:.2em; text-transform:uppercase;
}
.sb-footer .collapse-btn {
  background:transparent; border:1px solid var(--border-iron);
  color:var(--fg-ash); width:28px; height:28px; border-radius:2px;
  cursor:pointer; display:grid; place-items:center; padding:0;
  box-shadow:none;
}
.sb-footer .collapse-btn:hover {
  border-color:var(--accent-gold); color:var(--accent-gold);
}
.sb-footer .collapse-btn svg {
  width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:1.8;
}

.admin-main { min-width:0; }
.admin-topbar {
  padding:14px 28px; border-bottom:1px solid var(--border-iron);
  background:var(--bg-stone);
  display:flex; align-items:center; gap:18px;
  position:sticky; top:0; z-index:40;
}
.page-title h1 {
  font-family:var(--font-heading); font-size:20px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-parchment); margin:0; font-weight:500;
}
.page-title .crumb {
  font-family:var(--font-mono); font-size:10px; color:var(--fg-smoke);
  letter-spacing:.2em; text-transform:uppercase; margin-top:2px;
}
.admin-topbar .spacer { flex:1; }
.admin-topbar .search {
  display:flex; align-items:center; gap:8px;
  background:var(--bg-void); border:1px solid var(--border-iron);
  border-radius:var(--radius-sm); padding:7px 11px; width:260px;
}
.admin-topbar .search svg {
  width:14px; height:14px; stroke:var(--fg-smoke); fill:none; stroke-width:1.5;
}
.admin-topbar .search input {
  background:transparent; border:0; color:var(--fg-parchment);
  outline:none; width:100%; font-size:13px; font-family:var(--font-body);
  padding:0; box-shadow:none;
}
.admin-topbar .search input:focus { box-shadow:none; }
.admin-topbar .kbd {
  font-family:var(--font-mono); font-size:10px; color:var(--fg-smoke);
  background:var(--bg-raised); padding:2px 5px; border-radius:2px;
  border:1px solid var(--border-iron);
}
.admin-content { padding:24px 28px 64px; }

/* =========== STAT CARDS =========== */
.stats-grid, .stat-cards {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:12px; margin-bottom:24px;
}
.stat-card {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-top:2px solid var(--accent-steel); border-radius:var(--radius-md);
  padding:16px 18px; transition:180ms; position:relative; overflow:hidden;
}
.stat-card.gold { border-top-color:var(--accent-gold); }
.stat-card.moss, .stat-card.ongoing { border-top-color:var(--accent-moss); }
.stat-card.ember, .stat-card.flagged { border-top-color:var(--accent-ember); }
.stat-card.blood, .stat-card.unassigned { border-top-color:var(--accent-blood-bright); }
.stat-card.completed { border-top-color:var(--accent-gold); }
.stat-card:hover { transform:translateY(-1px); box-shadow:0 16px 40px -16px rgba(0,0,0,0.8); }
.stat-card .lbl, .stat-card .stat-label {
  font-family:var(--font-heading); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-smoke);
}
.stat-card .val, .stat-card .stat-value {
  font-family:var(--font-heading); font-variant-numeric:tabular-nums;
  font-size:34px; color:var(--fg-parchment); margin-top:6px; letter-spacing:.02em;
}
.stat-card.gold .val, .stat-card.gold .stat-value { color:var(--accent-gold); }
.stat-card.moss .val, .stat-card.moss .stat-value,
.stat-card.ongoing .val, .stat-card.ongoing .stat-value { color:var(--accent-moss); }
.stat-card.ember .val, .stat-card.ember .stat-value,
.stat-card.flagged .val, .stat-card.flagged .stat-value { color:var(--accent-ember); }
.stat-card.blood .val, .stat-card.blood .stat-value,
.stat-card.unassigned .val, .stat-card.unassigned .stat-value { color:var(--accent-blood-bright); }
.stat-card.completed .val, .stat-card.completed .stat-value { color:var(--accent-gold); }
.stat-card .delta {
  font-family:var(--font-mono); font-size:11px; color:var(--fg-smoke); margin-top:6px;
}
.stat-card .delta.up { color:var(--accent-moss); }
.stat-card .delta.down { color:var(--accent-blood-bright); }

.stat-filter { margin-bottom:14px; color:var(--fg-ash); font-size:12px; }
.stat-filter label { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-heading); letter-spacing:.16em; text-transform:uppercase; font-size:11px; }

/* =========== DASH ROW =========== */
.dash-row {
  display:grid; grid-template-columns:2fr 1fr; gap:18px; margin-bottom:18px;
}
.lb {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); overflow:hidden;
}
.lb-head {
  padding:14px 18px; border-bottom:1px solid var(--border-iron);
  display:flex; align-items:center; gap:10px;
}
.lb-head h3 { margin:0; font-weight:500; }
.lb-head svg {
  width:16px; height:16px; flex:0 0 16px;
  stroke:var(--accent-gold); fill:none; stroke-width:1.5;
}
.lb-row {
  display:grid; grid-template-columns:28px 1fr auto; gap:10px;
  align-items:center; padding:10px 18px;
  border-bottom:1px solid var(--border-iron);
}
.lb-row:last-child { border-bottom:0; }
.lb-rank {
  font-family:var(--font-heading); color:var(--fg-smoke);
  font-size:13px; text-align:center;
}
.lb-row:first-child .lb-rank { color:var(--accent-gold-bright); }
.lb-name {
  font-size:13px; color:var(--fg-parchment);
  display:flex; align-items:center; gap:10px;
}
.lb-val { font-family:var(--font-mono); color:var(--accent-gold); font-size:13px; }

/* Active shifts list */
#active-shifts .card {
  margin-bottom:10px; border-left:2px solid var(--accent-moss); padding:14px 16px;
}
#active-shifts .card.flagged {
  border-left-color:var(--accent-blood-bright);
}
.shift-actions { margin-top:10px; display:flex; gap:6px; }
.shift-actions button { font-size:10px; padding:6px 10px; }

/* Review */
.review-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.review-card, .review-item {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-radius:var(--radius-md); padding:16px; margin-bottom:10px;
}
.review-item { padding:0; overflow:hidden; }
.review-item .rhead {
  padding:12px 16px; border-bottom:1px solid var(--border-iron);
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.review-item .rhead .rworker {
  font-family:var(--font-heading); font-size:13px;
  letter-spacing:.14em; color:var(--fg-parchment);
}
.review-item .rhead .rtime {
  font-family:var(--font-mono); font-size:11px; color:var(--fg-smoke); margin-left:auto;
}
.review-item .rshots {
  display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border-iron);
}
.review-item .rshot {
  aspect-ratio:16/9;
  background:
    repeating-linear-gradient(45deg, rgba(201,168,118,0.04) 0, rgba(201,168,118,0.04) 10px, transparent 10px, transparent 20px),
    linear-gradient(135deg,#211b14,#15110c);
  position:relative;
}
.review-item .rshot img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.review-item .rshot .rtag {
  position:absolute; top:6px; left:8px;
  font-family:var(--font-heading); font-size:9px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--fg-smoke);
  background:rgba(7,6,10,0.7); padding:2px 6px; border-radius:2px; z-index:1;
}
.review-item .rnums {
  padding:12px 16px; display:grid;
  grid-template-columns:repeat(4,1fr); gap:14px;
  border-top:1px solid var(--border-iron);
}
.review-item .rnums .ll {
  font-family:var(--font-heading); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-smoke);
}
.review-item .rnums .vv {
  font-family:var(--font-mono); font-size:16px; color:var(--fg-parchment); margin-top:3px;
}
.review-item .rnums .diff .vv { color:var(--accent-blood-bright); }
.review-item .ractions {
  padding:10px 16px; border-top:1px solid var(--border-iron);
  display:flex; gap:8px;
}

/* =========== TOASTS =========== */
.toast-stack {
  position:fixed; bottom:20px; right:20px; z-index:9999;
  display:flex; flex-direction:column; gap:10px;
  pointer-events:none;
}
.toast {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-left:3px solid var(--accent-gold);
  padding:12px 14px; border-radius:var(--radius-sm);
  min-width:260px; max-width:380px;
  box-shadow:0 20px 40px -12px rgba(0,0,0,0.8);
  font-size:12px; color:var(--fg-parchment);
  animation:slidein 220ms ease-out;
  pointer-events:auto;
}
.toast.moss { border-left-color:var(--accent-moss); }
.toast.blood { border-left-color:var(--accent-blood); }
.toast.ember { border-left-color:var(--accent-ember); }
.toast.gold { border-left-color:var(--accent-gold); }
.toast .tt {
  font-family:var(--font-heading); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; margin-bottom:3px;
}
.toast .tb { color:var(--fg-ash); }
@keyframes slidein {
  from { transform:translateX(20px); opacity:0; }
  to { transform:translateX(0); opacity:1; }
}

/* =========== MODAL =========== */
.modal {
  position:fixed; inset:0; z-index:9990;
  display:flex; align-items:center; justify-content:center;
  background:rgba(7,6,10,0.85); backdrop-filter:blur(8px);
  animation:modalfade 180ms ease-out;
}
@keyframes modalfade {
  from { opacity:0; }
  to { opacity:1; }
}
.modal-box {
  background:var(--bg-card); border:1px solid var(--border-iron);
  border-top:2px solid var(--accent-gold);
  border-radius:var(--radius-md);
  padding:22px 24px; width:460px; max-width:90vw;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.9), 0 0 0 1px rgba(201,168,118,0.04);
  animation:modalpop 200ms ease-out;
}
@keyframes modalpop {
  from { transform:scale(0.96); opacity:0; }
  to { transform:scale(1); opacity:1; }
}
.modal-box h3 { margin:0 0 16px; }
.modal-box label {
  display:block; margin-bottom:12px; font-size:12px; color:var(--fg-ash);
  font-family:var(--font-heading); letter-spacing:.16em; text-transform:uppercase;
}
.modal-box input { margin-top:4px; }
.modal-actions {
  display:flex; gap:10px; margin-top:16px; justify-content:flex-end;
}

/* =========== RESPONSIVE =========== */
@media (max-width: 1200px) {
  .accounts-grid, .live-grid { grid-template-columns:repeat(2,1fr); }
  .dash-row { grid-template-columns:1fr; }
  .review-grid { grid-template-columns:1fr; }
}
@media (max-width: 1024px) {
  .admin-shell { grid-template-columns:56px 1fr; }
  .admin-shell .sidebar .name,
  .admin-shell .sidebar .sub,
  .admin-shell .sidebar .sb-section-label,
  .admin-shell .sidebar .label-text,
  .admin-shell .sidebar .sb-badge { display:none; }
  .admin-shell .sidebar .sb-brand { justify-content:center; padding:16px 8px; }
  .admin-shell .sidebar .sb-user { display:none; }
}
@media (max-width: 768px) {
  .login-shell { grid-template-columns:1fr; }
  .login-art { display:none; }
  .accounts-grid, .live-grid { grid-template-columns:1fr; }
  .rental-hero { grid-template-columns:1fr; text-align:center; }
  .rl-gauge { justify-self:center; }
  .stats-grid, .stat-cards { grid-template-columns:repeat(2,1fr); }
  .form-grid .col-3, .form-grid .col-4, .form-grid .col-6 { grid-column:span 12; }
  .client-header { padding:12px 16px; }
  .client-body, .admin-content { padding:16px; }
  main { padding:16px; }
  header { padding:12px 16px; }
  .admin-topbar .search { width:160px; }
}

/* flatpickr dark tweaks */
.flatpickr-calendar {
  background:var(--bg-card) !important;
  border:1px solid var(--border-iron) !important;
  box-shadow:0 20px 40px -12px rgba(0,0,0,0.8) !important;
}
.flatpickr-day.selected, .flatpickr-day.selected:hover {
  background:var(--accent-gold) !important;
  border-color:var(--accent-gold) !important;
  color:var(--bg-void) !important;
}
.flatpickr-day:hover {
  background:var(--bg-raised) !important;
}
