:root {
  --bg: #0e0e0e;
  --bg-2: #090909;
  --elev: #1c1c1c;
  --card: #141414;
  --paper: #141414;
  --paper-2: #111111;
  --head: #121212;
  --input: #101010;
  --line: #2a2a2a;
  --line-2: #3a3a3a;
  --text: #ededed;
  --muted: #8d8d8d;
  --faint: #6e6e6e;
  --red: #8d3d43;
  --red-2: #753338;
  --red-border: #a34d54;
  --red-glow: rgba(141,61,67,.22);
  --gold: #9a7b3c;
  --gold-2: #b08d4a;
  --gold-soft: rgba(196,43,53,.08);
  --ok: #3d8f68;
  --ok-bg: rgba(61,143,104,.12);
  --warn: #c4a03a;
  --note: #c9864a;
  --china: #c9a090;
  --global: #b5b5b5;
  --shadow: none;
  --radius: 4px;
  --font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --display: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --side: #0a0a0a;
  --side-text: #ededed;
  --side-muted: #8a8a8a;
  --side-line: #242424;
  --side-hover: #1a1a1a;
  --side-active: #2a1618;
  --side-nav: #c8c8c8;
  --hero-cn: #3a181c;
  --hero-gl: #14352a;
  --fam: #1c1c1c;
  --fam-miui: #221e16;
  --thumb: #0c0c0c;
  --badge-bg: rgba(255,255,255,.045);
  --focus: #c45a60;
  --search-icon: %238d8d8d;
  --log-label: #d1cfcf;
  --log-head: #8a8a8a;
  --log-ok: #229954;
  --log-lime: #5EEE00;
  --log-yellow: #F9A825;
  --log-red: #d63031;
  --log-time: #e0e0e0;
  --log-track: #373737;
  color-scheme: dark;
}

html[data-theme="light"] {
  --bg: #f4f5f7;
  --bg-2: #e8eaee;
  --elev: #fafbfc;
  --card: #ffffff;
  --paper: #ffffff;
  --paper-2: #fafbfc;
  --head: #f7f8fa;
  --input: #ffffff;
  --line: #e2e5ea;
  --line-2: #cfd3da;
  --text: #12141a;
  --muted: #4a5160;
  --faint: #6b7280;
  --red: #8b3038;
  --red-2: #72262d;
  --red-border: #8b3038;
  --red-glow: rgba(139,48,56,.12);
  --gold: #8a6d32;
  --gold-2: #9a7b3c;
  --gold-soft: rgba(139,48,56,.07);
  --ok: #1d6b45;
  --ok-bg: rgba(29,107,69,.1);
  --warn: #8a6912;
  --note: #a05520;
  --china: #8e4040;
  --global: #2b6478;
  --shadow: 0 1px 2px rgba(16,22,32,.04), 0 10px 28px rgba(16,22,32,.06);
  --side: #ffffff;
  --side-text: #12141a;
  --side-muted: #5c6370;
  --side-line: #eceef2;
  --side-hover: #f4f5f7;
  --side-active: #f6eaea;
  --side-nav: #3a404c;
  --hero-cn: #f8ecec;
  --hero-gl: #e6f4ec;
  --fam: #f6f7f9;
  --fam-miui: #f8f2e8;
  --thumb: #eef0f3;
  --badge-bg: #eef0f3;
  --focus: #8b3038;
  --search-icon: %234a5160;
  --log-label: #12141a;
  --log-head: #4a5160;
  --log-ok: #176a2c;
  --log-lime: #176a2c;
  --log-yellow: #8a5800;
  --log-red: #b4232c;
  --log-time: #12141a;
  --log-track: #e4e6eb;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body {
  height: 100%;
  max-width: 100%;
  overflow-x: clip;
}
body {
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  background: var(--bg);
  min-height: 100%;
}
#app { position: relative; z-index: 1; min-height: 100%; max-width: 100%; overflow-x: clip; }

.page-load {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; min-height: 240px; color: var(--muted); font-size: 13px; font-weight: 600;
}
.page-load img { width: 36px; height: 36px; object-fit: contain; }
.page-load .splash-bar { width: 112px; height: 3px; border-radius: 99px; background: var(--line); overflow: hidden; }
.page-load .splash-bar i {
  display: block; height: 100%; width: 38%; border-radius: 99px; background: var(--red);
  animation: splash-run .9s ease-in-out infinite;
}

button, input, select, textarea { font-family: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  border: 0; border-radius: 6px; padding: 9px 13px;
  font-weight: 600; font-size: 13px;
  transition: background .12s, opacity .12s, border-color .12s;
}
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn-primary {
  color: #fff; background: var(--red); border: 1px solid var(--red-border);
}
.btn-primary:hover:not(:disabled) { background: var(--red-2); border-color: var(--red-2); }
.btn-give {
  color: #fff6f6;
  background: #5c151c;
  border: 1px solid #8f2834;
  box-shadow: inset 0 1px 0 rgba(255,220,220,.12);
  min-height: 34px; padding: 7px 14px;
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 12px;
}
.btn-give:hover:not(:disabled) {
  background: #741c26;
  border-color: #b83340;
}
.btn-give:active:not(:disabled) {
  background: #4a1016;
  border-color: #8f2834;
}
html[data-theme="light"] .btn-give {
  color: #fff8f8;
  background: #8a2030;
  border-color: #b03040;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
}
html[data-theme="light"] .btn-give:hover:not(:disabled) {
  background: #9c2838;
  border-color: #c43848;
}
.btn-action {
  color: #fff5ee;
  background: #3a2418;
  border: 1px solid #5a2e18;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  min-height: 34px; padding: 7px 14px;
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 12px;
}
.btn-action:hover:not(:disabled) {
  background: #4a3020;
  border-color: #6b4228;
}
.btn-action:active:not(:disabled) {
  background: #2e1c14;
  border-color: #5a2e18;
}
html[data-theme="light"] .btn-action {
  color: #fff8f3;
  background: #5a3824;
  border-color: #7a4a30;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
html[data-theme="light"] .btn-action:hover:not(:disabled) {
  background: #6a452c;
  border-color: #8c5a38;
}
.btn-stop {
  color: #fff5f5;
  background: #3a1818;
  border: 1px solid #5a2a2a;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  min-height: 34px; padding: 7px 14px;
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 12px;
}
.btn-stop:hover:not(:disabled) {
  background: #4a2020;
  border-color: #6b3838;
}
.btn-stop:active:not(:disabled) {
  background: #2e1414;
  border-color: #5a2a2a;
}
html[data-theme="light"] .btn-stop {
  color: #fff8f8;
  background: #6a2a2a;
  border-color: #8a4040;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
html[data-theme="light"] .btn-stop:hover:not(:disabled) {
  background: #7a3434;
  border-color: #9a5050;
}
.imei-row .btn-action { flex: 0 0 148px; }
.btn-ok {
  color: #fff; background: #3d5c4c; border: 1px solid #4d735f;
}
.btn-ok:hover:not(:disabled) { background: #334e41; border-color: #334e41; }
html[data-theme="light"] .btn-ok { background: #3a6b52; border-color: #3a6b52; }
html[data-theme="light"] .btn-ok:hover:not(:disabled) { background: #2f5744; border-color: #2f5744; }
.btn-ghost {
  color: var(--text); background: transparent; border: 1px solid var(--line);
}
.btn-ghost:hover:not(:disabled) { background: var(--elev); border-color: var(--line-2); color: var(--text); }
.btn-danger { background: transparent; color: #e08a8a; border: 1px solid #5a3232; }
.btn-danger:hover:not(:disabled) {
  background: rgba(196,43,53,.2); border-color: #c42b35; color: #ffd0d3;
}
html[data-theme="light"] .btn-danger { color: #b4232c; border-color: #e0b4b6; }
html[data-theme="light"] .btn-danger:hover:not(:disabled) {
  background: #f8eaea; border-color: #b4232c; color: #8f1b23;
}
.btn-sm { padding: 6px 9px; font-size: 12px; border-radius: 6px; }
.icon-btn { min-width: 32px; min-height: 28px; padding-left: 8px; padding-right: 8px; }
.btn-full { width: 100%; }

.field { display: flex; flex-direction: column; gap: 6px; }
.field[hidden] { display: none !important; }
.field label { font-size: 12px; font-weight: 650; color: var(--muted); }
.input, .select, .textarea {
  width: 100%; color: var(--text); background: var(--input);
  border: 1px solid var(--line); border-radius: 10px;
  padding: 9px 11px; outline: none; font-size: 14px;
}
.select { color-scheme: dark; }
html[data-theme="light"] .select { color-scheme: light; }
select option {
  color: #e8e8e8;
  background: #1a1a1a;
}
html[data-theme="light"] select option {
  color: #1c1e22;
  background: #fff;
}
.input:focus, .select:focus, .textarea:focus {
  border-color: var(--focus);
}
.textarea { min-height: 88px; resize: vertical; }
.search {
  background: var(--input) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%238d8d8d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='8' cy='8' r='6'/><path d='m14 14 3 3'/></svg>") no-repeat 12px 50%;
  padding-left: 40px;
}
html[data-theme="light"] .search {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%235c616a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='8' cy='8' r='6'/><path d='m14 14 3 3'/></svg>");
}

/* login */
.login-page {
  min-height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center; padding: 28px 18px;
}
.login-card {
  width: 100%; max-width: 400px; position: relative;
  background: var(--card);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 28px 24px 22px;
}
.brand-login {
  text-align: left; margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; gap: 12px;
}
.brand-login img,
.brand-login .brand-mark { width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; display: block; }
.brand-login .brand-text { min-width: 0; }
.brand-login h1 {
  margin: 10px 0 4px; font-size: 22px; font-weight: 600; color: var(--text);
}
.brand-login p { margin: 0; color: var(--muted); font-size: 13.5px; font-weight: 500; }
.login-err { color: #f87171; font-size: 13px; min-height: 18px; margin: 4px 0 10px; }
html[data-theme="light"] .login-err { color: #b4232c; }
html[data-theme="light"] .login-card {
  border-radius: 16px;
  box-shadow: var(--shadow);
}

/* shell */
.shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); min-height: 100vh; width: 100%; max-width: 100%; min-width: 0; }
.side {
  position: sticky; top: 0; height: 100vh; height: 100dvh;
  background: var(--side);
  color: var(--side-nav);
  border-right: 0; padding: 16px 12px;
  display: flex; flex-direction: column; gap: 12px;
}
.side-brand {
  display: flex; align-items: center; gap: 10px; padding: 4px 8px 10px;
  margin: 0; border: 0; background: none; width: 100%; text-align: left;
  cursor: pointer; border-radius: 10px; color: inherit; font: inherit;
}
.side-brand:hover { background: rgba(255,255,255,.06); }
html[data-theme="light"] .side-brand:hover { background: rgba(0,0,0,.05); }
.side-brand img { width: 32px; height: 32px; object-fit: contain; }
.side-brand b { display: block; font-size: 14px; font-weight: 600; color: var(--side-text); }
.side-brand span { color: var(--side-muted); }
.side .btn-ghost { color: var(--side-nav); border-color: var(--side-line); }
.side .btn-ghost:hover { background: var(--side-hover); }
.side .who { color: var(--side-text); }
.side .who small { color: var(--side-muted); }
.side-brand span { display: block; font-size: 11px; color: var(--side-muted); font-weight: 600; }
.nav { display: flex; flex-direction: column; gap: 4px; }
.logout-btn { margin-top: 10px; width: 100%; }

.nav-btn {
  width: 100%; text-align: left; border: 0; background: transparent; color: var(--side-nav);
  padding: 8px 10px; border-radius: 10px; font-weight: 500; font-size: 13.5px;
  display: flex; align-items: center; gap: 10px;
}
.nav-btn .ni {
  width: 18px; height: 18px; border-radius: 0; flex: 0 0 18px;
  display: grid; place-items: center;
  background: transparent; color: inherit;
}
.nav-btn:hover { background: var(--side-hover); color: var(--side-text); }
.nav-btn:hover .ni { background: transparent; color: inherit; }
.nav-btn.active {
  background: linear-gradient(90deg, rgba(160,48,56,.42), rgba(160,48,56,.1));
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(220,120,126,.38);
}
.nav-btn.active .ni { background: transparent; color: #f0b4b6; box-shadow: none; }
html[data-theme="light"] .side {
  border-right: 1px solid var(--side-line);
  box-shadow: 8px 0 24px rgba(16,22,32,.03);
}
html[data-theme="light"] .nav-btn.active {
  background: #f6eaea;
  color: #7a2430;
  box-shadow: inset 0 0 0 1px #e8c8cc;
}
html[data-theme="light"] .nav-btn.active .ni { color: #8b3038; }
.ico { display: block; }
img.ico.nav-svg,
img.ico.ico-virus {
  object-fit: contain;
  flex: 0 0 auto;
  border: 0;
  background: none;
}
.nav-btn .ni img.nav-svg {
  width: 18px;
  height: 18px;
}
.logout-btn img.nav-svg {
  width: 15px;
  height: 15px;
}

.os-row {
  display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px;
}
.os-tile {
  border: 1px solid var(--line); background: transparent;
  border-radius: 999px; padding: 2px; cursor: pointer; color: inherit;
}
.os-tile.on { border-color: var(--red-border); background: var(--red-glow); }
.os-tile-all { display: inline-flex; align-items: center; height: 26px; padding: 0 11px; font-size: 12px; font-weight: 650; color: var(--muted); }
.os-tile.on .os-tile-all { color: var(--text); }

.osb {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 2px 9px 2px 3px; border-radius: 999px;
  background: var(--elev); border: 1px solid var(--line);
  vertical-align: middle;
}
.osb-sm { padding: 2px 8px 2px 3px; gap: 6px; }
.osb-mark {
  width: 26px; height: 26px; border-radius: 8px; position: relative;
  display: grid; place-items: center; overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 1px 2px rgba(0,0,0,.35);
}
.osb-sm .osb-mark { width: 22px; height: 22px; border-radius: 7px; }
.osb-mark b {
  position: relative; z-index: 1; font-size: 12px; font-weight: 800; color: #fff;
  letter-spacing: -.03em; text-shadow: 0 1px 1px rgba(0,0,0,.4);
}
.osb-sm .osb-mark b { font-size: 11px; }
.osb-orbit { display: none; }
.osb-mark::after, .os-ver::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.42) 0%, rgba(255,255,255,.08) 42%, transparent 62%);
}
.osb-txt { display: flex; flex-direction: column; line-height: 1.05; min-width: 0; }
.osb-txt small { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .72; }
.osb-txt strong { font-size: 12px; font-weight: 750; letter-spacing: -.02em; }
.osb-sm .osb-txt small { font-size: 8px; }
.osb-sm .osb-txt strong { font-size: 11px; }

.os-hos-1 .osb-mark, .os-ver.os-hos-1 { background: linear-gradient(180deg, #6eb6ff 0%, #2f7ef0 55%, #1d5fd4 100%); box-shadow: 0 0 8px rgba(47,126,240,.55), inset 0 1px 0 rgba(255,255,255,.45); }
.os-hos-2 .osb-mark, .os-ver.os-hos-2 { background: linear-gradient(180deg, #c4b2ff 0%, #7a5cff 55%, #5a38d6 100%); box-shadow: 0 0 8px rgba(122,92,255,.55), inset 0 1px 0 rgba(255,255,255,.4); }
.os-hos-3 .osb-mark, .os-ver.os-hos-3 { background: linear-gradient(180deg, #ffc27a 0%, #ff8a2a 55%, #e06512 100%); box-shadow: 0 0 8px rgba(255,138,42,.5), inset 0 1px 0 rgba(255,255,255,.4); }
.os-hos-4 .osb-mark, .os-ver.os-hos-4 { background: linear-gradient(180deg, #ff8d8d 0%, #f04545 55%, #c81f1f 100%); box-shadow: 0 0 8px rgba(240,69,69,.5), inset 0 1px 0 rgba(255,255,255,.4); }
.os-hos-x .osb-mark, .os-ver.os-hos-x { background: linear-gradient(180deg, #d0d0d0, #8a8a8a); }
.os-miui .osb-mark, .os-ver.os-miui { background: linear-gradient(180deg, #ffb067 0%, #ff6a1f 55%, #e23d0c 100%); box-shadow: 0 0 8px rgba(255,106,31,.5), inset 0 1px 0 rgba(255,255,255,.4); }
.os-hos-1 { background: rgba(47,126,240,.1); border-color: rgba(47,126,240,.32); }
.os-hos-2 { background: rgba(122,92,255,.12); border-color: rgba(122,92,255,.34); }
.os-hos-3 { background: rgba(255,138,42,.12); border-color: rgba(255,138,42,.34); }
.os-hos-4 { background: rgba(240,69,69,.12); border-color: rgba(240,69,69,.34); }
.os-miui { background: rgba(255,106,31,.1); border-color: rgba(255,106,31,.32); }
.mi-letter { font-size: 9px; font-weight: 800; color: #fff; letter-spacing: -.04em; position: relative; z-index: 1; }
.os-other { background: rgba(255,255,255,.04); }

.mcard-meta { margin-top: 3px; }
.brand-dot { font-size: 11px; font-weight: 750; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.mcard-osline { margin-top: 8px; }
.mcard-flags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.mcard-note { color: var(--muted); font-size: 12px; margin-top: 8px; line-height: 1.4; }
.prices { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.prices-row {
  margin-top: 0; justify-content: flex-end; margin-left: auto;
  flex: 1 1 auto; min-width: 0;
}
.pill {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 8px;
  padding: 2px 8px 2px 3px; flex: 0 0 auto; white-space: nowrap;
}
.pill-ico {
  width: 18px; height: 18px; border-radius: 5px; display: grid; place-items: center; flex: 0 0 18px;
  background: rgba(255,255,255,.06); color: #c4c4c4;
}
.pill-ico svg { width: 11px; height: 11px; }
.pill-lab { font-size: 10px; color: var(--muted); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pill b { display: inline; font-size: 13px; font-weight: 750; margin: 0; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--text); }
html[data-theme="light"] .pill { background: #fff; }
.os-toggle.on { border-color: var(--focus); background: var(--elev); }
.svc-imei { border-color: rgba(78,182,200,.2); background: rgba(78,182,200,.06); }
.svc-imei .pill-ico { background: rgba(78,182,200,.14); color: #9ad4de; }
.svc-sifre { border-color: rgba(212,179,106,.2); background: rgba(212,179,106,.06); }
.svc-sifre .pill-ico { background: rgba(212,179,106,.14); color: #e6d2a4; }
.svc-yazilim { border-color: rgba(155,135,216,.2); background: rgba(155,135,216,.06); }
.svc-yazilim .pill-ico { background: rgba(155,135,216,.14); color: #c8bce8; }
.svc-frp { border-color: rgba(80,180,140,.2); background: rgba(80,180,140,.06); }
.svc-frp .pill-ico { background: rgba(80,180,140,.14); color: #9ad4bc; }

.badge { display: inline-flex; align-items: center; gap: 5px; }
.badge i { width: 7px; height: 7px; border-radius: 50%; display: block; background: currentColor; }

.td-model { width: 220px; }
.td-model-in { display: flex; align-items: center; gap: 12px; min-width: 0; }
.td-model-copy { min-width: 0; }
.mname { display: block; font-size: 14.5px; font-weight: 650; letter-spacing: -.02em; line-height: 1.25; }
.models-table { width: 100%; }
.models-table td { vertical-align: middle; }
.models-table .td-prices { min-width: 0; }
.models-table .gline { min-width: 0; }
.models-table .os-pills { flex-wrap: wrap; }

.chip { display: inline-flex; align-items: center; gap: 6px; }
.side-foot { margin-top: auto; padding: 10px 8px 16px; border-top: 1px solid var(--side-line); }
.theme-sw {
  display: flex; border: 1px solid var(--side-line); border-radius: 3px; overflow: hidden; margin: 10px 0 0;
}
.theme-sw button {
  flex: 1; border: 0; background: transparent; color: var(--side-muted);
  padding: 6px 8px; font-size: 12px; font-weight: 600;
}
.theme-sw button.on { background: var(--side-hover); color: var(--side-text); }
.login-theme { margin-top: 16px; }
.login-theme .theme-sw { border-color: var(--line); }
.login-theme .theme-sw button { color: var(--muted); }
.login-theme .theme-sw button.on { background: var(--elev); color: var(--text); }
.theme-box { padding: 16px 18px; max-width: 440px; margin-bottom: 12px; }
.theme-box .theme-sw { border-color: var(--line); margin-top: 8px; }
.theme-box .theme-sw button { color: var(--muted); }
.theme-box .theme-sw button.on { background: var(--elev); color: var(--text); }
.topbar .lang-sw { border-color: var(--line); margin: 0; flex: 0 0 auto; }
.topbar .lang-sw button { color: var(--muted); padding: 6px 10px; }
.topbar .lang-sw button.on { background: var(--elev); color: var(--text); }
/* Kompakt açılır anahtarlar: para birimi + dil (topbar) */
.sw-drop { position: relative; flex: 0 0 auto; }
.sw-toggle { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--line); border-radius: 3px; background: transparent; color: var(--muted); padding: 6px 8px; font-size: 12px; font-weight: 700; line-height: 1; cursor: pointer; }
.sw-toggle:hover { color: var(--text); }
.sw-drop.open .sw-toggle { background: var(--elev); color: var(--text); }
.sw-toggle svg { opacity: .7; transition: transform .15s ease; }
.sw-drop.open .sw-toggle svg { transform: rotate(180deg); }
.sw-sym { font-weight: 800; }
.sw-code { letter-spacing: .02em; }
.sw-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 70; min-width: 182px; background: var(--elev); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 14px 34px rgba(0,0,0,.35); padding: 5px; }
.sw-pop-sm { min-width: 142px; }
.sw-opt { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: transparent; color: var(--muted); text-align: left; padding: 8px 9px; border-radius: 4px; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.sw-opt:hover, .sw-opt.on { background: var(--side-hover); color: var(--text); }
.sw-opt .sw-sym { width: 13px; text-align: center; }
.sw-opt .sw-code { min-width: 38px; }
.sw-opt .sw-lbl { margin-left: auto; color: var(--muted); font-weight: 500; font-size: 11px; }
.sw-rate { display: block; width: 100%; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--muted); text-align: left; margin-top: 5px; padding: 8px 9px 6px; font-size: 11.5px; cursor: pointer; }
.sw-rate b { color: var(--text); }
.sw-rate:hover { color: var(--text); }
.sw-ts { color: var(--muted); }
@media (max-width: 560px) {
  .sw-toggle .sw-code { display: none; }
}
.who { font-size: 13px; font-weight: 700; }
.who small { display: block; color: var(--muted); font-weight: 600; margin-top: 2px; }
.main {
  padding: 20px max(24px, env(safe-area-inset-right, 0px)) 40px max(24px, env(safe-area-inset-left, 0px));
  min-width: 0; max-width: 1520px; width: 100%;
}
#page { min-width: 0; max-width: 100%; }
.topbar {
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
  min-width: 0;
}
.topbar h2,
.topbar .page-heading {
  margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit;
  font-size: 18px; flex: 0 1 auto; font-weight: 600; min-width: 0;
  display: flex; align-items: center; gap: 10px; cursor: default; border-radius: 8px;
}
.topbar .page-heading span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar .page-sub {
  font-style: normal; font-weight: 500; font-size: 0.78em;
  color: var(--muted); margin-left: 2px; letter-spacing: .01em;
}
.page-virus {
  width: 34px; height: 34px; object-fit: contain; flex: 0 0 auto; display: block;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.top-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.topbar .grow { flex: 1 1 140px; min-width: 0; max-width: 560px; }
.topbar .btn { flex: 0 0 auto; }
.notice {
  background: rgba(251,191,36,.08); border: 1px solid rgba(251,191,36,.2);
  color: #fde68a; padding: 10px 14px; border-radius: 12px; font-size: 13px; margin-bottom: 16px;
}

.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.chip {
  border: 1px solid var(--line); background: transparent; color: var(--muted);
  border-radius: 999px; padding: 4px 11px; font-size: 12px; font-weight: 550;
}
.chip.on {
  color: #fff; background: rgba(160,48,56,.32);
  border-color: rgba(220,120,126,.55);
}

.grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px;
}
.catalog-split {
  display: grid; grid-template-columns: minmax(0, 1fr) 304px;
  gap: 16px; align-items: start;
}
.catalog-main { min-width: 0; }
.desk-rail { position: sticky; top: 20px; }
.rail-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.rail-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.rail-kpi {
  padding: 13px 12px 12px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 2px;
  align-items: center;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.rail-kpi:nth-child(2n) { border-right: 0; }
.rail-kpi:nth-last-child(-n+2) { border-bottom: 0; }
.rail-kpi .rail-well { grid-row: 1 / span 2; }
.rail-kpi small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.rail-kpi b {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.rail-kpi.is-hot b { color: #e8b84a; }
.rail-well {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: #241618;
  border: 1px solid #4a2a2e;
  color: #f0b8bb;
  font-style: normal;
  flex: none;
}
.rail-well.tone-rose { color: #ff8f96; background: #3a181c; border-color: #6a3036; }
.rail-well.tone-sky { color: #7eb6ff; background: #142032; border-color: #2a4466; }
.rail-well.tone-mint { color: #4ee0a0; background: #0e2418; border-color: #2a5a40; }
.rail-well.tone-amber { color: #f0c14a; background: #2a1e0a; border-color: #5a4818; }
.rail-well.tone-orange { color: #ff8a3a; background: #2a1608; border-color: #6a3c18; }
.rail-svg { display: block; }
.rail-sec { border-top: 1px solid var(--line); }
.rail-sec h3 {
  margin: 0;
  padding: 11px 12px 9px;
  font-size: 12px;
  font-weight: 650;
  color: #c8c8c8;
  border-bottom: 1px solid var(--line);
}
.rail-actions { display: grid; }
.rail-act {
  width: 100%;
  text-align: left;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.rail-act:first-child { border-top: 0; }
.rail-act span { min-width: 0; display: grid; gap: 2px; flex: 1; }
.rail-act b { font-size: 13px; font-weight: 650; letter-spacing: -.01em; }
.rail-act small { color: var(--muted); font-size: 11px; font-weight: 550; }
.rail-act:hover { background: var(--elev); }
.rail-go {
  width: 6px; height: 6px;
  border-right: 1.5px solid #7a7a7a;
  border-top: 1.5px solid #7a7a7a;
  transform: rotate(45deg);
  flex: none;
  opacity: .7;
}
.rail-feed { display: grid; }
.rail-item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
  border-top: 1px solid var(--line);
}
.rail-item:first-child { border-top: 0; }
.rail-item b, .rail-item small { display: block; }
.rail-item b {
  font-size: 13px; font-weight: 650; letter-spacing: -.01em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rail-item small { color: var(--muted); font-size: 11px; margin-top: 1px; }
.rail-item em { color: var(--faint); font-style: normal; font-size: 11px; white-space: nowrap; }
.rail-well.ok { color: #3ee08a; background: #0e2418; border-color: #2a5a40; }
.rail-well.wait { color: #f0c14a; background: #2a1e0a; border-color: #5a4818; }
.rail-well.bad { color: #ff7a82; background: #3a181c; border-color: #6a3036; }
.rail-empty {
  margin: 0;
  padding: 6px 12px 14px;
  color: var(--faint);
  font-size: 12px;
}
html[data-theme="light"] .rail-sec h3 { color: #3a3e46; }
html[data-theme="light"] .rail-well.tone-rose { color: #c23a44; background: #f8e8e9; border-color: #e8c4c6; }
html[data-theme="light"] .rail-well.tone-sky { color: #1d5fad; background: #e6eef8; border-color: #c4d4e8; }
html[data-theme="light"] .rail-well.tone-mint { color: #1a7a4c; background: #e6f5ec; border-color: #b8ddc6; }
html[data-theme="light"] .rail-well.tone-amber { color: #9a6e08; background: #f8f0d8; border-color: #e4d4a0; }
html[data-theme="light"] .rail-well.tone-orange { color: #c45a12; background: #f8ebe0; border-color: #e8c8b0; }
html[data-theme="light"] .rail-well.ok { color: #1a7a4c; background: #e6f5ec; border-color: #b8ddc6; }
html[data-theme="light"] .rail-well.wait { color: #9a6e08; background: #f8f0d8; border-color: #e4d4a0; }
html[data-theme="light"] .rail-well.bad { color: #c23a44; background: #f8e8e9; border-color: #e8c4c6; }
.plist {
  border: 1px solid var(--line); background: var(--card);
  border-radius: 14px; overflow: hidden;
  max-width: 100%; min-width: 0;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.plist-body { min-width: 0; }
.virt-pad { flex-shrink: 0; pointer-events: none; }
.plist-head {
  display: grid; grid-template-columns: minmax(210px, 300px) minmax(0, 1fr);
  gap: 16px; padding: 8px 14px;
  background: var(--head); border-bottom: 1px solid var(--line);
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
}
.plist-head-rest { display: flex; justify-content: space-between; gap: 12px; min-width: 0; }
.plist-head-rest span:last-child { margin-left: auto; }
.prow {
  display: grid; grid-template-columns: minmax(210px, 300px) minmax(0, 1fr);
  gap: 12px 16px; padding: 8px 14px; align-items: center;
  border-bottom: 1px solid var(--line); background: var(--paper);
  min-width: 0;
}
.prow:hover { background: var(--elev); }
.prow:last-child { border-bottom: 0; }
.prow-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.prow-copy { min-width: 0; flex: 1; }
.prow-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.prow-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 3px; min-width: 0; }
.prow-id b {
  display: block; min-width: 0;
  font-size: 14px; font-weight: 650; letter-spacing: -.02em; line-height: 1.2;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.prow-note {
  margin: 0;
  color: var(--note);
  font-size: 11.5px;
  font-weight: 650;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  max-width: 100%;
}
.model-thumb {
  width: 40px; height: 52px; flex: 0 0 40px;
  border-radius: 8px; background: var(--thumb);
  border: 1px solid var(--line);
  display: grid; place-items: center; overflow: hidden;
}
.model-thumb img {
  width: 100%; height: 100%; object-fit: contain; object-position: center;
  display: block;
}
.model-thumb-sm { width: 36px; height: 48px; flex-basis: 36px; border-radius: 8px; }
.model-thumb.is-empty { background: var(--thumb); }
.model-thumb.is-ph { background: #0a0a0a; border-color: rgba(255,255,255,.08); }
.model-thumb.is-ph img { object-fit: contain; }
.model-thumb .ph-phone { width: 16px; height: 26px; margin: 0; }
.job-fab {
  margin: 0; display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto;
  border: 1px solid rgba(255, 150, 154, .42);
  background: linear-gradient(180deg, rgba(196, 64, 72, .62), rgba(110, 32, 38, .48));
  color: #ffe4e4;
  border-radius: 999px;
  padding: 3px 9px 3px 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 -1px 0 rgba(0,0,0,.22);
  backdrop-filter: blur(6px);
}
.job-fab .ico { width: 11px; height: 11px; }
.job-fab:hover {
  color: #fff;
  border-color: rgba(255, 176, 178, .55);
  background: linear-gradient(180deg, rgba(214, 78, 86, .74), rgba(128, 38, 44, .56));
}
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; position: relative;
}
.mcard:hover { border-color: var(--line-2); }
.mcard { display: grid; grid-template-columns: 56px minmax(0, 1fr); min-height: 0; }
.mcard-body { padding: 11px 12px 12px; min-width: 0; }
.glines { display: grid; gap: 0; margin-top: 0; min-width: 0; }
.gline {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  align-items: center; gap: 10px 14px; padding: 3px 0;
}
.gline + .gline { border-top: 1px dashed var(--line); }
.os-inline { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.gline-eq { display: none; }
.ask { color: var(--muted); font-size: 12.5px; font-weight: 700; }
.osb-xs { padding: 2px 7px 2px 2px; gap: 5px; }
.osb-xs .osb-mark { width: 22px; height: 22px; border-radius: 7px; }
.osb-xs .osb-mark b { font-size: 10px; }
.osb-xs .osb-orbit { inset: 3px; }
.osb-xs .osb-orbit-2 { inset: 5px; }
.osb-xs .osb-txt small { font-size: 8px; letter-spacing: .08em; }
.os-fam {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 4px 3px 4px; border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.03) 32%, #121212 100%);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 2px 8px rgba(0,0,0,.4);
}
.os-fam-lab {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 750; letter-spacing: -.03em;
  text-transform: none; color: #f7f7f7; line-height: 1;
}
.os-mark {
  position: relative; width: 18px; height: 18px; flex: 0 0 18px;
  display: grid; place-items: center; border-radius: 50%;
  background: radial-gradient(circle at 40% 30%, rgba(255,255,255,.16), rgba(0,0,0,.35) 72%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
.os-glyph { width: 15px; height: 15px; display: block; }
.os-glyph circle, .os-glyph path { fill: currentColor; }
.os-mark.os-glow-1 { color: #8ec2ff; filter: drop-shadow(0 0 3px rgba(70,150,255,.95)); }
.os-mark.os-glow-2 { color: #c9b6ff; filter: drop-shadow(0 0 3px rgba(130,90,255,.95)); }
.os-mark.os-glow-3 { color: #ffc48a; filter: drop-shadow(0 0 3px rgba(255,140,40,.95)); }
.os-mark.os-glow-4 { color: #ff9a9a; filter: drop-shadow(0 0 3px rgba(255,70,70,.9)); }
.os-mark.os-glow-x { color: #d8d8d8; }
.os-mark.os-glow-mi { color: #ff8a3d; filter: drop-shadow(0 0 3px rgba(255,110,30,.95)); }
.os-fam.os-glow-1 { border-color: rgba(80,150,255,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 12px rgba(47,126,240,.28); }
.os-fam.os-glow-2 { border-color: rgba(140,110,255,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 12px rgba(122,92,255,.28); }
.os-fam.os-glow-3 { border-color: rgba(255,150,60,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 12px rgba(255,138,42,.26); }
.os-fam.os-glow-4 { border-color: rgba(255,80,80,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 12px rgba(240,69,69,.26); }
.os-fam.os-glow-mi { border-color: rgba(255,120,40,.55); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 12px rgba(255,106,31,.28); }
.os-mark-miui { background: radial-gradient(circle at 40% 30%, rgba(255,180,90,.35), rgba(40,12,0,.45) 72%); }
html[data-theme="light"] .os-fam {
  background: linear-gradient(180deg, #fff, #f3f4f6);
  border-color: #d5d8de;
  box-shadow: inset 0 1px 0 #fff;
}
html[data-theme="light"] .os-fam-lab,
html[data-theme="light"] .os-fam-hos .os-fam-lab { color: #1c1e22; }
html[data-theme="light"] .os-mark { color: #1c1e22; }
html[data-theme="light"] .os-fam-miui {
  background: linear-gradient(180deg, #fff6f1, #ffe8dc);
  border-color: rgba(226,61,12,.35);
}
html[data-theme="light"] .os-fam-miui .os-fam-lab { color: #c2410c; }
.os-ver {
  position: relative; width: 16px; height: 16px; border-radius: 50%;
  display: grid; place-items: center; flex: 0 0 16px;
  border: 1px solid rgba(255,255,255,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
}
.os-ver::after { display: none; }
.os-ver.os-hos-1 { background: #2f74d6; box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.os-ver.os-hos-2 { background: #6d4fd4; box-shadow: inset 0 1px 0 rgba(255,255,255,.32); }
.os-ver.os-hos-3 { background: #e07a28; box-shadow: inset 0 1px 0 rgba(255,255,255,.32); }
.os-ver.os-hos-4 { background: #d64545; box-shadow: inset 0 1px 0 rgba(255,255,255,.32); }
.os-ver.os-miui { background: #e25a22; box-shadow: inset 0 1px 0 rgba(255,255,255,.32); }
.os-ver b {
  position: relative; z-index: 1; font-size: 10px; font-weight: 700; color: #fff;
  letter-spacing: 0; text-shadow: none; line-height: 1;
}
.os-ver .osb-orbit { display: none; }
.os-ver.os-other { background: rgba(255,255,255,.08); border-radius: 6px; }
.os-inline { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.os-pills { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.osp {
  display: inline-flex; align-items: center; gap: 6px;
  height: 24px; padding: 0 9px 0 7px; border-radius: 999px;
  font-size: 12px; font-weight: 650; letter-spacing: -.01em; line-height: 1;
  color: #e7eef8; background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1); white-space: nowrap;
}
.osp i { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 7px; }
.osp-hos-1 { background: rgba(47,126,240,.14); border-color: rgba(90,160,255,.42); }
.osp-hos-1 i { background: #5aa0ff; box-shadow: 0 0 0 3px rgba(90,160,255,.16); }
.osp-hos-2 { background: rgba(122,92,255,.16); border-color: rgba(150,130,255,.45); }
.osp-hos-2 i { background: #9b86ff; box-shadow: 0 0 0 3px rgba(155,134,255,.16); }
.osp-hos-3 { background: rgba(255,138,42,.14); border-color: rgba(255,160,70,.42); }
.osp-hos-3 i { background: #ff9a3c; box-shadow: 0 0 0 3px rgba(255,154,60,.16); }
.osp-hos-4 { background: rgba(240,69,69,.14); border-color: rgba(255,110,110,.42); }
.osp-hos-4 i { background: #ff6b6b; box-shadow: 0 0 0 3px rgba(255,107,107,.16); }
.osp-hos-x { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.osp-hos-x i { background: #c8c8c8; }
.osp-miui { background: rgba(255,122,40,.14); border-color: rgba(255,150,70,.42); }
.osp-miui i { background: #ff8a32; box-shadow: 0 0 0 3px rgba(255,138,50,.16); }
.osp-other { color: var(--muted); }
.osp-other i { background: #8b9bb3; }
html[data-theme="light"] .osp { color: #1c2433; background: #fff; }
html[data-theme="light"] .osp-hos-1 { background: #eef4ff; border-color: #c5d8ff; }
html[data-theme="light"] .osp-hos-2 { background: #f3efff; border-color: #d4c8ff; }
html[data-theme="light"] .osp-hos-3 { background: #fff4ea; border-color: #ffd7b0; }
html[data-theme="light"] .osp-hos-4 { background: #ffefef; border-color: #ffc8c8; }
html[data-theme="light"] .osp-miui { background: #fff3ea; border-color: #ffd0b0; }
.pgroup {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  margin-bottom: 10px; background: var(--elev);
}
.pgroup-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.pgroup-head span { color: var(--muted); font-size: 12px; font-weight: 600; }
.hint { margin: 0 0 10px; color: var(--muted); font-size: 12.5px; }
.mcard-img {
  background: #101010;
  display: grid; place-items: center; border-right: 1px solid var(--line);
  min-height: 72px;
}
.mcard-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.ph-phone {
  width: 28px; height: 46px; border: 2px solid rgba(255,255,255,.14); border-radius: 7px; position: relative;
}
.ph-phone::after { content: ""; position: absolute; top: 5px; left: 50%; width: 10px; height: 2px; margin-left: -5px; background: rgba(255,255,255,.14); border-radius: 2px; }
html[data-theme="light"] .ph-phone { border-color: rgba(28,30,34,.16); }
html[data-theme="light"] .ph-phone::after { background: rgba(28,30,34,.16); }
.mcard-head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; flex-wrap: nowrap; }
.mcard-name { font-size: 14px; font-weight: 600; letter-spacing: 0; line-height: 1.3; min-width: 0; }
.mcard-flags { flex: 0 0 auto; justify-content: flex-end; }
.badge {
  font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none;
  border-radius: 4px; padding: 2px 6px; white-space: nowrap;
}
.badge-cn { background: var(--badge-bg); color: var(--china); }
.badge-gl { background: var(--badge-bg); color: var(--global); }
.badge-both { background: var(--badge-bg); color: var(--muted); }
.badge-off { background: rgba(148,163,184,.12); color: #94a3b8; }
.badge-void { background: rgba(196,43,53,.14); color: #e08a8a; }
html[data-theme="light"] .badge-void { background: #f6e4e4; color: #8a2a2a; }
.badge-ok { background: var(--ok-bg); color: var(--ok); }
.badge.cust { background: rgba(61,140,110,.16); color: #9ddec0; border: 1px solid rgba(61,168,110,.32); }
.badge-mid { background: rgba(212,179,106,.14); color: #e6d2a4; }
html[data-theme="light"] .badge-mid { background: #f7f1de; color: #6a5818; }
html[data-theme="light"] .badge.cust { background: #e7f6ee; color: #1b6b42; border-color: #b7e0c8; }
.row-pending { box-shadow: inset 3px 0 0 #9a7b3c; }
.job-mode { margin: 8px 0 4px; }
.job-mode.root-chips { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
/* Modal / bayi form — Partition Manager checkbox + Root radio */
.job-checks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  margin: 8px 0 4px;
}
.job-checks-row {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px 16px;
}
.form-check {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 4px 0;
  border: 0;
  background: none;
  color: #a8a8a8;
  font-size: 12.5px;
  font-weight: 400;
  cursor: pointer;
  user-select: none;
}
.form-check:hover { color: #d0d0d0; }
.form-check:has(input:checked) {
  color: #f2f2f2;
  font-weight: 600;
}
.form-check .cln-check { margin: 0; }
html[data-theme="light"] .form-check { color: #5b616b; }
html[data-theme="light"] .form-check:has(input:checked) { color: #1c1e22; }
.badge.q-ok { background: rgba(46,140,90,.16); color: #8ee0b0; border: 1px solid rgba(61,168,110,.35); }
.badge.q-bad { background: rgba(180,48,56,.16); color: #f0a8a8; border: 1px solid rgba(224,90,96,.38); }
.badge.q-mid { background: rgba(148,163,184,.12); color: #94a3b8; }
.badge.mem-soon { background: rgba(251,191,36,.14); color: #fbbf24; border: 1px solid rgba(251,191,36,.32); }
.badge.q-gl { background: rgba(46,140,90,.14); color: #9ddec0; border: 1px solid rgba(61,168,110,.32); }
.badge.q-cn { background: rgba(180,48,56,.16); color: #f0b4b4; border: 1px solid rgba(196,70,78,.36); }
html[data-theme="light"] .badge.q-ok { background: #e5f6ec; color: #1b6b42; border-color: #b7e0c8; }
html[data-theme="light"] .badge.q-bad { background: #fdecec; color: #9a2430; border-color: #f0c4c4; }
html[data-theme="light"] .badge.q-gl { background: #e7f6ee; color: #1b6b42; border-color: #b7e0c8; }
html[data-theme="light"] .badge.q-cn { background: #fdecec; color: #9a2430; border-color: #f0c4c4; }
.q-imei { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing: .03em; font-weight: 750; white-space: nowrap; }
.q-table td { vertical-align: middle; }
.q-table tbody tr:hover td { background: rgba(255,255,255,.025); }
html[data-theme="light"] .q-table tbody tr:hover td { background: #f6f7f9; }
.stat-card.stat-risk b { color: #e08a8a; }
html[data-theme="light"] .stat-card.stat-risk b { color: #9a2430; }
.mcard-actions { display: flex; gap: 6px; margin-top: 10px; }

.empty {
  text-align: center; padding: 40px 16px; color: var(--muted);
  border: 1px solid var(--line); border-radius: 8px;
}
.empty h3 { color: var(--text); margin: 0 0 6px; }

/* IMEI */
.imei-wrap { display: grid; gap: 16px; max-width: 1080px; }
.imei-box { padding: 16px 18px 18px; }
.imei-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px; padding: 0 0 14px;
  border-bottom: 1px solid var(--line);
}
.imei-hero-ico {
  width: 38px; height: 38px; border-radius: 10px; flex: 0 0 38px;
  display: grid; place-items: center;
  background: #29180d; border: 1px solid #5a2e18; color: #c2700c;
}
.imei-hero-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.imei-hero-txt b {
  font-size: 14px; color: var(--text); font-weight: 650;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.imei-hero-txt span { font-size: 11.5px; color: var(--muted); }
.imei-hero .hide-imei-tog { margin: 0; flex: 0 0 auto; }
.imei-box-head {
  display: flex; justify-content: flex-end; align-items: center;
  margin: 0;
}
.imei-box-head .hide-imei-tog { margin: 0; }
.queries-page > .imei-box-head { margin: 0 0 2px; }
.imei-tools {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: stretch;
}
.imei-tools.imei-tools-solo { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
.imei-side {
  display: flex; align-items: center; justify-content: flex-end; gap: 12px;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 38px;
}
.imei-side .hide-imei-tog { margin: 0; white-space: nowrap; }
.imei-block { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.imei-block + .imei-block {
  padding-left: 18px;
  border-left: 1px solid var(--line);
}
.imei-tools-solo .imei-block + .imei-block { padding-left: 0; border-left: 0; }
.imei-kicker {
  margin: 0;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
  color: var(--muted);
  display: flex; align-items: baseline; gap: 8px;
}
.imei-kicker small {
  font-size: 10.5px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: #6a6a6a;
}
.imei-composer {
  display: flex; align-items: stretch; gap: 6px;
  min-height: 48px; padding: 4px 6px 4px 4px;
  border: 1px solid var(--line); border-radius: 12px;
  background: #121212;
}
.imei-spin {
  display: flex; flex-direction: column; justify-content: center; gap: 0;
  flex: 0 0 30px;
}
.imei-spin-btn {
  appearance: none; border: 0; background: transparent; color: #9a9a9a;
  width: 30px; height: 20px; padding: 0; border-radius: 7px;
  display: grid; place-items: center; cursor: pointer;
}
.imei-spin-btn:hover { color: #f0f0f0; background: rgba(255,255,255,.04); }
.imei-bare {
  flex: 1 1 auto; min-width: 0; width: 0; border: 0 !important; background: transparent !important;
  box-shadow: none !important; outline: none;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 17px; font-weight: 650; letter-spacing: .02em;
  color: var(--text); padding: 0 4px;
  overflow-x: auto;
}
.imei-luhn-badge {
  flex: 0 0 44px; min-width: 44px; margin: 2px 0;
  border-radius: 8px; border: 1px solid #2a2a2a; background: #1a1a1a;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
}
.imei-luhn-badge span {
  font-size: 8px; font-weight: 800; letter-spacing: .04em; color: #555;
  text-transform: uppercase;
}
.imei-luhn-badge b {
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 16px; font-weight: 800; color: #e0a85c; line-height: 1;
}
.imei-composer-sep {
  width: 1px; margin: 10px 2px; background: #2a2a2a; flex: 0 0 1px;
}
.imei-composer-acts {
  display: flex; align-items: center; gap: 2px; flex: 0 0 auto;
}
.imei-ico-btn {
  appearance: none; border: 0; background: transparent; color: #c8c8c8;
  width: 34px; height: 34px; border-radius: 8px;
  display: grid; place-items: center; cursor: pointer;
}
.imei-ico-btn:hover { background: rgba(255,255,255,.05); color: #fff; }
.imei-go { width: 100%; justify-content: center; min-height: 42px; margin-top: auto; }
.imei-row { display: flex; gap: 10px; align-items: stretch; flex-wrap: nowrap; }
.psn-composer { padding-left: 12px; }
.psn-in {
  width: 100%; flex: 1 1 auto; min-width: 0;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}
html[data-theme="light"] .imei-hero-ico {
  background: #f8efe6; border-color: #e4c4a4; color: #7a3a10;
}
html[data-theme="light"] .imei-composer {
  background: #fff; border-color: var(--line);
}
html[data-theme="light"] .imei-spin-btn { color: #6a7180; }
html[data-theme="light"] .imei-spin-btn:hover { color: #1c1e22; background: #f4f5f7; }
html[data-theme="light"] .imei-luhn-badge {
  background: #f7f8fa; border-color: #d5d8de;
}
html[data-theme="light"] .imei-luhn-badge span { color: #8a91a0; }
html[data-theme="light"] .imei-luhn-badge b { color: #a86a20; }
html[data-theme="light"] .imei-composer-sep { background: #e6e8ee; }
html[data-theme="light"] .imei-ico-btn { color: #4a5160; }
html[data-theme="light"] .imei-ico-btn:hover { background: #f4f5f7; color: #1c1e22; }
.imei-cam-wide {
  width: 100%;
  justify-content: center;
  min-height: 42px;
  color: #e0a85c;
  border-color: rgba(224, 168, 92, .45);
}
html[data-theme="light"] .imei-cam-wide { color: #8a4e12; border-color: #e4c4a4; }
.imei-scan {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: calc(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));
  background: #0c0c0e;
  color: #f3f3f3;
}
.imei-scan-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.imei-scan-top b { font-size: 16px; font-weight: 700; }
.imei-scan-x {
  appearance: none; border: 0; background: transparent; color: #fff;
  width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; cursor: pointer;
}
.imei-scan-stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
}
.imei-scan-video { width: 100%; height: 100%; object-fit: cover; }
.imei-scan-frame {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 28%;
  height: 28%;
  pointer-events: none;
}
.imei-scan-frame i {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 2px solid #e0a85c;
}
.imei-scan-frame i:nth-child(1) { left: 0; top: 0; border-right: 0; border-bottom: 0; }
.imei-scan-frame i:nth-child(2) { right: 0; top: 0; border-left: 0; border-bottom: 0; }
.imei-scan-frame i:nth-child(3) { left: 0; bottom: 0; border-right: 0; border-top: 0; }
.imei-scan-frame i:nth-child(4) { right: 0; bottom: 0; border-left: 0; border-top: 0; }
.imei-scan-status { margin: 0; min-height: 40px; font-size: 13px; line-height: 1.4; color: #c8c8c8; text-align: center; }
.imei-scan-acts { display: flex; gap: 8px; justify-content: center; }
.imei-scan-acts .btn { min-width: 120px; justify-content: center; }
html[data-theme="light"] .imei-kicker small { color: #8a91a0; }
.imei-find-banner {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--elev);
}
.imei-find-radar {
  --radar: #4be18e;
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--radar);
  background: radial-gradient(circle, color-mix(in srgb, var(--radar) 14%, transparent) 0 28%, transparent 30%),
    color-mix(in srgb, var(--radar) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--radar) 38%, transparent);
  box-shadow: 0 0 16px color-mix(in srgb, var(--radar) 12%, transparent);
}
.imei-find-radar::before {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--radar) 55%, transparent);
  background: conic-gradient(from 0deg, transparent 0deg 275deg, color-mix(in srgb, var(--radar) 5%, transparent) 302deg, color-mix(in srgb, var(--radar) 52%, transparent) 358deg, transparent 360deg);
  animation: imeiFindSweep 3s linear infinite;
}
.imei-find-radar::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  border: 1px solid var(--radar);
  animation: imeiFindPulse 2s ease-out infinite;
}
.imei-find-radar i {
  position: relative;
  z-index: 1;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--radar);
  border: 2px solid var(--elev);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--radar) 28%, transparent), 0 0 9px var(--radar);
}
.imei-find-copy {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.imei-find-copy span {
  font-size: 14px;
  font-weight: 750;
  color: var(--text);
}
.imei-find-copy b {
  padding: 4px 10px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}
.imei-find-banner.off {
  background: rgba(46,140,90,.09);
  border-color: rgba(61,168,110,.34);
}
.imei-find-banner.off .imei-find-copy b { color: #7dffb0; }
.imei-find-banner.on {
  background: rgba(180,48,56,.1);
  border-color: rgba(224,90,96,.38);
}
.imei-find-banner.on .imei-find-radar { --radar: #ff7878; }
.imei-find-banner.on .imei-find-copy b { color: #ff9c9c; }
@keyframes imeiFindPulse {
  0% { transform: scale(.78); opacity: .55; }
  80%, 100% { transform: scale(1.22); opacity: 0; }
}
@keyframes imeiFindSweep { to { transform: rotate(360deg); } }
@media (min-width: 1181px) {
  .imei-tools .imei-row .btn { flex: 1 1 132px; }
  .imei-find-copy b {
    border: 0;
    border-radius: 6px;
    padding: 5px 9px;
    line-height: 1.2;
    background: rgba(61,204,120,.1);
  }
  .imei-find-banner.on .imei-find-copy b { background: rgba(255,107,107,.1); }
  .imei-find-radar { box-shadow: none; }
  .imei-find-radar::before {
    inset: 1px;
    border: 0;
    background: conic-gradient(transparent 0deg 240deg, color-mix(in srgb, var(--radar) 45%, transparent) 360deg);
    mask-image: radial-gradient(circle, transparent 0 28%, #000 31% 65%, transparent 68%);
    transform-origin: center;
  }
  .imei-find-radar::after {
    inset: 7px;
    opacity: .4;
    animation: imeiFindGlow 2.4s ease-in-out infinite;
  }
  .imei-find-radar i { box-shadow: 0 0 0 3px color-mix(in srgb, var(--radar) 18%, transparent); }
  .kv > .imei-csn { order: 1; }
  .kv > .imei-psn { order: 2; }
  .kv > .imei-production { order: 3; }
}
@keyframes imeiFindGlow { 0%, 100% { opacity: .25; } 50% { opacity: .75; } }
@media (prefers-reduced-motion: reduce) {
  .imei-find-radar::before, .imei-find-radar::after { animation: none; }
}
html[data-theme="light"] .imei-find-banner.off {
  background: #edf8f1;
  border-color: #c3e4d0;
  box-shadow: none;
}
html[data-theme="light"] .imei-find-banner.off .imei-find-radar { --radar: #168753; }
html[data-theme="light"] .imei-find-banner.off .imei-find-copy b { color: #146b3a; }
html[data-theme="light"] .imei-find-banner.on {
  background: #fdf0f0;
  border-color: #f0c5c5;
  box-shadow: none;
}
html[data-theme="light"] .imei-find-banner.on .imei-find-radar { --radar: #bf3541; }
html[data-theme="light"] .imei-find-banner.on .imei-find-copy b { color: #9a2430; }

/* legacy pill (unused on IMEI page; keep for safety) */
.imei-find {
  margin: 0;
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 34px; padding: 0 12px 0 10px; white-space: nowrap;
  border-radius: 999px; border: 1px solid var(--line); background: var(--elev);
  color: var(--muted); font-size: 12.5px; font-weight: 650;
}
.imei-find i {
  width: 8px; height: 8px; border-radius: 50%; flex: 0 0 8px;
}
.imei-find b { font-size: 13px; font-weight: 800; letter-spacing: .01em; }
.imei-find.off { background: rgba(46,140,90,.14); border-color: rgba(61,168,110,.42); }
.imei-find.off i { background: #3dcc78; box-shadow: 0 0 0 3px rgba(61,204,120,.16); }
.imei-find.off b { color: #8ee0b0; }
.imei-find.on { background: rgba(180,48,56,.16); border-color: rgba(224,90,96,.45); }
.imei-find.on i { background: #e06a6a; box-shadow: 0 0 0 3px rgba(224,106,106,.16); }
.imei-find.on b { color: #ffb4b4; }
html[data-theme="light"] .imei-find.off { background: #e5f6ec; border-color: #b7e0c8; }
html[data-theme="light"] .imei-find.off b { color: #1b6b42; }
html[data-theme="light"] .imei-find.on { background: #fdecec; border-color: #f0c4c4; }
html[data-theme="light"] .imei-find.on b { color: #9a2430; }
.imei-pair {
  flex: 0 1 244px; display: flex; align-items: stretch; gap: 4px; min-width: 0;
}
.imei-pair #imeiIn {
  flex: 1 1 auto;
  width: 100%;
  min-width: 15ch;
  max-width: 22ch;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  letter-spacing: .03em;
  font-size: 15px;
}
.imei-luhn {
  width: 46px; flex: 0 0 46px; padding-left: 0; padding-right: 0; text-align: center;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-weight: 800; font-size: 18px; letter-spacing: 0;
  color: var(--text); border-color: var(--line);
  background: var(--elev);
}
.imei-row .btn { flex: 0 0 132px; }
.imei-log {
  padding: 12px 14px 0;
  background: var(--card);
  border-color: var(--line);
  color: var(--text);
  font-family: "Segoe UI", "Noto Sans", sans-serif;
  font-size: 13.5px;
  line-height: 1.5;
  overflow: hidden;
}
.imei-log-body { min-height: 4.2em; padding-bottom: 10px; }
.imei-log-with-run {
  display: flex;
  flex-direction: column;
}
.imei-log-with-run .imei-log-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.imei-log-with-run .imei-op-runbar.tr-runbar {
  flex-shrink: 0;
  margin: auto -14px 0;
  width: calc(100% + 28px);
  box-sizing: border-box;
  border-radius: 0 0 10px 10px;
  border-left: none;
  border-right: none;
  border-bottom: none;
}
.imei-op-runbar[hidden] { display: none !important; }
.imei-op-runbar .tr-runbar-txt {
  color: var(--text);
  font-weight: 600;
}
.imei-log .log-line { white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
.imei-log a.log-link, .tls-log a.log-link, .cln-log a.log-link {
  color: #6ea8ff; text-decoration: underline; text-underline-offset: 2px; cursor: pointer;
}
.imei-log a.log-link:hover, .tls-log a.log-link:hover, .cln-log a.log-link:hover { color: #9cc4ff; }
html[data-theme="light"] .imei-log a.log-link,
html[data-theme="light"] .tls-log a.log-link,
html[data-theme="light"] .cln-log a.log-link { color: #1a56c4; }
html[data-theme="light"] .imei-log a.log-link:hover,
html[data-theme="light"] .tls-log a.log-link:hover,
html[data-theme="light"] .cln-log a.log-link:hover { color: #0f3f96; }
.imei-log .log-line.is-shrink {
  display: flex;
  align-items: baseline;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
}
.imei-log .log-line.is-shrink .c-label,
.imei-log .log-line.is-shrink .log-sep { flex: 0 0 auto; }
.imei-log .log-shrink {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
.imei-log .c-gri { color: var(--log-head); }
.imei-log .log-head { color: var(--log-head); font-size: 15px; font-weight: 600; margin-bottom: 2px; }
.imei-log .c-label { color: var(--log-label); }
.imei-log .c-ok {
  color: #3dcc78;
  font-variant-emoji: text;
  font-family: "Segoe UI", "Segoe UI Symbol", sans-serif;
}
.imei-log .c-lime { color: var(--log-lime); }
.imei-log .c-yellow { color: var(--log-yellow); }
.imei-log .c-red { color: var(--log-red); }
.imei-log .c-white { color: var(--log-time); }
.imei-log .log-line.is-optime,
.cln-log .log-line.is-optime,
.tls-log .log-line.is-optime {
  font-size: 11.5px; /* diğer log satırından ~2px küçük */
  line-height: 1.5;
}
.imei-log .c-optime,
.cln-log .c-optime,
.tls-log .c-optime,
.imei-log .log-line.is-optime .log-sep,
.cln-log .log-line.is-optime .log-sep,
.tls-log .log-line.is-optime .log-sep,
.imei-log .log-line.is-optime .c-label,
.cln-log .log-line.is-optime .c-label,
.tls-log .log-line.is-optime .c-label {
  color: var(--log-head);
  font-size: inherit;
}
html[data-theme="light"] .imei-log .c-optime,
html[data-theme="light"] .cln-log .c-optime,
html[data-theme="light"] .tls-log .c-optime,
html[data-theme="light"] .imei-log .log-line.is-optime .log-sep,
html[data-theme="light"] .cln-log .log-line.is-optime .log-sep,
html[data-theme="light"] .tls-log .log-line.is-optime .log-sep,
html[data-theme="light"] .imei-log .log-line.is-optime .c-label,
html[data-theme="light"] .cln-log .log-line.is-optime .c-label,
html[data-theme="light"] .tls-log .log-line.is-optime .c-label {
  color: var(--log-head);
}
.imei-log .c-orange { color: #FF4500; }
html[data-theme="light"] .imei-log .c-orange { color: #d35400; }
.imei-prog {
  height: 10px;
  margin: 0 -14px;
  background: var(--log-track);
  overflow: hidden;
}
.imei-prog[hidden] { display: none; }
.imei-prog-fill {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #6a2429, #9a343c);
  box-shadow: 0 0 10px rgba(122, 36, 42, .45);
}
.result {
  display: grid; grid-template-columns: 220px 1fr; gap: 0; overflow: hidden;
}
.region-hero {
  position: relative;
  overflow: hidden;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  border-right: 1px solid var(--line);
  isolation: isolate;
}
.region-hero.china {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(196, 58, 68, .42), transparent 58%),
    linear-gradient(180deg, #4a1e24 0%, #2a1216 100%);
}
.region-hero.global {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(52, 160, 104, .4), transparent 58%),
    linear-gradient(180deg, #164233 0%, #0e2a20 100%);
}
.region-hero.unknown { background: rgba(255,255,255,.03); }
html[data-theme="light"] .region-hero.china {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(196, 58, 68, .18), transparent 60%),
    linear-gradient(180deg, #fdecec 0%, #f6d6d6 100%);
}
html[data-theme="light"] .region-hero.global {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(42, 140, 90, .2), transparent 60%),
    linear-gradient(180deg, #eaf7ef 0%, #d3edd9 100%);
}
/* A single crisp flag blends into a quiet, readable region panel. */
.region-hero:has(.region-flag-soft),
html[data-theme="light"] .region-hero:has(.region-flag-soft) {
  min-height: 238px;
  justify-content: flex-end;
  background: #151515;
  color: #fff;
}
html[data-theme="light"] .region-hero:has(.region-flag-soft) {
  background: #fff;
  color: #20232a;
}
.region-flag-soft {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.region-flag-soft::before {
  content: "";
  position: absolute;
  inset: -24px;
  background: var(--region-flag) center / cover no-repeat;
  filter: blur(26px);
  opacity: .25;
}
.region-flag-soft img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 58%;
  object-fit: cover;
  object-position: left top;
  mask-image: linear-gradient(to bottom, #000 40%, transparent 100%);
}
.region-flag-soft::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(125deg, rgba(255,255,255,.12), transparent 30%, rgba(0,0,0,.12) 52%, transparent 70%),
    linear-gradient(180deg, rgba(15,15,15,.04) 0%, rgba(15,15,15,.16) 30%, rgba(15,15,15,.62) 65%, rgba(15,15,15,.7) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
html[data-theme="light"] .region-flag-soft::before { opacity: .2; }
html[data-theme="light"] .region-flag-soft::after {
  background:
    linear-gradient(125deg, rgba(255,255,255,.1), transparent 30%),
    linear-gradient(180deg, transparent 0%, rgba(255,255,255,.3) 34%, rgba(255,255,255,.72) 67%, rgba(255,255,255,.78) 100%);
  box-shadow: inset 0 1px 0 rgba(0,0,0,.05);
}
.region-hero:has(.region-flag-soft) .region-kicker,
.region-hero:has(.region-flag-soft) .region-country { color: #c8cbd1; }
html[data-theme="light"] .region-hero:has(.region-flag-soft) .region-kicker,
html[data-theme="light"] .region-hero:has(.region-flag-soft) .region-country { color: #59606a; }
.region-hero:has(.region-flag-soft) .region-kicker { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; }
.region-hero:has(.region-flag-soft) h3 { font-size: 26px; letter-spacing: -.025em; }
.region-hero-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.region-kicker-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.region-flag-chip {
  width: 28px;
  height: 20px;
  object-fit: cover;
  border-radius: 3px;
  flex: 0 0 auto;
  opacity: .88;
  box-shadow: 0 0 0 1px rgba(255,255,255,.16);
}
.region-flag-chip-globe {
  width: 28px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 3px;
  opacity: .75;
  color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.08);
  box-shadow: 0 0 0 1px rgba(255,255,255,.12);
}
.region-flag-chip-globe .region-flag-globe {
  width: 14px;
  height: 14px;
}
.region-kicker {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
}
.region-hero h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}
.region-country {
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.35;
}
html[data-theme="light"] .region-flag-chip {
  opacity: .95;
  box-shadow: 0 0 0 1px rgba(0,0,0,.1);
}
html[data-theme="light"] .region-flag-chip-globe {
  color: #0f766e;
  background: rgba(255,255,255,.7);
}
.kv { padding: 16px 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.kv .row { min-width: 0; }
.kv .k { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.kv .v { font-size: 13.5px; font-weight: 700; margin-top: 3px; word-break: break-all; }

/* admin tables */
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
th { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); background: var(--head); }
tr:last-child td { border-bottom: 0; }
.row-off { opacity: 1; }
.row-off td:not(.td-act) { opacity: .48; }
.row-hid td:not(.td-act) { opacity: .7; }

.modal-back {
  position: fixed; inset: 0; z-index: 60; background: rgba(30,32,36,.45);
  display: flex; align-items: center; justify-content: center; padding: 18px;
}
.modal {
  width: min(760px, 100%); max-height: min(88vh, 900px); overflow: auto;
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  padding: 20px;
}
.modal h3 { margin: 0 0 14px; }
.modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.modal-head h3 { margin: 0; }
body.modal-on { overflow: hidden; }
.list-meta { color: var(--muted); font-size: 12px; font-weight: 650; margin: 0 0 8px; letter-spacing: .01em; }
.wa-btn { width: 100%; margin-bottom: 8px; }
.job-from-m { margin-top: 8px; }
.bulk-bar {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px;
  margin-bottom: 12px; background: var(--card);
}
.bulk-title { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.bulk-title span { color: var(--muted); font-size: 12px; font-weight: 650; }
.bulk-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bulk-row .select, .bulk-row .input { width: auto; min-width: 0; }
.bulk-row .select { flex: 1 1 140px; max-width: 200px; }
.bulk-amt { display: flex; align-items: center; gap: 6px; }
.bulk-amt .input { width: 88px; padding: 8px 10px; text-align: center; }
.bulk-mode { display: flex; gap: 4px; }
.bulk-only { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 12.5px; font-weight: 650; }
.bulk-replace { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.bulk-replace .bulk-title { margin-bottom: 8px; }
.bulk-row .bulk-from,
.bulk-row .bulk-to { width: 118px; flex: 0 0 118px; text-align: center; }
.bulk-row .bulk-group { flex: 1 1 220px; width: 220px; max-width: 320px; }
.bulk-arrow { color: var(--muted); font-weight: 750; padding: 0 2px; }
.side-mask { display: none; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.span-2 { grid-column: 1 / -1; }
.svc-row { display: grid; grid-template-columns: 34px 1fr 110px 36px; gap: 8px; margin-bottom: 8px; align-items: center; }
.drop {
  border: 1px dashed var(--line); border-radius: 14px; padding: 14px; text-align: center;
  color: var(--muted); font-size: 13px; cursor: pointer;
}
.drop img { max-height: 110px; border-radius: 10px; display: block; margin: 0 auto 8px; }
.photo-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.photo-tools .hint { margin: 0; }
.photo-picks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.photo-pick {
  width: 96px; border: 1px solid var(--line); background: var(--thumb);
  border-radius: 10px; padding: 6px 6px 7px; color: var(--muted);
  display: grid; gap: 4px; justify-items: center; text-align: center;
}
.photo-pick img { width: 72px; height: 84px; object-fit: contain; background: #ececec; border-radius: 6px; }
.photo-pick span { font-size: 10.5px; font-weight: 650; line-height: 1.25; }
.photo-pick:hover, .photo-pick.on { border-color: var(--red-border); color: var(--text); }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.modal-actions .btn-purge-job { margin-right: auto; }

.toasts { position: fixed; right: 16px; bottom: 16px; z-index: 80; display: grid; gap: 8px; }
.toast {
  background: var(--card); border: 1px solid var(--line); border-radius: 6px;
  padding: 10px 12px; min-width: 220px; font-size: 13px; font-weight: 500;
}
.toast.err { border-color: rgba(239,68,68,.35); color: #f87171; }
html[data-theme="light"] .toast.err { color: #8a2a2a; }

.notice-wrap { position: relative; margin-left: auto; }
.notice-btn { position: relative; }
.notice-dot {
  position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px;
  padding: 0 4px; border-radius: 99px; background: #c2742e; color: #fff;
  font-size: 10px; font-weight: 800; display: grid; place-items: center; line-height: 1;
}
.notice-panel {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 40;
  width: min(320px, calc(100dvw - 28px));
  background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 16px 40px rgba(0,0,0,.35); overflow: hidden;
}
.notice-panel-h {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px 12px; border-bottom: 1px solid var(--line); flex-wrap: wrap;
}
.notice-panel-h b { font-size: 13px; }
.notice-panel-acts { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-left: auto; }
.notice-panel-h .btn { white-space: nowrap; flex: 0 0 auto; }
.notice-item {
  width: 100%; display: grid; grid-template-columns: 36px 1fr 28px; gap: 8px;
  align-items: center; text-align: left; border: 0; background: transparent;
  color: inherit; padding: 8px 10px;
}
.notice-item.bare { grid-template-columns: 1fr 28px; }
.notice-item:hover { background: var(--elev); }
.notice-item.fresh { background: rgba(201,134,74,.08); }
.notice-item img { width: 36px; height: 48px; object-fit: cover; border-radius: 6px; background: var(--elev); }
.notice-go {
  display: block; width: 100%; border: 0; background: transparent; color: inherit;
  text-align: left; padding: 0; cursor: pointer; min-width: 0;
}
.notice-item b { display: block; font-size: 13px; }
.notice-item small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.notice-del { color: var(--muted); }
.notice-del:hover { color: #e08a8a; }
.notice-empty { margin: 0; padding: 18px 12px; color: var(--muted); font-size: 13px; text-align: center; }

.ready-pops {
  position: fixed; top: 16px; right: 16px; z-index: 95;
  display: grid; gap: 10px; pointer-events: none;
}
.ready-pop {
  pointer-events: auto; width: min(360px, calc(100dvw - 28px));
  display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center;
  text-align: left; border: 1px solid rgba(61,143,104,.35); background: var(--card);
  color: inherit; border-radius: 10px; padding: 12px 14px;
  box-shadow: 0 18px 44px rgba(0,0,0,.42);
  transform: translateX(16px); opacity: 0; transition: transform .28s ease, opacity .28s ease;
  cursor: pointer;
}
.ready-pop.on { transform: none; opacity: 1; }
.ready-pop.bare { grid-template-columns: 1fr; }
.ready-pop img { width: 44px; height: 56px; object-fit: cover; border-radius: 8px; background: var(--elev); }
.ready-pop b { display: block; font-size: 14px; font-weight: 700; }
.ready-pop em {
  display: block; margin-top: 2px; font-style: normal; font-weight: 750;
  color: #3d8f68; font-size: 13px; letter-spacing: .02em;
}
html[data-theme="light"] .ready-pop { border-color: rgba(42,122,84,.28); }
html[data-theme="light"] .ready-pop em { color: #2a7a54; }
.ready-pop.is-pending { border-color: rgba(212,179,106,.4); }
.ready-pop.is-pending em { color: #d4b36a; }
.ready-pop.is-void { border-color: rgba(196,43,53,.4); }
.ready-pop.is-void em { color: #e08a8a; }
.ready-pop.is-sec { border-color: rgba(224,90,96,.7); background: rgba(120, 24, 32, .35); }
.ready-pop.is-sec em { color: #ffb4b4; }
html[data-theme="light"] .ready-pop.is-pending { border-color: #e4d5a8; }
html[data-theme="light"] .ready-pop.is-pending em { color: #6a5818; }
html[data-theme="light"] .ready-pop.is-void { border-color: #e4c4c4; }
html[data-theme="light"] .ready-pop.is-void em { color: #8a2a2a; }
html[data-theme="light"] .ready-pop.is-sec { border-color: #e4b4b4; background: #fff4f4; }
html[data-theme="light"] .ready-pop.is-sec em { color: #8a2a2a; }
.ready-pop small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }

.menu-btn { display: none !important; }

.push-hint { margin: 0 0 12px; }
.push-hint .btn-primary { flex: 0 0 auto; align-self: center; }
.push-hint-x { margin-left: auto; flex: 0 0 auto; }
.banners { display: grid; gap: 8px; margin: 0 0 16px; }
.banner {
  display: flex; gap: 12px; align-items: flex-start;
  border-radius: 6px; padding: 10px 12px; border: 1px solid var(--line);
}
.banner b { display: block; font-size: 13.5px; margin-bottom: 2px; }
.banner p { margin: 0; font-size: 13px; line-height: 1.45; color: inherit; opacity: .9; }
.banner-ico {
  width: 34px; height: 34px; border-radius: 11px; flex: 0 0 34px;
  display: grid; place-items: center;
}
.banner-info { background: rgba(56,189,248,.1); border-color: rgba(56,189,248,.28); color: #bae6fd; }
.banner-info .banner-ico { background: rgba(56,189,248,.18); color: #7dd3fc; }
.banner-warn { background: rgba(251,191,36,.1); border-color: rgba(251,191,36,.28); color: #fde68a; }
.banner-warn .banner-ico { background: rgba(251,191,36,.16); color: #fbbf24; }
.banner-urgent { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.32); color: #fecaca; }
.banner-urgent .banner-ico { background: rgba(239,68,68,.2); color: #f87171; }
.banner-success { background: rgba(52,211,153,.1); border-color: rgba(52,211,153,.28); color: #a7f3d0; }
.banner-success .banner-ico { background: rgba(52,211,153,.16); color: #34d399; }
.banner-promo { background: rgba(167,139,250,.12); border-color: rgba(167,139,250,.3); color: #ddd6fe; }
.banner-promo .banner-ico { background: rgba(167,139,250,.18); color: #c4b5fd; }
html[data-theme="light"] .banner-info { background: #e8f4fb; border-color: #c5dde8; color: #2a5a72; }
html[data-theme="light"] .banner-info .banner-ico { background: #d4eaf4; color: #2a5a72; }
html[data-theme="light"] .banner-warn { background: #f7f1de; border-color: #e4d5a8; color: #6a5818; }
html[data-theme="light"] .banner-warn .banner-ico { background: #efe4c4; color: #6a5818; }
html[data-theme="light"] .banner-urgent { background: #f8eaea; border-color: #e4c4c4; color: #8a2a2a; }
html[data-theme="light"] .banner-urgent .banner-ico { background: #f0d6d6; color: #8a2a2a; }
html[data-theme="light"] .banner-success { background: #e8f4ee; border-color: #c0dccb; color: #2a6a4a; }
html[data-theme="light"] .banner-success .banner-ico { background: #d4eadc; color: #2a6a4a; }
html[data-theme="light"] .banner-promo { background: #efeaf8; border-color: #d4cce6; color: #4a3d72; }
html[data-theme="light"] .banner-promo .banner-ico { background: #e4dcf2; color: #4a3d72; }
html[data-theme="light"] .kind-job { color: #a42332; background: rgba(180,35,44,.08); }
html[data-theme="light"] .kind-payment { color: #1f6b48; background: rgba(42,122,84,.1); }
html[data-theme="light"] .kind-debit { color: #7a6210; background: rgba(154,122,18,.1); }
html[data-theme="light"] .kind-credit { color: #4a3d72; background: rgba(90,70,150,.1); }
html[data-theme="light"] .bal-debt, html[data-theme="light"] .amt-plus { color: #8a6a28; }
html[data-theme="light"] .bal-credit, html[data-theme="light"] .amt-minus { color: #2a7a54; }
html[data-theme="light"] .notice { color: #6a5818; }
html[data-theme="light"] .svc-imei .pill-ico { color: #2a6a78; }
html[data-theme="light"] .svc-sifre .pill-ico { color: #8a6418; }
html[data-theme="light"] .svc-yazilim .pill-ico { color: #5a4a8a; }
html[data-theme="light"] .svc-frp .pill-ico { color: #2a6a4a; }

.ledger { display: grid; gap: 14px; }
.daybar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.daybar .hide-imei-tog { margin: 0 0 0 auto; }
.export-split { display: flex; gap: 6px; }
.daybar-mid { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; flex-wrap: wrap; }
.daybar-mid b { font-size: 16px; letter-spacing: -.02em; text-transform: capitalize; }
.day-pick { width: auto; max-width: 160px; padding: 8px 10px; }
@media (max-width: 760px) {
  #dayPrev, .daybar-mid, #dayNext { order: 0; }
  .daybar-mid { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; }
  .daybar .daybar-mid b { display: none; }
  .day-pick { display: block; width: 100%; max-width: none; min-width: 0; }
  .daybar::after {
    content: "";
    order: 1;
    flex: 1 0 100%;
    width: 0;
    height: 0;
  }
  #dayToday, #openInsight, .daybar .export-split, .daybar .hide-imei-tog {
    order: 2;
    margin-left: 0;
  }
  .daybar .hide-imei-tog { margin-left: auto; }
}
.weekstrip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.week-chip {
  border: 1px solid var(--line); background: var(--card); color: var(--muted);
  border-radius: 6px; padding: 8px 6px; display: grid; gap: 2px; text-align: left;
}
.week-chip small { font-size: 10.5px; font-weight: 700; text-transform: capitalize; }
.week-chip strong { font-size: 12px; color: var(--text); font-weight: 800; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.week-chip.on { border-color: var(--focus); background: var(--elev); color: var(--text); }
.week-chip.on strong { color: var(--text); }
.week-chip.today:not(.on) { border-color: #4a4b52; }
.stat-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 10px; }
.stat-row-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stat-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px;
}
.stat-card span { display: block; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
.stat-card b { display: block; margin-top: 4px; font-size: 20px; font-weight: 600; }
.stat-card .money, .cari-hero b, .cari-chip strong, .side-bal { font-family: inherit; font-weight: 600; font-variant-numeric: tabular-nums; }
.stat-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 500; }
.stat-total, .stat-ok, .stat-net { background: var(--card); }
.stat-svc { font-size: 14px !important; line-height: 1.35; }
.ledger-tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ledger-tools .select { max-width: 240px; }
.ledger-table .td-time { font-variant-numeric: tabular-nums; font-weight: 750; color: var(--text); white-space: nowrap; }
.ledger-table .td-amt { font-weight: 800; white-space: nowrap; }
.ledger-table .td-amt.amt-hold { opacity: .72; font-weight: 700; }
.td-sub { color: var(--muted); font-size: 12px; margin-top: 2px; }
.td-act { white-space: nowrap; vertical-align: middle; }
td.td-act:not(:has(.td-act-in)) { display: flex; align-items: center; gap: 6px; }
.td-act-in { display: inline-flex; align-items: center; gap: 6px; vertical-align: middle; }
.models-table .td-act {
  display: table-cell;
  vertical-align: middle;
  width: 1%;
  text-align: right;
}
.models-table .td-prices,
.models-table .td-model { vertical-align: middle; }
.models-table .gline {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 30px;
}
.models-table .prices-row {
  justify-content: flex-start;
  margin-left: 0;
  flex: 0 1 auto;
  align-items: center;
}
.models-table .ask { line-height: 1; display: inline-flex; align-items: center; }
.models-table .td-act-in .btn { height: 30px; }
.vis-m.is-off { color: var(--muted); }
.hint-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hover-tip {
  position: fixed; left: 0; top: 0; z-index: 90; pointer-events: none;
  background: #1c1e22; color: #f4f5f7; border: 1px solid #3a3e46;
  border-radius: 4px; padding: 5px 8px; font-size: 12px; font-weight: 600;
  white-space: nowrap; box-shadow: 0 8px 20px rgba(0,0,0,.28);
}
.hover-tip[hidden] { display: none !important; }
html[data-theme="light"] .hover-tip {
  background: #2a2d33; color: #fff; border-color: #454951;
}
.suggest {
  margin-top: 6px; border: 1px solid var(--line); border-radius: 4px; overflow: hidden;
  background: var(--card);
}
.suggest-item {
  width: 100%; text-align: left; border: 0; background: transparent; color: inherit;
  padding: 9px 12px; display: flex; justify-content: space-between; gap: 10px; font-weight: 650;
}
.suggest-item:hover { background: rgba(255,255,255,.05); }
.suggest-item span { color: var(--muted); font-size: 12px; }
.suggest-empty { padding: 10px 12px; }
.suggest-empty .hint { margin: 0; font-size: 12px; }
.field { position: relative; }
.field .suggest {
  position: relative; z-index: 12;
  max-height: min(240px, 38vh); overflow: auto;
}
.svc-pick { display: flex; flex-wrap: wrap; gap: 7px; }
.price-hints { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.hint-price {
  border: 1px solid var(--line); background: var(--elev); color: var(--text);
  border-radius: 6px; padding: 5px 10px; font-size: 12px; font-weight: 500;
}
.hint-price:hover { border-color: rgba(239,68,68,.35); }
.modal-wide { width: min(820px, 100%); }
.announce-admin { display: grid; gap: 12px; }
.dealer-picks {
  display: grid; gap: 2px; max-height: 200px; overflow: auto;
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px;
  background: var(--input);
}
.dealer-picks.job-checks { margin: 0; }
#dealerPicks[hidden] { display: none; }
.announce-row .banner { margin: 0; }
.announce-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 4px; color: var(--muted); font-size: 12px; font-weight: 650; }
.banner-preview { display: grid; gap: 8px; margin-top: 16px; text-align: left; }

.cari-strip {
  display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 6px;
  scrollbar-width: thin;
}
.cari-chip {
  min-width: 148px; flex: 0 0 auto; text-align: left;
  border: 1px solid var(--line); background: var(--card); color: inherit;
  border-radius: 8px; padding: 10px 12px; display: grid; gap: 2px;
}
.cari-chip span { font-size: 12px; font-weight: 750; color: var(--muted); }
.cari-chip strong { font-size: 18px; }
.cari-chip small { font-size: 11px; color: var(--faint); font-weight: 500; letter-spacing: 0; text-transform: none; }
.cari-chip.on { border-color: var(--focus); background: var(--elev); }
.cari-hero {
  border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px;
  background: var(--card);
}
.cari-hero span { display: block; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
.cari-hero b { display: block; margin: 6px 0 4px; font-size: 28px; font-weight: 600; }
.cari-hero small { color: var(--muted); font-size: 12.5px; line-height: 1.4; }
.sales-bal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.sales-bal-grid .cari-hero { padding: 12px 14px; }
.sales-bal-grid .cari-hero b { font-size: 22px; margin: 4px 0 0; }
.sales-sell-head { margin-bottom: 14px; }
@media (max-width: 720px) {
  .sales-bal-grid { grid-template-columns: 1fr; }
}
.bal-debt, .amt-plus { color: #d4b07a; }
.bal-credit, .amt-minus { color: #6fba94; }
.bal-zero { color: var(--text); }
.stat-bal.bal-debt, .stat-bal.bal-credit { border-color: var(--line); }
.kind-badge {
  display: inline-flex; align-items: center; border-radius: 4px;
  padding: 2px 6px; font-size: 11px; font-weight: 600; letter-spacing: 0; text-transform: none;
}
.kind-job { background: rgba(225,29,72,.12); color: #fda4af; }
.kind-payment { background: rgba(52,211,153,.12); color: #6ee7b7; }
.kind-debit { background: rgba(251,191,36,.12); color: #fde68a; }
.kind-credit { background: rgba(167,139,250,.14); color: #ddd6fe; }
.kind-sale { background: rgba(56,140,190,.16); color: #9fd4f5; }
.kind-expense { background: rgba(196,43,53,.14); color: #f0b4b4; }
html[data-theme="light"] .kind-sale { background: #e7f3fb; color: #1a5f86; }
html[data-theme="light"] .kind-expense { background: #fdecec; color: #9a2430; }
.party-pick.job-mode.root-chips {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 2px 0;
  margin: 4px 0 0;
}
.opt-row.job-checks { margin: 0; }
.sale-item-in { margin-top: 8px; }
.sale-settings { padding: 18px; max-width: 640px; }
#setForm + .sale-settings { margin-top: 16px; }
.sale-block { margin: 0 0 16px; }
.sale-block-h { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.sale-items { display: flex; flex-wrap: wrap; gap: 6px; min-height: 28px; }
.sale-chip {
  display: inline-flex; align-items: center; gap: 4px;
  border: 1px solid var(--line); border-radius: 999px;
  padding: 3px 3px 3px 10px; font-size: 12.5px; font-weight: 650;
  background: var(--elev);
}
.sale-x {
  width: 22px; height: 22px; border: 0; border-radius: 999px;
  background: transparent; color: var(--muted); cursor: pointer; font-size: 14px; line-height: 1;
}
.sale-x:hover { color: var(--text); background: rgba(255,255,255,.06); }
html[data-theme="light"] .sale-x:hover { background: rgba(0,0,0,.06); }
.sale-add { display: flex; gap: 8px; margin-top: 8px; }
.sale-add .input { flex: 1; min-width: 0; }
.kind-chips { margin: 0; }
.side-bal {
  display: block; margin-top: 8px; font-size: 14px; font-style: normal; color: #e4d2a6;
}
.account-card { padding: 20px; max-width: 440px; }
.card-title { margin: 0 0 14px; font-size: 16px; }
.who em { font-style: normal; }

.menu-btn { display: none !important; }

@media (max-width: 1280px) {
  .catalog-split { display: block; }
  .desk-rail { display: none; }
}
@media (max-width: 1180px) {
  .shell { grid-template-columns: minmax(0, 1fr); }
  .side {
    position: fixed; inset: 0 auto 0 0; width: min(280px, 86vw); z-index: 30;
    transform: translateX(-105%); transition: transform .2s;
    padding-top: max(16px, env(safe-area-inset-top, 0px));
    padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  }
  .side.open { transform: none; }
  .menu-btn { display: inline-flex !important; }
  .result, .form-grid, .mcard { grid-template-columns: minmax(0, 1fr); }
  .plist-head, .prow { grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 10px 12px; }
  .td-model { min-width: 180px; }
  .region-hero { border-right: 0; border-bottom: 1px solid var(--line); }
  .kv { grid-template-columns: 1fr; }
  .main {
    padding: 16px max(14px, env(safe-area-inset-right, 0px)) calc(90px + env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px));
  }
  .side-mask {
    display: block; position: fixed; inset: 0; z-index: 25;
    background: rgba(4,6,12,.55);
  }
  .bulk-row .select { max-width: none; flex: 1 1 100%; }
  /* 4 kart: 2x2. 3 kart (Günlük iş / Tahsilat / Günün neti): tek sıra. */
  .stat-row, .stat-row-4 { grid-template-columns: 1fr 1fr; }
  .stat-row-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }
  .stat-row-3 .stat-card { padding: 10px 8px; min-width: 0; }
  .stat-row-3 .stat-card span { font-size: 11px; line-height: 1.2; }
  .stat-row-3 .stat-card b {
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .stat-row-3 .stat-card small { font-size: 10px; line-height: 1.25; }
  .weekstrip { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
  .week-chip { padding: 6px 3px; text-align: center; }
  .week-chip small { font-size: 10px; }
  .week-chip strong { font-size: 10.5px; letter-spacing: -.03em; }
  .ledger-dealer { gap: 10px; }
  .ledger-dealer .cari-hero { padding: 12px 14px; }
  .ledger-dealer .cari-hero b { margin: 2px 0 0; font-size: 24px; }
  .ledger-dealer .daybar-mid b { display: none; }
  .ledger-dealer .stat-card { padding: 10px 8px; }
  .ledger-dealer .stat-card b { font-size: 15px; }
  .ledger-dealer .ledger-tools { margin: 0; }
  .imei-tools { grid-template-columns: minmax(0, 1fr); }
  .imei-tools.imei-tools-solo { max-width: none; }
  /* Same row as title: icon | title… | gizle (far right). */
  .imei-hero {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
  }
  .imei-hero-txt span { display: none; }
  .imei-side {
    width: auto;
    min-height: 0;
    justify-content: flex-end;
  }
  .imei-side .hide-imei-tog {
    width: auto;
    font-size: 12px;
    gap: 6px;
  }
  .imei-block + .imei-block { padding-left: 0; border-left: 0; padding-top: 14px; border-top: 1px solid var(--line); }
  .imei-composer { min-height: 48px; gap: 4px; padding: 4px; overflow: hidden; }
  .imei-spin { flex: 0 0 26px; }
  .imei-spin-btn { width: 26px; }
  .imei-bare { font-size: 15px; letter-spacing: 0; }
  .imei-luhn-badge { flex: 0 0 36px; min-width: 36px; }
  .imei-luhn-badge span { font-size: 7px; letter-spacing: .02em; }
  .imei-luhn-badge b { font-size: 14px; }
  .imei-ico-btn { width: 30px; height: 30px; }
  .imei-composer-sep { margin: 8px 0; }
  .imei-row {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
  }
  .imei-pair {
    flex: 1 1 auto;
    width: 100%;
  }
  .imei-pair #imeiIn {
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: 1 1 auto;
    font-size: 16px; /* iOS zoom önleme */
    letter-spacing: .02em;
  }
  .psn-in {
    width: 100%;
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    font-size: 16px;
  }
  .imei-block { flex: 1 1 100%; }
  .imei-block + .imei-block {
    padding-left: 0;
    border-left: 0;
    padding-top: 14px;
    border-top: 1px solid var(--line);
  }
  .imei-row .btn {
    flex: 1 1 auto;
    width: 100%;
  }
  .imei-side {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
  }
  .imei-find-banner { width: 100%; }
  .notice-panel {
    position: fixed;
    top: max(12px, env(safe-area-inset-top, 0px));
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    width: auto;
    max-height: min(72dvh, 560px);
    overflow: auto;
    z-index: 55;
  }
}

@media (max-width: 760px) {
  .chip[data-kind="region"] { display: none; }
  .topbar .grow { flex: 1 1 100%; max-width: none; order: 3; }
  .plist-head { display: none; }
  .prow {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 10px 12px;
    align-items: stretch;
  }
  .prow-id b { white-space: normal; }
  .prow-note { white-space: normal; }
  .prow-id b { font-size: 14.5px; }
  .model-thumb { width: 40px; height: 52px; flex-basis: 40px; }
  .gline {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
  }
  .os-inline { gap: 4px; min-width: 0; }
  .osp { height: 22px; padding: 0 7px 0 6px; font-size: 11px; gap: 5px; }
  .os-fam { gap: 3px; padding: 2px 3px 2px 3px; }
  .os-fam-lab { font-size: 10px; gap: 3px; letter-spacing: -.03em; }
  .os-mark, .os-glyph { width: 12px; height: 12px; flex-basis: 12px; }
  .os-mark-miui text { font-size: 6.4px; }
  .os-ver { width: 16px; height: 16px; }
  .os-ver b { font-size: 9px; }
  .os-ver .osb-orbit { inset: 1.5px; }
  .prices-row { width: auto; flex: 0 0 auto; justify-content: flex-end; margin-left: 0; }
  .pill { padding: 2px 6px 2px 2px; gap: 4px; }
  .pill b { font-size: 12.5px; }

  .ledger-staff .table-wrap,
  .ledger-dealer .table-wrap { overflow: visible; border: 0; background: transparent; }
  .ledger-staff .ledger-table,
  .ledger-dealer .ledger-table,
  .ledger-staff .ledger-table tbody,
  .ledger-dealer .ledger-table tbody { display: grid; gap: 8px; width: 100%; }
  .ledger-staff .ledger-table thead,
  .ledger-dealer .ledger-table thead { display: none; }
  .ledger-staff .ledger-table tr,
  .ledger-dealer .ledger-table tr {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "time kind amt"
      "desc desc desc"
      "svc svc svc"
      "dealer dealer dealer"
      "act act act";
    gap: 3px 8px;
    padding: 10px 12px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 10px;
  }
  .ledger-dealer .ledger-table tr { grid-template-areas: "time kind amt" "desc desc desc" "svc svc svc"; }
  .ledger-staff .ledger-table td,
  .ledger-dealer .ledger-table td { display: block; border: 0; padding: 0; width: auto; }
  .ledger-table .td-time { grid-area: time; }
  .ledger-table .td-kind { grid-area: kind; min-width: 0; }
  .ledger-table .td-kind .td-sub { display: inline; margin: 0 0 0 6px; }
  .ledger-table .td-desc { grid-area: desc; min-width: 0; }
  .ledger-table .td-desc b { word-break: break-word; }
  .ledger-table .td-svc { grid-area: svc; min-width: 0; }
  .ledger-table .td-dealer { grid-area: dealer; color: var(--muted); font-size: 12px; }
  .ledger-table .td-amt { grid-area: amt; text-align: right; align-self: center; }
  .ledger-table .td-act {
    grid-area: act;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    white-space: normal;
  }

  .table-wrap:has(.models-table) { overflow: hidden; border-radius: 12px; }
  .models-table thead { display: none; }
  .models-table,
  .models-table tbody,
  .models-table tr,
  .models-table td { display: block; width: auto; }
  .models-table tr {
    padding: 10px 12px 12px;
    border-bottom: 1px solid var(--line);
  }
  .models-table tr:last-child { border-bottom: 0; }
  .models-table td { border: 0; padding: 0; }
  .models-table .td-model { min-width: 0; align-items: center; }
  .models-table .td-os { display: none; }
  .models-table td:nth-child(2) { margin: 4px 0 2px 50px; }
  .models-table .glines { margin-top: 6px; }
  .models-table .td-act {
    display: block;
    width: auto;
    margin-top: 8px;
    text-align: left;
  }
  .models-table .td-act-in {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    white-space: normal;
  }
}

.brand-box { position: relative; }
.brand-box .brand-in { padding-right: 34px; }
.brand-caret {
  position: absolute; right: 2px; top: 2px; bottom: 2px; width: 30px;
  border: 0; background: transparent; cursor: pointer; color: var(--muted);
}
.brand-caret::before {
  content: "";
  position: absolute; left: 9px; top: 50%;
  border: 5px solid transparent; border-top-color: currentColor; transform: translateY(-2px);
}
.brand-caret.on::before { transform: translateY(-6px) rotate(180deg); }
.brand-menu {
  position: absolute; z-index: 8; left: 0; right: 0; top: calc(100% + 4px);
  background: var(--elev); border: 1px solid var(--line); border-radius: 10px;
  padding: 4px; display: flex; flex-direction: column;
  box-shadow: 0 12px 28px rgba(0,0,0,.4);
}
.brand-menu[hidden] { display: none; }
.brand-opt {
  text-align: left; background: transparent; border: 0; color: var(--text);
  padding: 8px 10px; border-radius: 8px; cursor: pointer; font: inherit;
}
.brand-opt:hover { background: rgba(160,48,56,.22); }
.side-mem { display: block; margin-top: 6px; font-style: normal; font-size: 12px; font-weight: 650; color: #fff; line-height: 1.35; }
.side-mem-days { font-weight: 800; }
.side-mem-days.is-ok { color: #34d399; }
.side-mem-days.is-low { color: #f87171; }
html[data-theme="light"] .side-mem { color: #111; }
.member-banner { margin: 0 0 14px; }
.member-remain { margin: 0 0 6px; font-size: 22px; font-weight: 740; letter-spacing: -.02em; }
.lock-card { text-align: center; }
.lock-card h1 { font-size: 22px; margin: 10px 0 8px; }
.lock-card p { color: var(--muted); line-height: 1.5; margin: 0 0 18px; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 16px; }
.plan-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 18px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.plan-card.best { border-color: rgba(196, 90, 96, .72); box-shadow: 0 0 0 1px rgba(196, 90, 96, .22); }
.plan-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.plan-off, .plan-tag {
  font-size: 12px;
  font-weight: 720;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(160, 48, 56, .2);
  color: #f0b4b6;
}
.plan-off.start { background: var(--elev); color: var(--muted); }
.plan-tag { background: rgba(251, 191, 36, .14); color: #fbbf24; }
.plan-term { font-size: 18px; }
.plan-price { font-size: 34px; font-weight: 760; letter-spacing: -.03em; line-height: 1; }
.plan-price-edit { margin: 10px 0 4px; }
.plan-price-edit .input { max-width: 160px; }
.plan-price small { font-size: 16px; font-weight: 680; }
.plan-eq { color: var(--muted); font-size: 13px; }
.plan-eq .c-orange { color: #FF8A3D; text-decoration-color: #FF8A3D; }
.plan-card ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.plan-card li { display: flex; gap: 8px; align-items: center; font-size: 13.5px; }
.plan-card li .ico { color: #3dcc78; flex: none; }
.plan-card .plan-give, .plan-card .plan-all { margin-top: auto; width: 100%; }
.plan-note, .plan-admin { margin-bottom: 14px; }
.plan-find { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
.plan-find .search { flex: 1; min-width: 0; }
.plan-find .hint { margin: 0; white-space: nowrap; }
.plan-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.plan-tools .field { min-width: 180px; flex: 1; margin: 0; }
.card.plan-admin { overflow: visible; }
.plan-pick { position: relative; min-width: 260px; }
.plan-pick-btn {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  text-align: left; cursor: pointer; appearance: none;
}
.plan-pick-btn em {
  font-style: normal; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.plan-pick-btn .ico { color: var(--muted); flex: 0 0 auto; }
body.plan-pick-on { overflow: hidden; }
.plan-pick-overlay {
  position: fixed; inset: 0; z-index: 96;
  display: flex; align-items: center; justify-content: center;
  padding: max(16px, 4vh) 16px;
  background: rgba(0, 0, 0, .58);
  backdrop-filter: blur(2px);
}
.plan-pick-overlay[hidden] { display: none !important; }
.plan-pick-sheet {
  width: min(540px, 100%);
  max-height: min(72vh, 680px);
  display: flex; flex-direction: column;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 28px 56px rgba(0, 0, 0, .5);
  overflow: hidden;
}
.plan-pick-sheet-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 16px; border-bottom: 1px solid var(--line);
}
.plan-pick-sheet-head h4 { margin: 0; font-size: 16px; font-weight: 650; }
.plan-pick-sheet-meta { margin: 0; padding: 10px 16px 0; }
.plan-pick-sheet-list {
  flex: 1; min-height: 0; overflow: auto;
  padding: 10px 12px 14px;
}
.plan-pick-item {
  width: 100%;
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px;
  background: transparent; border: 0; color: var(--text);
  padding: 10px 12px; border-radius: 8px; cursor: pointer; text-align: left;
  white-space: normal;
}
.plan-pick-item:hover { background: #2a1618; }
.plan-pick-item.on { background: #3a181c; }
.plan-pick-item b {
  font-weight: 650;
  white-space: normal;
  overflow: visible;
  word-break: break-word;
}
.plan-pick-item span {
  color: var(--muted);
  font-size: 12px;
  white-space: normal;
  overflow: visible;
  word-break: break-word;
}
.plan-pick-empty { padding: 12px; color: var(--muted); font-size: 13px; }
html[data-theme="light"] .plan-pick-item:hover { background: #f3e4e6; }
html[data-theme="light"] .plan-pick-item.on { background: #ead4d6; }
html[data-theme="light"] .plan-pick-overlay { background: rgba(16, 14, 14, .42); }
html[data-theme="light"] .plan-pick-sheet { box-shadow: 0 20px 40px rgba(20, 16, 16, .16); }

/* Auto Root: Fastboot WebUSB ilk eşleme — form blur + ortada seçim kartı */
body.fb-pick-on { overflow: hidden; }
.fb-pick-overlay {
  position: fixed; inset: 0; z-index: 97;
  display: flex; align-items: center; justify-content: center;
  padding: max(16px, 4vh) 16px;
  background: rgba(0, 0, 0, .62);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.fb-pick-card {
  width: min(380px, 100%);
  padding: 26px 22px 18px;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 28px 56px rgba(0, 0, 0, .55);
}
.fb-pick-ico {
  width: 64px; height: 64px; margin: 0 auto 14px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 16px;
  background: rgba(194, 112, 12, .14);
  color: #e0a04a;
}
.fb-pick-card h3 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.02em;
}
.fb-pick-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.fb-pick-actions .tls-btn {
  width: 100%;
  height: 34px;
  min-height: 34px;
  font-size: 12px;
}
.fb-pick-hint {
  margin: 12px 0 0 !important;
  font-size: 12px !important;
  color: #e08a8a;
  min-height: 1.2em;
}
.fb-pick-hint:empty { display: none; }
html[data-theme="light"] .fb-pick-overlay { background: rgba(16, 14, 14, .45); }
html[data-theme="light"] .fb-pick-card { box-shadow: 0 20px 40px rgba(20, 16, 16, .18); }
html[data-theme="light"] .fb-pick-ico { background: rgba(194, 112, 12, .1); color: #b56a0a; }

/* Unlock Bootloader — slot seçimi (Root radio stili + blur overlay) */
body.lk-slot-on { overflow: hidden; }
.lk-slot-overlay {
  position: fixed; inset: 0; z-index: 97;
  display: flex; align-items: center; justify-content: center;
  padding: max(16px, 4vh) 16px;
  background: rgba(0, 0, 0, .62);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.lk-slot-card {
  width: min(420px, 100%);
  padding: 22px 22px 18px;
  text-align: left;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 28px 56px rgba(0, 0, 0, .55);
}
.lk-slot-card h3 {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: -.02em;
  text-align: center;
}
.lk-slot-device {
  margin: 0 0 14px;
  text-align: center;
  font-size: 13px;
  color: #c2700c;
  font-weight: 600;
}
.lk-slot-sec {
  margin: 0 0 8px;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #8a8a8a;
  font-weight: 600;
}
.lk-slot-chips {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  margin: 0 0 16px;
}
.lk-slot-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.lk-slot-actions .tls-btn {
  width: 100%;
  height: 34px;
  min-height: 34px;
  font-size: 12px;
}
html[data-theme="light"] .lk-slot-overlay { background: rgba(16, 14, 14, .45); }
html[data-theme="light"] .lk-slot-card { box-shadow: 0 20px 40px rgba(20, 16, 16, .18); }
html[data-theme="light"] .lk-slot-device { color: #b56a0a; }
html[data-theme="light"] .lk-slot-sec { color: #6a7180; }
.lk-slot-card.fb-modem-card { width: min(460px, 100%); }
.fb-modem-pick-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 8px 10px;
  background: var(--surface-2, rgba(255, 255, 255, .03));
  border: 1px solid var(--line);
  border-radius: 10px;
}
.fb-modem-pick-row .tls-btn {
  flex: 0 0 auto;
  height: 32px;
  min-height: 32px;
  padding: 0 12px;
  font-size: 12px;
}
.fb-modem-pick-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fb-modem-pick-name.is-picked {
  color: var(--text);
  font-weight: 600;
}
.fb-modem-imei-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 14px;
}
.fb-modem-pick-err {
  margin: 0 0 12px;
  font-size: 12px;
  color: #e25b5b;
  font-weight: 500;
  text-align: center;
}
.plan-admin { margin-top: 4px; }
.log-table tr td:first-child { box-shadow: inset 3px 0 0 transparent; }
.log-table tr.log-add td:first-child { box-shadow: inset 3px 0 0 #3dcc78; }
.log-table tr.log-edit td:first-child { box-shadow: inset 3px 0 0 #e0b15a; }
.log-table tr.log-del td:first-child { box-shadow: inset 3px 0 0 #e25b5b; }
.log-table tr.log-plan td:first-child { box-shadow: inset 3px 0 0 #d36b86; }
.log-table tr.log-price td:first-child { box-shadow: inset 3px 0 0 #e08a45; }
.log-table tr.log-clear td:first-child { box-shadow: inset 3px 0 0 #8d8d8d; }
.log-table tr.log-ok td:first-child { box-shadow: inset 3px 0 0 #3dcc78; }
.log-table tr.log-fail td:first-child { box-shadow: inset 3px 0 0 #e25b5b; }
.log-table tr.log-sec { background: rgba(180, 48, 56, .1); }
.log-table tr.log-sec td:first-child { box-shadow: inset 3px 0 0 #e25b5b; }
.log-filter { display: flex; gap: 8px; margin: 0 0 12px; }
.log-x { width: 40px; text-align: right; }
.log-x-btn {
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #4e555f;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.log-x-btn:hover { color: #f0a8a8; background: rgba(180, 48, 56, .16); }
.ban-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.ban-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid rgba(255, 255, 255, .06);
}
html[data-theme="light"] .ban-row { border-top-color: rgba(20, 16, 16, .08); }
.ban-row b { display: block; font-size: 13px; }
.ban-row small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.ban-note { padding: 10px 12px; border-radius: 10px; background: rgba(180, 48, 56, .12); }
.dealer-name { display: inline-flex; align-items: center; gap: 7px; }
.on-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: 0 0 7px;
  background: #2a2f36;
}
.on-dot.on {
  background: #3dcc78;
  animation: on-pulse 1.6s ease-out infinite;
}
@keyframes on-pulse {
  0% { box-shadow: 0 0 0 0 rgba(61, 204, 120, .55); }
  100% { box-shadow: 0 0 0 7px rgba(61, 204, 120, 0); }
}
html[data-theme="light"] .on-dot { background: #d5d8de; }
html[data-theme="light"] .on-dot.on { background: #1e9a4a; }
.dealer-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 12px;
}
.dealer-picks { display: flex; flex-wrap: wrap; gap: 6px; }
.dealer-pick.on {
  background: rgba(61, 204, 120, .16);
  border-color: rgba(61, 204, 120, .45);
  color: inherit;
}
.dealer-meta { margin-left: auto; color: var(--muted); font-size: 13px; }
@media (prefers-reduced-motion: reduce) {
  .on-dot.on { animation: none; }
}
.badge.log-sec { background: rgba(180,48,56,.22); color: #ffd0d0; border: 1px solid rgba(224,90,96,.55); font-weight: 700; }
.badge.log-add { background: rgba(46,140,90,.16); color: #8ee0b0; border: 1px solid rgba(61,168,110,.35); }
.badge.log-edit { background: rgba(224,177,90,.14); color: #f0d08a; border: 1px solid rgba(224,177,90,.34); }
.badge.log-del { background: rgba(180,48,56,.16); color: #f0a8a8; border: 1px solid rgba(224,90,96,.38); }
.badge.log-plan { background: rgba(196,90,120,.16); color: #f0b4c4; border: 1px solid rgba(196,90,120,.36); }
.badge.log-price { background: rgba(224,138,69,.16); color: #f0c4a0; border: 1px solid rgba(224,138,69,.36); }
.badge.log-clear { background: rgba(141,141,141,.14); color: #c8c8c8; border: 1px solid rgba(141,141,141,.32); }
.badge.log-ok { background: rgba(46,140,90,.16); color: #8ee0b0; border: 1px solid rgba(61,168,110,.35); }
.badge.log-fail { background: rgba(180,48,56,.16); color: #f0a8a8; border: 1px solid rgba(224,90,96,.38); }
.log-time { color: var(--muted); white-space: nowrap; }
.log-ip { white-space: nowrap; font-variant-numeric: tabular-nums; }
.log-ip code {
  font-family: Consolas, "Cascadia Mono", monospace;
  font-size: 12px;
  color: var(--muted);
  background: transparent;
  padding: 0;
}
.log-ip .log-geo {
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 550;
  margin-left: 2px;
  opacity: .9;
}
.log-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 12px;
}
.log-meta {
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  letter-spacing: .01em;
}
.log-seg {
  display: inline-flex;
  flex-wrap: wrap;
  padding: 3px;
  gap: 2px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #121212;
}
.log-seg-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: #8a8a8a;
  font: 650 12px/1 "Segoe UI", "Noto Sans", sans-serif;
  padding: 7px 12px;
  border-radius: 8px;
  cursor: pointer;
}
.log-seg-btn.on {
  background: #29180d;
  color: #f2f2f2;
  box-shadow: inset 0 0 0 1px #5a2e18;
}
html[data-theme="light"] .badge.log-add { background: #e5f6ec; color: #1b6b42; border-color: #b7e0c8; }
html[data-theme="light"] .badge.log-edit { background: #f8f1de; color: #7a5a12; border-color: #e6d4a4; }
html[data-theme="light"] .badge.log-del { background: #fdecec; color: #9a2430; border-color: #f0c4c4; }
html[data-theme="light"] .badge.log-plan { background: #fbeaf0; color: #8a3050; border-color: #efc4d2; }
html[data-theme="light"] .badge.log-price { background: #f8efe6; color: #8a4a18; border-color: #ecd0b4; }
html[data-theme="light"] .badge.log-clear { background: #f1f1f1; color: #555; border-color: #ddd; }
html[data-theme="light"] .badge.log-ok { background: #e5f6ec; color: #1b6b42; border-color: #b7e0c8; }
html[data-theme="light"] .badge.log-fail { background: #fdecec; color: #9a2430; border-color: #f0c4c4; }
html[data-theme="light"] .log-seg { background: #f4f5f7; }
html[data-theme="light"] .log-seg-btn { color: #4a5160; }
html[data-theme="light"] .log-seg-btn.on {
  background: #fff;
  color: #1a1a1a;
  box-shadow: inset 0 0 0 1px #d8c0b8;
}
.brand-wall { min-width: 0; }
.brand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: 8px;
}
.brand-card {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  overflow: hidden;
  min-height: 112px;
  border: 0;
  border-radius: 12px;
  padding: 14px 10px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  color: var(--text);
  background: transparent;
  box-shadow: none;
  transition: background .15s ease;
}
.brand-card:hover {
  background: rgba(255,255,255,.04);
}
html[data-theme="light"] .brand-card:hover {
  background: rgba(0,0,0,.04);
}
.brand-card:active { transform: none; }
.brand-mark {
  flex: 1;
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px 4px;
}
.brand-logo-img {
  max-width: 120px;
  max-height: 48px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.brand-logo-img.is-wide {
  max-width: 100%;
  max-height: 36px;
  width: 100%;
}
.brand-all-img {
  max-width: 132px;
  max-height: 52px;
}
.brand-card.is-all { min-height: 124px; }
.brand-all-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px 6px;
  width: 100%;
  max-width: 132px;
  align-items: center;
}
.brand-all-tile {
  width: 100%;
  height: 16px;
  object-fit: contain;
  display: block;
}
.brand-all-tile.is-dark { filter: brightness(0) invert(1); }
html[data-theme="light"] .brand-all-tile.is-dark { filter: none; }
html[data-theme="light"] .brand-all-tile.is-light { filter: brightness(0); }
.brand-logo-img.is-dark {
  filter: brightness(0) invert(1);
}
.brand-logo-text {
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -.02em;
  color: var(--text);
  text-align: center;
  line-height: 1.15;
}
.brand-all-ico {
  width: 40px; height: 40px; border-radius: 10px;
  display: grid; place-items: center;
  background: rgba(160, 48, 56, .16);
  color: #e7b4b6;
}
html[data-theme="light"] .brand-logo-img.is-dark { filter: none; }
html[data-theme="light"] .brand-logo-img.is-light {
  filter: brightness(0);
}
html[data-theme="light"] .brand-all-ico {
  background: rgba(160, 48, 56, .1);
  color: #8d3d43;
}
.brand-all-ico .ico { width: 20px; height: 20px; }
.brand-meta {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
}
.brand-meta b {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--text);
}
.brand-meta small {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.brand-card.is-all .brand-meta b { color: #fff; }
html[data-theme="light"] .brand-card.is-all .brand-meta b { color: #111; }
.brand-toggle {
  position: absolute; z-index: 3;
  top: 4px; right: 4px;
  width: 26px; height: 26px;
  display: grid; place-items: center;
  margin: 0; font-style: normal;
  border-radius: 8px;
  color: var(--muted);
  background: var(--elev);
  border: 1px solid var(--line);
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease;
}
.brand-card:hover .brand-toggle,
.brand-card.is-off .brand-toggle,
.brand-toggle.is-busy {
  opacity: 1;
  pointer-events: auto;
}
.brand-toggle .ico { width: 13px; height: 13px; }
.brand-card.is-off { opacity: .42; filter: grayscale(.7); }
.brand-back { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.brand-back b { font-size: 16px; }
@media (max-width: 760px) {
  .brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .brand-card { min-height: 100px; padding: 12px 8px 10px; }
  .brand-logo-img { max-width: 100px; max-height: 40px; }
}
@media (max-width: 980px) {
  .plan-grid { grid-template-columns: 1fr; }
}

/* Virüs temizle */
#app:has(.cln-wrap),
#app:has(.cln-wrap) .shell {
  height: 100%;
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
#app:has(.cln-wrap) .main {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  padding-bottom: 16px;
}
#app:has(.cln-wrap) #page {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cln-wrap {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
}
.cln-box { padding: 10px 16px 8px; }
.cln-bar {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
}
.cln-top-act { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; }
.hide-imei-tog {
  color: var(--text);
  font-size: 12.5px;
  font-weight: 650;
}
.topbar .hide-imei-tog { margin-left: 2px; }
html[data-theme="light"] .hide-imei-tog { color: #2c313a; }
.cln-ask-back { z-index: 80; background: rgba(6,6,6,.58); }
.cln-ask {
  position: relative;
  width: min(420px, 100%);
  margin-top: 36px;
  padding: 52px 28px 22px;
  background: #161616;
  border: 1px solid #2a2a2a;
  border-radius: 24px;
  text-align: center;
  box-shadow: 0 22px 56px rgba(0,0,0,.48);
}
.cln-ask-icon {
  position: absolute;
  left: 50%; top: 0;
  transform: translate(-50%, -50%);
  width: 72px; height: 72px;
  border-radius: 50%;
  background: #f9a825;
  color: #fff;
  display: grid; place-items: center;
  font-size: 34px; font-weight: 800; line-height: 1;
  box-shadow: 0 12px 28px rgba(249,168,37,.28);
}
.cln-ask h3 {
  margin: 0 0 10px;
  font-size: 18px; font-weight: 700;
  letter-spacing: -.02em;
}
.cln-ask p {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 14px; line-height: 1.45;
}
.cln-ask-act {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;
}
.cln-ask-act .btn { min-width: 118px; }
.cln-ask-no {
  border-radius: 12px;
  min-height: 34px;
  padding: 7px 14px;
}
html[data-theme="light"] .cln-ask {
  background: #f6f7f9;
  border-color: #d5d8de;
  box-shadow: 0 18px 40px rgba(20,24,32,.12);
}
html[data-theme="light"] .cln-ask-back { background: rgba(20,24,32,.28); }
.cln-status {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 34px; padding: 0 12px 0 10px;
  border-radius: 12px;
  border: 1px solid #2a2a2a;
  background: #161616;
  color: #b8b8b8;
  font-size: 12px; font-weight: 650;
  letter-spacing: .01em;
  white-space: nowrap;
}
.cln-status::before {
  content: "";
  width: 7px; height: 7px; border-radius: 50%; flex: 0 0 7px;
  background: #6a6a6a;
}
.cln-status.is-idle { color: #9a9a9a; }
.cln-status.is-ok {
  background: #16241a;
  border-color: #2e5a36;
  color: #8ee0b0;
}
.cln-status.is-ok::before {
  background: #4cbb17;
  box-shadow: 0 0 0 3px rgba(76,187,23,.16);
}
.cln-status.is-wait {
  background: #241c10;
  border-color: #5a4a20;
  color: #f3d48a;
}
.cln-status.is-wait::before {
  background: #f9a825;
  box-shadow: 0 0 0 3px rgba(249,168,37,.16);
  animation: cln-dot 1.1s ease-in-out infinite;
}
.cln-status.is-bad {
  background: #241616;
  border-color: #5a2a2a;
  color: #f0b4b6;
}
.cln-status.is-bad::before {
  background: #e06a6a;
  box-shadow: 0 0 0 3px rgba(224,106,106,.16);
}
@keyframes cln-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: .35; }
}
html[data-theme="light"] .cln-status {
  background: #f3f4f6;
  border-color: #d5d8de;
  color: #4b5160;
}
html[data-theme="light"] .cln-status.is-ok {
  background: #e5f6ec;
  border-color: #b7e0c8;
  color: #1b6b42;
}
html[data-theme="light"] .cln-status.is-wait {
  background: #fff6e5;
  border-color: #ead4a0;
  color: #8a5a10;
}
html[data-theme="light"] .cln-status.is-bad {
  background: #fdecec;
  border-color: #f0c4c4;
  color: #9a2430;
}
.imei-log .c-olive, .cln-log .c-olive, .tls-log .c-olive { color: #2f8a42; }
html[data-theme="light"] .imei-log .c-olive,
html[data-theme="light"] .cln-log .c-olive,
html[data-theme="light"] .tls-log .c-olive { color: #1b6b32; }
.imei-log .c-blue { color: #3B82F6; }
.imei-log .c-purple { color: #9f38ff; }
.imei-log .c-yesil { color: #229954; }
.imei-log .c-yesil2 { color: #4CBB17; }
.imei-log .c-cyan, .cln-log .c-cyan { color: #4DD0E1; }
.imei-log .c-country, .cln-log .c-country, .tls-log .c-country { color: #00A8C4; }
.imei-log .c-turkuaz, .cln-log .c-turkuaz { color: #40E0D0; }
html[data-theme="light"] .imei-log .c-turkuaz,
html[data-theme="light"] .cln-log .c-turkuaz { color: #0d9488; }
.cln-log .c-label { color: #d1cfcf; }
.cln-log .c-ok, .cln-log .c-yesil { color: #229954; }
.cln-log .c-lime, .cln-log .c-yesil2 { color: #4CBB17; }
.cln-log .c-yellow, .tls-log .c-yellow { color: #F9A825; }
.cln-log .c-blue { color: #3B82F6; }
.cln-log .c-purple { color: #9f38ff; }
.cln-log .c-orange { color: #FF4500; }
.cln-log .c-red { color: #d63031; }
.cln-log .c-gri, .cln-log .log-head { color: #808080; font-weight: 600; }
html[data-theme="light"] .cln-log .c-label,
html[data-theme="light"] .imei-log .c-label { color: #1a1d22; font-weight: 650; }
html[data-theme="light"] .cln-log .c-white,
html[data-theme="light"] .imei-log .c-white { color: #111318; }
html[data-theme="light"] .cln-log .c-gri,
html[data-theme="light"] .cln-log .log-head,
html[data-theme="light"] .imei-log .c-gri,
html[data-theme="light"] .imei-log .log-head { color: #3a404a; }
html[data-theme="light"] .cln-log .c-yellow,
html[data-theme="light"] .tls-log .c-yellow,
html[data-theme="light"] .imei-log .c-yellow { color: #8a5800; }
html[data-theme="light"] .cln-log .c-ok,
html[data-theme="light"] .cln-log .c-yesil,
html[data-theme="light"] .cln-log .c-yesil2,
html[data-theme="light"] .cln-log .c-lime,
html[data-theme="light"] .imei-log .c-yesil,
html[data-theme="light"] .imei-log .c-yesil2,
html[data-theme="light"] .imei-log .c-lime { color: #187a30; }
html[data-theme="light"] .cln-log .c-blue,
html[data-theme="light"] .imei-log .c-blue { color: #1d4ed8; }
html[data-theme="light"] .cln-log .c-cyan,
html[data-theme="light"] .imei-log .c-cyan { color: #0e7490; }
html[data-theme="light"] .imei-log .c-country,
html[data-theme="light"] .cln-log .c-country,
html[data-theme="light"] .tls-log .c-country { color: #007C98; }
html[data-theme="light"] .cln-log .c-purple,
html[data-theme="light"] .imei-log .c-purple { color: #6d28d9; }
html[data-theme="light"] .cln-log .c-orange { color: #c2410c; }
html[data-theme="light"] .card,
html[data-theme="light"] .stat-card,
html[data-theme="light"] .plan-card,
html[data-theme="light"] .cari-hero,
html[data-theme="light"] .cari-chip,
html[data-theme="light"] .table-wrap,
html[data-theme="light"] .week-chip,
html[data-theme="light"] .imei-log,
html[data-theme="light"] .cln-list-card,
html[data-theme="light"] .plist,
html[data-theme="light"] .rail-panel {
  border-color: var(--line);
  box-shadow: var(--shadow);
}
html[data-theme="light"] th {
  color: #3a404c;
  background: #f4f5f7;
}
html[data-theme="light"] td { border-bottom-color: #c8ccd4; }
html[data-theme="light"] .week-chip small { color: #3a404a; }
html[data-theme="light"] .week-chip.today:not(.on) { border-color: #6a7080; }
html[data-theme="light"] .td-sub,
html[data-theme="light"] .stat-card span,
html[data-theme="light"] .stat-card small,
html[data-theme="light"] .cari-hero span,
html[data-theme="light"] .cari-hero small,
html[data-theme="light"] .cari-chip span,
html[data-theme="light"] .plan-eq { color: #3a404a; }
html[data-theme="light"] .plan-eq .c-orange { color: #d35400; text-decoration-color: #d35400; }
html[data-theme="light"] .plan-off { background: #f4e6e8; color: #7a2430; }
html[data-theme="light"] .plan-tag { background: #f6edd4; color: #7a5a10; }
html[data-theme="light"] .plan-off.start { background: #eef0f3; color: #3a404a; }
html[data-theme="light"] .plan-card li .ico { color: #187a30; }
html[data-theme="light"] .imei-log-kicker,
html[data-theme="light"] .field label,
html[data-theme="light"] .cln-date,
html[data-theme="light"] .cln-empty,
html[data-theme="light"] .cln-all,
html[data-theme="light"] .cln-count,
html[data-theme="light"] .cln-list-foot { color: #2c313a; }
html[data-theme="light"] .cln-badge.t-Normal { color: #3a404a; border-color: #b7bcc6; }
.cln-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; align-items: center; }
.cln-sep { width: 1px; height: 22px; background: var(--line); margin: 0 6px; opacity: .4; }
.cln-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 34px; padding: 8px 16px; border: 0; border-radius: 999px;
  color: #fff; font: 500 12px/1 "Segoe UI", sans-serif; cursor: pointer;
  transition: transform .08s ease-out, opacity .08s ease-out, filter .08s ease-out;
}
.cln-btn .ico { flex: 0 0 auto; }
.cln-btn:hover:not(:disabled) { transform: scale(1.05); opacity: .92; }
.cln-btn:active:not(:disabled) { transform: scale(.98); }
.cln-btn:disabled { opacity: .38; cursor: not-allowed; transform: none; }
.cln-btn.c-info { background: #1a5d78; min-width: 105px; }
.cln-btn.c-scan { background: #60781a; min-width: 115px; }
.cln-btn.c-anal { background: #9c5027; min-width: 105px; }
.cln-btn.c-del { background: #C62828; min-width: 75px; }
.cln-btn.c-off { background: #EF6C00; min-width: 110px; }
.cln-btn.c-on { background: #388E3C; min-width: 110px; }
.cln-btn.c-sys { background: #5C4320; min-width: 180px; }
.cln-btn.c-sys-stop { background: #5A2A2A; min-width: 110px; }
.cln-btn.c-reco {
  background: #3d4a3a;
  min-width: 0;
  min-height: 28px;
  padding: 5px 10px;
  font-size: 11px;
  gap: 5px;
}
.cln-btn.c-reco:hover:not(:disabled) { background: #4d5e48; }
.cln-btn.c-reco:disabled {
  opacity: 1;
  background: #1c1c1c;
  color: #5a5a5a;
}
html[data-theme="light"] .cln-btn.c-reco { background: #5a6a54; }
html[data-theme="light"] .cln-btn.c-reco:hover:not(:disabled) { background: #6a7c64; }
html[data-theme="light"] .cln-btn.c-reco:disabled {
  background: #e4e6ea;
  color: #9aa0aa;
}
.cln-btn.c-del:hover:not(:disabled) { background: #E53935; }
.cln-btn.c-off:hover:not(:disabled) { background: #FB8C00; }
.cln-btn.c-on:hover:not(:disabled) { background: #4CAF50; }
.imei-log .c-yellow2 { color: #8a5d15; }
.cln-tabs {
  display: flex; flex-wrap: wrap; gap: 18px; align-items: center;
  margin-top: 8px; padding-top: 0; border-bottom: 1px solid var(--line);
}
.cln-tab {
  display: inline-flex; align-items: center; gap: 7px;
  background: none; border: 0; border-bottom: 2px solid transparent;
  color: var(--muted); font: 500 13px/1 "Segoe UI", sans-serif;
  padding: 8px 2px 10px; cursor: pointer;
}
.cln-tab .ico { flex: 0 0 auto; }
.cln-tab.on { color: var(--text); border-bottom-color: #EF6C00; }
.cln-tab:hover:not(:disabled) { color: var(--text); }
.cln-tab:disabled { opacity: .42; cursor: not-allowed; }
span.cln-tab { cursor: default; }
.cln-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  min-height: 0;
  height: 100%;
}
.cln-list-card,
.cln-sys-card {
  grid-column: 1;
  grid-row: 1;
}
.cln-log {
  grid-column: 2;
  grid-row: 1;
}
.cln-list-card[hidden],
.cln-sys-card[hidden] {
  display: none !important;
}
.cln-list-card {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.cln-list-head {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}
.cln-list-head .cln-btn.c-reco { min-height: 28px; padding: 5px 10px; }
.cln-list-head .input { flex: 1; min-width: 0; }
.cln-search-ico { color: var(--muted); display: flex; align-items: center; }
.cln-mini {
  border: 1px solid var(--line); background: var(--elev); color: var(--text);
  border-radius: 999px; padding: 5px 10px; font: 650 11.5px/1 "Segoe UI", sans-serif;
  cursor: pointer;
}
.cln-mini:disabled { opacity: .4; cursor: not-allowed; }
.cln-list-foot {
  display: flex; justify-content: flex-end; gap: 16px; align-items: center;
  padding: 10px 14px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: 12px;
}
.cln-list-foot b { color: var(--text); }
.cln-ico-wrap {
  width: 36px; height: 36px; border-radius: 8px; overflow: hidden;
  background: #173a4a; display: grid; place-items: center; position: relative;
}
.cln-ico { width: 36px; height: 36px; object-fit: contain; display: block; position: relative; z-index: 1; }
.cln-ico[hidden] { display: none !important; }
.cln-ico-ph { display: grid; place-items: center; position: absolute; inset: 0; }
.cln-meta { min-width: 0; display: grid; gap: 2px; }
.cln-badge {
  border-radius: 10px; padding: 6px 12px; font-size: 11px; font-weight: 650;
  border: 1px solid transparent; white-space: nowrap;
}
.cln-badge.t-Tehlikeli { color: #e06a6a; border-color: rgba(224,106,106,.35); background: rgba(180,48,56,.14); }
.cln-badge.t-Reklamcı { color: #e06a6a; border-color: rgba(224,106,106,.35); background: rgba(180,48,56,.14); }
.cln-badge.t-Şüpheli { color: #F9A825; border-color: rgba(249,168,37,.3); background: rgba(249,168,37,.1); }
.cln-badge.t-Güvenilir { color: #3dcc78; border-color: rgba(61,204,120,.3); background: rgba(61,204,120,.1); }
.cln-badge.t-Normal { color: var(--muted); border-color: var(--line); }
.cln-sys-card {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.cln-sys-head { display: flex; gap: 12px; align-items: flex-start; }
.cln-sys-ico {
  width: 40px; height: 40px; border-radius: 10px; background: #2A2418; color: #E0A85C;
  display: grid; place-items: center; flex: 0 0 auto;
}
.cln-sys-head b { display: block; font-size: 15px; }
.cln-sys-head p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; max-width: 62ch; }
.cln-sys-act { display: flex; justify-content: center; gap: 10px; margin-top: 16px; }
.imei-log-kicker { font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 8px; }
.imei-log { position: relative; }
.imei-log::after,
#tlsLogBodyExtract::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 44%;
  width: min(156px, 38%);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  background: url("/log-rs-mark.png") center / contain no-repeat;
  opacity: .08;
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 2;
  user-select: none;
}
#tlsLogBox:has(#tlsLogBodyExtract)::after { content: none; }
#tlsLogBodyExtract { position: relative; }
#tlsLogBodyExtract::after { top: 46%; width: min(140px, 34%); }
.imei-log-with-run { min-height: 126px; }
.imei-log-with-run::after {
  top: 50%;
  width: 96px;
  transform: translate(-50%, -50%);
}
.imei-log:has(.log-line, .log-head)::after,
#tlsLogBodyExtract:has(.log-line, .log-head)::after { opacity: .035; }
html[data-theme="light"] .imei-log::after,
html[data-theme="light"] #tlsLogBodyExtract::after { opacity: .055; mix-blend-mode: multiply; }
html[data-theme="light"] .imei-log:has(.log-line, .log-head)::after,
html[data-theme="light"] #tlsLogBodyExtract:has(.log-line, .log-head)::after { opacity: .028; }
.cln-all { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 650; color: var(--muted); white-space: nowrap; cursor: pointer; user-select: none; }
.cln-all:hover { color: var(--text); }
.cln-count { font-size: 12px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.cln-apps {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.cln-empty { padding: 28px 16px; color: var(--muted); font-size: 13px; text-align: center; }
.cln-app {
  display: grid; grid-template-columns: 20px 36px minmax(0, 1fr) auto;
  gap: 10px; align-items: center; padding: 8px 12px;
  border-bottom: 1px solid var(--line); cursor: pointer; font-size: 12.5px;
  user-select: none;
}
.cln-app:hover, .cln-app.on { background: var(--elev); }
.cln-check {
  width: 18px; height: 18px; display: grid; place-items: center;
  position: relative; flex: 0 0 18px;
}
.cln-check input {
  position: absolute; inset: -4px; margin: 0; opacity: 0; cursor: pointer;
  width: auto; height: auto; z-index: 1;
}
.cln-check i {
  width: 18px; height: 18px; border-radius: 4px;
  border: 1.5px solid #5A5A5A; background: #1A1A1A;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  display: grid; place-items: center;
  transition: background .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.cln-check i::after {
  content: "";
  width: 5px; height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) translate(-0.5px, -1px);
  opacity: 0;
  transition: opacity .12s ease;
}
.cln-app:hover .cln-check i,
.cln-all:hover .cln-check i,
.cln-check input:hover + i {
  border-color: #c2700c;
}
.cln-check input:checked + i {
  background: #9e5018;
  border-color: #c4592b;
  box-shadow: 0 0 0 3px rgba(196, 89, 43, .18), inset 0 1px 0 rgba(255,255,255,.12);
}
.cln-check input:checked + i::after { opacity: 1; }
.cln-check input:focus-visible + i {
  box-shadow: 0 0 0 3px rgba(196, 89, 43, .28);
}
html[data-theme="light"] .cln-check i {
  background: #fff; border-color: #9aa0a8;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
html[data-theme="light"] .cln-check input:checked + i {
  background: #c4592b; border-color: #c4592b;
}
.cln-radio i { border-radius: 50%; }
.cln-radio i::after {
  width: 8px; height: 8px; border: 0; border-radius: 50%;
  background: #fff; transform: none; translate: 0;
}
.cln-pkg { font-weight: 550; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cln-date { color: var(--muted); font-size: 11px; display: block; min-height: 14px; letter-spacing: .01em; }
.cln-type.t-Tehlikeli { color: #e06a6a; }
.cln-type.t-Reklamcı { color: #e06a6a; }
.cln-type.t-Şüpheli { color: var(--log-yellow); }
.cln-type.t-Güvenilir { color: #3dcc78; }
.cln-type.t-Normal { color: var(--muted); }
.cln-log {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.cln-log .imei-log-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.cln-op-runbar {
  flex-shrink: 0;
  margin-top: auto;
  padding: 8px 12px 10px;
  border-top: 1px solid var(--line);
}
.cln-op-runbar[hidden] { display: none !important; }
@media (max-width: 980px) {
  #app:has(.cln-wrap),
  #app:has(.cln-wrap) .shell {
    height: auto;
    max-height: none;
    overflow: visible;
  }
  #app:has(.cln-wrap) .main,
  #app:has(.cln-wrap) #page,
  .cln-wrap {
    height: auto;
    flex: none;
    display: block;
  }
  .cln-wrap { display: grid; grid-template-rows: auto auto; }
  .cln-grid { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
  .cln-list-card, .cln-sys-card, .cln-log { grid-column: auto; grid-row: auto; height: auto; }
  .cln-apps { max-height: min(55vh, 640px); }
  .cln-log { min-height: 260px; max-height: min(55vh, 640px); }
  .cln-app { grid-template-columns: 20px 36px minmax(0, 1fr) auto; }
}

#app:has(.tls-wrap),
#app:has(.tls-wrap) .shell {
  height: 100%;
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
#app:has(.tls-wrap) .main {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  padding-bottom: 16px;
}
#app:has(.tls-wrap) #page {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.tls-wrap {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
}
.tls-box .cln-bar { align-items: center; }
.tls-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tls-grid {
  min-height: 0;
  display: grid;
  /* Virüs Temizle cln-grid ile benzer: log sütunu dar tavan (560px) yok → Baseband tek satır */
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
  gap: 14px;
}
.tls-main {
  min-height: 0;
  overflow: auto;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
}
.tls-op-runbar { margin-top: auto; flex-shrink: 0; }
.tls-op-runbar[hidden] { display: none !important; }
.tls-log { min-height: 0; }
/* ADB / Extract / Temp Root log — aynı 13.5px, line-height 1.5 */
.cln-wrap .cln-log.tls-log .log-sep {
  color: var(--log-label);
  letter-spacing: -0.02em;
}
html[data-theme="light"] .cln-wrap .cln-log.tls-log .log-sep {
  color: var(--log-label);
}
.cln-wrap .cln-log.tls-log .log-line.is-optime,
.extract-page .tls-log .log-line.is-optime {
  font-size: 11.5px;
  line-height: 1.5;
}
.cln-wrap .cln-log.tls-log .log-line.is-optime .log-sep,
.cln-wrap .cln-log.tls-log .log-line.is-optime .c-optime,
.extract-page .tls-log .log-line.is-optime .log-sep,
.extract-page .tls-log .log-line.is-optime .c-optime {
  color: var(--log-head);
  font-size: inherit;
}
html[data-theme="light"] .cln-wrap .cln-log.tls-log .log-line.is-optime .log-sep,
html[data-theme="light"] .cln-wrap .cln-log.tls-log .log-line.is-optime .c-optime,
html[data-theme="light"] .extract-page .tls-log .log-line.is-optime .log-sep,
html[data-theme="light"] .extract-page .tls-log .log-line.is-optime .c-optime {
  color: var(--log-head);
}
.tls-card {
  background: #121212;
  border: 1px solid #242424;
  border-radius: 12px;
  padding: 10px 10px 8px;
  margin-bottom: 8px;
}
html[data-theme="light"] .tls-card {
  background: #f4f5f7;
  border-color: #d8dbe2;
}
.tls-inner { margin-top: 10px; background: #0c0c0c; }
html[data-theme="light"] .tls-inner { background: #eceef2; }
.tls-sec {
  font-size: 11px;
  font-weight: 600;
  color: #d4b896;
  margin: 0 0 8px 2px;
}
.tls-row { display: flex; flex-wrap: wrap; gap: 8px; }
.tls-row-2,
.tls-row-3,
.tls-row-4 {
  display: grid;
  gap: 6px;
}
.tls-row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tls-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tls-row-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tls-row-2 .tls-btn,
.tls-row-3 .tls-btn,
.tls-row-4 .tls-btn { width: 100%; }
.tls-row-mi {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}
.tls-row-mi .tls-btn { width: 100%; min-width: 0; }
.tls-row-mi .tls-btn:nth-child(-n+3) { grid-column: span 2; }
.tls-row-mi .tls-btn:nth-child(n+4) { grid-column: span 3; }
.tls-btn {
  height: 30px;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid #3a3a3a;
  background: #2a2a2a;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}
.tls-btn .ico { flex: 0 0 auto; color: #ececec; }
.tls-btn span { color: inherit; font-size: inherit; }
.tls-btn:hover:not(:disabled) { background: #353535; }
.tls-btn:disabled { opacity: .38; cursor: not-allowed; }
.tls-btn.tls-accent { background: #3a2418; border-color: #5a2e18; }
.tls-btn.tls-accent:hover:not(:disabled) { background: #4a3020; }
.tls-btn.tls-danger { background: #3a1818; border-color: #5a2a2a; }
.tls-btn.tls-danger:hover:not(:disabled) { background: #4a2020; }
.tls-reboot {
  display: grid;
  grid-template-columns: 70px minmax(160px, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}
.tls-reboot-lbl { font-size: 11px; color: #a8a8a8; line-height: 1; }
.tls-combo {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 30px;
  min-height: 30px;
  padding: 0 28px 0 8px;
  font-size: 11px;
  line-height: 28px;
  color: #e8e8e8;
  background-color: #1a1a1a;
  border: 1px solid #2e2e2e;
  border-radius: 8px;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23e8e8e8' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 8px center;
  color-scheme: dark;
}
.tls-combo:focus { border-color: #5a2e18; }
.tls-combo option { color: #e8e8e8; background: #1a1a1a; }
html[data-theme="light"] .tls-combo {
  color: #1c1e22;
  background-color: #fff;
  border-color: #d8dbe2;
  color-scheme: light;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%231c1e22' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
}
html[data-theme="light"] .tls-combo option { color: #1c1e22; background: #fff; }
.rs-dd { position: relative; min-width: 0; width: 100%; }
.rs-dd-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  border: 0 !important;
  opacity: 0;
  pointer-events: none;
  clip: rect(0, 0, 0, 0);
}
.rs-dd-btn {
  box-sizing: border-box;
  width: 100%;
  display: block;
  text-align: left;
  cursor: pointer;
  outline: none;
  appearance: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background-repeat: no-repeat;
  background-position: right 8px center;
}
.rs-dd-combo .rs-dd-btn {
  height: 30px;
  min-height: 30px;
  padding: 0 28px 0 8px;
  font-size: 11px;
  line-height: 28px;
  color: #e8e8e8;
  background-color: #1a1a1a;
  border: 1px solid #2e2e2e;
  border-radius: 8px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23e8e8e8' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
}
.rs-dd-combo .rs-dd-btn:focus { border-color: #5a2e18; }
.rs-dd-select .rs-dd-btn {
  padding: 9px 32px 9px 11px;
  font-size: 14px;
  color: var(--text);
  background-color: var(--input);
  border: 1px solid var(--line);
  border-radius: 10px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238d8d8d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
}
.rs-dd-select .rs-dd-btn:focus { border-color: var(--focus); }
.rs-dd.is-disabled .rs-dd-btn { opacity: .45; cursor: not-allowed; }
.rs-dd-menu {
  display: none;
  position: fixed;
  z-index: 120;
  box-sizing: border-box;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 4px;
  background: #1a1a1a;
  border: 1px solid #2e2e2e;
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(0,0,0,.5);
}
.rs-dd.open .rs-dd-menu,
.rs-dd-menu.is-open { display: block; }
.rs-dd-item {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  color: #e8e8e8;
  font-size: 11px;
  line-height: 1.35;
  padding: 7px 10px;
  border-radius: 6px;
  cursor: pointer;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.rs-dd-select .rs-dd-item { font-size: 13px; padding: 8px 10px; }
/* Kısa değerli combo seçenekleri (ör. "00:30", "FastbootD") sarmalanmasın; menü içeriğe göre genişlesin.
   NOT: menü açılınca document.body'ye taşındığı için combo işareti MENÜNÜN kendi sınıfıdır
   (rs-dd-menu-combo). rs-dd-select (uzun açıklamalar) sarılmaya devam eder. */
.rs-dd-menu-combo .rs-dd-item {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}
.rs-dd-menu-combo { min-width: max-content; }
.rs-dd-item:hover,
.rs-dd-item.on { background: #2a2a2a; }
.rs-dd-item.off { opacity: .4; cursor: default; }
html[data-theme="light"] .rs-dd-combo .rs-dd-btn {
  color: #1c1e22;
  background-color: #fff;
  border-color: #d8dbe2;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%231c1e22' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
}
html[data-theme="light"] .rs-dd-select .rs-dd-btn {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%235c616a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
}
html[data-theme="light"] .rs-dd-menu {
  background: #fff;
  border-color: #d8dbe2;
  box-shadow: 0 10px 28px rgba(20,24,32,.16);
}
html[data-theme="light"] .rs-dd-item { color: #1c1e22; }
html[data-theme="light"] .rs-dd-item:hover,
html[data-theme="light"] .rs-dd-item.on { background: #eceef2; }
.fw-filter .rs-dd { width: auto; min-width: 140px; flex: 0 0 auto; }
.extract-page.cln-wrap,
.extract-page.tls-wrap {
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
}
.extract-grid {
  height: 100%;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr);
  align-items: stretch;
}
.extract-main {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 0 16px;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.extract-head {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 10px;
  flex: 0 0 auto;
}
.extract-title { font-size: 13px; font-weight: 600; color: #c8c8c8; }
.extract-kicker {
  font-size: 11px;
  font-weight: 600;
  color: #8a8a8a;
  letter-spacing: .04em;
}
.extract-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.extract-foot {
  flex: 0 0 auto;
  padding: 10px 16px 16px;
  border-top: 1px solid var(--line);
}
.extract-load {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 10px; border-radius: 8px; background: #161616; color: #cfcfcf; font-size: 12px;
}
.extract-load[hidden],
.extract-acts[hidden],
.extract-foot[hidden],
.extract-dl-bar[hidden] { display: none !important; }
.extract-dl-bar {
  margin: 0 16px 16px;
  padding: 10px;
  border-radius: 8px;
  background: #161616;
}
.extract-prog {
  height: 6px;
  margin: 0;
  border-radius: 4px;
}
.extract-dl-lbl {
  margin-top: 6px;
  text-align: center;
  font-size: 12px;
  color: #cfcfcf;
}
.extract-page .tls-op-runbar {
  flex-shrink: 0;
  margin: auto 16px 0;
  padding-top: 8px;
}
.extract-parts-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}
.extract-parts-head[hidden] { display: none !important; }
.extract-parts-head-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.extract-parts-count {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  white-space: nowrap;
}
.extract-parts-tools { display: flex; gap: 8px; }
.extract-parts-q {
  flex: 1;
  min-width: 0;
  height: 34px;
  font-size: 12px;
  padding: 0 11px;
  border-radius: 8px;
}
.extract-parts-cols {
  display: grid;
  grid-template-columns: 22px 44px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 0 12px 2px;
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #7a7a82;
  user-select: none;
}
.extract-parts-cols span:last-child { text-align: right; }
.extract-page .extract-parts {
  flex: 1;
  min-height: 0;
  max-height: none;
  height: auto;
  margin: 0 16px 16px;
  border-radius: 10px;
  padding: 4px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), transparent 28%),
    var(--paper);
  border: 1px solid var(--line);
  scrollbar-gutter: stable;
}
.extract-page .tls-log {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.extract-page .tls-log .imei-log-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.extract-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 4px 0 2px; }
.extract-meta[hidden] { display: none; }
.extract-meta > div { display: flex; flex-direction: column; gap: 6px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--input); }
.extract-meta span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.extract-meta b { color: var(--text); font-size: 13px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.extract-page .c-extract-android { color: #00719e; font-weight: 650; }
html[data-theme="light"] .extract-page .c-extract-android { color: #0369a1; }
.extract-page .tls-log .log-sep { margin-left: 3px; }
.extract-device {
  display: flex; flex-direction: column; align-items: center; flex: 0 0 auto;
  padding: 12px 16px 18px; margin-bottom: 16px; border-bottom: 1px solid var(--line);
  text-align: center;
}
.extract-device[hidden], .extract-device [hidden] { display: none !important; }
.extract-device-art {
  position: relative;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 100%; height: clamp(120px, 19vh, 190px); overflow: hidden;
  margin-bottom: 12px; border-radius: 14px;
  background: radial-gradient(ellipse at center, rgba(141,61,67,.13), transparent 70%);
}
.extract-device-art .extract-device-phone { max-width: 100%; width: 160px; height: 100%; object-fit: contain; }
.extract-device-filters { position: absolute; pointer-events: none; }
/* Soften only the transparent outline; keep the screen and phone details sharp. */
html:not([data-theme="light"]) .extract-device-art .extract-device-phone { filter: url("#tlsExtractEdgeFilter"); }
.extract-device-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.extract-device-placeholder .extract-device-ph { max-width: 100%; width: 160px; height: 100%; object-fit: contain; }
.extract-device-name { font-size: 17px; line-height: 1.35; font-weight: 650; color: var(--text); overflow-wrap: anywhere; }
.extract-device-product { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 11px; color: #929298; }
.extract-device-product code { padding: 3px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); font-size: 12px; }
.extract-device-chip {
  width: min(100%, 320px);
  margin: 12px auto 0;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--panel) 90%, #3b4a6b 10%);
  display: flex;
  gap: 8px;
  align-items: center;
  text-align: left;
  min-width: 0;
}
.extract-device-chip-logo {
  height: 22px; width: auto; max-width: 78px; object-fit: contain; flex: 0 0 auto;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.25));
}
.extract-device-chip[data-vendor="qualcomm"] .extract-device-chip-logo {
  width: 26px; height: 26px; max-width: 26px;
}
.extract-device-chip-text {
  display: flex; align-items: baseline; gap: 6px;
  min-width: 0; flex: 1 1 auto; overflow: hidden;
}
.extract-device-chip-text span {
  flex: 0 0 auto; font-size: 10px; color: #929298; letter-spacing: .02em;
}
.extract-device-chip-text b {
  flex: 1 1 auto; min-width: 0;
  font-size: 11px; font-weight: 650; color: var(--text); line-height: 1.2;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.extract-device-chip[data-vendor="qualcomm"] { background: color-mix(in srgb, var(--panel) 88%, #c62828 12%); }
.extract-device-chip[data-vendor="mediatek"] { background: color-mix(in srgb, var(--panel) 88%, #ef6c00 12%); }
.extract-device-chip[data-vendor="unisoc"] { background: color-mix(in srgb, var(--panel) 88%, #E60012 10%); }
html[data-theme="light"] .extract-device-chip-text span { color: #6b7280; }
.extract-device-chip + .extract-device-aer { margin-top: 10px; }
.extract-device-aer {
  width: min(100%, 280px);
  margin: 14px auto 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--panel) 88%, #8d3d43 12%);
  text-align: left;
  display: grid;
  gap: 7px;
}
.extract-device-aer-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
  font-size: 11px;
  line-height: 1.35;
}
.extract-device-aer-row span { color: #929298; }
.extract-device-aer-row b {
  font-weight: 650;
  overflow-wrap: anywhere;
  text-align: right;
  color: var(--text);
}
.extract-device-aer-row b.extract-aer-yes { color: #4CBB17; } /* c-yesil2 */
.extract-device-aer-row b.extract-aer-no { color: #e25b5b; }
.extract-device-aer-row b.extract-aer-date { color: #F9A825; } /* c-yellow */
.extract-device-aer-row b.extract-aer-orange { color: #FF4500; }
.extract-device-aer-row b.extract-aer-android { color: #00719e; }
.extract-device-aer-row b.extract-aer-white { color: #f2f2f2; }
.extract-device-aer-row b.extract-aer-plain { color: var(--text); }
html[data-theme="light"] .extract-device-aer {
  background: color-mix(in srgb, #fff 92%, #8d3d43 8%);
}
html[data-theme="light"] .extract-device-aer-row span { color: #6b7280; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-yes { color: #2f8a12; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-no { color: #9a2430; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-date { color: #8a5800; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-orange { color: #c2410c; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-android { color: #0a5f82; }
html[data-theme="light"] .extract-device-aer-row b.extract-aer-white { color: #1a1d22; }
.extract-out-h { font-size: 11px; font-weight: 700; color: #cfcfcf; margin: 4px 0 6px; }
.fw-filter .tls-combo { width: auto; min-width: 110px; }
.fw-dl-file { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.fw-dl-file b { font-size: 12px; color: #f2f2f2; word-break: break-all; font-weight: 500; }
.tls-hint { margin: 8px 0; font-size: 10px; color: #8a8a8a; }
/* Temp Root (admin) */
.tr-pane { flex: 1; min-height: 100%; display: flex; flex-direction: column; }
.tr-pane[hidden] { display: none; }
.tls-main:has(> .tr-pane:not([hidden])) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.tr-opts { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.tr-opt { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #bdbdbd; }
.tr-opt-check { font-size: 12px; color: #bdbdbd; }
html[data-theme="light"] .tr-opt, html[data-theme="light"] .tr-opt-check { color: #4a4f58; }
.tls-token-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
}
.tls-imei-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 8px 0 10px;
}
.tls-imei-row .input { font-family: Consolas, "Cascadia Mono", monospace; font-size: 12px; letter-spacing: .02em; }
.tls-card.tls-repair {
  padding: 16px 16px 12px;
}
.tls-repair-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--line);
}
.tls-repair-ico {
  width: 40px; height: 40px; border-radius: 12px;
  display: grid; place-items: center;
  background: var(--surface-2, #1a1a1a);
  border: 1px solid var(--line);
}
.tls-repair-ico img { width: 22px; height: 22px; display: block; }
.tls-repair-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tls-repair-txt b {
  font-size: 14px; color: var(--text); font-weight: 650;
}
.tls-repair-txt span { font-size: 11.5px; color: var(--muted); }
.tls-repair-modes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  margin: 0 0 14px;
}
.tls-repair-backup {
  margin: -6px 0 14px;
}
.repair-backup-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 12.5px/1.2 var(--font);
  color: var(--muted);
  cursor: pointer;
  user-select: none;
}
.repair-backup-chip:hover {
  color: var(--text);
}
.repair-backup-chip input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 16px;
  cursor: pointer;
}
.tls-repair-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  margin: 0 0 12px;
}
.tls-repair-grid .imei-block + .imei-block {
  padding-left: 16px;
  border-left: 1px solid var(--line);
}
.tls-repair .imei-composer:focus-within {
  border-color: #5a3a22;
}
.tls-repair-go { margin-top: 2px; }
.tls-repair .tls-hint { margin: 10px 0 0; }
html[data-theme="light"] .tls-repair-ico {
  background: #fff; border-color: var(--line);
}
html[data-theme="light"] .tls-repair .imei-composer:focus-within {
  border-color: #d4b08a;
}
.tls-token-row .input { font-family: Consolas, "Cascadia Mono", monospace; font-size: 11px; }
.tls-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 10px;
  min-height: 280px;
}
.pm-pane {
  display:flex; flex-direction:column; gap:10px;
  flex:1 1 auto; min-height:min(68vh, 640px);
}
.fb-pane:not(:has(> .fbf-subpane:not([hidden]))) {
  flex:0 0 auto; min-height:0;
}
.pm-pane[hidden],
[data-tls-pane][hidden] { display:none !important; }
.tls-main:has(> .pm-pane[data-tls-pane="partition"]:not([hidden])),
.tls-main:has(> .fb-pane:not([hidden]) > .fbf-subpane:not([hidden])) {
  display:flex; flex-direction:column; overflow:hidden;
  min-height:min(72vh, 700px);
}
.tls-main:has(> .pm-pane[data-tls-pane="partition"]:not([hidden])) .tls-op-runbar,
.tls-main:has(> .fb-pane:not([hidden]) > .fbf-subpane:not([hidden])) .tls-op-runbar {
  display:none !important;
}
.pm-subtabs, .pm-stats, .pm-search, .pm-ops, .pm-actions { flex-shrink:0; }
.pm-subpane {
  display:flex; flex-direction:column; gap:10px;
  flex:1 1 auto; min-height:0;
}
.pm-subpane[hidden] { display:none !important; }
.pm-subtabs {
  display:flex; gap:18px; align-items:center; flex-wrap:wrap;
  padding:0 4px; border-bottom:0;
}
.pm-subtab {
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 4px 9px; border:0; border-bottom:2px solid transparent; border-radius:0;
  font:600 13px/1 "Segoe UI",sans-serif;
  color:#7a7a7a; background:none;
  cursor:pointer; transition:color .15s, border-color .15s;
}
.pm-subtab .ico { opacity:.65; transition:opacity .15s, color .15s; }
.pm-subtab:hover:not(.on) { color:#c8c8c8; }
.pm-subtab:hover:not(.on) .ico { opacity:.95; }
.pm-subtab.on {
  color:#ffffff; border-bottom-color:var(--accent, #c94a50);
}
.pm-subtab.on .ico { color:var(--accent, #c94a50); opacity:1; }
.pm-stats {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:10px 12px; border-radius:12px; background:#121212; border:1px solid #242424;
}
.pm-pill {
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 10px; border-radius:8px; background:#1a1a1a; border:1px solid #2e2e2e;
  color:#d4b896; font-size:11px; font-weight:700;
}
.pm-pill b { font-weight:700; color:#d4b896; }
#pmSlotPill b,
#pmSlotPill .pm-ico-swap { color:#2d9a48; }
.pm-ico-chip, .pm-ico-swap {
  width:14px; height:14px; flex:0 0 14px; display:inline-block;
  background:currentColor;
  mask:no-repeat center / contain;
  -webkit-mask:no-repeat center / contain;
}
.pm-ico-chip {
  color:#c2700c;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 4v16M15 4v16M4 9h16M4 15h16'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 4v16M15 4v16M4 9h16M4 15h16'/%3E%3C/svg%3E");
}
.pm-ico-swap {
  color:#d4b896;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M7 8h12M16 4l4 4-4 4M17 16H5M8 20l-4-4 4-4'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M7 8h12M16 4l4 4-4 4M17 16H5M8 20l-4-4 4-4'/%3E%3C/svg%3E");
}
.pm-msg { flex:1; min-width:120px; color:#8a8a8a; font-size:10.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pm-search { display:flex; gap:8px; align-items:center; }
.pm-search .input { flex:1; min-width:0; height:34px; }
.pm-search .tls-btn { height:34px; flex:0 0 auto; }
.pm-list {
  flex:1 1 auto;
  border:1px solid #242424; border-radius:12px; background:#121212;
  overflow:auto; min-height:280px; max-height:none; padding:6px;
}
.pm-list:has(.cln-empty) {
  display:flex; align-items:center; justify-content:center;
}
.pm-row {
  display:grid; grid-template-columns:22px 4px auto minmax(0,1fr) auto auto;
  gap:8px; align-items:center;
  margin:0 0 4px; padding:6px 8px; border-radius:8px;
  background:#1a1a1a; border:1px solid #2e2e2e;
}
.pm-row:hover { border-color:#3a3a3a; }
.pm-row.is-on { border-color:#5a3a20; background:#1c1612; }
.pm-row .cln-check { margin:0; }
.pm-bar { width:4px; height:18px; border-radius:2px; background:var(--pm-color, #546E7A); }
.pm-kind {
  font-size:9px; font-weight:700; letter-spacing:.02em; padding:2px 6px; border-radius:4px;
  color:var(--pm-color, #546E7A);
  background:color-mix(in srgb, var(--pm-color, #546E7A) 16%, transparent);
}
.pm-meta { min-width:0; }
.pm-meta b {
  display:block; font-family:Consolas,"Cascadia Mono",monospace; font-size:12px; font-weight:700;
  color:#e8e8e8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pm-meta small {
  display:block; font-family:Consolas,"Cascadia Mono",monospace; font-size:9px; color:#8a8a8a;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pm-size {
  font-family:Consolas,"Cascadia Mono",monospace; font-size:11px; font-weight:600;
  color:#8a8a8a; white-space:nowrap; font-variant-numeric:tabular-nums;
}
.pm-write { display:none; align-items:center; gap:4px; }
.pm-pane.is-write .pm-write { display:inline-flex; }
.pm-write .pm-file,
.fm-upload-name {
  width:160px; min-width:120px; height:28px; font-size:11px; padding:2px 10px;
  border:1px solid #2e2e2e; border-radius:7px; background:#171717; color:#d8d8d8;
  font-family:Consolas,"Cascadia Mono",monospace; outline:none;
}
.pm-write .pm-pick,
#fmPickUpload {
  height:28px; padding:0 11px; font-size:11px; font-weight:650; border-radius:7px;
  border:1px solid #5a3a20; background:#221810; color:#e8c8a0; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s;
}
.pm-write .pm-pick:hover,
#fmPickUpload:hover { background:#2d1f14; border-color:#7a4f2c; color:#fff; }
.pm-ops {
  padding:10px 12px; border-radius:12px; background:#121212; border:1px solid #242424;
}
.pm-ops .tls-sec { color:#d4b896; margin-bottom:8px; }
.pm-radios { display:flex; flex-wrap:wrap; gap:8px; }
.pm-radio {
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; user-select:none;
  padding:5px 12px; border-radius:999px; border:1px solid #2e2e2e; background:#1a1a1a;
  font-size:12px; font-weight:650; color:#c8c8c8;
}
.pm-radio input { accent-color:#c2700c; }
.pm-radio:has(input:checked) {
  border-color:#5a3a20; background:#221810; color:#e8c8a0;
}
.pm-actions {
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:10px 12px; border-radius:12px; background:#121212; border:1px solid #242424;
}
.pm-prog-wrap { flex:1; min-width:140px; }
.pm-prog-txt { font-size:10.5px; color:#8a8a8a; min-height:1.2em; }
.pm-prog { display:flex; align-items:center; gap:8px; margin-top:4px; }
.pm-prog[hidden] { display:none !important; }
.pm-prog-wrap:not(.is-on) .pm-prog-txt:empty { display:none; }
.pm-prog-track {
  flex:1; height:6px; border-radius:3px; background:#2a2a2a; overflow:hidden;
}
.pm-prog-track i { display:block; height:100%; width:0; background:var(--accent, #8d3d43); border-radius:3px; }
.pm-prog b { font-size:11px; color:#d4b896; min-width:2.5em; text-align:right; }
.pm-act-btns { display:flex; gap:6px; flex:0 0 auto; }
.pm-act-btns .tls-btn { height:34px; min-width:90px; }
html[data-theme="light"] .pm-stats,
html[data-theme="light"] .pm-list,
html[data-theme="light"] .pm-ops,
html[data-theme="light"] .pm-actions {
  background:#fff; border-color:#d5d8df;
}
html[data-theme="light"] .pm-row { background:#f7f8fa; border-color:#e2e5ea; }
html[data-theme="light"] .pm-row.is-on { background:#f6eee8; border-color:#e0c4b0; }
html[data-theme="light"] .pm-meta b { color:#16181e; }
html[data-theme="light"] .pm-size { color:#6b7280; }
html[data-theme="light"] #pmSlotPill b,
html[data-theme="light"] #pmSlotPill .pm-ico-swap { color:#1e7a36; }
html[data-theme="light"] .pm-meta small,
html[data-theme="light"] .pm-msg,
html[data-theme="light"] .pm-prog-txt { color:#6b7280; }
html[data-theme="light"] .pm-radio { background:#f4f5f7; border-color:#dde1e8; color:#3a4050; }
html[data-theme="light"] .pm-radio:has(input:checked) { background:#f6eee8; border-color:#e0c4b0; color:#8a4a18; }
html[data-theme="light"] .pm-pill { background:#f4f5f7; border-color:#dde1e8; }
html[data-theme="light"] .pm-subtabs { border-bottom:0; }
html[data-theme="light"] .pm-subtab { background:none; border-color:transparent; color:#6b7280; }
html[data-theme="light"] .pm-subtab.on { background:none; border-bottom-color:var(--accent, #c94a50); color:#16181e; }
html[data-theme="light"] .pm-write .pm-file,
html[data-theme="light"] .pm-write .pm-pick,
html[data-theme="light"] .fm-upload-name,
html[data-theme="light"] #fmPickUpload { background:#fff; border-color:#c5cad3; color:#1c1e22; }

/* ——— File Manager (inside Partition & File Manager) ——— */
.fm-stats { gap:6px; }
.fm-stats .pm-msg:empty { display:none; }
.fm-up-btn {
  display:inline-flex; align-items:center; gap:5px;
  height:28px; padding:0 10px; border-radius:8px;
  border:1px solid #4d331e; background:#221810; color:#e8c8a0;
  font-size:11px; font-weight:700; cursor:pointer; flex-shrink:0;
  transition:background .15s, border-color .15s, opacity .15s;
}
.fm-up-btn:hover:not(:disabled) { background:#2c1f14; border-color:#6e492b; }
.fm-up-btn:disabled { opacity:.42; cursor:default; }
.fm-crumbs {
  flex:1 1 180px; min-width:130px; max-width:100%;
  display:flex; align-items:center; gap:2px; overflow-x:auto;
  padding:3px 8px; height:28px; border-radius:8px;
  background:#171717; border:1px solid #2a2a2a;
  font-family:Consolas,"Cascadia Mono",monospace; font-size:11.5px; color:#d0d0d0;
  scrollbar-width:none;
}
.fm-crumbs::-webkit-scrollbar { display:none; }
.fm-crumb {
  background:none; border:none; padding:2px 5px; border-radius:5px;
  color:#b8b8b8; font-family:inherit; font-size:11.5px; font-weight:600;
  cursor:pointer; white-space:nowrap;
}
.fm-crumb:hover { background:#262626; color:#fff; }
.fm-crumb.is-cur { color:#e8c8a0; font-weight:700; }
.fm-sep { color:#5f5f5f; font-size:11px; user-select:none; }
.fm-quick { display:inline-flex; align-items:center; gap:4px; flex-wrap:wrap; }
.fm-qbtn {
  height:26px; padding:0 8px; border-radius:6px;
  border:1px solid #2c2c2c; background:#191919; color:#b8b8b8;
  font-family:Consolas,"Cascadia Mono",monospace; font-size:10.5px; font-weight:600;
  cursor:pointer; transition:background .14s, border-color .14s, color .14s;
}
.fm-qbtn:hover { border-color:#4a3520; color:#e8c8a0; background:#201812; }
.fm-qbtn.is-on { border-color:#5a3a20; background:#221810; color:#e8c8a0; }
#fmAccessPill.is-root b { color:#38b259; }
#fmRwPill.is-rw b { color:#38b259; }
#fmRwPill.is-ro b { color:#e08b2c; }
.fm-sel-all {
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px;
  background:#171717; border:1px solid #2a2a2a; cursor:pointer; flex-shrink:0;
}
.fm-sel-all .cln-check { margin:0; }
.fm-list:has(.cln-empty) {
  display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start;
}
.fm-list .cln-empty {
  flex:1 1 auto; display:flex; align-items:center; justify-content:center;
}
.fm-row .pm-bar {
  opacity:.34;
}
.fm-row .pm-kind {
  font-size:8.5px; font-weight:600; letter-spacing:.03em; padding:2px 5px; border-radius:4px;
  color:color-mix(in srgb, var(--pm-color, #8a8a8a) 55%, #9ca3af);
  background:color-mix(in srgb, var(--pm-color, #8a8a8a) 7%, transparent);
  border:1px solid color-mix(in srgb, var(--pm-color, #8a8a8a) 14%, transparent);
  opacity:.72;
}
.fm-row-up {
  cursor:pointer; border-style:dashed; border-color:#3d2c1c; background:#161310;
}
.fm-row-up:hover { border-color:#5c4128; background:#1e1812; }
.fm-up-ico {
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:5px; color:#d4b896; background:#221912;
}
.fm-row.is-dir .pm-meta { cursor:pointer; }
.fm-row.is-dir .pm-meta:hover b { color:#f0cda0; }
.pm-meta b.fm-name-line {
  display:flex; align-items:center; gap:6px; min-width:0;
}
.pm-meta b.fm-name-line > span {
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fm-name-line .ico { flex-shrink:0; opacity:.62; }
.fm-row.is-dir .fm-name-line .ico { color:#d8963ff0; opacity:.78; }
.fm-badges { display:inline-flex; align-items:center; gap:5px; flex-shrink:0; }
.fm-badge {
  font-family:Consolas,"Cascadia Mono",monospace; font-size:9.5px; font-weight:600;
  padding:2px 6px; border-radius:5px; border:1px solid transparent; white-space:nowrap;
}
.fm-badge.is-rw { color:rgba(74,222,128,.78); background:rgba(34,197,94,.07); border-color:rgba(34,197,94,.18); }
.fm-badge.is-ro { color:rgba(251,191,36,.8); background:rgba(245,158,11,.07); border-color:rgba(245,158,11,.18); }
.fm-badge.is-ch { color:#9ca3af; background:#181a1f; border-color:#262930; }
.fm-badge.is-dir { color:#bda382; background:#1e1711; border-color:#38291b; }
.pm-size.is-dir-open {
  color:#c8ae8e; cursor:pointer; padding:2px 7px; border-radius:5px;
  background:#1c1510; border:1px solid #3a291a; font-size:10px; font-weight:600;
}
.pm-size.is-dir-open:hover { background:#281d14; border-color:#5a3e24; color:#e8c8a0; }
.fm-ops-head {
  display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;
  margin-bottom:8px;
}
.fm-ops-head .tls-sec { margin-bottom:0; }
.fm-op-extra { display:inline-flex; align-items:center; gap:6px; font-size:11px; color:#b8b8b8; }
.fm-op-extra[hidden] { display:none !important; }
.fm-chmod-sel { height:28px; font-size:11px; padding:2px 8px; min-width:190px; }
.fm-upload-name { width:220px !important; }

html[data-theme="light"] .fm-up-btn { background:#f6eee8; border-color:#d8b498; color:#7a3e10; }
html[data-theme="light"] .fm-crumbs,
html[data-theme="light"] .fm-sel-all,
html[data-theme="light"] .fm-qbtn { background:#f4f5f7; border-color:#dde1e8; color:#2b303c; }
html[data-theme="light"] .fm-crumb { color:#3a4050; }
html[data-theme="light"] .fm-crumb.is-cur,
html[data-theme="light"] .fm-qbtn.is-on { color:#8a4a18; background:#f6eee8; border-color:#d8b498; }

/* ——— Fastboot Flash (inside Fastboot tab) ——— */
.fbf-stats {
  flex-direction:column; align-items:stretch; gap:8px; padding:10px 12px;
}
.fbf-head-row {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.fbf-head-ico {
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; flex-shrink:0;
  color:var(--accent, #8d3d43);
}
.fbf-head-ico .ico { color:inherit; opacity:1; }
#fbFlashProdPill { color:var(--muted, #8d8d8d); font-weight:650; }
#fbFlashProd { color:#4CBB17; }
.fbf-pick-row {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.fbf-pick-main {
  display:flex; align-items:center; gap:6px; flex:1 1 420px; min-width:0; flex-wrap:wrap;
}
.fbf-path-inp {
  flex:1 1 220px; min-width:140px; height:32px; font-size:11.5px;
  font-family:Consolas,"Cascadia Mono",monospace;
}
.fbf-bat-sel {
  height:32px; font-size:11.5px; padding:2px 8px; max-width:210px;
  font-family:Consolas,"Cascadia Mono",monospace;
}
.fbf-pick-row .tls-btn {
  height:32px; min-height:32px; padding:0 12px; flex-shrink:0;
}
.fbf-table-wrap {
  flex:1 1 auto; display:flex; flex-direction:column; min-height:280px;
  border:1px solid #242424; border-radius:12px; background:#121212; overflow:hidden;
}
.fbf-thead {
  display:grid;
  grid-template-columns:34px 72px minmax(145px,1.25fr) minmax(120px,1.1fr) 82px minmax(110px,1.2fr);
  gap:8px; align-items:center;
  padding:7px 12px; background:#161616; border-bottom:1px solid #242424;
  font-size:10.5px; font-weight:650; color:#8a8a8a; user-select:none;
}
.fbf-col-chk { display:flex; align-items:center; justify-content:center; }
.fbf-col-chk .cln-check { margin:0; }
.fbf-list {
  border:0; border-radius:0; min-height:240px; padding:6px;
}
.fbf-row {
  display:grid;
  grid-template-columns:34px 72px minmax(145px,1.25fr) minmax(120px,1.1fr) 82px minmax(110px,1.2fr);
  gap:8px; align-items:center;
  margin:0 0 4px; padding:6px 6px; border-radius:8px;
  background:#1a1a1a; border:1px solid #2e2e2e;
  font-size:11.5px;
}
.fbf-row:hover { border-color:#3a3a3a; }
.fbf-row.is-on { border-color:rgba(186,206,224,.16); background:rgba(170,196,220,.045); }
.fbf-row.is-skip-modem { border-color:#6b46c1; background:rgba(128,90,213,.08); }
.fbf-row.is-skip-lk { border-color:#8d3d43; background:rgba(141,61,67,.10); }
.fbf-row.is-extra { border-style:dashed; border-color:#6f5a34; }
.fbf-row.is-extra:hover { border-color:#8a6d3b; }
.fbf-row.is-extra.is-on { border-color:#b8892f; background:rgba(212,165,116,.07); }
.fbf-cmd {
  justify-self:start; max-width:100%;
  font-family:Consolas,"Cascadia Mono",monospace;
  font-size:10px; font-weight:650; letter-spacing:.01em;
  padding:1px 0;
  border:0; border-radius:0; background:none;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  color:var(--cmd-color, #8a8a8a);
}
.fbf-cmd.is-flash,
.fbf-row.is-flash { --cmd-color:#229954; }
.fbf-cmd.is-erase,
.fbf-row.is-erase { --cmd-color:#E53935; }
.fbf-row.is-oem-lock .fbf-part-name { color:var(--cmd-color, #E53935); }
.fbf-cmd.is-oem,
.fbf-row.is-oem { --cmd-color:#f5c542; }
.fbf-cmd.is-slot,
.fbf-row.is-slot { --cmd-color:#3ec6ff; }
html[data-theme] .fbf-row .fbf-col-chk .cln-check i,
.fbf-row .fbf-col-chk .cln-check i {
  border-color:var(--cmd-color, #8a8a8a);
  background:transparent;
  box-shadow:none;
}
html[data-theme] .fbf-row .fbf-col-chk .cln-check input:hover + i,
.fbf-row .fbf-col-chk .cln-check input:hover + i {
  border-color:var(--cmd-color, #8a8a8a);
}
html[data-theme] .fbf-row .fbf-col-chk .cln-check input:checked + i,
.fbf-row .fbf-col-chk .cln-check input:checked + i {
  background:var(--cmd-color, #8a8a8a);
  border-color:var(--cmd-color, #8a8a8a);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--cmd-color, #8a8a8a) 28%, transparent);
}
html[data-theme] .fbf-row.is-flash .fbf-col-chk .cln-check input:checked + i::after,
html[data-theme] .fbf-row.is-erase .fbf-col-chk .cln-check input:checked + i::after,
.fbf-row.is-flash .fbf-col-chk .cln-check input:checked + i::after,
.fbf-row.is-erase .fbf-col-chk .cln-check input:checked + i::after {
  border-color:#fff;
}
html[data-theme] .fbf-row.is-oem .fbf-col-chk .cln-check input:checked + i::after,
.fbf-row.is-oem .fbf-col-chk .cln-check input:checked + i::after {
  border-color:#1a1208;
}
html[data-theme] .fbf-thead .fbf-col-chk .cln-check i,
.fbf-thead .fbf-col-chk .cln-check i {
  border-color:#ffab40;
  background:transparent;
  box-shadow:none;
}
html[data-theme] .fbf-thead .fbf-col-chk .cln-check input:hover + i,
.fbf-thead .fbf-col-chk .cln-check input:hover + i {
  border-color:#ffc56b;
}
html[data-theme] .fbf-thead .fbf-col-chk .cln-check input:checked + i,
.fbf-thead .fbf-col-chk .cln-check input:checked + i {
  background:#ffab40;
  border-color:#ffab40;
  box-shadow:0 0 0 3px rgba(255,171,64,.22);
}
html[data-theme] .fbf-thead .fbf-col-chk .cln-check input:checked + i::after,
.fbf-thead .fbf-col-chk .cln-check input:checked + i::after {
  border-color:#2a1608;
}
.fbf-part-cell {
  display:flex; align-items:center; gap:7px; min-width:0;
}
.fbf-part-name {
  font-family:Consolas,"Cascadia Mono",monospace; font-size:12px; font-weight:650;
  color:#e8e8e8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.fbf-part-name.is-warn { color:#D4A574; }
.fbf-part-name.is-userdata { color:#C77DFF; }
.fbf-part-name.is-crc { color:#C9A227; }
.fbf-part-name.is-preloader { color:#D2B48C; }
.fbf-part-name.is-extra { color:#E0B25C; }
.fbf-file-cell {
  font-size:11px; color:#f2f2f2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.fbf-size-cell {
  font-family:Consolas,"Cascadia Mono",monospace; font-size:11px; font-weight:600;
  color:#f2f2f2; white-space:nowrap; font-variant-numeric:tabular-nums;
}
.fbf-path-cell {
  font-family:Consolas,"Cascadia Mono",monospace; font-size:10.5px; color:#9e9e9e;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.fbf-checks {
  display:inline-flex; align-items:center; gap:12px 16px; flex-wrap:wrap; flex-shrink:0;
  margin-left:auto;
}
.fbf-check span:last-child { white-space:nowrap; }
html[data-theme] .fbf-actions .pm-prog-track i,
.fbf-actions .pm-prog-track i {
  background: var(--accent, #8d3d43);
  opacity: 1;
}
.fbf-check {
  display:inline-flex; align-items:center; gap:7px;
  font-size:12px; font-weight:600; color:#d0d0d0; cursor:pointer; user-select:none;
}
.fbf-check .cln-check { margin:0; }

html[data-theme="light"] .fbf-table-wrap { background:#fff; border-color:#d5d8df; }
html[data-theme="light"] .fbf-thead { background:#f3f4f7; border-bottom-color:#dde1e8; color:#5b6270; }
html[data-theme="light"] .fbf-row { background:#f7f8fa; border-color:#e2e5ea; }
html[data-theme="light"] .fbf-row.is-on { background:rgba(40,70,110,.035); border-color:rgba(40,70,110,.12); }
html[data-theme="light"] .fbf-part-name,
html[data-theme="light"] .fbf-file-cell,
html[data-theme="light"] .fbf-size-cell,
html[data-theme="light"] .fbf-check { color:#16181e; }
html[data-theme="light"] .fbf-path-cell { color:#6b7280; }
html[data-theme="light"] .fbf-cmd.is-flash,
html[data-theme="light"] .fbf-row.is-flash { --cmd-color:#1e8a48; }
html[data-theme="light"] .fbf-cmd.is-erase,
html[data-theme="light"] .fbf-row.is-erase { --cmd-color:#d32f2f; }
html[data-theme="light"] .fbf-cmd.is-oem,
html[data-theme="light"] .fbf-row.is-oem { --cmd-color:#d4a017; }
html[data-theme="light"] .fbf-cmd.is-slot,
html[data-theme="light"] .fbf-row.is-slot { --cmd-color:#0284c7; }
html[data-theme="light"] .fbf-row.is-skip-lk { border-color:#c98a90; background:#f8eeee; }
html[data-theme="light"] .fbf-row.is-extra { border-color:#d9c08a; }
html[data-theme="light"] .fbf-row.is-extra:hover { border-color:#c9a227; }
html[data-theme="light"] .fbf-row.is-extra.is-on { border-color:#c9a227; background:#fdf8ea; }
html[data-theme="light"] .fbf-part-name.is-extra { color:#9a6b00; }

@media (max-width: 980px) {
  .fbf-pick-main { flex-basis: 100%; }
  .fbf-pick-row .fbf-checks {
    margin-left: 0;
    width: 100%;
    justify-content: flex-end;
  }
}

@media (max-width: 720px) {
  .fbf-thead,
  .fbf-row {
    grid-template-columns:28px 56px minmax(110px,1.2fr) minmax(90px,1fr) 70px;
  }
  .fbf-col-path,
  .fbf-path-cell { display:none; }
}
html[data-theme="light"] .fm-row-up { background:#faf5f0; border-color:#d8b498; }
html[data-theme="light"] .fm-badge.is-rw { color:#15803d; background:#dcfce7; border-color:#86efac; }
html[data-theme="light"] .fm-badge.is-ro { color:#b45309; background:#fef3c7; border-color:#fcd34d; }
html[data-theme="light"] .fm-badge.is-ch { color:#334155; background:#e2e8f0; border-color:#cbd5e1; }
html[data-theme="light"] .pm-size.is-dir-open { color:#7a3e10; background:#f6eee8; border-color:#d8b498; }

.tls-parts {
  border: 1px solid #242424;
  border-radius: 10px;
  overflow: auto;
  min-height: 240px;
  padding: 6px;
}
.tls-part {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border-radius: 8px;
  font-size: 12px;
}
.tls-part:hover { background: #1a1a1a; }
.tls-part em { color: #8a8a8a; font-style: normal; font-size: 11px; }
.extract-page .tls-part {
  --part-color: #94a3b8;
  grid-template-columns: 22px 44px minmax(0, 1fr) auto;
  min-height: 40px;
  padding: 8px 12px;
  gap: 10px;
  margin: 0 0 2px;
  border: 1px solid transparent;
  border-left: 2px solid color-mix(in srgb, var(--part-color) 38%, transparent);
  border-radius: 8px;
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.extract-page .tls-part:nth-child(even) { background: color-mix(in srgb, var(--paper-2) 55%, transparent); }
.extract-page .tls-part:hover {
  background: var(--elev);
  border-left-color: color-mix(in srgb, var(--part-color) 70%, transparent);
}
.extract-page .tls-part:has(input:checked) {
  background: color-mix(in srgb, var(--part-color) 8%, var(--elev));
  border-color: color-mix(in srgb, var(--part-color) 18%, transparent);
  border-left-color: var(--part-color);
  box-shadow: none;
}
.extract-page .tls-part:focus-within {
  outline: none;
  border-color: color-mix(in srgb, var(--part-color) 28%, transparent);
}
.extract-page .tls-part b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: Consolas, "Cascadia Mono", ui-monospace, monospace;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .015em;
  color: #f2f2f4;
}
.extract-page .tls-part:has(input:checked) b { color: #fff; }
.extract-page .tls-part em {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: #7e7e88;
  font-size: 11px;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
/* Kind chip: vivid hue, low fill — name stays the visual anchor */
.extract-part-kind {
  color: var(--part-color);
  background: color-mix(in srgb, var(--part-color) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--part-color) 16%, transparent);
  border-radius: 4px;
  padding: 2px 0;
  text-align: center;
  font-size: 8px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .03em;
  text-transform: uppercase;
  opacity: .88;
}
.extract-page .tls-part:hover .extract-part-kind,
.extract-page .tls-part:has(input:checked) .extract-part-kind { opacity: 1; }
.extract-page .part-boot { --part-color: #3dd68c; }
.extract-page .part-system { --part-color: #4aa8ff; }
.extract-page .part-radio { --part-color: #c084fc; }
.extract-page .part-nv { --part-color: #fb7185; }
.extract-page .part-data { --part-color: #fbbf24; }
.extract-page .part-fw { --part-color: #f87171; }
.extract-page .part-disk { --part-color: #94a3b8; }
.extract-page .part-other { --part-color: #a1a1aa; }
html[data-theme="light"] .extract-page .tls-part { --part-color: #64748b; }
html[data-theme="light"] .extract-page .part-boot { --part-color: #16a34a; }
html[data-theme="light"] .extract-page .part-system { --part-color: #2563eb; }
html[data-theme="light"] .extract-page .part-radio { --part-color: #9333ea; }
html[data-theme="light"] .extract-page .part-nv { --part-color: #e11d48; }
html[data-theme="light"] .extract-page .part-data { --part-color: #d97706; }
html[data-theme="light"] .extract-page .part-fw { --part-color: #dc2626; }
html[data-theme="light"] .extract-page .part-disk { --part-color: #64748b; }
html[data-theme="light"] .extract-page .part-other { --part-color: #71717a; }
html[data-theme="light"] .extract-page .tls-part b { color: #12141a; }
html[data-theme="light"] .extract-page .tls-part:has(input:checked) b { color: #0a0a0c; }
html[data-theme="light"] .extract-page .tls-part em {
  color: #6b7280;
  background: transparent;
  border-color: #e5e7eb;
}
html[data-theme="light"] .extract-page .extract-parts {
  background: #fff;
  border-color: #e3e6eb;
}
html[data-theme="light"] .extract-page .tls-part:has(input:checked) {
  background: color-mix(in srgb, var(--part-color) 7%, #fff);
}
.extract-page .imei-log-body .log-head:not(:first-child) { margin-top: 16px; }
.tls-meta {
  border: 1px solid #242424;
  border-radius: 10px;
  padding: 12px;
  font-size: 12px;
  line-height: 1.7;
}
.tls-fw-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex: 1; }
.tls-fw-bar .input { max-width: 240px; }
.tls-fw-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
  max-height: 280px;
  overflow: auto;
}
.tls-fw-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  border-radius: 10px;
  border: 1px solid #2a2a2a;
  background: #141414;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.tls-fw-card img { width: 100%; height: 72px; object-fit: contain; background: #0c0c0c; border-radius: 6px; }
.tls-fw-card b { font-size: 12px; }
.tls-fw-card span { font-size: 11px; color: #8a8a8a; }
.tls-fw-card.on { border-color: #c2700c; box-shadow: inset 0 0 0 1px #c2700c; }
.tls-fw-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) .7fr .7fr .8fr auto;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-bottom: 1px solid #222;
  font-size: 12px;
}
.tls-radios { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 8px 0; }
.tls-radio { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #a8a8a8; cursor: pointer; }
.tls-radio.on, .tls-radio:has(input:checked) { color: #f2f2f2; font-weight: 600; }
@media (max-width: 980px) {
  #app:has(.tls-wrap),
  #app:has(.tls-wrap) .shell { height: auto; max-height: none; overflow: visible; }
  #app:has(.tls-wrap) .main,
  #app:has(.tls-wrap) #page,
  .tls-wrap { height: auto; flex: none; display: block; }
  .tls-grid, .tls-split { grid-template-columns: 1fr; }
  .tls-token-row { grid-template-columns: 1fr; }
  .tls-imei-row { grid-template-columns: 1fr; }
  .tls-repair-grid { grid-template-columns: 1fr; gap: 12px; }
  .tls-repair-grid .imei-block + .imei-block { padding-left: 0; border-left: 0; }
  .extract-page .extract-parts { min-height: min(55vh, 640px); }
  .extract-page .tls-log { min-height: 260px; max-height: none; }
  .extract-page .tls-log .imei-log-body { flex: 0 1 auto; min-height: 120px; max-height: 300px; }
}

#app:has(.fw-page),
#app:has(.fw-page) .shell {
  height: 100%;
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
#app:has(.fw-page) .main,
#app:has(.fw-page) #page {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.fw-page {
  position: relative;
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 8px;
}
.fw-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
}
.fw-head-ico {
  width: 32px; height: 32px; border-radius: 8px;
  background: #29180d; border: 1px solid #5a2e18;
  display: grid; place-items: center; color: #c2700c;
}
.fw-head-txt { display: flex; flex-direction: column; gap: 1px; }
.fw-head-txt b { font-size: 13px; color: #f2f2f2; }
.fw-head-txt span { font-size: 11px; color: #8a8a8a; }
.fw-err {
  background: #2e1c1c; color: #d98989; border-radius: 8px;
  padding: 8px 10px; font-size: 12px;
}
.fw-body {
  min-height: 0;
  display: grid;
  grid-template-columns: 430px minmax(0, 1fr);
  gap: 10px;
}
.fw-left {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 10px;
  overflow: hidden;
}
.fw-left-h {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 8px; font-size: 12px; color: #f2f2f2;
}
.fw-mini-ico {
  width: 28px; height: 28px; border-radius: 7px;
  background: #29180d; border: 1px solid #5a2e18;
  display: grid; place-items: center; color: #c2700c;
}
.fw-list-wrap { position: relative; flex: 1; min-width: 0; min-height: 0; margin-top: 8px; overflow: hidden; }
.fw-list { height: 100%; overflow-x: hidden; overflow-y: auto; padding-right: 2px; }
.fw-card {
  display: grid;
  grid-template-rows: 110px auto 16px;
  width: 100%;
  margin: 0 0 8px;
  padding: 8px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--card);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.fw-card-img {
  height: 104px;
  border-radius: 8px;
  background: var(--thumb);
  border: 1px solid var(--line);
  overflow: hidden;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
}
.fw-card-img img {
  height: 100%; width: auto; max-width: 100%;
  object-fit: contain; object-position: center;
  background: transparent; display: block;
}
.fw-card b { font-size: 12px; color: var(--text); line-height: 1.25; }
.fw-card span { font-size: 11px; color: #d4b896; }
.fw-card.on { background: #1a1612; border-color: #5a2e18; }
.fw-right { position: relative; min-height: 0; }
.fw-detail {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 12px;
  overflow: hidden;
}
.fw-detail[hidden], .fw-dl[hidden], .fw-overlay[hidden], .fw-err[hidden] { display: none !important; }
.fw-sel { display: grid; grid-template-columns: 80px 1fr; gap: 12px; margin-bottom: 12px; }
.fw-sel-img {
  width: 80px; height: 80px; border-radius: 8px;
  background: var(--thumb); border: 1px solid var(--line);
  overflow: hidden; display: grid; place-items: center;
}
.fw-sel-img img {
  height: 100%; width: auto; max-width: 100%;
  object-fit: contain; object-position: center;
  background: transparent; display: block;
}
.fw-sel b { display: block; font-size: 14px; color: #f2f2f2; }
.fw-sel span { font-size: 12px; color: #d4b896; }
.fw-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 10px; }
.fw-filter { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #8a8a8a; }
.fw-filter-lbl { font-size: 11px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.fw-filter-server { margin-left: auto; }
.fw-filter-server .tls-combo { min-width: 168px; }
.fw-seg {
  display: inline-flex;
  padding: 3px;
  gap: 2px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #121212;
}
.fw-seg-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: #8a8a8a;
  font: 650 12px/1 "Segoe UI", "Noto Sans", sans-serif;
  padding: 7px 12px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.fw-seg-btn .ico { flex: 0 0 auto; opacity: .85; }
.fw-seg-btn.on {
  background: #29180d;
  color: #f2f2f2;
  box-shadow: inset 0 0 0 1px #5a2e18;
}
.fw-seg-btn.on .ico { opacity: 1; color: #c2700c; }
.fw-region-wrap { margin: 0 0 12px; }
.fw-region-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.fw-region-bar { display: flex; flex-wrap: wrap; gap: 8px; }
.fw-region {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px 6px 7px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.fw-region:hover { border-color: #9a5930; }
.fw-region.on { background: #1a1612; border-color: #5a2e18; }
.fw-region b { font-size: 12px; font-weight: 650; }
.fw-region em {
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  background: #1e1e1e;
  border-radius: 999px;
  padding: 1px 6px;
}
.fw-flag {
  width: 22px;
  height: 16px;
  border-radius: 3px;
  overflow: hidden;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12);
}
.fw-flag img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fw-flag-globe { color: var(--muted); background: rgba(255,255,255,.06); }
.fw-flag-globe svg { width: 12px; height: 12px; }
.fw-s2 { margin: 0; }
.fw-table-wrap { flex: 1; min-height: 0; overflow: auto; }
.fw-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.fw-table th { text-align: left; color: #8a8a8a; font-weight: 600; padding: 8px 6px; border-bottom: 1px solid #242424; }
.fw-table td { padding: 8px 6px; border-bottom: 1px solid #1e1e1e; color: #e8e8e8; }
.fw-table .fw-and { color: #d4b896; font-weight: 500; }
.fw-table .fw-size { color: #a8a8a8; }
.fw-table .fw-pick { text-align: right; width: 1%; white-space: nowrap; }
.fw-table th:last-child { text-align: right; }
.fw-sec-btn {
  appearance: none;
  min-width: 72px;
  height: 30px;
  padding: 0 12px;
  border-radius: 8px;
  border: 1px solid var(--line-2, #2e2e2e);
  background: var(--elev, #1a1a1a);
  color: var(--text, #ededed);
  font: 600 12px/1 "Segoe UI", "Noto Sans", sans-serif;
  letter-spacing: .01em;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-shadow: none;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.fw-sec-btn:hover:not(:disabled) {
  background: var(--red-glow);
  border-color: var(--red-border);
  color: #fff;
}
.fw-sec-btn:active:not(:disabled) { transform: translateY(1px); }
.fw-sec-btn.is-picked,
.fw-sec-btn:disabled {
  min-width: 88px;
  background: rgba(141, 61, 67, .18);
  border-color: rgba(163, 77, 84, .55);
  color: #f0b4b6;
  cursor: default;
  box-shadow: none;
  opacity: 1;
}
.fw-sec-btn.is-picked .ico { color: #f0b4b6; }
.fw-dl {
  margin-top: 12px; padding: 10px; border-radius: 12px;
  border: 1px solid #242424; background: #121212;
}
.fw-dl-name { font-size: 12px; color: #f2f2f2; margin-bottom: 8px; word-break: break-all; }
.fw-overlay {
  position: absolute; inset: 0; z-index: 5;
  background: #99000000; border-radius: 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  color: #f2f2f2; font-size: 12px;
}
.fw-overlay-page {
  z-index: 8;
  border-radius: 12px;
  background: rgba(14, 14, 14, .72);
  backdrop-filter: blur(2px);
  font-size: 13px;
  font-weight: 550;
}
html[data-theme="light"] .fw-overlay-page {
  background: rgba(244, 245, 247, .78);
}
.fw-overlay[hidden] { display: none; }
.fw-spin {
  width: 40px; height: 40px; border-radius: 50%;
  border: 3px solid #3a2418; border-top-color: #c2700c;
  animation: fwspin .8s linear infinite;
}
@keyframes fwspin { to { transform: rotate(360deg); } }
html[data-theme="light"] .fw-head-txt b,
html[data-theme="light"] .fw-left-h,
html[data-theme="light"] .fw-card b,
html[data-theme="light"] .fw-sel b { color: #1c1e22; }
html[data-theme="light"] .fw-card { background: var(--card); border-color: var(--line); }
html[data-theme="light"] .fw-card.on { background: #f3ebe3; border-color: #c2700c; }
html[data-theme="light"] .fw-seg { background: #f4f5f7; }
html[data-theme="light"] .fw-seg-btn { color: #4a5160; }
html[data-theme="light"] .fw-seg-btn.on {
  background: #f8efe6;
  color: #7a3a10;
  box-shadow: inset 0 0 0 1px #e4c4a4;
}
html[data-theme="light"] .fw-region.on { background: #f3ebe3; border-color: #c2700c; }
html[data-theme="light"] .fw-region em { background: #eef0f3; color: #4a5160; }
html[data-theme="light"] .fw-flag { box-shadow: 0 0 0 1px rgba(0,0,0,.1); }
html[data-theme="light"] .fw-flag-globe { color: #0f766e; background: #eef6f4; }
@media (max-width: 980px) {
  #app:has(.fw-page),
  #app:has(.fw-page) .shell { height: auto; max-height: none; overflow: visible; }
  .fw-body { grid-template-columns: 1fr; }
  .fw-list-wrap { height: 420px; }
}

html[data-theme="light"] .chip.on {
  color: #7a2430;
  background: #f6eaea;
  border-color: #e8c8cc;
}
html[data-theme="light"] .notice {
  background: #fff8e8;
  border-color: #ead4a0;
  color: #6a5010;
}
html[data-theme="light"] .side-mem { color: var(--side-text); }
html[data-theme="light"] .side-mem-days.is-ok { color: #176a2c; }
html[data-theme="light"] .side-mem-days.is-low { color: #b4232c; }
html[data-theme="light"] .rail-kpi.is-hot b { color: #8a6912; }
html[data-theme="light"] .rail-well {
  color: #8b3038;
  background: #f6eaea;
  border-color: #e8c8cc;
}
html[data-theme="light"] .badge-off,
html[data-theme="light"] .badge.q-mid { background: #eef0f3; color: #4a5160; border-color: #d5d8de; }
html[data-theme="light"] .badge.mem-soon { background: #fff6e5; color: #8a5a10; border-color: #ead4a0; }
html[data-theme="light"] .svc-imei .pill-ico { color: #1d6a78; background: #e6f3f6; }
html[data-theme="light"] .svc-sifre .pill-ico { color: #8a6418; background: #f8f0dc; }
html[data-theme="light"] .svc-yazilim .pill-ico { color: #5a4a8a; background: #eeeaf6; }
html[data-theme="light"] .svc-frp .pill-ico { color: #1d6b45; background: #e6f5ec; }
html[data-theme="light"] .pill-ico { color: #4a5160; background: #eef0f3; }
html[data-theme="light"] .os-mark.os-glow-1 { color: #1d5fad; filter: none; }
html[data-theme="light"] .os-mark.os-glow-2 { color: #5a38b0; filter: none; }
html[data-theme="light"] .os-mark.os-glow-3 { color: #c45a12; filter: none; }
html[data-theme="light"] .os-mark.os-glow-4 { color: #b4232c; filter: none; }
html[data-theme="light"] .os-mark.os-glow-x { color: #4a5160; filter: none; }
html[data-theme="light"] .os-mark.os-glow-mi { color: #c2410c; filter: none; }
html[data-theme="light"] .cln-badge.t-Tehlikeli,
html[data-theme="light"] .cln-badge.t-Reklamcı { color: #9a2430; background: #fdecec; border-color: #f0c4c4; }
html[data-theme="light"] .cln-badge.t-Şüpheli { color: #8a5a10; background: #fff6e5; border-color: #ead4a0; }
html[data-theme="light"] .cln-badge.t-Güvenilir { color: #176a2c; background: #e5f6ec; border-color: #b7e0c8; }
html[data-theme="light"] .cln-type.t-Tehlikeli,
html[data-theme="light"] .cln-type.t-Reklamcı { color: #9a2430; }
html[data-theme="light"] .cln-type.t-Güvenilir { color: #176a2c; }
html[data-theme="light"] .tls-card {
  background: #fff;
  border-color: var(--line);
  box-shadow: var(--shadow);
}
html[data-theme="light"] .tls-inner { background: #f7f8fa; }
html[data-theme="light"] .tls-sec { color: #8a5a28; }
html[data-theme="light"] .tls-btn {
  background: #fff;
  border-color: var(--line-2);
  color: #12141a;
}
html[data-theme="light"] .tls-btn .ico { color: #3a404c; }
html[data-theme="light"] .tls-btn:hover:not(:disabled) { background: #f4f5f7; }
html[data-theme="light"] .tls-btn.tls-accent {
  background: #f8efe6;
  border-color: #e4c4a4;
  color: #7a3a10;
}
html[data-theme="light"] .tls-btn.tls-accent:hover:not(:disabled) { background: #f3e6d8; }
html[data-theme="light"] .tls-btn.tls-danger {
  background: #fdecec;
  border-color: #f0c4c4;
  color: #9a2430;
}
html[data-theme="light"] .tls-btn.tls-danger:hover:not(:disabled) { background: #f8dede; }
html[data-theme="light"] .tls-reboot-lbl,
html[data-theme="light"] .tls-hint,
html[data-theme="light"] .tls-part em,
html[data-theme="light"] .tls-fw-card span,
html[data-theme="light"] .extract-meta,
html[data-theme="light"] .fw-head-txt span,
html[data-theme="light"] .fw-filter,
html[data-theme="light"] .fw-table .fw-size { color: #4a5160; }
html[data-theme="light"] .extract-title,
html[data-theme="light"] .extract-kicker,
html[data-theme="light"] .extract-parts-count,
html[data-theme="light"] .extract-parts-cols,
html[data-theme="light"] .extract-meta b,
html[data-theme="light"] .extract-out-h,
html[data-theme="light"] .fw-dl-file b,
html[data-theme="light"] .fw-dl-name,
html[data-theme="light"] .fw-sel span,
html[data-theme="light"] .fw-card span,
html[data-theme="light"] .fw-table .fw-and { color: #8a5a28; }
html[data-theme="light"] .extract-title,
html[data-theme="light"] .extract-meta b,
html[data-theme="light"] .fw-dl-file b,
html[data-theme="light"] .fw-dl-name { color: #12141a; }
html[data-theme="light"] .extract-load {
  background: #f4f5f7;
  color: #3a404c;
}
html[data-theme="light"] .extract-dl-bar { background: #f4f5f7; }
html[data-theme="light"] .extract-dl-lbl { color: #3a404c; }
html[data-theme="light"] .tls-parts,
html[data-theme="light"] .tls-meta,
html[data-theme="light"] .tls-fw-card,
html[data-theme="light"] .fw-dl {
  background: #fff;
  border-color: var(--line);
}
html[data-theme="light"] .tls-part:hover { background: #f4f5f7; }
html[data-theme="light"] .tls-fw-card img,
html[data-theme="light"] .fw-card-img,
html[data-theme="light"] .fw-sel-img { background: var(--thumb); }
html[data-theme="light"] .tls-radio { color: #4a5160; }
html[data-theme="light"] .tls-radio.on,
html[data-theme="light"] .tls-radio:has(input:checked) { color: #12141a; }
html[data-theme="light"] .fw-head-ico,
html[data-theme="light"] .fw-mini-ico {
  background: #f8efe6;
  border-color: #e8c8a8;
  color: #9a4a10;
}
html[data-theme="light"] .fw-err {
  background: #fdecec;
  color: #9a2430;
}
html[data-theme="light"] .fw-table th {
  color: #4a5160;
  border-bottom-color: var(--line);
  background: transparent;
}
html[data-theme="light"] .fw-table td {
  color: #12141a;
  border-bottom-color: var(--line);
}
html[data-theme="light"] .fw-sec-btn {
  background: #fff;
  border-color: var(--line);
  color: #3a404c;
  box-shadow: none;
}
html[data-theme="light"] .fw-sec-btn:hover:not(:disabled) {
  background: #f6eaea;
  border-color: var(--red-border);
  color: #7a2430;
}
html[data-theme="light"] .fw-sec-btn.is-picked,
html[data-theme="light"] .fw-sec-btn:disabled {
  background: #f6eaea;
  border-color: #e8c8cc;
  color: #8b3038;
}
html[data-theme="light"] .fw-sec-btn.is-picked .ico { color: #8b3038; }
html[data-theme="light"] .fw-overlay { color: #12141a; }
html[data-theme="light"] .tls-tabs .chip,
html[data-theme="light"] [data-tls-tab] {
  color: #3a404c;
}
html[data-theme="light"] .empty h3,
html[data-theme="light"] .topbar h2,
html[data-theme="light"] .topbar .page-heading { color: #12141a; }
html[data-theme="light"] .hint,
html[data-theme="light"] .empty p { color: #4a5160; }
html[data-theme="light"] .modal {
  box-shadow: 0 24px 56px rgba(16,22,32,.16);
}
html[data-theme="light"] .brand-menu {
  background: #fff;
  box-shadow: 0 12px 28px rgba(16,22,32,.12);
}
html[data-theme="light"] .hover-tip {
  background: #12141a;
  color: #f4f5f7;
  border-color: #12141a;
}

/* Temp Root: WPF'deki gibi sol işlem panelinin alt durum çubuğu. */
.tr-runbar {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--card);
  border: 1px solid var(--line);
  min-height: 48px;
}
.tr-runbar-status { display: flex; align-items: center; gap: 8px; min-width: 130px; }
.tr-runbar-status[hidden], .tr-runbar-progress[hidden] { display: none; }
.tr-runbar .fw-spin { width: 16px; height: 16px; border-width: 2px; flex: 0 0 auto; }
.tr-runbar-txt {
  font: 400 11px/1 "Segoe UI", "Noto Sans", sans-serif;
  color: var(--muted);
  white-space: nowrap;
}
.tr-runbar-progress { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.tr-runbar-progress > span { font-size: 10px; font-weight: 700; white-space: nowrap; }
.tr-runbar #trCancel, .tr-runbar #tlsOpCancel { margin-left: auto; min-width: 78px; flex: 0 0 auto; }
.tr-runbar-track {
  flex: 1;
  height: 5px;
  min-width: 40px;
  border-radius: 99px;
  background: #2A2A2A;
  overflow: hidden;
}
.tr-runbar-fill {
  height: 100%;
  width: 0;
  border-radius: 99px;
  background: var(--accent, #8d3d43);
  transition: width .25s ease;
}
html[data-theme="light"] .tr-runbar-fill { background: var(--accent, #8b3038); }
@media (max-width: 600px) {
  .tr-runbar { flex-wrap: wrap; }
  .tr-runbar-progress { flex-basis: 100%; order: 3; }
}

/* Firmware: compact device browser, clear selection and download status. */
.fw-page .fw-card { grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-content: center; min-height: 76px; overflow: hidden; }
.fw-page .fw-card-img { grid-row: 1 / 3; width: 56px; height: 62px; padding: 4px; margin: 0; }
.fw-page .fw-card b {
  align-self: end;
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.fw-page .fw-card span {
  align-self: start;
  min-width: 0;
  padding-top: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fw-page .fw-card:hover { border-color: #9a5930; }
.fw-page .fw-sel { align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.fw-page .fw-sel b { font-size: 17px; }
.fw-page .fw-filters { padding: 4px 0 10px; }
.fw-page .fw-table thead { position: sticky; top: 0; z-index: 1; background: var(--card); }
.fw-page .fw-table th { font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.fw-page .fw-table td { padding: 11px 8px; }
.fw-page .fw-table tbody tr:hover { background: var(--elev); }
.fw-page .fw-table .fw-row-selected {
  background: var(--red-glow);
  box-shadow: inset 3px 0 var(--red);
}
html[data-theme="light"] .fw-page .fw-table .fw-row-selected {
  background: #f6eaea;
  box-shadow: inset 3px 0 var(--red);
}
.fw-page .fw-dl { flex-shrink: 0; background: var(--card); border-color: var(--line); }
.fw-page .fw-dl-file b { overflow-wrap: anywhere; }
.fw-dl-source { font-size: 11px; color: var(--muted); margin-top: 8px; }
.fw-download-progress { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 11px; display: grid; gap: 8px; }
.fw-download-progress #tlsFwProgressText { font-size: 12.5px; overflow-wrap: anywhere; }
.fw-dl-live {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  font: 560 12px/1 var(--mono, var(--font)); font-variant-numeric: tabular-nums;
}
.fw-stat {
  display: inline-flex; align-items: baseline; gap: 3px;
  height: 24px; padding: 0 9px; border-radius: 6px;
  background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(255, 255, 255, .08);
  color: #a8adb7; line-height: 22px;
}
.fw-stat b { font-weight: 700; color: #f0f2f5; }
.fw-stat i { font-style: normal; color: #5b606b; margin: 0 2px; }
.fw-stat-pct {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .13);
}
.fw-stat-pct b { color: #ffffff; letter-spacing: -.01em; }
.fw-stat-size b { color: #e8ecf2; }
.fw-stat-size span { color: #8c929e; font-weight: 520; }
.fw-stat-spd {
  margin-left: auto;
  background: rgba(61, 143, 104, .10);
  border-color: rgba(61, 143, 104, .26);
}
.fw-stat-spd b { color: #5ec290; }
.fw-stat-spd span { color: #4aa377; font-size: 11px; font-weight: 560; }
.fw-dl-msg { font-size: 12px; font-weight: 540; }
.fw-dl-msg-wait { color: #a8adb7; }
.fw-dl-msg-ok { color: #5ec290; }
.fw-dl-msg-err { color: #e07a7a; }
html[data-theme="light"] .fw-stat {
  background: #f5f6f8; border-color: #e2e5ec; color: #5c6370;
}
html[data-theme="light"] .fw-stat b { color: #161920; }
html[data-theme="light"] .fw-stat i { color: #9aa1ae; }
html[data-theme="light"] .fw-stat-pct { background: #eceef3; border-color: #d5d9e2; }
html[data-theme="light"] .fw-stat-size span { color: #68707e; }
html[data-theme="light"] .fw-stat-spd {
  background: rgba(23, 120, 75, .08); border-color: rgba(23, 120, 75, .22);
}
html[data-theme="light"] .fw-stat-spd b { color: #17784b; }
html[data-theme="light"] .fw-stat-spd span { color: #26895b; }
html[data-theme="light"] .fw-dl-msg-wait { color: #5c6370; }
html[data-theme="light"] .fw-dl-msg-ok { color: #17784b; }
html[data-theme="light"] .fw-dl-msg-err { color: #b43c3c; }
.fw-download-progress progress { width: 100%; height: 7px; border: 0; border-radius: 8px; overflow: hidden; accent-color: #c2700c; }
.fw-download-progress progress::-webkit-progress-bar { background: var(--line); }
.fw-download-progress progress::-webkit-progress-value { background: #c2700c; border-radius: 8px; }
.fw-page [hidden] { display: none !important; }
/* Keep wide firmware tables inside their own scrolling area on phones. */
.fw-page, .fw-head-txt, .fw-left, .fw-right, .fw-detail, .fw-table-wrap { min-width: 0; }
.fw-page .fw-table { min-width: 610px; }
@media (max-width: 980px) {
  .fw-page .fw-head { grid-template-columns: auto minmax(0, 1fr); }
  .fw-page .fw-head > .tls-btn { grid-column: 1 / -1; justify-self: stretch; }
  .fw-page .fw-list { max-height: 260px; }
  .fw-page .fw-filters { gap: 10px; }
  .fw-page .fw-dl-act { flex-wrap: wrap; }
}

.root-page .tls-grid {
  height: 100%;
  min-height: 0;
}
.root-page .tls-main {
  justify-content: flex-start;
  overflow: hidden;
  height: 100%;
  min-height: 0;
}
.root-page .tls-op-runbar {
  margin-top: auto;
  flex-shrink: 0;
  padding: 8px 0 0;
}
/* Shared with Root + Hesabım (turuncu radio, native mavi yok). */
.root-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
}
.root-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 18px 4px 0;
  padding: 4px 0;
  border: 0;
  background: none;
  color: #a8a8a8;
  font-size: 12.5px;
  font-weight: 400;
  cursor: pointer;
}
.root-chip input {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 16px;
  border: 1.5px solid #5a5a5a;
  border-radius: 50%;
  background: #1a1a1a;
  display: grid;
  place-content: center;
  cursor: pointer;
  opacity: 1;
  position: static;
  accent-color: #c2700c;
}
.root-chip input::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: transparent;
}
.root-chip:hover { color: #d0d0d0; }
.root-chip:hover input { border-color: #7a7a7a; }
.root-chip:has(input:checked) {
  color: #f2f2f2;
  font-weight: 600;
  background: none;
  border: 0;
}
.root-chip input:checked {
  border-color: #eb511a;
  background: #29180d;
}
.root-chip input:checked::after { background: #c2700c; }
.root-page .root-hint {
  margin: 8px 2px 0;
  font-size: 11px;
  color: #8a8a8a;
  line-height: 1.45;
}
.root-page .root-hint b { color: #e8e8e8; font-weight: 600; }
html[data-theme="light"] .root-chip { color: #5b616b; background: none; }
html[data-theme="light"] .root-chip:has(input:checked) { color: #1c1e22; background: none; }
html[data-theme="light"] .root-chip input { background: #fff; border-color: #c4c8d0; }
html[data-theme="light"] .root-chip input:checked { background: #f3e7dc; border-color: #eb511a; }
html[data-theme="light"] .root-page .root-hint { color: #5b616b; }
html[data-theme="light"] .root-page .root-hint b { color: #1c1e22; }
.page-art { width:36px; height:36px; filter:none; image-rendering: auto; }

.login-page:has(.premium-login) {
  min-height:100svh; --login-u:clamp(.76px, .10858svh, 1px); display:flex; align-items:center; justify-content:center;
  position:relative; isolation:isolate; overflow:auto; padding:28px 16px 36px;
  background:var(--bg);
}
.login-page:has(.premium-login)::before { display:none; }
.login-shell {
  width:100%; max-width:1240px;
  display:grid; grid-template-columns:minmax(52px,1fr) auto minmax(52px,1fr);
  align-items:center; column-gap:14px;
  position:relative; z-index:1;
}
.login-shell .login-card.premium-login { grid-column:2; z-index:2; justify-self:center; }
.login-rail.is-reseller { grid-column:1; justify-self:end; }
.login-rail.is-dealer { grid-column:3; justify-self:start; }
.login-card.premium-login {
  width:100%; max-width:440px; margin:0 auto; padding:22px 28px 20px; position:relative;
  border:1px solid #3a3a3a; border-radius:calc(22 * var(--login-u));
  background:
    linear-gradient(180deg, #222222 0%, #171717 42%, #121212 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.10) inset,
    0 -1px 0 rgba(0,0,0,.45) inset,
    0 2px 0 rgba(255,255,255,.04),
    0 18px 40px rgba(0,0,0,.55),
    0 40px 90px rgba(0,0,0,.45);
}
.login-card.premium-login::before {
  content:""; position:absolute; inset:1px; border-radius:calc(21 * var(--login-u)); pointer-events:none;
  background:linear-gradient(165deg, rgba(255,255,255,.07) 0%, transparent 34%, transparent 70%, rgba(255,255,255,.02) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.login-card.premium-login::after {
  content:""; position:absolute; left:14%; right:14%; top:0; height:1px; border-radius:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
}
.premium-login .brand-login {
  display:flex; align-items:center; gap:12px;
  border:0; margin:0 0 4px; padding:0; position:relative;
}
.premium-login .brand-wand {
  width:calc(46 * var(--login-u)); height:calc(46 * var(--login-u)); flex-shrink:0;
  filter:drop-shadow(0 0 5px rgba(200,180,190,.18));
}
.premium-login .brand-text { display:flex; flex-direction:column; gap:1px; }
.premium-login .brand-text h1 {
  font-size:calc(25 * var(--login-u)); font-weight:700; color:#f5f5f5; margin:0; line-height:1.2; letter-spacing:-.2px;
}
.premium-login .brand-text p {
  font-size:calc(16 * var(--login-u)); color:#a8a8a8; margin:0; line-height:1.2;
}
.login-welcome { text-align:center; margin:4px 0 24px; }
.login-welcome h2 { font-size:24px; margin:0 0 6px; letter-spacing:-.5px; }
.login-welcome p { color:var(--muted); margin:0; font-size:13px; }
.premium-login .login-welcome { margin:4px 0 12px; text-align:center; }
.premium-login .login-welcome h2 { font-size:26px; font-weight:700; color:#f5f5f5; letter-spacing:-.3px; margin:0 0 4px; }
.premium-login .login-welcome p { font-size:14px; color:#a0a0a0; margin:0; }
.login-mascot {
  width:calc(168 * var(--login-u)); height:calc(168 * var(--login-u)); margin:0 auto;
  background:transparent; border-radius:0; box-shadow:none; overflow:visible;
}
.login-mascot svg {
  width:100%; height:100%; display:block; overflow:visible;
  image-rendering:auto;
}
.panda-eye { transition:opacity .18s ease; }
.panda-pupils { transition:opacity .16s ease; }
.panda-head {
  transform-box:view-box;
  transform-origin:100px 88px;
  transform:rotate(var(--head-turn,0deg)) translate(calc(var(--look-x,0px) * .10), calc(var(--look-y,0px) * .06));
  transition:transform .3s cubic-bezier(.2,.65,.3,1);
}
.is-tracking .panda-head { transition-duration:.14s; }
.is-private:not(.is-peeking) .panda-eye { opacity:0; }
.is-peeking .panda-eye { opacity:1; }
.panda-lip { opacity:0; transition:opacity .2s ease; }
.panda-lip-smile { opacity:1; }
.is-sad .panda-lip-smile, .is-glad .panda-lip-smile, .is-private .panda-lip-smile { opacity:0; }
.is-sad .panda-lip-sad { opacity:1; }
.is-glad .panda-lip-glad { opacity:1; }
.is-private .panda-lip-closed { opacity:1; }

.panda-cover-arm {
  transform-box:view-box; pointer-events:none;
  transition:transform .58s cubic-bezier(.22,.75,.22,1);
}
.panda-cover-arm-l { transform-origin:61px 177px; transform:translateY(128px) rotate(-32deg); }
.panda-cover-arm-r { transform-origin:139px 177px; transform:translateY(128px) rotate(32deg); transition-delay:45ms; }
.is-private .panda-cover-arm { transform:translateY(0) rotate(0deg); }
.panda-peek-pair {
  transform-box:view-box; transform-origin:22px 51px;
  transform:rotate(0deg);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
}
.is-peeking .panda-peek-pair { transform:rotate(36deg); transition-delay:150ms; }

.panda-eyes { transform-box:view-box; transform-origin:100px 90px; animation:panda-blink 6.7s infinite; }
.login-mascot:not(.is-tracking):not(.is-private) .panda-pupils { animation:panda-wander 13s infinite; }
.login-mascot:not(.is-tracking):not(.is-private) .panda-head { animation:panda-curious 13s infinite; }
.login-mascot:not(.is-private) .panda-live { animation:panda-breathe 4.4s ease-in-out infinite; }
.is-private .panda-eyes, .is-peeking .panda-eyes { animation:none; }

.login-input-wrap { position:relative; display:flex; align-items:center; }
.premium-login .field label { margin-bottom:6px; font-size:calc(16 * var(--login-u)); font-weight:600; color:#d2d2d2; display:block; }
.premium-login .input {
  min-height:calc(56 * var(--login-u)); border-radius:12px;
  background:linear-gradient(180deg,#1c1c1c,#121212);
  border:1px solid #3a3a3a;
  color:#ffffff; font-size:calc(19 * var(--login-u));
}
.premium-login .login-input-wrap .input {
  min-height:calc(56 * var(--login-u)); width:100%; padding-left:calc(54 * var(--login-u)); border-radius:12px;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
  transition:border-color .18s, box-shadow .18s;
}
.premium-login .login-input-wrap:has(#loginPass) .input {
  padding-right:48px; letter-spacing:3px; font-size:calc(19 * var(--login-u));
}
.premium-login .login-input-wrap:focus-within .input {
  border-color:#8d3d43;
  box-shadow:0 0 0 1px rgba(141,61,67,.35), inset 0 2px 4px rgba(0,0,0,.4);
}
.login-field-icon { width:calc(24 * var(--login-u)); height:calc(24 * var(--login-u)); position:absolute; left:calc(18 * var(--login-u)); color:#9a9a9a; pointer-events:none; }
.login-input-wrap:focus-within .login-field-icon { color:#c45a60; }
.login-pass-toggle { position:absolute; right:6px; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:9px; background:transparent; color:#8f939e; cursor:pointer; }
.login-pass-toggle svg { width:19px; height:19px; }
.login-pass-toggle:hover { color:#ffffff; background:rgba(255,255,255,.06); }
.login-pass-toggle:focus-visible { outline:2px solid rgba(255,60,80,.8); outline-offset:1px; }

.premium-login .login-go {
  min-height:calc(62 * var(--login-u)); border-radius:calc(16 * var(--login-u)); border:1px solid #a34d54;
  background:linear-gradient(180deg, #9a454c 0%, #753338 48%, #4f1f24 100%);
  box-shadow:
    0 1px 0 rgba(255,180,188,.22) inset,
    0 -1px 0 rgba(0,0,0,.35) inset,
    0 8px 22px rgba(80,20,28,.45);
  overflow:hidden; position:relative; cursor:pointer; padding:0 18px;
  margin-top:calc(22 * var(--login-u));
  transition:filter .16s ease, box-shadow .16s ease, transform .16s ease;
}
.premium-login .login-go::before {
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.10) 0%, transparent 42%);
}
.premium-login .login-go-inner {
  width:100%; display:flex; align-items:center; justify-content:center; position:relative;
}
.premium-login .login-go-inner span {
  font-size:calc(19 * var(--login-u)); font-weight:700; color:#fff; letter-spacing:-.1px; margin-left:8px;
}
.premium-login .login-go::after { display:none; }
.premium-login .login-go:hover:not(:disabled) {
  filter:brightness(.9);
  box-shadow:
    0 1px 0 rgba(255,180,188,.18) inset,
    0 10px 24px rgba(60,14,20,.5);
}
.premium-login .login-go:active:not(:disabled) { filter:brightness(.82); transform:translateY(1px); }
.premium-login .login-err { min-height:0; margin:0; }
.premium-login .login-err:not(:empty) { margin:10px 0; }

.login-divider {
  display:flex; align-items:center; justify-content:center;
  margin:calc(20 * var(--login-u)) 0 calc(18 * var(--login-u)); position:relative;
}
.login-divider::before,
.login-divider::after {
  content:""; flex:1; height:1px; background:rgba(255,255,255,.2);
}
.login-divider span {
  padding:0 14px; font-size:calc(17 * var(--login-u)); color:#979292; letter-spacing:.5px; text-transform:lowercase;
}

.premium-login .login-theme { margin:0; padding:0; border:none; }
.premium-login .theme-sw {
  width:100%; display:grid; grid-template-columns:1fr 1fr; gap:0;
  border-radius:16px; padding:0;
  background:rgba(18,18,22,.9); border:1px solid rgba(255,255,255,.07);
}
.premium-login .theme-sw button {
  min-height:calc(40 * var(--login-u)); border-radius:15px; border:1px solid transparent;
  font-size:calc(17 * var(--login-u)); font-weight:500; color:#888;
  background:transparent; transition:all .2s ease;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.premium-login .theme-sw button.on {
  background:linear-gradient(180deg,#2a2a32,#18181e); color:#f0eef2; font-weight:600;
  border:1px solid #6a6570;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}
html[data-theme="light"] .login-page:has(.premium-login) { background:var(--bg); }
html[data-theme="light"] .login-card.premium-login {
  background:linear-gradient(180deg, #ffffff 0%, #f3f4f7 100%);
  border-color:#d5d8df;
  box-shadow:
    0 1px 0 #fff inset,
    0 -1px 0 rgba(0,0,0,.04) inset,
    0 16px 40px rgba(20,24,36,.10),
    0 2px 0 rgba(255,255,255,.8);
}
html[data-theme="light"] .login-card.premium-login::before {
  background:linear-gradient(165deg, rgba(255,255,255,.9) 0%, transparent 40%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);
}
html[data-theme="light"] .login-card.premium-login::after {
  background:linear-gradient(90deg, transparent, rgba(0,0,0,.08), transparent);
}
html[data-theme="light"] .login-mascot { background:transparent; box-shadow:none; }
html[data-theme="light"] .premium-login .brand-text h1,
html[data-theme="light"] .premium-login .login-welcome h2 { color:#16181e; }
html[data-theme="light"] .premium-login .brand-text p,
html[data-theme="light"] .premium-login .login-welcome p,
html[data-theme="light"] .premium-login .field label { color:#4a5160; }
html[data-theme="light"] .premium-login .input {
  background:linear-gradient(180deg,#fff,#f7f8fa); color:#12141a; border-color:#cfd3da;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.04);
}
html[data-theme="light"] .premium-login .theme-sw { background:#e8eaee; border-color:#d5d8df; }
html[data-theme="light"] .premium-login .theme-sw button { color:#5b616b; }
html[data-theme="light"] .premium-login .theme-sw button.on { color:#72262d; background:#fff; border-color:#c9b0b4; box-shadow:0 2px 6px rgba(0,0,0,.06); }
html[data-theme="light"] .premium-login .login-go {
  border-color:#2a2a2e;
  background:linear-gradient(180deg,#3a3a40 0%,#222226 52%,#121214 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.16) inset, 0 8px 20px rgba(0,0,0,.18);
}
html[data-theme="light"] .premium-login .login-go::before { background:linear-gradient(180deg, rgba(255,255,255,.14) 0%, transparent 45%); }
html[data-theme="light"] .premium-login .login-go:hover:not(:disabled) { filter:brightness(1.08); }

@keyframes panda-blink { 0%,42%,46%,78%,82%,100% { transform:scaleY(1); } 44%,80% { transform:scaleY(.07); } }
@keyframes panda-wander { 0%,18%,100% { transform:translate(0,0); } 25%,38% { transform:translate(-4px,-3px); } 45%,57% { transform:translate(4px,1px); } 65%,78% { transform:translate(1px,4px); } 85%,93% { transform:translate(-2px,1px); } }
@keyframes panda-curious { 0%,18%,100% { transform:rotate(0deg); } 25%,38% { transform:rotate(-3deg); } 45%,57% { transform:rotate(3deg); } 65%,78% { transform:rotate(1deg); } 85%,93% { transform:rotate(-1deg); } }
@keyframes panda-breathe { 0%,100% { transform:translateY(0); } 50% { transform:translateY(1.5px); } }
@media(max-width:480px) {
  .login-card.premium-login { padding:24px; border-radius:22px; }
  .premium-login .login-mascot { width:168px; height:168px; margin-top:14px; }
  .premium-login .login-welcome h2 { font-size:25px; }
}
@media(prefers-reduced-motion:reduce) {
  .login-mascot * { animation:none!important; transition:none!important; }
  .premium-login .login-go::after { display:none; }
}

.premium-login { font-family:Arial,"Segoe UI",sans-serif; }
.premium-login .login-welcome h2 { line-height:1.25; }
.premium-login .login-welcome p { line-height:1.5; }
.premium-login .brand-text h1 { line-height:1.35; }
.premium-login .brand-text p { line-height:1.35; }
.premium-login #loginForm > .field:first-child { margin-bottom:calc(17 * var(--login-u))!important; }
.premium-login .field label { line-height:1.4; margin-bottom:calc(6 * var(--login-u)); }
.premium-login #loginUser { border-color:#3a3a3a; }
.premium-login .login-input-wrap:focus-within #loginUser { border-color:#8d3d43; }
.premium-login #loginPass[type="text"] { letter-spacing:normal; }
.premium-login .theme-sw { gap:0; padding:0; }
.premium-login .login-go-inner > svg { width:calc(20 * var(--login-u)); height:calc(20 * var(--login-u)); }
.login-mascot:not(.is-private):not(.is-tracking) svg { animation:login-portrait-breathe 5.5s ease-in-out infinite; }
@keyframes login-portrait-breathe { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@media(max-width:600px) {
 .login-page:has(.premium-login) { --login-u:.85px; padding:20px 14px 28px; }
 .login-card.premium-login { max-width:400px; padding:24px 22px; }
 .premium-login .login-mascot { width:168px; height:168px; margin-top:2px; }
 .premium-login .login-welcome h2 { font-size:26px; }
 .premium-login .login-go { min-height:54px; }
 .premium-login .theme-sw button { min-height:40px; }
}
@media(prefers-reduced-motion:reduce) { .login-mascot svg { animation:none!important; } }

.premium-login .brand-text h1,.premium-login .brand-text p { line-height:1.2; }
.premium-login .login-welcome { margin-top:0; }
.premium-login .login-welcome p { line-height:1.3; }
.premium-login .field { gap:0; }
.premium-login .theme-sw { margin-top:0; }
.login-mascot svg { scale:1.12; }
.premium-login .login-mascot { mask-image:linear-gradient(#000 84%,transparent 97%); -webkit-mask-image:linear-gradient(#000 84%,transparent 97%); }

.login-rail {
  display:flex; align-items:stretch; flex:0 0 auto;
  max-height:min(78vh, 680px); z-index:1;
}
.login-rail.is-reseller { flex-direction:row; }
.login-rail.is-dealer { flex-direction:row-reverse; }
.login-rail-toggle {
  width:52px; flex:0 0 52px; border:1px solid #353535; border-radius:16px;
  background:linear-gradient(180deg, #1e1e1e, #141414);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 12px 28px rgba(0,0,0,.35);
  color:#e8e8e8; cursor:pointer; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:12px; padding:14px 0;
  transition:border-color .2s, background .2s, box-shadow .2s;
}
.login-rail-toggle:hover { border-color:#555; background:linear-gradient(180deg, #242424, #171717); }
.login-rail.is-open .login-rail-toggle {
  border-color:#6a3a40; box-shadow:0 1px 0 rgba(255,200,210,.08) inset, 0 0 0 1px rgba(141,61,67,.2);
}
.login-rail.is-dealer.is-open .login-rail-toggle {
  border-color:#3a554a; box-shadow:0 1px 0 rgba(180,220,200,.08) inset, 0 0 0 1px rgba(60,120,90,.22);
}
.login-rail-ico {
  width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  background:linear-gradient(180deg, #2c1c1f, #1a1214); border:1px solid #5a3036; color:#e0a8ae;
}
.login-rail.is-dealer .login-rail-ico {
  background:linear-gradient(180deg, #1a2420, #121816); border-color:#355448; color:#9ecbb4;
}
.login-rail-ico svg { width:17px; height:17px; }
.login-rail-label {
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#cfcfcf;
}
.login-rail-chev {
  font-size:16px; line-height:1; color:#8a8a8a; transition:transform .25s ease, color .2s;
}
.login-rail.is-reseller .login-rail-chev { transform:rotate(0deg); }
.login-rail.is-reseller.is-open .login-rail-chev { transform:rotate(180deg); color:#d18a90; }
.login-rail.is-dealer .login-rail-chev { transform:rotate(180deg); }
.login-rail.is-dealer.is-open .login-rail-chev { transform:rotate(0deg); color:#8fbfa8; }

.login-rail-panel {
  width:0; opacity:0; overflow:hidden; pointer-events:none;
  transition:width .32s cubic-bezier(.2,.7,.2,1), opacity .22s ease, margin .32s ease;
  margin:0;
}
.login-rail.is-open .login-rail-panel {
  width:300px; opacity:1; pointer-events:auto; margin:0 10px;
}
.login-rail-panel-inner {
  width:300px; height:100%; max-height:min(78vh, 680px);
  border:1px solid #353535; border-radius:18px; padding:14px 12px 12px;
  background:
    radial-gradient(ellipse 90% 40% at 50% -10%, rgba(141,61,67,.12), transparent 60%),
    linear-gradient(180deg, #1c1c1c 0%, #121212 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.08) inset,
    0 18px 40px rgba(0,0,0,.45);
  display:flex; flex-direction:column; min-height:0;
}
.login-rail.is-dealer .login-rail-panel-inner {
  background:
    radial-gradient(ellipse 90% 40% at 50% -10%, rgba(70,130,100,.12), transparent 60%),
    linear-gradient(180deg, #1c1c1c 0%, #121212 100%);
}
.login-rail-panel-head {
  display:flex; align-items:flex-start; gap:10px; margin:0 0 12px; padding:0 4px 10px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.login-rail-panel-head h3 {
  margin:0; font-size:14px; font-weight:700; color:#f3f3f3; letter-spacing:-.2px;
}
.login-rail-panel-head p {
  margin:3px 0 0; font-size:11.5px; color:#8d8d8d; line-height:1.3;
}
.login-rail-scroll {
  flex:1; min-height:0; overflow:auto; padding-right:2px;
  display:flex; flex-direction:column; gap:6px;
  scrollbar-width:thin; scrollbar-color:#3a3a3a transparent;
}
.login-acc {
  border:1px solid rgba(255,255,255,.06); border-radius:12px;
  background:rgba(0,0,0,.22); overflow:hidden; flex-shrink:0;
}
.login-acc summary {
  list-style:none; cursor:pointer; user-select:none;
  display:flex; align-items:center; gap:9px;
  padding:10px 11px; font-size:12.5px; font-weight:650; color:#f0f0f0;
  transition:background .15s;
}
.login-acc summary::-webkit-details-marker { display:none; }
.login-acc summary:hover { background:rgba(255,255,255,.03); }
.login-acc-mark {
  width:26px; height:26px; border-radius:8px; flex-shrink:0;
  display:grid; place-items:center;
  background:#1a1a1a; border:1px solid #3a3a3a; color:#d2a0a6;
}
.login-rail.is-dealer .login-acc-mark { color:#9ecbb4; border-color:#2f433a; }
.login-acc-mark svg { width:13px; height:13px; }
.login-acc-title { flex:1; letter-spacing:-.1px; }
.login-acc-arrow {
  width:16px; height:16px; color:#777; transition:transform .2s;
  background:no-repeat center / 12px
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.login-acc[open] .login-acc-arrow { transform:rotate(180deg); }
.login-acc-list {
  list-style:none; margin:0; padding:0 8px 9px;
  display:flex; flex-direction:column; gap:2px;
}
.login-acc-list li {
  display:flex; align-items:center; gap:9px;
  padding:7px 9px; border-radius:8px;
  color:#d8d8d8; font-size:12px; font-weight:500; line-height:1.25;
  border:1px solid transparent;
}
.login-acc-list li::before {
  content:""; width:5px; height:5px; border-radius:50%; flex-shrink:0;
  background:#8d3d43; box-shadow:0 0 0 3px rgba(141,61,67,.15);
}
.login-rail.is-dealer .login-acc-list li::before {
  background:#3d8f68; box-shadow:0 0 0 3px rgba(61,143,104,.15);
}
.login-acc-list li:hover {
  background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.05); color:#fff;
}

html[data-theme="light"] .login-rail-toggle,
html[data-theme="light"] .login-rail-panel-inner,
html[data-theme="light"] .login-rail.is-reseller .login-rail-panel-inner,
html[data-theme="light"] .login-rail.is-dealer .login-rail-panel-inner {
  background:linear-gradient(180deg, #fff, #f3f4f7);
  border-color:#d5d8df;
  box-shadow:0 1px 0 #fff inset, 0 12px 28px rgba(20,24,36,.08);
}
html[data-theme="light"] .login-rail.is-reseller .login-rail-panel-inner {
  background:
    radial-gradient(ellipse 90% 40% at 50% -10%, rgba(139,48,56,.07), transparent 60%),
    linear-gradient(180deg, #fff, #f3f4f7);
}
html[data-theme="light"] .login-rail.is-dealer .login-rail-panel-inner {
  background:
    radial-gradient(ellipse 90% 40% at 50% -10%, rgba(29,107,69,.08), transparent 60%),
    linear-gradient(180deg, #fff, #f3f4f7);
}
html[data-theme="light"] .login-rail-toggle:hover {
  background:linear-gradient(180deg, #fff, #eceef2);
  border-color:#c5cad3;
}
html[data-theme="light"] .login-rail.is-open .login-rail-toggle {
  border-color:#d4a8ac;
  box-shadow:0 1px 0 #fff inset, 0 0 0 1px rgba(139,48,56,.12);
}
html[data-theme="light"] .login-rail.is-dealer.is-open .login-rail-toggle {
  border-color:#a8c9b8;
  box-shadow:0 1px 0 #fff inset, 0 0 0 1px rgba(29,107,69,.14);
}
html[data-theme="light"] .login-rail-ico {
  background:linear-gradient(180deg, #f6eaea, #f0e0e2);
  border-color:#e0c4c8; color:#8b3038;
}
html[data-theme="light"] .login-rail.is-dealer .login-rail-ico {
  background:linear-gradient(180deg, #e8f4ee, #dceee5);
  border-color:#b8d4c4; color:#1d6b45;
}
html[data-theme="light"] .login-rail-label { color:#2a2f38; }
html[data-theme="light"] .login-rail-chev { color:#6b7280; }
html[data-theme="light"] .login-rail.is-reseller.is-open .login-rail-chev { color:#8b3038; }
html[data-theme="light"] .login-rail.is-dealer.is-open .login-rail-chev { color:#1d6b45; }
html[data-theme="light"] .login-rail-panel-head { border-bottom-color:#e2e5ea; }
html[data-theme="light"] .login-rail-panel-head h3 { color:#16181e; }
html[data-theme="light"] .login-rail-panel-head p { color:#6b7280; }
html[data-theme="light"] .login-rail-scroll { scrollbar-color:#c5cad3 transparent; }
html[data-theme="light"] .login-acc { background:#fff; border-color:#e2e5ea; }
html[data-theme="light"] .login-acc summary { color:#1c1e22; }
html[data-theme="light"] .login-acc summary:hover { background:rgba(0,0,0,.03); }
html[data-theme="light"] .login-acc-list li { color:#3a4050; }
html[data-theme="light"] .login-acc-list li:hover { background:#f4f5f7; border-color:#e8eaee; color:#12141a; }
html[data-theme="light"] .login-acc-mark {
  background:#f4f5f7; border-color:#dde1e8; color:#8b3038;
}
html[data-theme="light"] .login-rail.is-dealer .login-acc-mark {
  background:#eef6f2; border-color:#c5ddd0; color:#1d6b45;
}
html[data-theme="light"] .login-acc-arrow {
  background:no-repeat center / 12px
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

@media(max-width:960px) {
  .login-shell {
    display:flex; flex-direction:column; gap:12px; max-width:460px;
    grid-template-columns:none;
  }
  .login-shell .login-card.premium-login,
  .login-rail.is-reseller,
  .login-rail.is-dealer { grid-column:auto; justify-self:stretch; }
  .login-rail { width:100%; max-height:none; align-items:stretch; flex-direction:column !important; order:2; }
  .login-shell .login-card.premium-login { order:1; }
  .login-rail.is-dealer { order:3; }
  .login-rail-toggle {
    width:100%; flex:0 0 auto; flex-direction:row; gap:10px; padding:12px 14px; border-radius:14px;
  }
  .login-rail-label { writing-mode:horizontal-tb; transform:none; letter-spacing:.02em; }
  .login-rail-chev { margin-left:auto; }
  .login-rail.is-reseller .login-rail-chev,
  .login-rail.is-dealer .login-rail-chev { transform:rotate(90deg); }
  .login-rail.is-reseller.is-open .login-rail-chev,
  .login-rail.is-dealer.is-open .login-rail-chev { transform:rotate(-90deg); }
  .login-rail-panel {
    width:100% !important; max-height:0; margin:0 !important; opacity:0;
    overflow:hidden;
    transition:max-height .35s ease, opacity .22s ease, margin .25s ease;
  }
  .login-rail.is-open .login-rail-panel {
    max-height:2400px; opacity:1; margin-top:8px !important;
  }
  .login-rail-panel-inner {
    width:100% !important; height:auto !important; max-height:none !important;
  }
  .login-rail-scroll {
    flex:none !important; overflow:visible !important; min-height:0;
  }
  .login-acc { flex-shrink:0; }
}

.premium-login .theme-sw {
  background:#101010; border:1px solid #2a2a2a;
}
.premium-login .theme-sw button.on {
  background:linear-gradient(180deg,#2a2a2a,#1a1a1a); color:#f0f0f0;
  border:1px solid #4a4a4a; box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.login-divider::before, .login-divider::after { background:rgba(255,255,255,.12); }
.login-divider span { color:#8d8d8d; }
html[data-theme="light"] .login-divider::before,
html[data-theme="light"] .login-divider::after { background:rgba(0,0,0,.1); }

.usb-guest-body { min-height:100vh; margin:0; background:var(--bg); color:var(--text); }
.usb-guest {
  min-height:100vh; display:grid; place-items:center; padding:28px 16px;
}
.usb-guest-card {
  width:min(440px, 100%); background:var(--card); border:1px solid var(--line);
  border-radius:16px; padding:28px 24px 26px; text-align:center;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
}
.usb-guest-logo { width:48px; height:48px; object-fit:contain; }
.usb-guest-kicker {
  margin:10px 0 0; letter-spacing:.14em; text-transform:uppercase;
  font-size:11px; color:var(--muted);
}
.usb-guest-card h1 { margin:18px 0 8px; font-size:26px; letter-spacing:-.03em; }
.usb-guest-title.is-wait { color:#c4922a; font-size:22px; line-height:1.25; }
.usb-guest-title.is-live {
  display:flex; flex-direction:column; align-items:center; gap:4px;
  font-size:22px; line-height:1.25;
}
.usb-guest-title .usb-st-tech { color:#1b7a45; }
.usb-guest-title .usb-st-hold { color:#c45f12; font-size:18px; }
.usb-guest-title.is-run { color:var(--text); }
.usb-guest-pulse.is-tech { border-color:rgba(196,146,42,.45); }
.usb-guest-pulse.is-tech i { background:#c4922a; box-shadow:0 0 12px rgba(196,146,42,.4); }
html[data-theme="light"] .usb-guest-title.is-wait { color:#8a6410; }
html[data-theme="light"] .usb-guest-title .usb-st-tech { color:#14663d; }
html[data-theme="light"] .usb-guest-title .usb-st-hold { color:#a34e0c; }
.usb-guest-lead { margin:0 0 18px; color:var(--muted); font-size:14px; line-height:1.5; }
.usb-guest-codewrap {
  display:flex; align-items:center; justify-content:center; gap:10px; margin:0 0 14px;
}
#usbWait .usb-guest-codewrap { margin:4px 0 16px; }
.usb-guest-codewrap b {
  font-size:28px; letter-spacing:.12em; font-variant-numeric:tabular-nums;
}
.usb-guest-hint, .usb-guest-status { color:var(--muted); font-size:13px; margin:0 0 16px; }
.usb-guest-status { font-weight:600; }
.usb-guest-status .usb-st-ok { color:#1d6b45; }
.usb-guest-status .usb-st-wait { color:#b8864a; font-weight:600; }
.usb-guest-status .usb-st-act {
  color:#f0a202; font-weight:700; letter-spacing:.01em;
  animation:usb-blink 1.35s ease-in-out infinite;
}
html[data-theme="light"] .usb-guest-status .usb-st-ok { color:#17633e; }
html[data-theme="light"] .usb-guest-status .usb-st-wait { color:#9a6a2e; }
html[data-theme="light"] .usb-guest-status .usb-st-act { color:#b67408; }
.usb-guest-share { width:100%; }
#usbWait .usb-guest-share { margin-top:0; }
.usb-guest-act {
  display:flex; align-items:center; gap:8px; margin-top:4px;
}
.usb-guest-act[hidden] { display:none; }
.usb-guest-act .usb-guest-share { flex:1; }
.usb-guest-share.is-act {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:#e09412; border:1px solid #c47d0c; color:#1c1406;
  font-weight:700; box-shadow:0 8px 22px rgba(224,148,18,.28);
}
.usb-guest-share.is-act:hover { background:#f0a424; }
.usb-guest-ico { width:16px; height:16px; flex:none; }
.usb-guest-arrow { width:22px; height:22px; flex:none; color:#f0a202; }
.usb-guest-arrow svg { width:22px; height:22px; display:block; }
.usb-guest-arrow.is-l { animation:usb-nudge-l 1.05s ease-in-out infinite; }
.usb-guest-arrow.is-r { animation:usb-nudge-r 1.05s ease-in-out infinite; }
.usb-guest-err { color:#f87171; font-size:13px; min-height:18px; margin:12px 0 0; }
.usb-guest-pulse {
  width:48px; height:48px; margin:8px auto 16px; border-radius:50%;
  border:2px solid var(--line); position:relative;
}
.usb-guest-pulse i {
  position:absolute; inset:8px; border-radius:50%; background:var(--red);
  animation:usb-pulse 1.4s ease-in-out infinite;
}
.usb-guest-pulse.is-ok i { background:#2f9e62; box-shadow:0 0 12px rgba(47,158,98,.45); }
.usb-guest-pulse.is-wait i { background:var(--red); }
.usb-guest-pulse.is-act { border-color:rgba(240,162,2,.55); }
.usb-guest-pulse.is-act i { background:#f0a202; box-shadow:0 0 14px rgba(240,162,2,.55); }
@keyframes usb-pulse {
  0%, 100% { transform:scale(.72); opacity:.55; }
  50% { transform:scale(1); opacity:1; }
}
@keyframes usb-blink {
  0%, 100% { opacity:.45; }
  50% { opacity:1; }
}
@keyframes usb-nudge-l {
  0%, 100% { transform:translateX(0); opacity:.4; }
  50% { transform:translateX(5px); opacity:1; }
}
@keyframes usb-nudge-r {
  0%, 100% { transform:translateX(0); opacity:.4; }
  50% { transform:translateX(-5px); opacity:1; }
}
.usb-share-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.usb-share-row .input { flex:1; min-width:140px; text-transform:uppercase; letter-spacing:.08em; }
.usb-share-status { margin:10px 0 0; color:var(--muted); font-size:13px; }
.usb-share-status .usb-klass.is-adb { color:#2e9a64; font-weight:700; }
.usb-share-status .usb-klass.is-fb { color:#c4a03a; font-weight:700; }
.usb-share-status .usb-klass { color:var(--ok); font-weight:700; }
.tls-usb-connect { display: none; }

@media (max-width: 760px) {
  .tls-box .hide-imei-tog,
  .cln-box .hide-imei-tog { display: none; }
  .cln-box #clnConnect { display: none; }
  .tls-box #tlsConnect { display: none !important; }
  .tls-usb-connect { display: block; }
  .tls-usb-connect .btn { width: 100%; justify-content: center; }
  .cln-box, .tls-box { padding: 10px 10px 8px; }
  .cln-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .cln-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    width: 100%;
  }
  .cln-sep { display: none; }
  .cln-actions .cln-btn {
    width: 100%;
    min-width: 0;
    padding: 8px 8px;
  }
  .cln-top-act {
    width: 100%;
    margin-left: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .cln-top-act .btn { width: 100%; justify-content: center; }
  .cln-status { width: 100%; justify-content: center; }
  .cln-tabs, .tls-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    margin-top: 8px;
    border-bottom: 0;
    overflow: visible;
  }
  .cln-tab {
    justify-content: center;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 8px 6px;
    font-size: 12px;
    text-align: center;
  }
  .cln-tab.on {
    border-color: #EF6C00;
    background: rgba(239, 108, 0, .12);
  }
  .cln-list-head { flex-wrap: wrap; }
  .cln-list-head .input { flex: 1 1 100%; font-size: 16px; }
  .cln-list-foot { flex-wrap: wrap; gap: 8px 12px; justify-content: space-between; }
  .cln-grid, .tls-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: auto;
  }
  .tls-log { order: -1; }
  .cln-grid > .cln-log { order: 2; }
  .cln-wrap, .tls-wrap, .cln-grid, .tls-grid,
  .cln-log, .tls-log, .tls-main, .cln-list-card {
    min-width: 0;
    max-width: 100%;
  }
  .cln-log, .tls-log {
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .cln-log .imei-log-body,
  .tls-log .imei-log-body {
    flex: 0 0 auto;
    height: auto;
    min-height: 88px;
    max-height: 70vh;
    max-width: 100%;
    overflow: auto;
  }
  .cln-log .log-line,
  .tls-log .log-line,
  .cln-log .log-line.is-shrink,
  .tls-log .log-line.is-shrink {
    display: block;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
    overflow: hidden;
  }
  .cln-log .log-shrink,
  .tls-log .log-shrink {
    white-space: pre-wrap;
    overflow: visible;
    text-overflow: unset;
  }
  .pm-subtabs { display: flex; flex-wrap: wrap; }
  .pm-radios {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    flex-wrap: nowrap;
  }
  .pm-radio {
    position: relative;
    justify-content: center;
    gap: 0;
    padding: 7px 2px;
    font-size: 11px;
    min-width: 0;
  }
  .pm-radio input { position: absolute; opacity: 0; width: 0; height: 0; }
  .pm-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .pm-act-btns {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .pm-act-btns .tls-btn {
    width: 100%;
    min-width: 0;
    height: 40px;
    justify-content: center;
  }
  .cln-list-card, .cln-sys-card, .tls-main {
    order: 0;
    height: auto;
    min-height: 0;
  }
  .cln-apps { max-height: 42vh; }
  .tls-row-3, .tls-row-4 { grid-template-columns: 1fr 1fr; }
  .tls-row-mi { grid-template-columns: 1fr 1fr; }
  .tls-row-mi .tls-btn,
  .tls-row-mi .tls-btn:nth-child(-n+3),
  .tls-row-mi .tls-btn:nth-child(n+4) { grid-column: auto; }
  .tls-wrap .input, .cln-wrap .input, .extract-page .input { font-size: 16px; }
  .extract-page .extract-parts { min-height: 220px; }
  .extract-page .tls-log,
  .extract-page .tls-log .imei-log-body {
    height: auto;
    min-height: 88px;
    max-height: 70vh;
  }
  .fw-head { flex-wrap: wrap; }
  .fw-head .tls-btn { width: 100%; }
}



html[data-theme] .insight-modal {
  width: min(780px, 100%);
  padding: 18px 20px 16px;
  max-height: min(88vh, 820px);
  overflow: auto;
  scrollbar-width: thin;
}
.insight-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.insight-head h3 { margin: 0; font-size: 16px; letter-spacing: -.02em; }
.insight-scope { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.insight-presets { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px; margin: 12px 0 0; }
.insight-date { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.insight-date .input, .insight-date .select, .insight-date .rs-dd { width: auto; min-width: 128px; }
.insight-dash { margin-top: 14px; }
.insight-hero { display: flex; align-items: center; gap: 12px; }
.insight-hero > b {
  font-size: 36px; font-weight: 650; letter-spacing: -.04em; line-height: .9;
  font-variant-numeric: tabular-nums; color: #e08a8a;
}
html[data-theme="light"] .insight-hero > b { color: #8d3d43; }
.insight-mix { margin: 0; font-size: 13.5px; font-weight: 600; }
.insight-sub { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.insight-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.insight-figures div { padding: 7px 9px; border-radius: 8px; }
.insight-figures span { display: block; color: var(--muted); font-size: 11px; }
.insight-figures b { display: block; margin-top: 2px; font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
.insight-figures .is-work { background: rgba(212, 179, 106, .12); }
.insight-figures .is-work b { color: #d4b36a; }
.insight-figures .is-paid { background: var(--ok-bg); }
.insight-figures .is-paid b { color: #6fba94; }
.insight-figures .is-net { background: rgba(141, 61, 67, .16); }
html[data-theme="light"] .insight-figures .is-work { background: rgba(138, 106, 40, .1); }
html[data-theme="light"] .insight-figures .is-work b { color: #8a6a28; }
html[data-theme="light"] .insight-figures .is-paid b { color: #2a7a54; }
html[data-theme="light"] .insight-figures .is-net { background: rgba(139, 48, 56, .08); }
.insight-boards { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 14px; margin-top: 12px; }
.insight-boards h4 { margin: 0 0 6px; font-size: 11.5px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.insight-line {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: baseline;
  padding: 4px 0; border-top: 1px solid var(--line); font-size: 12px; font-variant-numeric: tabular-nums;
}
.insight-line span { color: var(--text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.insight-line b { font-weight: 650; color: #e08a8a; }
html[data-theme="light"] .insight-line b { color: #8d3d43; }
.insight-line em { font-style: normal; color: var(--gold); }
.insight-days-col { position: relative; }
.insight-days {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
  max-height: 176px; overflow: auto; padding-right: 2px;
  scrollbar-width: none; -ms-overflow-style: none;
}
.insight-days::-webkit-scrollbar { width: 0; height: 0; display: none; }
button.insight-day {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; align-items: center;
  width: 100%; margin: 0; padding: 5px 7px; text-align: left;
  background: var(--elev); color: inherit; font: inherit; border: 1px solid transparent;
  border-radius: 6px; cursor: pointer;
}
button.insight-day span { color: var(--text); font-size: 11.5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
button.insight-day b { font-size: 12px; font-weight: 700; color: #e08a8a; }
html[data-theme="light"] button.insight-day b { color: #8d3d43; }
button.insight-day em { font-style: normal; font-size: 11px; font-variant-numeric: tabular-nums; font-weight: 620; }
button.insight-day em.amt-plus { color: #d4b07a; }
button.insight-day em.amt-minus { color: #6fba94; }
button.insight-day.on { border-color: var(--red-border); background: rgba(141,61,67,.22); }
.insight-open { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.insight-dayhead { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 4px; font-size: 12.5px; }
.insight-dayhead span { color: var(--muted); font-size: 11.5px; }
.insight-jobs { max-height: 168px; overflow: auto; scrollbar-width: none; -ms-overflow-style: none; }
.insight-jobs::-webkit-scrollbar { width: 0; height: 0; display: none; }
.insight-job {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 8px; align-items: baseline;
  padding: 5px 0; border-top: 1px solid var(--line); font-size: 12.5px;
}
.insight-job strong, .insight-job span { display: block; }
.insight-job span { color: var(--muted); font-size: 11px; }
.insight-job em { font-style: normal; font-variant-numeric: tabular-nums; font-weight: 650; }
@media (max-width: 720px) {
  html[data-theme] .insight-modal { padding: 16px 14px 14px; }
  .insight-boards, .insight-days { grid-template-columns: 1fr; }
  .insight-hero > b { font-size: 30px; }
}

/* /usb misafir sayfasi: sag ust TR/EN anahtari */
.usb-guest-lang { position: fixed; top: 12px; right: 12px; z-index: 60; }
@media (max-width: 560px) {
  .usb-guest-lang .sw-toggle .sw-code { display: inline; }
}
