:root {
  --blue: #2563eb;
  --blue-d: #1d4ed8;
  --blue-s: #4c8dff;
  --navy: #0b1220;
  --navy-2: #111827;
  --teal: #10b981;
  --red: #ef4444;
  --warn: #f59e0b;
  --bg: #f4f7fb;
  --card: #fff;
  --text: #0f172a;
  --muted: #64748b;
  --line: #e2e8f0;
  --side: 268px;
  --shadow: 0 10px 30px rgba(15, 23, 42, .06);
  --radius: 16px;
  --top-offset: 132px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html {
  margin: 0;
  min-height: 100%;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: manipulation;
}
body {
  margin: 0;
  min-height: 100%;
  height: auto;
  overflow-x: hidden;
  overflow-y: visible; /* scroll on html — dual overflow-y:auto breaks Android PWA */
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}
a { color: var(--blue); text-decoration: none; }
img.logo, img.logo-lg, img.logo-md, img.logo-side, img.logo-xs {
  display: block; border-radius: 0; object-fit: contain; background: transparent;
  box-shadow: none;
}
img.logo-lg { width: 96px; height: 96px; }
img.logo-md { width: 72px; height: 72px; margin: 0 auto 10px; }
img.logo-side { width: 46px; height: 46px; }
img.logo-print { width: 88px; height: 88px; object-fit: contain; background: transparent; box-shadow: none; }
img.avatar-logo { width: 40px; height: 40px; border-radius: 50%; box-shadow: none; object-fit: cover; object-position: center 20%; }

.sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--side);
  background: linear-gradient(180deg, #0b1220 0%, #111827 100%);
  padding: 20px 14px; overflow: hidden; z-index: 80;
  display: flex; flex-direction: column;
}
.side-top {
  flex: none; position: relative; z-index: 2;
  padding-bottom: 8px; margin-bottom: 2px;
  background: linear-gradient(180deg, #0b1220 70%, rgba(11,18,32,.92) 100%);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.side-scroll {
  flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  padding-right: 2px; margin-right: -2px;
  scrollbar-width: thin; scrollbar-color: rgba(148,163,184,.25) transparent;
}
.side-scroll::-webkit-scrollbar { width: 6px; }
.side-scroll::-webkit-scrollbar-thumb { background: rgba(148,163,184,.25); border-radius: 6px; }
.side-close {
  display: none; position: absolute; top: 12px; right: 10px; z-index: 2;
  width: 36px; height: 36px; border: 0; border-radius: 10px;
  background: rgba(255,255,255,.08); color: #fff; place-items: center; cursor: pointer;
}
.sidebar nav a[hidden], .sidebar .nav-label[hidden] { display: none !important; }
.brand { display: flex; gap: 12px; align-items: center; color: #fff; padding: 4px 8px 22px; }
.brand strong { display: block; font-size: 14px; letter-spacing: -.02em; }
.brand span { font-size: 11px; color: #93c5fd; font-weight: 600; }
.side-find { display: flex; align-items: center; gap: 8px; margin: 0 4px 4px; padding: 0 10px; height: 38px; border-radius: 10px; background: rgba(255,255,255,.06); color: #94a3b8; }
.side-find input { flex: 1; width: 100%; min-width: 0; height: 36px; border: 0; padding: 0; background: transparent; color: #fff; font: inherit; outline: 0; box-shadow: none; }
.side-find input::placeholder { color: #64748b; }
.nav-label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #64748b; padding: 16px 12px 6px; }
.sidebar nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 10px; color: #cbd5e1; font-weight: 500; font-size: 14px;
  transition: background .28s ease, color .28s ease, box-shadow .28s ease, transform .18s ease;
}
.sidebar nav a i { width: 18px; color: #94a3b8; transition: color .28s ease; }
.sidebar nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.sidebar nav a:active { transform: scale(.98); }
.sidebar nav a.active { background: rgba(37,99,235,.2); color: #fff; box-shadow: inset 3px 0 0 #93c5fd; }
.sidebar nav a.active i { color: #fff; }
.side-foot { flex: none; margin-top: 0; display: flex; gap: 8px; align-items: center; padding: 16px 10px 6px; color: #64748b; font-size: 11px; }

.wrap {
  margin-left: var(--side);
  min-height: 100vh;
  height: auto;
  overflow: visible;
  display: flex;
  flex-direction: column;
}
.topbar {
  display: flex; flex-direction: column; align-items: stretch; gap: 10px;
  padding: 10px 16px 12px; background: rgba(255,255,255,.92);
  backdrop-filter: blur(18px); border-bottom: 1px solid rgba(226,232,240,.7);
  position: sticky; top: 0; z-index: 40; overflow: visible;
}
.topbar-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 16px;
  min-width: 0;
}
.topbar-nav { display: flex; align-items: center; gap: 8px; min-width: 0; }
.search {
  flex: 1 1 280px; display: flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid #cbd5e1; border-radius: 14px;
  padding: 6px 6px 6px 14px; max-width: 560px; min-width: 220px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.search:focus-within { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.search > i { color: #64748b; flex-shrink: 0; }
.search input { border: 0; background: transparent; outline: none; width: 100%; font: inherit; min-width: 0; }
.search-go {
  flex-shrink: 0; border: 0; background: #2563eb; color: #fff; font: inherit; font-weight: 700;
  font-size: 13px; border-radius: 10px; padding: 8px 14px; cursor: pointer;
}
.search-go:hover { background: #1d4ed8; }
.top-actions {
  margin-left: 0; display: flex; align-items: center; justify-content: flex-end;
  gap: 8px; min-width: 0; flex-wrap: nowrap;
}
.topbar > #topSearch.search {
  flex: none; width: 100%; max-width: none; min-width: 0; order: 0;
}
.icon-btn {
  width: 38px; height: 38px; border-radius: 11px; border: 0;
  background: transparent; display: grid; place-items: center; color: #475569; cursor: pointer;
}
.icon-btn:hover { background: rgba(15,23,42,.06); color: #0f172a; }
.who {
  display: flex; align-items: center; gap: 10px; margin-left: 4px; min-width: 0;
  padding: 3px 10px 3px 3px; background: rgba(255,255,255,.9);
  border: 1px solid rgba(226,232,240,.9); border-radius: 999px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.who-link { display: flex; align-items: center; gap: 10px; color: inherit; min-width: 0; }
.who strong { display: block; font-size: 12px; max-width: 168px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.25; font-weight: 600; }
.who small { color: var(--muted); font-size: 10px; line-height: 1.3; display: block; max-width: 168px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who .avatar-logo { flex-shrink: 0; width: 36px; height: 36px; border-radius: 10px; object-fit: cover; }
.logout { font-size: 12px; color: var(--red); font-weight: 700; white-space: nowrap; }
.main { padding: 24px; flex: 1; overflow: visible; min-width: 0; }

.page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.page-head h1 { margin: 0 0 4px; font-size: 26px; letter-spacing: -.03em; }
.page-head p { margin: 0; color: var(--muted); font-size: 13px; }
.head-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 18px; }
.stat {
  background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 18px; display: flex; gap: 14px; align-items: center;
  border: 1px solid rgba(226,232,240,.8);
}
.stat span { display: block; color: var(--muted); font-size: 13px; font-weight: 600; }
.stat strong { font-size: 22px; letter-spacing: -.03em; }
.stat em { display: block; font-style: normal; color: var(--teal); font-size: 12px; font-weight: 600; }
.stat-icon { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; color: #fff; font-size: 18px; }
.stat-icon.blue { background: linear-gradient(135deg, #4c8dff, #2563eb); }
.stat-icon.teal { background: linear-gradient(135deg, #34d399, #059669); }
.stat-icon.navy { background: linear-gradient(135deg, #6366f1, #4338ca); }
.stat-icon.green { background: linear-gradient(135deg, #2dd4bf, #0f766e); }
.stat-icon.red { background: linear-gradient(135deg, #f87171, #dc2626); }
.stat-icon.warn { background: linear-gradient(135deg, #fbbf24, #d97706); }

.grid-2 { display: grid; grid-template-columns: 1.4fr .8fr; gap: 16px; margin-bottom: 16px; }
.grid-2 > .card, .dash-people-grid > .card { min-width: 0; }
.card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; border: 1px solid rgba(226,232,240,.8); }
.card-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.set-safety-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.set-safety-pair .card-h { flex-wrap: wrap; gap: 8px; }
.set-safety-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 14px; }
.set-safety-actions form { margin: 0; }
.set-days { display: flex; gap: 8px; align-items: center; margin: 0; }
.set-days label { display: flex; gap: 8px; align-items: center; margin: 0; font-size: 12px; font-weight: 700; }
.set-days select { width: auto; height: 36px; }
.set-fold { margin: 0 16px 12px; }
.set-fold summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.set-fold pre { margin-top: 8px; }
@media (max-width: 860px) { .set-safety-pair { grid-template-columns: 1fr; } }
.card-h h2, .card-h h3 { margin: 0; font-size: 16px; }
.muted { color: var(--muted); font-size: 12px; }
.kpi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }
.kpi-row div { background: #f8fafc; border-radius: 12px; padding: 10px 12px; }
.kpi-row span { display: block; color: var(--muted); font-size: 12px; }
.donut-wrap { position: relative; width: 180px; height: 180px; margin: 8px auto; }
.donut-label { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.donut-label strong { font-size: 26px; }
.mini-list { list-style: none; margin: 0; padding: 0; }
.mini-list li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
/*
 * Default tables: horizontal scroll only. Do NOT use overflow:auto + max-height here —
 * Safari/Mac trackpad traps vertical scroll inside that scrollport (SMS + Reports).
 * Vertical page scroll stays on html/body.
 */
.table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  max-height: none;
  -webkit-overflow-scrolling: touch;
}
html:has(body.rpt-alone), body.rpt-alone { height: auto; min-height: 100%; overflow-y: auto; overflow-x: hidden; }
body.rpt-alone .print-page,
body.rpt-alone .rpt-sheet { overflow: visible; max-height: none; }
body.rpt-alone .table-wrap,
body.rpt-alone .table-wrap:has(.rep-table) {
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: auto;
}
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { text-align: left; color: var(--muted); font-weight: 600; padding: 10px 8px; border-bottom: 1px solid var(--line); }
td { padding: 12px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
tr:hover td { background: #f8fafc; }
.badge { display: inline-block; padding: 3px 8px; border-radius: 20px; font-size: 11px; font-weight: 700; }
a.badge { text-decoration: none; color: inherit; }
.badge-ok { background: #d1fae5; color: #047857; }
.badge-danger { background: #fee2e2; color: #b91c1c; }
.badge-warn { background: #fef3c7; color: #b45309; }
.badge-info { background: #dbeafe; color: #1d4ed8; }
.badge-muted { background: #f1f5f9; color: #64748b; }
details.sms-fold { max-width: 36rem; }
details.sms-fold summary { cursor: pointer; list-style: none; }
details.sms-fold summary::-webkit-details-marker { display: none; }
.sms-preview { white-space: pre-wrap; word-break: break-word; font: inherit; margin: 8px 0 0; padding: 10px 12px; background: #f8fafc; border-radius: 10px; border: 1px solid var(--line); }

.btn { display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 12px; padding: 11px 16px; font: inherit; font-weight: 700; cursor: pointer; }
.btn.primary { background: linear-gradient(135deg, #4c8dff, #2563eb); color: #fff; box-shadow: 0 10px 20px rgba(37,99,235,.28); }
.btn.primary:hover { filter: brightness(1.05); }
.btn.ghost { background: #fff; border: 1px solid var(--line); color: var(--text); }
.btn.danger { background: var(--red); color: #fff; }
.btn.small { padding: 6px 10px; font-size: 12px; }
.btn.block { width: 100%; justify-content: center; }
.btn.lg { padding: 13px 16px; font-size: 15px; }

.form label { display: block; font-size: 12px; font-weight: 700; margin: 12px 0 6px; color: #334155; }
.form input, .form select, .form textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px; font: inherit; background: #fff;
}
.form input[type="checkbox"], .form input[type="radio"] {
  width: auto; padding: 0; border-radius: 4px; box-shadow: none; accent-color: #2563eb;
}
.form input:focus, .form select:focus, .form textarea:focus {
  outline: none; border-color: #93c5fd; box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
.field { position: relative; }
.field i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #94a3b8; }
.field input { padding-left: 38px; padding-right: 42px; }
.field .eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: #64748b; width: 36px; height: 36px; cursor: pointer; }

.alert { padding: 10px 14px; border-radius: 12px; margin-bottom: 14px; font-size: 13px; }
.alert.ok { background: #d1fae5; color: #065f46; }
.alert.err { background: #fee2e2; color: #991b1b; }
.alert.warn { background: #fef3c7; color: #92400e; }
.cards-props { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.prop-search { min-width: 220px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; background: var(--card); color: var(--text); }
.prop-toolbar { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: space-between; margin: 0 0 18px; position: relative; z-index: 2; }
.prop-toolbar .find-box { flex: 1; min-width: 220px; max-width: 380px; margin: 0; }
.prop-toolbar .chip { cursor: pointer; appearance: none; font: inherit; }
.prop-toolbar .rep-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.prop-occ-slim {
  display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; align-items: center;
  margin: 0 0 14px; padding: 12px 16px; background: var(--card); border: 1px solid var(--line);
  border-radius: 16px; box-shadow: var(--shadow);
}
.prop-occ-slim .meter { grid-column: 2; margin: 0; }
.prop-occ-slim-meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--muted); font-weight: 700; }
.prop-occ-slim-meta b { color: var(--text); }
.prop-card { background: var(--card); border-radius: 20px; overflow: hidden; box-shadow: var(--shadow); color: inherit; border: 1px solid var(--line); transition: transform .15s ease; display: flex; flex-direction: column; }
.prop-card:hover { transform: translateY(-3px); }
.prop-card[hidden] { display: none; }
.prop-card.is-hot { border-color: #fecaca; }
.prop-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.prop-body h3 { margin: 0 0 2px; font-size: 18px; letter-spacing: -.02em; line-height: 1.25; }
.prop-body h3 a { color: inherit; text-decoration: none; }
.prop-body h3 a:hover { color: #1d4ed8; }
.prop-loc { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.4; }
.prop-lvl { margin: 0; font-size: 12px; font-weight: 800; color: #334155; }
.prop-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.prop-meta a { color: inherit; text-decoration: none; padding: 4px 10px; border-radius: 999px; background: #f1f5f9; font-weight: 700; font-size: 12px; }
.prop-meta a:hover { color: #1d4ed8; }
.prop-meta a.ok { color: var(--teal); }
.prop-meta a.warn { color: var(--red); background: #fef2f2; }
.prop-money { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 4px 0 0; font-size: 12px; color: var(--muted); }
.prop-money b { color: var(--text); }
.prop-money .warn { color: var(--red); font-weight: 700; }
.prop-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; padding-top: 10px; }
.prop-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 6px 0 8px; }
.prop-kpis a {
  text-decoration: none; color: inherit; background: #f8fafc; border: 1px solid var(--line);
  border-radius: 14px; padding: 10px 8px; text-align: center; min-width: 0;
}
.prop-kpis b { display: block; font-size: 20px; letter-spacing: -.03em; }
.prop-kpis span { display: block; font-size: 10px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .02em; line-height: 1.3; }
.prop-kpis a.ok b { color: var(--teal); }
.prop-kpis a.warn b { color: var(--red); }
.prop-facts { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
.prop-facts a { display:inline-flex; align-items:baseline; gap:6px; text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:6px 12px; font-size:12px; font-weight:700; color:var(--muted); }
.prop-facts a b { color:var(--text); font-size:14px; }
.prop-facts a em, .prop-facts span em { font-style: normal; font-size: 11px; font-weight: 800; }
.prop-facts em.kpi-down { color: #b91c1c; }
.prop-facts em.kpi-up { color: #047857; }
.chart-box.fin-chart { height: 160px; }
.prop-facts a.is-warn b { color:#b91c1c; }
.prop-facts a.on { border-color:#2563eb; box-shadow:0 0 0 2px rgba(37,99,235,.12); }
.prop-facts-occ { flex:1; min-width:140px; height:28px; border-radius:999px; background:#e2e8f0; position:relative; overflow:hidden; }
.prop-facts-occ i { display:block; height:100%; background:linear-gradient(90deg,#4c8dff,#2563eb); }
.prop-facts-occ em { position:absolute; inset:0; display:grid; place-items:center; font-style:normal; font-size:12px; font-weight:800; color:#0f172a; }
html[data-theme="dark"] .prop-facts-occ { background:#1e293b; }
html[data-theme="dark"] .prop-facts-occ em { color:#f8fafc; }
.prop-visual {
  height: 200px; display: block; position: relative; text-decoration: none;
  background: linear-gradient(135deg, #334155, #0f172a);
}
.prop-visual::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(15,23,42,.15) 40%, rgba(15,23,42,.55));
  pointer-events: none;
}
.prop-visual-name {
  position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; color: #fff;
}
.prop-visual-name strong { display: block; font-size: 18px; letter-spacing: -.02em; text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.prop-visual-name small { display: block; margin-top: 2px; font-size: 12px; opacity: .92; }
.prop-card .prop-fill { height: 4px; background: #e2e8f0; overflow: hidden; }
.prop-card .prop-fill i { display: block; height: 100%; background: #2563eb; }
.prop-card.is-hot .prop-fill i { background: #dc2626; }
.prop-visual .prop-code {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  padding: 5px 9px; border-radius: 8px; background: rgba(15,23,42,.72);
  letter-spacing: .12em; font-size: 11px; font-weight: 800; color: #fff;
}
.prop-occ {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  font-style: normal; font-size: 13px; font-weight: 800; letter-spacing: -.02em;
  padding: 5px 10px; border-radius: 999px; background: #fff; color: #0f172a;
}
.prop-fill-line { margin: 6px 0 10px !important; font-size: 12px !important; font-weight: 700; }
.prop-occ-card { margin-bottom: 16px; }
.prop-map-card { margin-top: 0; }
.prop-visual.basihaya { background: linear-gradient(135deg, #2563eb, #1e3a8a); }
.prop-visual.flemu { background: linear-gradient(135deg, #0f766e, #115e59); }
.prop-visual.mbweni { background: linear-gradient(135deg, #10b981, #065f46); }
.prop-visual.kunu { background: linear-gradient(135deg, #f59e0b, #b45309); }
.prop-visual.sigara { background: linear-gradient(135deg, #ef4444, #9f1239); }
.prop-visual.has-photo { background-size: cover; background-position: center; }
.geo-map { height: 340px; width: 100%; border-radius: 14px; border: 1px solid var(--line); z-index: 1; display: block; }
.lease-acts { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lease-amehama, .btn.lease-amehama {
  letter-spacing: .06em;
  font-weight: 800;
  text-transform: uppercase;
}
.lease-act { display: inline; margin: 0; }
.pay-packs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 4px 0 8px; }
.pay-packs .chip { cursor: pointer; border: 1px solid var(--line); background: #fff; }
.pay-packs .chip.on, .pay-packs label.chip:has(input:checked) { background: #1d4ed8; color: #fff; border-color: #1d4ed8; }
.gmap-pins { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px 0; }
.gmap-pin { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 12px; font-weight: 700; cursor: pointer; }
.gmap-pin.on { background: #1d4ed8; color: #fff; border-color: #1d4ed8; }
.media-block { padding: 0 0 8px; }
.media-sub { font-size: 13px; margin: 12px 0 8px; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 8px 0 14px; }
.media-grid.compact { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.media-card { margin: 0; background: #f8fafc; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.media-card.is-damage { border-color: #fecaca; background: #fef2f2; }
.media-card.is-cover { outline: 2px solid #2563eb; }
.media-shot { display: block; aspect-ratio: 4/3; background: #0b1220; }
.media-shot img { width: 100%; height: 100%; object-fit: cover; }
.media-card figcaption { padding: 8px 10px; }
.media-card figcaption strong { display: block; font-size: 13px; }
.media-card figcaption p { margin: 4px 0 0; font-size: 12px; color: var(--muted); }
.media-edit { display: grid; gap: 6px; padding: 0 10px 10px; }
.media-edit input, .media-edit textarea, .media-edit select {
  width: 100%; font: inherit; font-size: 12px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px;
  background: var(--card); color: var(--text);
}
.media-edit-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.media-up { padding: 8px 0 4px; }
html[data-theme="dark"] .media-card { background: #0b1220; }
html[data-theme="dark"] .media-card.is-damage { background: #3f1d1d; border-color: #7f1d1d; }
.prop-body { padding: 14px 16px 16px; }
.prop-body p { margin: 0 0 10px; color: var(--muted); font-size: 13px; font-weight: 600; }
.prop-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.prop-meta .ok { color: var(--teal); font-weight: 700; }
.prop-meta .warn { color: var(--red); font-weight: 700; }
.checks { display: grid; gap: 6px; }
.sms-write { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: 16px; align-items: start; }
.sms-write-main, .sms-write-side { padding: 8px 16px 16px; }
.sms-write .checks { display: flex; flex-wrap: wrap; gap: 8px; }
.sms-write .checks .chk { margin: 0; padding: 8px 12px; border: 1px solid var(--line, #e5e7eb); border-radius: 999px; background: #fff; }
.sms-write .checks .chk:has(input:checked) { border-color: #2563eb; background: #eff6ff; }
.sms-write-side .btn.primary { margin-top: 14px; }
.sms-count { margin: 6px 0 0; font-size: 12px; font-weight: 700; color: #64748b; }
.sms-count.is-long { color: #b45309; }
@media (max-width: 860px) { .sms-write { grid-template-columns: 1fr; } }
.chk { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.empty-sms-card { margin-bottom: 16px; }
.empty-sms-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 0 4px 4px; }
.empty-sms-form .chk { display: inline-flex; margin: 0; font-size: 13px; font-weight: 700; }
.empty-sms-card .empty-sms-form { padding: 8px 16px 16px; }
.empty-sms-form select {
  font: inherit; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px;
  background: var(--card); color: var(--text); max-width: 280px;
}
.agent-tools { position: sticky; top: var(--top-offset); z-index: 14; background: color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(10px); padding: 8px 0; margin-bottom: 8px; }
.ag-sms { overflow: hidden; border: 0; box-shadow: 0 18px 50px rgba(15,23,42,.08); margin-bottom: 18px; }
.ag-sms-h {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 12px 16px; cursor: pointer; list-style: none;
  background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%);
  color: #fff;
}
.ag-sms-h::-webkit-details-marker { display: none; }
.ag-sms-h p { display: none; }
.ag-sms[open] .ag-sms-h { align-items: flex-start; padding: 16px 22px; }
.ag-sms[open] .ag-sms-h p { display: block; }
.ag-sms-h h2 { margin: 4px 0 6px; font-size: 20px; letter-spacing: -.03em; }
.ag-sms-h p { margin: 0; color: #bfdbfe; font-size: 13px; max-width: 56ch; }
.ag-sms-h > i { font-size: 32px; opacity: .35; }
.ag-sms-form { display: block; padding: 16px 18px 18px; }
.ag-vac { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.ag-vac-chip {
  cursor: pointer; border: 1px solid var(--line); border-radius: 999px; padding: 8px 14px;
  font-size: 13px; font-weight: 700; background: #fff; display: inline-flex; align-items: center; gap: 6px;
}
.ag-vac-chip input { display: none; }
.ag-vac-chip b { font-size: 14px; }
.ag-vac-chip.on { background: #0f172a; color: #fff; border-color: #0f172a; }
.ag-sms-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; }
.ag-sms-row label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: #475569; }
.ag-list-h { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 12px; }
.ag-list-h h2 { margin: 0; font-size: 18px; }
.ag-layout.grid-2 { grid-template-columns: 1fr; }
.ag-board { display: grid; gap: 8px; }
.ag-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 16px;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.ag-line {
  display: grid;
  grid-template-columns: auto minmax(160px, 1.3fr) minmax(120px, .9fr) auto auto minmax(120px, 1fr) auto;
  align-items: center; gap: 8px 12px; padding: 10px 12px; border-radius: 14px; box-shadow: none;
}
.ag-line .ag-card-id strong { font-size: 15px; }
.ag-line .ag-card-id .pill { margin-left: 6px; }
.ag-line .ag-stat { text-align: center; }
.ag-line .ag-stat b { font-size: 16px; }
.ag-line .ag-props { margin: 0; }
.ag-line .ag-notes { grid-column: 1 / -1; margin: 0; }
.ag-line .ag-card-acts { margin: 0; padding: 0; border: 0; flex-wrap: nowrap; }
.rooms-form-card > summary { cursor: pointer; list-style: none; }
.rooms-form-card > summary::-webkit-details-marker { display: none; }
.ag-card.is-nophone { border-style: dashed; }
.ag-card.is-suspended { border-color: #fdba74; background: #fff7ed; }
.ag-card.is-inactive { opacity: .75; }
.ag-card-top { display: flex; gap: 12px; align-items: flex-start; }
.ag-card-id { flex: 1; min-width: 0; }
.ag-card-id strong { font-size: 18px; color: #0f172a; }
.ag-rate { text-align: right; color: #ca8a04; flex-shrink: 0; }
.ag-rate b { display: block; font-size: 20px; color: #0f172a; }
.ag-card-mid { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; align-items: flex-start; }
.ag-stat { text-align: right; text-decoration: none; color: inherit; }
.ag-stat b { display: block; font-size: 20px; color: #2563eb; }
.ag-stat small, .ag-stat span { display: block; font-size: 12px; color: #64748b; }
.ag-props { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ag-notes { margin-top: 8px; font-size: 12px; color: #64748b; display: flex; flex-direction: column; gap: 2px; }
.ag-card-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); align-items: center; }
.ag-more { position: relative; }
.ag-more summary { list-style: none; cursor: pointer; }
.ag-more summary::-webkit-details-marker { display: none; }
.ag-more-menu {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 12; min-width: 148px;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 8px;
  display: flex; flex-direction: column; gap: 6px; box-shadow: 0 12px 30px rgba(15,23,42,.14);
}
html[data-theme="dark"] .ag-vac-chip { background: #0b1220; }
html[data-theme="dark"] .ag-vac-chip.on { background: #e2e8f0; color: #0f172a; }
html[data-theme="dark"] .ag-card.is-suspended { background: #431407; }
html[data-theme="dark"] .ag-card-id strong, html[data-theme="dark"] .ag-rate b { color: #f8fafc; }
@media (max-width: 900px) {
  .ag-sms-row { grid-template-columns: 1fr; }
  .ag-line { grid-template-columns: auto 1fr auto; }
  .ag-line .ag-line-phone, .ag-line .ag-props, .ag-line .ag-card-acts { grid-column: 1 / -1; }
}
#agentSms, #agentFormCard, #agentList { scroll-margin-top: 88px; }
tr.is-nophone td { background: #fffbeb; }
html[data-theme="dark"] tr.is-nophone td { background: #1c1910; }
.rem-snaps .snap small { white-space: normal; overflow: visible; text-overflow: unset; }
.rem-last { margin: 8px 0 0 !important; font-size: 13px; }
.sms-test { padding: 0; margin-bottom: 12px; }
.sms-test > summary.card-h { margin: 0; padding: 10px 14px; cursor: pointer; list-style: none; }
.sms-test > summary::-webkit-details-marker { display: none; }
.notif-announce { padding: 0; margin-bottom: 12px; }
.notif-announce > summary.card-h { margin: 0; padding: 10px 14px; cursor: pointer; list-style: none; }
.notif-announce > summary::-webkit-details-marker { display: none; }
.notif-announce .form { padding: 0 14px 14px; }
.empty-sms-card { padding: 0; }
.empty-sms-card > summary.card-h { margin: 0; padding: 10px 14px; cursor: pointer; list-style: none; }
.empty-sms-card:not([open]) > summary .muted { display: none; }
.empty-sms-card > summary::-webkit-details-marker { display: none; }
.empty-sms-card .rem-vac-form { padding: 0 14px 14px; }
.rem-vac-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 16px; align-items: center; }
.rem-vac-form .btn, .rem-vac-form select { grid-column: 1 / -1; max-width: 320px; }
#remVacancy { scroll-margin-top: 88px; }
.rem-log { max-height: 68vh; overflow: auto; }
.filter { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.filter input, .filter select { flex: 1; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; background: var(--card); color: var(--text); }
.filter input[type="month"] { min-width: 160px; max-width: 220px; flex: 0 1 220px; }

.auth-body { min-height: 100vh; background: #070b14; position: relative; overflow-x: hidden; }
.auth-body.auth-photo { background: #1c1917; }
.auth-scene { position: fixed; inset: 0; z-index: 0; }
.auth-scene-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.auth-scene-veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(105deg, rgba(8,12,24,.62) 0%, rgba(8,12,24,.28) 38%, rgba(8,12,24,.08) 68%),
    linear-gradient(180deg, rgba(8,12,24,.18), rgba(8,12,24,.05) 30%, rgba(8,12,24,.35));
}
.auth-stage {
  position: relative; z-index: 1; min-height: 100vh;
  display: flex; align-items: center; justify-content: flex-start;
  padding: 32px 7vw;
}
.auth-top {
  position: absolute; top: 20px; left: 28px; right: 28px; z-index: 2;
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
}
.auth-clock {
  color: #fff; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums;
  padding: 6px 12px; border-radius: 999px; background: rgba(15,23,42,.28); backdrop-filter: blur(8px);
}
.auth-tools { display: flex; gap: 8px; align-items: center; }
.auth-theme {
  width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center;
  color: #fff; background: rgba(15,23,42,.28); backdrop-filter: blur(8px); text-decoration: none;
}
.auth-theme:hover { background: rgba(15,23,42,.45); color: #fff; }
.auth-lang { position: static; display: flex; gap: 8px; }
.auth-brand-row { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.auth-brand-row .auth-mark { margin: 0; }
.auth-brand-row strong { display: block; font-size: 14px; line-height: 1.2; }
.auth-brand-row small { color: #94a3b8; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.auth-hint { font-size: 12.5px; color: #64748b; margin: 0 0 16px; line-height: 1.5; }
.auth-gate { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; background: #eef2f7; border-radius: 14px; padding: 4px; margin: 0 0 16px; }
.auth-gate.is-3 { grid-template-columns: repeat(3, 1fr); }
.auth-gate button { border: 0; background: transparent; border-radius: 11px; padding: 9px 8px; font: inherit; font-weight: 800; color: #64748b; cursor: pointer; }
.auth-gate button.on { background: #fff; color: #0f172a; box-shadow: 0 1px 2px rgba(15,23,42,.08); }
html[data-theme="dark"] .auth-gate { background: #0f172a; }
html[data-theme="dark"] .auth-gate button.on { background: #1f2937; color: #f8fafc; }
.tp-portal { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 4px; }
.tp-portal .tp-kind { margin: 0; }
.tp-code { background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.35); border-radius: 999px; padding: 3px 10px; font-weight: 800; letter-spacing: .04em; }
.tp-pass { font-size: 12px; opacity: .9; }
.tp-portal form { margin: 0; }
.tp-asks { margin: 0 0 16px; }
.auth-more { margin: 10px 0 0; }
.auth-more summary { cursor: pointer; font-weight: 800; font-size: 13px; color: #64748b; list-style: none; }
.auth-more summary::-webkit-details-marker { display: none; }
.auth-more[open] summary { margin-bottom: 8px; color: #0f172a; }
.auth-meta { display: grid; gap: 8px; margin: 0 0 18px; }
.sre-pull { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 90; background: #0f766e; color: #fff; border-radius: 999px; padding: 8px 14px; font-size: 13px; font-weight: 800; box-shadow: 0 8px 20px rgba(15,118,110,.35); }
.sre-pull[hidden] { display: none !important; }
.auth-meta a {
  display: flex; align-items: center; gap: 10px; min-width: 0;
  padding: 9px 10px; border-radius: 14px; text-decoration: none;
  background: #f4f7fb; border: 1px solid #e7eef6; color: #0f172a;
  font-size: 13px; font-weight: 650;
}
.auth-meta a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auth-meta a i {
  width: 30px; height: 30px; border-radius: 10px; flex: 0 0 auto;
  display: grid; place-items: center; background: #fff; color: #1d4ed8;
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
}
.auth-meta a:hover { border-color: #bfdbfe; background: #eff6ff; }
.auth-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.auth-chips a {
  font-size: 11px; font-weight: 800; padding: 5px 10px; border-radius: 999px;
  border: 1px solid #e2e8f0; color: #334155; text-decoration: none; background: #f8fafc;
  display: inline-flex; align-items: center; gap: 6px; max-width: 100%;
}
.auth-chips a i { color: #2563eb; }
.auth-caps { color: #b45309; font-size: 12px; font-weight: 700; margin: 0 0 8px; }
.auth-ver-line { margin: 14px 0 0; text-align: center; font-size: 11px; font-weight: 700; color: #94a3b8; }
html[data-theme="dark"] .auth-chips a,
html[data-theme="dark"] .auth-meta a { background: #0b1220; border-color: #1f2937; color: #e5e7eb; }
html[data-theme="dark"] .auth-meta a i { background: #111827; color: #93c5fd; }
html[data-theme="dark"] .auth-brand-row small { color: #94a3b8; }
.auth-lang a {
  color: #fff; text-decoration: none; font-size: 12px; font-weight: 800; letter-spacing: .06em;
  padding: 6px 10px; border-radius: 999px; background: rgba(15,23,42,.28); backdrop-filter: blur(8px);
}
.auth-lang a.on { background: #fff; color: #111827; }
.auth-body.auth-photo .auth-card {
  width: min(420px, 100%); background: rgba(255,255,255,.96);
  padding: 34px 32px 24px; border-radius: 28px; margin: 0;
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 30px 70px rgba(8,12,24,.28), 0 1px 0 rgba(255,255,255,.6) inset;
  backdrop-filter: blur(16px);
}
.auth-mark { display: block; width: 40px; height: 40px; border-radius: 0; margin-bottom: 18px; object-fit: contain; background: transparent; }
.auth-body.auth-photo .auth-card h1 {
  margin: 0; font-size: 28px; letter-spacing: -.04em; font-weight: 800; color: #111827;
}
.auth-sub { margin: 6px 0 8px; color: #94a3b8; font-size: 14px; font-weight: 500; }
.auth-body.auth-photo .auth-form label {
  font-size: 12px; font-weight: 700; letter-spacing: .02em; color: #334155; margin: 14px 0 6px;
}
.auth-body.auth-photo .auth-form input[type="text"],
.auth-body.auth-photo .auth-form input[type="password"],
.auth-body.auth-photo .auth-otp {
  border: 1px solid #e6edf5; border-radius: 14px; background: #f5f8fc;
  min-height: 48px; padding-top: 12px; padding-bottom: 12px;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.auth-body.auth-photo .auth-form input:focus {
  background: #fff; border-color: #93c5fd; box-shadow: 0 0 0 4px rgba(37,99,235,.16);
}
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; }
.auth-row .auth-remember { margin: 8px 0; }
.auth-forgot { font-size: 13px; font-weight: 700; color: #1d4ed8; text-decoration: none; white-space: nowrap; }
.auth-forgot:hover { text-decoration: underline; }
.auth-pass { position: relative; }
.auth-pass input { padding-right: 44px; }
.auth-pass .eye {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  border: 0; background: transparent; color: #94a3b8; cursor: pointer; padding: 8px;
}
.auth-body.auth-photo .btn.primary.auth-go {
  margin-top: 8px; min-height: 50px; border: 0; border-radius: 14px;
  background: linear-gradient(180deg, #1e293b, #0f172a);
  box-shadow: 0 10px 24px rgba(15,23,42,.22);
}
.auth-body.auth-photo .auth-go:hover { background: #0b1220; filter: none; }
.auth-body.auth-photo .auth-go::after { display: none; }
.auth-body.auth-photo .google-btn {
  border-radius: 14px; min-height: 48px; font-weight: 650; background: #fff;
  border-color: #e6edf5;
}
.auth-demo { margin-top: 16px; font-size: 12px; color: #94a3b8; }
.auth-demo summary { cursor: pointer; list-style: none; font-weight: 600; }
.auth-demo summary::-webkit-details-marker { display: none; }
.auth-demo .cred-actions { margin-top: 8px; }
.auth-dev { margin: 18px 0 0; text-align: center; }
.auth-dev a {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  color: #94a3b8; font-size: 11px; font-weight: 600; text-decoration: none;
}
.auth-dev a:hover { color: #64748b; }
.bst-logo-xs { height: 16px !important; width: auto; max-width: 52px; border-radius: 4px; opacity: .85; }
html[data-theme="dark"] .auth-body.auth-photo .auth-card { background: #111827; }
html[data-theme="dark"] .auth-body.auth-photo .auth-card h1 { color: #f8fafc; }
html[data-theme="dark"] .auth-body.auth-photo .auth-form input[type="text"],
html[data-theme="dark"] .auth-body.auth-photo .auth-form input[type="password"] { background: #0b1220; border-color: #1f2937; color: #e5e7eb; }
html[data-theme="dark"] .auth-forgot { color: #93c5fd; }
@media (max-width: 420px) {
  .auth-row { align-items: flex-start; flex-direction: column; gap: 4px; }
}
html[data-theme="dark"] .auth-body.auth-photo .auth-go { background: #f8fafc; color: #0f172a; }
@media (max-width: 720px) {
  .auth-stage { justify-content: center; padding: 88px 16px 28px; }
  .auth-top { left: 16px; right: 16px; top: 16px; }
  .auth-card { margin-top: 8px; }
}
.auth-bg { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.orb { position: absolute; border-radius: 50%; filter: blur(40px); opacity: .55; animation: orbFloat 14s ease-in-out infinite; }
.orb-a { width: 420px; height: 420px; left: -80px; top: -60px; background: #2563eb; }
.orb-b { width: 360px; height: 360px; right: 8%; bottom: 10%; background: #7c3aed; animation-delay: -4s; }
.orb-c { width: 280px; height: 280px; left: 38%; top: 55%; background: #0ea5e9; animation-delay: -8s; opacity: .35; }
.spark { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #fbbf24; box-shadow: 0 0 12px #fbbf24; animation: sparkTwinkle 3.6s ease-in-out infinite; }
.spark.s1 { left: 18%; top: 22%; }
.spark.s2 { right: 22%; top: 38%; animation-delay: -1.2s; background: #93c5fd; box-shadow: 0 0 12px #93c5fd; }
.spark.s3 { left: 48%; bottom: 18%; animation-delay: -2.1s; }
@keyframes sparkTwinkle {
  0%, 100% { opacity: .15; transform: scale(.6); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(28px, -22px) scale(1.08); }
}
.auth-shell { position: relative; z-index: 1; min-height: 100vh; display: grid; grid-template-columns: minmax(280px, 1.05fr) minmax(320px, .95fr); }
.auth-hero {
  background:
    radial-gradient(900px 400px at 10% 10%, rgba(76,141,255,.35), transparent 55%),
    radial-gradient(700px 360px at 90% 80%, rgba(37,99,235,.28), transparent 50%),
    linear-gradient(160deg, #0b1220, #1e3a8a 70%, #2563eb);
  color: #fff; display: grid; place-items: center; padding: 48px;
  position: relative; overflow: hidden; min-height: 100vh;
}
.auth-hero::before {
  content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 42px 42px; opacity: .35;
  animation: gridDrift 22s linear infinite;
}
@keyframes gridDrift { to { background-position: 42px 42px; } }
.auth-hero-inner { position: relative; max-width: 480px; animation: authRise .8s ease both; }
.auth-hero h1 { margin: 10px 0 6px; font-size: 42px; letter-spacing: -.04em; }
.auth-kicker { color: #93c5fd !important; }
.auth-logo { animation: authPop .7s cubic-bezier(.2,1.2,.3,1) both; }
.auth-ver { margin: 18px 0 0; font-size: 12px; color: #93c5fd; font-weight: 700; letter-spacing: .06em; }
.lede { margin: 0 0 12px; color: #bfdbfe; font-size: 15px; }
.hero-about { color: #e2e8f0; line-height: 1.55; margin: 0 0 22px; }
.hero-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.hero-points li { display: flex; gap: 10px; align-items: flex-start; color: #e2e8f0; font-weight: 600; line-height: 1.4; animation: authRise .7s ease both; }
.hero-points li:nth-child(1) { animation-delay: .12s; }
.hero-points li:nth-child(2) { animation-delay: .2s; }
.hero-points li:nth-child(3) { animation-delay: .28s; }
.hero-points i { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: rgba(255,255,255,.12); display: grid; place-items: center; margin-top: 2px; }
.web-link { display: inline-block; margin-top: 22px; color: #fbbf24; font-weight: 800; }
@keyframes authRise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes authPop { from { opacity: 0; transform: scale(.82); } to { opacity: 1; transform: scale(1); } }

.cred-actions { display: flex !important; justify-content: flex-start !important; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.seg { display:flex; gap:16px; flex-wrap:wrap; margin:4px 0 10px; }
.room-pick { display:grid; gap:12px; margin:8px 0 14px; }
.room-prop { border:1px solid var(--line, #e2e8f0); border-radius:10px; padding:10px 12px; }
.room-prop legend { font-weight:700; padding:0 6px; }
.room-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:6px 0; }
.room-line span { flex:1; min-width:140px; }
.room-line input[type="number"] { width:120px; }
@media (max-width:720px) { .alert-row { grid-template-columns: 1fr; } }
.office-map { display:block; width:100%; height:450px; border:0; border-radius:12px; background:#e2e8f0; }
.office-map-sm { height:220px; }
.auth-office-photo { margin-top:16px; border-radius:12px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.18); }
.auth-office-img { display:block; width:100%; height:160px; object-fit:cover; object-position:center; }
.about-shot { overflow:hidden; margin:0; padding:0; }
.about-shot-img { display:block; width:100%; height:220px; object-fit:cover; object-position:center; }
.about-shot figcaption { padding:12px 16px 14px; }
.about-shot figcaption strong { display:block; font-size:14px; }
.about-shot figcaption span { color:var(--muted); font-size:12px; }
.about-banner {
  display: flex; gap: 16px; align-items: flex-start;
  border-radius: 16px; padding: 16px 18px; margin-bottom: 12px; color: #fff;
  background: linear-gradient(135deg, #0b1220 0%, #1e3a8a 55%, #0ea5e9 140%);
  box-shadow: 0 20px 50px rgba(15,23,42,.18);
}
.about-banner-logo {
  flex: 0 0 96px; width: 96px; height: 96px; border-radius: 22px;
  background: #fff; display: grid; place-items: center; overflow: hidden;
}
.about-banner-logo img { width: 80px; height: 80px; }
.about-banner .kicker { margin: 0 0 6px; color: #bfdbfe; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; }
.about-banner h2 { margin: 0 0 10px; font-size: 22px; letter-spacing: -.03em; color: #fff; }
.about-banner-copy p { margin: 0; color: #e2e8f0; line-height: 1.6; }
.about-banner-note { margin-top: 10px !important; color: #93c5fd !important; font-size: 13px; }
.about-secs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.about-secs span {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
  color: #fff; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
}
.about-snaps .snap b, .about-snaps .snap small {
  white-space: normal; overflow: visible; text-overflow: unset; word-break: break-word;
}
.about-snaps .snap b { font-size: 15px; line-height: 1.25; }
.about-estate-snaps { margin: 12px 0 4px; }
.about-vals-pad { padding: 4px 16px 16px; }
.about-team-grid { display: grid; gap: 10px; padding: 4px 16px 16px; }
.about-person {
  display: flex; gap: 10px; align-items: center;
  border: 1px solid var(--line); border-radius: 16px; padding: 10px 12px; background: #f8fafc;
}
.about-person strong { display: block; font-size: 13px; }
.about-person small { color: var(--muted); font-size: 11px; }
.about-person-ico {
  width: 48px; height: 48px; border-radius: 12px; background: #0b1220; color: #93c5fd;
  display: grid; place-items: center; flex-shrink: 0;
}
#about-contact, #about-map, #about-mission, #about-people, #about-office, #about-hero { scroll-margin-top: 88px; }
html[data-theme="dark"] .about-person { background: #0b1220; }
.about-facts { list-style: none; margin: 0; padding: 0; }
.about-facts li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--line); }
.about-facts li:last-child { border-bottom: 0; }
.about-facts i { width: 18px; color: #2563eb; margin-top: 4px; }
.about-facts span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }
.about-facts b { font-size: 13px; line-height: 1.45; }
.about-vals { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.about-vals article { background: #f8fafc; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.about-vals i { color: #2563eb; margin-bottom: 6px; display: block; }
.about-vals strong { display: block; font-size: 13px; margin-bottom: 4px; }
.about-vals span { color: var(--muted); font-size: 12px; line-height: 1.45; }
html[data-theme="dark"] .about-vals article { background: #0b1220; }
.quote { margin: 0 0 16px; padding: 14px 16px; background: #f8fafc; border-left: 4px solid #fbbf24; border-radius: 0 12px 12px 0; }
.quote.quote-photo { display: flex; gap: 14px; align-items: flex-start; }
.director-photo {
  width: 132px; height: 132px; flex: 0 0 132px; object-fit: cover; object-position: center 18%;
  border-radius: 16px; background: #0b1220; box-shadow: 0 8px 20px rgba(15,23,42,.18);
}
.staff-photo {
  width: 48px; height: 48px; flex: 0 0 48px; object-fit: cover; object-position: center 15%;
  border-radius: 12px; background: #0b1220;
}
.sms-rep-grid { margin-bottom: 16px; }
.sms-dash-tools { padding: 0 16px 10px; }
.sms-compose-help { max-width: 52rem; line-height: 1.5; margin: 0 0 12px; }
.sms-compose-form { padding: 8px 20px 20px; }
.sms-compose-form .pay-form-actions { margin-top: 8px; }
.sms-aud { margin: 4px 0 12px; }
.sms-peers { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 8px; max-height: 220px; overflow: auto; }
.sms-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr); gap: 16px; align-items: start; }
.sms-split:has(.sms-split-side[hidden]) { grid-template-columns: 1fr; }
.sms-split-side[hidden] { display: none !important; }
.sms-pick-scroll { max-height: 360px; overflow: auto; padding-right: 4px; }
.sms-pick-lab { margin: 8px 0 4px; font-size: 11px; font-weight: 800; }
.sms-pick-scroll .sms-peers { display: flex; flex-direction: column; max-height: none; overflow: visible; gap: 6px; padding: 0; }
.sms-pick-scroll .sms-peer { min-width: 0; max-width: none; flex: none; padding: 6px 8px; border-radius: 12px; }
.sms-pick-scroll .sms-peer img, .sms-pick-scroll .sms-peer i { width: 32px; height: 32px; }
#smsMainTabs { margin: 0 0 10px; }
#smsMainTabs .pay-tabs-track { padding: 3px; border-radius: 12px; }
#smsMainTabs .pay-tab { padding: 6px 12px; font-size: 13px; border-radius: 10px; }
@media (max-width: 860px) { .sms-split { grid-template-columns: 1fr; } .sms-pick-scroll { max-height: 240px; } }
#smsChars.is-long { color: #b45309; font-weight: 800; }
.sms-peer.off { opacity: .55; cursor: not-allowed; }
.sms-peer {
  display:flex; align-items:center; gap:10px; text-align:left;
  border:1px solid var(--line); background:#fff; border-radius:14px; padding:8px 12px;
  cursor:pointer; min-width: min(100%, 220px); flex: 1 1 200px; max-width: 320px;
}
.sms-peer img, .sms-peer i {
  width:40px; height:40px; border-radius:12px; object-fit:cover; object-position:center 20%;
  background:#0b1220; color:#93c5fd; display:grid; place-items:center; flex-shrink:0;
}
.sms-peer b { display:block; font-size:13px; }
.sms-peer small { display:block; color:var(--muted); font-size:11px; }
.sms-peer.on { border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.18); }
.floor-row { padding: 0 16px; }
.sms-audience-hint { padding: 0 16px 8px; }
html[data-theme="dark"] .sms-peer { background:#111827; border-color:#1f2937; }
.quote small { display: block; color: var(--muted); margin: 2px 0 8px; }
.quote p { margin: 0; color: #334155; line-height: 1.55; }
@media (max-width: 640px) {
  .about-vals { grid-template-columns: 1fr; }
  .about-banner { flex-direction: column; }
  .quote.quote-photo { flex-direction: column; }
  .director-photo { width: 100%; height: 200px; flex: none; }
}

.auth-panel { background: rgba(248,250,252,.92); backdrop-filter: blur(18px); display: flex; flex-direction: column; justify-content: center; padding: 40px 36px 20px; min-height: 100vh; }
.auth-card { width: min(440px, 100%); background: #fff; padding: 32px; border-radius: 24px; box-shadow: 0 30px 80px rgba(15,23,42,.16); margin: 0 auto; border: 1px solid rgba(255,255,255,.7); }
.auth-pop { animation: authRise .65s .12s ease both; }
.auth-go { position: relative; overflow: hidden; }
.auth-go::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-120%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  animation: btnShine 2.8s ease-in-out infinite;
}
@keyframes btnShine { 0%, 55% { transform: translateX(-120%); } 80% { transform: translateX(120%); } 100% { transform: translateX(120%); } }
.auth-form .field input:focus { box-shadow: 0 0 0 4px rgba(37,99,235,.18); border-color: #2563eb; }
.auth-otp { letter-spacing: .3em; text-align: center; font-size: 22px; font-weight: 800; }
.auth-support { margin: 16px 0 0; text-align: center; font-size: 11px; color: var(--muted); line-height: 1.5; }
.auth-support a { color: var(--blue); font-weight: 700; }
.auth-switch { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.cred-actions { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 900px) {
  .auth-shell { grid-template-columns: 1fr; }
  .auth-panel { order: -1; min-height: auto; padding: 28px 18px 8px; }
  .auth-hero { min-height: auto; padding: 28px 20px 32px; }
  .auth-hero h1 { font-size: 28px; }
  .auth-hero-inner { max-width: 560px; }
}
@media (prefers-reduced-motion: reduce) {
  .orb, .spark, .auth-hero::before, .auth-go::after, .auth-pop, .auth-hero-inner, .auth-logo, .hero-points li {
    animation: none !important;
  }
}
.auth-brand { text-align: center; margin-bottom: 10px; }
.kicker { margin: 0; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.auth-card h2 { margin: 4px 0 16px; font-size: 24px; letter-spacing: -.03em; }
.cred-box { margin-top: 18px; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 14px; padding: 12px 14px; font-size: 13px; }
.cred-box strong { display: block; margin-bottom: 6px; font-size: 12px; color: #334155; }
.cred-box div { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; color: #475569; }
.mobile-only { display: none; }
.hint { font-size: 12px; color: var(--muted); margin-top: 16px; }
code { background: #eef2ff; padding: 2px 7px; border-radius: 6px; color: #1e3a8a; font-weight: 700; }

.site-foot {
  display: flex; flex-direction: column; align-items: stretch; gap: 8px;
  padding: 14px 24px 18px; color: var(--muted); font-size: 12px; line-height: 1.5;
}
.site-foot .foot-copy,
.site-foot .foot-contact {
  min-width: 0; max-width: 100%;
  overflow-wrap: break-word;
}
.site-foot .foot-tools {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; min-width: 0;
}
.site-foot .share-bar { flex: 0 1 auto; margin: 0; gap: 8px; }
.site-foot .share-bar .cbtn { flex: 0 0 auto; }
.site-foot .dev-mark { margin-left: auto; flex: 0 0 auto; }
body:has(.ai-fab) .site-foot { padding-bottom: 100px; }
.auth-panel .site-foot { align-items: center; text-align: center; color: #64748b; }
.auth-panel .site-foot .foot-tools { justify-content: center; }
.auth-panel .site-foot .dev-mark { margin-left: 0; }
.auth-panel .site-foot a, .site-foot a { color: var(--blue); font-weight: 700; }
@media (max-width: 720px) {
  .site-foot .foot-tools { flex-direction: column; align-items: flex-start; gap: 10px; }
  .site-foot .dev-mark { margin-left: 0; }
  .auth-panel .site-foot .foot-tools { align-items: center; }
}

.clock-box {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  color: var(--muted); font-size: 13px; font-weight: 600;
  min-width: 0; max-width: 100%; justify-self: center;
}
.clock-meta { display: flex; flex-direction: column; gap: 3px; line-height: 1.25; min-width: 0; }
.clock-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.clock-status .env-pill { margin-left: 0; }
#liveClock { white-space: nowrap; }
.clock-up { font-size:12px; font-weight:700; color:#b45309; text-decoration:none; }
.clock-up i { margin-right:4px; }
a.clock-up:hover { color:#92400e; text-decoration:underline; }
.find-box {
  display:flex; align-items:center; gap:10px; min-width: min(100%, 320px);
  background:#fff; border:1px solid #cbd5e1; border-radius:14px; padding:8px 14px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.find-box:focus-within { border-color:#2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.find-box i { color:#64748b; }
.find-box .prop-search { border:0; padding:0; min-width:0; flex:1; box-shadow:none; background:transparent; }
.chip { padding:6px 10px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--text); font-size:12px; font-weight:800; }
.chip.on { background:var(--blue); color:#fff; border-color:var(--blue); }
.chan-bar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 14px; }
.chan-bar .hint { margin:0; flex:1 1 220px; }
.chan-pair { display:flex; align-items:center; gap:6px; padding:4px 6px 4px 12px; border:1px solid var(--line); border-radius:999px; background:var(--card); }
.chan-pair b { font-size:12px; letter-spacing:.04em; }
.chan-btn { border:0; border-radius:999px; padding:7px 14px; font-weight:800; cursor:pointer; background:transparent; color:var(--muted); }
.chan-btn.is-on { background:#059669; color:#fff; }
.chan-btn.is-off { background:#dc2626; color:#fff; }
.chan-banner { margin:0 0 14px; padding:10px 14px; border-radius:12px; background:#fef2f2; color:#991b1b; border:1px solid #fecaca; font-weight:700; }
.ov-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; padding:0 16px 16px; }
.ov-card { display:block; padding:12px; border-radius:14px; border:1px solid var(--line); background:#f8fafc; color:inherit; text-decoration:none; }
.ov-card span { display:block; font-size:12px; font-weight:800; color:var(--muted); }
.ov-card b { display:block; font-size:22px; margin:4px 0 2px; }
.ov-card small { display:block; color:var(--muted); font-size:11px; line-height:1.35; }
@media (max-width: 980px) { .ov-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 640px) { .ov-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.meter { height:10px; background:var(--line); border-radius:99px; overflow:hidden; margin:8px 0; }
.meter.lg { height: 14px; }
.collect-card { margin-bottom: 16px; }
.collect-meta { display:flex; flex-wrap:wrap; gap:12px 20px; font-size:13px; color:var(--muted); margin-top:8px; }
.collect-meta b { color:var(--text); }
.pct-pill { background:#eff6ff; color:#1d4ed8; font-weight:800; padding:4px 10px; border-radius:99px; font-size:13px; }
.snap-row { display:grid; grid-template-columns: repeat(6, 1fr); gap:12px; margin-bottom:18px; }
.snap-row.dir5 { grid-template-columns: repeat(5, 1fr); }
.snap-row.dir6 { grid-template-columns: repeat(6, 1fr); }
.snap-row.dir4 { grid-template-columns: repeat(4, 1fr); }
.snap-row.dir3 { grid-template-columns: repeat(3, 1fr); }
.snap { display:flex; flex-direction:column; gap:2px; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px 14px 12px; color:inherit; box-shadow: var(--shadow); min-width:0; }
.snap:hover { border-color:#93c5fd; transform: translateY(-1px); }
.snap i { color:#2563eb; margin-bottom:6px; }
.snap b { font-size:20px; letter-spacing:-.03em; line-height:1.15; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snap.money b { white-space: normal; overflow: visible; font-size: 16px; line-height: 1.2; }
.snap span { font-size:12px; font-weight:700; color:var(--muted); }
.snap small { font-size:11px; color:#94a3b8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snap.on i, .snap.on b { color:#2563eb; }
.snap.warn i, .snap.warn b { color:#dc2626; }
.snap.violet i, .snap.violet b { color:#7c3aed; }
.snap.teal i, .snap.teal b { color:#0f766e; }
.snap.money i, .snap.money b { color:#047857; }
.chart-box { position:relative; height: 250px; overflow: hidden; }
.donut-wrap { overflow: hidden; }
.donut-wrap.tall { width: 200px; height: 200px; }
.legend-row { display:flex; flex-wrap:wrap; gap:10px 14px; list-style:none; margin:8px 0 12px; padding:0; font-size:12px; }
.legend-row li { display:flex; align-items:center; gap:6px; }
.legend-row i { width:8px; height:8px; border-radius:99px; display:inline-block; }
@media (max-width: 1100px) {
  .snap-row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .snap-row { grid-template-columns: repeat(2, 1fr); }
  .chart-box { height: 200px; }
}
.meter span { display:block; height:100%; background:linear-gradient(90deg,#4c8dff,#2563eb); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.cal-stats { grid-template-columns: repeat(4, 1fr); }
.cal-nav { align-items: center; flex-wrap: wrap; }
.cal-month { display:inline-flex; align-items:center; justify-content:center; min-width: 150px; font-size:15px; letter-spacing:-.02em; }
.cal-seg { display:inline-flex; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.cal-seg a { padding:8px 12px; font-size:12px; font-weight:800; color:var(--muted); text-decoration:none; }
.cal-seg a.on { background:#2563eb; color:#fff; }
.cal-year-strip {
  display: flex; align-items: center; gap: 10px; margin: 0 0 14px;
}
.cal-month-pills {
  display: flex; gap: 6px; overflow-x: auto; flex: 1; padding: 4px 0;
  scrollbar-width: thin;
}
.cal-pill {
  flex: 1 0 auto; min-width: 58px; text-align: center; text-decoration: none; color: inherit;
  border: 1px solid var(--line); background: var(--card); border-radius: 12px; padding: 8px 6px;
  font-weight: 800; font-size: 12px;
}
.cal-pill b { display: block; }
.cal-pill em { font-style: normal; font-size: 10px; color: #1d4ed8; }
.cal-pill.on { background: #0f172a; color: #fff; border-color: #0f172a; }
.cal-pill.on em { color: #93c5fd; }
.cal-pill.is-now:not(.on) { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37,99,235,.15); }
.cal-year-jump { font-weight: 800; font-size: 12px; color: var(--muted); white-space: nowrap; text-decoration: none; }
.cal-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.cal-mini {
  background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 10px 10px 12px;
  box-shadow: var(--shadow);
}
.cal-mini.on { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37,99,235,.16); }
.cal-mini.is-now:not(.on) { border-color: #93c5fd; }
.cal-mini-h { display: flex; justify-content: space-between; align-items: center; text-decoration: none; color: inherit; margin-bottom: 8px; }
.cal-mini-h strong { font-size: 14px; }
.cal-mini-h em { font-style: normal; font-size: 11px; font-weight: 800; background: #dbeafe; color: #1d4ed8; border-radius: 999px; padding: 2px 8px; }
.cal-mini-dows, .cal-mini-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.cal-mini-dows span { font-size: 9px; font-weight: 800; color: var(--muted); }
.cal-mini-grid a, .cal-mini-grid i {
  display: grid; place-items: center; min-height: 22px; font-size: 11px; font-weight: 700;
  border-radius: 6px; text-decoration: none; color: inherit;
}
.cal-mini-grid a.has { font-weight: 800; }
.cal-mini-grid a.start { background: #d1fae5; color: #065f46; }
.cal-mini-grid a.end { background: #dbeafe; color: #1e3a8a; }
.cal-mini-grid a.soon { background: #fef3c7; color: #92400e; }
.cal-mini-grid a.expired { background: #fee2e2; color: #991b1b; }
.cal-mini-grid a.today { box-shadow: inset 0 0 0 2px #2563eb; }
.cal-slim { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:0 0 12px; font-size:12px; font-weight:700; color:var(--muted); }
.cal-slim a { display:inline-flex; align-items:center; gap:6px; text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:6px 10px; }
.cal-slim a.on { border-color:#2563eb; color:#1d4ed8; box-shadow:0 0 0 2px rgba(37,99,235,.12); }
.cal-slim i { display:inline-block; width:8px; height:8px; border-radius:99px; }
.cal-slim-gap { flex:1; }
.cal-legend { display:flex; flex-wrap:wrap; gap:12px 16px; margin: 0 0 14px; font-size:12px; font-weight:700; color:var(--muted); }
.cal-legend i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; vertical-align:middle; }
.cal-legend .lg-start { background:#34d399; }
.cal-legend .lg-end { background:#60a5fa; }
.cal-legend .lg-soon { background:#fbbf24; }
.cal-legend .lg-expired { background:#f87171; }
.cal-legend .lg-week { background:#c7d2fe; }
.cal-layout { display:grid; grid-template-columns: 1fr minmax(260px, 320px); gap:16px; align-items:start; }
.cal-wrap { overflow: hidden; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-head { font-size:12px; font-weight:700; color:var(--muted); margin-bottom:8px; text-align:center; }
.cal-dow .short { display:none; }
.cal-cell { min-height:108px; border:1px solid var(--line); border-radius:14px; padding:8px; background:var(--card); color: inherit; text-decoration: none; display:flex; flex-direction:column; gap:4px; scroll-margin-top: 88px; }
a.cal-cell:hover { border-color:#93c5fd; }
.cal-cell.muted { background:#f8fafc; min-height:72px; color:var(--muted); }
.cal-cell.weekend { background:#f8fafc; }
.cal-cell.has { border-color:#bfdbfe; }
.cal-cell.in-week:not(.today):not(.selected) { background:#eef2ff; }
.cal-cell.today { border-color:var(--blue); box-shadow:0 0 0 2px rgba(37,99,235,.15); background:#eff6ff; }
.cal-cell:target { box-shadow:0 0 0 3px rgba(37,99,235,.28); }
.cal-num { display:flex; justify-content:space-between; align-items:center; }
.cal-num strong { font-size:13px; width:26px; height:26px; display:grid; place-items:center; border-radius:99px; }
.cal-cell.today .cal-num strong { background:var(--blue); color:#fff; }
.cal-num em { font-style:normal; font-size:10px; font-weight:800; color:#1d4ed8; background:#dbeafe; border-radius:99px; padding:1px 6px; }
.cal-cell.selected { border-color:#7c3aed; box-shadow:0 0 0 2px rgba(124,58,237,.22); }
a.cal-num { color: inherit; text-decoration: none; }
.cal-overdue-banner { background: linear-gradient(90deg, #fef2f2, #fff); border-color:#fecaca; }
.cal-overdue-banner i { background:#dc2626 !important; }
.cal-overdue-banner b { color:#dc2626; }
.cal-side-hot { border-color:#fecaca; }
.cal-next-k { margin: 0 0 6px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: 10px; }
a.stat { color: inherit; text-decoration: none; cursor: pointer; }
a.stat.is-on { border-color:#93c5fd; box-shadow:0 0 0 2px rgba(37,99,235,.12); }
.cal-ev { display:block; font-size:12px; line-height:1.3; border-radius:8px; padding:5px 7px; color:#1e3a8a; background:#dbeafe; }
.cal-ev > a { color:inherit; text-decoration:none; display:block; min-width:0; }
.cal-ev b { font-weight:800; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-ev .meta { display:block; color:inherit; opacity:.8; margin:1px 0 0; font-size:10px; font-weight:700; }
.cal-ev .cal-act { display:inline-block; margin-top:3px; font-size:10px; font-weight:800; text-decoration:underline; color:inherit; }
.cal-list-meta .cal-act { display:inline-block; margin-top:6px; white-space:normal; }
.cal-day-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
@media print {
  .no-print, .sidebar, .topbar, .site-foot, .cal-side { display:none !important; }
  .wrap { margin:0; }
  .cal-layout { grid-template-columns: 1fr; }
  .cal-cell { min-height: 90px; break-inside: avoid; }
}
.cal-ev.start { background:#d1fae5; color:#065f46; }
.cal-ev.end { background:#dbeafe; color:#1e3a8a; }
.cal-ev.soon { background:#fef3c7; color:#92400e; }
.cal-ev.expired { background:#fee2e2; color:#991b1b; }
.cal-more { font-size:11px; color:var(--muted); font-weight:700; }
.cal-empty { margin-top: 8px; }
.cal-side { display:grid; gap:14px; position:sticky; top:84px; }
.cal-list li { align-items:flex-start; }
.cal-list-meta { text-align:right; white-space:nowrap; }
.auth-or { display:flex; align-items:center; gap:10px; margin:16px 0 12px; color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.auth-or::before, .auth-or::after { content:""; flex:1; height:1px; background:var(--line); }
.google-btn {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px;
  background:#fff; color:#1f2937; font-weight:700; font-size:14px;
}
button.google-btn { font-family: inherit; cursor: pointer; }
button.google-btn:disabled { opacity: .6; cursor: default; }
.auth-passkey { margin-bottom: 8px; }
.prof-bio-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.prof-bio-actions .btn { display: inline-flex; align-items: center; gap: 8px; }
.auth-qr { width: 180px; height: 180px; margin: 10px 0; background: #fff; padding: 8px; border-radius: 12px; }
.prof-passkeys { list-style: none; margin: 0 0 12px; padding: 0; }
.prof-passkeys li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.prof-passkeys form { display: flex; gap: 8px; align-items: center; }
.prof-passkeys input[type="password"] { width: 140px; }
.report-filter { flex-wrap: wrap; align-items: center; position: sticky; top: var(--top-offset); z-index: 14; background: color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(10px); padding: 8px 0; }
.report-filter .find-box { flex: 1 1 220px; min-width: 180px; }
.rep-collect { margin-bottom: 16px; }
#rep-view { scroll-margin-top: 88px; }
.report-filter input[type="month"] { border:1px solid var(--line); border-radius:12px; padding:10px 12px; font:inherit; }
.report-filter input[type="number"] { border:1px solid var(--line); border-radius:12px; padding:10px 12px; font:inherit; }
.rep-table { font-size:12.5px; width:100%; border-collapse:separate; border-spacing:0; }
.rep-table th, .rep-table td { border:1px solid #e2e8f0; padding:9px 10px; vertical-align:top; }
.rep-table thead th {
  position: sticky; top: 0; z-index: 6;
  white-space: nowrap; background:#fff; color:#000;
  font-weight:800; font-size:11px; letter-spacing:.04em; text-transform:uppercase;
  border-bottom:2px solid #000; box-shadow: 0 2px 0 #000;
}
.rep-table tbody tr:nth-child(even) td { background:#f8fafc; }
.rep-table td.num { font-weight:700; color:#0f172a; }
.rep-table td.note { white-space: normal; min-width: 220px; max-width: 320px; font-size: 12px; line-height: 1.4; color:#111; }
.rep-follow-exp td { background: #fff1f2 !important; }
.rep-follow-soon td { background: #fffbeb !important; }
.rep-follow-exp td.note { color:#9f1239; font-weight:700; }
.rep-follow-soon td.note { color:#92400e; font-weight:700; }
.rep-floor td { background:#e0e7ff; font-weight:800; letter-spacing:.04em; }
.rep-total td { background:#f1f5f9; font-weight:700; }
.rep-grand td { background:#dbeafe; font-weight:800; }
.rep-empty td { color:#64748b; }
.rep-prop { font-size:16px; margin:18px 0 8px; }
html[data-theme="dark"] .rep-table thead th { background:#e2e8f0; color:#000; }
html[data-theme="dark"] .rep-floor td { background:#1e3a5f; }
html[data-theme="dark"] .rep-total td { background:#1f2937; }
html[data-theme="dark"] .rep-grand td { background:#1e3a8a; color:#fff; }
@media print {
  .table-wrap:has(.rep-table) { max-height: none !important; overflow: visible !important; }
  .rep-table { font-size:10px; }
  .rep-table thead { display: table-header-group; }
  .rep-table thead th {
    position: static;
    background:#f8fafc !important; color:#000 !important;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
}
.lease-doc {
  max-width: 860px; margin: 0 auto; padding: 28px 36px 44px;
  background: #fff; color: #111; font-size: 13.5px; line-height: 1.58;
  border: 1px solid var(--line); border-radius: 8px;
  font-family: "Times New Roman", Times, serif;
  text-align: justify;
}
.lease-head { display:flex; gap:16px; align-items:flex-start; border-bottom:3px solid #1e3a8a; padding-bottom:12px; margin-bottom:18px; }
.lease-head img { border-radius: 0; background: transparent; box-shadow: none; object-fit: contain; }
.lease-head strong { display:block; color:#1e3a8a; font-size:15px; letter-spacing:.02em; }
.lease-head p { margin:6px 0 0; font-size:12px; color:#334155; }
.lease-doc h1 { text-align:center; font-size:18px; margin:10px 0 18px; color:#0f172a; }
.lease-doc h1 span { display:block; font-size:13px; font-weight:600; color:#475569; margin-top:4px; }
.lease-doc h2 { font-size:14px; margin:18px 0 8px; color:#1e3a8a; }
.lease-doc h3 { font-size:14px; margin:16px 0 6px; }
.lease-ol { padding-left: 22px; }
.lease-ol li { margin: 6px 0; }
.lease-center { text-align:center; margin: 22px 0; }
.lease-sign { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; }
.office-sign-block {
  display:grid; grid-template-columns: minmax(0, 1fr) 168px; align-items:center;
  gap:8px 10px; margin:6px 0 10px;
}
.office-sign-img { display:block; height:64px; width:auto; max-width:190px; object-fit:contain; }
.office-seal { width:168px; height:auto; justify-self:end; transform:rotate(-8deg); }
.office-sign-who { grid-column:1 / -1; margin:2px 0 0; font-size:15px; line-height:1.35; }
.office-sign-who span { color:#1e3a8a; font-size:11px; letter-spacing:.02em; }
.inv-office { max-width: 560px; margin-top: 14px; }
.office-seal-foot { margin: 18px 0 4px; }
.office-seal-foot .office-seal { width: 176px; justify-self: start; }
.inv-record {
  margin: 12px 0 0; padding-top: 8px; border-top: 1px solid #cbd5e1;
  font-size: 12.5px; line-height: 1.55; color: #0f172a;
}
.inv-record b { font-weight: 700; }
@media print {
  .office-seal, .office-sign-img {
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
}
.contract-wrap { display:grid; grid-template-columns: 340px 1fr; gap:16px; align-items:start; }
.contract-wrap.is-modern { gap: 18px; }
.contract-form h3 { margin-top:0; }
.contract-wrap.is-modern .contract-form,
.contract-wrap.is-modern .contract-preview {
  border-radius: 16px; box-shadow: 0 14px 36px -28px #0f172a;
}
.contract-wrap.is-modern .contract-preview .lease-doc { margin: 0; }
.lease-kpis { margin: 0 0 14px; }
.lease-kpis .snap.on { outline: 2px solid #0f766e; outline-offset: 1px; }
.lease-kpis .snap.is-hot b { color: #b45309; }
.lease-board { border-radius: 16px; overflow: hidden; }
.lease-table thead th { position: sticky; top: 0; z-index: 2; background: var(--card); }
.lease-head-modern h1 { letter-spacing: -.02em; }
@media (max-width: 980px) {
  .contract-wrap { grid-template-columns: 1fr; }
  .lease-sign { grid-template-columns: 1fr; }
}
html[data-theme="dark"] {
  --bg:#0b1220; --card:#111827; --text:#e5e7eb; --muted:#94a3b8; --line:#1f2937;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}
html[data-theme="dark"] .topbar,
html[data-theme="dark"] .card,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .search,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .who,
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .form input,
html[data-theme="dark"] .form select,
html[data-theme="dark"] .form textarea,
html[data-theme="dark"] .filter input,
html[data-theme="dark"] .filter select {
  background:#111827; color:var(--text); border-color:#1f2937;
}
html[data-theme="dark"] .search { background:#0b1220; }
html[data-theme="dark"] .search-go { background:#2563eb; color:#fff; }
html[data-theme="dark"] .find-box { background:#111827; border-color:#1f2937; }
html[data-theme="dark"] table th { color:#94a3b8; }
html[data-theme="dark"] tr:hover td { background:#0b1220; }
html[data-theme="dark"] .kpi-row div, html[data-theme="dark"] .cred-box, html[data-theme="dark"] .quote { background:#0b1220; }
html[data-theme="dark"] .quote p { color:#cbd5e1; }
html[data-theme="dark"] .auth-panel { background: rgba(7,11,20,.78); }
html[data-theme="dark"] .auth-card { background:#111827; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
html[data-theme="dark"] .auth-card h2, html[data-theme="dark"] .auth-brand { color: var(--text); }
html[data-theme="dark"] .auth-support { color: #94a3b8; }
html[data-theme="dark"] .cal-ev, html[data-theme="dark"] .cal-ev.end { background:#1e3a8a; color:#dbeafe; }
html[data-theme="dark"] .cal-ev.start { background:#064e3b; color:#6ee7b7; }
html[data-theme="dark"] .cal-ev.soon { background:#78350f; color:#fde68a; }
html[data-theme="dark"] .cal-ev.expired { background:#7f1d1d; color:#fecaca; }
html[data-theme="dark"] .cal-cell.muted, html[data-theme="dark"] .cal-cell.weekend { background:#0b1220; }
html[data-theme="dark"] .cal-cell.in-week:not(.today):not(.selected) { background:#1e1b4b; }
html[data-theme="dark"] .cal-cell.today { background:#172554; }
html[data-theme="dark"] .cal-pill { background: #111827; border-color: #1f2937; }
html[data-theme="dark"] .cal-pill.on { background: #2563eb; border-color: #2563eb; }
html[data-theme="dark"] .cal-mini { background: #111827; }
html[data-theme="dark"] .cal-mini-grid a.start { background: #064e3b; color: #6ee7b7; }
html[data-theme="dark"] .cal-mini-grid a.end { background: #1e3a8a; color: #dbeafe; }
html[data-theme="dark"] .cal-mini-grid a.soon { background: #78350f; color: #fde68a; }
html[data-theme="dark"] .cal-mini-grid a.expired { background: #7f1d1d; color: #fecaca; }
html[data-theme="dark"] .cal-mini-h em { background: #1e3a8a; color: #bfdbfe; }
html[data-theme="dark"] .cal-overdue-banner { background: linear-gradient(90deg, #3f1d1d, #111827); border-color:#7f1d1d; }
html[data-theme="dark"] .cal-num em { background:#1e3a8a; color:#bfdbfe; }
html[data-theme="dark"] code { background:#1e3a8a; color:#bfdbfe; }
html[data-theme="dark"] body { background: var(--bg); color: var(--text); }
html[data-theme="dark"] .icon-btn { background: transparent; }
html[data-theme="dark"] .icon-btn:hover { background: rgba(255,255,255,.08); color:#e5e7eb; }
html[data-theme="dark"] .who { background:#0b1220; }
html[data-theme="dark"] .stat, html[data-theme="dark"] .card { background: var(--card); }
html[data-theme="dark"] .site-foot { color: var(--muted); }
html[data-theme="dark"] .google-btn { background:#111827; color:#e5e7eb; border-color:#1f2937; }
html[data-theme="dark"] .google-btn:hover { background:#0b1220; }
html[data-theme="dark"] .cred-box { background:#0b1220; border-color:#1f2937; }
html[data-theme="dark"] .cred-box strong, html[data-theme="dark"] .cred-box div { color:#cbd5e1; }
html[data-theme="dark"] .mini-list li { border-color:#1f2937; }
html[data-theme="dark"] .prop-meta a { background: #1f2937; }
html[data-theme="dark"] .prop-card.is-hot { border-color: #7f1d1d; }
html[data-theme="dark"] .prop-search { background: #111827; border-color: #1f2937; }
html[data-theme="dark"] .prop-kpis a { background: #0b1220; }
html[data-theme="dark"] .prop-aside { background: #0b1220; border-color: #334155; }
html[data-theme="dark"] .prop-aside a { background: #111827; }
html[data-theme="dark"] .prop-aside a.is-store { background: #1c1917; }
html[data-theme="dark"] .prop-occ-slim { background: #111827; }
html[data-theme="dark"] tr.hl td { background: #172554; }
html[data-theme="dark"] tr.is-soon td { background: #1c1910; }
html[data-theme="dark"] tr.group-row td { background: #0b1220; }

.btn.excel { background:#059669; color:#fff; border:0; }
.btn.excel:hover { filter: brightness(1.05); }
.btn.pdf { background:#b91c1c; color:#fff; border:0; }
.btn.pdf:hover { filter: brightness(1.05); }
.btn.small.excel, .btn.small.pdf { font-size:11px; padding:6px 10px; }
.toolbar { background: var(--card); border:1px solid var(--line); border-radius: 14px; padding: 12px; box-shadow: var(--shadow); align-items:center; }
.section-title { font-size:18px; margin: 8px 0 4px; }
.count-chip { display:inline-flex; align-items:center; background:#e0e7ff; color:#1e3a8a; font-weight:800; font-size:12px; padding:6px 12px; border-radius:999px; }
.pill { display:inline-block; background:#f1f5f9; border-radius:999px; padding:2px 8px; font-weight:700; font-size:12px; margin-left:4px; }
.num { font-variant-numeric: tabular-nums; font-weight:700; white-space:nowrap; }
table.nice th { background:#f8fafc; font-size:12px; letter-spacing:.02em; text-transform:uppercase; }
.empty-state { text-align:center; padding:28px 12px; color:var(--muted); }
.empty-state i { font-size:28px; margin-bottom:8px; display:block; color:#94a3b8; }
.rep-hub { display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap:14px; margin-bottom:20px; }
.rep-hub-card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px; box-shadow:var(--shadow); }
.rep-hub-card.on { border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.18); }
.rep-hub-top { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.rep-hub-top strong { font-size:15px; }
.rep-hub-top span { color:var(--muted); font-size:12px; font-weight:600; }
.rep-hub-top.all strong { color:#1d4ed8; }
.rep-actions { display:flex; flex-wrap:wrap; gap:6px; }
.rep-scope { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 0; }
.rep-quick { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.rep-groups { display:grid; grid-template-columns: repeat(2, 1fr); gap:16px; margin-bottom:22px; }
.rep-group { margin:0; padding-bottom:8px; }
.rep-kind-list { list-style:none; margin:0; padding:0; }
.rep-kind-list li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 4px; border-bottom:1px solid var(--line); }
.rep-kind-list li:last-child { border-bottom:0; }
.rep-kind-list li.on { background:#eff6ff; margin:0 -8px; padding:8px 12px; border-radius:10px; border-bottom-color:transparent; }
.rep-kind-name { display:flex; align-items:center; gap:10px; color:inherit; font-weight:700; font-size:13px; min-width:0; flex:1; }
.rep-kind-name i { width:18px; color:#2563eb; }
.rep-export { display:flex; flex-wrap:nowrap; gap:6px; align-items:center; justify-content:flex-end; flex-shrink:0; position:relative; z-index:2; }
.rep-export.mini .btn { padding:6px 9px; }
.rep-drop { position:relative; display:inline-block; }
.rep-drop > summary { list-style:none; cursor:pointer; }
.rep-drop > summary::-webkit-details-marker { display:none; }
.rep-drop-menu {
  position:absolute; top:calc(100% + 6px); right:0; z-index:12;
  min-width:190px; background:var(--card); border:1px solid var(--line);
  border-radius:12px; box-shadow:0 12px 28px rgba(15,23,42,.12); padding:6px;
}
.rep-drop-menu a { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; color:inherit; font-size:12px; font-weight:600; }
.rep-drop-menu a:hover { background:#f1f5f9; }
html[data-theme="dark"] .rep-kind-list li.on { background:#172554; }
html[data-theme="dark"] .rep-drop-menu a:hover { background:#1f2937; }
@media (max-width: 960px) {
  .rep-groups { grid-template-columns: 1fr; }
}
.pay-tabs { display: flex; margin: 4px 0 18px; }
.pay-tabs-track {
  display: inline-flex; gap: 4px; padding: 5px; background: #e8eef7;
  border-radius: 16px; box-shadow: inset 0 1px 2px rgba(15,23,42,.06);
}
.pay-tab {
  appearance: none; border: 0; background: transparent; color: #475569;
  font: inherit; font-weight: 700; font-size: 14px; padding: 11px 18px; border-radius: 12px;
  cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
  transition: background .28s cubic-bezier(.22,1,.36,1), color .28s ease, box-shadow .28s ease, transform .16s ease;
}
.pay-tab i { color: #64748b; transition: color .28s ease; }
.pay-tab b { font-size: 12px; background: #fff; padding: 2px 8px; border-radius: 999px; color: #334155; }
.pay-tab:hover { color: #0f172a; }
.pay-tab:active { transform: scale(.97); }
.pay-tab.on { background: #fff; color: #0f172a; box-shadow: 0 6px 16px rgba(15,23,42,.1); }
.pay-tab.on i { color: #2563eb; }
.pay-pane[hidden] { display: none !important; }
.pay-studio { overflow: hidden; border: 0; box-shadow: 0 18px 50px rgba(15,23,42,.08); }
.pay-studio-h {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  padding: 22px 24px 18px;
  background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%);
  color: #fff;
}
.pay-studio-h h2 { margin: 4px 0 6px; font-size: 22px; letter-spacing: -.03em; }
.pay-studio-h p { margin: 0; color: #bfdbfe; font-size: 13px; max-width: 46ch; }
.pay-kicker { font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #93c5fd !important; }
.pay-studio-h > i { font-size: 36px; opacity: .35; }
.pay-record { position: static; max-height: none; overflow: visible; }
.pay-record-form { padding: 18px 20px 12px; }
.pay-record-form label { font-size: 12px; font-weight: 700; color: #475569; }
.pay-record-cols { display: grid; grid-template-columns: 1.05fr .95fr; gap: 8px 32px; align-items: start; }
.pay-money { display: flex; flex-direction: column; gap: 4px; }
.pay-who { display: flex; flex-direction: column; gap: 10px; }
.pay-who-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pay-search-wrap {
  display: flex; align-items: center; gap: 10px;
  background: #f8fafc; border: 1px solid #dbe3ee; border-radius: 16px;
  padding: 4px 14px; min-height: 52px;
}
.pay-search-wrap:focus-within { border-color: #2563eb; box-shadow: 0 0 0 4px rgba(37,99,235,.14); background: #fff; }
.pay-search-wrap i { color: #64748b; }
.pay-search-wrap input { border: 0; background: transparent; outline: none; width: 100%; font: inherit; font-size: 15px; padding: 12px 0; }
.pay-history .table-wrap { max-height: none; }
.pay-pick-list {
  max-height: min(380px, 48vh); overflow: auto; border: 1px solid #e2e8f0; border-radius: 16px;
  background: #fff; margin-top: 4px;
}
.pay-pick-item {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; border: 0;
  border-bottom: 1px solid #f1f5f9; background: #fff; padding: 11px 14px; cursor: pointer; font: inherit;
}
.pay-pick-item:last-child { border-bottom: 0; }
.pay-pick-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pay-pick-item b { display: block; font-size: 14px; color: #0f172a; }
.pay-pick-item span { display: block; font-size: 12px; color: #64748b; }
.pay-pick-item:hover { background: #f8fafc; }
.pay-pick-item.on { background: linear-gradient(90deg, #eff6ff, #fff); box-shadow: inset 3px 0 0 #2563eb; }
.pay-pick-item.on b { color: #1d4ed8; }
.pay-av {
  width: 38px; height: 38px; border-radius: 12px; flex-shrink: 0;
  display: grid; place-items: center; font-size: 12px; font-weight: 800;
  background: #e0e7ff; color: #3730a3;
}
.pay-av.lg { width: 52px; height: 52px; font-size: 16px; border-radius: 16px; }
.pay-pick-item.on .pay-av { background: #2563eb; color: #fff; }
.pay-picked {
  display: flex; gap: 14px; align-items: flex-start;
  margin-top: 8px; padding: 14px 16px; border-radius: 18px;
  background: linear-gradient(180deg, #eff6ff, #fff); border: 1px solid #bfdbfe;
}
.pay-picked-body { min-width: 0; }
.pay-picked small { display:block; font-weight:800; color:#2563eb; text-transform:uppercase; letter-spacing:.06em; font-size:10px; margin-bottom:2px; }
.pay-picked strong { display:block; font-size:20px; line-height:1.2; color:#0f172a; }
.pay-picked-place { margin-top:4px; font-weight:600; color:#334155; }
.pay-picked-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:8px; font-size:13px; color:#475569; }
.pay-picked-sum { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #93c5fd; font-weight: 800; color: #1e3a8a; }
.pay-file {
  margin-top: 12px; padding: 12px 14px; border-radius: 14px;
  background: #f8fafc; border: 1px solid #cbd5e1; color: #0f172a;
  font-size: 13px; font-weight: 650; line-height: 1.45;
}
.pay-file span { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #475569; margin-bottom: 4px; font-weight: 800; }
.pay-dmy { position: relative; }
.pay-dmy-lab {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums;
  pointer-events: none; color: #0f172a; letter-spacing: .02em;
}
.pay-dmy input[type="date"] { color: transparent; }
.pay-dmy input[type="date"]::-webkit-datetime-edit,
.pay-dmy input[type="date"]::-webkit-datetime-edit-fields-wrapper,
.pay-dmy input[type="date"]::-webkit-datetime-edit-text,
.pay-dmy input[type="date"]::-webkit-datetime-edit-month-field,
.pay-dmy input[type="date"]::-webkit-datetime-edit-day-field,
.pay-dmy input[type="date"]::-webkit-datetime-edit-year-field { color: transparent; }
.pay-dmy input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer; opacity: 1; position: absolute; right: 10px; width: 22px; height: 22px;
}
.pay-total-hero {
  background: linear-gradient(135deg, #ecfdf5, #eff6ff);
  border: 1px solid #bbf7d0; border-radius: 18px; padding: 16px 18px; margin-bottom: 12px;
}
.pay-total-hero span { display: block; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #047857; }
.pay-total-hero strong { display: block; font-size: 28px; letter-spacing: -.03em; margin-top: 4px; color: #064e3b; }
.pay-legal {
  margin-top: 12px; padding: 12px 14px; border-radius: 16px;
  background: linear-gradient(180deg, #fff7ed, #fff); border: 1px solid #fdba74;
  color: #9a3412; font-size: 13px; font-weight: 700; line-height: 1.45;
}
.pay-legal span { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #c2410c; margin-bottom: 4px; }
.pay-cover { display: flex; flex-direction: column; gap: 2px; font-weight: 700; color: #1e3a8a; white-space: nowrap; }
.pay-cover small { font-weight: 600; color: #64748b; }
.pay-end { font-weight: 800; color: #0f172a; }
.pay-end.is-soon { color: #c2410c; }
.pay-end.is-expired { color: #b91c1c; }
.pay-history table.nice th, .pay-history table.nice td { vertical-align: top; }
.pay-history .table-wrap { overflow-x: auto; overflow-y: hidden; max-height: none; }
html[data-theme="dark"] .pay-legal { background: #431407; border-color: #9a3412; color: #fdba74; }
html[data-theme="dark"] .pay-cover { color: #93c5fd; }
html[data-theme="dark"] .pay-end { color: #f8fafc; }
.pay-period { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pay-methods { display: flex; flex-wrap: wrap; gap: 8px; }
.pay-methods label {
  cursor: pointer; border: 1px solid var(--line); border-radius: 999px; padding: 8px 14px;
  font-size: 13px; font-weight: 700; background: #fff;
}
.pay-methods label input { display: none; }
.pay-methods label.on { background: #0f172a; color: #fff; border-color: #0f172a; }
html[data-theme="dark"] .pay-methods label { background: #0b1220; color: #e2e8f0; border-color: #334155; }
html[data-theme="dark"] .pay-methods label.on { background: #93c5fd; color: #0f172a; border-color: #93c5fd; }
.tenant-reg-pay {
  display: grid; gap: 12px 14px; grid-template-columns: 1fr 1fr;
  margin: 12px 0 4px; align-items: end;
}
.tenant-reg-pay > label { display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: #334155; }
.tenant-reg-pay input[type="number"] { min-height: 42px; border-radius: 12px; font-size: 14px; }
.tenant-reg-pay-method span {
  display: block; font-size: 12px; font-weight: 700; color: #334155; margin-bottom: 8px;
}
@media (max-width: 640px) { .tenant-reg-pay { grid-template-columns: 1fr; } }
html[data-theme="dark"] .tenant-reg-pay > label,
html[data-theme="dark"] .tenant-reg-pay-method span { color: #cbd5e1; }
.pay-date { min-height: 44px; font-size: 15px; border-radius: 12px; }
.pay-form-actions {
  display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--line);
}
.pay-form-actions .btn { flex: 1; justify-content: center; min-width: 140px; }
html[data-theme="dark"] .pay-tabs-track { background: #0b1220; }
html[data-theme="dark"] .pay-tab.on { background: #1e293b; color: #f8fafc; }
html[data-theme="dark"] .pay-search-wrap, html[data-theme="dark"] .pay-pick-list, html[data-theme="dark"] .pay-pick-item { background: #0b1220; border-color: #1f2937; }
html[data-theme="dark"] .pay-pick-item b { color: #f8fafc; }
html[data-theme="dark"] .pay-pick-item:hover { background: #111827; }
html[data-theme="dark"] .pay-picked { background: #172554; border-color: #1e3a8a; }
html[data-theme="dark"] .pay-picked strong { color: #f8fafc; }
html[data-theme="dark"] .pay-picked-place { color: #cbd5e1; }
html[data-theme="dark"] .pay-picked-sum { color: #93c5fd; border-color: #1e3a8a; }
html[data-theme="dark"] .pay-file { background: #0b1220; border-color: #334155; color: #e2e8f0; }
html[data-theme="dark"] .pay-dmy-lab { color: #f8fafc; }
html[data-theme="dark"] .pay-total-hero { background: #052e1a; border-color: #14532d; }
html[data-theme="dark"] .pay-total-hero strong { color: #6ee7b7; }
@media (max-width: 900px) {
  .pay-record-cols, .pay-who-filters, .pay-period { grid-template-columns: 1fr; }
}
.pay-verify, .pay-corrections { margin-bottom: 12px; border: 0; box-shadow: none; }
.pay-verify { padding: 0; }
.pay-verify > details > summary.card-h { margin: 0; padding: 8px 14px; }
.pay-history { border: 0; overflow: hidden; box-shadow: 0 18px 50px rgba(15,23,42,.08); }
.pay-verify details[open] summary, .pay-corrections details[open] summary { border-bottom: 1px solid var(--line); }
.pay-corrections summary.card-h { display:flex; align-items:center; gap:10px; }
#menuBtn { display: none; }
html[data-theme="dark"] .toolbar, html[data-theme="dark"] table.nice th { background:#111827; }
html[data-theme="dark"] .count-chip { background:#1e3a8a; color:#dbeafe; }
html[data-theme="dark"] .pill { background:#1f2937; }
@media (max-width: 860px) {
  .pay-grid { grid-template-columns: 1fr; }
  .pay-record { position: static; max-height: none; }
  .pay-history .table-wrap { max-height: none; }
  .rep-actions .btn { flex: 1 1 46%; justify-content: center; }
}
.side-veil { display: none; position: fixed; inset: 0; background: rgba(15,23,42,.48); z-index: 70; }
.side-veil.on { display: block; }
.install-panel { margin-bottom: 16px; }
.install-hero {
  display: flex; gap: 14px; align-items: flex-start; padding: 4px 2px 8px; position: relative;
}
.install-hero h2 { margin: 0 0 4px; font-size: 1.25rem; }
.install-hero p { margin: 0; color: var(--muted); line-height: 1.45; max-width: 52ch; }
.install-hero-ico {
  width: 52px; height: 52px; flex: 0 0 auto; border-radius: 16px; display: grid; place-items: center;
  font-size: 22px; color: #fff; background: linear-gradient(145deg, #123a6b, #1d4ed8);
  box-shadow: 0 12px 28px -16px rgba(29,78,216,.8);
}
.install-ver { position: absolute; right: 0; top: 0; font-size: 12px; }
.install-live {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 10px !important;
  padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 700;
  color: #065f46; background: #d1fae5;
}
.install-ok { color: #065f46; font-weight: 700; }
.install-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 14px 0 8px; }
.install-card {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid var(--line); border-radius: 20px; padding: 18px 14px 16px;
  display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
  box-shadow: var(--shadow);
}
.install-card i { font-size: 28px; color: #2563eb; }
.install-card strong { font-size: 14px; }
.install-card span, .install-card .hint { color: var(--muted); font-size: 12px; line-height: 1.45; margin: 0; }
.install-card .btn { width: 100%; justify-content: center; min-height: 44px; }
.install-more { width: 100%; text-align: left; }
.install-more summary { cursor: pointer; list-style: none; font-size: 12px; font-weight: 800; color: #2563eb; }
.install-more summary::-webkit-details-marker { display: none; }
.install-more[open] summary { margin-bottom: 6px; }
.install-steps { margin: 0; padding-left: 18px; text-align: left; color: var(--muted); font-size: 12.5px; line-height: 1.45; }
.install-steps li + li { margin-top: 6px; }
.install-card.is-you { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.18), var(--shadow); order: -1; }
.install-you { display: none; font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #1d4ed8; background: #dbeafe; border-radius: 999px; padding: 3px 8px; }
.install-card.is-you .install-you { display: inline-flex; }
.dev-mark { display: inline-flex; align-items: center; gap: 8px; }
.bst-logo {
  height: 32px; width: auto; max-width: 160px; object-fit: contain;
  background: #000; border-radius: 10px; display: block; vertical-align: middle;
}
.bst-logo-lg { height: 64px; max-width: 240px; border-radius: 14px; }
.print-dev a { display: inline-flex; align-items: center; gap: 8px; color: inherit; }
.auth-support .dev-mark { display: flex; justify-content: center; margin-bottom: 8px; }
.dev-grid { display: grid; grid-template-columns: minmax(180px, .4fr) 1fr; gap: 16px; align-items: start; }
html[data-theme="dark"] .install-card { background: linear-gradient(180deg, #111827 0%, #0b1220 100%); }
@media (max-width: 960px) {
  .install-grid { grid-template-columns: 1fr 1fr; }
  .dev-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .install-grid { grid-template-columns: 1fr; gap: 12px; }
  .install-card { align-items: stretch; text-align: left; padding: 16px; border-radius: 18px; }
  .install-card .btn { min-height: 48px; font-size: 15px; }
  .install-steps { font-size: 14px; }
}
.avatar-preview { display: flex; gap: 14px; align-items: center; margin-bottom: 12px; }
.avatar-preview img { width: 112px; height: 112px; border-radius: 20px; object-fit: cover; object-position: center 18%; background: #e2e8f0; }
.profile-grid { align-items: start; }
.prof-page { display: grid; gap: 16px; }
.prof-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.prof-kpi {
  display: flex; flex-direction: column; gap: 4px; min-width: 0;
  background: var(--card, #fff);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px 14px 12px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
  color: inherit; text-decoration: none; text-align: left;
  font: inherit; cursor: pointer;
}
.prof-kpi i { color: #2563eb; margin-bottom: 4px; }
.prof-kpi b { font-size: 20px; letter-spacing: -.03em; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prof-kpi span { font-size: 12px; font-weight: 700; color: var(--muted); }
.prof-kpi small { font-size: 11px; color: #94a3b8; }
.prof-kpi.is-ok i, .prof-kpi.is-ok b { color: #2563eb; }
.prof-kpi.is-warn i, .prof-kpi.is-warn b { color: #dc2626; }
.prof-kpi.is-teal i, .prof-kpi.is-teal b { color: #0f766e; }
.prof-kpi.is-violet i, .prof-kpi.is-violet b { color: #7c3aed; }
.prof-identity { margin: 0; }
.prof-identity .meter { margin: 10px 0 4px; }
.prof-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  position: sticky; top: var(--top-offset); z-index: 12;
  padding: 8px 0;
  background: color-mix(in srgb, var(--bg, #f8fafc) 92%, transparent);
}
.prof-tab, a.prof-tab {
  border: 1px solid var(--line);
  background: var(--card, #fff);
  color: var(--text);
  border-radius: 999px;
  padding: 8px 14px;
  font: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer; text-decoration: none;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.prof-tab.is-on { background: #2563eb; border-color: #2563eb; color: #fff; }
.prof-tab.is-on .prof-unread { background: #fff; color: #1d4ed8; }
.prof-panel[hidden] { display: none !important; }
.prof-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.prof-fields .span2 { grid-column: 1 / -1; }
.prof-fields .hint { margin-top: 6px; }
.prof-actions {
  display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center;
  gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line);
}
.prof-actions .btn { min-width: 140px; justify-content: center; }
.prof-panel[data-prof-panel="2fa"] .prof-actions { justify-content: flex-start; }
.prof-panel[data-prof-panel="activity"] .card-h { flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.prof-2fa-note { margin: 12px 0 0; }
.prof-act { list-style: none; margin: 0; padding: 0; display: grid; }
.prof-act li {
  display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start;
  padding: 12px 0; border-bottom: 1px solid var(--line);
}
.prof-act li.is-unread { background: #f8fbff; margin: 0 -8px; padding: 12px 8px; border-radius: 12px; }
.prof-act b { display: block; font-size: 14px; }
.prof-act span { display: block; font-size: 13px; color: var(--muted); }
.prof-act small { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.prof-act-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }
.prof-unread { background: #dbeafe; color: #1d4ed8; border-radius: 99px; padding: 2px 8px; font-size: 11px; font-weight: 800; }
@media (max-width: 1100px) {
  .prof-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .prof-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prof-fields { grid-template-columns: 1fr; }
  .prof-fields .span2 { grid-column: auto; }
  .prof-actions { justify-content: stretch; }
  .prof-actions .btn { flex: 1; }
  .prof-tabs { top: var(--top-offset); }
}
@media (max-width: 480px) {
  .prof-kpis { grid-template-columns: 1fr; }
}
html[data-theme="dark"] .prof-kpi,
html[data-theme="dark"] .prof-tab { box-shadow: none; }
html[data-theme="dark"] .prof-act li.is-unread { background: #172554; }
.pass-row { display: flex; gap: 8px; align-items: center; }
.pass-row input { flex: 1; min-width: 0; }
.table-wrap { -webkit-overflow-scrolling: touch; }
.cred-box div { flex-wrap: wrap; }
@media (max-width: 1280px) {
  .cal-dow .full { display:none; }
  .cal-dow .short { display:block; }
}
@media (max-width: 1100px) {
  .stats, .grid-2, .cal-stats { grid-template-columns: 1fr 1fr; }
  .cal-layout { grid-template-columns: 1fr; }
  .cal-side { position: static; }
  .cal-dow .full { display:block; }
  .cal-dow .short { display:none; }
  .rooms-form-card { position: static; }
  .flems-grid { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
  .sidebar { transform: translateX(-100%); transition: .2s; padding-top: calc(16px + env(safe-area-inset-top)); }
  .sidebar.open { transform: none; }
  .side-close { display: grid; top: calc(10px + env(safe-area-inset-top)); }
  .sidebar .brand { padding-right: 42px; }
  .wrap { margin-left: 0; }
  #menuBtn { display: grid; }
  .stats, .grid-2 { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .rooms-grid .table-wrap { max-height: none; }
  .search { max-width: none; min-width: 0; }
  .clock-box { display: flex; }
  #liveClock { font-size: 12px; }
  .mobile-only { display: block; }
  .main { padding: 16px; }
  .page-head h1 { font-size: 22px; }
  .who-link div { display: none; }
  .cal-cell { min-height: 72px; padding: 6px; font-size: 12px; }
  .cal-dow .full { display:none; }
  .cal-dow .short { display:block; }
  .cal-ev .meta { display:none; }
  .cal-stats { grid-template-columns: 1fr; }
  .site-foot { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 640px) {
  .topbar { padding: calc(8px + env(safe-area-inset-top)) 10px 8px; gap: 8px; }
  .topbar-row { display: flex; flex-wrap: nowrap; gap: 6px; }
  .clock-box { order: 0; flex: 0 1 auto; max-width: 42%; justify-content: flex-start; }
  #liveClock { font-size: 11px; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .clock-status .clock-up { display: none; }
  #histFwd, #histReload { display: none; }
  .sidebar { width: min(86vw, 300px); padding-top: calc(14px + env(safe-area-inset-top)); }
  .main { padding: 14px 12px calc(16px + env(safe-area-inset-bottom)); }
  .search { display: flex; min-width: 0; width: 100%; max-width: none; min-height: 44px; }
  .search-go { padding: 8px 10px; }
  .head-actions { width: 100%; }
  .head-actions .btn { flex: 1; justify-content: center; }
  .cal-nav .cal-month { width: 100%; min-width: 0; order: -1; }
  .auth-card { padding: 22px 16px; border-radius: 18px; }
  .kpi-row { grid-template-columns: 1fr; }
  .page-head h1 { font-size: 22px; }
}
.kpi-up { color: #059669 !important; font-weight: 800; }
.kpi-down { color: #dc2626 !important; font-weight: 800; }
.rooms-list-card .table-wrap { max-height: 72vh; overflow: auto; }
.flems-grid { grid-template-columns: minmax(0, 1.2fr) minmax(300px, 1fr); }
.flems-grid select { max-width: 100%; }
#flemForm { scroll-margin-top: 88px; }
.rooms-tools .find-box { flex: 1 1 220px; min-width: 180px; }
#roomForm { scroll-margin-top: 88px; }
.rooms-form-card { position: sticky; top: 12px; }
#userForm { scroll-margin-top: 88px; }
.users-who { display: flex; gap: 10px; align-items: center; min-width: 0; }
.users-who strong { display: block; font-size: 13px; }
.users-who small { color: var(--muted); font-size: 11px; font-weight: 650; }
.users-av { position: relative; flex-shrink: 0; }
.users-av img { width: 40px; height: 40px; border-radius: 12px; object-fit: cover; object-position: center 18%; background: #0b1220; display: block; }
.users-av.on::after {
  content: ""; position: absolute; right: -1px; bottom: -1px; width: 10px; height: 10px;
  background: #22c55e; border: 2px solid var(--card); border-radius: 99px;
}
.users-live { color: #15803d; font-weight: 800; font-size: 12px; }
.users-away { color: #b91c1c; font-weight: 800; font-size: 12px; }
tr.is-frozen td { background: #fef2f2; }
tr.is-live td { background: #f0fdf4; }
tr.is-live.is-frozen td { background: #fff7ed; }
.users-form-meta { margin: 10px 0 0; font-size: 12px; }
[id^="u-"] { scroll-margin-top: 88px; }
html[data-theme="dark"] tr.is-frozen td { background: #3f1d1d; }
html[data-theme="dark"] tr.is-live td { background: #052e16; }
html[data-theme="dark"] tr.is-live.is-frozen td { background: #431407; }
html[data-theme="dark"] .users-live { color: #86efac; }
tr.is-soon td { background: #fffbeb; }
.type-chips { display:flex; flex-wrap:wrap; gap:8px; margin: -4px 0 16px; }
.form-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; }
.form-grid .span2 { grid-column: 1 / -1; }
.form-grid label { margin-top: 8px; }
.company-form textarea { width:100%; }
.company-form .about-shot-img { max-height:140px; border-radius:10px; margin-bottom:8px; }
.row-acts { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.row-acts form { display:inline; margin:0; }
tr.hl td { background: #eff6ff; }
tr.group-row td { background: #f8fafc; font-weight: 800; font-size: 12px; letter-spacing: .02em; padding: 8px 12px; }
.rooms-grid .table-wrap { max-height: 68vh; overflow: auto; }
.inline-move { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.inline-move select {
  max-width: 260px; font: inherit; font-size: 12px;
  border: 1px solid var(--line); border-radius: 10px; padding: 6px 8px;
  background: var(--card); color: var(--text);
}
.lease-move-box {
  margin-top: 8px; padding: 14px 16px; border-radius: 16px;
  border: 1px solid #bfdbfe; background: linear-gradient(180deg, #eff6ff, #fff);
}
.lease-move-h { margin-bottom: 10px; }
.lease-move-h strong { display:block; font-size: 15px; color: #1e3a8a; }
.lease-move-h .muted { display:block; margin-top: 2px; font-size: 12px; }
.lease-move-form { display: grid; gap: 10px; align-items: stretch; }
.lease-move-form select { max-width: none; width: 100%; min-height: 42px; font-size: 14px; border-radius: 12px; }
.lease-move-lab { display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: #334155; }
.lease-move-rent { display: flex; flex-wrap: wrap; gap: 8px; }
.lease-move-rent label {
  cursor: pointer; border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px;
  font-size: 12px; font-weight: 700; background: #fff;
}
.lease-move-rent label input { margin-right: 6px; }
.lease-move-rent label.on, .lease-move-rent label:has(input:checked) {
  background: #0f172a; color: #fff; border-color: #0f172a;
}
.rent-edit-box {
  margin: 10px 0 6px; padding: 14px 16px; border-radius: 16px;
  border: 1px solid #fcd34d; background: linear-gradient(180deg, #fffbeb, #fff);
}
.rent-edit-box strong { display: block; color: #92400e; font-size: 14px; }
.rent-edit-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.rent-edit-quick .chip {
  border: 1px solid #f59e0b; background: #fff; color: #92400e;
  border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 800; cursor: pointer;
}
.rent-edit-quick .chip.on, .rent-edit-quick .chip:hover { background: #92400e; color: #fff; border-color: #92400e; }
html[data-theme="dark"] .rent-edit-box { background: #422006; border-color: #b45309; }
html[data-theme="dark"] .rent-edit-box strong { color: #fcd34d; }
html[data-theme="dark"] .lease-move-box { background: #172554; border-color: #1e3a8a; }
html[data-theme="dark"] .lease-move-h strong { color: #93c5fd; }
html[data-theme="dark"] .lease-move-rent label { background: #0b1220; border-color: #334155; }
.lease-add-room-box {
  margin: 16px 0 0; padding: 16px 18px; border-radius: 16px;
  border: 1px solid #a7f3d0; background: linear-gradient(180deg, #ecfdf5, #fff);
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}
.lease-add-room-h { margin-bottom: 12px; }
.lease-add-room-h strong { display: block; font-size: 16px; color: #047857; letter-spacing: -.01em; }
.lease-add-room-h .muted { display: block; margin-top: 4px; font-size: 13px; line-height: 1.45; max-width: 52rem; }
.lease-add-room-form {
  display: grid; gap: 12px 14px;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}
.lease-add-room-span2 { grid-column: 1 / -1; }
.lease-add-room-lab {
  display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: #334155; margin: 0;
}
.lease-add-room-lab input,
.lease-add-room-lab select {
  width: 100%; max-width: none; min-height: 42px; font-size: 14px; font-weight: 500;
  border-radius: 12px; border: 1px solid var(--line); padding: 8px 12px;
  background: var(--card); color: var(--text);
}
.lease-add-room-hint {
  font-size: 11px; font-weight: 500; color: #64748b; line-height: 1.35;
}
.lease-add-room-end {
  grid-column: 1 / -1;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px;
  padding: 10px 14px; border-radius: 12px; background: #f0fdf4; border: 1px dashed #6ee7b7;
}
.lease-add-room-end-lab { font-size: 12px; font-weight: 700; color: #065f46; }
.lease-add-room-end strong { font-size: 15px; color: #047857; }
.lease-add-room-actions { grid-column: 1 / -1; padding-top: 4px; }
.lease-add-room-actions .btn { width: 100%; min-height: 44px; font-size: 14px; border-radius: 12px; }
@media (max-width: 640px) {
  .lease-add-room-form { grid-template-columns: 1fr; }
  .lease-add-room-span2 { grid-column: auto; }
}
html[data-theme="dark"] .lease-add-room-box { background: linear-gradient(180deg, #064e3b, #0b1220); border-color: #059669; }
html[data-theme="dark"] .lease-add-room-h strong { color: #6ee7b7; }
html[data-theme="dark"] .lease-add-room-end { background: #022c22; border-color: #047857; }
html[data-theme="dark"] .lease-add-room-end-lab { color: #a7f3d0; }
html[data-theme="dark"] .lease-add-room-end strong { color: #6ee7b7; }
.tenant-reg-block {
  margin: 20px 0 0; padding: 18px 20px; border-radius: 16px;
  border: 1px solid var(--line); background: linear-gradient(180deg, #f8fafc, var(--card));
  box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
}
.tenant-reg-title { margin: 0 0 10px; font-size: 17px; color: #1e3a8a; letter-spacing: -.02em; }
.tenant-reg-grid {
  display: grid; gap: 12px 14px; grid-template-columns: 1fr 1fr; margin: 12px 0;
}
.tenant-reg-span2 { grid-column: 1 / -1; }
.tenant-reg-grid label { display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: #334155; }
.tenant-reg-grid input { min-height: 42px; border-radius: 12px; font-size: 14px; }
.tenant-reg-pack-lab { margin: 12px 0 8px; font-size: 12px; font-weight: 800; color: #475569; text-transform: uppercase; letter-spacing: .04em; }
.tenant-reg-packs {
  display: grid; gap: 10px; margin: 0 0 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tenant-reg-pack {
  display: block; cursor: pointer; margin: 0; position: relative;
  border: 2px solid #e2e8f0; border-radius: 16px; padding: 0;
  background: #fff; transition: border-color .15s, box-shadow .15s, transform .12s;
  min-height: 100%;
}
.tenant-reg-pack:hover { border-color: #93c5fd; transform: translateY(-1px); }
.tenant-reg-pack input {
  position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap;
}
.tenant-reg-pack-body { display: block; padding: 14px 12px; text-align: center; }
.tenant-reg-pack-ico {
  display: inline-flex; width: 40px; height: 40px; border-radius: 12px;
  align-items: center; justify-content: center; margin: 0 auto 8px;
  background: #eff6ff; color: #2563eb; font-size: 18px;
}
.tenant-reg-pack-ico.offer { background: #fef3c7; color: #d97706; }
.tenant-reg-pack-ico.manual { background: #f1f5f9; color: #475569; }
.tenant-reg-pack-body strong { display: block; font-size: 13px; color: #0f172a; line-height: 1.3; }
.tenant-reg-pack-body small { display: block; margin-top: 6px; font-size: 11px; color: #64748b; line-height: 1.35; }
.tenant-reg-pack-body em {
  display: block; margin-top: 6px; font-size: 11px; font-style: normal; font-weight: 700; color: #1d4ed8;
}
.tenant-reg-pack.is-selected, .tenant-reg-pack:has(input:checked) {
  border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .14);
  background: linear-gradient(180deg, #eff6ff, #fff);
}
.tenant-reg-pack.is-selected .tenant-reg-pack-ico, .tenant-reg-pack:has(input:checked) .tenant-reg-pack-ico {
  background: #2563eb; color: #fff;
}
.tenant-reg-locked {
  display: flex; align-items: flex-start; gap: 12px; margin: 0 0 12px;
  padding: 12px 14px; border-radius: 14px; border: 1px solid #bbf7d0; background: #f0fdf4;
}
.tenant-reg-locked i { color: #16a34a; font-size: 20px; margin-top: 2px; }
.tenant-reg-locked p { margin: 4px 0 0; font-size: 13px; }
.tenant-reg-manual {
  margin: 0 0 12px; padding: 14px 16px; border-radius: 14px;
  border: 1px dashed #94a3b8; background: #f8fafc;
}
.tenant-reg-manual-h { font-size: 13px; font-weight: 800; color: #334155; margin-bottom: 10px; }
.tenant-reg-manual-h i { margin-right: 6px; color: #64748b; }
.tenant-reg-rent-quick { margin-top: 4px; }
.tenant-dup-box {
  margin: 12px 0; padding: 12px 14px; border-radius: 14px;
  border: 1px solid #fcd34d; background: #fffbeb;
}
.tenant-dup-box.is-block { border-color: #f87171; background: #fef2f2; }
.tenant-dup-head { display: flex; align-items: center; gap: 8px; color: #92400e; font-size: 13px; }
.tenant-dup-box.is-block .tenant-dup-head { color: #b91c1c; }
.tenant-dup-list { margin: 10px 0 0; padding: 0; list-style: none; }
.tenant-dup-list li { padding: 8px 0; border-top: 1px solid rgba(0,0,0,.06); font-size: 13px; }
.tenant-dup-list li span.muted { display: block; font-size: 11px; margin-top: 2px; }
.tenant-dup-ack { margin-top: 8px; font-size: 12px; }
@media (max-width: 800px) { .tenant-reg-packs { grid-template-columns: 1fr; } }
.tenant-reg-totals {
  display: grid; gap: 8px; margin: 14px 0; padding: 14px 16px;
  border-radius: 14px; border: 1px dashed #93c5fd; background: #eff6ff;
}
.tenant-reg-totals div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; }
.tenant-reg-totals span { color: #475569; font-weight: 600; }
.tenant-reg-totals strong { font-size: 15px; color: #1e3a8a; }
.tenant-reg-totals .tenant-reg-grand { padding-top: 8px; border-top: 1px solid #bfdbfe; }
.tenant-reg-totals .tenant-reg-grand strong { font-size: 18px; color: #1d4ed8; }
.tp-wa-line { margin: 8px 0 0; font-size: 13px; color: #ecfdf5; }
.tp-wa-line a { color: #fff; font-weight: 700; text-decoration: underline; }
.tp-wa-line .fa-whatsapp { color: #4ade80; margin-right: 6px; }
@media (max-width: 640px) { .tenant-reg-grid { grid-template-columns: 1fr; } .tenant-reg-span2 { grid-column: auto; } }
html[data-theme="dark"] .tenant-reg-block { background: linear-gradient(180deg, #0f172a, #111827); border-color: #334155; }
html[data-theme="dark"] .tenant-reg-title { color: #93c5fd; }
html[data-theme="dark"] .tenant-reg-pack { background: #0b1220; border-color: #334155; }
html[data-theme="dark"] .tenant-reg-pack.on, html[data-theme="dark"] .tenant-reg-pack:has(input:checked) { background: #172554; }
html[data-theme="dark"] .tenant-reg-totals { background: #172554; border-color: #1e40af; }
.tenant-new-layout { grid-template-columns: 1fr !important; max-width: 920px; }
.tenant-reg-hero {
  display: flex; align-items: center; gap: 16px; margin: 0 0 16px; padding: 18px 20px;
  border-radius: 18px; border: 1px solid #bfdbfe;
  background: linear-gradient(135deg, #eff6ff, #fff 55%, #f0fdf4);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .06);
}
.tenant-reg-hero-ico {
  width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
  background: #2563eb; color: #fff; font-size: 22px; flex-shrink: 0;
}
.tenant-reg-hero h2 { margin: 0 0 4px; font-size: 20px; color: #1e3a8a; }
.tenant-reg-hero p { margin: 0; font-size: 13px; color: #475569; line-height: 1.45; }
.tenant-reg-card { border-radius: 18px; padding: 4px 2px 8px; }
.treg-sec {
  margin: 0 0 8px; padding: 16px 18px 12px; border-radius: 16px;
  border: 1px solid var(--line); background: var(--card);
}
.treg-sec-h { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.treg-sec-h h3 { margin: 0; font-size: 15px; color: #1e3a8a; letter-spacing: -.02em; }
.treg-step {
  width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center;
  font-size: 12px; font-weight: 800; background: #2563eb; color: #fff; flex-shrink: 0;
}
.tenant-reg-sub { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #334155; }
.tenant-welcome-sms { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: #f0fdf4; border: 1px solid #bbf7d0; }
html[data-theme="dark"] .tenant-reg-hero { background: linear-gradient(135deg, #172554, #0b1220); border-color: #1e40af; }
html[data-theme="dark"] .tenant-reg-hero h2 { color: #93c5fd; }
html[data-theme="dark"] .treg-sec { background: #0b1220; }
html[data-theme="dark"] .treg-sec-h h3 { color: #93c5fd; }
.tenant-draft-banner, .tp-alert.tenant-draft-banner {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px;
  margin: 0 0 16px; padding: 14px 16px; border-radius: 14px;
  border: 1px solid #fcd34d; background: linear-gradient(180deg, #fffbeb, #fff);
  color: #78350f;
}
.tenant-draft-banner i { font-size: 22px; color: #d97706; }
.tenant-draft-banner strong { display: block; font-size: 15px; }
.tenant-draft-banner p { margin: 4px 0 0; font-size: 13px; color: #92400e; }
.tenant-reg-actions .btn[formnovalidate] { border-style: dashed; }
.snap.amber.on, .snap.amber:hover { border-color: #f59e0b; background: #fffbeb; }
.snap.amber .fa-file-pen { color: #d97706; }
html[data-theme="dark"] .tenant-draft-banner { background: #422006; border-color: #b45309; color: #fde68a; }
html[data-theme="dark"] .tenant-draft-banner p { color: #fcd34d; }
.lease-tools { position: sticky; top: var(--top-offset); z-index: 14; background: color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(10px); padding: 8px 0; }
.lease-log { max-height: 68vh; overflow: auto; }
.lease-more { width: 100%; }
.lease-more summary { cursor: pointer; font-size: 12px; font-weight: 800; color: #64748b; }
.lease-more-body { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
tr.is-expired td { background: #fef2f2; }
tr.is-ended td { opacity: .72; }
html[data-theme="dark"] tr.is-expired td { background: #3f1d1d; }
.notif-wrap { position: relative; }
.notif-badge {
  position: absolute; top: -4px; right: -4px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: #ef4444; color: #fff; border-radius: 99px;
  font-size: 10px; font-weight: 800; display: grid; place-items: center;
}
.notif-drop {
  position: absolute; right: 0; top: 46px; width: min(400px, 94vw);
  background: var(--card); border: 1px solid var(--line); border-radius: 16px;
  box-shadow: var(--shadow); z-index: 50; overflow: hidden;
}
.notif-drop-h { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line); }
.notif-drop-h a { font-size: 13px; font-weight: 700; color: #2563eb; text-decoration: none; }
.notif-tools { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:8px 12px; border-bottom:1px solid var(--line); background:#f8fafc; }
.notif-tools-btns { display:flex; flex-wrap:wrap; gap:6px; margin-left: auto; }
.btn.mini { padding: 4px 8px; font-size: 11px; border-radius: 9px; }
.notif-selall { font-size: 12px; font-weight: 700; margin: 0; }
.notif-clear-all { color: #b91c1c; }
.notif-list { list-style:none; margin:0; padding:0; max-height: 360px; overflow:auto; }
.notif-list li { display:flex; gap:8px; align-items:flex-start; border-bottom:1px solid var(--line); }
.notif-pick { padding: 12px 0 12px 10px; }
.notif-list li a { flex:1; display:block; padding:10px 12px 10px 0; color:inherit; min-width:0; }
.notif-list li a:hover { background: #f8fafc; }
.notif-k { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:4px; }
.notif-kind {
  font-size: 11px; font-weight: 650; color: #475569;
  background: #f1f5f9; padding: 2px 8px; border-radius: 999px;
}
.notif-dot {
  font-size: 10px; font-weight: 800; color: #1d4ed8;
  background: #dbeafe; padding: 2px 7px; border-radius: 999px;
}
.notif-list li.hot .notif-kind { background: #fee2e2; color: #b91c1c; }
.notif-list li b { display:block; font-size:14px; line-height:1.35; white-space:normal; }
.notif-list li a > span { display:block; margin-top:2px; font-size:13px; line-height:1.4; color:var(--text, #334155); white-space:normal; }
.notif-list li.unread { background: #eff6ff; }
.notif-list li.hot, .notif-list li.hot.unread { background: #fef2f2; }
.notif-list li.is-read { opacity: .78; }
.notif-page-h { flex-wrap: wrap; gap: 10px; }
.notif-table tr.unread td { background: #eff6ff; }
.dash-alert {
  display:flex; align-items:center; gap:14px; margin-bottom:16px;
  padding: 14px 16px; border-radius: 16px; text-decoration:none; color:inherit;
  background: linear-gradient(90deg, #eff6ff, #fff); border: 1px solid #bfdbfe;
  box-shadow: var(--shadow);
}
.dash-alert i { width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:#2563eb; color:#fff; }
.dash-alert span { display:block; color:var(--muted); font-size:13px; max-width: 720px; }
.dash-alert b { margin-left:auto; color:#2563eb; font-size:13px; }
html[data-theme="dark"] .notif-tools { background:#0b1220; }
html[data-theme="dark"] .notif-list li a:hover { background:#0b1220; }
html[data-theme="dark"] .notif-list li.unread { background:#172554; }
html[data-theme="dark"] .notif-list li.hot, html[data-theme="dark"] .notif-list li.hot.unread { background:#3f1d1d; }
html[data-theme="dark"] .notif-kind { background:#1f2937; color:#cbd5e1; }
html[data-theme="dark"] .notif-list li.hot .notif-kind { background:#7f1d1d; color:#fecaca; }
html[data-theme="dark"] .notif-dot { background:#1e3a8a; color:#bfdbfe; }
html[data-theme="dark"] .notif-table tr.unread td { background:#172554; }
html[data-theme="dark"] .dash-alert { background: linear-gradient(90deg, #172554, #111827); border-color:#1e3a8a; }
.unit-inline { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.unit-inline input, .unit-inline select { min-width: 90px; max-width: 160px; }
.unit-meta { margin-top: 8px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.flem-card { border: 1px solid #c7d2fe; }
html[data-theme="dark"] .flem-card { border-color:#3730a3; }
.search { position: relative; }
.search-suggest {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px);
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: var(--shadow); z-index: 60; overflow: hidden;
}
.search-suggest a { display:block; padding:8px 12px; text-decoration:none; color:inherit; }
.search-suggest a:hover { background: #f1f5f9; }
.search-suggest a b { display:block; font-size:13px; }
.search-suggest a span { font-size:12px; color:var(--muted); }
.search-hist { border-bottom: 1px solid var(--line); }
.search-hist.page { border: 0; padding: 0 0 8px; }
.search-hist-h { display:flex; justify-content:space-between; align-items:center; padding:8px 12px 4px; font-size:12px; }
.search-hist-clr, .search-hist-x { border:0; background:transparent; color:var(--muted); cursor:pointer; font:inherit; font-weight:700; }
.search-hist-clr:hover, .search-hist-x:hover { color:#b91c1c; }
.search-hist-row { display:flex; align-items:center; gap:6px; }
.search-hist-row a { flex:1; padding:8px 12px; }
.search-hist-x { width:32px; font-size:18px; line-height:1; }
.auth-remember { display:flex; align-items:center; gap:8px; margin:10px 0 4px; font-size:13px; }
.auth-saved { margin: 12px 0 4px; }
.auth-saved-h { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.auth-saved-item { display:inline-flex; align-items:center; gap:2px; }
.auth-saved-x { min-width:28px; padding:4px 8px; }
.search-hits { display:flex; flex-direction:column; gap:10px; }
.search-hit { display:grid; grid-template-columns: 44px 1fr auto; gap:12px; align-items:center; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.search-hit-i { width:44px; height:44px; border-radius:12px; background:#eff6ff; color:#1d4ed8; display:grid; place-items:center; }
.search-hit-b h3 { margin:0; font-size:16px; }
.search-hit-b p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.search-hit-a { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.unit-hit { outline: 2px solid #2563eb; background: #eff6ff; }
.prof-hero { display:grid; grid-template-columns: 148px 1fr; gap:22px; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:22px; margin-bottom:16px; align-items:start; }
.prof-hero.is-former { background: linear-gradient(180deg, #f8fafc, var(--card)); }
.tp-cover {
  position: relative; overflow: visible; border-radius: 24px; margin-bottom: 16px;
  color: #fff; padding: 22px 24px 20px;
  background: linear-gradient(135deg, #0f172a, #1d4ed8 55%, #0ea5e9);
  min-height: 220px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .18);
}
.tp-cover.basihaya { background: linear-gradient(135deg, #1e3a8a, #2563eb 50%, #38bdf8); }
.tp-cover.mbweni { background: linear-gradient(135deg, #064e3b, #10b981); }
.tp-cover.kunu { background: linear-gradient(135deg, #9a3412, #f59e0b); }
.tp-cover.sigara { background: linear-gradient(135deg, #9f1239, #ef4444); }
.tp-cover.kibosho { background: linear-gradient(135deg, #4c1d95, #8b5cf6); }
.tp-cover.is-flem { background: linear-gradient(135deg, #134e4a, #0f766e 55%, #d97706); }
.tp-kind { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; background: rgba(255,255,255,.16); }
.badge.is-flem { background: #ccfbf1; color: #115e59; }
.badge.is-apt { background: #dbeafe; color: #1e3a8a; }
.tp-cover.has-photo {
  background-image: linear-gradient(180deg, rgba(8,15,30,.55) 0%, rgba(8,15,30,.78) 100%), var(--apt-photo);
  background-size: cover; background-position: center;
}
.tp-cover-shade {
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background: linear-gradient(180deg, rgba(15,23,42,.55) 0%, rgba(15,23,42,.82) 55%, rgba(15,23,42,.92) 100%);
}
.tp-cover.has-photo .tp-cover-shade { display:block; }
.tp-cover:not(.has-photo) .tp-cover-shade { display:none; }
.tp-cover-top { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; position:relative; z-index:1; }
.tp-cover h1 { margin: 2px 0 4px; font-size: 32px; letter-spacing: -.03em; }
.tp-cover .kicker { margin:0; color:#bfdbfe; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.tp-sub { margin:0; color:#e2e8f0; font-size:14px; }
.tp-cover-acts { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; justify-content:flex-end; }
.tp-dock {
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin-top: 16px; padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.2);
  position: relative; z-index: 2;
}
.tp-dock .btn { font-size: 12px; padding: 7px 11px; }
.tp-dock .lease-amehama { background: #b91c1c; border-color: #991b1b; color: #fff; }
.tp-dock form.tp-amehama { display: inline-flex; margin: 0; }
.tp-dock .share-bar.compact { gap: 6px; }
.tp-dock .share-bar.compact .cbtn.fb,
.tp-dock .share-bar.compact .cbtn.x,
.tp-dock .share-bar.compact .cbtn.mail,
.tp-dock .share-bar.compact .cbtn.tg,
.tp-dock .share-bar.compact .cbtn.copy,
.tp-dock .share-bar.compact .cbtn.file { display: none; }
.tp-vac { position: relative; }
.tp-vac > summary { list-style: none; cursor: pointer; }
.tp-vac > summary::-webkit-details-marker { display: none; }
.tp-vac-menu {
  position: absolute; left: 0; top: calc(100% + 6px);
  min-width: 180px; padding: 8px;
  background: #fff; color: #0f172a;
  border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 14px 32px rgba(15,23,42,.18); z-index: 30;
}
.tp-vac-menu a {
  display: block; padding: 8px 10px; border-radius: 8px;
  text-decoration: none; color: inherit; font-size: 13px; font-weight: 650;
}
.tp-vac-menu a:hover { background: #f1f5f9; }
html[data-theme="dark"] .tp-vac-menu { background: #111827; color: #e5e7eb; border-color: #1f2937; }
html[data-theme="dark"] .tp-vac-menu a:hover { background: #0b1220; }
.vac-days { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.vac-days .chip { cursor: pointer; }
.vac-days .chip input { display: none; }
.tp-cover .btn.ghost.light, .tp-cover .share-bar a, .tp-cover .share-bar button {
  background: rgba(255,255,255,.12); color:#fff; border-color: rgba(255,255,255,.28);
}
.tp-cover-body { display:grid; grid-template-columns: 128px 1fr; gap:18px; align-items:end; margin-top:18px; position:relative; z-index:1; }
.tp-face { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.tp-face-wrap { position:relative; display:inline-block; }
.tp-face img, .tp-face .prof-avatar { width:112px; height:112px; border-radius:22px; object-fit:cover; box-shadow: 0 10px 24px rgba(0,0,0,.28); border:3px solid rgba(255,255,255,.7); }
.tp-face-wrap.is-live img { border-color:#4ade80; box-shadow:0 0 0 3px rgba(74,222,128,.45), 0 10px 24px rgba(0,0,0,.28); }
.tp-on-dot { position:absolute; right:6px; bottom:6px; width:16px; height:16px; border-radius:50%; background:#94a3b8; border:2px solid #fff; }
.tp-face-wrap.is-live .tp-on-dot { background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.35); }
.tp-on-lab { color:#e2e8f0; font-size:11px; font-weight:700; }
.tp-on-lab.is-on { color:#bbf7d0; }
.tp-cover .btn.ghost.light.is-live-chat { background:#16a34a; border-color:#16a34a; color:#fff; }
.tp-live-grid { display:grid; grid-template-columns: minmax(220px, .9fr) 1.2fr; gap:18px; padding:4px 4px 8px; }
.tp-live-st { font-weight:800; margin:0 0 8px; }
.tp-live-st.is-on { color:#15803d; }
.tp-live-st i { font-size:10px; margin-right:6px; }
.tp-bubbles { list-style:none; margin:0; padding:0; max-height:280px; overflow:auto; display:flex; flex-direction:column; gap:8px; }
.tp-bubbles li { background:#f8fafc; border-radius:14px; padding:8px 12px; }
.tp-bubbles li.from-staff { background:#eff6ff; }
.tp-bubbles li b { display:block; font-size:12px; }
.tp-bubbles li small { color:#64748b; font-size:11px; }
.tp-live-form { display:flex; gap:8px; margin-top:10px; align-items:flex-end; }
.tp-live-form textarea { flex:1; min-height:52px; }
.tp-asks-list { border-top:1px solid var(--line); padding:12px 4px 4px; margin-top:8px; }
.tp-asks-list h3 { margin:0 0 8px; font-size:14px; }
@media (max-width: 860px) { .tp-live-grid { grid-template-columns: 1fr; } }
.tp-id .rate-box { background: rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.16); }
.tp-id .meter { background: rgba(255,255,255,.22); }
.tp-id .rate-box small, .tp-id .rate-tone { color:#e2e8f0; }
.rate-tone { margin:6px 0 0; font-size:12px; max-width:420px; }
.tp-pills { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.tp-stats { display:grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap:12px; margin-bottom:16px; }
.tp-stat {
  background:var(--card); border:1px solid var(--line); border-radius:18px; padding:16px 18px;
  box-shadow:0 1px 0 rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.tp-stat:hover { transform: translateY(-1px); box-shadow:0 4px 20px rgba(15,23,42,.08); }
.tp-stat span { display:block; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.tp-stat b { display:block; margin-top:6px; font-size:20px; letter-spacing:-.03em; font-weight:800; }
.tp-alert { box-shadow:0 8px 28px rgba(15,23,42,.06); }
.tp-alert .head-actions, .tp-alert .btn { flex-shrink:0; }
.tp-dock { backdrop-filter: blur(8px); background:rgba(15,23,42,.35); border-radius:14px; padding:10px; margin-top:12px; }
.renew-studio.card { max-width: 980px; padding: 8px 8px 20px; }
.renew-chips { display:flex; flex-wrap:wrap; gap:8px; }
.renew-chips .chip { min-width:4.5rem; }
.span-mode { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; }
.span-mode .chk { margin: 0; padding: 8px 12px; border: 1px solid var(--line, #e5e7eb); border-radius: 999px; background: #fff; }
.span-mode .chk:has(input:checked) { border-color: #2563eb; background: #eff6ff; }
html[data-theme="dark"] .span-mode .chk { background: #0f172a; }
html[data-theme="dark"] .span-mode .chk:has(input:checked) { background: #1e3a8a; }
.renew-live {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
  margin: 4px 0 8px; padding: 12px; border-radius: 14px;
  background: #f8fafc; border: 1px solid #e2e8f0;
}
.renew-live span { display: block; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.renew-live b { display: block; margin-top: 3px; font-size: 16px; color: #0f172a; }
.renew-live .is-total { background: #eff6ff; border-radius: 12px; padding: 8px 10px; }
.renew-live .is-total b { color: #1d4ed8; font-size: 20px; }
.renew-terms .check-row { display:flex; gap:10px; align-items:flex-start; font-size:14px; line-height:1.45; cursor:pointer; font-weight:600; }
.renew-terms .check-row span { flex: 1; min-width: 0; }
.renew-terms input { margin-top: 3px; flex-shrink: 0; }
html[data-theme="dark"] .renew-live { background: #0f172a; border-color: #334155; }
html[data-theme="dark"] .renew-live b { color: #f8fafc; }
html[data-theme="dark"] .renew-live .is-total { background: #172554; }
@media (max-width: 720px) {
  .renew-live { grid-template-columns: 1fr 1fr; }
}
.renew-water-line { background:#f0f9ff; border:1px solid #bae6fd; border-radius:12px; padding:12px 14px; }
html[data-theme="dark"] .renew-water-line { background:#0c4a6e33; border-color:#0369a1; }
tr.row-rent-debt td { background:#fef2f2 !important; box-shadow: inset 3px 0 0 #dc2626; }
tr.row-rent-expired td { background:#fffbeb !important; box-shadow: inset 3px 0 0 #f59e0b; }
tr.row-rent-current td, tr.row-rent-prepaid td { background:#ecfdf5 !important; box-shadow: inset 3px 0 0 #10b981; }
html[data-theme="dark"] tr.row-rent-debt td { background:#1c1010 !important; box-shadow: inset 3px 0 0 #f87171; }
html[data-theme="dark"] tr.row-rent-expired td { background:#1c1917 !important; box-shadow: inset 3px 0 0 #fbbf24; }
html[data-theme="dark"] tr.row-rent-current td, html[data-theme="dark"] tr.row-rent-prepaid td { background:#052e1a !important; box-shadow: inset 3px 0 0 #34d399; }
.sms-status-reason { font-size:12px; color:#b45309; margin-top:4px; max-width:420px; }
html[data-theme="dark"] .sms-status-reason { color:#fbbf24; }
.print-audit-code {
  margin-top:14px; padding-top:8px; border-top:1px dashed #94a3b8;
  font:600 11px/1.4 ui-monospace, monospace; letter-spacing:.12em; text-align:right; color:#64748b;
}
@media print {
  .print-audit-code { color:#334155; font-size:10px; }
}
.tp-shortcuts { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.tp-reasons { margin:0 0 14px; padding-left:18px; color:var(--muted); font-size:13px; }
.tp-alert { display:flex; gap:12px; align-items:center; flex-wrap:wrap; border-radius:16px; padding:12px 14px; margin-bottom:14px; border:1px solid var(--line); }
.tp-alert.ok, .tp-alert.current, .tp-alert.prepaid, .tp-alert.renewed { background:#ecfdf5; border-color:#a7f3d0; }
.tp-alert.renewed, .tp-alert.prepaid { box-shadow:0 0 0 1px rgba(16,185,129,.25), 0 10px 28px rgba(16,185,129,.12); }
.tp-alert.soon { background:#fffbeb; border-color:#fde68a; }
.tp-alert.expired { background:#fffbeb; border-color:#fcd34d; box-shadow:0 0 0 1px rgba(245,158,11,.2); }
.tp-alert.debt, .tp-alert.tp-debt-glow { background:#fef2f2; border-color:#fca5a5; box-shadow:0 0 0 1px rgba(220,38,38,.22), 0 12px 30px rgba(220,38,38,.16); }
.rent-legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin:0 0 14px; font-size:.88rem; }
.rent-legend span { display:inline-flex; align-items:center; gap:6px; }
.rent-legend i { width:10px; height:10px; border-radius:999px; display:inline-block; }
.rent-legend .c-debt i { background:#dc2626; }
.rent-legend .c-expired i { background:#f59e0b; }
.rent-legend .c-current i, .rent-legend .c-prepaid i { background:#16a34a; }
.staff-hint { margin-bottom:12px; padding:8px 14px; border-left:4px solid #2563eb; }
.staff-hint-h { display:flex; align-items:center; gap:8px; cursor:pointer; list-style:none; }
.staff-hint-h::-webkit-details-marker { display:none; }
.staff-hint[open] .staff-hint-h { margin-bottom:8px; }
.staff-hint-steps { margin:0; padding-left:1.2rem; color:var(--muted, #64748b); }
.staff-hint-steps li { margin:4px 0; }
.pay-rent-badge { font-size:.72rem; font-weight:700; padding:2px 7px; border-radius:999px; margin-left:6px; vertical-align:middle; }
.pay-rent-badge.debt { background:#fee2e2; color:#b91c1c; }
.pay-rent-badge.expired { background:#fef3c7; color:#b45309; }
.pay-rent-badge.current, .pay-rent-badge.prepaid { background:#dcfce7; color:#15803d; }
.pay-rent-badge.soon { background:#fef9c3; color:#a16207; }
tr.is-dup-pay { background: #fff7ed; }
html[data-theme="dark"] tr.is-dup-pay { background: #1c1917; }
.pay-mode-chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.tp-lease-dates { display:flex; flex-direction:column; gap:4px; margin:6px 0 0; font-size:.92rem; color:var(--muted, #64748b); }
.tp-lease-dates .is-renew { color:#047857; font-weight:600; }
.tp-lease-dates .is-debt { color:#b91c1c; font-weight:600; }
.tp-stat.is-renew { background:#ecfdf5; border:1px solid #a7f3d0; border-radius:14px; padding:10px 12px; box-shadow:0 8px 20px rgba(16,185,129,.12); }
.tp-stat.is-debt { background:#fef2f2; border:1px solid #fecaca; border-radius:14px; padding:10px 12px; box-shadow:0 8px 22px rgba(220,38,38,.14); }
.tp-stat.is-renew small, .tp-stat.is-debt small { display:block; margin-top:4px; font-size:.8rem; opacity:.9; }
.kv li.is-renew { background:#ecfdf5; border-radius:10px; padding:6px 8px; box-shadow:inset 0 0 0 1px #a7f3d0; }
.kv li.is-debt { background:#fef2f2; border-radius:10px; padding:6px 8px; box-shadow:inset 0 0 0 1px #fecaca; }
html[data-theme="dark"] .tp-alert.ok, html[data-theme="dark"] .tp-alert.renewed { background:#052e1a; }
html[data-theme="dark"] .tp-alert.soon { background:#1c1917; }
html[data-theme="dark"] .tp-alert.expired { background:#1c1917; box-shadow:0 0 0 1px rgba(251,191,36,.25); }
html[data-theme="dark"] .tp-alert.debt, html[data-theme="dark"] .tp-alert.tp-debt-glow { background:#1c1010; box-shadow:0 0 0 1px rgba(248,113,113,.28), 0 12px 30px rgba(127,29,29,.35); }
html[data-theme="dark"] .tp-alert.current, html[data-theme="dark"] .tp-alert.prepaid { background:#052e1a; }
html[data-theme="dark"] .tp-stat.is-renew { background:#052e1a; border-color:#065f46; }
html[data-theme="dark"] .tp-stat.is-debt { background:#1c1010; border-color:#7f1d1d; }
html[data-theme="dark"] .kv li.is-renew { background:#052e1a; }
html[data-theme="dark"] .kv li.is-debt { background:#1c1010; }
.tp-activity { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.tp-activity li { border-bottom:1px solid var(--line); padding:8px 0; display:grid; gap:2px; }
.tp-activity b { font-size:14px; }
.tp-activity span { font-size:13px; color:var(--muted); }
.tp-activity small { font-size:12px; color:var(--muted); }
.tp-activity-scroll { max-height: 320px; overflow: auto; padding-right: 6px; }
.tp-act-day { margin: 0 0 8px; }
.tp-act-day > b {
  display: block; position: sticky; top: 0; z-index: 1;
  background: var(--card, #fff); font-size: 12px; padding: 6px 0 4px;
}
.tp-act-day ul { list-style: none; margin: 0; padding: 0; }
.tp-act-day li {
  display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 8px;
  padding: 6px 0; border-bottom: 1px solid var(--line);
}
.tp-act-day time { font-size: 12px; font-weight: 800; color: var(--muted); padding-top: 2px; }
.tp-act-day strong { display: block; font-size: 13px; }
.tp-act-day span, .tp-act-day small { display: block; font-size: 12px; color: var(--muted); }
.tp-act-day span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-theme="dark"] .tp-act-day > b { background: var(--card, #111827); }
html[data-theme="dark"] .tp-stat { background:#111827; }
html[data-theme="dark"] .tp-alert.ok { background:#052e1a; }
html[data-theme="dark"] .tp-alert.soon { background:#1c1917; }
html[data-theme="dark"] .tp-alert.expired { background:#1c1010; }
@media (max-width: 720px) {
  .tp-cover-body { grid-template-columns: 1fr; }
}
.prof-photo { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.prof-photo img, .prof-mini img, .prof-avatar { width:128px; height:128px; object-fit:cover; border-radius:20px; background:#e2e8f0; }
.prof-avatar { display:grid; place-items:center; font-weight:800; font-size:36px; letter-spacing:.04em; color:#1e3a8a; background:linear-gradient(145deg,#dbeafe,#eff6ff); border:1px solid #bfdbfe; }
.prof-mini { display:flex; gap:12px; align-items:center; margin:10px 0; }
.prof-mini img, .prof-mini .prof-avatar { width:40px; height:40px; border-radius:12px; font-size:13px; flex-shrink:0; }
.former-banner { display:flex; gap:14px; align-items:center; flex-wrap:wrap; background:#f8fafc; border:1px solid var(--line); border-radius:16px; padding:14px 16px; margin-bottom:16px; }
.former-banner i { color:#64748b; font-size:22px; }
.former-banner p { margin:2px 0 0; color:var(--muted); font-size:13px; }
.former-banner strong { display:block; }
.former-banner .btn { margin-left:auto; }
.former-banner.is-leaving { background:#fffbeb; border-color:#fde68a; }
.former-banner.is-leaving i { color:#d97706; }
.people-hero {
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  margin-bottom:18px; padding:18px 20px; border-radius:20px;
  background: linear-gradient(135deg, #f8fafc, #fff); border:1px solid var(--line);
}
.people-hero.is-former { background: linear-gradient(135deg, #f1f5f9, #fff); }
.people-hero-mark {
  width:48px; height:48px; border-radius:16px; display:grid; place-items:center;
  background:#0f172a; color:#fff; font-size:18px; flex-shrink:0;
}
.people-hero.is-former .people-hero-mark { background:#475569; }
.people-hero h1 { margin:0 0 4px; font-size:26px; letter-spacing:-.03em; }
.people-hero p { margin:0; color:var(--muted); font-size:13px; max-width:560px; }
.people-hero .head-actions { margin-left:auto; }
.people-tabs {
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px;
}
.people-tabs a {
  display:flex; align-items:baseline; gap:8px;
  padding:8px 14px; border-radius:999px; text-decoration:none; color:inherit;
  background:#fff; border:1px solid var(--line); font-size:13px;
}
.people-tabs a b { font-size:15px; }
.people-tabs a span { color:var(--muted); font-weight:600; }
.people-tabs a.on { background:#0f172a; color:#fff; border-color:#0f172a; }
.people-tabs a.on span { color:#cbd5e1; }
.people-filter {
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px;
}
.people-filter select, .people-filter input[type="search"] {
  border:1px solid var(--line); border-radius:12px; padding:10px 12px; font:inherit; background:var(--card); color:var(--text);
}
.people-filter input[type="search"] { flex:1; min-width:200px; }
.people-count { margin:0 0 12px; font-size:12px; color:var(--muted); font-weight:600; }
.people-list { display:grid; gap:10px; }
.person-card {
  display:grid; grid-template-columns: auto 1fr auto; gap:14px; align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px 16px;
}
.person-card[hidden] { display: none; }
.person-card.is-leaving { background:#fffbeb; border-color:#fde68a; }
.person-card.is-debt { background:#fef2f2; border-color:#fecaca; }
.person-card.is-former { background:#f8fafc; }
.person-face img, .person-face .prof-avatar {
  width:56px; height:56px; border-radius:16px; font-size:16px; display:block;
}
.person-name { color:inherit; text-decoration:none; }
.person-name strong { font-size:15px; }
.person-tags { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0; }
.person-meta { list-style:none; margin:0; padding:0; display:grid; gap:2px; font-size:13px; color:#475569; }
.person-meta .leaving-note { color:#b45309; font-weight:600; }
.person-side { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.person-acts { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.people-empty { padding:40px 16px; }
html[data-theme="dark"] .people-hero, html[data-theme="dark"] .person-card { background:#111827; }
html[data-theme="dark"] .person-card.is-leaving { background:#1c1917; border-color:#92400e; }
html[data-theme="dark"] .person-card.is-debt { background:#1c1010; border-color:#7f1d1d; }
html[data-theme="dark"] .people-tabs a { background:#111827; }
html[data-theme="dark"] .people-tabs a.on { background:#f8fafc; color:#0f172a; }
@media (max-width: 720px) {
  .person-card { grid-template-columns: auto 1fr; }
  .person-side { grid-column: 1 / -1; align-items:flex-start; }
}
.rate-box { display:flex; gap:12px; align-items:center; margin-top:12px; padding:12px 14px; background:#f8fafc; border-radius:14px; }
.rate-box strong { font-size:32px; line-height:1; }
.rate-box .meter { width:180px; }
.rate-ex strong { color:#059669; }
.rate-good strong { color:#2563eb; }
.rate-fair strong { color:#d97706; }
.rate-risk strong, .rate-bad strong { color:#dc2626; }
.kv { list-style:none; margin:0; padding:0; }
.kv li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); }
.kv li span { color:var(--muted); }
#room-now, #room-lived, #room-pays { scroll-margin-top: 88px; }
.room-stays { display: flex; flex-direction: column; gap: 10px; padding: 0 16px 16px; }
.room-stay {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: 16px; background: #f8fafc;
}
.room-stay.is-now { background: linear-gradient(90deg, #eff6ff, #fff); border-color: #bfdbfe; box-shadow: inset 3px 0 0 #2563eb; }
.room-stay img { width: 48px; height: 48px; border-radius: 14px; object-fit: cover; flex-shrink: 0; background: #0b1220; }
.room-stay-body { min-width: 0; flex: 1; }
.room-stay-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.room-stay-h strong { font-size: 15px; }
.room-stay-pay { margin: 4px 0 0; font-size: 12px; font-weight: 700; color: #334155; }
.room-stay-pay b { font-size: 16px; color: #1d4ed8; }
html[data-theme="dark"] .room-stay { background: #0b1220; }
html[data-theme="dark"] .room-stay.is-now { background: #172554; border-color: #1e3a8a; }
html[data-theme="dark"] .room-stay-pay { color: #cbd5e1; }
.apt-hero {
  position: relative; border-radius: 24px; overflow: hidden; min-height: 240px;
  padding: 28px 28px 26px; color: #fff; margin-bottom: 16px;
  background: linear-gradient(135deg, #1e3a8a, #2563eb 55%, #0ea5e9);
  box-shadow: 0 20px 50px rgba(37,99,235,.22);
}
.apt-hero.basihaya { background: linear-gradient(135deg, #1e3a8a, #2563eb 50%, #38bdf8); }
.apt-hero.mbweni { background: linear-gradient(135deg, #064e3b, #10b981); }
.apt-hero.kunu { background: linear-gradient(135deg, #9a3412, #f59e0b); }
.apt-hero.sigara { background: linear-gradient(135deg, #9f1239, #ef4444); }
.apt-hero.kibosho { background: linear-gradient(135deg, #4c1d95, #8b5cf6); }
.apt-hero.has-photo {
  background-image: linear-gradient(90deg, rgba(11,18,32,.88) 0%, rgba(11,18,32,.45) 55%, rgba(11,18,32,.2) 100%), var(--apt-photo);
  background-size: cover; background-position: center;
}
.apt-hero-inner { position: relative; max-width: 720px; }
.apt-hero h1 { margin: 4px 0 8px; font-size: 34px; letter-spacing: -.04em; }
.apt-hero .kicker { color: #bfdbfe; }
.apt-loc { margin: 0 0 8px; font-weight: 600; }
.apt-desc { margin: 0 0 12px; color: #e2e8f0; max-width: 560px; line-height: 1.5; }
.apt-hero-meta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 16px; font-size: 13px; color: #dbeafe; }
.apt-hero-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.btn.ghost.light { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.28); }
.btn.ghost.light:hover { background: rgba(255,255,255,.24); }
.apt-snaps { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 14px; }
.apt-snap {
  background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px;
  color: inherit; box-shadow: var(--shadow);
}
.apt-snap b { display: block; font-size: 22px; letter-spacing: -.03em; }
.apt-snap span { font-size: 12px; font-weight: 700; color: var(--muted); }
.apt-snap.on b { color: #2563eb; }
.apt-snap.warn b { color: #dc2626; }
.apt-snap.teal b { color: #0f766e; }
.apt-snap.muted b { color: #57534e; }
.apt-jump {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
  position: sticky; top: var(--top-offset); z-index: 15;
  background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px);
  padding: 8px 0;
}
.apt-jump a {
  padding: 7px 12px; border-radius: 999px; background: var(--card); border: 1px solid var(--line);
  font-size: 12px; font-weight: 800; color: var(--text);
}
.apt-jump a:hover { border-color: #93c5fd; color: #1d4ed8; }
.apt-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; margin-bottom: 18px; }
.apt-pane { min-width: 0; }
.apt-map { height: 280px; }
.apt-floor { margin-bottom: 22px; }
.apt-floor-h { display: flex; justify-content: space-between; align-items: flex-end; margin: 8px 2px 12px; }
.apt-floor-h h2 { margin: 0; font-size: 20px; letter-spacing: -.03em; }
.apt-floor-h p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.apt-floor-photos { margin-bottom: 14px; }
.flem-skin .apt-floor-h h2 { color: #3730a3; }
.store-skin .apt-floor-h h2 { color: #57534e; }
.unit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.unit-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 18px; overflow: hidden;
  box-shadow: var(--shadow); display: flex; flex-direction: column;
}
.unit-card.st-empty { border-color: #fecaca; }
.unit-card.st-occupied { border-color: #bbf7d0; }
.unit-card.st-airbnb { border-color: #fde68a; }
.unit-thumb { display: block; height: 110px; background: #0b1220 center/cover no-repeat; }
.unit-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; padding: 12px 14px 0; }
.unit-card-top strong { font-size: 16px; }
.unit-form {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px 14px 6px;
}
.unit-form label { display: grid; gap: 4px; font-size: 11px; font-weight: 800; color: var(--muted); }
.unit-form input, .unit-form select {
  width: 100%; font: inherit; font-size: 13px; font-weight: 600; color: var(--text);
  border: 1px solid var(--line); border-radius: 10px; padding: 7px 8px; background: #f8fafc;
}
.unit-form .span2 { grid-column: 1 / -1; }
.unit-rent { padding: 8px 14px; margin: 0; font-weight: 800; }
.unit-foot {
  margin-top: auto; padding: 10px 14px 12px; border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.unit-who { font-size: 13px; font-weight: 800; color: inherit; }
.apt-add { margin-top: 8px; }
@media (max-width: 960px) {
  .apt-split, .apt-snaps { grid-template-columns: 1fr 1fr; }
  .apt-hero h1 { font-size: 26px; }
}
@media (max-width: 640px) {
  .apt-snaps { grid-template-columns: 1fr 1fr; }
  .apt-split { grid-template-columns: 1fr; }
  .apt-hero { padding: 20px 16px; }
  .prop-split { grid-template-columns: 1fr; }
  .prop-aside { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .prop-aside-k { width: 100%; }
  .prop-aside a { flex: 1; min-width: 96px; }
}
.contact-acts { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; }
.contact-acts.compact { margin:6px 0 0; }
.cbtn {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 10px; border-radius:10px; font-size:12px; font-weight:800;
  border:1px solid var(--line); background:var(--card); color:var(--text);
}
.contact-acts.compact .cbtn { padding:6px 8px; }
.cbtn.call { color:#047857; border-color:#a7f3d0; background:#ecfdf5; }
.cbtn.sms { color:#1d4ed8; border-color:#bfdbfe; background:#eff6ff; }
.cbtn.wa { color:#15803d; border-color:#86efac; background:#f0fdf4; }
.cbtn.mail { color:#7c3aed; border-color:#ddd6fe; background:#f5f3ff; }
.cbtn:hover { filter: brightness(.97); }
.soft-hr { border:0; border-top:1px solid var(--line); margin:14px 0; }
html[data-theme="dark"] .cbtn { background:#111827; }
html[data-theme="dark"] .cbtn.call { background:#064e3b; color:#6ee7b7; border-color:#065f46; }
html[data-theme="dark"] .cbtn.sms { background:#1e3a8a; color:#bfdbfe; border-color:#1e40af; }
html[data-theme="dark"] .cbtn.wa { background:#14532d; color:#86efac; border-color:#166534; }
html[data-theme="dark"] .cbtn.mail { background:#4c1d95; color:#ddd6fe; border-color:#5b21b6; }
@media (max-width: 860px) {
  .search-hit, .prof-hero { grid-template-columns: 1fr; }
  .search-hit-a { justify-content:flex-start; }
}

html { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }
.hist-nav { display:flex; gap:6px; align-items:center; }
.sidebar nav a, .chip, .icon-btn, .btn {
  transition: background-color .18s ease, color .18s ease, transform .12s ease, box-shadow .18s ease;
}
.sidebar nav a:active, .chip:active, .icon-btn:active { transform: scale(.96); }
.wrap, .card, .main, .topbar { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.print-nav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; align-items:center; position:sticky; top:0; z-index:20; background:#eef2f7; padding:8px 0; }
.print-share { position: relative; }
.print-share > summary { list-style: none; cursor: pointer; }
.print-share > summary::-webkit-details-marker { display: none; }
.print-share .share-bar {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 30;
  margin: 0; padding: 10px; min-width: 220px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15,23,42,.12);
  display: flex; flex-wrap: wrap; gap: 6px;
}
.share-wrap { position:relative; }
.share-drop {
  position:absolute; right:0; top:calc(100% + 8px); z-index:50;
  min-width: min(420px, 92vw); padding:10px;
  background: var(--card, #fff); border:1px solid var(--line, #e2e8f0);
  border-radius:12px; box-shadow: 0 12px 32px rgba(15,23,42,.16);
}
.share-bar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.share-bar.compact { gap:4px; }
.share-lbl { font-size:12px; color: var(--muted, #64748b); margin-right:4px; }
.cbtn.share { color:#0f766e; border-color:#99f6e4; background:#f0fdfa; }
.cbtn.tg { color:#0369a1; border-color:#bae6fd; background:#f0f9ff; }
.cbtn.fb { color:#1d4ed8; border-color:#bfdbfe; background:#eff6ff; }
.cbtn.x { color:#111827; border-color:#e5e7eb; background:#f9fafb; }
.cbtn.copy { color:#334155; border-color:#cbd5e1; background:#f8fafc; }
html[data-theme="dark"] .cbtn.share { background:#134e4a; color:#99f6e4; border-color:#115e59; }
html[data-theme="dark"] .cbtn.tg { background:#0c4a6e; color:#7dd3fc; border-color:#075985; }
html[data-theme="dark"] .cbtn.fb { background:#1e3a8a; color:#bfdbfe; border-color:#1e40af; }
html[data-theme="dark"] .cbtn.x { background:#111827; color:#e5e7eb; border-color:#374151; }
html[data-theme="dark"] .cbtn.copy { background:#1f2937; color:#e2e8f0; border-color:#374151; }
html[data-theme="dark"] .share-drop { background:#111827; border-color:#1f2937; }
.share-toast {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  background:#0f172a; color:#fff; padding:8px 14px; border-radius:8px; z-index:200;
  font-size:13px;
}
.site-foot .share-bar { margin: 0; gap: 8px; }
@media (max-width: 1180px) {
  :root { --top-offset: 168px; }
  .topbar-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; }
  .topbar-nav { order: 1; }
  .top-actions { order: 2; margin-left: auto; flex: 1 1 auto; }
  .clock-box { order: 3; flex: 1 1 100%; justify-content: flex-start; }
}
@media (max-width: 720px) {
  .top-actions { flex-wrap: wrap; justify-content: flex-end; }
  .who strong, .who small { max-width: 120px; }
}

.sre-offline {
  position: fixed; inset: 0; z-index: 80; background: rgba(8, 15, 28, .72);
  display: grid; place-items: center; padding: 24px; backdrop-filter: blur(8px);
}
.sre-offline[hidden] { display: none; }
.sre-offline-card {
  max-width: 420px; width: 100%; background: #0b1220; color: #f8fafc;
  border-radius: 24px; padding: 32px 28px; text-align: center;
  border: 1px solid rgba(255,255,255,.08); box-shadow: 0 24px 60px rgba(0,0,0,.45);
}
.sre-offline-icon {
  width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 20px;
  display: grid; place-items: center; background: #1e293b; color: #fbbf24; font-size: 26px;
}
.sre-offline-card h2 { margin: 0 0 8px; font-size: 22px; }
.sre-offline-card p { margin: 0; color: #cbd5e1; line-height: 1.5; }
.sre-offline-card .btn { margin-top: 16px; }
html[data-theme="dark"] .sec-me td { background:#172554; }
.sec-me td { background:#eff6ff; }
.sec-hero {
  position: relative; overflow: hidden; border-radius: 16px; padding: 14px 16px;
  margin-bottom: 10px; color: #fff;
  background: linear-gradient(135deg, #0b1220 0%, #1e3a8a 55%, #0ea5e9 140%);
  box-shadow: 0 20px 50px rgba(15,23,42,.22);
}
.sec-hero-glow {
  position: absolute; width: 280px; height: 280px; right: -40px; top: -80px;
  background: radial-gradient(circle, rgba(96,165,250,.45), transparent 70%);
  pointer-events: none;
}
.sec-hero-inner { position: relative; display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; flex-wrap: wrap; }
.sec-hero-copy { max-width: 640px; }
.sec-hero .kicker { margin: 0 0 8px; color: #bfdbfe; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; }
.sec-hero h1 { margin: 0 0 4px; font-size: 22px; letter-spacing: -.04em; }
.sec-jump { margin-top: 12px; display: inline-flex; }
.sec-hero-copy p { margin: 0; color: #e2e8f0; line-height: 1.5; }
.sec-hero-note { margin-top: 10px !important; font-size: 13px; color: #93c5fd !important; }
.sec-hero-kpis { display: flex; gap: 10px; flex-wrap: wrap; }
.sec-hero-kpis div {
  min-width: 92px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px; padding: 12px 14px; backdrop-filter: blur(8px);
}
.sec-hero-kpis b { display: block; font-size: 26px; line-height: 1; }
.sec-hero-kpis span { font-size: 11px; color: #bfdbfe; font-weight: 700; }
.sec-hero-kpis .warn { background: rgba(239,68,68,.22); border-color: rgba(252,165,165,.35); }
.sec-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 16px; }
.log-tools { position: sticky; top: var(--top-offset); z-index: 14; background: color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(10px); padding: 8px 0; margin: 0 0 8px; }
.log-table-wrap { max-height: 68vh; overflow: auto; }
.sec-tools { position: sticky; top: var(--top-offset); z-index: 14; background: color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(10px); padding: 8px 0; margin: 0 0 8px; }
.sec-tools .find-box { flex: 1 1 220px; min-width: 180px; }
.sec-alert {
  display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap;
  margin: 0 16px 12px; padding: 10px 14px; border-radius: 14px;
  background: #fffbeb; border: 1px solid #fde68a;
}
.sec-alert p { margin: 0; font-size: 13px; font-weight: 650; color: #92400e; }
.sec-copy {
  flex-shrink: 0; border: 0; background: #e2e8f0; color: #334155; font: inherit; font-size: 10px;
  font-weight: 800; border-radius: 8px; padding: 4px 7px; cursor: pointer;
}
.sec-copy:hover { background: #cbd5e1; }
.sec-more { margin-left: auto; }
.sec-more summary { cursor: pointer; font-size: 12px; font-weight: 800; color: #64748b; list-style: none; }
.sec-more summary::-webkit-details-marker { display: none; }
.sec-more-body { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
#sec-sessions, #sec-blocks, #sec-fails { scroll-margin-top: 88px; }
html[data-theme="dark"] .sec-alert { background: #422006; border-color: #92400e; }
html[data-theme="dark"] .sec-alert p { color: #fde68a; }
html[data-theme="dark"] .sec-copy { background: #1f2937; color: #e2e8f0; }
.sec-notes article {
  display: flex; gap: 12px; align-items: flex-start; background: var(--card);
  border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; box-shadow: var(--shadow);
}
.sec-notes i { color: #2563eb; margin-top: 3px; }
.sec-notes p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.sec-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.sec-toolbar .prop-search { margin: 0; max-width: 280px; }
.sec-board { margin-bottom: 16px; }
.sec-list { display: grid; gap: 12px; padding: 4px 16px 16px; }
.sec-session {
  border: 1px solid var(--line); border-radius: 18px; padding: 16px; background: #f8fafc;
}
.sec-session.is-mine { background: linear-gradient(180deg, #eff6ff, #f8fafc); border-color: #bfdbfe; }
.sec-session.is-new { border-color: #fcd34d; box-shadow: 0 0 0 3px rgba(245,158,11,.12); }
.sec-session.is-dead { opacity: .62; }
.sec-who { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.sec-who img { width: 48px; height: 48px; border-radius: 14px; object-fit: cover; object-position: center 18%; background: #0b1220; }
.sec-who strong { display: block; font-size: 15px; }
.sec-who small { color: var(--muted); font-size: 12px; }
.sec-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.sec-tags .pill { margin-left: 0; background: #dbeafe; color: #1d4ed8; }
.sec-meta { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.sec-meta li { display: flex; gap: 8px; align-items: flex-start; min-width: 0; }
.sec-meta i { color: #2563eb; margin-top: 3px; width: 16px; text-align: center; }
.sec-meta span { display: flex; flex-direction: column; gap: 2px; font-size: 13px; font-weight: 650; min-width: 0; }
.sec-meta small { color: var(--muted); font-weight: 600; font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
.sec-meta code { font-size: 12px; }
.sec-acts, .sec-danger, .sec-person-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sec-acts { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
.sec-cmd {
  width: 108px; border: 1px solid var(--line); border-radius: 10px; padding: 7px 10px;
  font: inherit; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; background: #fff;
}
.sec-lower { margin-top: 0; }
.sec-side-list { list-style: none; margin: 0; padding: 4px 8px 12px; }
.sec-side-list li {
  display: flex; justify-content: space-between; gap: 12px; align-items: center;
  padding: 12px; border-radius: 14px; margin: 0 8px 8px;
  background: #f8fafc; border: 1px solid var(--line);
}
.sec-side-list b { display: block; font-size: 13px; }
.sec-side-list small { display: block; color: var(--muted); margin-top: 3px; font-size: 12px; }
.sec-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; padding: 4px 16px 16px; }
.sec-person {
  display: flex; gap: 10px; align-items: center; border: 1px solid var(--line);
  border-radius: 16px; padding: 12px; background: #f8fafc;
}
.sec-person.is-frozen { background: #fef2f2; border-color: #fecaca; }
.sec-person img { width: 40px; height: 40px; border-radius: 12px; object-fit: cover; object-position: center 18%; background: #0b1220; }
.sec-person strong { display: block; font-size: 13px; }
.sec-person small { color: var(--muted); font-size: 11px; }
.sec-person-acts { margin-left: auto; }
html[data-theme="dark"] .sec-session,
html[data-theme="dark"] .sec-notes article,
html[data-theme="dark"] .sec-side-list li,
html[data-theme="dark"] .sec-person { background: #0b1220; }
html[data-theme="dark"] .sec-session.is-mine { background: #172554; }
html[data-theme="dark"] .sec-cmd { background: #111827; color: #e2e8f0; }
@media (max-width: 960px) {
  .sec-meta { grid-template-columns: 1fr 1fr; }
  .sec-notes { grid-template-columns: 1fr; }
  .sec-hero h1 { font-size: 26px; }
}
@media (max-width: 640px) {
  .sec-meta { grid-template-columns: 1fr; }
  .sec-hero { padding: 20px 16px; }
}
.sre-dlg {
  border: 0; border-radius: 20px; padding: 0; width: min(420px, calc(100vw - 32px));
  box-shadow: 0 24px 60px rgba(15,23,42,.35);
}
.sre-dlg::backdrop { background: rgba(15,23,42,.55); }
.sre-dlg form { padding: 22px 22px 18px; }
.sre-dlg h3 { margin: 0 0 8px; }
.sre-dlg p { margin: 0 0 12px; color: var(--muted); font-size: 14px; }
.sre-dlg input { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; letter-spacing: .08em; text-transform: uppercase; }
.sre-dlg-err { color: #b91c1c !important; font-size: 13px; }
.sre-dlg-acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
#sreIntentMsg { color: inherit; font-weight: 700; font-size: 15px; }
.maint-banner { display: flex; gap: 10px; align-items: center; }
html[data-readonly="1"] .btn.primary,
html[data-readonly="1"] .btn.danger,
html[data-readonly="1"] form button[type="submit"] {
  pointer-events: none;
  opacity: .42;
}

.more-wrap { position: relative; }
.more-drop {
  position: absolute; right: 0; left: auto; top: calc(100% + 8px); z-index: 9999;
  width: min(320px, calc(100vw - 24px)); padding: 16px 16px 14px;
  background: var(--card); border: 1px solid var(--line);
  border-radius: 16px; box-shadow: 0 18px 40px rgba(15,23,42,.18);
}
.more-h {
  margin: 12px 4px 8px; font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--muted);
}
.more-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 4px 2px 12px;
}
.more-row-lbl { font-size: 13px; font-weight: 650; }
.more-langs {
  display: flex; gap: 2px; margin: 0; padding: 3px;
  background: #f1f5f9; border-radius: 999px;
}
.more-langs .chip {
  min-width: 42px; text-align: center; border: 0; background: transparent;
  padding: 5px 10px; font-size: 12px;
}
.more-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 8px; border-radius: 12px; color: inherit; font-weight: 650; font-size: 14px;
}
.more-item:hover { background: #f8fafc; }
.more-item i { width: 16px; color: #2563eb; }
.more-theme { text-decoration: none; }
.more-theme-val {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; color: #2563eb;
  background: #eff6ff; padding: 6px 10px; border-radius: 999px;
}
.more-share .share-bar.compact {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.more-share .share-bar.compact .cbtn {
  width: 100%; aspect-ratio: 1; padding: 0; border-radius: 12px;
  display: grid; place-items: center; font-size: 15px;
}
.more-hint { margin: 8px 2px 0; font-size: 11px; color: var(--muted); line-height: 1.4; }
.cbtn.file { color: #6d28d9; border-color: #ddd6fe; background: #f5f3ff; }
html[data-theme="dark"] .more-drop { background: #111827; border-color: #1f2937; }
html[data-theme="dark"] .more-item:hover { background: #0b1220; }
html[data-theme="dark"] .more-langs { background: #0b1220; }
html[data-theme="dark"] .more-theme-val { background: #1e3a8a; color: #bfdbfe; }
html[data-theme="dark"] .cbtn.file { background: #4c1d95; color: #ddd6fe; border-color: #6d28d9; }

.dash-jump { padding: 0; margin: 0; position: static; background: transparent; backdrop-filter: none; flex: 1 1 420px; }
.dash-stick {
  position: sticky; top: var(--top-offset); z-index: 14;
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
  background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(10px);
  padding: 8px 0 10px; margin: 0 0 10px;
}
.dash-tools { margin-bottom: 0; align-items: center; flex: 1 1 220px; max-width: 360px; }
#dashFindShown { font-size: 12px; font-weight: 700; min-width: 1.5rem; }
#dash-office, #dash-storage, #dash-live, #dash-today, #dash-kpis, #dash-charts, #dash-expiring, #dash-sms { scroll-margin-top: 88px; }
.dash-faces { display: flex; flex-wrap: wrap; gap: 12px; padding: 4px 16px 16px; }
.dash-face {
  display: flex; flex-direction: column; align-items: center; gap: 4px; width: 124px;
  text-align: center; color: inherit; text-decoration: none; font-size: 11px;
}
.dash-face strong { font-size: 12px; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-face small, .dash-face em { color: var(--muted); font-style: normal; font-size: 10px; font-weight: 700; }
.dash-ip, .users-ip {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px; font-weight: 700; letter-spacing: -.02em; color: #1d4ed8;
  background: #eff6ff; border-radius: 999px; padding: 2px 6px; max-width: 100%;
}
.dash-storage { margin-bottom: 16px; }
.dash-storage-body { padding: 4px 18px 18px; }
.dash-storage-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.dash-storage-nums div {
  background: #f8fafc; border: 1px solid #e8eef6; border-radius: 16px; padding: 12px 14px;
}
.dash-storage-nums b { display: block; font-size: 20px; letter-spacing: -.03em; }
.dash-storage-nums span { color: var(--muted); font-size: 12px; font-weight: 700; }
.dash-storage-bar { height: 10px; border-radius: 999px; background: #e8eef6; overflow: hidden; }
.dash-storage-bar i { display: block; height: 100%; border-radius: inherit; background: #16a34a; }
.dash-storage-bar.is-warm i { background: #d97706; }
.dash-storage-bar.is-hot i { background: #dc2626; }
.dash-storage-note { margin: 10px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.45; }
html[data-theme="dark"] .dash-storage-nums div { background: #0b1220; border-color: #1f2937; }
html[data-theme="dark"] .dash-ip, html[data-theme="dark"] .users-ip { background: #172554; color: #bfdbfe; }
@media (max-width: 640px) {
  .dash-storage-nums { grid-template-columns: 1fr; }
  .dash-storage-nums b { font-size: 18px; }
}
.dash-face .users-av img { width: 48px; height: 48px; border-radius: 16px; object-fit: cover; object-position: center 18%; }
.dash-face.is-live .users-av { box-shadow: 0 0 0 3px #22c55e; }
.dash-face.is-live em { color: #15803d; }
.dash-face.is-away .users-av { box-shadow: 0 0 0 3px #cbd5e1; }
.dash-face.is-away em { color: #b91c1c; }
.dash-hero .dash-quick .btn { font-size: 13px; }
.dash-page .snap-row.dash-kpis { grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); }
.dash-page .dash-kpis .snap.violet i { background: #f5f3ff; }
.dash-office { margin-bottom: 16px; }
.dash-health {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px;
}
.dash-health .card { margin: 0; }
.dash-hero {
  position: relative; overflow: hidden;
  display: flex; justify-content: space-between; gap: 24px; align-items: center;
  margin-bottom: 16px; padding: 26px 28px 24px; border-radius: 24px; color: #fff;
  background:
    radial-gradient(1200px 200px at 90% -20%, rgba(96,165,250,.45), transparent 55%),
    linear-gradient(135deg, #0b1220 0%, #1d4ed8 58%, #2563eb 100%);
  box-shadow: 0 18px 40px rgba(37,99,235,.22);
  isolation: isolate;
}
.dash-hero-fx { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.dash-hero-copy, .dash-hero-side { position: relative; z-index: 1; }
.dash-orb {
  position: absolute; border-radius: 50%; filter: blur(2px);
  background: radial-gradient(circle, rgba(255,255,255,.28), rgba(255,255,255,0) 70%);
  animation: dashOrbFloat 9s ease-in-out infinite;
}
.dash-orb-a { width: 180px; height: 180px; top: -50px; right: 18%; animation-duration: 8s; }
.dash-orb-b { width: 120px; height: 120px; bottom: -40px; left: 12%; animation-duration: 11s; animation-delay: -2s; opacity: .7; }
.dash-orb-c { width: 70px; height: 70px; top: 28%; left: 42%; animation-duration: 7s; animation-delay: -4s; opacity: .55; }
@keyframes dashOrbFloat {
  0%, 100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(18px,-14px,0) scale(1.08); }
}
.dash-hero-shine {
  position: absolute; inset: -20% -40%;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.14) 50%, transparent 60%);
  transform: translateX(-60%);
  animation: dashShine 7.5s ease-in-out infinite;
}
@keyframes dashShine {
  0%, 55% { transform: translateX(-70%); opacity: 0; }
  60% { opacity: 1; }
  75% { transform: translateX(70%); opacity: .55; }
  100% { transform: translateX(70%); opacity: 0; }
}
.dash-live-pill {
  display: inline-flex; align-items: center; gap: 6px; margin-right: 8px;
  padding: 3px 9px; border-radius: 999px; font-size: 10px; letter-spacing: .14em;
  background: rgba(16,185,129,.22); border: 1px solid rgba(110,231,183,.45); color: #bbf7d0;
  vertical-align: middle;
}
.dash-live-pill i {
  width: 7px; height: 7px; border-radius: 50%; background: #34d399;
  box-shadow: 0 0 0 0 rgba(52,211,153,.55);
  animation: srePulse 1.6s ease-out infinite;
}
.dash-hello {
  animation: dashRise .7s cubic-bezier(.22,1,.36,1) both;
}
.dash-quote {
  animation: dashRise .75s cubic-bezier(.22,1,.36,1) .08s both;
}
.dash-ticker {
  display: flex; align-items: center; gap: 10px; margin: 12px 0 2px;
  padding: 8px 12px; border-radius: 14px;
  background: rgba(15,23,42,.28); border: 1px solid rgba(255,255,255,.12);
  max-width: 42rem; overflow: hidden;
  animation: dashRise .8s cubic-bezier(.22,1,.36,1) .12s both;
}
.dash-ticker-lab {
  flex-shrink: 0; font-size: 10px; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: #93c5fd;
}
.dash-ticker-track {
  position: relative; flex: 1; min-width: 0; height: 1.35em; overflow: hidden;
}
.dash-ticker-track span {
  position: absolute; inset: 0; display: flex; align-items: center;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-size: 13px; font-weight: 600; color: #e2e8f0;
  opacity: 0; transform: translateY(8px);
  animation: dashTick 16s ease-in-out infinite;
}
.dash-ticker-track span:nth-child(1) { animation-delay: 0s; }
.dash-ticker-track span:nth-child(2) { animation-delay: 4s; }
.dash-ticker-track span:nth-child(3) { animation-delay: 8s; }
.dash-ticker-track span:nth-child(4) { animation-delay: 12s; }
.dash-ticker-track span:nth-child(5) { animation-delay: 14s; }
@keyframes dashTick {
  0%, 4% { opacity: 0; transform: translateY(8px); }
  8%, 22% { opacity: 1; transform: translateY(0); }
  28%, 100% { opacity: 0; transform: translateY(-8px); }
}
@keyframes dashRise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
.dash-quick .btn {
  animation: dashRise .7s cubic-bezier(.22,1,.36,1) both;
  position: relative; overflow: hidden;
}
.dash-quick .btn:nth-child(1) { animation-delay: .14s; }
.dash-quick .btn:nth-child(2) { animation-delay: .18s; }
.dash-quick .btn:nth-child(3) { animation-delay: .22s; }
.dash-quick .btn:nth-child(4) { animation-delay: .26s; }
.dash-quick .btn:nth-child(5) { animation-delay: .3s; }
.dash-quick .btn:nth-child(6) { animation-delay: .34s; }
.dash-quick .btn:nth-child(7) { animation-delay: .38s; }
.dash-quick .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,23,42,.25); }
.dash-quick .btn.is-soft-focus {
  background: rgba(255,255,255,.22) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35), 0 10px 24px rgba(15,23,42,.2);
  transform: translateY(-2px);
}
.dash-quick .btn.primary.is-soft-focus {
  filter: brightness(1.08);
}
.dash-quick-n {
  display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 800;
  animation: srePulse 2s ease-out infinite;
}
.dash-rings .dash-ring {
  position: relative;
  animation: dashRingFloat 5.5s ease-in-out infinite, dashRise .85s cubic-bezier(.22,1,.36,1) .2s both;
}
.dash-rings .dash-ring:nth-child(2) { animation-delay: .8s, .28s; }
@keyframes dashRingFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
.dash-ring-glow {
  position: absolute; inset: -6px; border-radius: 50%;
  background: radial-gradient(circle, rgba(147,197,253,.35), transparent 68%);
  animation: dashGlow 2.8s ease-in-out infinite;
  z-index: 0;
}
.dash-ring.is-pay .dash-ring-glow {
  background: radial-gradient(circle, rgba(134,239,172,.35), transparent 68%);
}
@keyframes dashGlow {
  0%, 100% { opacity: .45; transform: scale(.96); }
  50% { opacity: 1; transform: scale(1.05); }
}
.dash-ring-in { position: relative; z-index: 1; }
.dash-pulse .dash-alert {
  animation: dashRise .7s cubic-bezier(.22,1,.36,1) .25s both;
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease;
}
.dash-pulse .dash-alert:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(15,23,42,.1); }
@media (prefers-reduced-motion: reduce) {
  .dash-orb, .dash-hero-shine, .dash-live-pill i, .dash-ticker-track span,
  .dash-hello, .dash-quote, .dash-ticker, .dash-quick .btn, .dash-rings .dash-ring,
  .dash-ring-glow, .dash-pulse .dash-alert, .dash-quick-n {
    animation: none !important;
  }
  .dash-ticker-track span { position: static; opacity: 1; transform: none; display: inline; }
  .dash-ticker-track span + span::before { content: " · "; }
}
.dash-hero.is-dawn {
  background:
    radial-gradient(900px 220px at 12% -10%, rgba(253,186,116,.45), transparent 50%),
    linear-gradient(135deg, #0c4a6e 0%, #0369a1 50%, #38bdf8 100%);
}
.dash-hero.is-dusk {
  background:
    radial-gradient(900px 220px at 88% -10%, rgba(251,146,60,.4), transparent 50%),
    linear-gradient(135deg, #1c1917 0%, #9a3412 48%, #ea580c 100%);
}
.dash-hero.is-night {
  background:
    radial-gradient(800px 200px at 90% -20%, rgba(129,140,248,.35), transparent 55%),
    linear-gradient(135deg, #020617 0%, #1e1b4b 55%, #312e81 100%);
}
.dash-kicker-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; margin-bottom: 8px; }
.dash-kicker { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #bfdbfe; }
.dash-kicker-row .dash-kicker { margin: 0; }
.dash-hero.is-dusk .dash-kicker { color: #fed7aa; }
.dash-sky { display: flex; flex-wrap: wrap; gap: 8px; }
.dash-sky-sun, .dash-sky-wx {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px;
  background: rgba(255,255,255,.12); border-radius: 999px; padding: 7px 12px;
  font-size: 12px; font-weight: 700;
}
.dash-sky-sun.sunrise i, .dash-sky-sun.sunset i { color: #fde68a; }
.dash-sky-sun.day i { color: #fde68a; }
.dash-sky-sun.night i { color: #c7d2fe; }
.dash-sky-wx em { font-style: normal; opacity: .85; font-weight: 600; }
.dash-sky-sun small, .dash-sky-wx small { font-weight: 600; opacity: .9; }
.dash-sky-wx small { flex: 1 1 100%; font-size: 11px; letter-spacing: 0; text-transform: none; }
.dash-quote {
  margin: 8px 0 4px; padding: 8px 14px 8px 16px;
  border-left: 3px solid #fde68a; background: rgba(15,23,42,.22); border-radius: 0 12px 12px 0;
  max-width: 42rem;
}
.dash-quote-k { display: block; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #fde68a; margin-bottom: 4px; }
.dash-quote p { margin: 0; color: #fff !important; font-size: 14px; font-weight: 600; line-height: 1.4; font-style: italic; }
.dash-hero h1 { margin: 0 0 4px; font-size: 30px; letter-spacing: -.04em; line-height: 1.15; }
.dash-hero-copy p { margin: 0; color: #dbeafe; font-size: 14px; max-width: 560px; }
.dash-quick { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dash-hero .btn.ghost { background: rgba(255,255,255,.12); color: #fff; border-color: transparent; }
.dash-hero .btn.ghost:hover { background: rgba(255,255,255,.2); }
.dash-hero-side { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.dash-rings { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.dash-ring {
  width: 126px; height: 126px; border-radius: 50%; padding: 9px;
  background: conic-gradient(#93c5fd calc(var(--p, 0) * 1%), rgba(255,255,255,.18) 0);
}
.dash-ring.is-pay {
  background: conic-gradient(#86efac calc(var(--p, 0) * 1%), rgba(255,255,255,.18) 0);
}
.dash-ring-in {
  width: 100%; height: 100%; border-radius: 50%; background: #0b1220;
  display: grid; place-content: center; text-align: center; padding: 8px;
}
.dash-hero.is-dawn .dash-ring-in { background: #0c4a6e; }
.dash-hero.is-dusk .dash-ring-in { background: #1c1917; }
.dash-hero.is-night .dash-ring-in { background: #020617; }
.dash-ring-in b { font-size: 22px; letter-spacing: -.04em; }
.dash-ring-in small { display: block; font-size: 9px; color: #93c5fd; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; line-height: 1.25; max-width: 6.5rem; margin: 0 auto; }
.dash-ring.is-pay .dash-ring-in small { color: #bbf7d0; }
.dash-ring-in em { display: block; font-style: normal; font-size: 10px; color: #bfdbfe; font-weight: 600; margin-top: 2px; }
.dash-pulse { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.dash-pulse .dash-alert { margin: 0; align-items: flex-start; }
.dash-pulse .dash-alert:only-child { grid-column: 1 / -1; }
.dash-pulse .dash-alert > div { min-width: 0; flex: 1; }
.dash-pulse .dash-alert span {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dash-board-k { margin: 0 0 8px; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.dash-today {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px; margin-bottom: 16px;
}
.dash-today a {
  display: flex; flex-direction: column; gap: 2px; min-width: 0;
  background: var(--card); border: 1px solid var(--line); border-radius: 16px;
  padding: 14px 14px 12px; color: inherit; box-shadow: var(--shadow); text-decoration: none;
  transition: transform .15s ease, border-color .15s ease;
}
.dash-today a:hover { border-color: #93c5fd; transform: translateY(-1px); }
.dash-today i { color: #2563eb; margin-bottom: 6px; }
.dash-today b { font-size: 20px; letter-spacing: -.03em; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-today span { font-size: 12px; font-weight: 700; color: var(--muted); }
.dash-today small { font-size: 11px; color: #94a3b8; }
.dash-today small em { font-style: normal; font-size: 11px; }
.dash-today .is-warn i, .dash-today .is-warn b { color: #dc2626; }
.dash-today .is-money i, .dash-today .is-money b { color: #047857; }
.dash-today .is-on i, .dash-today .is-on b { color: #059669; }
.dash-live-now a.is-on { border-color: #6ee7b7; }
.dash-live-now a.is-warn { border-color: #fca5a5; }
#dash-charts .prop-fill { height: auto; margin-top: 8px; background: transparent; overflow: visible; }
.prop-fill a {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; align-items: baseline;
  padding: 10px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none;
}
.prop-fill a:last-child { border-bottom: 0; }
.prop-fill strong { font-size: 13px; }
.prop-fill b { font-size: 12px; color: var(--muted); font-weight: 700; }
.prop-fill .meter { grid-column: 1 / -1; margin: 4px 0 0; height: 8px; }
@media (max-width: 860px) {
  .dash-pulse { grid-template-columns: 1fr; }
  .dash-rings { width: 100%; }
  .dash-health { grid-template-columns: 1fr; }
}
.dash-page .dash-kpis .snap {
  border: 0; box-shadow: 0 8px 24px rgba(15,23,42,.05);
  background: linear-gradient(180deg, #fff, #f8fafc);
  padding: 16px;
}
.dash-page .dash-kpis .snap i {
  width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center;
  background: #eff6ff; margin-bottom: 8px;
}
.dash-page .dash-kpis .snap.warn i { background: #fef2f2; }
.dash-page .dash-kpis .snap.violet i { background: #f5f3ff; }
.dash-page .dash-kpis .snap.teal i { background: #ecfdf5; }
.dash-page .dash-kpis .snap.money i { background: #ecfdf5; }
.dash-page .collect-card {
  border: 0; background: linear-gradient(180deg, #fff, #f0fdf4);
}
.dash-page .prop-occ-card {
  background: linear-gradient(180deg, #fff, #eff6ff);
}
.dash-page .card { border-color: transparent; }
@media (max-width: 860px) {
  .dash-hero { flex-direction: column; align-items: flex-start; padding: 22px 18px; }
  .dash-hero h1 { font-size: 24px; }
  .dash-kicker-row { flex-direction: column; }
}
html[data-theme="dark"] .dash-page .dash-kpis .snap,
html[data-theme="dark"] .dash-page .collect-card,
html[data-theme="dark"] .dash-today a {
  background: #111827;
}
html[data-theme="dark"] .dash-page .prop-occ-card { background: #111827; }
html[data-theme="dark"] .prop-fill a { border-color: #1f2937; }
html[data-theme="dark"] .dash-page .dash-kpis .snap i { background: #1e3a8a; color: #93c5fd; }

.verify-body {
  min-height: 100vh; margin: 0; display: grid; place-items: center;
  background: linear-gradient(160deg, #0f172a, #1e3a8a); padding: 24px;
}
.verify-card {
  width: min(520px, 100%); background: #fff; border-radius: 24px; padding: 28px 24px;
  box-shadow: 0 24px 60px rgba(0,0,0,.25); color: #0f172a;
}
.verify-card h1 { margin: 8px 0 6px; }
.verify-result {
  display: flex; gap: 12px; align-items: flex-start; border-radius: 16px;
  padding: 14px; margin-top: 14px; border: 1px solid var(--line);
}
.verify-result i { font-size: 28px; margin-top: 2px; }
.verify-result.is-ok { background: #ecfdf5; border-color: #6ee7b7; }
.verify-result.is-ok i { color: #059669; }
.verify-result.is-bad { background: #fef2f2; border-color: #fca5a5; }
.verify-result.is-bad i { color: #dc2626; }
html[data-theme="dark"] .verify-card { background: #111827; color: #e5e7eb; }
html[data-theme="dark"] .verify-result.is-ok { background: #052e1a; }
html[data-theme="dark"] .verify-result.is-bad { background: #1c1010; }
tr.pay-draft { background: #fffbeb; }
tr.pay-rev { background: #fef2f2; }
.pay-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
html[data-theme="dark"] tr.pay-draft { background: #1c1910; }
html[data-theme="dark"] tr.pay-rev { background: #1c1010; }
html[data-theme="dark"] .pay-picked { background: #172554; border-color: #1e3a8a; }
html[data-theme="dark"] .pay-picked strong { color: #f8fafc; }
html[data-theme="dark"] .pay-picked-place { color: #cbd5e1; }
html[data-theme="dark"] .pay-picked-sum { color: #93c5fd; border-color: #1e3a8a; }
html[data-theme="dark"] .search-suggest a:hover { background: #1f2937; }

.ai-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .9fr); gap: 16px; align-items: start; }
.ai-side { display: grid; gap: 16px; min-width: 0; }
.ai-brand { display: flex; gap: 14px; align-items: flex-start; }
.ai-brand p { max-width: none !important; }
.ai-logo { background: #fff; border-radius: 14px; padding: 4px; object-fit: contain; }
.ai-tools { margin-bottom: 8px; }
.ai-ask-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
#aiDrafts, #aiThread { scroll-margin-top: 88px; }
.ai-fab { display: grid; place-items: center; padding: 0; overflow: hidden; }
.ai-fab-logo, .ai-sheet-logo { background: #fff; border-radius: 10px; object-fit: contain; }
.ai-sheet-brand { display: flex; align-items: center; gap: 8px; }
.origin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ai-desk { display: flex; flex-direction: column; min-height: min(78vh, 820px); }
.ai-thread-tools { padding: 10px 16px 0; }
.ai-thread-tools .find-box { margin: 0; }
.ai-desk .type-chips { padding: 8px 16px 0; flex-wrap: wrap; }
.ai-welcome { max-width: 100% !important; background: linear-gradient(180deg, #eef2ff, #f8fafc) !important; }
.ai-thinking { opacity: .75; }
.ai-bubble.bot p strong { color: #1e3a8a; }
.ai-thread { max-height: none; flex: 1; min-height: 280px; overflow: auto; padding: 12px 16px; display: flex; flex-direction: column; gap: 10px; }
.ai-bubble { border-radius: 16px; padding: 10px 14px; max-width: 92%; }
.ai-bubble small { display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; opacity: .7; }
.ai-bubble p { margin: 0; line-height: 1.5; }
.ai-bubble.me p { white-space: pre-wrap; }
.ai-bubble.me { margin-left: auto; background: #eff6ff; }
.ai-bubble.bot { background: #f8fafc; border: 1px solid var(--line); }
.ai-ask { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px 16px; }
.ai-ask textarea { min-height: 88px; border-radius: 14px; }
.ai-summary { line-height: 1.55; }
.ai-advice { margin: 8px 0 12px; padding-left: 18px; }
.ai-draft { border-top: 1px solid var(--line); padding: 12px 0; }
.ai-draft p { margin: 8px 0; font-size: 13px; }
.ai-fab {
  position: fixed; right: 22px; bottom: 22px; z-index: 40;
  width: 56px; height: 56px; border: 0; border-radius: 18px; cursor: pointer; color: #fff;
  background: linear-gradient(135deg, #4c1d95, #2563eb); box-shadow: 0 12px 30px rgba(37,99,235,.35);
}
.ai-sheet {
  position: fixed; right: 22px; bottom: 22px; z-index: 41; width: min(400px, calc(100vw - 24px));
  height: min(78vh, 640px);
  background: #fff; border-radius: 22px; box-shadow: 0 24px 60px rgba(15,23,42,.28); border: 1px solid rgba(148,163,184,.28);
  display: flex; flex-direction: column; overflow: hidden;
}
.ai-sheet[hidden] { display: none !important; }
body.ai-sheet-open .ai-fab { opacity: 0; pointer-events: none; }
.ai-sheet-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 12px 12px 14px; flex: 0 0 auto; }
.ai-sheet-h-acts { display: flex; align-items: center; gap: 2px; }
.ai-sheet-h-acts .icon-btn { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: #fff; text-decoration: none; }
.ai-sheet-h-acts .icon-btn:hover { background: rgba(255,255,255,.16); color: #fff; }
.ai-sheet-log {
  flex: 1; min-height: 0; overflow: auto; padding: 14px 12px 8px;
  display: flex; flex-direction: column; gap: 10px;
  background:
    radial-gradient(420px 160px at 0% 0%, rgba(37,99,235,.08), transparent 55%),
    #f8fafc;
}
.ai-sheet-bubble { max-width: 88%; border-radius: 16px; padding: 8px 12px; font-size: 13px; line-height: 1.45; }
.ai-sheet-bubble small { display: block; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; opacity: .65; margin-bottom: 3px; }
.ai-sheet-bubble p { margin: 0; }
.ai-sheet-bubble.bot { background: #fff; border: 1px solid rgba(148,163,184,.28); }
.ai-sheet-bubble.me { margin-left: auto; background: linear-gradient(135deg, #1d4ed8, #2563eb); color: #fff; }
.ai-sheet-bubble.me small { color: rgba(255,255,255,.75); }
.ai-sheet-bubble.is-think { opacity: .8; }
.ai-sheet-chips { display: flex; gap: 6px; overflow-x: auto; padding: 8px 12px 0; flex: 0 0 auto; scrollbar-width: thin; }
.ai-sheet-chip {
  flex: 0 0 auto; border: 1px solid rgba(148,163,184,.4); background: #fff; color: #0f172a;
  border-radius: 999px; padding: 6px 10px; font-size: 11px; font-weight: 700; cursor: pointer; max-width: 220px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ai-sheet-chip:hover { border-color: #93c5fd; background: #eff6ff; }
.ai-sheet-form { display: flex; gap: 8px; align-items: flex-end; padding: 10px 12px 12px; border-top: 1px solid rgba(148,163,184,.2); background: #fff; flex: 0 0 auto; }
.ai-sheet-form textarea {
  flex: 1; resize: none; min-height: 42px; max-height: 96px; border-radius: 14px;
  border: 1px solid rgba(148,163,184,.45); padding: 10px 12px; font: inherit; font-size: 14px;
}
.ai-sheet-send { width: 44px; height: 44px; border-radius: 14px; padding: 0; display: grid; place-items: center; flex: 0 0 auto; }
.dash-alert.ai-dash i { background: #7c3aed; color: #fff; }
@media (max-width: 900px) {
  .ai-grid { grid-template-columns: 1fr; }
  .origin-grid { grid-template-columns: 1fr; }
}
html[data-theme="dark"] .ai-bubble.me { background: #172554; }
.room-cascade { display:grid; gap:10px; }
.room-cascade-row { display:grid; grid-template-columns: 1.2fr 1fr 1fr; gap:10px; }
.rc-picked { display:grid; gap:8px; }
.rc-chip { display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:#f8fafc; border:1px solid var(--line); border-radius:12px; padding:8px 10px; }
.rc-chip span { flex:1; font-size:13px; font-weight:600; }
.rc-chip input[type=number] { width:120px; }
@media (max-width: 720px) {
  .room-cascade-row { grid-template-columns: 1fr; }
}
.sms-peer img { width:40px; height:40px; border-radius:12px; object-fit:cover; }
.mini-list .person-acts { flex-shrink:0; }

/* Dashboard 2.6.39 */
.dash-online-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 800; color: #15803d;
  background: #dcfce7; border-radius: 999px; padding: 4px 10px; margin-right: auto;
}
.dash-online-pill i { font-size: 8px; color: #22c55e; }
.dash-where { display: inline-flex; margin-top: 2px; font-style: normal; font-size: 11px; font-weight: 800; border-radius: 999px; padding: 2px 8px; }
.dash-where.is-in { background: #dcfce7; color: #166534; }
.dash-where.is-far { background: #ffedd5; color: #9a3412; }
.dash-face .dash-where { display: flex; justify-content: center; }
.dash-map-card { margin: 0 0 18px; overflow: hidden; }
.dash-geo { height: min(360px, 48vh); border-radius: 0; border-left: 0; border-right: 0; }
.dash-map-links { padding: 0 16px 14px; }
.gmap-pin small { display: block; font-size: 10px; font-weight: 700; opacity: .85; margin-top: 2px; }
.flem-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.flem-tabs a { text-decoration: none; }
.flem-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 10px; margin: 0 0 16px; }
.prop-flem-lead { margin: 0 16px 12px; }
.prop-flem-form { display: grid; grid-template-columns: 1.4fr 1.3fr .7fr .8fr auto; gap: 12px; align-items: end; padding: 0 16px 8px; }
.prop-flem-form label { display: grid; gap: 6px; font-size: 12px; font-weight: 800; color: var(--muted); }
.prop-flem-form input { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); font: inherit; }
.prop-flem-form .btn { height: 42px; white-space: nowrap; }
.prop-flem-list { display: grid; gap: 12px; }
.prop-flem-row { display: grid; grid-template-columns: 180px 1fr auto; gap: 16px; align-items: center; padding: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; }
.prop-flem-shot { display: block; height: 108px; border-radius: 14px; background: linear-gradient(135deg, #0f766e, #115e59) center/cover no-repeat; }
.prop-flem-row h2 { margin: 0 0 4px; font-size: 18px; }
.prop-flem-row h2 a { color: inherit; text-decoration: none; }
.prop-flem-row p { margin: 0; color: var(--muted); font-size: 13px; }
.prop-flem-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.prop-flem-pills span { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: var(--line); }
.prop-flem-pills .is-ok { background: #d1fae5; color: #065f46; }
.prop-flem-pills .is-warn { background: #ffedd5; color: #9a3412; }
@media (max-width: 800px) {
  .prop-flem-form { grid-template-columns: 1fr 1fr; }
  .prop-flem-form .btn { grid-column: 1 / -1; }
  .prop-flem-row { grid-template-columns: 1fr; }
  .prop-flem-shot { height: 140px; }
}
.flem-stat { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; display: grid; gap: 2px; min-width: 0; }
.flem-stat b { font-size: 22px; letter-spacing: -0.03em; }
.flem-stat span { color: var(--muted); font-size: 12px; font-weight: 700; }
.flem-stat.is-teal b { color: #0f766e; }
.flem-stat.is-ok b { color: #059669; }
.flem-stat.is-warn b { color: #d97706; }
.flem-occ { position: relative; overflow: hidden; }
.flem-occ i { position: absolute; left: 0; bottom: 0; height: 4px; background: #0f766e; }
.flem-branch { margin-bottom: 18px; scroll-margin-top: 84px; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; background: var(--card); }
.flem-branch-h { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; justify-content: space-between; padding: 16px 16px 14px; background: linear-gradient(135deg, #0f766e, #134e4a); color: #fff; }
.flem-branch-h h2 { margin: 0; font-size: 20px; color: #fff; }
.flem-branch-h p { margin: 4px 0 0; color: rgba(255,255,255,.82); font-size: 13px; }
.flem-add { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; background: #fff; color: #0f172a; border-radius: 14px; padding: 8px; }
.flem-add label { display: grid; gap: 4px; font-size: 11px; font-weight: 700; color: #475569; }
.flem-add input[type=number] { width: 76px; border: 1px solid #e2e8f0; border-radius: 10px; padding: 8px 10px; color: #0f172a; }
.flem-rent { display: flex; gap: 6px; align-items: center; }
.flem-rent input { width: 110px; }
.flem-blocks { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; padding: 14px; }
.flem-block { border: 1px solid var(--line); border-radius: 16px; padding: 14px; display: grid; gap: 6px; background: var(--bg, #fff); }
.flem-block strong { font-size: 16px; }
.flem-block.is-empty { box-shadow: inset 0 0 0 1px #fcd34d; background: color-mix(in srgb, #f59e0b 8%, var(--card)); }
.flem-block.is-occ { box-shadow: inset 0 0 0 1px #6ee7b7; background: color-mix(in srgb, #10b981 8%, var(--card)); }
.flem-block.hl { outline: 2px solid #0f766e; }
.flem-block .row-acts { justify-content: flex-start; }
.flem-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.flem-card-top strong { display: block; }
.flem-who { font-weight: 700; }
.flem-agent { font-size: 12px; color: #0f766e; text-decoration: none; }
.flem-agent.is-missing { color: var(--muted); }
.flem-next { font-size: 12px; font-weight: 700; color: #b45309; }
.flem-sms { margin: 0 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); }
.flem-sms summary { cursor: pointer; padding: 10px 12px; font-weight: 700; }
.flem-sms form { display: grid; gap: 8px; padding: 0 12px 12px; }
.flem-sms .btn { width: auto; justify-self: start; }
.check-scan video { width: 100%; height: 240px; object-fit: cover; background: #0f172a; }
.my-body { background: #f4f7fb; margin: 0; }
.mine-body { margin: 0; background: #eef3f8; color: #0f172a; font-family: "Plus Jakarta Sans", system-ui, sans-serif; }
.mine-bar { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid #e2e8f0; }
.mine-bar div { flex: 1; display: grid; }
.mine-bar span { color: #64748b; font-size: 12px; font-weight: 700; }
.mine-bar a { font-weight: 700; text-decoration: none; }
.mine { max-width: 880px; margin: 0 auto; padding: 16px 16px 64px; display: grid; gap: 14px; }
.mine-hero { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; padding: 22px; border-radius: 28px; color: #fff; background: radial-gradient(circle at 100% 0%, rgba(255,255,255,.2), transparent 36%), linear-gradient(155deg, #042f2e, #0f766e 58%, #115e59); box-shadow: 0 18px 40px rgba(15,118,110,.25); }
.mine-hero h1 { margin: 0; font-size: 1.6rem; letter-spacing: -.03em; }
.mine-hero p { margin: 8px 0 0; color: rgba(255,255,255,.86); }
.mine-code { display: inline-block; margin-top: 8px; padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.16); font-weight: 800; letter-spacing: .06em; font-size: 12px; }
.mine-bank { grid-column: 1 / -1; background: #0f172a !important; color: #fff; border-radius: 18px !important; }
.mine-bank span { color: #99f6e4 !important; }
.mine-bank b { display: block; font-size: 1.25rem; letter-spacing: .04em; }
.mine-bank small { color: rgba(255,255,255,.7); }
.mine-person { display: grid; grid-template-columns: auto 1fr; gap: 10px 12px; align-items: center; padding: 12px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; }
.mine-ava { width: 46px; height: 46px; border-radius: 16px; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; font-weight: 800; }
.mine-person small { display: block; color: #64748b; }
.mine-call { grid-column: 1 / -1; justify-self: start; background: #0f766e; color: #fff; text-decoration: none; font-weight: 800; font-size: 13px; border-radius: 999px; padding: 7px 12px; }
@media (min-width: 720px) { .mine-people { grid-template-columns: 1fr 1fr; } .mine-call { grid-column: auto; justify-self: end; } .mine-person { grid-template-columns: auto 1fr auto; } .mine-grid { grid-template-columns: 1fr 1fr; } }
.mine-rate { margin-left: auto; min-width: 92px; padding: 10px 12px; border-radius: 18px; background: rgba(255,255,255,.14); text-align: center; }
.mine-rate strong { display: block; font-size: 1.7rem; line-height: 1; }
.mine-rate small { display: block; color: rgba(255,255,255,.75); font-size: 11px; }
.mine-fill-row { display: flex; gap: 14px; align-items: center; }
.mine-fill { width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(#0f766e calc(var(--pct) * 1%), #e2e8f0 0); flex: none; }
.mine-fill strong { width: 64px; height: 64px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 1.05rem; }
.mine-lock { font-weight: 700; }
.mine-grid { display: grid; gap: 10px; }
.mine-grid .span { grid-column: 1 / -1; }
.mine-form em { display: inline-block; margin-left: 6px; font-style: normal; font-size: 11px; font-weight: 800; color: #b45309; background: #fef3c7; border-radius: 999px; padding: 1px 7px; }
.mine-stars { display: flex; gap: 8px; }
.mine-star { position: relative; width: 46px; height: 46px; border-radius: 14px; border: 1px solid #e2e8f0; display: grid; place-items: center; font-weight: 800; color: #64748b; cursor: pointer; }
.mine-star input { position: absolute; opacity: 0; }
.mine-star:has(input:checked) { background: #0f766e; color: #fff; border-color: #0f766e; }
.mine-gave .fa-star { color: #cbd5e1; }
.mine-gave .fa-star.on { color: #f59e0b; }
.prof-pend { display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 12px 16px; border-top: 1px solid #e2e8f0; }
.prof-pend form { display: flex; gap: 8px; }
.prof-pend img { width: 64px; height: 64px; object-fit: cover; border-radius: 12px; }
.mine-kicker { margin: 0; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; font-weight: 800; color: #99f6e4; }
.mine-face { width: 92px; height: 92px; border-radius: 28px; object-fit: cover; background: #fff; border: 3px solid rgba(255,255,255,.45); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.mine-rooms { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.mine-rooms article { background: #fff; border-radius: 18px; padding: 14px; display: grid; gap: 2px; box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.mine-rooms b { font-size: 1.2rem; }
.mine-rooms span, .mine-rooms small { color: #64748b; }
.mine-rooms a { margin-top: 6px; font-weight: 800; color: #0f766e; text-decoration: none; }
.mine-jump { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.mine-jump a { background: #fff; border-radius: 16px; padding: 12px 8px; text-align: center; text-decoration: none; font-size: 12px; font-weight: 800; color: #0f172a; display: grid; gap: 6px; justify-items: center; }
.mine-jump i { color: #0f766e; font-size: 16px; }
.mine-card { background: #fff; border-radius: 22px; padding: 16px; display: grid; gap: 10px; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.mine-card h2 { margin: 0; font-size: 1.1rem; }
.mine-card h3 { margin: 6px 0 0; font-size: .95rem; }
.mine-docs { display: grid; gap: 8px; }
.mine-doc { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 12px; border-radius: 16px; background: #f8fafc; text-decoration: none; color: inherit; }
.mine-doc i { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; }
.mine-doc b, .mine-doc small { display: block; }
.mine-doc small { color: #64748b; }
.mine-doc em { font-style: normal; font-weight: 800; color: #0f766e; }
.mine-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mine-facts div { background: #f8fafc; border-radius: 14px; padding: 10px; }
.mine-facts span { display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.mine-facts .span { grid-column: 1 / -1; }
.mine-wa { display: inline-flex; gap: 8px; align-items: center; background: #25d366; color: #fff; text-decoration: none; font-weight: 800; border-radius: 999px; padding: 8px 14px; width: max-content; }
.mine-people { display: grid; gap: 10px; }
.mine-about { color: #64748b; margin: 0; }
.mine-sms { background: #f8fafc; border-radius: 16px; padding: 10px 12px; }
.mine-sms small { color: #64748b; }
.mine-sms p { margin: 4px 0 0; }
.mine-form { display: grid; gap: 8px; }
.mine-form label { display: grid; gap: 4px; font-size: 12px; font-weight: 800; color: #64748b; }
.mine-form input, .mine-form select, .mine-form textarea { width: 100%; box-sizing: border-box; font-size: 16px; min-height: 48px; border-radius: 14px; border: 1px solid #e6edf5; background: #f8fafc; padding: 10px 12px; color: #0f172a; }
.mine-form textarea { min-height: 120px; }
.mine-bell { position: relative; color: #0f172a; font-size: 18px; text-decoration: none; }
.mine-bell b { position: absolute; top: -6px; right: -8px; min-width: 16px; height: 16px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 10px; display: grid; place-items: center; }
.mine-office { display: flex; gap: 12px; align-items: center; text-decoration: none; color: #fff; background: linear-gradient(135deg, #0f766e, #14b8a6); border-radius: 22px; padding: 16px; box-shadow: 0 12px 28px rgba(15,118,110,.22); }
.mine-office i { width: 46px; height: 46px; border-radius: 16px; display: grid; place-items: center; background: rgba(255,255,255,.18); }
.mine-office small { display: block; color: rgba(255,255,255,.86); font-weight: 700; }
.mine-sms.is-new { background: #ecfdf5; }
.mine-card h2 em { font-style: normal; margin-left: 6px; background: #ef4444; color: #fff; border-radius: 999px; font-size: 12px; padding: 1px 7px; }
.mine-tabs { position: sticky; top: 57px; z-index: 3; display: flex; gap: 6px; overflow-x: auto; padding: 10px 16px; background: rgba(238,243,248,.95); backdrop-filter: blur(10px); scrollbar-width: none; max-width: 880px; margin: 0 auto; }
.mine-tabs::-webkit-scrollbar { display: none; }
.mine-tabs a { flex: none; display: inline-flex; gap: 6px; align-items: center; padding: 9px 14px; border-radius: 999px; background: #fff; color: #334155; text-decoration: none; font-weight: 800; font-size: 13px; box-shadow: 0 2px 8px rgba(15,23,42,.05); }
.mine-tabs a i { color: #0f766e; }
.mine-tabs a.on { background: #0f766e; color: #fff; }
.mine-tabs a.on i { color: #fff; }
.mine-tabs b { background: #ef4444; color: #fff; border-radius: 999px; font-size: 10px; padding: 1px 6px; }
.mine-grid-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.mine-grid-tiles a { background: #fff; border-radius: 18px; padding: 16px 8px; display: grid; justify-items: center; gap: 8px; text-decoration: none; color: #0f172a; font-weight: 800; font-size: 12px; text-align: center; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.mine-grid-tiles i { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; font-size: 17px; }
.mine-office.mail { background: linear-gradient(135deg, #1e293b, #334155); }
.mine-pill { display: inline-block; width: max-content; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; background: #e2e8f0; color: #334155; }
.tone-ok { --tone: #16a34a; --tone-bg: #dcfce7; }
.tone-warn { --tone: #ea580c; --tone-bg: #ffedd5; }
.tone-bad { --tone: #dc2626; --tone-bg: #fee2e2; }
[class*="tone-"] .mine-pill, .mine-legend [class*="tone-"] { background: var(--tone-bg); color: var(--tone); }
.mine-rooms article[class*="tone-"], .mine-lease, .mine-doc[class*="tone-"] { border-left: 5px solid var(--tone, #e2e8f0); }
.mine-legend { display: flex; flex-wrap: wrap; gap: 6px; }
.mine-legend span { padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.mine-lease { background: #f8fafc; border-radius: 18px; padding: 12px; display: grid; gap: 8px; }
.mine-lease header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.mine-lease header small { display: block; color: #64748b; }
.mine-debt { margin: 0; color: #dc2626; font-weight: 700; }
.mine-payrow { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; background: #fff; border-radius: 14px; padding: 10px; }
.mine-payrow > i { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; }
.mine-payrow small { display: block; color: #64748b; }
.mine-acts { display: flex; gap: 6px; flex-wrap: wrap; }
.mine-acts a { display: inline-flex; gap: 5px; align-items: center; padding: 7px 11px; border-radius: 999px; background: #ecfeff; color: #0f766e; text-decoration: none; font-weight: 800; font-size: 12px; }
.mine-acts a + a { background: #0f766e; color: #fff; }
.mine-kinds { display: flex; flex-wrap: wrap; gap: 8px; }
.mine-kinds label { display: block; }
.mine-kinds input { position: absolute; opacity: 0; }
.mine-kinds span { display: inline-flex; gap: 6px; align-items: center; padding: 9px 12px; border-radius: 14px; border: 1px solid #e2e8f0; background: #fff; color: #334155; cursor: pointer; font-size: 13px; }
.mine-kinds input:checked + span { background: #0f766e; color: #fff; border-color: #0f766e; }
.mine-chat { padding: 0; overflow: hidden; gap: 0; }
.mine-chat-h { display: flex; gap: 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid #e2e8f0; }
.mine-chat-h small { display: block; color: #94a3b8; font-size: 12px; }
.mine-chat-h small.on { color: #16a34a; }
.mine-chat-h small.on::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #16a34a; margin-right: 6px; }
.mine-chat-log { height: min(60vh, 520px); overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 8px; background: #f1f5f9; }
.mine-msg { max-width: 78%; padding: 8px 12px; border-radius: 16px; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.06); align-self: flex-start; }
.mine-msg.me { align-self: flex-end; background: #d1fae5; }
.mine-msg p { margin: 0; white-space: pre-wrap; word-break: break-word; }
.mine-msg small { display: block; font-weight: 800; color: #0f766e; font-size: 11px; }
.mine-msg time { display: block; font-size: 10px; color: #94a3b8; text-align: right; margin-top: 2px; }
.mine-chat-form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid #e2e8f0; background: #fff; }
.mine-chat-form textarea { flex: 1; resize: none; min-height: 46px; max-height: 140px; border-radius: 14px; border: 1px solid #e2e8f0; padding: 12px; font-size: 16px; font-family: inherit; }
.mine-chat-form .btn { width: 50px; min-width: 50px; border-radius: 14px; }
.mine-about-card { text-align: center; justify-items: center; }
.mine-about-card p { text-align: left; color: #334155; line-height: 1.6; margin: 0; }
.mine-lock i { color: #0f766e; }
.desk-live { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--muted); background: var(--card); border: 1px solid var(--line); }
.desk-live i { width: 8px; height: 8px; border-radius: 50%; background: #94a3b8; }
.desk-live.is-on { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.desk-live.is-on i { background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.2); animation: desk-pulse 2s ease-in-out infinite; }
@keyframes desk-pulse { 50% { box-shadow: 0 0 0 6px rgba(34,197,94,0); } }
.desk-chat { display: grid; grid-template-columns: 320px 1fr; height: 620px; overflow: hidden; padding: 0; border: 1px solid var(--line); box-shadow: var(--shadow); }
.desk-threads { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--line); background: linear-gradient(180deg, #f8fafc, var(--card) 140px); }
.desk-threads-h { padding: 16px 14px 12px; display: grid; gap: 10px; border-bottom: 1px solid var(--line); }
.desk-threads-title { display: flex; align-items: center; justify-content: space-between; }
.desk-threads-title b { font-size: 15px; }
.desk-count { min-width: 26px; padding: 2px 8px; border-radius: 999px; background: rgba(37,99,235,.1); color: var(--blue); font-size: 12px; font-weight: 800; text-align: center; }
.desk-find { position: relative; display: block; }
.desk-find i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 13px; pointer-events: none; }
.desk-find input { width: 100%; padding: 9px 12px 9px 34px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); font: inherit; font-size: 13px; outline: none; transition: border-color .15s, box-shadow .15s; }
.desk-find input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.desk-threads-list { flex: 1; min-height: 0; overflow-y: auto; padding: 6px; }
.desk-thread { display: flex; gap: 11px; align-items: center; padding: 10px; border-radius: 14px; text-decoration: none; color: inherit; transition: background .15s; }
.desk-thread + .desk-thread { margin-top: 2px; }
.desk-thread:hover { background: rgba(37,99,235,.06); }
.desk-thread.on { background: rgba(37,99,235,.12); box-shadow: inset 3px 0 0 var(--blue); }
.desk-thread-main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.desk-thread-top, .desk-thread-sub { display: flex; align-items: center; gap: 8px; min-width: 0; }
.desk-thread-top b { flex: 1; min-width: 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.desk-thread-top time { flex: none; font-size: 11px; color: var(--muted); }
.desk-thread-sub span { flex: 1; min-width: 0; font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.desk-thread.is-new .desk-thread-sub span { color: var(--text); font-weight: 600; }
.desk-thread.is-new .desk-thread-top time { color: var(--blue); font-weight: 700; }
.desk-code { font-size: 11px; color: var(--muted); letter-spacing: .02em; }
.desk-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); }
.desk-blank { margin: auto; padding: 32px 24px; max-width: 340px; display: grid; justify-items: center; gap: 8px; text-align: center; }
.desk-blank b { font-size: 15px; }
.desk-blank p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.desk-blank.is-side { padding-top: 48px; }
.desk-blank-ico { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 4px; font-size: 22px; color: var(--blue); background: rgba(37,99,235,.1); }
.desk-blank-ico.is-lg { width: 84px; height: 84px; border-radius: 26px; font-size: 34px; color: #fff; background: linear-gradient(135deg, var(--blue-s), var(--blue-d)); box-shadow: 0 14px 30px rgba(37,99,235,.28); }
.desk-talk { display: flex; flex-direction: column; min-height: 0; background: radial-gradient(circle at 1px 1px, rgba(100,116,139,.12) 1px, transparent 0) 0 0 / 22px 22px, var(--card); }
html[data-theme="dark"] .desk-threads { background: var(--card); }
html[data-theme="dark"] .desk-live.is-on { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.35); color: #4ade80; }
.desk-talk header { padding: 12px 16px; border-bottom: 1px solid var(--line); }
.desk-talk .mine-chat-log { flex: 1; height: auto; min-height: 380px; }
.mine-hero.has-cover { background: linear-gradient(160deg, rgba(4,47,46,.82), rgba(15,118,110,.55)), var(--cover) center / cover no-repeat; }
.mine-cover-form { height: 120px; border-radius: 18px; background: linear-gradient(135deg, #0f766e, #134e4a); display: flex; align-items: flex-end; justify-content: flex-end; padding: 10px; }
.mine-cover-form.has-cover { background: var(--cover) center / cover no-repeat; }
.mine-cover-form label { cursor: pointer; background: rgba(15,23,42,.65); color: #fff; padding: 7px 12px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.comm { display: grid; gap: 12px; }
.comm-groups { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.comm-groups a { flex: none; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid #e2e8f0; color: #334155; text-decoration: none; font-weight: 800; font-size: 13px; }
.comm-groups a.on { background: #0f766e; border-color: #0f766e; color: #fff; }
.comm-cover { position: relative; overflow: hidden; display: flex; align-items: center; gap: 16px; border-radius: 22px; padding: 24px 20px; color: #fff; background: radial-gradient(circle at 90% 10%, rgba(255,255,255,.22), transparent 40%), linear-gradient(135deg, #1d4ed8, #0f766e); }
.comm-cover::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; border: 28px solid rgba(255,255,255,.07); pointer-events: none; }
.comm-cover > div { position: relative; z-index: 1; min-width: 0; }
.comm-cover-ico { position: relative; z-index: 1; flex: none; width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; font-size: 26px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(6px); }
.comm-cover p { margin: 0; opacity: .85; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.comm-cover h2 { margin: 4px 0; font-size: 1.5rem; }
.comm-cover small { opacity: .85; }
.comm-compose, .comm-post { background: #fff; border-radius: 18px; padding: 14px; box-shadow: 0 6px 20px rgba(15,23,42,.05); border: 1px solid #eef2f7; }
.comm-compose { display: grid; grid-template-columns: auto 1fr; gap: 10px; }
.comm-compose > img, .comm-post header img, .comm-c img, .comm-write img, .mine-me-chip img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; background: #e2e8f0; }
.comm-compose textarea { border: 0; background: #f1f5f9; border-radius: 18px; padding: 12px 14px; font-size: 16px; resize: vertical; min-height: 48px; font-family: inherit; width: 100%; box-sizing: border-box; }
.comm-compose-acts { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #eef2f7; padding-top: 10px; }
.comm-photo-btn { cursor: pointer; color: #16a34a; font-weight: 800; font-size: 14px; }
.comm-post header { display: flex; gap: 10px; align-items: center; }
.comm-post header > div { flex: 1; min-width: 0; }
.comm-post header b { display: block; }
.comm-post header small { color: #64748b; font-size: 12px; }
.comm-tick { color: #1d9bf0; margin-left: 4px; font-size: 14px; }
.comm-body { margin: 10px 0 0; white-space: normal; word-break: break-word; line-height: 1.5; }
.comm-pic { display: block; width: 100%; max-height: 520px; object-fit: cover; border-radius: 14px; margin-top: 10px; background: #f1f5f9; }
.comm-shared { margin-top: 10px; border: 1px solid #e2e8f0; border-radius: 14px; padding: 10px; }
.comm-shared p { margin: 6px 0 0; }
.comm-stats { display: flex; justify-content: space-between; color: #64748b; font-size: 13px; margin-top: 10px; padding-bottom: 8px; border-bottom: 1px solid #eef2f7; }
.comm-stats i { color: #1d9bf0; }
.comm-acts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px 0; border-bottom: 1px solid #eef2f7; }
.comm-acts form { margin: 0; }
.comm-acts button, .comm-act-btn { width: 100%; display: flex; justify-content: center; align-items: center; gap: 6px; padding: 9px 4px; border: 0; background: none; border-radius: 10px; color: #475569; font-weight: 800; font-size: 13px; cursor: pointer; list-style: none; }
.comm-act-btn::-webkit-details-marker { display: none; }
.comm-acts button:hover, .comm-act-btn:hover { background: #f1f5f9; }
.comm-acts button.on { color: #1d9bf0; }
.comm-share { position: relative; }
.comm-share form { position: absolute; right: 0; z-index: 4; display: grid; gap: 6px; width: 240px; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 10px; box-shadow: 0 12px 30px rgba(15,23,42,.12); }
.comm-menu { position: relative; }
.comm-menu summary { list-style: none; cursor: pointer; padding: 6px 10px; border-radius: 999px; color: #64748b; }
.comm-menu summary::-webkit-details-marker { display: none; }
.comm-menu > div { position: absolute; right: 0; z-index: 5; min-width: 200px; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 6px; box-shadow: 0 12px 30px rgba(15,23,42,.12); display: grid; gap: 4px; }
.comm-menu button { width: 100%; text-align: left; border: 0; background: none; padding: 8px 10px; border-radius: 10px; cursor: pointer; font-weight: 700; color: #334155; }
.comm-menu button:hover { background: #fef2f2; color: #dc2626; }
.comm-freeze { display: flex; gap: 6px; align-items: center; padding: 4px; }
.comm-freeze select { flex: none; }
.comm-thread { display: grid; gap: 8px; padding-top: 10px; }
.comm-c { display: grid; grid-template-columns: auto 1fr; gap: 8px; }
.comm-c.is-reply { margin-left: 46px; }
.comm-c.is-reply img { width: 32px; height: 32px; }
.comm-bubble { background: #f1f5f9; border-radius: 16px; padding: 8px 12px; display: inline-block; max-width: 100%; }
.comm-bubble b { font-size: 13px; }
.comm-bubble p { margin: 2px 0 0; word-break: break-word; }
.comm-c-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 2px 8px; font-size: 12px; color: #64748b; }
.comm-reply summary { cursor: pointer; font-weight: 800; list-style: none; }
.comm-reply summary::-webkit-details-marker { display: none; }
.comm-reply form, .comm-write { display: flex; gap: 6px; align-items: center; margin-top: 6px; width: 100%; }
.comm-reply input, .comm-write input { flex: 1; min-width: 0; border: 0; background: #f1f5f9; border-radius: 999px; padding: 10px 14px; font-size: 16px; }
.comm-del-c button { border: 0; background: none; color: #94a3b8; cursor: pointer; font-weight: 700; padding: 0; }
.comm-empty { display: grid; justify-items: center; gap: 6px; text-align: center; padding: 36px 20px; background: var(--card); border: 1px dashed #cbd5e1; border-radius: 18px; }
.comm-empty b { font-size: 15px; }
.comm-empty p { margin: 0; color: var(--muted); font-size: 13px; }
.comm-empty-ico { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 6px; font-size: 24px; color: #0f766e; background: rgba(15,118,110,.1); }
.comm-staff { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.comm-staff .comm { max-width: 760px; }
.comm-staff .comm-groups { padding: 2px; }
.comm-staff .comm-groups a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; background: var(--card); border-color: var(--line); color: #334155; transition: border-color .15s, color .15s, box-shadow .15s; }
.comm-staff .comm-groups a i { color: var(--muted); }
.comm-staff .comm-groups a:hover { border-color: var(--blue-s); color: var(--blue); }
.comm-staff .comm-groups a.on { background: var(--blue); border-color: var(--blue); color: #fff; box-shadow: 0 6px 16px rgba(37,99,235,.28); }
.comm-staff .comm-groups a.on i { color: #fff; }
.comm-staff .comm-cover { background: radial-gradient(circle at 90% 10%, rgba(255,255,255,.22), transparent 40%), linear-gradient(135deg, var(--blue-d), #0e7490); box-shadow: 0 14px 30px rgba(29,78,216,.22); }
.comm-staff .comm-compose { padding: 16px; border-color: var(--line); }
.comm-staff .comm-compose textarea { font-size: 15px; border: 1px solid transparent; transition: border-color .15s, background .15s, box-shadow .15s; }
.comm-staff .comm-compose textarea:focus { outline: none; background: var(--card); border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.comm-staff .comm-photo-btn { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 10px; transition: background .15s; }
.comm-staff .comm-photo-btn:hover { background: #f0fdf4; }
.comm-staff .comm-compose-acts .btn { padding-inline: 22px; }
.comm-staff .comm-empty-ico { color: var(--blue); background: rgba(37,99,235,.1); }
.comm-side { display: grid; gap: 14px; position: sticky; top: calc(var(--top-offset) + 8px); }
.comm-side-card { padding: 0; overflow: hidden; }
.comm-side-h { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.comm-side-h h2 { flex: 1; margin: 0; font-size: 15px; }
.comm-side-ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-size: 14px; }
.comm-side-ico.is-ice { color: #0284c7; background: #e0f2fe; }
.comm-side-ico.is-live { color: #16a34a; background: #dcfce7; }
.comm-side-none { display: flex; align-items: center; gap: 8px; margin: 0; padding: 16px; color: var(--muted); font-size: 13px; }
.comm-side-none i { color: #94a3b8; }
.comm-side-list { list-style: none; margin: 0; padding: 6px; max-height: 360px; overflow-y: auto; }
.comm-side-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 12px; }
.comm-side-list li:hover { background: #f8fafc; }
.comm-side-list form { margin: 0; }
.comm-side-person { display: flex; align-items: center; gap: 10px; min-width: 0; color: inherit; text-decoration: none; }
.comm-side-person img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; background: #e2e8f0; }
.comm-side-who { display: grid; min-width: 0; }
.comm-side-who b { font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.comm-side-who small { font-size: 12px; color: var(--muted); }
html[data-theme="dark"] .comm-empty { border-color: var(--line); }
html[data-theme="dark"] .comm-staff .comm-groups a:not(.on) { color: var(--text); }
html[data-theme="dark"] .comm-side-list li:hover { background: rgba(255,255,255,.04); }
@media (max-width: 960px) { .comm-staff { grid-template-columns: 1fr; } .comm-side { position: static; } }
.desk-order-row { display: flex; gap: 10px; align-items: center; margin: 6px 0; }
.desk-order-row input { width: 70px; }
@media (max-width: 760px) { .desk-chat { grid-template-columns: 1fr; height: auto; } .desk-threads { max-height: 280px; border-right: 0; border-bottom: 1px solid var(--line); } .desk-talk { min-height: 420px; } .mchat.is-desk { height: 520px; } }
@media (max-width: 760px) {
  .mine { padding: 12px 12px 108px; }
  .mine-hero { padding: 16px; border-radius: 22px; }
  .mine-hero h1 { font-size: 1.25rem; }
  .mine-face { width: 72px; height: 72px; border-radius: 22px; }
  .mine-rate { margin-left: 0; }
  .mine-grid, .mine-facts, .mine-jump { grid-template-columns: 1fr 1fr; }
  .mine-grid .span, .mine-facts .span { grid-column: 1 / -1; }
  .mine-doc { grid-template-columns: auto 1fr; }
  .mine-doc em { grid-column: 2; }
  .mine-grid-tiles { grid-template-columns: repeat(3, 1fr); }
  .mine-tabs { top: 57px; padding: 8px 12px; }
  .mine-payrow { grid-template-columns: auto 1fr; }
  .mine-payrow .mine-acts, .mine-doc .mine-acts { grid-column: 1 / -1; }
  .mine-msg { max-width: 88%; }
}
.my-login, .my-app { max-width: 720px; margin: 0 auto; padding: 24px 16px 48px; }
.my-top { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.my-top div { flex: 1; display: grid; }
.my-top span { color: #64748b; font-size: 13px; }
.my-nav { display: flex; gap: 8px; overflow: auto; margin: 0 0 12px; }
.my-nav a { background: #fff; border-radius: 999px; padding: 8px 12px; text-decoration: none; font-weight: 700; white-space: nowrap; }
.my-pad { padding: 0 16px 16px; display: grid; gap: 8px; }
.my-pad h3 { margin: 8px 0 0; }
.flem-edit { display: grid; gap: 6px; margin-top: 6px; padding-top: 8px; border-top: 1px dashed var(--line); }
.flem-edit label { display: grid; gap: 3px; font-size: 11px; font-weight: 700; color: var(--muted); }
.side-wa a { color: #25d366; }
.wa-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.check-desk { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 16px; }
.check-scan { min-height: 240px; border-radius: 16px; overflow: hidden; background: #0f172a; }
.check-result.is-ok { border-color: #10b981; }
.check-result.is-bad { border-color: #ef4444; }
@media (max-width: 860px) { .check-desk { grid-template-columns: 1fr; } }
.dash-people { margin: 0 0 18px; }
.dash-people-h { padding: 0 4px 10px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.dash-people-h h2 { margin: 0; font-size: 1.1rem; }
.dash-people-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px;
}
.dash-people-grid .donut-wrap { height: 200px; }
.dash-people-grid .chart-box.short { height: 160px; }
.dash-origin-list { list-style: none; margin: 0; padding: 0 14px 14px; display: grid; gap: 8px; }
.dash-origin-list li { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; }
.dash-origin-list .meter { grid-column: 1 / -1; height: 6px; }
.dash-agents { margin-bottom: 18px; }
.dash-agent-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px; padding: 0 16px 16px;
}
.dash-agent {
  display: grid; gap: 2px; padding: 12px; border: 1px solid var(--line);
  border-radius: 14px; background: linear-gradient(180deg, #f8fafc, #fff); color: inherit; text-decoration: none;
}
.dash-agent:hover { border-color: #93c5fd; box-shadow: 0 8px 20px rgba(37,99,235,.08); }
.dash-agent strong { font-size: 14px; }
.dash-agent small, .dash-agent em, .dash-agent span { font-size: 12px; color: var(--muted); }
.dash-mix-legend { padding: 8px 16px 16px; }
@media (max-width: 1100px) {
  .dash-people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .dash-people-grid { grid-template-columns: 1fr; }
}

/* Notifications modern */
.notif-head .kicker { margin: 0 0 4px; font-size: 12px; font-weight: 800; color: #64748b; letter-spacing: .04em; text-transform: uppercase; }
.notif-filters .chip b { margin-left: 4px; }
.notif-snaps { margin-bottom: 16px; }
.notif-announce { margin-bottom: 16px; }
.notif-feed-card { margin-bottom: 16px; }
.notif-feed { display: grid; gap: 6px; padding: 0 14px 14px; }
.notif-feed-selall { margin: 0; font-size: 12px; font-weight: 700; }
.notif-card {
  display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: 10px; align-items: center;
  padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px;
  background: #fff; transition: border-color .15s, box-shadow .15s;
}
.notif-card.is-unread {
  border-color: #93c5fd;
  background: linear-gradient(135deg, #eff6ff, #fff 55%);
  box-shadow: 0 6px 18px rgba(37,99,235,.06);
}
.notif-card.is-hot { border-color: #fca5a5; }
.notif-card .notif-ico {
  width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center;
  background: #f1f5f9; color: #334155;
}
.notif-card.is-unread .notif-ico { background: #dbeafe; color: #1d4ed8; }
.notif-card.is-hot .notif-ico { background: #fee2e2; color: #b91c1c; }
.notif-body h3 { margin: 0; font-size: 14px; line-height: 1.35; white-space: normal; overflow: visible; }
.notif-body p { margin: 2px 0 0; color: var(--text, #0f172a); font-size: 13px; line-height: 1.45; white-space: normal; overflow: visible; }
.notif-k { margin-bottom: 0; }
.notif-body time { margin-left: auto; font-size: 11px; color: #94a3b8; font-weight: 700; }
.notif-lease-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px;
}
.notif-lease-card.is-danger { border-color: #fecaca; }
@media (max-width: 800px) {
  .notif-card { grid-template-columns: auto 1fr; }
  .notif-card .notif-pick { grid-row: 1; }
  .notif-card .notif-ico { grid-row: 1; }
  .notif-card .notif-body { grid-column: 1 / -1; }
  .notif-card .btn { grid-column: 1 / -1; justify-self: start; }
  .notif-lease-grid { grid-template-columns: 1fr; }
}
html[data-theme="dark"] .dash-agent { background: #0f172a; }
html[data-theme="dark"] .notif-card { background: #0f172a; }
html[data-theme="dark"] .notif-card.is-unread { background: linear-gradient(135deg, #172554, #0f172a 60%); }
html[data-theme="dark"] .dash-online-pill { background: #14532d; color: #bbf7d0; }
html[data-theme="dark"] .notif-drop {
  background: #0f172a; border-color: #1f2937;
}
.notif-drop {
  width: min(420px, 94vw); border-radius: 18px;
  box-shadow: 0 18px 40px rgba(15,23,42,.18);
}
@media (max-width: 960px) {
  .notif-drop { overflow: auto; }
  .notif-tools { align-items: flex-start; }
  .notif-tools-btns { margin-left: 0; }
}
.notif-list li.unread a { background: linear-gradient(90deg, #eff6ff, transparent); }
.notif-list li.hot a b { color: #b91c1c; }

/* SMS care — dashboard + profile */
.dash-sms-help { padding: 0 16px 8px; margin: 0; }
.dash-sms-credit {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 10px; align-items: center; padding: 0 16px 12px;
}
.dash-sms-credit-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
@media (max-width: 720px) {
  .dash-sms-credit { grid-template-columns: 1fr; }
  .dash-sms-credit-actions { justify-content: flex-start; }
}
.dash-sms-periods { padding: 0 16px 8px; flex-wrap: wrap; }
.dash-sms-stats {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
  padding: 0 16px 12px;
}
.dash-sms-stat {
  display: grid; gap: 2px; padding: 12px 12px; border-radius: 14px;
  border: 1px solid var(--line); background: var(--card); color: inherit;
  transition: transform .15s ease, box-shadow .15s ease;
}
.dash-sms-stat:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(15,23,42,.08); }
.dash-sms-stat b { font-size: 22px; letter-spacing: -.03em; line-height: 1.1; }
.dash-sms-stat span { font-size: 12px; font-weight: 700; color: var(--muted); }
.dash-sms-stat.is-ok { background: rgba(16,185,129,.1); border-color: rgba(16,185,129,.35); box-shadow: inset 3px 0 0 #10b981; }
.dash-sms-stat.is-ok b { color: #047857; }
.dash-sms-stat.is-fail { background: rgba(239,68,68,.1); border-color: rgba(239,68,68,.35); box-shadow: inset 3px 0 0 #ef4444; }
.dash-sms-stat.is-fail b { color: #b91c1c; }
.dash-sms-stat.is-wait { background: rgba(245,158,11,.1); border-color: rgba(245,158,11,.35); box-shadow: inset 3px 0 0 #f59e0b; }
.dash-sms-stat.is-wait b { color: #b45309; }
.dash-sms-stat.is-all { background: rgba(37,99,235,.06); border-color: rgba(37,99,235,.25); box-shadow: inset 3px 0 0 #2563eb; }
.dash-sms-stat.is-all b { color: #1d4ed8; }
@media (max-width: 720px) {
  .dash-sms-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
html[data-theme="dark"] .dash-sms-stat.is-ok { background: rgba(16,185,129,.14); }
html[data-theme="dark"] .dash-sms-stat.is-fail { background: rgba(239,68,68,.16); }
html[data-theme="dark"] .dash-sms-stat.is-wait { background: rgba(245,158,11,.14); }
html[data-theme="dark"] .dash-sms-stat.is-all { background: rgba(37,99,235,.14); }
.dash-sms-count { padding: 0 16px 10px; margin: 0; font-size: 12px; }
.dash-sms-list .dash-sms-row { align-items: flex-start; gap: 10px; }
.dash-sms-list .dash-sms-row.is-sms-ok,
.mini-list li.is-sms-ok,
.notif-table tr.is-sms-ok td {
  background: rgba(16,185,129,.08);
  box-shadow: inset 3px 0 0 #10b981;
}
.dash-sms-list .dash-sms-row.is-sms-fail,
.mini-list li.is-sms-fail,
.notif-table tr.is-sms-fail td {
  background: rgba(239,68,68,.09);
  box-shadow: inset 3px 0 0 #ef4444;
}
.dash-sms-list .dash-sms-row.is-sms-wait,
.mini-list li.is-sms-wait,
.notif-table tr.is-sms-wait td {
  background: rgba(245,158,11,.08);
  box-shadow: inset 3px 0 0 #f59e0b;
}
.dash-sms-meta .badge { vertical-align: middle; }
html[data-theme="dark"] .dash-sms-list .dash-sms-row.is-sms-ok,
html[data-theme="dark"] .mini-list li.is-sms-ok,
html[data-theme="dark"] .notif-table tr.is-sms-ok td { background: rgba(16,185,129,.14); }
html[data-theme="dark"] .dash-sms-list .dash-sms-row.is-sms-fail,
html[data-theme="dark"] .mini-list li.is-sms-fail,
html[data-theme="dark"] .notif-table tr.is-sms-fail td { background: rgba(239,68,68,.16); }
html[data-theme="dark"] .dash-sms-list .dash-sms-row.is-sms-wait,
html[data-theme="dark"] .mini-list li.is-sms-wait,
html[data-theme="dark"] .notif-table tr.is-sms-wait td { background: rgba(245,158,11,.14); }
.dash-sms-main { display: flex; gap: 8px; flex: 1; min-width: 0; }
.dash-sms-chk { margin: 2px 0 0; }
.dash-sms-text { min-width: 0; flex: 1; }
.dash-sms-acts { flex-wrap: wrap; justify-content: flex-end; }
.dash-sms-fold { margin-top: 4px; }
.dash-sms-more { padding: 8px 16px 16px; }
.sms-edit-dlg {
  border: 0; border-radius: 18px; padding: 0; width: min(480px, 94vw);
  box-shadow: 0 24px 60px rgba(15,23,42,.28);
}
.sms-edit-dlg::backdrop { background: rgba(15,23,42,.45); }
.sms-edit-dlg form { padding: 18px; }
.sms-edit-dlg h3 { margin: 0 0 6px; }
.prof-sms-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
#prof-sms .prof-sms-layout { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(280px, 1.1fr); gap: 16px; padding: 0 16px 16px; align-items: start; }
#prof-sms .prof-sms-hist li { flex-direction: column; align-items: stretch; gap: 8px; padding: 12px 0; }
#prof-sms .prof-sms-hist .person-acts { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
#prof-sms .prof-sms-hist .person-acts .btn { flex: 0 1 auto; }
#prof-sms .sms-fold summary { cursor: pointer; font-size: 13px; line-height: 1.4; }
#prof-sms .sms-preview { white-space: pre-wrap; font-size: 12px; margin: 8px 0 0; padding: 10px; background: #f8fafc; border-radius: 10px; max-height: 160px; overflow: auto; }
@media (max-width: 900px) {
  #prof-sms .prof-sms-layout { grid-template-columns: 1fr; }
}
html[data-theme="dark"] #prof-sms .sms-preview { background: #1e293b; }
.sms-row-acts { white-space: nowrap; }
.sms-row-acts .btn { margin: 2px; }
@media (max-width: 720px) {
  .dash-sms-row { flex-direction: column; }
  .dash-sms-acts { justify-content: flex-start; }
}

/* Finance + dashboard money board */
.dash-health { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.staff-free-card { background: linear-gradient(180deg, #fff, #f5f3ff) !important; }
.staff-free-n { font-size: 28px; color: #7c3aed; letter-spacing: -.03em; }
.dash-today .is-staff i, .dash-today .is-staff b { color: #7c3aed; }
.dash-finance { margin: 0 0 18px; }
.dash-finance-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.dash-finance-h h2 { margin: 0; font-size: 18px; }
.fin-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.fin-kpis .snap {
  display: block; text-decoration: none; color: inherit;
  border-radius: 16px; padding: 14px 16px;
  background: linear-gradient(180deg, #fff, #f8fafc);
  box-shadow: 0 8px 24px rgba(15,23,42,.05);
}
.fin-kpis .snap i {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: #eff6ff; margin-bottom: 8px; color: #2563eb;
}
.fin-kpis .snap b { display: block; font-size: 18px; letter-spacing: -.02em; margin-bottom: 2px; }
.fin-kpis .snap span { display: block; font-size: 12px; font-weight: 700; color: var(--muted); }
.fin-kpis .snap small { display: block; font-size: 11px; color: #94a3b8; margin-top: 4px; }
.fin-kpis .snap.money i, .fin-kpis .snap.money b { color: #047857; }
.fin-kpis .snap.money i { background: #ecfdf5; }
.fin-kpis .snap.warn i, .fin-kpis .snap.warn b { color: #dc2626; }
.fin-kpis .snap.warn i { background: #fef2f2; }
.fin-kpis .snap.teal i, .fin-kpis .snap.teal b { color: #0f766e; }
.fin-kpis .snap.teal i { background: #ecfdf5; }
.fin-kpis .snap.violet i, .fin-kpis .snap.violet b { color: #7c3aed; }
.fin-kpis .snap.violet i { background: #f5f3ff; }
.fin-estimate { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 4px 16px 14px; }
.fin-estimate-wrap { padding-top: 4px; }
.fin-estimate-hint {
  margin: 0 0 12px; font-size: 12.5px; line-height: 1.45; color: var(--muted);
  background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
}
html[data-theme="dark"] .fin-estimate-hint { background: rgba(148,163,184,.08); }
.fin-collect-head {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 16px; align-items: flex-end; margin-bottom: 8px;
}
.fin-collect-label { display: block; font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.fin-collect-head strong { display: block; font-size: 22px; letter-spacing: -.03em; color: #047857; }
.fin-collect-vs { text-align: right; font-size: 12px; color: var(--muted); }
.fin-collect-vs span { display: block; font-weight: 600; }
.fin-collect-vs b { color: var(--text); font-size: 14px; }
.fin-collect-vs em { font-style: normal; font-weight: 800; margin-left: 6px; }
.fin-collect-meter { margin: 0 0 10px; }
.fin-status { margin: 0 0 14px; font-size: 13px; line-height: 1.4; }
.fin-status.ok { color: #047857; }
.fin-status.warn { color: #b45309; }
.fin-status b { color: inherit; }
.fin-estimate-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.fin-estimate-list li {
  display: grid; grid-template-columns: 10px 1fr auto; gap: 10px; align-items: start;
  padding: 10px 0; border-top: 1px solid var(--line); font-size: 13px;
}
.fin-estimate-list li:first-child { border-top: 0; padding-top: 2px; }
.fin-estimate-list i { width: 8px; height: 8px; border-radius: 99px; display: inline-block; margin-top: 5px; }
.fin-estimate-list span { display: block; font-weight: 700; color: var(--text); }
.fin-estimate-list small { display: block; font-size: 11.5px; color: var(--muted); line-height: 1.35; margin-top: 2px; font-weight: 500; }
.fin-estimate-list b { font-size: 13.5px; white-space: nowrap; padding-top: 1px; }
.fundi-layout { align-items: start; }
.fundi-form { max-width: 760px; }
.fundi-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.fundi-pair label:last-child { grid-column: 1 / -1; }
@media (max-width: 720px) { .fundi-pair { grid-template-columns: 1fr; } }
.prop-facts > span:not(.prop-facts-occ) { display: inline-flex; align-items: baseline; gap: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 700; color: var(--muted); }
.prop-facts > span:not(.prop-facts-occ) b { color: var(--text); font-size: 14px; }
.fin-bank-now { display: flex; flex-direction: column; gap: 4px; margin: 0 0 14px; }
.fin-bank-now strong { font-size: 22px; letter-spacing: -.03em; }
.form.pad, .pad { padding: 12px 16px 16px; }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.row-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
form.inline { display: inline; }
#dash-finance, #dash-people { scroll-margin-top: 88px; }
@media (max-width: 860px) {
  .dash-health { grid-template-columns: 1fr; }
}

/* Settings — professional office console */
.set-page { max-width: 1120px; }
.set-hero {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 12px;
  margin-bottom: 10px; padding: 14px 16px; border-radius: 16px; color: #fff;
  background:
    radial-gradient(700px 180px at 92% -30%, rgba(96,165,250,.4), transparent 55%),
    linear-gradient(135deg, #0b1220 0%, #1e3a8a 55%, #1d4ed8 100%);
  box-shadow: 0 16px 36px rgba(29,78,216,.18);
}
.set-hero .page-head, .set-hero.set-hero { margin: 0; }
.set-kicker {
  margin: 0 0 6px; font-size: 11px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #bfdbfe;
}
.set-hero h1 { margin: 0 0 4px; font-size: 22px; letter-spacing: -.03em; color: #fff; }
.set-hero p { margin: 0; color: #dbeafe; font-size: 14px; max-width: 48ch; }
.set-hero-meta { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.set-pill {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px;
  border-radius: 999px; background: rgba(255,255,255,.12); color: #eff6ff;
  font-size: 12px; font-weight: 700; border: 1px solid rgba(255,255,255,.14);
}
.set-pill.ok { background: rgba(16,185,129,.18); border-color: rgba(52,211,153,.35); }
.set-pill.warn { background: rgba(245,158,11,.2); border-color: rgba(251,191,36,.4); }
.set-pill.off { background: rgba(248,113,113,.18); border-color: rgba(252,165,165,.35); }
.set-status { margin-bottom: 16px; }
.set-subtabs { margin: -8px 0 16px; }
.snap.live i, .snap.live b { color: #047857; }
.snap.planned i, .snap.planned b { color: #b45309; }
.snap.bad i, .snap.bad b { color: #b91c1c; }
.set-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; font-style: normal; }
.set-badge.ok { background: #d1fae5; color: #047857; }
.set-badge.planned { background: #fef3c7; color: #b45309; }
.set-badge.bad { background: #fee2e2; color: #b91c1c; }
.secret-row { display: flex; gap: 8px; align-items: center; }
.secret-row input { flex: 1; }
.set-tabs { margin-bottom: 16px; }
.set-block { margin-bottom: 16px; overflow: hidden; }
.set-block .card-h { padding: 16px 18px 8px; }
.set-lead { padding: 0 18px 8px; margin: 0; }
.set-form { padding: 8px 18px 18px; }
.set-fieldset {
  border: 1px solid rgba(148,163,184,.28); border-radius: 16px;
  padding: 14px 16px 16px; margin: 0 0 14px; background: linear-gradient(180deg, #fff, #f8fafc);
}
.set-fieldset legend {
  padding: 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: #1e40af;
}
.set-brand-block { padding: 8px 18px 18px; border-top: 1px solid var(--line); }
.set-brand-block h3 { margin: 16px 0 10px; font-size: 15px; }
.set-switch {
  display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px;
  border-radius: 14px; background: #f8fafc; border: 1px solid rgba(148,163,184,.25);
  margin-bottom: 8px; font-weight: 650;
}
.pay-studio-h.is-ai {
  background: linear-gradient(135deg, #312e81 0%, #4c1d95 50%, #6d28d9 100%);
}
.set-ai-grid {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr);
  gap: 16px; padding: 8px 18px 18px;
}
.set-ai-status { display: grid; gap: 12px; align-content: start; }
.set-ai-badge {
  display: flex; gap: 12px; align-items: flex-start; padding: 14px;
  border-radius: 16px; background: #f8fafc; border: 1px solid var(--line);
}
.set-ai-badge.ok { background: #ecfdf5; border-color: #a7f3d0; }
.set-ai-badge.off { background: #fef2f2; border-color: #fecaca; }
.set-ai-badge i { font-size: 22px; margin-top: 2px; }
.set-ai-badge.ok i { color: #059669; }
.set-ai-badge.off i { color: #dc2626; }
.set-ai-badge strong { display: block; font-size: 15px; }
.set-ai-badge span { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.set-ai-tips { margin: 0; padding-left: 18px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.set-connect-grid { margin-bottom: 16px; }
.integ-status-row { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 12px; }
.integ-pill {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700;
  padding: 6px 10px; border-radius: 999px; border: 1px solid #cbd5e1; background: #f8fafc; color: #334155;
}
.integ-pill.integ-live { border-color: #16a34a; background: #ecfdf5; color: #166534; }
.integ-pill.integ-partial { border-color: #d97706; background: #fffbeb; color: #92400e; }
.integ-pill.integ-planned { border-color: #6366f1; background: #eef2ff; color: #3730a3; }
.integ-pill.integ-off { opacity: 0.75; }
.integ-block { margin-bottom: 18px; }
.integ-readonly { background: #f1f5f9; cursor: pointer; font-family: ui-monospace, monospace; font-size: 12px; }
.lan-sync-status { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 12px; }
.lan-url-list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.lan-url-list li { display: flex; gap: 8px; align-items: center; }
.lan-url-list input { flex: 1; min-width: 0; }
.lan-xampp-hint { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.ai-prov-grid { margin-top: 8px; }
.btn-link {
  background: none; border: none; padding: 0; color: #2563eb; font-weight: 700; cursor: pointer; text-decoration: underline;
  font-size: inherit;
}
html[data-theme="dark"] .btn-link { color: #93c5fd; }
#regEndDate { cursor: pointer; }
.tenant-reg-photo {
  display: flex; align-items: center; gap: 14px; margin: 12px 0 4px;
  padding: 12px; border-radius: 12px; background: #f8fafc; border: 1px solid #e2e8f0;
}
.tenant-reg-photo img { border-radius: 50%; object-fit: cover; background: #e2e8f0; }
html[data-theme="dark"] .tenant-reg-photo { background: #0f172a; border-color: #334155; }
html[data-theme="dark"] .integ-pill { background: #0f172a; border-color: #334155; color: #cbd5e1; }
html[data-theme="dark"] .integ-readonly { background: #1e293b; }
@media (max-width: 860px) {
  .set-hero { flex-direction: column; align-items: flex-start; }
  .set-hero-meta { justify-content: flex-start; }
  .set-ai-grid { grid-template-columns: 1fr; }
}
html[data-theme="dark"] .set-fieldset { background: linear-gradient(180deg, #111827, #0b1220); }
html[data-theme="dark"] .set-switch { background: #0b1220; }

/* SHAYS AI — modern copilot desk */
.ai-modern { max-width: 1280px; margin: 0 auto; }
body:has(.ai-modern) .ai-fab { display: none !important; }
.ai-top {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
  margin-bottom: 10px; padding: 12px 16px; border-radius: 16px; color: #fff;
  background:
    radial-gradient(720px 200px at 88% -40%, rgba(96,165,250,.35), transparent 55%),
    linear-gradient(135deg, #0b1220 0%, #0f2748 42%, #1d4ed8 100%);
  box-shadow: 0 18px 40px rgba(15,23,42,.18);
  animation: aiTopIn .45s ease both;
}
@keyframes aiTopIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.ai-top-brand { display: flex; gap: 14px; align-items: center; }
.ai-top-logo {
  background: #fff; border-radius: 14px; padding: 4px; object-fit: contain;
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.ai-eyebrow {
  margin: 0 0 4px; font-size: 11px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #93c5fd;
}
.ai-top h1 { margin: 0 0 2px; font-size: 22px; letter-spacing: -.03em; color: #fff; }
.ai-top-sub { margin: 0; color: #dbeafe; font-size: 13px; max-width: 46ch; }
.ai-top-actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.ai-top-actions .btn.ghost { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.2); }
.ai-pulse-strip {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px;
  margin-bottom: 14px;
}
.ai-pulse-item {
  display: grid; gap: 2px; padding: 12px 12px 10px; border-radius: 16px;
  text-decoration: none; color: inherit;
  background: linear-gradient(180deg, #fff, #f8fafc);
  border: 1px solid rgba(148,163,184,.22);
  box-shadow: 0 6px 18px rgba(15,23,42,.04);
  transition: transform .15s ease, box-shadow .15s ease;
}
.ai-pulse-item:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(15,23,42,.08); }
.ai-pulse-item i {
  width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center;
  background: #eff6ff; color: #2563eb; font-size: 12px; margin-bottom: 4px;
}
.ai-pulse-item b { font-size: 16px; letter-spacing: -.02em; line-height: 1.2; }
.ai-pulse-item span { font-size: 11px; font-weight: 700; color: var(--muted); }
.ai-pulse-item.is-money i { background: #ecfdf5; color: #047857; }
.ai-pulse-item.is-money b { color: #047857; }
.ai-stage {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr);
  gap: 14px; align-items: stretch;
}
.ai-desk-modern {
  display: flex; flex-direction: column;
  height: min(78vh, 820px);
  min-height: 460px;
  border-radius: 24px; overflow: hidden;
  background: #fff; border: 1px solid rgba(148,163,184,.25);
  box-shadow: 0 20px 50px rgba(15,23,42,.07);
}
.ai-desk-bar {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 14px; border-bottom: 1px solid rgba(148,163,184,.2);
  background: linear-gradient(180deg, #f8fafc, #fff);
}
.ai-live-dot {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #15803d;
}
.ai-live-dot i {
  width: 8px; height: 8px; border-radius: 50%; background: #22c55e;
  box-shadow: 0 0 0 0 rgba(34,197,94,.55);
  animation: aiPulse 1.6s ease infinite;
}
@keyframes aiPulse {
  0% { box-shadow: 0 0 0 0 rgba(34,197,94,.45); }
  70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}
.ai-occ-mini { flex: 1; min-width: 120px; max-width: 200px; }
.ai-occ-mini span { display: block; font-size: 11px; font-weight: 700; color: var(--muted); margin-bottom: 4px; }
.ai-occ-mini b { color: #0f172a; }
.meter.sm { height: 6px; }
.ai-find { margin: 0; min-width: 160px; flex: 1; max-width: 260px; }
.ai-desk-modern .ai-thread {
  flex: 1; min-height: 280px; overflow: auto; padding: 16px 16px 8px;
  display: flex; flex-direction: column; gap: 14px;
  background:
    radial-gradient(600px 200px at 10% 0%, rgba(37,99,235,.05), transparent 50%),
    linear-gradient(180deg, #f8fafc 0%, #fff 40%);
}
.ai-chat-form {
  display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0;
}
.ai-desk-modern .ai-desk-bar,
.ai-desk-modern .ai-composer { flex-shrink: 0; }
.ai-desk-modern .ai-chat-form .ai-thread { flex: 1 1 auto; min-height: 0; }
.ai-sec-tools {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  flex-shrink: 0; padding: 8px 14px;
  border-bottom: 1px solid rgba(148,163,184,.18);
  background: #f8fafc;
}
.ai-sec-tools .chk { margin: 0; font-size: 12px; font-weight: 700; color: #334155; }
.ai-sec-tools .btn { white-space: nowrap; }
.ai-insight .ai-sec-tools {
  margin: 0 0 10px; padding: 0 0 8px; background: transparent;
}
.ai-pick {
  display: inline-flex; align-items: center; flex: 0 0 auto; margin: 0; cursor: pointer;
}
.ai-pick input { width: 16px; height: 16px; margin: 0; accent-color: #2563eb; }
.ai-row .ai-pick { align-self: center; }
.ai-brief-line { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; }
.ai-brief-line .ai-summary { flex: 1; min-width: 0; margin: 0; }
.ai-row { display: flex; gap: 10px; align-items: flex-end; max-width: 100%; animation: aiMsgIn .28s ease both; }
.ai-row.me { justify-content: flex-end; }
@keyframes aiMsgIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.ai-avatar {
  width: 34px; height: 34px; border-radius: 12px; overflow: hidden; flex-shrink: 0;
  background: #fff; border: 1px solid rgba(148,163,184,.3);
  display: grid; place-items: center;
}
.ai-avatar img { width: 28px; height: 28px; object-fit: contain; }
.ai-desk-modern .ai-bubble {
  max-width: min(92%, 640px); border-radius: 18px; padding: 12px 14px;
  box-shadow: 0 4px 14px rgba(15,23,42,.04);
}
.ai-desk-modern .ai-bubble small {
  display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; margin-bottom: 5px; opacity: .65;
}
.ai-desk-modern .ai-bubble p { margin: 0; line-height: 1.55; }
.ai-desk-modern .ai-bubble.bot {
  background: #fff; border: 1px solid rgba(148,163,184,.28);
}
.ai-desk-modern .ai-bubble.bot p strong { color: #1e40af; }
.ai-desk-modern .ai-bubble.me {
  background: linear-gradient(135deg, #1d4ed8, #2563eb); color: #fff; border: 0;
}
.ai-desk-modern .ai-bubble.me small { color: rgba(255,255,255,.75); }
.ai-desk-modern .ai-bubble.me p { white-space: pre-wrap; }
.ai-welcome {
  max-width: 100% !important;
  background: linear-gradient(180deg, #eff6ff, #fff) !important;
  border: 1px solid #bfdbfe !important;
}
.ai-welcome-stats {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
  margin-top: 12px;
}
.ai-welcome-stats span {
  display: grid; gap: 2px; padding: 10px; border-radius: 12px;
  background: rgba(255,255,255,.85); border: 1px solid rgba(191,219,254,.8);
  font-size: 11px; font-weight: 700; color: #64748b;
}
.ai-welcome-stats b { font-size: 15px; color: #0f172a; letter-spacing: -.02em; }
.ai-thinking { opacity: .9; }
.ai-dots { display: inline-flex; gap: 4px; vertical-align: middle; margin-right: 4px; }
.ai-dots i {
  width: 6px; height: 6px; border-radius: 50%; background: #64748b;
  animation: aiDot 1.1s ease infinite;
}
.ai-dots i:nth-child(2) { animation-delay: .15s; }
.ai-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes aiDot {
  0%, 80%, 100% { transform: translateY(0); opacity: .4; }
  40% { transform: translateY(-4px); opacity: 1; }
}
.ai-composer {
  border-top: 1px solid rgba(148,163,184,.22);
  background: linear-gradient(180deg, #fff, #f8fafc);
  padding: 10px 12px 14px;
}
.ai-sugs {
  display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px;
  scrollbar-width: thin; scroll-snap-type: x proximity;
}
.ai-sug {
  flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; gap: 7px;
  border: 1px solid rgba(148,163,184,.35); background: #fff; color: #0f172a;
  border-radius: 999px; padding: 8px 12px; font-size: 12px; font-weight: 700;
  cursor: pointer; transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.ai-sug i { color: #2563eb; font-size: 12px; }
.ai-sug:hover { background: #eff6ff; border-color: #93c5fd; transform: translateY(-1px); }
.ai-ask-modern {
  display: grid; gap: 8px; padding: 10px 12px; border-radius: 18px;
  background: #fff; border: 1px solid rgba(148,163,184,.35);
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
}
.ai-ask-modern textarea {
  border: 0; outline: none; resize: none; min-height: 52px; max-height: 160px; font-size: 14px;
  background: transparent; width: 100%; font-family: inherit; overflow: auto;
}
.ai-ask-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ai-ask-bar .muted { font-size: 11px; }
.ai-send { margin-left: auto; border-radius: 12px; }
.ai-rail {
  display: grid; gap: 12px; min-width: 0; align-content: start;
  max-height: min(78vh, 820px); overflow: auto; padding-right: 2px;
}
.ai-insight {
  border-radius: 20px; padding: 16px; background: #fff;
  border: 1px solid rgba(148,163,184,.25);
  box-shadow: 0 12px 30px rgba(15,23,42,.05);
}
.ai-insight.is-soft { background: linear-gradient(180deg, #f8fafc, #fff); }
.ai-insight-h { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.ai-insight-h h2 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
.ai-insight h3 { margin: 12px 0 8px; font-size: 13px; }
.ai-time { font-size: 11px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.ai-insight-empty { margin: 0 0 12px; font-size: 13px; }
.ai-meters { display: grid; gap: 10px; margin-bottom: 12px; }
.ai-meters > div span { display: block; font-size: 11px; font-weight: 700; color: var(--muted); }
.ai-meters > div b { font-size: 16px; }
.ai-meters .meter { margin-top: 4px; }
.ai-meters .meter.is-pay span { background: #10b981; }
.ai-summary { line-height: 1.55; font-size: 13px; margin: 0 0 8px; }
.ai-advice { margin: 0 0 12px; padding-left: 0; list-style: none; font-size: 13px; line-height: 1.45; }
.ai-advice li { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 6px; }
.ai-advice li span { flex: 1; min-width: 0; }
.ai-cta-row { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-cta-row .btn { font-size: 12px; }
.ai-draft-card {
  display: flex; gap: 8px; align-items: flex-start;
  padding: 12px 0; border-top: 1px solid rgba(148,163,184,.22);
}
.ai-draft-body { flex: 1; min-width: 0; }
.ai-draft-card:first-of-type { border-top: 0; padding-top: 0; }
.ai-draft-card p { margin: 8px 0; font-size: 13px; line-height: 1.45; }
.ai-draft-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.ai-fab {
  box-shadow: 0 14px 32px rgba(37,99,235,.38);
  border: 2px solid rgba(255,255,255,.7);
  background: linear-gradient(135deg, #1e3a8a, #2563eb) !important;
}
.ai-sheet {
  border-radius: 20px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(15,23,42,.22);
}
.ai-sheet-h {
  background: linear-gradient(135deg, #0b1220, #1d4ed8);
  color: #fff;
}
.ai-sheet-brand { color: #fff; }
.ai-sheet-h .icon-btn { color: #fff; }
@media (max-width: 640px) {
  .ai-sheet { right: 10px; left: 10px; width: auto; bottom: 12px; height: min(82vh, 680px); }
}
html[data-theme="dark"] .ai-sheet,
html[data-theme="dark"] .ai-sheet-form,
html[data-theme="dark"] .ai-sheet-chip { background: #0b1220; color: #e2e8f0; }
html[data-theme="dark"] .ai-sheet-log { background: #020617; }
html[data-theme="dark"] .ai-sheet-bubble.bot { background: #111827; color: #e2e8f0; }
html[data-theme="dark"] .ai-sheet-form textarea { background: #0f172a; color: #e2e8f0; border-color: #334155; }
@media (max-width: 980px) {
  .ai-stage { grid-template-columns: 1fr; }
  .ai-desk-modern { height: min(72vh, 640px); }
  .ai-rail { max-height: none; overflow: visible; }
  .ai-pulse-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ai-top { flex-direction: column; align-items: flex-start; }
  .ai-pulse-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-welcome-stats { grid-template-columns: 1fr; }
  .ai-hint-enter { display: none; }
}
html[data-theme="dark"] .ai-desk-modern,
html[data-theme="dark"] .ai-insight,
html[data-theme="dark"] .ai-pulse-item,
html[data-theme="dark"] .ai-sug,
html[data-theme="dark"] .ai-ask-modern { background: #0b1220; }
html[data-theme="dark"] .ai-desk-modern .ai-bubble.bot { background: #111827; }
html[data-theme="dark"] .ai-desk-bar,
html[data-theme="dark"] .ai-composer,
html[data-theme="dark"] .ai-desk-modern .ai-sec-tools { background: #0f172a; }
html[data-theme="dark"] .ai-insight .ai-sec-tools { background: transparent; }
html[data-theme="dark"] .ai-sec-tools .chk { color: #cbd5e1; }
html[data-theme="dark"] .ai-desk-modern .ai-thread { background: #020617; }

/* ===== Soft live motion (v2.6.53) ===== */
:root {
  --ease-soft: cubic-bezier(.22,1,.36,1);
  --ease-snap: cubic-bezier(.2,.8,.2,1);
  --dur-fast: .18s;
  --dur: .45s;
  --dur-slow: .85s;
}
html { scroll-behavior: auto; }
body {
  background:
    radial-gradient(1200px 500px at 12% -10%, rgba(37,99,235,.08), transparent 55%),
    radial-gradient(900px 420px at 100% 0%, rgba(16,185,129,.06), transparent 50%),
    var(--bg);
}
html[data-theme="dark"] body {
  background:
    radial-gradient(1000px 480px at 10% -8%, rgba(37,99,235,.18), transparent 55%),
    radial-gradient(800px 400px at 100% 0%, rgba(16,185,129,.1), transparent 50%),
    var(--bg);
}
.main { animation: srePageIn var(--dur-slow) var(--ease-soft) both; }
body:has(.lc-chat.is-open) .main { animation: none; transform: none; }
@keyframes srePageIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
.sre-live-bar {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 12px; padding: 6px 12px; border-radius: 999px;
  background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.25);
  color: #047857; font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
.sre-live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #10b981;
  box-shadow: 0 0 0 0 rgba(16,185,129,.55);
  animation: srePulse 1.8s var(--ease-soft) infinite;
}
@keyframes srePulse {
  0% { box-shadow: 0 0 0 0 rgba(16,185,129,.5); }
  70% { box-shadow: 0 0 0 10px rgba(16,185,129,0); }
  100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); }
}
html[data-theme="dark"] .sre-live-bar {
  background: rgba(16,185,129,.12); color: #6ee7b7; border-color: rgba(16,185,129,.3);
}
.sre-reveal {
  opacity: 0; transform: translateY(14px);
  transition: opacity var(--dur-slow) var(--ease-soft), transform var(--dur-slow) var(--ease-soft);
}
.sre-reveal.is-in { opacity: 1; transform: none; }
.stat, .dash-today a, .card, .tp-stat, .snap, .prop-card, .dash-alert {
  transition: transform var(--dur-fast) var(--ease-snap), box-shadow var(--dur) var(--ease-soft), border-color var(--dur-fast) ease;
}
.stat:hover, .dash-today a:hover, .card:hover, .snap:hover, .prop-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(15,23,42,.1);
}
.sidebar nav a {
  transition: background var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-snap);
}
.sidebar nav a:hover { transform: translateX(2px); }
.btn, .icon-btn, .chip, .search-go {
  transition: transform var(--dur-fast) var(--ease-snap), background var(--dur-fast) ease, box-shadow var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.btn:active, .icon-btn:active, .chip:active { transform: scale(.97); }
.dash-ring { transition: filter var(--dur) ease; }
.dash-ring.is-spinning { filter: saturate(1.08); }
.dash-today a { animation: sreTileIn .7s var(--ease-soft) both; }
.dash-today a:nth-child(1) { animation-delay: .02s; }
.dash-today a:nth-child(2) { animation-delay: .05s; }
.dash-today a:nth-child(3) { animation-delay: .08s; }
.dash-today a:nth-child(4) { animation-delay: .11s; }
.dash-today a:nth-child(5) { animation-delay: .14s; }
.dash-today a:nth-child(6) { animation-delay: .17s; }
.dash-today a:nth-child(7) { animation-delay: .2s; }
.dash-today a:nth-child(8) { animation-delay: .23s; }
.dash-today a:nth-child(9) { animation-delay: .26s; }
.dash-today a:nth-child(10) { animation-delay: .29s; }
@keyframes sreTileIn {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.meter span, .rate-box .meter span { transition: width 1s var(--ease-soft); }
.topbar .clock-box time::after {
  content: ''; display: inline-block; width: 6px; height: 6px; margin-left: 8px;
  border-radius: 50%; background: #10b981; vertical-align: middle;
  animation: srePulse 2s infinite;
}
.topbar .clock-box.is-net-off time::after { background: #dc2626; animation: none; }
.alert { animation: sreAlertIn .5s var(--ease-soft) both; }
@keyframes sreAlertIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}
.ai-fab {
  animation: sreFabIn .8s var(--ease-soft) both;
  transition: transform .2s var(--ease-snap), box-shadow .2s ease;
}
.ai-fab:hover { transform: translateY(-3px) scale(1.04); }
@keyframes sreFabIn {
  from { opacity: 0; transform: translateY(16px) scale(.9); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 960px) {
  .sre-live-bar { font-size: 11px; }
  .stat:hover, .card:hover, .snap:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .main, .dash-today a, .sre-reveal, .alert, .ai-fab, .sre-live-dot,
  .topbar .clock-box time::after {
    animation: none !important; transition: none !important;
  }
  .sre-reveal { opacity: 1; transform: none; }
  .stat:hover, .dash-today a:hover, .card:hover, .snap:hover, .prop-card:hover { transform: none; }
}

/* Online / offline copy */
.env-pill { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .06em; vertical-align: middle; }
.env-pill.is-online { background: #d1fae5; color: #047857; }
.env-pill.is-offline { background: #fee2e2; color: #b91c1c; }
.dash-alert-go { display:flex; align-items:center; gap:14px; flex:1; min-width:0; text-decoration:none; color:inherit; }
.dash-alert-acts { display:flex; gap:8px; flex-wrap:wrap; margin-left:auto; }
.dash-sms-why { color:#b91c1c; font-size:12px; font-weight:700; margin-top:4px; }
tr.is-critical td { background:#fef2f2; }
html[data-theme="dark"] tr.is-critical td { background:#3f1d1d; }

/* Quick print */
@page { size: A4; margin: 10mm; }
.qprint-frame { position: fixed; left: -10000px; top: 0; width: 900px; height: 1200px; border: 0; opacity: 0; pointer-events: none; }
.qprint-toast {
  position: fixed; left: 50%; bottom: 22px; z-index: 9999;
  transform: translate(-50%, 16px); opacity: 0; pointer-events: none;
  background: #0f172a; color: #fff; padding: 10px 18px; border-radius: 999px;
  font-weight: 600; font-size: 14px; box-shadow: 0 10px 30px rgba(15, 23, 42, .25);
  transition: opacity .25s ease, transform .25s ease;
}
.qprint-toast.on { opacity: 1; transform: translate(-50%, 0); }
.qprint-toast.is-bad { background: #991b1b; }
.sms-mark { display: inline-flex; align-items: center; vertical-align: middle; font-size: 14px; line-height: 1; }
.sms-mark.is-go { color: #64748b; }
.sms-mark.is-in { color: #2563eb; }
.sms-mark.is-in i + i { margin-left: -8px; }
.sms-mark.is-fail { color: #dc2626; }
.sms-mark.is-wait { color: #d97706; }
.sms-mark.is-wait i { animation: smsSpin .8s linear infinite; }
@keyframes smsSpin { to { transform: rotate(360deg); } }
.take-actions {
  margin: 0 0 14px;
  border: 1px solid #fcd34d;
  background: #fffbeb;
  border-radius: 16px;
  padding: 14px 16px 16px;
  scroll-margin-top: 84px;
}
.take-actions.is-debt { border-color: #fca5a5; background: #fef2f2; }
.take-actions-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.take-actions h2 { margin: 0; font-size: 16px; }
.take-actions .hint { margin: 8px 0 0; }
.take-result { margin: 10px 0 0; font-weight: 700; }
.take-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.take-grid .btn.on { outline: 2px solid #2563eb; outline-offset: 1px; }
.take-pane { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(15, 23, 42, .16); }
.take-pane[hidden] { display: none !important; }
#prof-sms { scroll-margin-top: 84px; }
html[data-theme="dark"] .take-actions,
html[data-theme="dark"] .take-actions.is-expired { background: #1c1917; border-color: rgba(251, 191, 36, .35); }
html[data-theme="dark"] .take-actions.is-debt { background: #1c1010; border-color: rgba(248, 113, 113, .35); }
html[data-theme="dark"] .take-pane { border-top-color: rgba(148, 163, 184, .3); }
.print-nav .btn.primary .fa-print { margin-right: 2px; }
@media print {
  .qprint-toast, .qprint-frame { display: none !important; }
}
.calc-wrap { position: relative; }
.calc-pop {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 80;
  width: 300px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .18);
}
.calc-pop[hidden] { display: none !important; }
.calc-wrap .icon-btn.is-on { background: #dbeafe; color: #1d4ed8; }
.calc-h { display: flex; align-items: center; gap: 6px; padding: 8px 8px 8px 14px; border-bottom: 1px solid #e2e8f0; }
.calc-h strong { margin-right: auto; }
.calc-body { padding: 10px; }
.calc-pop.is-min .calc-body { display: none; }
.calc-screen {
  width: 100%;
  text-align: right;
  font-size: 22px;
  font-weight: 700;
  border: 0;
  background: #f8fafc;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.calc-keys { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.calc-keys .calc-bk { font-size: 15px; }
.calc-keys button {
  border: 0;
  background: #f1f5f9;
  border-radius: 10px;
  min-height: 42px;
  font-weight: 700;
  cursor: pointer;
}
.calc-keys .calc-eq { grid-column: 1 / -1; background: #2563eb; color: #fff; }
.calc-hist-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; font-size: 11px; color: var(--muted, #64748b); }
.calc-hist-clear { border: 0; background: transparent; color: #2563eb; font-size: 11px; font-weight: 600; cursor: pointer; padding: 2px 4px; }
.calc-hist { list-style: none; margin: 4px 0 0; padding: 0; max-height: 92px; overflow: auto; }
.calc-hist li { font-size: 12px; padding: 4px 2px; border-top: 1px solid #e2e8f0; cursor: pointer; text-align: right; }
.vac-unit { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin: 0 0 10px; }
.vac-unit label { margin: 0; }
html[data-theme="dark"] .calc-pop { background: #0f172a; border-color: #334155; color: #e5e7eb; }
html[data-theme="dark"] .calc-h { border-color: #334155; }
html[data-theme="dark"] .calc-screen { background: #1e293b; color: #e5e7eb; }
html[data-theme="dark"] .calc-keys button { background: #1e293b; color: #e5e7eb; }
@media (max-width: 960px) {
  .calc-pop {
    position: fixed;
    left: 8px;
    right: 8px;
    width: auto;
    max-height: min(78vh, 560px);
    overflow: auto;
    z-index: 90;
  }
  .calc-screen { font-size: 28px; overflow-x: auto; }
  .calc-keys { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .calc-keys button { min-height: 48px; font-size: 17px; }
}
@media print { .calc-pop { display: none !important; } }

/* Floating SHAYS AI sheet — keep one compact row, pills, and hide the round button while open */
#aiSheet.ai-sheet {
  z-index: 80;
  width: min(380px, calc(100vw - 28px));
  height: min(68vh, 560px);
  right: 16px;
  bottom: 16px;
}
body:has(#aiSheet:not([hidden])) #aiFab { display: none !important; }
#aiSheet .ai-sheet-h {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 58px;
  padding: 8px 8px 8px 12px;
  flex-direction: row;
}
#aiSheet .ai-sheet-brand { min-width: 0; color: #fff; }
#aiSheet .ai-sheet-brand span { white-space: nowrap; }
#aiSheet .ai-sheet-h-acts {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
}
#aiSheet .ai-sheet-h-acts .icon-btn {
  width: 34px;
  height: 34px;
  color: #fff;
  background: transparent;
  border: 0;
}
#aiSheet .ai-sheet-bubble.bot {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #0f172a;
}
#aiSheet .ai-sheet-chips {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding: 8px 12px 4px;
}
#aiSheet .ai-sheet-chip {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  appearance: none;
}
#aiSheet .ai-sheet-form textarea {
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  resize: none;
  outline: none;
  box-shadow: none;
  background: #f8fafc;
}
#aiSheet .ai-sheet-form textarea:focus {
  border-color: #93c5fd;
  box-shadow: 0 0 0 3px rgba(37,99,235,.15);
  background: #fff;
}
@media (max-width: 640px) {
  #aiSheet.ai-sheet { left: 10px; right: 10px; width: auto; bottom: 10px; height: min(78vh, 620px); }
}
.person-nick, .tp-nick { display: block; margin-top: 2px; color: #0f766e; font-size: 13px; font-weight: 700; }
.prof-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0; }
.prof-docs .mini-list li { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.wm-hero { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.wm-hero h1 { margin: 0; font-size: 26px; letter-spacing: -.03em; }
.wm-lead { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.wm-acct { display: inline-flex; align-items: center; gap: 8px; margin: 8px 0 0; padding: 4px 12px 4px 4px; background: #fff; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; font-weight: 700; }
.wm-acct i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: #dbeafe; color: #1d4ed8; font-size: 12px; }
.wm-hero-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.wm-login { max-width: 440px; }
.wm-dock { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 12px; margin-bottom: 8px; }
.wm-dock-main { min-width: 0; }
.wm-switch-row { display: grid; grid-template-columns: minmax(220px, 440px) auto; gap: 8px 10px; align-items: center; justify-content: start; }
.wm-switch-row label { grid-column: 1 / -1; margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.wm-switch-row select { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px; font: inherit; background: #f8fafc; color: var(--text); }
.wm-switch-row select:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.wm-switch-row .btn { height: 44px; white-space: nowrap; }
.wm-dock-acts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-start; align-items: center; padding-top: 0; border-top: 0; }
.wm-dock-acts form { display: flex; margin: 0; }
.wm-dock-acts .btn { white-space: nowrap; }
.wm-dock-acts .btn.danger { background: #fff; color: #b91c1c; border: 1px solid #fecaca; box-shadow: none; }
.wm-dock-acts .btn.danger:hover { background: #fef2f2; }
.wm-add { margin-top: 0; }
.wm-add summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; list-style: none; font-size: 13px; font-weight: 700; color: var(--blue); }
.wm-add summary::-webkit-details-marker { display: none; }
.wm-add[open] { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.wm-add .form { max-width: 420px; }
.wm-why { margin: 0 2px 12px; font-size: 12px; line-height: 1.45; max-width: 78ch; }
.wm-note { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.wm-folders { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 14px; padding: 4px; background: #fff; border: 1px solid rgba(226,232,240,.9); border-radius: 14px; box-shadow: var(--shadow); width: 100%; max-width: 100%; }
.wm-folders .chip { border: 0; background: transparent; white-space: nowrap; }
.wm-folders .chip.on { background: var(--blue); color: #fff; }
.wm-folders .chip.on .wm-count { background: #fff; color: var(--blue); }
.wm-grid { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 14px; align-items: stretch; }
.wm-list, .wm-read { padding: 0; overflow: hidden; min-height: 520px; display: flex; flex-direction: column; }
.wm-list > form { display: flex; flex-direction: column; flex: 1; min-height: 520px; }
.wm-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px 14px; background: #f8fafc; border-bottom: 1px solid var(--line); }
.wm-tool-gap { flex: 1; min-width: 8px; }
.wm-all { font-size: 13px; font-weight: 700; color: #334155; white-space: nowrap; }
.wm-list ul { list-style: none; margin: 8px 0 0; padding: 0; max-height: 62vh; overflow: auto; }
.wm-list li { display: flex; align-items: stretch; gap: 0; border-bottom: 1px solid #eef2f7; }
.wm-list li .chk { padding-left: 12px; align-self: center; }
.wm-list li a { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; flex: 1; min-width: 0; padding: 10px 12px; color: inherit; text-decoration: none; }
.wm-av { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: #dbeafe; color: #1d4ed8; font-weight: 800; }
.wm-list li.is-unread .wm-av { background: #1d4ed8; color: #fff; }
.wm-item-body { min-width: 0; }
.wm-item-top { display: flex; justify-content: space-between; gap: 8px; min-width: 0; }
.wm-item-top b, .wm-item-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wm-item-sub { display: block; color: #64748b; font-size: 13px; }
.wm-item-top time { color: #94a3b8; font-size: 12px; flex: none; }
.wm-list li.is-on { background: #eff6ff; }
.wm-list small, .wm-meta { color: #64748b; font-size: 12px; }
.wm-list .muted { padding: 28px 16px; margin: auto; text-align: center; }
.wm-body { white-space: pre-wrap; padding: 0 16px 18px; margin: 0; font-family: inherit; }
.wm-pass input { padding-left: 12px; }
.wm-count, .nav-mail-n { background: #ef4444; color: #fff; border-radius: 99px; min-width: 18px; height: 18px; padding: 0 5px; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }
.wm-count { margin-left: 6px; }
.nav-mail-n { margin-left: auto; }
#wmFind { margin: 12px 14px 4px; width: calc(100% - 28px); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; background: #fff; }
#wmFind:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.wm-read .card-h { padding: 16px 16px 0; margin: 0; }
.wm-read .form { padding: 0 16px 18px; }
.wm-read > .wm-tools { margin: 0; }
.wm-read .empty-state { margin: auto; padding: 48px 24px; }
.wm-meta { padding: 12px 16px 8px; display: flex; flex-direction: column; gap: 2px; }
.sms-copy-btn { margin-top: 8px; }
.wm-unsent { margin-bottom: 14px; padding: 14px 16px; }
.wm-unsent ul { list-style: none; margin: 0; padding: 0; }
.wm-unsent li { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--line); }
.wm-unsent li b, .wm-unsent li span, .wm-unsent li em { display: block; }
.wm-unsent li span { color: var(--muted); font-size: 13px; }
.wm-unsent li em { color: #b91c1c; font-style: normal; font-size: 13px; margin-top: 4px; }
.wm-unsent-acts { display: flex; gap: 8px; flex: none; }
.wm-unsent-acts form { margin: 0; }
.wm-picks { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.wm-picks > span { font-size: 12px; color: var(--muted); font-weight: 700; }
.wm-picks .chip { cursor: pointer; font-weight: 600; }
@media (max-width: 720px) {
  .prof-docs, .wm-grid { grid-template-columns: 1fr; }
  .wm-list, .wm-read, .wm-list > form { min-height: 0; }
  .wm-list ul { max-height: 42vh; }
  .wm-hero h1 { font-size: 22px; }
  .wm-switch-row { grid-template-columns: 1fr; }
  .wm-switch-row .btn { width: 100%; justify-content: center; }
}
.prof-sms-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }
.prof-sms-hist { max-height: 280px; overflow: auto; }
.sms-pick { display: inline-flex; margin-right: 8px; }
.staff-to-tenant { margin: 0 0 16px; }
.staff-to-tenant > summary { list-style: none; cursor: pointer; width: fit-content; }
.staff-to-tenant > summary::-webkit-details-marker { display: none; }
.dash-pay-board { margin: 16px 0; }
.dash-pay-list { display: grid; gap: 8px; }
.dash-pay-tools { display: flex; align-items: center; gap: 8px; }
.dash-pay-board.is-short .dash-pay.is-extra { display: none; }
.dash-pay {
  display: grid; grid-template-columns: minmax(150px, 1.2fr) minmax(190px, .9fr) minmax(180px, 1.1fr) minmax(180px, 1fr);
  gap: 8px 16px; align-items: center; padding: 12px 14px; border-radius: 14px;
  border: 1px solid #e2e8f0; background: #f8fafc; color: inherit; text-decoration: none;
}
.dash-pay:hover { border-color: #93c5fd; background: #fff; }
.dash-pay-who strong { display: block; font-size: 15px; }
.dash-pay-who span, .dash-pay-when span, .dash-pay-by span { display: block; color: #64748b; font-size: 12px; }
.dash-pay-amt { display: flex; gap: 16px; }
.dash-pay-amt b { display: block; font-size: 15px; letter-spacing: -.02em; }
.dash-pay-amt small, .dash-pay-by small { display: block; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.dash-pay-by b { display: block; font-size: 12px; line-height: 1.35; }
html[data-theme="dark"] .dash-pay { background: #0f172a; border-color: #334155; }
html[data-theme="dark"] .dash-pay:hover { background: #111827; }
@media (max-width: 980px) {
  .dash-pay { grid-template-columns: 1fr 1fr; }
}


/* Tenant portal: app-style navigation (7 top, 6 bottom) */
.mine-bar { padding: 10px 14px; }
.mine-bar strong { font-size: 1.05rem; letter-spacing: -.02em; color: #0f766e; }
.mine-bar span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mine-me-chip .comm-ava img { width: 36px; height: 36px; }
.mine-top { position: sticky; top: 55px; z-index: 4; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); max-width: 880px; margin: 0 auto; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid #e2e8f0; }
.mine-top a { position: relative; display: grid; justify-items: center; gap: 3px; padding: 10px 2px 8px; color: #64748b; text-decoration: none; font-size: 11px; font-weight: 700; border-bottom: 3px solid transparent; min-width: 0; }
.mine-top a i { font-size: 19px; }
.mine-top a span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mine-top a.on { color: #0f766e; border-bottom-color: #0f766e; }
.mine-top a b { position: absolute; top: 4px; left: 50%; margin-left: 4px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 10px; line-height: 17px; text-align: center; border: 2px solid #fff; }
.mine { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.mine-tab { position: fixed; z-index: 6; left: 50%; transform: translateX(-50%); width: min(880px, 100%); bottom: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); background: rgba(255,255,255,.97); backdrop-filter: blur(12px); border-top: 1px solid #e2e8f0; padding: 6px 2px calc(6px + env(safe-area-inset-bottom)); border-radius: 0; box-shadow: 0 -6px 20px rgba(15,23,42,.06); }
.mine-tab a { text-decoration: none; color: #64748b; display: grid; justify-items: center; gap: 3px; font-size: 10.5px; font-weight: 700; min-width: 0; padding: 4px 0; }
.mine-tab a span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mine-tab a i { font-size: 20px; color: inherit; }
.mine-tab a.on { color: #0f766e; }
.mine-tab a.on i { transform: scale(1.08); }

/* Live (online) indicators */
.comm-ava { position: relative; display: inline-block; flex: none; line-height: 0; }
.comm-ava.is-live::after, .mine-face-wrap.is-live::after { content: ""; position: absolute; right: 0; bottom: 0; width: 12px; height: 12px; border-radius: 50%; background: #22c55e; border: 2px solid #fff; }
.mine-face-wrap { position: relative; display: inline-block; line-height: 0; flex: none; }
.mine-face-wrap.is-live::after { width: 18px; height: 18px; right: 2px; bottom: 2px; border-width: 3px; }
.mine-face-wrap.small .mine-face { width: 52px; height: 52px; border-radius: 50%; }
.mine-face-wrap.small::after { width: 13px; height: 13px; }
.comm-online { color: #16a34a; font-weight: 800; }
.comm-live { display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: none; }
.comm-live::-webkit-scrollbar { display: none; }
.comm-live-item { display: grid; justify-items: center; gap: 4px; flex: none; width: 62px; }
.comm-live-item img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; padding: 2px; background: #fff; border: 2px solid transparent; background-image: linear-gradient(#fff,#fff), linear-gradient(45deg, #f59e0b, #ec4899, #0f766e); background-origin: border-box; background-clip: content-box, border-box; }
.comm-live-item small { font-size: 11px; font-weight: 700; color: #334155; max-width: 62px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Profile with apartment cover (set by staff) */
.mine-profile { background: #fff; border-radius: 22px; overflow: hidden; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.mine-profile-cover { position: relative; height: 170px; background: linear-gradient(155deg, #042f2e, #0f766e 58%, #115e59); }
.mine-profile-cover.has-cover { background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.45)), var(--cover) center / cover no-repeat; }
.mine-cover-tag { position: absolute; left: 12px; bottom: 10px; color: #fff; font-weight: 800; font-size: 13px; background: rgba(0,0,0,.35); padding: 4px 10px; border-radius: 999px; }
.mine-profile-id { display: grid; justify-items: center; text-align: center; padding: 0 16px 16px; margin-top: -52px; }
.mine-profile-id .mine-face { width: 104px; height: 104px; border-radius: 50%; border: 4px solid #fff; }
.mine-profile-id h1 { margin: 8px 0 2px; font-size: 1.35rem; }
.mine-profile-id p { margin: 0; color: #475569; font-weight: 600; font-size: 13px; }
.mine-hero .mine-face-wrap .mine-face { border-radius: 50%; }

/* Calendar */
.mine-count-list { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.mine-count { border-radius: 18px; padding: 16px; background: var(--tone-bg, #ecfdf5); border: 1px solid var(--tone, #16a34a); display: grid; gap: 4px; }
.mine-count strong { font-size: 2.6rem; line-height: 1; color: var(--tone, #16a34a); }
.mine-count span { font-weight: 800; }
.mine-count small { color: #475569; }
.mine-cal h3 { margin: 0 0 8px; }
.mine-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.mine-cal-grid b { font-size: 11px; color: #64748b; }
.mine-cal-grid span { padding: 8px 0; border-radius: 10px; font-weight: 700; font-size: 13px; }
.mine-cal-grid .is-today { background: #0f766e; color: #fff; }
.mine-cal-grid .is-end { background: #fee2e2; color: #b91c1c; outline: 2px solid #ef4444; }
.mine-cal-key { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #475569; }
.mine-cal-key span { display: inline-block; width: 12px; height: 12px; border-radius: 4px; }
.mine-cal-key .is-today { background: #0f766e; }
.mine-cal-key .is-end { background: #fee2e2; outline: 2px solid #ef4444; margin-left: 10px; }

/* Menu */
.mine-menu-me { display: flex; gap: 12px; align-items: center; text-decoration: none; color: inherit; }
.mine-menu-me b, .mine-menu-me small { display: block; }
.mine-menu-me small { color: #64748b; }
.mine-logout { display: block; text-align: center; padding: 12px; border-radius: 14px; background: #fee2e2; color: #b91c1c; font-weight: 800; text-decoration: none; }

@media (max-width: 420px) {
  .mine-top a span { display: none; }
  .mine-top a { padding: 12px 0 10px; }
  .mine-top a i { font-size: 20px; }
  .mine-tab a { font-size: 9.5px; }
  .mine-tab a i { font-size: 19px; }
  .mine { padding-left: 10px; padding-right: 10px; }
}

/* Tenant portal shell: sidebar (desktop) / drawer (phone), header, search */
.mine-shell { min-height: 100vh; }
.mine-main { min-width: 0; }
.mine-bar { gap: 8px; }
.mine-ico { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; display: grid; place-items: center; background: #f1f5f9; color: #0f172a; font-size: 17px; cursor: pointer; text-decoration: none; }
.mine-ico:hover { background: #e2e8f0; }
.mine-brand { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; color: inherit; }
.mine-brand > span { display: grid; min-width: 0; }
.mine-brand strong { font-size: 1.05rem; color: #0f766e; letter-spacing: -.02em; }
.mine-brand small { color: #64748b; font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mine-search { position: relative; max-width: 880px; margin: 0 auto; padding: 8px 14px; background: #fff; }
.mine-search i { position: absolute; left: 28px; top: 50%; transform: translateY(-50%); color: #64748b; }
.mine-search input { width: 100%; box-sizing: border-box; padding: 10px 14px 10px 40px; border-radius: 999px; border: 1px solid #e2e8f0; background: #f1f5f9; font: inherit; font-size: 14px; }
.mine-search input:focus { outline: none; border-color: #0f766e; background: #fff; box-shadow: 0 0 0 3px rgba(15,118,110,.12); }
.mine-top { top: 60px; }
.mine-found { display: grid; gap: 8px; }
.mine-found a { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; border: 1px solid #e2e8f0; text-decoration: none; color: inherit; background: #fff; }
.mine-found a:hover { border-color: #0f766e; }
.mine-found i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; }
.mine-found span { display: grid; min-width: 0; }
.mine-found em { font-style: normal; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #0f766e; }
.mine-found b, .mine-found small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mine-found small { color: #64748b; }
.mine-found time { font-size: 12px; color: #64748b; white-space: nowrap; }

.mine-side { position: fixed; z-index: 20; top: 0; bottom: 0; left: 0; width: min(300px, 84vw); overflow-y: auto; background: #0f172a; color: #e2e8f0; padding: 18px 14px calc(18px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 6px; transform: translateX(-100%); transition: transform .22s ease; box-sizing: border-box; }
body.side-open .mine-side { transform: none; box-shadow: 12px 0 40px rgba(0,0,0,.3); }
.mine-scrim { position: fixed; inset: 0; z-index: 19; background: rgba(15,23,42,.45); opacity: 0; pointer-events: none; transition: opacity .2s; }
body.side-open .mine-scrim { opacity: 1; pointer-events: auto; }
body.side-open { overflow: hidden; }
.mine-side-me { display: flex; gap: 12px; align-items: center; color: #fff; text-decoration: none; padding: 6px 4px 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.mine-side-me .mine-face-wrap.is-live::after { border-color: #0f172a; }
.mine-side-me b, .mine-side-me small { display: block; }
.mine-side-me small { color: #94a3b8; font-size: 12px; }
.mine-side-home { margin: 6px 4px; font-size: 12px; color: #99f6e4; font-weight: 700; }
.mine-side-label { margin: 10px 6px 2px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #64748b; }
.mine-side-nav { display: grid; gap: 2px; }
.mine-side-nav a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 12px; color: #cbd5e1; text-decoration: none; font-weight: 700; font-size: 14px; }
.mine-side-nav a i { width: 20px; text-align: center; color: #5eead4; }
.mine-side-nav a span { flex: 1; }
.mine-side-nav a b { background: #ef4444; color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 7px; }
.mine-side-nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.mine-side-nav a.on { background: rgba(94,234,212,.12); color: #fff; box-shadow: inset 3px 0 0 #5eead4; }
.mine-side-call { margin-top: auto; padding: 10px 12px; border-radius: 12px; color: #99f6e4; text-decoration: none; font-weight: 700; }
.mine-side-out { display: flex; gap: 10px; align-items: center; padding: 12px; border-radius: 12px; background: rgba(239,68,68,.12); color: #fca5a5; text-decoration: none; font-weight: 800; }
.mine-side-out:hover { background: rgba(239,68,68,.22); color: #fff; }

@media (min-width: 1024px) {
  .mine-shell { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
  .mine-side { position: sticky; top: 0; height: 100vh; width: auto; transform: none; transition: none; }
  .mine-scrim, .mine-burger, .mine-tab { display: none !important; }
  .mine-bar { padding: 10px 24px; }
  .mine-search { max-width: none; padding: 10px 24px; }
  .mine-search i { left: 38px; }
  .mine-search input { max-width: 640px; }
  .mine-top { max-width: none; padding: 0 24px; }
  .mine-top a { flex-direction: row; }
  .mine { max-width: 1040px; padding: 20px 24px 40px; }
}

/* Messenger-style chat (tenant portal + staff desk) */
.mchat { position: relative; display: flex; flex-direction: column; height: calc(100dvh - 250px); min-height: 420px; background: #fff; border-radius: 22px; overflow: hidden; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.mchat.is-desk { height: 100%; min-height: 0; border-radius: 0; box-shadow: none; background: transparent; }
.mchat.is-desk .mchat-h { background: var(--card); }
.mchat-h { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid #e2e8f0; background: inherit; }
.mchat-h > div { flex: 1; min-width: 0; display: grid; }
.mchat-h a { color: inherit; text-decoration: none; }
.mchat-h small { color: #64748b; font-size: 12px; }
.mchat-h small.on { color: #16a34a; font-weight: 700; }
.mchat-ava { position: relative; flex: none; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #ccfbf1; overflow: hidden; }
.mchat-ava img { width: 42px; height: 42px; object-fit: contain; }
.mchat-ava i { position: absolute; right: 0; bottom: 0; width: 12px; height: 12px; border-radius: 50%; background: #94a3b8; border: 2px solid #fff; }
.mchat-ava i.on { background: #22c55e; }
.mchat-letter { font-weight: 800; color: #0f766e; font-size: 18px; }
.mchat-call { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: #0f766e !important; background: #f0fdfa; }
.mchat-log { flex: 1; overflow-y: auto; padding: 14px 12px 6px; display: flex; flex-direction: column; gap: 6px; overscroll-behavior: contain; background: linear-gradient(180deg, #f8fafc, #fff); }
.mchat.is-desk .mchat-log { background: transparent; }
.mchat-empty { margin: auto; text-align: center; color: #64748b; display: grid; justify-items: center; gap: 6px; }
.mchat-empty img { width: 56px; height: 56px; object-fit: contain; }
.mchat-row { position: relative; display: grid; max-width: min(78%, 560px); gap: 2px; padding-bottom: 4px; }
.mchat-row.me { align-self: flex-end; justify-items: end; }
.mchat-row.them { align-self: flex-start; justify-items: start; }
.mchat-row time { font-size: 10.5px; color: #94a3b8; padding: 0 6px; }
.mchat-bub { position: relative; padding: 8px 12px; border-radius: 18px; background: #f1f5f9; color: #0f172a; word-break: break-word; }
.mchat-row.me .mchat-bub { background: linear-gradient(135deg, #0f766e, #0d9488); color: #fff; border-bottom-right-radius: 6px; }
.mchat-row.them .mchat-bub { border-bottom-left-radius: 6px; }
.mchat-bub p { margin: 0; white-space: pre-wrap; line-height: 1.4; }
.mchat-bub p a { color: inherit; text-decoration: underline; }
.mchat-bub.is-big { background: transparent !important; padding: 0 4px; }
.mchat-bub.is-big p { font-size: 2.4rem; line-height: 1.1; }
.mchat-bub.is-pic { padding: 3px; background: transparent !important; }
.mchat-name { display: block; font-size: 11px; font-weight: 800; color: #0f766e; margin-bottom: 2px; }
.mchat-name i { color: #1d9bf0; }
.mchat-quote { display: grid; text-align: left; width: 100%; margin: 0 0 6px; padding: 6px 10px; border: 0; border-left: 3px solid currentColor; border-radius: 10px; background: rgba(15,23,42,.06); color: inherit; font: inherit; cursor: pointer; opacity: .9; }
.mchat-row.me .mchat-quote { background: rgba(255,255,255,.18); }
.mchat-quote b { font-size: 11px; }
.mchat-quote span { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.mchat-img { display: block; margin: 2px 0 4px; }
.mchat-img img { display: block; max-width: min(260px, 62vw); max-height: 320px; border-radius: 14px; object-fit: cover; background: #e2e8f0; }
.mchat-file { display: flex; align-items: center; gap: 10px; margin: 2px 0 4px; padding: 8px 10px; border-radius: 12px; background: rgba(15,23,42,.06); color: inherit !important; text-decoration: none; min-width: 200px; }
.mchat-row.me .mchat-file { background: rgba(255,255,255,.16); }
.mchat-file span { flex: 1; display: grid; min-width: 0; }
.mchat-file b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mchat-file small { font-size: 11px; opacity: .8; }
.mchat-file > i:first-child { font-size: 22px; }
.mchat-reacts { position: absolute; bottom: -12px; right: 8px; padding: 1px 6px; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(15,23,42,.18); font-size: 13px; line-height: 1.4; color: #0f172a; }
.mchat-row.them .mchat-reacts { right: auto; left: 8px; }
.mchat-row:has(.mchat-reacts) { padding-bottom: 14px; }
.mchat-tools { position: absolute; top: 4px; display: none; gap: 2px; }
.mchat-row.me .mchat-tools { right: calc(100% + 4px); }
.mchat-row.them .mchat-tools { left: calc(100% + 4px); }
.mchat-row:hover .mchat-tools, .mchat-row.show-tools .mchat-tools { display: flex; }
.mchat-tools button { width: 30px; height: 30px; border-radius: 50%; border: 0; background: #f1f5f9; color: #475569; cursor: pointer; }
.mchat-tools button:hover { background: #e2e8f0; color: #0f766e; }
.mchat-row.is-flash .mchat-bub { animation: mchatFlash 1.2s ease; }
@keyframes mchatFlash { 0%, 100% { box-shadow: none; } 30% { box-shadow: 0 0 0 4px rgba(245,158,11,.55); } }
.mchat-reactpick { position: absolute; z-index: 5; display: flex; gap: 2px; padding: 5px 8px; border-radius: 999px; background: #fff; box-shadow: 0 10px 30px rgba(15,23,42,.22); }
.mchat-reactpick button { border: 0; background: transparent; font-size: 24px; width: 38px; height: 38px; border-radius: 50%; cursor: pointer; transition: transform .12s; }
.mchat-reactpick button:hover { transform: scale(1.25); }
.mchat-reactpick button.on { background: #ccfbf1; }
.mchat-replybar, .mchat-filebar { display: flex; align-items: center; gap: 10px; padding: 8px 14px; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.mchat-replybar[hidden], .mchat-filebar[hidden], .mchat-emoji[hidden] { display: none; }
.mchat-replybar > i { color: #0f766e; }
.mchat-replybar div, .mchat-filebar div { flex: 1; min-width: 0; display: grid; }
.mchat-replybar b, .mchat-filebar b { font-size: 12px; }
.mchat-replybar span, .mchat-filebar small { font-size: 12px; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mchat-replybar button, .mchat-filebar button { border: 0; background: #e2e8f0; width: 28px; height: 28px; border-radius: 50%; cursor: pointer; }
.mchat-thumb { width: 44px; height: 44px; border-radius: 10px; overflow: hidden; display: grid; place-items: center; background: #ccfbf1; color: #0f766e; font-size: 20px; flex: none; }
.mchat-thumb img { width: 100%; height: 100%; object-fit: cover; }
.mchat-filebar progress { width: 100%; height: 6px; }
.mchat-emoji { display: grid; grid-template-columns: repeat(auto-fill, minmax(40px, 1fr)); gap: 2px; max-height: 190px; overflow-y: auto; padding: 8px 10px; border-top: 1px solid #e2e8f0; background: #fff; }
.mchat-emoji button { border: 0; background: transparent; font-size: 24px; height: 42px; border-radius: 10px; cursor: pointer; }
.mchat-emoji button:hover { background: #f1f5f9; }
.mchat-form { display: flex; align-items: flex-end; gap: 4px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #e2e8f0; background: #fff; }
.mchat.is-desk .mchat-form { background: transparent; }
.mchat-btn { flex: none; width: 38px; height: 38px; border: 0; border-radius: 50%; display: grid; place-items: center; background: transparent; color: #0f766e; font-size: 18px; cursor: pointer; }
.mchat-btn:hover { background: #f0fdfa; }
.mchat-input { flex: 1; min-width: 0; display: flex; align-items: flex-end; background: #f1f5f9; border-radius: 22px; padding: 0 2px 0 14px; }
.mchat-input textarea { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; resize: none; padding: 10px 0; font: inherit; font-size: 16px; line-height: 1.35; max-height: 140px; outline: none; box-shadow: none !important; color: inherit; }
.mchat-send { flex: none; width: 42px; height: 42px; border: 0; border-radius: 50%; display: grid; place-items: center; background: #0f766e; color: #fff; font-size: 17px; cursor: pointer; }
.mchat-send span { display: none; font-size: 24px; }
.mchat-send.is-like { background: transparent; }
.mchat-send.is-like i { display: none; }
.mchat-send.is-like span { display: block; }
.mchat-send:disabled { opacity: .5; }
@media (max-width: 760px) {
  .mchat { height: calc(100dvh - 300px - env(safe-area-inset-bottom)); border-radius: 18px; min-height: 0; }
  body.mine-body .mchat { margin-bottom: 4px; }
  .mchat-form { padding-bottom: 6px; }
  .mchat-row { max-width: 88%; }
  .mchat-row .mchat-tools { position: static; }
  .mchat-row:hover .mchat-tools { display: none; }
  .mchat-row.show-tools .mchat-tools { display: flex; }
}
html[data-theme="dark"] .mchat:not(.is-desk) { background: #0f172a; }
html[data-theme="dark"] .mchat-row.them .mchat-bub, html[data-theme="dark"] .mchat-input { background: #1e293b; color: #e2e8f0; }

/* Account menu under the top-right photo */
.mine-acct { position: relative; flex: none; }
.mine-me-chip { border: 0; background: transparent; padding: 0; cursor: pointer; border-radius: 50%; }
.mine-me-chip:focus-visible { outline: 3px solid rgba(15,118,110,.4); }
.mine-acct-menu { position: fixed; right: 10px; top: 64px; z-index: 30; width: min(320px, calc(100vw - 20px)); background: #fff; border-radius: 18px; box-shadow: 0 18px 50px rgba(15,23,42,.22); padding: 8px; display: grid; gap: 2px; animation: acctIn .16s ease; }
@keyframes acctIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.mine-acct-menu[hidden] { display: none; }
.mine-acct-menu > a, .mine-acct-menu > button { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; color: #0f172a; text-decoration: none; font-weight: 700; font-size: 14px; border: 0; background: transparent; width: 100%; text-align: left; font-family: inherit; cursor: pointer; }
.mine-acct-menu > a:hover, .mine-acct-menu > button:hover { background: #f1f5f9; }
.mine-acct-menu > a > i, .mine-acct-menu > button > i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #e2e8f0; color: #0f172a; flex: none; }
.mine-acct-menu > a > span, .mine-acct-menu > button > span { flex: 1; }
.mine-acct-menu small { color: #0f766e; font-weight: 800; }
.mine-acct-menu > a > b { background: #ef4444; color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 7px; }
.mine-acct-head { margin-bottom: 4px; box-shadow: 0 1px 0 #e2e8f0; border-radius: 14px !important; padding: 12px !important; }
.mine-acct-head > span:last-child { display: grid !important; min-width: 0; }
.mine-acct-head b { font-size: 15px; }
.mine-acct-head small { color: #64748b !important; font-weight: 600 !important; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mine-acct-head em { font-style: normal; color: #0f766e; font-size: 12px; font-weight: 800; }
.mine-acct-lang { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-size: 13px; }
.mine-acct-lang i { width: 34px; text-align: center; color: #475569; }
.mine-acct-lang a { padding: 5px 10px; border-radius: 999px; background: #f1f5f9; color: #334155; text-decoration: none; font-weight: 700; }
.mine-acct-lang a.on { background: #0f766e; color: #fff; }
.mine-acct-out { margin-top: 4px; box-shadow: 0 -1px 0 #e2e8f0; border-radius: 0 0 12px 12px !important; color: #b91c1c !important; }
.mine-acct-out > i { background: #fee2e2 !important; color: #b91c1c !important; }
@media (max-width: 760px) {
  body.acct-open::after { content: ""; position: fixed; inset: 0; z-index: 25; background: rgba(15,23,42,.35); }
  .mine-acct-menu { position: fixed; top: auto; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); width: auto; max-height: 82dvh; overflow-y: auto; border-radius: 22px; animation: acctUp .2s ease; }
  @keyframes acctUp { from { transform: translateY(30px); opacity: 0; } to { transform: none; opacity: 1; } }
}

/* Install the tenant app */
.mine-appbanner { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; background: linear-gradient(135deg, #ecfeff, #f0fdfa); border: 1px solid #99f6e4; }
.mine-appbanner[hidden] { display: none; }
.mine-appbanner > div { flex: 1; min-width: 0; display: grid; }
.mine-appbanner small { color: #475569; }
.mine-appbanner img { width: 44px; height: 44px; object-fit: contain; border-radius: 12px; background: #fff; }
.mine-side-app { display: flex; gap: 10px; align-items: center; margin-top: auto; padding: 11px 12px; border-radius: 12px; border: 1px dashed rgba(94,234,212,.5); background: transparent; color: #99f6e4; font: inherit; font-weight: 800; cursor: pointer; text-align: left; }
.mine-side-app[hidden] { display: none; }
.mine-side-app:not([hidden]) + .mine-side-call { margin-top: 0; }
.mine-applink { display: block; width: 100%; padding: 12px; border-radius: 14px; border: 1px solid #99f6e4; background: #f0fdfa; color: #0f766e; font: inherit; font-weight: 800; cursor: pointer; }
.mine-applink[hidden] { display: none; }
.mine-appdlg { border: 0; border-radius: 22px; padding: 0; width: min(460px, calc(100vw - 24px)); box-shadow: 0 30px 80px rgba(15,23,42,.35); }
.mine-appdlg::backdrop { background: rgba(15,23,42,.5); }
.mine-appdlg form { padding: 18px; display: grid; gap: 12px; }
.mine-appdlg header { display: flex; align-items: center; gap: 12px; }
.mine-appdlg header > div { flex: 1; display: grid; }
.mine-appdlg header small { color: #64748b; }
.mine-appdlg header img { width: 48px; height: 48px; object-fit: contain; }
.mine-appsteps { padding: 10px 14px; border-radius: 14px; border: 1px solid #e2e8f0; }
.mine-appsteps.is-you { border-color: #0f766e; background: #f0fdfa; order: -1; }
.mine-appsteps h3 { margin: 0 0 6px; font-size: 15px; }
.mine-appsteps ol { margin: 0; padding-left: 20px; display: grid; gap: 4px; font-size: 14px; color: #334155; }
.mine-appdlg header { order: -2; }
.mine-brand strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mine-bar .mine-acct { flex: none; display: block; }
.mine-acct-menu > a > .mine-face-wrap { flex: none; }

/* App chrome: sidebar, top bar, footer */
.sidebar { padding: calc(18px + env(safe-area-inset-top, 0px)) 12px calc(12px + env(safe-area-inset-bottom, 0px)); background: radial-gradient(120% 60% at 0% 0%, rgba(37,99,235,.18), transparent 60%), linear-gradient(180deg, #0b1220 0%, #0f172a 100%); border-right: 1px solid rgba(255,255,255,.04); overflow: hidden; }
.side-top { background: transparent; border-bottom-color: rgba(255,255,255,.05); padding-bottom: 10px; }
.brand { padding: 4px 8px 14px; border-radius: 14px; }
.brand:hover strong { color: #bfdbfe; }
.side-find { margin: 0 2px 4px; height: 40px; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.06); transition: border-color .15s, background .15s; }
.side-find:focus-within { background: rgba(255,255,255,.08); border-color: rgba(96,165,250,.6); box-shadow: 0 0 0 3px rgba(37,99,235,.18); color: #93c5fd; }
.nav-label { padding: 14px 12px 6px; font-size: 10.5px; font-weight: 700; color: #64748b; }
.nav-sec { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: none; cursor: pointer; text-align: left; font-family: inherit; border-radius: 8px; transition: color .15s; }
.nav-sec span { flex: 1; }
.nav-sec:hover, .nav-sec.has-active { color: #cbd5e1; }
.nav-sec:focus-visible { outline: 2px solid #3b82f6; outline-offset: 1px; }
.nav-sec > i { font-size: 9px; transition: transform .2s ease; opacity: .7; }
.nav-sec[aria-expanded="false"] > i { transform: rotate(-90deg); }
.nav-sec-n { font-style: normal; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 10px; letter-spacing: 0; text-align: center; display: none; }
.nav-sec[aria-expanded="false"] .nav-sec-n { display: inline-block; }
.sidebar nav { display: grid; gap: 2px; }
.sidebar nav.is-shut { display: none; }
.sidebar.is-finding nav.is-shut { display: grid; }
.sidebar nav a { position: relative; padding: 9px 12px; gap: 12px; font-size: 13.5px; color: #cbd5e1; border-radius: 10px; }
.sidebar nav a i { width: 18px; text-align: center; font-size: 14px; transition: color .15s; }
.sidebar nav a .nav-t { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar nav a:hover i { color: #93c5fd; }
.sidebar nav a.active { background: linear-gradient(90deg, #2563eb, #3b82f6); color: #fff; font-weight: 600; box-shadow: 0 8px 20px rgba(37,99,235,.35); }
.sidebar nav a.active::before { content: ""; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 4px; border-radius: 0 4px 4px 0; background: #60a5fa; }
.nav-n, .nav-mail-n { flex: none; min-width: 20px; padding: 1px 7px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 800; text-align: center; line-height: 18px; }
.sidebar nav a.active .nav-n { background: #fff; color: #1d4ed8; }
.nav-none { margin: 8px 12px; color: #64748b; font-size: 12.5px; }
.side-foot { flex: none; margin: 0 -12px -12px; padding: 14px 20px; border-top: 1px solid rgba(255,255,255,.06); background: rgba(2,6,23,.35); }
.side-foot small { display: grid; line-height: 1.35; }
.side-foot small em { font-style: normal; color: #475569; font-size: 10px; }

.topbar { padding: calc(10px + env(safe-area-inset-top, 0px)) 20px 12px; background: rgba(255,255,255,.86); backdrop-filter: saturate(160%) blur(18px); -webkit-backdrop-filter: saturate(160%) blur(18px); border-bottom: 1px solid rgba(226,232,240,.8); box-shadow: 0 1px 0 rgba(15,23,42,.02), 0 8px 24px -18px rgba(15,23,42,.25); }
.hist-nav { gap: 2px; padding: 3px; border-radius: 13px; background: #f1f5f9; border: 1px solid #e2e8f0; }
.hist-nav .icon-btn { width: 34px; height: 34px; border-radius: 10px; }
.hist-nav .icon-btn:hover { background: #fff; color: var(--blue); box-shadow: 0 1px 3px rgba(15,23,42,.1); }
.clock-box { padding: 6px 14px 6px 12px; border-radius: 14px; background: #f8fafc; border: 1px solid #eef2f7; }
.clock-box > i { color: var(--blue); }
.clock-box time { color: #334155; font-weight: 700; }
.top-actions { gap: 6px; }
.top-actions > div > .icon-btn { border: 1px solid #e2e8f0; background: #fff; }
.top-actions > div > .icon-btn:hover, .top-actions > div > .icon-btn[aria-expanded="true"] { border-color: #bfdbfe; background: #eff6ff; color: var(--blue); }
.notif-badge { box-shadow: 0 0 0 2px #fff; }
.who { padding: 3px 4px 3px 3px; gap: 6px; border-color: #e2e8f0; background: #fff; transition: border-color .15s, box-shadow .15s; }
.who:hover { border-color: #bfdbfe; box-shadow: 0 4px 14px rgba(37,99,235,.1); }
.who-link { padding-right: 4px; }
.who .avatar-logo { border-radius: 50%; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #bfdbfe; }
.logout { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; background: #fef2f2; color: #dc2626; transition: background .15s, color .15s; }
.logout:hover { background: #dc2626; color: #fff; }
.logout i { font-size: 12px; }
.topbar > #topSearch.search { border-radius: 14px; border-color: #e2e8f0; background: #f8fafc; padding: 5px 5px 5px 14px; min-height: 46px; transition: border-color .15s, background .15s, box-shadow .15s; }
.topbar > #topSearch.search:focus-within { background: #fff; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.search-kbd { flex: none; display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 7px; border: 1px solid #cbd5e1; border-bottom-width: 2px; background: #fff; color: #64748b; font: 700 12px/1 inherit; }
.search:focus-within .search-kbd { display: none; }
.search-go { padding: 9px 18px; border-radius: 10px; box-shadow: 0 4px 12px rgba(37,99,235,.25); }

.site-foot { margin: 8px 24px 20px; padding: 0; gap: 0; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: var(--shadow); overflow: hidden; }
.foot-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 18px 20px; }
.foot-brand { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 320px; }
.foot-brand img { flex: none; }
.foot-brand > div { display: grid; gap: 2px; min-width: 0; }
.foot-brand b { color: var(--text); font-size: 13.5px; }
.foot-brand span { color: var(--muted); font-size: 12px; line-height: 1.5; }
.foot-brand span i { color: #ef4444; margin-right: 2px; }
.site-foot .foot-contact { display: flex; flex-wrap: wrap; gap: 8px; }
.site-foot a.foot-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 999px; border: 1px solid #dbeafe; background: #eff6ff; color: #1d4ed8; font-size: 12.5px; font-weight: 700; transition: background .15s, color .15s, transform .15s; }
.site-foot a.foot-chip:hover { background: var(--blue); color: #fff; border-color: var(--blue); transform: translateY(-1px); }
.site-foot .foot-tools { padding: 12px 20px; border-top: 1px solid var(--line); background: #f8fafc; gap: 10px 16px; }
.site-foot .foot-copy { color: var(--muted); font-size: 12px; margin-right: 4px; }
.site-foot .dev-mark { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); font-size: 12px; }
.site-foot .dev-mark img { width: 26px; height: 26px; border-radius: 8px; }
body:has(.ai-fab) .site-foot { padding-bottom: 0; margin-bottom: 100px; }
.auth-panel .site-foot { margin: 16px 0 0; }
.auth-panel .foot-main { justify-content: center; text-align: left; }
.auth-panel .foot-brand { flex: 0 1 auto; }

html[data-theme="dark"] .sidebar { border-right-color: #1f2937; }
html[data-theme="dark"] .topbar { background: rgba(17,24,39,.86); border-bottom-color: #1f2937; }
html[data-theme="dark"] .hist-nav, html[data-theme="dark"] .clock-box { background: #0b1220; border-color: #1f2937; }
html[data-theme="dark"] .hist-nav .icon-btn:hover { background: #1f2937; color: #93c5fd; }
html[data-theme="dark"] .clock-box time { color: #e2e8f0; }
html[data-theme="dark"] .top-actions > div > .icon-btn { background: #111827; border-color: #1f2937; }
html[data-theme="dark"] .top-actions > div > .icon-btn:hover { background: #172554; border-color: #1e40af; color: #bfdbfe; }
html[data-theme="dark"] .notif-badge { box-shadow: 0 0 0 2px #111827; }
html[data-theme="dark"] .who { background: #0b1220; border-color: #1f2937; }
html[data-theme="dark"] .who .avatar-logo { box-shadow: 0 0 0 2px #0b1220, 0 0 0 3px #1e40af; }
html[data-theme="dark"] .logout { background: rgba(239,68,68,.12); color: #f87171; }
html[data-theme="dark"] .topbar > #topSearch.search { background: #0b1220; border-color: #1f2937; }
html[data-theme="dark"] .search-kbd { background: #111827; border-color: #334155; color: #94a3b8; }
html[data-theme="dark"] .site-foot .foot-tools { background: #0b1220; }
html[data-theme="dark"] .site-foot a.foot-chip { background: #172554; border-color: #1e3a8a; color: #bfdbfe; }

@media (max-width: 1180px) {
  .clock-box { justify-content: flex-start; }
}
@media (max-width: 960px) {
  .logout span { display: none; }
  .logout { padding: 8px 10px; }
  .site-foot { margin-left: 16px; margin-right: 16px; }
}
@media (max-width: 640px) {
  .topbar { padding: calc(8px + env(safe-area-inset-top)) 10px 8px; }
  .hist-nav { padding: 2px; }
  .hist-nav .icon-btn { width: 32px; height: 32px; }
  .clock-box { padding: 4px 10px; }
  .search-kbd { display: none; }
  .topbar > #topSearch.search { min-height: 44px; }
  .site-foot { margin: 8px 12px 16px; border-radius: 16px; }
  .foot-main, .site-foot .foot-tools { padding: 14px; }
  .site-foot .foot-tools { flex-direction: column; align-items: flex-start; }
  .site-foot a.foot-chip { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-sec > i, .site-foot a.foot-chip { transition: none; }
}

/* WhatsApp groups in the side menu */
.nav-sec-n.is-wa { display: inline-block; background: rgba(37,211,102,.16); color: #4ade80; }
.side-wa { padding-bottom: 4px; }
.wa-item { position: relative; display: flex; align-items: center; }
.wa-item:has(> a[hidden]) { display: none; }
.wa-item > a { flex: 1; min-width: 0; padding-right: 40px !important; }
.sidebar .side-wa a { color: #cbd5e1; }
.sidebar .side-wa a:hover { background: rgba(37,211,102,.1); color: #fff; }
.wa-ico { flex: none; width: 26px; height: 26px; margin-left: -4px; border-radius: 8px; display: grid; place-items: center; background: rgba(37,211,102,.15); }
.sidebar .side-wa a .wa-ico i { width: auto; color: #25d366; font-size: 15px; }
.sidebar .side-wa a .wa-go { width: auto; font-size: 10px; color: #475569; opacity: 0; transition: opacity .15s; }
.sidebar .side-wa a:hover .wa-go { opacity: 1; color: #86efac; }
.wa-del { position: absolute; right: 6px; width: 26px; height: 26px; border: 0; border-radius: 8px; display: grid; place-items: center; background: transparent; color: #64748b; cursor: pointer; opacity: 0; transition: opacity .15s, background .15s, color .15s; }
.wa-item:hover .wa-del, .wa-del:focus-visible { opacity: 1; }
.wa-item:hover .wa-go { display: none; }
.wa-del:hover, .wa-del:focus-visible { background: rgba(239,68,68,.18); color: #fca5a5; outline: none; }
@media (hover: none) { .wa-del { opacity: .8; } .sidebar .side-wa a .wa-go { display: none; } }
.wa-none { margin: 4px 12px 6px; color: #64748b; font-size: 12.5px; }
.wa-add { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 4px; padding: 8px 12px; border: 1px dashed rgba(37,211,102,.4); border-radius: 10px; background: transparent; color: #4ade80; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.wa-add:hover { background: rgba(37,211,102,.1); border-color: #25d366; }
.sidebar.is-finding .wa-add, .sidebar.is-finding .wa-none { display: none; }

.wa-dlg { width: min(440px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 20px; background: var(--card); color: var(--text); box-shadow: 0 30px 80px rgba(15,23,42,.35); }
.wa-dlg::backdrop { background: rgba(15,23,42,.55); backdrop-filter: blur(3px); }
.wa-dlg[open] { animation: waDlgIn .2s ease-out; }
@keyframes waDlgIn { from { opacity: 0; transform: translateY(10px) scale(.98); } }
.wa-dlg form { display: grid; gap: 14px; padding: 22px; }
.wa-dlg header { display: flex; gap: 14px; align-items: flex-start; }
.wa-dlg-ico { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; color: #fff; background: linear-gradient(135deg, #25d366, #128c7e); box-shadow: 0 8px 20px rgba(37,211,102,.3); }
.wa-dlg h2 { margin: 0 0 4px; font-size: 17px; }
.wa-dlg header p { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.wa-dlg label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; }
.wa-dlg input { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); font: inherit; font-size: 14px; font-weight: 500; outline: none; }
.wa-dlg input:focus { border-color: #25d366; box-shadow: 0 0 0 3px rgba(37,211,102,.18); }
.wa-dlg-err { color: #dc2626; font-weight: 600; font-size: 12px; }
.wa-dlg footer { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px; }
.wa-dlg footer .btn.primary { background: #16a34a; border-color: #16a34a; }
.wa-dlg footer .btn.primary:hover { background: #15803d; }
html[data-theme="dark"] .wa-dlg { box-shadow: 0 30px 80px rgba(0,0,0,.6); }

/* Flems: covers */
.flem-branch { box-shadow: 0 10px 30px -18px rgba(15,23,42,.35); }
.flem-branch > .prop-card { border: 0; border-radius: 0; box-shadow: none; }
.flem-branch-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; padding: 12px 14px 0; }
.flem-branch-tools .flem-cover-up.is-branch { position: static; }
.flem-branch-tools .flem-cover-up.is-branch label { background: #0f172a; }
.flem-cover-up.is-inline { position: static; }
.flem-cover-up.is-inline label { background: #0f172a; }
.flem-block:not(:has(.flem-shot)) { padding-top: 12px; }
.flem-branch-h { position: relative; min-height: 168px; align-items: flex-end; padding: 18px; background: linear-gradient(135deg, #0f766e, #134e4a); isolation: isolate; }
.flem-branch-h.has-photo { background: linear-gradient(180deg, rgba(2,6,23,.15) 0%, rgba(2,6,23,.78) 100%), var(--flem-cover) center/cover no-repeat; min-height: 220px; }
.flem-branch-title { display: flex; gap: 12px; align-items: flex-end; min-width: 0; flex: 1 1 280px; }
.flem-branch-ico { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); font-size: 20px; }
.flem-branch-h h2 { font-size: 22px; letter-spacing: -.02em; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
.flem-branch-h p i { opacity: .8; margin-right: 2px; }
.flem-branch-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.flem-branch-pills span { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); color: #fff; }
.flem-branch-pills span.is-ok { background: rgba(16,185,129,.35); }
.flem-branch-pills span.is-warn { background: rgba(245,158,11,.45); }
.flem-cover-up label { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 7px 12px; background: rgba(15,23,42,.55); color: #fff; backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.25); transition: background .15s; }
.flem-cover-up label:hover { background: rgba(15,23,42,.8); }
.flem-cover-up.is-branch { position: absolute; top: 14px; right: 14px; z-index: 2; }
.flem-cover-up.is-block { position: absolute; right: 8px; bottom: 8px; }
.flem-cover-up.is-block span { display: none; }
.flem-cover-up.is-block label { padding: 8px; width: 34px; height: 34px; justify-content: center; }
.flem-blocks { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; padding: 16px; }
.flem-block { padding: 0 0 12px; overflow: hidden; gap: 8px; }
.flem-block:hover { box-shadow: 0 10px 24px -18px rgba(15,23,42,.45); }
.flem-block > *:not(.flem-shot) { margin-left: 14px; margin-right: 14px; }
.flem-block.is-empty, .flem-block.is-occ { box-shadow: none; background: var(--card); }
.flem-block.is-empty { border-color: #fcd34d; }
.flem-block.is-occ { border-color: #6ee7b7; }
.flem-shot { position: relative; aspect-ratio: 2.4 / 1; background: linear-gradient(160deg, #ecfdf5, #e0e7ff); background-size: cover; background-position: center; display: grid; place-items: center; }
html[data-theme="dark"] .flem-shot:not(.has-photo) { background: linear-gradient(135deg, #134e4a, #312e81); }
.flem-shot.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2,6,23,0) 50%, rgba(2,6,23,.55)); pointer-events: none; }
.flem-shot-ico { font-size: 28px; color: #0f766e; opacity: .55; }
.flem-shot-no { position: absolute; left: 10px; bottom: 10px; z-index: 1; font-weight: 800; font-size: 13px; padding: 3px 9px; border-radius: 8px; background: rgba(15,23,42,.65); color: #fff; }
.flem-shot-st { position: absolute; left: 10px; top: 10px; z-index: 1; font-size: 11px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; color: #fff; }
.flem-shot-st.is-empty { background: #d97706; }
.flem-shot-st.is-occ { background: #059669; }
.flem-shot .flem-cover-up { z-index: 2; }
@media (max-width: 640px) {
  .flem-branch-h.has-photo { min-height: 200px; }
  .flem-cover-up.is-branch span { display: none; }
  .flem-blocks { grid-template-columns: 1fr; padding: 12px; }
}

/* SMS a colleague: messenger layout */
.smsx { padding: 0; overflow: visible; }
.smsx .smsx-grid { overflow: hidden; }
.smsx-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px; border-bottom: 1px solid var(--line); background: var(--card); }
.smsx-mode button { border: 1px solid var(--line); background: transparent; color: inherit; border-radius: 16px; padding: 12px 14px; cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; font: inherit; }
.smsx-mode button i { font-size: 16px; color: #0f766e; }
.smsx-mode button span { font-weight: 800; font-size: 15px; }
.smsx-mode button small { font-weight: 600; font-size: 12px; color: var(--muted); line-height: 1.35; }
.smsx-mode button.on { background: #0f766e; border-color: #0f766e; color: #fff; }
.smsx-mode button.on i, .smsx-mode button.on small { color: rgba(255,255,255,.9); }
.smsx.is-chat .only-sms, .smsx.is-sms .only-chat { display: none; }
.smsx.is-chat .smsx-marks, .smsx.is-chat .smsx-tick, .smsx.is-chat [data-seg="agent"], .smsx.is-chat [data-seg="tenant"], .smsx.is-chat [data-seg="nums"], .smsx.is-chat [data-seg="group"] { display: none; }
.smsx.is-sms .smsx-side-tools, .smsx.is-sms .smsx-head-tools { display: none; }
.smsx.is-chat .smsx-ph { display: none; }
.smsx.is-sms .sms-peer[data-kind="user"] [data-last] { display: none; }
.smsx-grid { display: grid; grid-template-columns: minmax(270px, 340px) 1fr; height: min(680px, calc(100vh - 170px)); min-height: 520px; }
.smsx-side { display: flex; flex-direction: column; border-right: 1px solid var(--line); min-height: 0; background: color-mix(in srgb, var(--card) 92%, #0f766e 8%); }
.smsx-side-h { padding: 16px 16px 10px; display: grid; gap: 2px; }
.smsx-side-h b { font-size: 17px; letter-spacing: -.01em; }
.smsx-side-h small { color: var(--muted); font-size: 12px; }
.smsx-seg { display: flex; gap: 6px; padding: 0 12px 10px; overflow-x: auto; scrollbar-width: none; }
.smsx-seg button { flex: 0 0 auto; border: 1px solid var(--line); background: var(--card); color: inherit; border-radius: 999px; padding: 7px 11px; font-size: 12px; font-weight: 700; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.smsx-seg button b { font-size: 11px; background: var(--line); border-radius: 999px; padding: 1px 7px; }
.smsx-seg button.on { background: #0f766e; border-color: #0f766e; color: #fff; }
.smsx-seg button.on b { background: rgba(255,255,255,.25); }
.smsx-find { display: flex; align-items: center; gap: 8px; margin: 0 12px 8px; padding: 9px 12px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); }
.smsx-find input { border: 0; outline: 0; background: transparent; width: 100%; font: inherit; color: inherit; }
.smsx-find i { color: var(--muted); }
.smsx-marks { margin: 0 12px 10px; padding: 12px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 8px; box-shadow: 0 8px 24px rgba(15, 23, 42, .04); }
.smsx-marks-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.smsx-marks-h b { font-size: 13px; display: inline-flex; align-items: center; gap: 8px; }
.smsx-marks-h b i { color: #0f766e; }
.smsx-marks-h span { min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; background: #0f766e; color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 800; }
.smsx-marks p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.smsx-marks-row { display: flex; flex-wrap: wrap; gap: 6px; }
.smsx-marks-row button { border: 1px solid var(--line); background: color-mix(in srgb, var(--card) 82%, #0f766e 18%); color: inherit; border-radius: 999px; padding: 7px 11px; font-size: 12px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.smsx-marks-row button:hover { border-color: #0f766e; color: #0f766e; }
.smsx-marks-row button i { font-size: 11px; }
.sms-row { display: flex; align-items: center; gap: 2px; border-radius: 14px; }
.sms-row:hover { background: color-mix(in srgb, var(--card) 88%, #0f766e 12%); }
.sms-row:has(input:checked) { background: color-mix(in srgb, #0f766e 14%, var(--card)); }
.sms-row[hidden] { display: none !important; }
.sms-row .sms-peer { flex: 1; min-width: 0; }
.smsx-tick { display: flex; align-items: center; padding: 0 2px 0 8px; }
.smsx-tick input { width: 20px; height: 20px; accent-color: #0f766e; cursor: pointer; }
.smsx-tick input:disabled { cursor: not-allowed; opacity: .35; }
.smsx-ph { display: block; color: #0f766e; font-size: 12px; font-weight: 700; letter-spacing: .01em; }
.smsx-list, .smsx-groups { flex: 1; overflow-y: auto; padding: 4px 8px 12px; display: grid; align-content: start; gap: 2px; }
.smsx-list .sms-peer, .smsx-groups label { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; border: 0; background: transparent; color: inherit; padding: 9px 10px; border-radius: 12px; cursor: pointer; font: inherit; }
.smsx-list .sms-peer:hover, .smsx-groups label:hover { background: var(--card); }
.smsx-list .sms-peer.on, .smsx-groups label.on { background: color-mix(in srgb, #0f766e 14%, var(--card)); box-shadow: inset 3px 0 0 #0f766e; }
.smsx-list .sms-peer.off { opacity: .5; cursor: not-allowed; }
.smsx-groups input { position: absolute; opacity: 0; pointer-events: none; }
.smsx-place { margin: 0 10px 8px 46px; width: calc(100% - 56px); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font: inherit; background: var(--card); color: inherit; }
.smsx-nums { margin: 0 12px; display: grid; gap: 8px; }
.smsx-nums textarea { width: 100%; min-height: 96px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; font: inherit; background: var(--card); color: inherit; resize: vertical; }
.smsx-ava { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: #e2e8f0; color: #334155; font-size: 16px; }
.smsx-ava img { width: 100%; height: 100%; object-fit: cover; }
.smsx-ava.is-agent { background: #ccfbf1; color: #0f766e; }
.smsx-ava.is-group { background: #e0e7ff; color: #4338ca; }
.smsx-ava.is-tenant { background: #fef3c7; color: #b45309; }
.smsx-ava.is-all { background: #fee2e2; color: #b91c1c; }
.smsx-who { min-width: 0; flex: 1; display: grid; gap: 1px; }
.smsx-who b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smsx-who small { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smsx-go { color: var(--muted); font-size: 11px; opacity: 0; transition: opacity .15s; }
.sms-peer:hover .smsx-go, .sms-peer.on .smsx-go { opacity: 1; }
.smsx-none { text-align: center; color: var(--muted); padding: 20px 0; }
.smsx-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.smsx-head { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.smsx-head .smsx-ava i { font-size: 18px; }
.smsx-back { display: none; border: 0; background: transparent; color: inherit; font-size: 18px; padding: 4px 6px; cursor: pointer; }
.smsx-log { flex: 1; overflow-y: auto; padding: 18px 18px 8px; display: flex; flex-direction: column; gap: 10px; background: radial-gradient(circle at 20% 0%, color-mix(in srgb, #0f766e 6%, transparent), transparent 60%); }
.smsx-empty { margin: auto; text-align: center; max-width: 320px; color: var(--muted); display: grid; gap: 6px; justify-items: center; }
.smsx-empty span { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; font-size: 26px; background: color-mix(in srgb, #0f766e 12%, var(--card)); color: #0f766e; }
.smsx-empty b { color: var(--text, inherit); font-size: 15px; }
.smsx-empty p { margin: 0; font-size: 13px; }
.smsx-b { align-self: flex-end; max-width: min(78%, 520px); background: #0f766e; color: #fff; border-radius: 16px 16px 4px 16px; padding: 9px 12px 6px; box-shadow: 0 6px 16px -12px rgba(15,23,42,.6); }
.smsx-b p { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: 14px; line-height: 1.45; }
.smsx-b footer { display: flex; justify-content: flex-end; align-items: center; gap: 6px; margin-top: 4px; font-size: 11px; opacity: .85; }
.smsx-b .sms-mark { color: inherit; }
.smsx-b.is-fail { background: #fee2e2; color: #991b1b; }
.smsx-b.is-wait { background: #115e59; }
.smsx-blast { margin: 0 16px 8px; padding: 10px 12px; border-radius: 12px; background: #fef3c7; color: #92400e; font-size: 13px; }
.smsx-compose { border-top: 1px solid var(--line); padding: 10px 14px 12px; display: grid; gap: 8px; }
.smsx-tools { display: flex; align-items: center; gap: 10px; justify-content: space-between; }
.smsx-tools select { max-width: 60%; border-radius: 999px; padding: 6px 12px; font-size: 13px; }
.smsx-chars { font-size: 12px; color: var(--muted); }
.smsx-chars.is-long { color: #b45309; font-weight: 700; }
.smsx-input { display: flex; align-items: flex-end; gap: 8px; }
.smsx-input textarea { flex: 1; resize: none; border-radius: 20px; padding: 11px 16px; min-height: 44px; max-height: 160px; line-height: 1.4; }
.smsx-send { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; border: 0; background: #0f766e; color: #fff; font-size: 17px; cursor: pointer; transition: transform .12s, opacity .12s; }
.smsx-send:disabled { opacity: .4; cursor: not-allowed; }
.smsx-send:not(:disabled):hover { transform: scale(1.06); }
.smsx-send.is-busy i { animation: smsxFly .8s ease-in-out infinite; }
@keyframes smsxFly { 50% { transform: translateX(4px) translateY(-3px); opacity: .5; } }
.smsx-tip { color: var(--muted); font-size: 11px; }
@media (max-width: 820px) {
  .smsx-grid { grid-template-columns: 1fr; height: calc(100vh - 150px); }
  .smsx-main { display: none; }
  .smsx-grid.is-open .smsx-side { display: none; }
  .smsx-grid.is-open .smsx-main { display: flex; }
  .smsx-back { display: inline-block; }
  .smsx-tip { display: none; }
}

/* Live Chat (staff) — full workspace, WhatsApp-style desk */
body.is-desk-page .site-foot { display: none !important; }
body.is-desk-page .main {
  display: flex; flex-direction: column; min-height: 0;
  padding-bottom: 12px;
}
body.is-desk-page .lc-chat {
  flex: 1 1 auto;
  height: calc(100dvh - 200px);
  min-height: 480px;
  max-height: none;
}
html.is-app body.is-desk-page .lc-chat {
  height: calc(100dvh - 160px - env(safe-area-inset-bottom, 0px));
}
.lc-headline h1 i { color: #0f766e; margin-right: 4px; }
.lc-tabs { display: flex; gap: 6px; margin: 0 0 12px; padding: 5px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; flex: 0 0 auto; }
.lc-tabs a { flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border-radius: 12px; text-decoration: none; color: var(--muted); font-weight: 700; font-size: 14px; white-space: nowrap; transition: background .15s, color .15s; }
.lc-tabs a:hover { background: color-mix(in srgb, #0f766e 8%, var(--card)); color: inherit; }
.lc-tabs a.on { background: #0f766e; color: #fff; box-shadow: 0 6px 16px -10px #0f766e; }
.lc-tabs a b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; display: inline-grid; place-items: center; font-size: 11px; background: #ef4444; color: #fff; }
.lc-tabs a.on b { background: #fff; color: #0f766e; }
.lc-chat { display: grid; grid-template-columns: minmax(280px, 360px) 1fr; height: min(720px, calc(100vh - 210px)); min-height: 520px; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--card); }
.lc-side { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--line); background: color-mix(in srgb, var(--card) 94%, #0f766e 6%); }
.lc-side-stats { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 12px 0; }
.lc-side-stats span {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700;
  padding: 5px 10px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); color: var(--muted);
}
.lc-side-stats span.is-hot { background: #fef3c7; border-color: #fcd34d; color: #b45309; }
.lc-side-stats i { font-size: 11px; }
.lc-filters { display: flex; gap: 6px; flex-wrap: wrap; padding: 12px 12px 8px; }
.lc-filters a { font-size: 12px; font-weight: 700; padding: 6px 11px; border-radius: 999px; text-decoration: none; color: inherit; border: 1px solid var(--line); background: var(--card); }
.lc-filters a em { font-style: normal; margin-left: 4px; padding: 0 5px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 10px; }
.lc-filters a.on { background: #0f172a; border-color: #0f172a; color: #fff; }
.lc-filters a.on em { background: #fff; color: #0f172a; }
html[data-theme="dark"] .lc-filters a.on { background: #e2e8f0; color: #0f172a; }
.lc-find { display: flex; align-items: center; gap: 8px; margin: 0 12px 8px; padding: 9px 12px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); }
.lc-find input { border: 0; outline: 0; background: transparent; width: 100%; font: inherit; color: inherit; }
.lc-find i { color: var(--muted); }
.lc-list { flex: 1; overflow-y: auto; padding: 2px 8px 12px; display: grid; align-content: start; gap: 2px; }
.lc-thread { display: flex; gap: 11px; padding: 10px; border-radius: 14px; text-decoration: none; color: inherit; position: relative; }
.lc-thread:hover { background: var(--card); }
.lc-thread.on { background: color-mix(in srgb, #0f766e 13%, var(--card)); box-shadow: inset 3px 0 0 #0f766e; }
.lc-thread.is-new .lc-thread-top b, .lc-thread.is-new .lc-thread-msg { font-weight: 800; color: inherit; }
.lc-thread.is-new { background: color-mix(in srgb, #f59e0b 8%, var(--card)); }
.lc-thread.is-done { opacity: .78; }
.lc-dot {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  width: 10px; height: 10px; border-radius: 50%; background: #ef4444;
  box-shadow: 0 0 0 3px color-mix(in srgb, #ef4444 20%, transparent);
}
.lc-ava { position: relative; flex: 0 0 auto; width: 44px; height: 44px; }
.lc-ava img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; background: #e2e8f0; }
.lc-ava i { position: absolute; right: 0; bottom: 1px; width: 11px; height: 11px; border-radius: 50%; background: #94a3b8; border: 2px solid var(--card); }
.lc-ava i.on { background: #22c55e; }
.lc-ava.is-lg { width: 48px; height: 48px; }
.lc-thread-main { min-width: 0; flex: 1; display: grid; gap: 3px; }
.lc-thread-top { display: flex; justify-content: space-between; gap: 8px; }
.lc-thread-top b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lc-thread-top time { flex: 0 0 auto; font-size: 11px; color: var(--muted); }
.lc-thread-msg { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lc-thread-msg i { font-size: 10px; }
.lc-thread-meta { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.lc-code { display: inline-flex; align-items: center; gap: 5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; font-weight: 700; padding: 3px 8px; border-radius: 8px; background: color-mix(in srgb, #4338ca 12%, var(--card)); color: #4338ca; white-space: nowrap; }
html[data-theme="dark"] .lc-code { color: #a5b4fc; }
.lc-code.is-sm { font-size: 10.5px; padding: 2px 6px; }
.lc-st { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.lc-st i { font-size: 8px; }
.lc-st.is-open { background: #dbeafe; color: #1d4ed8; }
.lc-st.is-wait { background: #fef3c7; color: #b45309; }
.lc-st.is-done { background: #dcfce7; color: #15803d; }
.lc-st.is-no { background: #fee2e2; color: #b91c1c; }
.lc-st.is-done i, .lc-st.is-wait i, .lc-st.is-no i { font-size: 10px; }
.lc-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: radial-gradient(circle at 1px 1px, rgba(100,116,139,.10) 1px, transparent 0) 0 0 / 22px 22px, var(--card); }
.lc-mchat { flex: 1; }
.lc-head { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--card); flex-wrap: wrap; }
.lc-head-who { min-width: 0; flex: 1 1 200px; display: grid; gap: 2px; }
.lc-head-who a { color: inherit; text-decoration: none; }
.lc-head-who b { font-size: 16px; }
.lc-head-who small { color: var(--muted); font-size: 12px; }
.lc-head-who small [data-mchat-status].on { color: #16a34a; font-weight: 700; }
.lc-head-ticket { display: flex; gap: 6px; align-items: center; }
.lc-head-acts { display: flex; gap: 6px; align-items: center; }
.lc-back { display: none; color: inherit; font-size: 18px; padding: 4px 6px; }
.lc-icon-btn { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--line); background: var(--card); color: inherit; display: inline-grid; place-items: center; cursor: pointer; text-decoration: none; list-style: none; }
.lc-icon-btn::-webkit-details-marker { display: none; }
.lc-icon-btn:hover { background: color-mix(in srgb, #0f766e 8%, var(--card)); }
.lc-icon-btn.is-ok { color: #15803d; border-color: #bbf7d0; }
.lc-icon-btn.is-ok:hover { background: #dcfce7; }
.lc-icon-btn.is-no { color: #b91c1c; border-color: #fecaca; }
.lc-icon-btn.is-no:hover { background: #fee2e2; }
.lc-done-btn { background: #16a34a; color: #fff; border: 0; list-style: none; cursor: pointer; }
.lc-done-btn::-webkit-details-marker { display: none; }
.lc-pop { position: relative; }
.lc-pop > summary { list-style: none; }
.lc-pop-body { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; width: min(340px, 86vw); max-height: 420px; overflow-y: auto; display: grid; gap: 8px; padding: 14px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); box-shadow: 0 20px 40px -18px rgba(15,23,42,.45); }
.lc-pop-body p { margin: 0; font-size: 13px; }
.lc-pop-body textarea { width: 100%; }
.lc-hist { display: grid; gap: 4px; padding: 8px 0; border-top: 1px solid var(--line); grid-template-columns: auto 1fr; align-items: center; }
.lc-hist small, .lc-hist p { grid-column: 1 / -1; }
.lc-closed-bar { margin: 0; padding: 8px 14px; font-size: 13px; background: #dcfce7; color: #166534; }
.lc-blank { margin: auto; text-align: center; max-width: 340px; padding: 30px 16px; display: grid; gap: 6px; justify-items: center; color: var(--muted); }
.lc-blank span { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: color-mix(in srgb, #0f766e 12%, var(--card)); color: #0f766e; }
.lc-blank span.is-lg { width: 76px; height: 76px; font-size: 30px; }
.lc-blank b { color: var(--text, inherit); font-size: 15px; }
.lc-blank p { margin: 0; font-size: 13px; }
.lc-blank.is-card { max-width: none; }
.lc-blank.is-welcome { max-width: 400px; }
.lc-welcome-hot {
  margin-top: 8px !important; padding: 8px 14px; border-radius: 999px;
  background: #fef3c7; color: #92400e; font-weight: 700; font-size: 13px !important;
}
.lc-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; margin-bottom: 10px; }
.lc-toolbar .lc-filters { padding: 0; }
.lc-reqs { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; }
.lc-req { padding: 14px 16px; display: grid; gap: 10px; border-left: 4px solid #3b82f6; scroll-margin-top: 90px; }
.lc-req.is-hot { border-left-color: #f59e0b; }
.lc-req.is-done { border-left-color: #22c55e; opacity: .9; }
.lc-req.is-focus { outline: 2px solid #0f766e; }
.lc-req header { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lc-req header time { margin-left: auto; font-size: 12px; color: var(--muted); }
.cmp-desk { display: grid; gap: 14px; }
.cmp-hero {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap;
  padding: 18px 20px; border-radius: 18px;
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 55%, #0f766e 140%);
  color: #f8fafc; box-shadow: 0 18px 40px -28px #0f172a;
}
.cmp-kicker { margin: 0 0 4px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .75; font-weight: 700; }
.cmp-kicker i { margin-right: 6px; }
.cmp-title { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.cmp-sub { margin: 6px 0 0; max-width: 52ch; font-size: 13.5px; line-height: 1.45; color: #cbd5e1; }
.cmp-frac { text-align: right; min-width: 88px; }
.cmp-frac b { display: block; font-size: 34px; line-height: 1; font-variant-numeric: tabular-nums; }
.cmp-frac b span { font-size: 22px; opacity: .7; font-weight: 700; }
.cmp-frac small { display: block; margin-top: 4px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; opacity: .7; }
.cmp-toolbar { margin: 0; }
.cmp-grid { gap: 16px; }
.cmp-card {
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 16px; box-shadow: 0 10px 28px -24px #0f172a;
  transition: transform .18s ease, box-shadow .18s ease;
}
.cmp-card:hover { transform: translateY(-1px); box-shadow: 0 16px 32px -22px #0f172a; }
.cmp-card.is-seen:not(.is-done) { border-left-color: #64748b; }
.cmp-card-h { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cmp-card-h time { margin-left: auto; font-size: 12px; color: var(--muted); }
.cmp-id {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px;
  background: color-mix(in srgb, #7c3aed 12%, var(--card)); color: #5b21b6; font-family: ui-monospace, Consolas, monospace; font-size: 13px;
}
.cmp-id strong { letter-spacing: .02em; }
.cmp-copy {
  border: 0; background: transparent; color: inherit; cursor: pointer; padding: 2px 4px; border-radius: 6px; opacity: .7;
}
.cmp-copy:hover, .cmp-copy.is-ok { opacity: 1; background: color-mix(in srgb, #7c3aed 18%, transparent); }
.cmp-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cmp-src {
  font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: var(--muted); padding: 3px 8px; border-radius: 999px; border: 1px solid var(--line);
}
.lc-st.is-seen { background: color-mix(in srgb, #64748b 14%, var(--card)); color: #334155; }
.cmp-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cmp-act { display: inline; margin: 0; }
.lc-kind { font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 8px; background: var(--line); }
.lc-kind.is-hot { background: #ffedd5; color: #c2410c; }
.lc-stars { color: #f59e0b; font-size: 11px; }
.lc-req-who { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 14px; }
.lc-req-who a { color: inherit; }
.lc-link { margin-left: auto; font-size: 12px; font-weight: 700; color: #0f766e !important; text-decoration: none; }
.lc-req-body { margin: 0; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--line) 45%, var(--card)); font-size: 14px; line-height: 1.5; }
.lc-req-reply { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, #0f766e 10%, var(--card)); font-size: 13px; }
.lc-req-reply i { color: #0f766e; margin-top: 3px; }
.lc-req-reply p { margin: 2px 0 0; }
.lc-req-form { display: grid; gap: 8px; }
.lc-req-form textarea { width: 100%; resize: vertical; }
.lc-req-acts { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.lc-req-done { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 13px; color: #15803d; font-weight: 700; }
.lc-verify { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 14px; }
.lc-v { padding: 14px 16px; display: grid; gap: 10px; scroll-margin-top: 90px; }
.lc-v:target { outline: 2px solid #0f766e; }
.lc-v header { display: flex; gap: 12px; align-items: center; }
.lc-v header div { flex: 1; min-width: 0; display: grid; gap: 2px; }
.lc-v header a { color: inherit; text-decoration: none; }
.lc-v header small { color: var(--muted); }
.lc-count { font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 999px; background: #fef3c7; color: #b45309; }
.lc-v-rows { display: grid; gap: 6px; }
.lc-v-row { display: grid; grid-template-columns: 110px 1fr auto 1fr auto; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 12px; background: color-mix(in srgb, var(--line) 40%, var(--card)); font-size: 13px; }
.lc-v-field { font-weight: 800; font-size: 12px; color: var(--muted); }
.lc-v-old { color: var(--muted); text-decoration: line-through; word-break: break-word; }
.lc-v-new { font-weight: 700; color: #0f766e; word-break: break-word; }
.lc-v-arrow { color: var(--muted); font-size: 11px; }
.lc-v-acts { display: flex; gap: 4px; }
.lc-v-acts form { display: flex; gap: 4px; }
.lc-vimg { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; }
.lc-v-proof { margin: 0; font-size: 12px; padding: 8px 10px; border-radius: 10px; background: #e0e7ff; color: #3730a3; }
.lc-v-proof.is-muted { background: var(--line); color: var(--muted); }
.lc-v-all { display: flex; justify-content: flex-end; gap: 8px; }
.lc-recent { margin-top: 16px; }
.lc-recent ul { list-style: none; margin: 0; padding: 0 16px 14px; display: grid; gap: 8px; }
.lc-recent li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; padding-top: 8px; border-top: 1px solid var(--line); }
.lc-recent li small { margin-left: auto; }
.lc-myreq-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.lc-myreq.is-done { opacity: .85; }
.lc-myreq-reply { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, #0f766e 10%, transparent); font-size: 13px; }
.mchat-h .lc-code { margin: 2px 0; }
@media (max-width: 860px) {
  .lc-headline { flex-wrap: wrap; }
  .lc-headline .head-actions { width: 100%; overflow-x: auto; }
  body.is-desk-page .lc-chat { height: auto; min-height: 420px; max-height: none; }
  .lc-chat { grid-template-columns: 1fr; height: auto; min-height: 420px; max-height: none; }
  .lc-chat .lc-side { max-height: none; min-height: 360px; }
  /* Drill-in only when a conversation was opened (URL has tenant/agent). List stays in normal flow otherwise. */
  .lc-chat.is-open {
    position: fixed;
    inset: 0;
    z-index: 240;
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    background: var(--card, #fff);
    /* Keep a placeholder so the page under the overlay does not jump to the footer */
    min-height: 100dvh;
  }
  html.lc-drill, html.lc-drill body { overflow: hidden; }
  body:has(.lc-chat.is-open) .ai-fab,
  html.lc-drill .ai-fab { display: none; }
  .lc-chat.is-open .lc-side { display: none; }
  .lc-chat:not(.is-open) .lc-main { display: none; }
  .lc-chat.is-open .lc-main { display: flex; flex: 1; min-height: 0; }
  .lc-mchat, .mchat.is-desk { height: 100%; min-height: 0; }
  .lc-head { gap: 8px; padding: 8px 10px; align-items: flex-start; }
  .lc-head-who { flex: 1 1 auto; }
  .lc-head-who small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lc-head-acts { margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
  .lc-back { display: inline-flex; align-items: center; min-width: 36px; min-height: 36px; }
  .lc-head-ticket { order: 5; width: 100%; flex-wrap: wrap; }
  .lc-head-acts .btn span { display: none; }
  .lc-pop-body {
    position: fixed;
    left: 10px;
    right: 10px;
    top: auto;
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
    max-height: min(70dvh, 420px);
  }
  .lc-reqs, .lc-verify { grid-template-columns: 1fr; }
  .lc-v-row { grid-template-columns: 1fr auto; }
  .lc-v-field { grid-column: 1 / -1; }
  .lc-v-arrow { display: none; }
  .lc-v-old, .lc-v-new { grid-column: 1; }
  .lc-v-acts { grid-column: 2; grid-row: 2 / span 2; }
  .lc-chat.is-open .mchat-form {
    position: sticky;
    bottom: 0;
    z-index: 3;
    flex: none;
    background: #fff;
    border-top: 1px solid #e2e8f0;
    padding: 8px 8px calc(12px + env(safe-area-inset-bottom));
  }
  .lc-chat.is-open .mchat-send,
  .lc-chat.is-open .mchat-btn { width: 46px; height: 46px; }
  .mchat-form { padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
}

/* Settings → Public: portal tab order */
.set-portal-grid h3 { margin: 0 0 4px; font-size: 15px; }
.set-portal-grid h3 i { color: #0f766e; margin-right: 4px; }
.set-order { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.set-order li { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); }
.set-order-n { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-size: 12px; font-weight: 800; background: color-mix(in srgb, #0f766e 14%, var(--card)); color: #0f766e; }
.set-order-lab { flex: 1; font-weight: 700; font-size: 14px; }
.set-order .lc-icon-btn { width: 30px; height: 30px; }
.set-order li:first-child [data-move="-1"], .set-order li:last-child [data-move="1"] { opacity: .3; pointer-events: none; }

/* ---- Maintenance page ---- */
.maint-body { display: grid; place-items: center; padding: 20px; }
.maint-card { position: relative; z-index: 1; width: min(460px, 100%); text-align: center; padding: 30px 26px 18px; border-radius: 22px;
  background: rgba(255,255,255,.94); color: #0f172a; box-shadow: 0 30px 80px rgba(0,0,0,.35); font-family: 'Plus Jakarta Sans', system-ui, sans-serif; }
[data-theme="dark"] .maint-card { background: rgba(15,23,42,.92); color: #e2e8f0; }
.maint-brand { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.05rem; }
.maint-gears { position: relative; height: 84px; margin: 14px auto 6px; width: 110px; color: #f59e0b; }
.maint-gears .g1 { position: absolute; left: 14px; top: 6px; font-size: 58px; animation: maintSpin 6s linear infinite; }
.maint-gears .g2 { position: absolute; right: 10px; top: 36px; font-size: 38px; color: #0ea5e9; animation: maintSpin 4s linear infinite reverse; }
@keyframes maintSpin { to { transform: rotate(360deg); } }
.maint-card h1 { margin: 6px 0 8px; font-size: 1.45rem; font-weight: 800; }
.maint-msg { margin: 0 0 10px; line-height: 1.55; opacity: .9; }
.maint-eta { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: center; padding: 7px 12px; border-radius: 999px;
  background: rgba(245,158,11,.14); color: #b45309; font-size: .9rem; margin: 0 0 10px; }
.maint-sub { font-size: .88rem; opacity: .7; margin: 6px 0 12px; }
.maint-foot { margin-top: 18px; padding-top: 12px; border-top: 1px dashed rgba(100,116,139,.35); font-size: .8rem; }
.maint-foot a { color: inherit; opacity: .6; text-decoration: none; }
.maint-foot a:hover { opacity: 1; text-decoration: underline; }
.maint-login { display: flex; gap: 10px; align-items: flex-start; }
.maint-foot { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

/* ---- Sound / vibration toggles ---- */
.sre-alert-row { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sre-alert-row button { cursor: pointer; border: 1px solid var(--line, rgba(100,116,139,.3)); background: transparent; color: inherit; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: .82rem; }
.sre-alert-row .icon-btn.mini { padding: 0; width: 28px; height: 28px; display: inline-grid; place-items: center; }
.sre-alert-row button.is-off { opacity: .45; text-decoration: line-through; }
.sre-alert-row button:not(.is-off) { border-color: rgba(16,185,129,.55); color: #059669; }
a.has-new { position: relative; }
a.has-new::after { content: ''; position: absolute; top: 6px; right: 8px; width: 9px; height: 9px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 0 2px #fff; animation: srePulse 1.4s ease-in-out infinite; }
@keyframes srePulse { 50% { transform: scale(1.35); } }

/* ---- Colleague SMS: two-way thread, reacts, reply, select, online ---- */
.smsx-ava { position: relative; overflow: visible; }
.smsx-ava img { border-radius: 50%; }
.smsx-dot { position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 50%; background: #94a3b8; border: 2px solid var(--card, #fff); display: none; }
.is-online > .smsx-ava .smsx-dot, .smsx-ava.is-online .smsx-dot, .sms-peer.is-online .smsx-dot { display: block; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.5); animation: smsxLive 2s infinite; }
@keyframes smsxLive { 70% { box-shadow: 0 0 0 6px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
.smsx-meta { display: grid; justify-items: end; gap: 4px; flex: 0 0 auto; }
.smsx-meta time { font-size: 11px; color: var(--muted); }
.smsx-unread, .smsx-total { font-style: normal; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 800; display: inline-grid; place-items: center; }
.smsx-total { vertical-align: middle; margin-left: 4px; }
.sms-peer.has-unread .smsx-who b { font-weight: 800; }
.sms-peer.has-unread .smsx-who small { color: var(--text, inherit); font-weight: 600; }
.smsx-side-tools { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.smsx-chip { border: 1px solid var(--line); background: var(--card); color: inherit; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 600; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.smsx-chip.on { background: #0f766e; border-color: #0f766e; color: #fff; }
.smsx-head-tools { margin-left: auto; display: flex; gap: 4px; }
.smsx-head-tools button, .smsx-selbtns button { border: 0; background: transparent; color: inherit; width: 36px; height: 36px; border-radius: 50%; cursor: pointer; font-size: 15px; }
.smsx-head-tools button:hover { background: color-mix(in srgb, #0f766e 12%, transparent); }
.smsx-head-tools .is-danger:hover, .smsx-selbtns .is-danger { color: #dc2626; }
.smsx-selbar { display: flex; align-items: center; gap: 10px; padding: 8px 14px; background: color-mix(in srgb, #0f766e 10%, var(--card)); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.smsx-selbar b { font-size: 13px; }
.smsx-selbtns { margin-left: auto; display: flex; gap: 4px; flex-wrap: wrap; }
.smsx-selbtns button { width: auto; height: 32px; border-radius: 999px; padding: 0 10px; font-size: 12px; font-weight: 600; border: 1px solid var(--line); background: var(--card); }
.smsx-b { position: relative; }
.smsx-b.is-in { align-self: flex-start; background: var(--card); color: inherit; border: 1px solid var(--line); border-radius: 16px 16px 16px 4px; }
.smsx-b.is-in footer { justify-content: flex-start; color: var(--muted); }
.smsx-b.is-unread { box-shadow: 0 0 0 2px #f59e0b; }
.smsx-b.is-flash { animation: smsxFlash 1.2s; }
@keyframes smsxFlash { 30% { transform: scale(1.03); box-shadow: 0 0 0 4px rgba(14,165,233,.5); } }
.smsx-by { display: block; font-size: 11px; font-weight: 700; opacity: .8; margin-bottom: 2px; }
.smsx-b.is-in .smsx-by { color: #0f766e; }
.smsx-b blockquote { margin: 2px 0 6px; padding: 5px 9px; border-left: 3px solid rgba(255,255,255,.7); background: rgba(0,0,0,.12); border-radius: 8px; font-size: 12px; cursor: pointer; display: grid; }
.smsx-b.is-in blockquote { border-left-color: #0f766e; background: color-mix(in srgb, #0f766e 8%, transparent); }
.smsx-b blockquote b { font-size: 11px; }
.smsx-reacts { position: absolute; bottom: -12px; right: 10px; display: flex; gap: 1px; background: var(--card); color: var(--text, #0f172a); border: 1px solid var(--line); border-radius: 999px; padding: 1px 6px; font-size: 13px; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.smsx-b.is-in .smsx-reacts { right: auto; left: 10px; }
.smsx-reacts .me { filter: drop-shadow(0 0 2px #0ea5e9); }
.smsx-b:has(.smsx-reacts) { margin-bottom: 10px; }
.smsx-seen { font-size: 11px; opacity: .9; }
.smsx-btools { position: absolute; top: -14px; display: none; gap: 2px; background: var(--card); color: var(--text, #0f172a); border: 1px solid var(--line); border-radius: 999px; padding: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.12); right: 8px; }
.smsx-b.is-in .smsx-btools { right: auto; left: 8px; }
.smsx-b:hover .smsx-btools, .smsx-b:focus-within .smsx-btools { display: flex; }
.smsx-btools button { border: 0; background: transparent; color: inherit; width: 28px; height: 28px; border-radius: 50%; cursor: pointer; font-size: 12px; }
.smsx-btools button:hover { background: color-mix(in srgb, #0f766e 14%, transparent); }
.smsx-btools [data-b="hide"]:hover { color: #dc2626; }
.smsx-reactpop { position: absolute; top: -48px; z-index: 5; display: flex; gap: 2px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 4px 6px; box-shadow: 0 10px 24px rgba(0,0,0,.18); right: 0; }
.smsx-b.is-in .smsx-reactpop { right: auto; left: 0; }
.smsx-reactpop button { border: 0; background: transparent; font-size: 20px; cursor: pointer; border-radius: 50%; width: 34px; height: 34px; transition: transform .12s; }
.smsx-reactpop button:hover { transform: scale(1.25); }
.smsx-pick { display: none; position: absolute; top: 50%; transform: translateY(-50%); left: -30px; }
.smsx-b.is-in .smsx-pick { left: auto; right: -30px; }
.smsx-log.is-select { padding-left: 42px; padding-right: 42px; }
.smsx-log.is-select .smsx-pick { display: block; }
.smsx-log.is-select .smsx-b { cursor: pointer; }
.smsx-log.is-select .smsx-b:has(input:checked) { outline: 2px solid #0ea5e9; outline-offset: 2px; }
.smsx-log.is-select .smsx-btools { display: none !important; }
.smsx-replybar { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-left: 3px solid #0f766e; background: color-mix(in srgb, #0f766e 8%, var(--card)); border-radius: 10px; }
.smsx-replybar span { flex: 1; min-width: 0; display: grid; }
.smsx-replybar small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--muted); }
.smsx-replybar button { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 15px; }
.smsx-emoji { display: grid; grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); gap: 2px; padding: 6px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); max-height: 150px; overflow-y: auto; }
.smsx-emoji button { border: 0; background: transparent; font-size: 21px; cursor: pointer; border-radius: 8px; height: 36px; }
.smsx-emoji button:hover { background: color-mix(in srgb, #0f766e 12%, transparent); }
.smsx-emo-btn { flex: 0 0 auto; width: 40px; height: 44px; border: 0; background: transparent; color: var(--muted); font-size: 21px; cursor: pointer; }
.smsx-emo-btn:hover { color: #0f766e; }
@media (hover: none) { .smsx-b .smsx-btools { display: flex; position: static; margin-top: 6px; width: max-content; box-shadow: none; } }

/* ---- What's new (app updates) ---- */
.upd-page { max-width: 860px; margin: 0 auto; display: grid; gap: 16px; }
.upd-hero { display: flex; gap: 14px; align-items: center; padding: 20px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #145248 0%, #1f6f63 48%, #b08d3e 120%); box-shadow: 0 18px 40px -24px rgba(20,82,72,.75); }
.upd-hero-text { min-width: 0; }
.upd-hero h1 { margin: 0; font-size: 1.4rem; }
.upd-hero p { margin: 4px 0 0; opacity: .9; }
.upd-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; font-size: 12px; font-weight: 700; }
.upd-stats span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.16); }
.upd-stats .is-unread { background: rgba(239,68,68,.92); }
.upd-rocket { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 16px; display: grid; place-items: center; font-size: 22px; background: rgba(255,255,255,.18); color: #fff; }
.upd-form summary { cursor: pointer; font-weight: 700; padding: 4px 0; }
.upd-form form { margin-top: 10px; }
.upd-kinds { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.upd-kind-pick { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--line); padding: 7px 12px; border-radius: 999px; cursor: pointer; font-weight: 600; font-size: 13px; }
.upd-kind-pick input { display: none; }
.upd-kind-pick:has(input:checked) { color: #fff; border-color: transparent; }
.upd-kind-pick.is-new:has(input:checked) { background: #1f6f63; }
.upd-kind-pick.is-update:has(input:checked) { background: #0e7490; }
.upd-kind-pick.is-fix:has(input:checked) { background: #047857; }
.upd-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.upd-filter { border: 1px solid var(--line); background: var(--card); color: inherit; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; cursor: pointer; }
.upd-filter.is-on { background: #1f6f63; color: #fff; border-color: transparent; }
.upd-filter.is-new.is-on { background: #1f6f63; }
.upd-filter.is-update.is-on { background: #0e7490; }
.upd-filter.is-fix.is-on { background: #047857; }
.upd-timeline { display: grid; gap: 10px; }
.upd-day { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 10px 0 0; }
.upd-item { display: flex; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); position: relative; }
.upd-item.is-unread { border-color: #1f6f63; box-shadow: 0 0 0 3px rgba(31,111,99,.14); }
.upd-ico { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 12px; display: grid; place-items: center; color: #fff; background: #1f6f63; }
.upd-item.is-unread .upd-ico { animation: srePulse 1.6s ease-in-out 3; }
.upd-item.is-kind-update .upd-ico { background: #0e7490; }
.upd-item.is-kind-fix .upd-ico { background: #047857; }
.upd-item.is-kind-new .upd-ico { background: #1f6f63; }
.upd-body { flex: 1; min-width: 0; }
.upd-top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 12px; }
.upd-top time { margin-left: auto; color: var(--muted); }
.upd-kind { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: #d1fae5; color: #065f46; white-space: nowrap; }
.upd-kind.is-update { background: #cffafe; color: #155e75; }
.upd-kind.is-fix { background: #d1fae5; color: #047857; }
.upd-kind.is-new { background: #d1fae5; color: #065f46; }
.upd-new { font-size: 11px; font-weight: 800; color: #fff; background: #ef4444; padding: 2px 8px; border-radius: 999px; }
.upd-aud, .upd-by { color: var(--muted); }
.upd-body h3 { margin: 6px 0 4px; font-size: 1rem; }
.upd-body p { margin: 0; color: var(--muted); line-height: 1.55; font-size: 14px; }
.upd-empty { padding: 18px; text-align: center; }
.upd-del { position: absolute; right: 10px; bottom: 8px; }
.upd-del button { border: 0; background: transparent; color: var(--muted); cursor: pointer; opacity: .5; }
.upd-del button:hover { color: #dc2626; opacity: 1; }
.upd-pop { width: min(520px, calc(100vw - 24px)); border: 0; border-radius: 22px; padding: 0; background: var(--card); color: inherit; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.upd-pop::backdrop { background: rgba(15,23,42,.55); backdrop-filter: blur(3px); }
.upd-pop-h { display: flex; gap: 12px; align-items: center; padding: 18px 20px; color: #fff; background: linear-gradient(135deg, #145248 0%, #1f6f63 55%, #b08d3e 130%); }
.upd-pop-h b { display: block; font-size: 1.1rem; }
.upd-pop-h small { opacity: .9; }
.upd-pop-list { list-style: none; margin: 0; padding: 10px 18px; display: grid; gap: 10px; max-height: 55vh; overflow-y: auto; }
.upd-pop-list li { display: flex; gap: 10px; align-items: flex-start; }
.upd-pop-list b { font-size: 14px; }
.upd-pop-list p { margin: 2px 0 0; font-size: 13px; color: var(--muted); line-height: 1.45; }
.upd-pop-f { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px 16px; border-top: 1px solid var(--line); }
input.is-locked { background: #f1f5f4; color: #145248; font-weight: 700; cursor: default; }
.smsx .smsx-ava i.smsx-dot { position: absolute; right: -2px; bottom: -2px; width: 13px; height: 13px; border-radius: 50%; background: #94a3b8; border: 2px solid var(--card, #fff); display: none; padding: 0; }
.smsx .sms-peer.is-online .smsx-ava i.smsx-dot, .smsx .smsx-ava.is-online i.smsx-dot, .smsx #smsxAva.is-online i.smsx-dot { display: block; background: #22c55e; animation: smsxLive 2s infinite; }
.smsx .smsx-ava > img { width: 42px; height: 42px; min-height: 0; max-height: 42px; border-radius: 50%; object-fit: cover; display: block; }

/* ===== Accessibility (WCAG 2.2 AA) ===== */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.a11y-skip { position: fixed; left: 12px; top: -60px; z-index: 100001; background: #0f172a; color: #fff; padding: 12px 18px; border-radius: 10px; font-weight: 700; text-decoration: none; transition: top .15s; }
.a11y-skip:focus { top: 12px; outline: 3px solid #facc15; outline-offset: 2px; }
:focus-visible { outline: 3px solid #2563eb !important; outline-offset: 2px !important; border-radius: 4px; }
[data-theme="dark"] :focus-visible { outline-color: #facc15 !important; }
#main-content:focus { outline: none; }
/* Minimum 24px target size (WCAG 2.5.8) for tiny icon controls */
.icon-btn, .smsx-btools button, .mchat-tools button, .notif-pick { min-width: 24px; min-height: 24px; }

/* Text size (zoom keeps px-based layout proportional) */
html.a11y-size-1 body { zoom: 1.15; }
html.a11y-size-2 body { zoom: 1.3; }
html.a11y-size-3 body { zoom: 1.5; }

/* Readable font + spacing (WCAG 1.4.12) */
html.a11y-font body, html.a11y-font body * { font-family: 'Atkinson Hyperlegible', Verdana, Tahoma, sans-serif !important; letter-spacing: .02em; word-spacing: .08em; }
html.a11y-font p, html.a11y-font li, html.a11y-font td, html.a11y-font small { line-height: 1.7 !important; }
html.a11y-font i[class*="fa-"] { font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands" !important; letter-spacing: 0; }

/* Underlined links */
html.a11y-links a:not(.btn):not([class*="nav"]) { text-decoration: underline !important; text-underline-offset: 3px; }

/* High contrast */
html.a11y-contrast { --muted: #1f2937; --line: #111827; }
html.a11y-contrast body { background: #fff !important; color: #000 !important; }
html.a11y-contrast .card, html.a11y-contrast .smsx-b.is-in, html.a11y-contrast .alert, html.a11y-contrast input, html.a11y-contrast select, html.a11y-contrast textarea { border: 2px solid #000 !important; color: #000 !important; background: #fff !important; }
html.a11y-contrast a { color: #0000c8 !important; }
html.a11y-contrast .muted, html.a11y-contrast small, html.a11y-contrast .hint { color: #111 !important; opacity: 1 !important; }
html.a11y-contrast .btn.primary, html.a11y-contrast button.primary { background: #000 !important; color: #fff !important; border: 2px solid #000 !important; }
html.a11y-contrast .sidebar { background: #000 !important; }
html.a11y-contrast .sidebar a, html.a11y-contrast .sidebar span, html.a11y-contrast .sidebar i { color: #fff !important; }
html.a11y-contrast .smsx-b:not(.is-in), html.a11y-contrast .mchat-row.me .mchat-bub { background: #000 !important; color: #fff !important; }
html.a11y-contrast img { filter: contrast(1.1); }

/* Stop animations (WCAG 2.2.2 / 2.3.3) */
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Big cursor */
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 10-7 1.5L9.5 21z' fill='%23000' stroke='%23fff' stroke-width='1.4'/%3E%3C/svg%3E") 4 2, auto !important; }

/* Visual alert for deaf / hard-of-hearing users */
html.a11y-flash body::after { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 100000; box-shadow: inset 0 0 0 8px #f59e0b; animation: a11yFlash 1.2s ease-out; }
@keyframes a11yFlash { 0%, 40% { opacity: 1; } 100% { opacity: 0; } }
.a11y-toasts { position: fixed; top: 14px; left: 50%; transform: translateX(-50%); z-index: 100002; display: grid; gap: 8px; width: min(420px, calc(100vw - 24px)); pointer-events: none; }
.a11y-toast { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 14px; background: #0f172a; color: #fff; font-weight: 700; box-shadow: 0 14px 34px rgba(0,0,0,.35); border-left: 6px solid #f59e0b; animation: a11yIn .25s ease-out; transition: opacity .35s, transform .35s; }
.a11y-toast.is-msg { border-left-color: #22c55e; }
.a11y-toast.is-alert { border-left-color: #ef4444; }
.a11y-toast i { font-size: 20px; }
.a11y-toast.is-out { opacity: 0; transform: translateY(-8px); }
@keyframes a11yIn { from { opacity: 0; transform: translateY(-10px); } }

/* Floating button + panel */
.netstat-fab { position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 52px; height: 52px; border-radius: 50%; border: 0; background: #fff; color: #16a34a; font-size: 22px; cursor: pointer; box-shadow: 0 10px 28px rgba(15,23,42,.28); display: grid; place-items: center; }
.netstat-fab:hover { transform: translateY(-1px); }
.netstat-dlg { position: fixed; inset: 0; z-index: 80; background: rgba(15,23,42,.35); display: grid; place-items: center; padding: 18px; }
.netstat-dlg[hidden] { display: none; }
.netstat-card { width: min(640px, 100%); background: #fff; color: #0f172a; border-radius: 18px; box-shadow: 0 24px 60px rgba(15,23,42,.28); padding: 16px 16px 12px; font-family: "Plus Jakarta Sans", system-ui, sans-serif; }
.netstat-card.is-inline { width: 100%; box-shadow: none; padding: 0; }
.netstat-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.netstat-h h2 { margin: 0; font-size: 18px; display: flex; align-items: center; gap: 8px; }
.netstat-h h2 i { color: #16a34a; }
.netstat-x { border: 0; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; color: #334155; width: 40px; height: 40px; }
.netstat-line { margin: 8px 0 12px; color: #64748b; font-size: 14px; }
.netstat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.netstat-grid article { background: #f1f5f9; border-radius: 14px; padding: 12px; min-height: 92px; }
.netstat-grid small { display: block; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .04em; margin-bottom: 6px; }
.netstat-grid b { display: block; font-size: 18px; }
.netstat-grid span { display: block; margin-top: 4px; color: #64748b; font-size: 12px; line-height: 1.35; }
.netstat-graph { margin-top: 12px; background: #f8fafc; border-radius: 14px; padding: 10px; }
.netstat-graph-h { display: flex; justify-content: space-between; gap: 8px; color: #64748b; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.netstat-graph-h i { display: inline-block; width: 18px; height: 0; border-top: 3px solid #16a34a; margin: 0 4px 0 8px; vertical-align: middle; }
.netstat-graph-h i.is-srv { border-top-style: dashed; border-top-color: #2563eb; }
.netstat-graph canvas { width: 100%; height: 72px; display: block; margin-top: 6px; }
@media (max-width: 720px) { .netstat-grid { grid-template-columns: 1fr; } .netstat-fab { right: 12px; bottom: 16px; } }
.a11y-fab { position: fixed; left: 14px; bottom: 16px; z-index: 9990; width: 48px; height: 48px; border-radius: 50%; border: 3px solid #fff; background: #1d4ed8; color: #fff; font-size: 24px; cursor: pointer; box-shadow: 0 10px 26px rgba(29,78,216,.45); display: grid; place-items: center; }
.a11y-fab:hover { background: #1e40af; transform: scale(1.05); }
body.mine-body .a11y-fab { bottom: 86px; }
@media print { .a11y-fab, .a11y-panel, .a11y-toasts, .a11y-skip { display: none !important; } }
.a11y-panel { position: fixed; left: 14px; bottom: 74px; z-index: 9991; width: min(380px, calc(100vw - 28px)); max-height: calc(100vh - 100px); overflow-y: auto; background: #fff; color: #0f172a; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.35); border: 2px solid #1d4ed8; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: 15px; }
body.mine-body .a11y-panel { bottom: 144px; }
[data-theme="dark"] .a11y-panel { background: #0f172a; color: #f1f5f9; }
.a11y-panel header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 6px; }
.a11y-panel h2 { margin: 0; font-size: 1.1rem; display: flex; gap: 8px; align-items: center; color: inherit; }
.a11y-panel h3 { margin: 12px 16px 6px; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; opacity: .75; }
.a11y-sub { margin: 0 16px 8px; font-size: .85rem; opacity: .8; }
.a11y-x { border: 0; background: transparent; color: inherit; width: 40px; height: 40px; border-radius: 50%; font-size: 20px; cursor: pointer; }
.a11y-size { display: flex; align-items: center; gap: 8px; margin: 6px 16px; padding: 8px 10px; border-radius: 12px; background: rgba(29,78,216,.08); }
.a11y-size span { flex: 1; font-weight: 700; }
.a11y-size button { width: 44px; height: 40px; border-radius: 10px; border: 2px solid #1d4ed8; background: transparent; color: inherit; font-weight: 800; font-size: 16px; cursor: pointer; }
.a11y-size output { min-width: 48px; text-align: center; font-weight: 800; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 16px; }
.a11y-opt { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 76px; padding: 10px 8px; border-radius: 14px; border: 2px solid rgba(100,116,139,.35); background: transparent; color: inherit; font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; text-align: center; }
.a11y-opt i { font-size: 20px; color: #1d4ed8; }
[data-theme="dark"] .a11y-opt i { color: #93c5fd; }
.a11y-opt.on, .a11y-opt[aria-pressed="true"] { border-color: #1d4ed8; background: #1d4ed8; color: #fff; }
.a11y-opt.on i, .a11y-opt[aria-pressed="true"] i { color: #fff; }
.a11y-panel footer { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 14px 16px 16px; margin-top: 10px; border-top: 1px solid rgba(100,116,139,.3); font-size: .82rem; }
.a11y-panel footer a { color: #1d4ed8; font-weight: 700; }
[data-theme="dark"] .a11y-panel footer a { color: #93c5fd; }
.a11y-panel footer small { width: 100%; opacity: .7; }
.a11y-reset { border: 2px solid rgba(100,116,139,.4); background: transparent; color: inherit; border-radius: 999px; padding: 6px 12px; font-weight: 700; cursor: pointer; }
@media (forced-colors: active) { .a11y-fab, .a11y-opt, .a11y-toast { border: 2px solid CanvasText; } }

/* Accessibility statement page */
.a11y-page { margin: 0; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; background: #f8fafc; color: #0f172a; line-height: 1.6; }
[data-theme="dark"] .a11y-page { background: #0b1220; color: #e2e8f0; }
.a11y-page-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 20px; background: #1d4ed8; color: #fff; flex-wrap: wrap; }
.a11y-page-h a { color: #fff; font-weight: 700; text-decoration: none; }
.a11y-page-h nav { display: flex; gap: 14px; }
.a11y-page-h nav a[aria-current] { text-decoration: underline; text-underline-offset: 4px; }
.a11y-page-brand { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; }
.a11y-page main { max-width: 820px; margin: 0 auto; padding: 28px 20px 80px; }
.a11y-page h1 { font-size: 1.8rem; margin: 0 0 8px; display: flex; gap: 10px; align-items: center; }
.a11y-page h1 i { color: #1d4ed8; }
.a11y-page h2 { font-size: 1.2rem; margin: 28px 0 8px; }
.a11y-page-lead { font-size: 1.08rem; }
.a11y-badges { list-style: none; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.a11y-badges li { padding: 6px 12px; border-radius: 999px; background: #dbeafe; color: #1e3a8a; font-weight: 800; font-size: .85rem; }
.a11y-feats { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.a11y-feats li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid #cbd5e1; }
[data-theme="dark"] .a11y-feats li { background: #111a2e; border-color: #334155; }
.a11y-feats i { color: #1d4ed8; font-size: 20px; margin-top: 2px; }
.a11y-keys { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; }
.a11y-keys dt { font-weight: 700; }
.a11y-keys dd { margin: 0; }
kbd { display: inline-block; padding: 1px 7px; border: 1px solid #94a3b8; border-bottom-width: 3px; border-radius: 6px; font: 700 .85em ui-monospace, monospace; background: #fff; color: #0f172a; }
.a11y-contacts { display: flex; gap: 10px; flex-wrap: wrap; }
@media (min-width: 961px) { body:has(#sidebar) .a11y-fab { bottom: 92px; } body:has(#sidebar) .a11y-panel { bottom: 150px; } }
.a11y-fab[hidden], [data-a11y-switch][hidden] { display: none !important; }
a.a11y-opt { text-decoration: none; color: inherit; }
.icon-btn.a11y-top[aria-pressed="true"] { background: #1d4ed8; color: #fff; }
.icon-btn.a11y-top.is-off { opacity: .8; }
.set-radio { border: 0; padding: 0; margin: 0 0 10px; display: grid; gap: 8px; }
.set-radio legend { font-weight: 800; margin-bottom: 6px; }
.set-radio label span { display: grid; }
.dev-caps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.dev-caps li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(100,116,139,.25); font-size: .88rem; }
.dev-caps i { color: #1d4ed8; font-size: 18px; margin-top: 2px; width: 20px; text-align: center; }
.dev-steps { padding-left: 20px; display: grid; gap: 6px; }
html.dev-saver *, html.dev-saver *::before, html.dev-saver *::after { animation-duration: 0s !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; }
html.dev-saver .auth-scene .orb, html.dev-savedata .auth-scene .orb { display: none; }
/* My device page */
.dev-page main { max-width: 1180px; }
.dev-hero { margin: 14px 0 6px; padding: 16px; border-radius: 18px; background: linear-gradient(135deg, #1d4ed8, #123a6b); color: #fff; }
.dev-sum { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 0 0 12px; }
.dev-sum > div { background: rgba(255,255,255,.12); border-radius: 12px; padding: 8px 12px; }
.dev-sum dt { font-size: .75rem; opacity: .85; text-transform: uppercase; letter-spacing: .04em; }
.dev-sum dd { margin: 2px 0 0; font-weight: 800; }
.dev-hero .btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.dev-hero .btn.primary { background: #fff; color: #123a6b; }
.dev-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.dev-jump { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.dev-jump a { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border-radius: 999px; background: #dbeafe; color: #1e3a8a; font-weight: 700; font-size: .85rem; text-decoration: none; }
[data-theme="dark"] .dev-jump a { background: #1e293b; color: #bfdbfe; }
.dev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 14px; }
.dev-card { background: #fff; border: 1px solid #cbd5e1; border-radius: 18px; padding: 16px 18px; scroll-margin-top: 14px; }
[data-theme="dark"] .dev-card { background: #111a2e; border-color: #334155; }
.dev-card h2 { margin: 0 0 10px; font-size: 1.1rem; display: flex; gap: 10px; align-items: center; }
.dev-card h2 i { color: #1d4ed8; width: 22px; text-align: center; }
.dev-card h3 { font-size: 1rem; margin: 16px 0 6px; }
.dev-wide { grid-column: 1 / -1; }
.dev-kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0; font-size: .92rem; }
.dev-kv dt { color: #64748b; }
.dev-kv dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.dev-perm { display: inline-flex; gap: 6px; align-items: center; padding: 4px 10px; border-radius: 999px; font-weight: 700; font-size: .85rem; background: #f1f5f9; color: #334155; margin: 0 0 6px; }
.dev-perm.is-granted { background: #dcfce7; color: #166534; }
.dev-perm.is-denied { background: #fee2e2; color: #991b1b; border-radius: 12px; }
.dev-perm.is-prompt { background: #fef9c3; color: #854d0e; }
.dev-out { min-height: 1.2em; font-weight: 600; margin: 4px 0; overflow-wrap: anywhere; }
.dev-video { width: 100%; max-height: 300px; border-radius: 14px; background: #000; object-fit: cover; margin: 6px 0; }
.dev-meter { height: 14px; border-radius: 999px; background: #e2e8f0; overflow: hidden; margin: 8px 0; }
.dev-meter span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #22c55e, #eab308, #ef4444); transition: width .08s; }
.dev-progress { height: 8px; border-radius: 999px; background: #e2e8f0; overflow: hidden; margin: 8px 0; }
.dev-progress span { display: block; height: 100%; width: 0; background: #1d4ed8; transition: width .2s; }
.dev-text { width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; line-height: 1.6; padding: 12px; border-radius: 12px; border: 2px solid #cbd5e1; background: inherit; color: inherit; resize: vertical; }
.dev-field { display: grid; gap: 4px; margin: 6px 0; font-weight: 600; font-size: .9rem; }
.dev-field input, .dev-field select { font: inherit; padding: 8px 10px; border-radius: 10px; border: 1px solid #cbd5e1; background: inherit; color: inherit; }
.dev-inline { display: inline-grid; margin: 0; }
.dev-ics { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.dev-pad { padding: 22px 14px; border: 2px dashed #94a3b8; border-radius: 14px; text-align: center; font-weight: 700; cursor: pointer; user-select: none; touch-action: none; margin: 8px 0; }
.dev-pad:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 2px; }
.dev-log { margin: 0; padding-left: 20px; font-size: .85rem; color: #475569; }
[data-theme="dark"] .dev-log { color: #94a3b8; }
.dev-page .hint { font-size: .85rem; color: #64748b; margin: 6px 0; }
.dev-page label.btn { cursor: pointer; }
.dev-page label.btn:focus-within { outline: 3px solid #1d4ed8; outline-offset: 2px; }
@media print { .dev-page .dev-jump, .dev-page .dev-actions, .dev-page .a11y-page-h nav { display: none !important; } .dev-grid { display: block; } .dev-card { break-inside: avoid; margin-bottom: 10px; } }
.dev-page a.btn { text-decoration: none; }
html.dev-listening [data-voice-cmd] { background: #dc2626 !important; color: #fff !important; animation: devPulse 1s ease-in-out infinite; }
@keyframes devPulse { 50% { box-shadow: 0 0 0 8px rgba(220,38,38,.25); } }
.bt-print-row { text-align: right; margin: 0 0 10px; }
.dev-tag { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dev-tag code, .dev-code { font-family: ui-monospace, Consolas, monospace; }
.dev-tag-hit { color: #166534; font-size: 1.02rem; }
[data-theme="dark"] .dev-tag-hit { color: #86efac; }
.dev-picks { list-style: none; padding: 0; margin: 6px 0; display: grid; gap: 6px; max-height: 320px; overflow-y: auto; }
.dev-pick { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; width: 100%; text-align: left; padding: 8px 10px; border-radius: 10px; border: 1px solid #cbd5e1; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.dev-pick:hover, .dev-pick:focus-visible { border-color: #1d4ed8; background: rgba(29,78,216,.06); }
.dev-pick small { color: #64748b; }
.dev-smsq .dev-pick span { flex-basis: 100%; font-size: .85rem; color: #475569; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dev-smsq li.is-ok .dev-pick { border-color: #16a34a; background: #f0fdf4; }
.dev-smsq li.is-bad .dev-pick { border-color: #dc2626; background: #fef2f2; }
.dev-iot { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin: 8px 0 12px; }
.dev-iot-row { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: start; padding: 12px; border-radius: 14px; border: 1px solid #cbd5e1; }
.dev-iot-row > i { font-size: 22px; color: #1d4ed8; margin-top: 2px; text-align: center; }
.dev-iot-row.is-stale { border-color: #f59e0b; background: rgba(245,158,11,.06); }
.dev-iot-last { font-weight: 800; margin: 2px 0; }
.dev-iot-last small, .dev-iot-row small { color: #64748b; font-weight: 600; }
.dev-spark { display: flex; align-items: flex-end; gap: 2px; height: 30px; margin-top: 6px; }
.dev-spark span { flex: 1; max-width: 10px; height: calc(var(--v) * 1%); min-height: 3px; background: #60a5fa; border-radius: 2px 2px 0 0; }
.dev-code { white-space: pre-wrap; word-break: break-all; background: #0f172a; color: #e2e8f0; padding: 12px; border-radius: 12px; font-size: .82rem; }
.dev-taglink { border-top: 1px dashed #cbd5e1; margin-top: 8px; padding-top: 8px; }
/* My device inside the staff layout + tidy bars */
.dev-page-in .hint { font-size: .85rem; color: #64748b; margin: 6px 0; }
.dev-page-in label.btn { cursor: pointer; }
.dev-page-in label.btn:focus-within { outline: 3px solid #1d4ed8; outline-offset: 2px; }
.dev-page-in a.btn { text-decoration: none; }
.dev-page-in .dev-title { font-size: 1.6rem; margin: 0 0 6px; display: flex; gap: 10px; align-items: center; }
.dev-page-in .dev-title i { color: #1d4ed8; }
.main .dev-page-in .a11y-page-lead { color: var(--muted); margin: 0 0 6px; }
.dev-hero kbd { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.5); font-size: .72em; }
.dev-bar { position: sticky; top: 0; z-index: 30; }
.dev-bar-nav { display: flex; align-items: center; gap: 12px; }
.dev-bar-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.4); }
.dev-bar-btn:hover, .dev-bar-btn:focus-visible { background: rgba(255,255,255,.28); }
@media (max-width: 520px) { .dev-bar-btn span { display: none; } }
.dev-jump a.dev-jump-adv { background: #1d4ed8; color: #fff; }
.dev-adv { margin: 22px 0 10px; border: 1px solid #cbd5e1; border-radius: 18px; background: rgba(255,255,255,.6); }
[data-theme="dark"] .dev-adv { border-color: #334155; background: rgba(17,26,46,.6); }
.dev-adv > summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 14px 18px; cursor: pointer; border-radius: 18px; }
.dev-adv > summary::-webkit-details-marker { display: none; }
.dev-adv > summary:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 2px; }
.dev-adv > summary b { display: block; font-size: 1.05rem; }
.dev-adv > summary small { display: block; color: #64748b; font-size: .85rem; }
.dev-adv-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #dbeafe; color: #1d4ed8; flex: none; }
.dev-adv-chev { margin-left: auto; transition: transform .2s; color: #64748b; }
.dev-adv[open] .dev-adv-chev { transform: rotate(180deg); }
.dev-adv > .dev-jump, .dev-adv > .dev-grid { margin: 0 14px 14px; }
/* Notification sound settings */
.snd { display: grid; gap: 12px; }
.snd-sw { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.snd-sw .chk { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; }
.snd-sw i { color: #1d4ed8; width: 16px; text-align: center; }
.snd-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.snd-line > label { font-weight: 700; min-width: 170px; display: inline-flex; gap: 8px; align-items: center; }
.snd-line > label i { color: #1d4ed8; }
.snd-line input[type=range] { flex: 1 1 180px; accent-color: #1d4ed8; min-height: 28px; }
.snd-line output { font-weight: 800; min-width: 3.2em; text-align: right; }
.snd select { font: inherit; padding: 7px 10px; border-radius: 10px; border: 1px solid #cbd5e1; background: var(--card); color: inherit; min-height: 38px; }
[data-theme="dark"] .snd select { background: #0b1220; border-color: #334155; }
.snd-line small { color: #b45309; font-weight: 700; }
.snd-kinds { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.snd-kinds li { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(170px, 1.4fr) auto; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; }
[data-theme="dark"] .snd-kinds li { border-color: #334155; }
.snd-kinds label { font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }
.snd-kinds label i { color: #1d4ed8; width: 16px; text-align: center; }
@media (max-width: 560px) { .snd-kinds li { grid-template-columns: 1fr auto; } .snd-kinds label { grid-column: 1 / -1; } }
.snd-up { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.snd-up label.btn { cursor: pointer; }
.snd-up label.btn:focus-within { outline: 3px solid #1d4ed8; outline-offset: 2px; }
.snd-up .hint { flex: 1 1 240px; color: #64748b; font-size: .82rem; }
.snd-mine { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.snd-mine:empty { display: none; }
.snd-mine li { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; background: #f1f5f9; }
[data-theme="dark"] .snd-mine li { background: #1e293b; }
.snd-mine li span { font-weight: 700; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.snd-mine li small { color: #64748b; }
.snd-msg { margin: 0; font-weight: 700; color: #166534; min-height: 1em; }
.snd p { margin: 0; }
.snd-dlg { width: min(620px, calc(100vw - 24px)); max-height: calc(100vh - 40px); border: 0; border-radius: 20px; padding: 0; background: var(--card); color: var(--text); box-shadow: 0 30px 80px rgba(15,23,42,.35); }
[data-theme="dark"] .snd-dlg { background: #111a2e; color: #e2e8f0; }
.snd-dlg::backdrop { background: rgba(15,23,42,.5); }
.snd-dlg header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: inherit; z-index: 1; }
.snd-dlg header h2 { margin: 0; font-size: 1.15rem; display: flex; gap: 10px; align-items: center; }
.snd-dlg header h2 i { color: #1d4ed8; }
.snd-dlg > div { padding: 16px 18px 18px; }
.snd-inline { margin: 10px 0; padding: 12px; border-radius: 14px; background: #f8fafc; border: 1px solid var(--line); }
[data-theme="dark"] .snd-inline { background: #0b1220; border-color: #334155; }
/* More menu: device group buttons */
button.more-item { width: 100%; border: 0; background: transparent; font-family: inherit; color: inherit; text-align: left; cursor: pointer; }
button.more-item small, button.more-item kbd { font-size: .72rem; color: var(--muted); }
/* Settings: essentials first, advanced on request */
.set-page:not(.show-adv) [data-adv] { display: none !important; }
.set-adv-toggle { border-style: dashed !important; }
.set-page.show-adv .set-adv-toggle { background: #1e293b; color: #fff; }
.set-adv-note { margin: 4px 0 12px; color: var(--muted); font-size: .88rem; display: flex; gap: 8px; align-items: center; }

.prop-who { list-style: none; margin: 2px 0 8px; padding: 0; display: grid; gap: 4px; }
.prop-who li { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; font-size: 12px; }
.prop-who a { color: inherit; text-decoration: none; font-weight: 800; }
.prop-who a b { font-size: 14px; letter-spacing: -.02em; }
.prop-who a.warn, .prop-who a.warn b { color: var(--red); }
.prop-who a.soon, .prop-who a.soon b { color: #b45309; }
.prop-who span { color: var(--muted); font-weight: 650; }

.auth-secure { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.auth-secure li {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 800; color: #1e3a8a;
  background: #eff6ff; border: 1px solid #dbeafe; border-radius: 999px; padding: 5px 8px;
}
.auth-secure i { font-size: 11px; }

.check-got {
  display: flex; align-items: center; gap: 8px; margin: 8px 0 0;
  padding: 10px 12px; border-radius: 12px; background: #ecfdf5; color: #047857;
  border: 1px solid #a7f3d0; font-weight: 800;
}
.check-scan video { width: 100%; border-radius: 14px; background: #0f172a; }

.wm-login { border-radius: 20px; box-shadow: 0 16px 40px rgba(15,23,42,.06); }
.wm-stay {
  display: flex; gap: 8px; align-items: flex-start; margin: 0 0 10px;
  padding: 10px 12px; border-radius: 12px; background: #eff6ff; color: #1e3a8a;
  font-size: 13px; font-weight: 700;
}

.set-page .card, .set-block { border-radius: 20px; box-shadow: 0 10px 28px rgba(15,23,42,.05); }
.set-form input, .set-form select, .set-form textarea { border-radius: 12px; }
.set-tabs .pay-tab { border-radius: 999px; }

.dash-live-chat, .sre-live-msg {
  display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit;
  margin: 12px 0; padding: 12px 14px; border-radius: 16px;
  background: #fff; border: 1px solid #bfdbfe;
  box-shadow: 0 10px 28px rgba(37,99,235,.12);
}
.dash-live-chat[hidden], .sre-live-msg[hidden] { display: none; }
.sre-live-msg {
  position: fixed; right: 18px; bottom: 18px; z-index: 80; width: min(360px, calc(100vw - 24px));
  margin: 0; animation: authRise .35s ease both;
}
.dash-live-chat > i, .sre-live-msg > i {
  width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  background: #2563eb; color: #fff; flex: none;
}
.dash-live-chat span, .sre-live-msg span { min-width: 0; display: grid; }
.dash-live-chat b, .sre-live-msg b { font-size: 14px; }
.dash-live-chat small, .sre-live-msg small {
  color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dash-live-chat em {
  margin-left: auto; font-style: normal; font-size: 11px; font-weight: 800; color: #1d4ed8;
  background: #eff6ff; border-radius: 999px; padding: 4px 8px;
}

.person-card { box-shadow: 0 8px 22px rgba(15,23,42,.04); transition: transform .15s ease, box-shadow .15s ease; }
.person-card:hover { box-shadow: 0 14px 30px rgba(15,23,42,.08); }
.person-face img, .person-face .prof-avatar { box-shadow: 0 0 0 3px #eff6ff; }
.person-name strong { letter-spacing: -.02em; }
html[data-theme="dark"] .dash-live-chat, html[data-theme="dark"] .sre-live-msg { background: #111827; border-color: #1e3a8a; }
html[data-theme="dark"] .auth-secure li { background: #172554; color: #dbeafe; border-color: #1e3a8a; }
html[data-theme="dark"] .wm-stay, html[data-theme="dark"] .check-got { background: #052e16; color: #bbf7d0; border-color: #166534; }
html[data-theme="dark"] .wm-stay { background: #172554; color: #dbeafe; border-color: #1e3a8a; }

/* Installed app shell — Windows / Edge / Android (Samsung) / iOS
   IMPORTANT (Android): never put overscroll-behavior:none + overflow lock on
   both html and body — Chrome/Samsung PWA then cannot scroll the page. */
html.is-app {
  -webkit-tap-highlight-color: transparent;
  min-height: 100%;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: auto;
  touch-action: pan-x pan-y;
}
html.is-app body {
  min-height: 100%;
  height: auto;
  overflow-x: hidden;
  overflow-y: visible;
  overscroll-behavior-y: auto;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
}
html.is-app .wrap,
html.is-app .main {
  overflow: visible;
  touch-action: pan-y;
}
html.is-app .sidebar {
  padding-top: calc(18px + max(env(safe-area-inset-top, 0px), env(titlebar-area-height, 0px), 12px));
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}
html.is-app .topbar {
  padding-top: calc(10px + max(env(safe-area-inset-top, 0px), env(titlebar-area-height, 0px), 8px));
  padding-left: max(16px, env(titlebar-area-x, 0px));
  padding-right: max(16px, calc(100% - env(titlebar-area-width, 100%) - env(titlebar-area-x, 0px)));
  min-height: max(52px, env(titlebar-area-height, 0px));
}
html.is-app .side-close { top: calc(10px + max(env(safe-area-inset-top, 0px), 16px)); }
html.is-app .main {
  padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
}
/* Windows title-bar drag only (desktop overlay) — never on phones */
@media (pointer: fine) {
  html.is-app-wco .topbar {
    app-region: drag;
    -webkit-app-region: drag;
  }
  html.is-app-wco .topbar a,
  html.is-app-wco .topbar button,
  html.is-app-wco .topbar input,
  html.is-app-wco .topbar select,
  html.is-app-wco .topbar label,
  html.is-app-wco .topbar .icon-btn,
  html.is-app-wco .topbar .more-item {
    app-region: no-drag;
    -webkit-app-region: no-drag;
  }
}
html.is-app .sre-boot { border-radius: 0; }
/* Phone / Samsung: native full-screen feel without trapping scroll */
@media (max-width: 900px) {
  html.is-app {
    position: static;
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
  }
  html.is-app body {
    position: static;
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important; /* do not dual-scroll with html on Android */
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
  }
  html.is-app .wrap {
    min-height: 100%;
    height: auto;
    overflow: visible !important;
  }
  html.is-app .topbar {
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
  }
  html.is-app .sidebar {
    box-shadow: 8px 0 40px rgba(0,0,0,.35);
  }
  /* Desk list must scroll with the page on phones, not a locked 100dvh shell */
  body.is-desk-page:not(:has(.lc-chat.is-open)) .lc-chat {
    height: auto !important;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  body.is-desk-page:not(:has(.lc-chat.is-open)) .lc-side {
    max-height: none;
    min-height: 0;
  }
  body.is-desk-page:not(:has(.lc-chat.is-open)) .lc-list {
    max-height: none;
    overflow: visible;
  }
}

.cam-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.cam-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; color: inherit; }
.cam-card:hover { border-color: #bfdbfe; }
.cam-cover { height: 160px; background: #0b1220; display: grid; place-items: center; color: #64748b; font-size: 28px; }
.cam-cover img { width: 100%; height: 160px; object-fit: cover; display: block; }
.cam-card-b { display: grid; gap: 4px; padding: 14px 16px 16px; }
.cam-card-b strong { color: var(--text); }
.cam-card-b span, .cam-card-b small { color: var(--muted); }
.cam-note p { margin: 0 0 8px; }
.cam-note p:last-child { margin: 0; }
.cam-wall { display: grid; gap: 14px; }
.cam-stage { background: #0b1220; border-radius: 14px; min-height: 180px; display: grid; place-items: center; overflow: hidden; color: #94a3b8; }
.cam-stage img, .cam-stage video, .cam-stage iframe.cam-share { width: 100%; max-height: 460px; object-fit: contain; background: #0b1220; display: block; }
.cam-stage iframe.cam-share { height: 420px; border: 0; max-height: none; }
.cam-when { margin: 8px 0 0; }
.cam-still { margin-top: 10px; }
.cam-still summary { cursor: pointer; font-weight: 700; color: var(--muted); }
.cam-still img { width: 100%; max-height: 280px; object-fit: contain; background: #0b1220; border-radius: 12px; margin-top: 8px; }
.cam-live-fail { color: #b91c1c; padding: 18px; text-align: center; }
.cam-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin-top: 12px; }
.cam-form label { flex: 1 1 240px; display: grid; gap: 4px; font-size: 13px; font-weight: 600; }
.cam-add { display: grid; gap: 12px; }
.appx-stats { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 800px) { .appx-stats { grid-template-columns: 1fr; } }
.check-who { font-size: 1.35rem; font-weight: 800; margin: 8px 0 12px; letter-spacing: -.02em; }
.check-view { position: relative; background: #0f172a; border-radius: 16px; overflow: hidden; }
.check-view video { width: 100%; height: min(58vh, 420px); object-fit: cover; display: block; background: #0f172a; }
.check-reticle { position: absolute; inset: 18% 14%; border: 3px solid rgba(255,255,255,.92); border-radius: 18px; box-shadow: 0 0 0 2000px rgba(15,23,42,.28); pointer-events: none; }
.inv-codes, .doc-codes {
  display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center;
  border: 1px dashed #1e3a8a; border-radius: 12px; padding: 12px 14px; margin: 8px 0 16px;
  background: #fff; text-align: left;
}
.doc-codes.is-no-qr, .lease-doc .doc-codes.is-no-qr { grid-template-columns: 1fr; }
.doc-codes.is-contract-foot {
  display: grid; grid-template-columns: 72px 1fr; gap: 10px; align-items: center;
  margin: 20px 0 0; padding: 8px 10px; max-width: 380px;
  border: 1px solid #e2e8f0; border-radius: 10px; background: #fafafa;
  break-inside: avoid; page-break-inside: avoid;
}
.doc-codes.is-contract-foot .inv-qr-wrap.is-mini .inv-qr,
.doc-codes.is-contract-foot .inv-qr-wrap.is-mini .inv-qr img,
.doc-codes.is-contract-foot .inv-qr-wrap.is-mini .inv-qr canvas {
  width: 64px !important; height: 64px !important;
}
.doc-codes.is-contract-foot .inv-barcode { max-width: 240px; height: auto; display: block; margin: 0 0 2px; }
.doc-codes.is-contract-foot .inv-stamp { font-size: 10px; margin: 0; color: #475569; font-weight: 600; }
.doc-codes.is-contract-foot .inv-check-url { display: none; }
.lease-doc .inv-codes { grid-template-columns: 132px 1fr; break-inside: avoid; page-break-inside: avoid; }
.lease-doc .doc-codes.is-contract-foot { justify-items: start; }
.inv-qr { width: 128px; height: 128px; background: #fff; }
.inv-qr img, .inv-qr canvas { width: 128px !important; height: 128px !important; }
.inv-qr-wrap small { display: block; text-align: center; font-size: 11px; color: #1e3a8a; font-weight: 700; margin-top: 4px; }
.inv-barcode { max-width: 100%; height: auto; }
.inv-stamp, .inv-check-url { margin: 4px 0; font-size: 12px; word-break: break-all; }
@media print {
  .check-view, .check-scan, .row-acts, .check-got { display: none !important; }
  .lease-doc .inv-codes { margin: 6px 0 10px; padding: 8px 10px; }
}
@media (max-width: 560px) {
  .inv-codes, .doc-codes, .lease-doc .inv-codes { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .check-view video { height: min(52vh, 360px); }
}

html { scroll-behavior: smooth; }
.btn, .chip, .people-tabs a, .lc-tabs a, .mine-tabs a, .mine-side-nav a, .cal-seg a, .nav-sec {
  transition: background .26s ease, color .26s ease, box-shadow .26s ease, border-color .26s ease, transform .16s ease;
}
.btn:active, .chip:active, .people-tabs a:active, .lc-tabs a:active { transform: scale(.98); }
@keyframes srePane {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.set-pane-in { animation: srePane .34s cubic-bezier(.22,1,.36,1); }
.set-console {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap;
  margin: 0 0 18px; padding: 20px 22px; border-radius: 20px;
  background: #0f172a; color: #fff;
}
.set-kicker { margin: 0 0 6px; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #93c5fd; }
.set-console h1 { margin: 0 0 4px; font-size: 26px; letter-spacing: -.03em; }
.set-console-copy p { margin: 0; color: #cbd5e1; font-size: 14px; max-width: 52ch; }
.set-health { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.set-health li {
  min-width: 92px; padding: 8px 12px; border-radius: 12px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08);
}
.set-health span { display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #94a3b8; }
.set-health b { font-size: 13px; }
.set-health .is-ok { border-color: rgba(52,211,153,.35); }
.set-health .is-ok b { color: #6ee7b7; }
.set-health .is-off { border-color: rgba(252,165,165,.35); }
.set-health .is-off b { color: #fecaca; }
.set-nav-wrap { margin-bottom: 8px; }
.set-tabs { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.set-adv-toggle {
  appearance: none; border: 1px dashed #cbd5e1; background: #fff; color: #475569;
  font: inherit; font-weight: 700; font-size: 13px; padding: 10px 14px; border-radius: 999px; cursor: pointer;
}
.set-page.show-adv .set-adv-toggle { background: #0f172a; color: #fff; border-style: solid; border-color: #0f172a; }
.set-hero { display: none; }
.tp-vital {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
  margin: 14px 0 18px;
}
.tp-vital a {
  display: grid; gap: 2px; padding: 14px 14px 12px; border-radius: 16px;
  background: #fff; border: 1px solid var(--line); color: inherit; text-decoration: none;
  box-shadow: 0 8px 20px rgba(15,23,42,.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tp-vital a:hover { transform: translateY(-1px); border-color: #bfdbfe; box-shadow: 0 12px 24px rgba(37,99,235,.1); }
.tp-vital i { color: #2563eb; margin-bottom: 6px; }
.tp-vital span { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.tp-vital b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tp-dock { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tp-sup-form { margin: 0; }
.nav-soon {
  margin-left: auto; font-style: normal; font-size: 9px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; padding: 2px 6px; border-radius: 999px;
  background: rgba(245,158,11,.18); color: #fbbf24;
}
.soon-page { position: relative; }
.soon-banner {
  margin: 0 0 16px; padding: 18px 20px; border-radius: 18px;
  background: linear-gradient(135deg, #0f172a, #1e3a8a); color: #fff;
}
.soon-banner h1 { margin: 8px 0 4px; font-size: 22px; }
.soon-banner p { margin: 0; color: #bfdbfe; max-width: 56ch; }
.soon-dim { opacity: .55; pointer-events: none; filter: grayscale(.25); }
.sup-banner {
  position: sticky; top: 0; z-index: 90;
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 10px 16px; background: #0f172a; color: #fff; border-bottom: 3px solid #f59e0b;
}
.sup-banner div { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; }
.sup-banner span { color: #cbd5e1; font-size: 13px; }
.mine-body.is-support .mine-shell { padding-top: 0; }
@media (max-width: 860px) {
  .tp-vital { grid-template-columns: 1fr 1fr; }
  .set-console { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.rep-money {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px; line-height: 1.25;
}
.rep-money b { font-size: 14px; color: #047857; font-weight: 800; }
.rep-money small { font-size: 10.5px; font-weight: 700; color: var(--muted); text-transform: none; max-width: 11rem; }
.rep-money.is-roll b { color: #b45309; }
.nice td.num .rep-money { margin-left: auto; }

.fin-holidays {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px;
}
.fin-holidays-lab {
  font-size: 12px; font-weight: 800; color: var(--muted); display: inline-flex; align-items: center; gap: 6px;
}
.fin-holidays .cal-hol-chip.is-past,
.cal-holidays .cal-hol-chip.is-past { opacity: .55; }
.cal-hol-chip.is-today {
  box-shadow: 0 0 0 2px rgba(234, 88, 12, .35);
  font-weight: 800;
}
.dash-holidays {
  margin: 0 0 14px; padding: 12px 14px; border-radius: 14px;
  background: linear-gradient(135deg, #fff7ed, #fffbeb 55%, #f8fafc);
  border: 1px solid #fed7aa;
}
html[data-theme="dark"] .dash-holidays {
  background: linear-gradient(135deg, rgba(154,52,18,.18), rgba(15,23,42,.5));
  border-color: #7c2d12;
}
.dash-holidays-h {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13px;
}
.dash-holidays-h i { color: #ea580c; }
.dash-holidays-h strong { flex: 1; }
.dash-holidays-h a { font-weight: 700; font-size: 12px; }
.dash-holidays-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fin-method-split {
  list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 0;
  border: 1px solid var(--line); border-radius: 12px; overflow: hidden;
}
.fin-method-split li {
  display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
  padding: 9px 12px; font-size: 13px; border-top: 1px solid var(--line); background: var(--card);
}
.fin-method-split li:first-child { border-top: 0; }
.fin-method-split li span { color: var(--muted); font-weight: 600; }
.fin-method-split li b { font-size: 13.5px; white-space: nowrap; }
.fin-method-split li.is-all { background: #f8fafc; }
.fin-method-split li.is-crdb { background: #ecfdf5; }
.fin-method-split li.is-crdb b { color: #047857; }
html[data-theme="dark"] .fin-method-split li.is-all { background: rgba(148,163,184,.06); }
html[data-theme="dark"] .fin-method-split li.is-crdb { background: rgba(16,185,129,.12); }

/* Tanzania holidays + season greetings */
.clock-hol {
  font-size: 12px; font-weight: 800; text-decoration: none; color: #9a3412;
  display: inline-flex; align-items: center; gap: 5px; max-width: 220px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.clock-hol i { flex: 0 0 auto; }
.clock-hol.tone-xmas { color: #15803d; }
.clock-hol.tone-year { color: #7c3aed; }
.clock-hol.tone-eid { color: #0f766e; }
.clock-hol.tone-holy { color: #b45309; }
a.clock-hol:hover { text-decoration: underline; }

.cal-holidays { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.cal-hol-chip {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
  background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412;
}
.cal-hol-chip.tone-xmas { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.cal-hol-chip.tone-year { background: #f5f3ff; border-color: #ddd6fe; color: #6d28d9; }
.cal-hol-chip.tone-eid { background: #ecfdf5; border-color: #99f6e4; color: #0f766e; }
.cal-hol-chip.tone-holy { background: #fffbeb; border-color: #fde68a; color: #b45309; }
.cal-hol-chip b { font-variant-numeric: tabular-nums; }
.cal-hol-leg { color: #ea580c; margin-right: 2px; }

.cal-cell.is-holiday { background: linear-gradient(180deg, #fff7ed 0%, transparent 55%); }
.cal-cell.is-holiday.tone-xmas { background: linear-gradient(180deg, #ecfdf5 0%, transparent 55%); }
.cal-cell.is-holiday.tone-year { background: linear-gradient(180deg, #f5f3ff 0%, transparent 55%); }
.cal-cell.is-holiday.tone-eid { background: linear-gradient(180deg, #f0fdfa 0%, transparent 55%); }
.cal-hol {
  display: flex; align-items: center; gap: 5px; margin: 2px 4px 6px;
  font-size: 11px; font-weight: 800; color: #c2410c; line-height: 1.2;
}
.cal-hol i { color: inherit; }
.cal-hol span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-mini-grid a.hol { position: relative; font-weight: 800; color: #c2410c; }
.cal-hol-dot {
  position: absolute; right: 2px; top: 2px; width: 5px; height: 5px;
  border-radius: 99px; background: #ea580c; display: block;
}

.season-pop {
  width: min(440px, calc(100vw - 24px)); border: 0; border-radius: 24px; padding: 0;
  background: var(--card); color: inherit; box-shadow: 0 30px 80px rgba(0,0,0,.35); overflow: hidden;
}
.season-pop::backdrop { background: rgba(15,23,42,.5); backdrop-filter: blur(3px); }
.season-pop-h {
  position: relative; display: flex; gap: 14px; align-items: center;
  padding: 22px 20px 16px; color: #fff;
  background: linear-gradient(135deg, #047857, #0ea5e9 55%, #f59e0b);
}
.season-pop.tier-month .season-pop-h { background: linear-gradient(135deg, #0f766e, #34d399); padding: 16px 18px; }
.season-pop.tier-quarter .season-pop-h { background: linear-gradient(135deg, #0369a1, #38bdf8 60%, #a3e635); }
.season-pop.tier-half .season-pop-h { background: linear-gradient(135deg, #b45309, #f59e0b 50%, #fde68a); color: #1c1917; }
.season-pop.tier-year .season-pop-h { background: linear-gradient(135deg, #4c1d95, #7c3aed 40%, #ec4899 80%, #f59e0b); padding: 26px 22px; }
.season-pop.tier-holiday .season-pop-h { background: linear-gradient(135deg, #9a3412, #ea580c 50%, #fbbf24); }
.season-pop-h b { display: block; font-size: 1.15rem; letter-spacing: -.02em; }
.season-pop.tier-year .season-pop-h b { font-size: 1.35rem; }
.season-pop.tier-month .season-pop-h b { font-size: 1.02rem; }
.season-pop-h small { display: block; opacity: .92; margin-top: 4px; line-height: 1.4; font-size: 13px; }
.season-ico {
  width: 52px; height: 52px; border-radius: 16px; flex: 0 0 auto;
  display: grid; place-items: center; background: rgba(255,255,255,.2); font-size: 22px;
}
.season-pop.tier-year .season-ico { width: 64px; height: 64px; font-size: 28px; border-radius: 20px; }
.season-pop.tier-month .season-ico { width: 42px; height: 42px; font-size: 18px; border-radius: 12px; }
.season-quote {
  margin: 0; padding: 16px 20px; font-size: 14.5px; line-height: 1.55; color: var(--text);
  border-left: 3px solid #34d399; margin: 14px 18px; background: #f8fafc; border-radius: 0 12px 12px 0;
}
html[data-theme="dark"] .season-quote { background: rgba(148,163,184,.08); }
.season-pop-f { display: flex; justify-content: flex-end; padding: 0 18px 16px; }
.season-bloom { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.season-bloom span {
  position: absolute; width: 10px; height: 10px; border-radius: 50% 0 50% 50%;
  background: rgba(255,255,255,.35); animation: seasonPetal 7s linear infinite;
}
.season-bloom span:nth-child(1) { left: 8%; top: -10px; animation-delay: 0s; }
.season-bloom span:nth-child(2) { left: 28%; top: -14px; width: 8px; height: 8px; animation-delay: 1.2s; }
.season-bloom span:nth-child(3) { left: 48%; top: -8px; animation-delay: 2.1s; background: rgba(253,224,71,.45); }
.season-bloom span:nth-child(4) { left: 62%; top: -12px; width: 12px; height: 12px; animation-delay: .6s; }
.season-bloom span:nth-child(5) { left: 78%; top: -10px; animation-delay: 3s; background: rgba(244,114,182,.4); }
.season-bloom span:nth-child(6) { left: 90%; top: -16px; width: 7px; height: 7px; animation-delay: 1.8s; }
@keyframes seasonPetal {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  12% { opacity: 1; }
  100% { transform: translateY(120px) rotate(160deg); opacity: 0; }
}

/* Privacy policy (public page) */
.privacy-page h1 i { color: #0f766e; }
.privacy-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
.privacy-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: #ecfdf5; color: #0f766e; font-size: 12.5px; font-weight: 700; border: 1px solid #a7f3d0; }
[data-theme="dark"] .privacy-pill { background: rgba(15,118,110,.18); color: #5eead4; border-color: rgba(45,212,191,.35); }
.privacy-toc { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; margin: 0 0 24px; border-radius: 14px; background: #fff; border: 1px solid #e2e8f0; }
[data-theme="dark"] .privacy-toc { background: #111827; border-color: #1f2937; }
.privacy-toc a { color: #1d4ed8; font-weight: 600; font-size: 14px; text-decoration: none; }
.privacy-toc a:hover { text-decoration: underline; }
.privacy-sec { scroll-margin-top: 20px; }
.privacy-sec ul { margin: 8px 0 0; padding-left: 1.2em; display: grid; gap: 6px; }
.privacy-sec li { padding-left: 2px; }
