:root{
  
  --bg:#0b0b0d; --panel:#16171b; --panel2:#101012; --border:#2a2b30;
  --text:#ececee; --muted:#8a8b92; --accent:#e0242b; --accent2:#ff3b41;
  --green:#27c08a; --yellow:#f9c74f; --red:#e0242b;
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}
body.modal-open{overflow:hidden} 


.dev-main{max-width:860px;margin:0 auto;padding:18px 16px 40px}
.dev-crumb{font-size:13px;color:var(--muted);margin:6px 0 14px}
.dev-crumb a{color:var(--muted)} .dev-crumb a:hover{color:var(--text)}
.dev-back{margin-top:18px}
.dm-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.dm-head{display:flex;align-items:center;gap:12px;padding:15px 18px;background:linear-gradient(180deg,rgba(224,36,43,.10),transparent);border-bottom:1px solid var(--border)}
.dm-brandchip{font-weight:800;font-size:12px;color:#fff;background:#444;border-radius:7px;padding:5px 10px;letter-spacing:.04em;white-space:nowrap}
.dm-title{font-size:20px;font-weight:800;flex:1;min-width:0;margin:0;line-height:1.25}
.dm-title small{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:3px}
.dm-share{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--accent);background:rgba(224,36,43,.10);border:1px solid rgba(224,36,43,.45);border-radius:8px;padding:7px 12px;cursor:pointer;white-space:nowrap}
.dm-share:hover{background:rgba(224,36,43,.18)}
.dm-body{padding:18px}
.dm-top{display:flex;gap:20px;flex-wrap:wrap}
.phone{flex:0 0 150px;height:290px;border:2px solid #34363d;border-radius:24px;background:linear-gradient(160deg,#15161a,#0c0d10);position:relative;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 30px rgba(0,0,0,.6);margin:0 auto}
.phone::before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:46px;height:5px;border-radius:4px;background:#34363d}
.phone-screen{text-align:center;padding:14px}
.phone-screen .pb{font-weight:800;font-size:13px;color:#fff;background:#444;border-radius:6px;padding:3px 9px;display:inline-block}
.phone-screen .pm{margin-top:12px;font-weight:800;font-size:16px;line-height:1.3}
.phone-screen .pc{margin-top:6px;font-family:Consolas,monospace;font-size:12px;color:var(--muted)}
.phone-screen .psoc{margin-top:14px;font-size:11px;font-weight:800;color:#fff;background:#7c3aed;border-radius:5px;padding:3px 8px;display:inline-block}
.dm-info{flex:1;min-width:240px}
.dm-info table{width:100%;border-collapse:collapse}
.dm-info td{padding:9px 4px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:top}
.dm-info td.k{color:var(--muted);font-weight:700;width:120px;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.dm-info td.v{font-weight:600}
.dm-info td.v .ver{margin:2px 4px 0 0}
.dm-cta{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--accent);border-radius:11px;background:linear-gradient(180deg,rgba(224,36,43,.12),rgba(224,36,43,.04))}
.dm-cta .cta-text{font-size:13.5px;line-height:1.6;color:var(--text)}
.dm-cta .cta-btn{flex:none;background:var(--accent);color:#fff;font-weight:800;font-size:13px;padding:9px 18px;border-radius:8px;text-decoration:none;white-space:nowrap;transition:background .15s}
.dm-cta .cta-btn:hover{background:var(--accent2)}
.dm-faq{margin-top:22px;border-top:1px solid var(--border);padding-top:16px}
.dm-faq h2,.dm-related h2{font-size:17px;margin:0 0 12px}
.faq-item{border:1px solid var(--border);border-radius:9px;padding:0;margin-bottom:8px;background:var(--panel2);overflow:hidden}
.faq-item>summary{cursor:pointer;padding:11px 14px;font-weight:700;font-size:13.5px;list-style:none}
.faq-item>summary::-webkit-details-marker{display:none}
.faq-item>summary::before{content:"＋";color:var(--accent);font-weight:800;margin-right:9px}
.faq-item[open]>summary::before{content:"−"}
.faq-item>p{margin:0;padding:0 14px 13px;color:#c2c8d4;font-size:12.5px;line-height:1.7}
.dm-related{margin-top:22px;border-top:1px solid var(--border);padding-top:16px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.rel-card{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);text-decoration:none;transition:border-color .15s,background .15s}
.rel-card:hover{border-color:var(--accent);background:var(--panel)}
.rel-name{font-weight:700;font-size:12.5px;color:var(--text)}
.rel-code{font-family:Consolas,monospace;font-size:11px;color:var(--muted)}
.dm-ops{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}
.dm-ops-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.dm-ops-head img{height:34px;width:auto;max-width:130px;border-radius:7px;object-fit:contain;flex:0 0 auto}
.dm-ops-head .t{font-weight:800;font-size:15px;flex:1;min-width:160px}
.dm-ops-head .t small{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}
.dm-cta{display:flex;gap:8px;flex:0 0 auto}
.dm-cta a{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;border-radius:9px;padding:9px 15px;white-space:nowrap;border:1px solid transparent;transition:filter .15s}
.dm-cta a:hover{filter:brightness(1.1)}
.dm-cta a svg{width:15px;height:15px;flex:0 0 auto}
.dm-share svg{width:14px;height:14px;flex:0 0 auto}
.dm-cta .cta-dl{background:var(--accent);color:#fff}
.dm-cta .cta-active{background:transparent;color:var(--green);border-color:var(--green)}
.dm-cta .cta-active:hover{background:rgba(39,192,138,.12)}
.opgrid{display:flex;flex-wrap:wrap;gap:8px}
.op{font-size:13px;font-weight:700;color:#fff;border-radius:8px;padding:7px 12px;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;gap:7px;font-family:inherit}
.op .chev{font-size:10px;opacity:.75}
.op.on{outline:2px solid rgba(255,255,255,.3);outline-offset:1px}
.kp{margin-top:14px;background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:14px 16px}
.kp.kp-hidden{display:none}
.kp-h{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;margin-bottom:7px}
.kp-on{width:10px;height:10px;border-radius:50%;display:inline-block}
.kp p{margin:0 0 8px;font-size:13.5px;line-height:1.65;color:#d4d9e3}
.kp p:last-child{margin-bottom:0}
.kp-body p{color:#c2c8d4}
.kp-seo{color:#aeb8c8;font-size:12.5px}
.kp-lead{color:#fff;font-size:13.5px}
.kp-mode{margin:10px 0;padding:10px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:9px}
.kp-mode .mode-lbl{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-right:8px}
.kp-mode .mode-badge{display:inline-block;font-size:11.5px;font-weight:800;color:#fff;border-radius:6px;padding:2px 9px}
.kp-mode .mode-g{margin-left:10px;font-size:11.5px;font-weight:700;color:#58a6ff;text-decoration:none}
.kp-mode .mode-g:hover{text-decoration:underline}
.kp-mode .mode-desc{margin:7px 0 0;font-size:12.5px;color:#c2c8d4;line-height:1.6}
.kp-fw{margin:10px 0;padding:11px 13px;background:var(--panel2);border:1px solid var(--border);border-radius:9px}
.kp-fw-h{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px}
.kp-fw-c{display:inline-block;background:var(--accent);color:#fff;border-radius:20px;padding:1px 8px;font-size:11px;margin-left:6px}
.kp-fw-list{display:flex;flex-wrap:wrap;gap:6px}
.fw-pill{font-family:Consolas,monospace;font-size:11.5px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:3px 8px;color:#cfe3d6}
.kp-seo b{color:#dfe5ef}

/* ===== new operation-card design inside the device modal ===== */
.dm-page .qops-wrap{position:relative;margin:0 0 4px}
.dm-page .qops{display:flex;align-items:flex-start;gap:9px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin:0;padding:6px 2px 18px;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.dm-page .qops::-webkit-scrollbar{display:none}
.dm-page .qops-wrap::before,.dm-page .qops-wrap::after{content:"";position:absolute;top:0;bottom:14px;width:48px;pointer-events:none;z-index:3;opacity:0;transition:opacity .15s}
.dm-page .qops-wrap::before{left:0;background:linear-gradient(90deg,var(--panel),transparent)}
.dm-page .qops-wrap::after{right:0;background:linear-gradient(270deg,var(--panel),transparent)}
.dm-page .qops-wrap.has-l::before,.dm-page .qops-wrap.has-r::after{opacity:1}
.dm-page .qops-arrow{position:absolute;top:calc(50% - 7px);transform:translateY(-50%);z-index:4;width:34px;height:34px;border-radius:50%;background:var(--panel2);border:1px solid #2f3647;color:#dfe3ea;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 16px rgba(0,0,0,.55);transition:.15s}
.dm-page .qops-arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dm-page .qops-arrow:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-50%) scale(1.08)}
.dm-page .qa-left{left:-4px}.dm-page .qa-right{right:-4px}
.dm-page .qops-arrow[hidden]{display:none}
.dm-page .op{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:#fff;padding:8px 13px 8px 8px;border-radius:12px;cursor:pointer;white-space:nowrap;outline:none;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 6px 16px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.18);transition:transform .15s,box-shadow .15s,opacity .15s}
.dm-page .op:not(.on){opacity:.68;filter:saturate(.85)}
.dm-page .op:hover{transform:translateY(-2px);opacity:1;filter:none}
.dm-page .op.on{opacity:1;filter:none;box-shadow:0 9px 20px rgba(0,0,0,.45),0 0 0 2px rgba(255,255,255,.85),inset 0 1px 0 rgba(255,255,255,.28)}
.dm-page .op.on::after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:10px solid var(--opc,#fff);filter:drop-shadow(0 3px 2px rgba(0,0,0,.45))}
.dm-page .op .opi{width:27px;height:27px;border-radius:8px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex:none}
.dm-page .op .opi svg{width:15px;height:15px}
.dm-page .op .cv{width:13px;height:13px;opacity:.8;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-page .op .opi svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-page .opdetail{position:relative;overflow:hidden;margin-top:0;padding:22px 200px 22px 20px;min-height:158px;background:linear-gradient(180deg,#101a30,#0b1018);border:1px solid #1d2c52;border-radius:14px;animation:kpIn .28s ease}
.dm-page .opdetail.kp-hidden{display:none}
@keyframes kpIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dm-page .opdetail h2{margin:0 0 9px;font-size:17px;font-weight:800}
.dm-page .opdetail .lead{font-weight:700;font-size:13.5px;margin:0 0 7px}
.dm-page .opdetail .desc{color:#aeb4c0;font-size:13px;margin:6px 0 0}
.dm-page .opdetail .op-body{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.dm-page .opdetail .op-body li{position:relative;padding-left:18px;color:#aeb4c0;font-size:13px;line-height:1.45}
.dm-page .opdetail .op-body li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:#3b82f6}
.dm-page .opdetail .chipart{position:absolute;right:54px;top:50%;transform:translateY(-50%);width:116px;height:116px}
.dm-page .chip-die{position:absolute;inset:12px;border-radius:12px;background:linear-gradient(135deg,rgba(124,92,255,.16),transparent 42%),linear-gradient(160deg,#24272f,#0c0e13 70%,#06070b);border:1px solid #353a47;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 22px rgba(0,0,0,.6)}
.dm-page .chip-badge{font-weight:900;font-size:16px;color:#c9b6ff;letter-spacing:1px;text-shadow:0 1px 3px #000;text-align:center;padding:0 3px;max-width:86px;white-space:nowrap;overflow:hidden;line-height:1.1}
.dm-page .chip-soc{font-size:9px;color:#8b93a6;font-family:Consolas,monospace}
.dm-page .chipart::before,.dm-page .chipart::after{content:"";position:absolute;left:18px;right:18px;height:10px;background:repeating-linear-gradient(90deg,#caa45a 0 3px,#7a6230 3px 4px,transparent 4px 10px)}
.dm-page .chipart::before{top:1px}.dm-page .chipart::after{bottom:1px}
.dm-page .chip-die::before,.dm-page .chip-die::after{content:"";position:absolute;top:5px;bottom:5px;width:10px;background:repeating-linear-gradient(0deg,#caa45a 0 3px,#7a6230 3px 4px,transparent 4px 10px)}
.dm-page .chip-die::before{left:-18px}.dm-page .chip-die::after{right:-18px}
@media(max-width:680px){
  .dm-page .opdetail{padding:18px;min-height:auto;display:flex;flex-direction:column}
  .dm-page .opdetail .chipart{display:none}
  .dm-page .phone-card{width:100%}
}
/* new realistic phone inside the modal — submerged from the bottom */
.dm-page .phone-card{position:relative;display:flex;justify-content:center;align-items:flex-start;padding:0;background:none;border:none}
.dm-page .device{position:relative;width:166px;margin-bottom:-22px;border-radius:30px 30px 0 0;padding:7px 7px 0;background:linear-gradient(155deg,#3a414f,#181b22 55%,#0e1015);box-shadow:0 -2px 36px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.05);-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent 95%);mask-image:linear-gradient(180deg,#000 50%,transparent 95%)}
.dm-page .device .scr{position:relative;border-radius:25px 25px 0 0;min-height:230px;overflow:hidden;background:radial-gradient(120% 80% at 50% 0,#20305c,#0a1124 55%,#05080f);display:flex;flex-direction:column;align-items:center;padding:26px 12px 18px}
.dm-page .device .pname{font-size:18px;margin-top:11px}
.dm-page .device .scr::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 40%);pointer-events:none}
.dm-page .device .cam{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 34% 32%,#34466b,#0b1018 55%,#04060b);box-shadow:0 0 0 2px #0a0d14,inset 0 0 3px rgba(120,160,255,.5);z-index:3}
.dm-page .device .pchip{color:#fff;font-weight:800;font-size:12px;padding:4px 12px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.dm-page .device .pname{font-size:21px;font-weight:800;margin-top:13px;text-align:center;overflow-wrap:break-word;max-width:100%;line-height:1.2;text-shadow:0 2px 12px rgba(0,0,0,.5);color:#fff}
.dm-page .device .pcode{color:#9aa6bd;font-size:11px;font-family:Consolas,monospace;margin-top:4px}
.dm-page .device .psoc{margin-top:14px;color:#fff;font-size:11px;font-weight:800;padding:4px 11px;border-radius:8px}
.dm-page .device .glow{position:absolute;bottom:-40px;left:50%;transform:translateX(-50%);width:150px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(60,110,255,.35),transparent 65%);filter:blur(6px)}
/* cleaner header + tighter spacing in the modal */
.dm-page .dm-pagehead{justify-content:flex-start;flex-wrap:wrap;gap:10px 12px}
.dm-page .dm-ph-title{flex:1 1 auto;min-width:0}
.dm-page .dm-pagehead .dm-cta{flex:0 0 auto;margin:0;border:none}
.dm-page .dm-top{margin-bottom:6px}
.dm-page .dm-ops{margin-top:14px;border-top:none;padding-top:0}
.dm-page .dm-ops-head{border:none;padding:0;margin-bottom:14px}
.dm-page .dm-ops-head .t{flex:1}
/* modern info grid inside the modal (better use of desktop space than a table) */
.dm-page .dm-top{align-items:center}
.dm-page .dm-infogrid{flex:1;min-width:260px;padding:6px 0;background:none;border:none;box-shadow:none;align-self:center}
.dm-page .dm-infogrid:hover{transform:none;box-shadow:none;border-color:transparent}
.dm-page .info-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:1fr;gap:12px;min-width:0}
.dm-page .info-cell{display:flex;align-items:center;gap:13px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:var(--panel2);min-width:0;overflow:hidden;transition:border-color .15s,transform .12s}
.dm-page .info-cell>div{min-width:0}
.dm-page .info-cell:hover{border-color:#39405a;transform:translateY(-2px)}
.dm-page .info-cell .ic{width:46px;height:46px;border-radius:12px;background:var(--ic,#171a22);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 5px 16px rgba(0,0,0,.35)}
.dm-page .info-cell .ic .ico{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dm-page .info-cell .ic svg{width:21px;height:21px}
.dm-page .ver-row{margin-top:7px;gap:5px;flex-wrap:wrap}
@media(max-width:560px){.dm-page .info-grid{grid-template-columns:1fr}}
.dm-page .info-cell .k{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px}
.dm-page .info-cell .v{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dm-page .info-cell .v .ver{margin:0}
.dm-page .tag-soc{color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:6px}
.dm-page .tag-os{font-weight:800;display:inline-flex;align-items:center;gap:6px;color:#3fb950}
.dm-page .tag-os.os-ios{color:#58a6ff}
@media(max-width:560px){.dm-page .info-grid{grid-template-columns:1fr}}
.dm-row-link{cursor:pointer}

.modal-bg.dm-full{padding:0;align-items:stretch;justify-content:stretch;background:var(--bg)}
.modal-bg.dm-full .modal{width:100%;max-width:100%;height:100vh;max-height:100vh;border:0;border-radius:0;display:flex;flex-direction:column;overflow:hidden}
.modal-bg.dm-full .modal-h{position:sticky;top:0;z-index:3;flex:0 0 auto;background:linear-gradient(180deg,rgba(224,36,43,.12),var(--panel));padding:13px 18px}
.modal-bg.dm-full .modal-t{font-size:17px;display:flex;align-items:center;gap:9px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.modal-bg.dm-full .modal-x{font-size:20px;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--text);flex:0 0 auto}
.modal-bg.dm-full .modal-x:hover{background:rgba(224,36,43,.16);border-color:var(--accent);color:#fff}
.modal-bg.dm-full .modal-h{display:none} 
.modal-bg.dm-full .modal-b{flex:1 1 auto;overflow:auto;padding:0}
.dm-page{max-width:1080px;margin:0 auto;padding:18px 16px 60px}

.dm-pagehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.dm-ph-title{display:flex;align-items:center;gap:10px;min-width:0}
.dm-ph-name{font-size:20px;font-weight:800;line-height:1.25;min-width:0}
.dm-ph-name .h1-paren{font-size:.62em;font-weight:700;opacity:.78;white-space:nowrap}
.dm-ph-name small{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:2px}
.dm-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);color:var(--text);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.dm-close:hover{background:rgba(224,36,43,.16);border-color:var(--accent);color:#fff}

.phone-soc{margin-top:14px;display:flex;justify-content:center;align-items:center;gap:6px}
.phone-soc .socnum{font-family:Consolas,monospace;font-size:12px;color:#cfd2da}

.sharebar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.sharebar-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-inline-end:2px}
.sh-btn{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--panel2);border:1px solid var(--border);color:#cfd2da;cursor:pointer;transition:transform .15s,background .15s,color .15s}
.sh-btn svg{width:19px;height:19px}
.sh-btn:hover{transform:translateY(-2px);color:#fff}
.sh-fb:hover{background:#1877F2;border-color:#1877F2}
.sh-tw:hover{background:#1DA1F2;border-color:#1DA1F2}
.sh-li:hover{background:#0A66C2;border-color:#0A66C2}
.sh-wa:hover{background:#25D366;border-color:#25D366}
.sh-link:hover{background:#555a64;border-color:#555a64}
.sh-btn.copied{background:var(--green);border-color:var(--green);color:#06281c}

.dm-seo{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}
.dm-seo h2{font-size:14px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px}
.seo-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.seo-lines li{font-size:13.5px;color:#c2c8d4;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 12px}
@media(max-width:560px){
  .phone{flex-basis:130px;height:250px}
  .dm-cta{width:100%}
  .dm-cta a{flex:1;justify-content:center}
}
a{color:var(--accent);text-decoration:none}
.muted{color:var(--muted)} .center{text-align:center}
code{background:var(--panel2);padding:2px 6px;border-radius:4px}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 26px;background:var(--bg);border-bottom:1px solid var(--border)}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px}

.logo-img{height:42px;width:auto;display:block;filter:brightness(0) invert(1)}
.brand-tag{color:#fff;font-weight:800;font-size:14px;letter-spacing:.3px}
nav a{margin-left:16px;color:#fff;font-weight:700}
nav a:hover{color:var(--red)}

.hero{padding:26px 22px 6px}
.hero h1{margin:0 0 6px;color:#fff}
.stats{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.stats .pill{background:var(--panel2);border:1px solid var(--border);border-radius:18px;padding:5px 12px;font-size:12px}
.stats .pill b{color:var(--green)}


.brandbar-wrap{padding:12px 22px 4px;display:flex;flex-direction:column;align-items:center;gap:8px}
.brandbar{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:7px;width:100%}
.brand-tile{
  --bg:#2a2f3d;--fg:#fff;
  width:100%;height:34px;padding:0 5px;border:0;border-radius:8px;cursor:pointer;
  background:linear-gradient(160deg,color-mix(in srgb,var(--bg) 88%,#fff 12%),var(--bg));
  color:var(--fg);font-weight:800;font-size:12px;letter-spacing:.3px;text-transform:uppercase;
  box-shadow:0 6px 16px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.18);
  position:relative;transition:transform .15s,box-shadow .15s,filter .15s;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.brand-tile{animation:tileIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes tileIn{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}
.brandbar .brand-tile:nth-child(1){animation-delay:.02s} .brandbar .brand-tile:nth-child(2){animation-delay:.05s}
.brandbar .brand-tile:nth-child(3){animation-delay:.08s} .brandbar .brand-tile:nth-child(4){animation-delay:.11s}
.brandbar .brand-tile:nth-child(5){animation-delay:.14s} .brandbar .brand-tile:nth-child(6){animation-delay:.17s}
.brandbar .brand-tile:nth-child(7){animation-delay:.20s} .brandbar .brand-tile:nth-child(8){animation-delay:.23s}
.brandbar .brand-tile:nth-child(9){animation-delay:.26s} .brandbar .brand-tile:nth-child(10){animation-delay:.29s}
.brandbar .brand-tile:nth-child(11){animation-delay:.32s} .brandbar .brand-tile:nth-child(12){animation-delay:.35s}
.brandbar .brand-tile:nth-child(13){animation-delay:.38s} .brandbar .brand-tile:nth-child(14){animation-delay:.41s}
.brand-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.12) 50%,transparent 60%);transform:translateX(-120%);transition:transform .5s}
.brand-tile:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 26px rgba(0,0,0,.5),0 0 0 2px rgba(255,255,255,.12) inset;filter:saturate(1.15)}
.brand-tile:hover::after{transform:translateX(120%)}
.brand-tile.active{outline:3px solid #fff;outline-offset:1px;transform:translateY(-2px) scale(1.04)}
.brand-tile.all{--bg:#3a3f50;background:linear-gradient(160deg,#4a5066,#2b2f3d)}
.brand-more{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 16px;border-radius:20px;cursor:pointer;font-size:13px}
.brand-more:hover{color:var(--text);border-color:var(--accent)}

.controls{display:flex;gap:10px;align-items:center;padding:14px 22px;flex-wrap:wrap;position:sticky;top:0;background:var(--bg);z-index:5}
#search{flex:1;min-width:240px;background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:11px 14px;border-radius:10px;font-size:14px}
#brand{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:11px;border-radius:10px}

.ctrl-selects{display:contents}

.th-sub{display:block;font-size:9.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;line-height:1.2}

#modelGrid,#socNumGrid{table-layout:auto;width:100%}
#modelGrid tr.grp td,#socNumGrid tr.grp td{background:#11182a;color:#fff;font-weight:800;font-size:12.5px;letter-spacing:.04em;padding:8px 12px;border-top:2px solid #2b3550;text-transform:uppercase}
#modelGrid td,#socNumGrid td{padding:7px 12px;vertical-align:middle}
#socRuleGrid{table-layout:auto;width:100%;border-collapse:collapse}
#socRuleGrid th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border)}
#socRuleGrid tr.grp td{background:#11182a;color:#fff;font-weight:800;font-size:12px;letter-spacing:.04em;padding:6px 12px;border-top:2px solid #2b3550;text-transform:uppercase}
#socRuleGrid td{padding:7px 10px;vertical-align:middle;border-bottom:1px solid var(--border);font-size:13px}
#socRuleGrid th:first-child,#socRuleGrid td:first-child{width:100%;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.soc-sub{display:none}

.soc-fam-card{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;background:#0e1626;border:1px solid #233149;border-radius:10px;padding:12px 14px;margin:4px 0 2px}
.soc-fam-card .sfc-prev{display:flex;align-items:center;gap:2px;padding-right:6px;border-right:1px solid #233149;min-width:120px}
.soc-fam-card .sfc-f{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}
.soc-fam-card .sfc-f.sfc-grow{flex:1;min-width:180px}
.soc-fam-card .sfc-f em{font-style:normal;opacity:.7}
.soc-fam-card .sfc-f input[type=text]{padding:6px 8px;border-radius:7px;border:1px solid #2b3550;background:#0b1220;color:#fff}
.soc-fam-card .sfc-f input[type=color]{width:46px;height:32px;padding:0;border:1px solid #2b3550;border-radius:7px;background:#0b1220}

.soc-addbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:#0e1626;border:1px solid #233149;border-radius:10px;padding:10px 12px;margin:14px 0 2px}
.soc-addbar .sab-fam{align-self:center;font-size:11px;font-weight:800;color:#9fb4d6;background:#11203a;border:1px solid #233149;border-radius:7px;padding:4px 8px;white-space:nowrap}
.soc-addbar .sab-f{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}
.soc-addbar .sab-f.sab-grow{flex:1;min-width:200px}
.soc-addbar .sab-f em{font-style:normal;opacity:.7}
.soc-addbar .sab-f input{padding:6px 9px;border-radius:7px;border:1px solid #2b3550;background:#0b1220;color:#fff;min-width:140px}
.soc-rules-block{margin-top:22px;border-top:1px solid #233149;padding-top:14px}
.soc-rules-block .srb-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.soc-rules-block h2{font-size:14px;margin:0}

.model-mode{display:inline-flex;gap:4px;background:#0e1626;border:1px solid #233149;border-radius:9px;padding:3px;margin:0 0 4px}
.model-mode .mm-btn{background:transparent;border:0;color:var(--muted);font-weight:700;font-size:13px;padding:6px 14px;border-radius:7px;cursor:pointer}
.model-mode .mm-btn.active{background:#1d2940;color:#fff}
.model-mode .mm-sub{font-weight:400;font-size:11px;opacity:.7;margin-left:4px}
.badge-indb{display:inline-block;background:#13351f;border:1px solid #1f7a45;color:#5fe39a;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:6px;vertical-align:middle}

.ml-edit{cursor:text;border-radius:5px;transition:background .12s,box-shadow .12s;outline:none;border-bottom:1px dashed #3a4a6a}
.ml-edit:hover{background:#161f30;border-bottom-color:#5b7bd6}
.ml-edit:focus{background:#0f1726;box-shadow:inset 0 0 0 1px #3a4a6a;border-bottom-color:transparent}
.ml-edit:empty:before{content:'—';color:var(--muted)}
.ml-edit:hover::after{content:'✎';font-size:10px;opacity:.5;margin-inline-start:5px}

.panel-title h1{display:inline-flex;align-items:center}
.help-q{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--border);background:#1a2336;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;margin-left:8px;vertical-align:middle;padding:0;line-height:1;flex:none}
.help-q:hover{color:#fff;border-color:#3a4a6a}
.help-pop{position:absolute;z-index:120;max-width:440px;background:#0e1626;border:1px solid #2b3550;border-radius:8px;padding:10px 13px;color:#c7d0e0;font-size:12.5px;line-height:1.55;box-shadow:0 10px 28px rgba(0,0,0,.45)}
.help-pop code{background:#1a2336;padding:1px 5px;border-radius:4px;font-size:11.5px}

.rev-recur{display:inline-flex;align-items:center;gap:6px;margin-left:auto;background:#1b1330;border:1px solid #4a3a7a;color:#c9b8ff;font-size:11px;font-weight:700;padding:2px 6px 2px 8px;border-radius:8px;white-space:nowrap}
.unk-row .rev-recur{margin-left:10px}
.rev-recur .btn.mini{padding:2px 8px;font-size:11px}
.chk{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}

main{padding:0 22px 40px;overflow-x:hidden}
table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}

thead th:nth-child(1){width:8%} thead th:nth-child(2){width:15%} thead th:nth-child(3){width:11%}
thead th:nth-child(4){width:13%} thead th:nth-child(5){width:20%} thead th:nth-child(6){width:33%}
thead th{background:var(--panel);text-align:left;padding:10px 10px;border-bottom:2px solid var(--red);border-right:1px solid var(--border);color:#fff}
thead th:last-child{border-right:0}
tbody td{padding:9px 10px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;word-break:break-word;overflow-wrap:anywhere}
tbody td:last-child{border-right:0}
tbody tr:hover{background:#161922}
.fngrid{display:flex;flex-wrap:wrap;gap:4px}
.fn{--c:#8a93a8;display:inline-block;border:1px solid var(--c);border-radius:6px;padding:2px 8px;font-size:11px;white-space:nowrap;line-height:1.4;font-weight:600;
  color:var(--c);background:color-mix(in srgb, var(--c) 15%, transparent)}
.fn-gen{--c:#8a93a8;color:var(--text);background:var(--panel2)}

.fn.ios{background:var(--c);color:#0b0b0d;border-color:var(--c);border-radius:13px;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.soccol{white-space:nowrap}
.socbadge{display:inline-block;padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:800;color:#fff;margin-right:6px;cursor:help;vertical-align:middle}
.socbadge.soc-mtk{background:#ff6a00}
.socbadge.soc-qcom{background:#3253dc}
.socbadge.soc-exynos{background:#1428a0}
.socbadge.soc-kirin{background:#c7000b}
.socbadge.soc-unisoc{background:#00897b}
.socbadge.soc-apple{background:#555}
.socbadge.soc-rk{background:#0a9d6e}
.socbadge.soc-aw{background:#0d9488}
.socbadge.soc-gen{background:#6b7280}
.socnum{color:var(--muted);font-family:Consolas,monospace;font-size:12px;vertical-align:middle}
.vercol{white-space:nowrap}
.osbadge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:800;margin-right:5px}
.osbadge.os-ios{background:#0a84ff;color:#fff}
.osbadge.os-android{background:#3ddc84;color:#06351b}
.osbadge.os-gen{background:#555;color:#fff}
.verwrap{display:flex;flex-wrap:wrap;gap:3px;align-items:center}
.vergrid.big{display:grid;grid-template-columns:repeat(4,max-content);gap:5px}
.osbadge{margin-right:2px}
.ver{display:inline-block;background:var(--panel2);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:11px;font-family:Consolas,monospace}
.ver.v-android{background:rgba(61,220,132,.14);border-color:#3ddc84;color:#86e3ad}
.ver.v-ios{background:rgba(10,132,255,.16);border-color:#0a84ff;color:#9cc8ff}
.showall{margin-top:4px;background:transparent;border:1px solid var(--red);color:var(--red);border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer}
.showall:hover{background:var(--red);color:#fff}
/* modal */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;align-items:center;justify-content:center}
.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;max-width:560px;width:92%;max-height:80vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.modal-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}
.modal-t{font-weight:800;color:#fff}
.modal-x{background:transparent;border:0;color:var(--muted);font-size:18px;cursor:pointer}
.modal-x:hover{color:var(--red)}
.modal-b{padding:18px}

.modal-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.modal-actions .muted{margin-right:auto}
.badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:bold}
.badge.yes{background:rgba(166,227,161,.15);color:var(--green)}
.badge.no{background:rgba(139,144,160,.12);color:var(--muted)}
.mono{font-family:Consolas,monospace}

.pager{display:flex;gap:6px;justify-content:center;align-items:center;padding:18px;flex-wrap:wrap}
.pager button{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:7px 12px;border-radius:8px;cursor:pointer;min-width:38px;font-weight:600;transition:all .15s ease}
.pager button:not(.active):not(:disabled):hover{border-color:var(--accent);color:#fff}
.pager button:disabled{opacity:.4;cursor:default}

.pager button.active{background:linear-gradient(180deg,var(--accent),var(--accent2));border-color:transparent;color:#fff;font-weight:800;opacity:1;cursor:default;box-shadow:0 2px 9px rgba(0,0,0,.4)}
.pager .gap{color:var(--muted);padding:0 3px}
.pager .cur{color:var(--muted);font-size:13px;margin:0 8px}

footer{padding:18px}

/* admin */
.admin-page{background:linear-gradient(180deg,#0b0b0d 0%,#0f1014 100%);min-height:100vh}
.admin-topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:rgba(11,11,13,.94);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.admin-logo{display:flex;align-items:center;gap:13px;color:#fff;font-weight:800}
.admin-logo span{font-size:15px;letter-spacing:.2px}
.admin-stats{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.metric{display:flex;align-items:baseline;gap:5px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:7px 11px}
.metric b{color:var(--green);font-size:15px}
.metric small{color:var(--muted);font-size:11px;text-transform:uppercase}
.adminwrap{max-width:none;margin:0;padding:18px 24px}
.admin-panel{background:rgba(22,23,27,.74);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 20px 50px rgba(0,0,0,.22)}
.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.panel-title h1{margin:0;color:#fff;font-size:24px;letter-spacing:0}
.panel-title p{margin:5px 0 0;color:var(--muted);font-size:13px}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.admin-toolbar{background:#111217}
.admin-toolbar form{display:inline-flex;gap:7px;align-items:center}
.danger-form{margin-left:auto}
.toolbar input[type=file]{color:var(--muted);font-size:12px;max-width:170px}
.searchbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.admin-search{background:#101116}
.searchbar input[type="search"]{flex:1;min-width:260px;background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:14px;outline:none}
.searchbar input[type="search"]:focus{border-color:var(--red);box-shadow:0 0 0 2px rgba(224,36,43,.14)}
.searchbar .muted{font-size:12px}
.admin-table-wrap{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#0e0f13}

#adminGrid{table-layout:auto;width:100%}
#adminGrid thead th{position:sticky;top:0;z-index:1;background:#11141c}
#adminGrid tbody tr:hover{background:#101521}
#adminGrid td{word-break:break-word;overflow-wrap:anywhere;vertical-align:top}
#adminGrid td.actions{white-space:nowrap}
#adminGrid td .fn{margin:2px 2px 0 0}
#adminGrid td.ed{cursor:cell}
#adminGrid td.ed:hover{background:#1c2030}
.fn-admin-cell{line-height:1.8}
.model-cell b{color:#fff}
.actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-end}

.fld-row{display:flex;gap:6px;align-items:center}
.fld-row input{flex:1;min-width:0}
.fld-row .btn.mini{white-space:nowrap;flex:0 0 auto}
.db-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;color:#7ee2a0;background:rgba(46,194,126,.15);border:1px solid #2ec27e;border-radius:5px;padding:1px 6px;vertical-align:middle}
.inline-form{display:inline}
.inline-edit{width:100%;background:#11141c;border:1px solid var(--red);color:#fff;padding:6px;border-radius:6px}
.empty-row{padding:28px!important}
.adminwrap{overflow-x:hidden}
.adminwrap .btn{padding:7px 12px;font-size:12px}
.btn.mini{padding:6px 10px;font-size:11.5px;border-radius:7px}
.adminwrap .btn.warn{min-width:56px}
.btn{background:var(--green);border:0;color:#000;font-weight:bold;padding:9px 16px;border-radius:8px;cursor:pointer}
.btn.sec{background:var(--panel);color:var(--text);border:1px solid var(--border)}
.btn.warn{background:var(--yellow)}
input,select,textarea{font-family:inherit}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.field label{font-size:12px;color:var(--muted)}
.field input,.field textarea{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:9px;border-radius:8px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row .field{flex:1;min-width:160px}
.note{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px;margin:12px 0}
.admin-note{border-color:rgba(39,192,138,.45);background:rgba(39,192,138,.08);color:#d9fff0}

/* login */
.login-page{min-height:100vh;background:radial-gradient(circle at top left,rgba(224,36,43,.22),transparent 34%),linear-gradient(180deg,#09090b,#121318);display:flex;align-items:center;justify-content:center;padding:24px}
.login-shell{width:100%;max-width:430px}
.login-panel{background:rgba(22,23,27,.88);border:1px solid var(--border);border-radius:16px;padding:28px;box-shadow:0 28px 80px rgba(0,0,0,.48);backdrop-filter:blur(12px)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px;color:#fff;font-weight:900}
.login-brand .logo-img{height:38px}
.login-panel h1{margin:0;color:#fff;font-size:28px;letter-spacing:0}
.login-panel p{margin:8px 0 22px;color:var(--muted);font-size:13px;line-height:1.6}
.login-form .field input{width:100%;padding:12px;border-radius:10px}
.login-form .field input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(224,36,43,.14)}
.login-btn{width:100%;margin-top:8px;padding:12px 16px!important;border-radius:10px!important;font-size:14px!important}
.login-error{border-color:#ff6b6b!important;color:#ffd6d6;background:rgba(255,107,107,.08)!important}


.logwin .modal-b{padding:0}
.logbody{margin:0;padding:16px;background:#07090d;border-radius:0 0 14px 14px;font-family:Consolas,"Courier New",monospace;font-size:12.5px;line-height:1.55;max-height:64vh;overflow:auto;white-space:pre-wrap;word-break:break-word;color:#c9d1d9}
.logbody .lg-line{display:block}
.logbody .lg-ok{color:#3fb950}
.logbody .lg-err{color:#ff6b6b;font-weight:600}
.logbody .lg-id{color:#58a6ff}

.lgcount{background:linear-gradient(135deg,#3478f6,#5e9bff);color:#fff;font-size:12px;font-weight:700;padding:3px 12px;border-radius:14px;margin-left:6px}
.logwin .modal-b{padding:12px}
.acc-item{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden;background:var(--panel2)}
.acc-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;user-select:none}
.acc-head:hover{background:#161922}
.acc-no{background:#3478f6;color:#fff;font-weight:800;min-width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px}
.acc-ttl{font-weight:800;font-family:Consolas,monospace;letter-spacing:.3px;flex:1;word-break:break-all}
.acc-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}
.lgt{background:var(--panel);border:1px solid var(--border);color:var(--muted);font-size:11px;padding:3px 9px;border-radius:12px;white-space:nowrap}
.acc-body{display:none;border-top:1px solid var(--border)}
.acc-item.open .acc-body{display:block}
.acc-item.open .acc-no{background:#27c08a}
.lgchips{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;background:#0d1017}
.lgchip{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:11.5px;color:var(--text)}
.lgchip b{color:#58a6ff;margin-right:5px;font-weight:700}
.lgchip.ok{border-color:#27c08a}.lgchip.ok b{color:#3fb950}


@media (max-width:720px){
  html,body{max-width:100%;overflow-x:hidden}
  
  .topbar{flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 14px 9px}
  .brand{flex-direction:row;align-items:center;justify-content:center;width:100%}
  .logo-img{height:40px}
  .brand-tag{display:none}
  .stats{justify-content:center}
  .stats .pill{font-size:11px;padding:4px 9px}
  
  .brandbar-wrap{display:none}
  
  .controls{padding:10px 12px;flex-direction:column;align-items:stretch;gap:8px}
  .controls input,.controls select,.controls .chk{width:100%}
  .haveLog-ctrl{display:none}
  .ctrl-selects{display:flex;gap:8px;width:100%}
  .ctrl-selects select{flex:1 1 0;width:auto;min-width:0}
  main{padding:0 10px 30px}
  
  #grid{table-layout:auto}
  #grid thead{display:none}
  #grid tbody td{border-right:0}
  #grid tr{display:block;border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:0;background:var(--panel2);overflow:hidden;box-shadow:0 3px 12px rgba(0,0,0,.28)}
  #grid td{display:flex;justify-content:flex-start;align-items:baseline;gap:9px;border-bottom:1px solid var(--border);padding:8px 13px;min-height:34px;text-align:left}
  #grid tr td:last-child{border-bottom:0}
  #grid td::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;flex:0 0 72px;text-transform:uppercase;line-height:1.7}
  
  #grid td.cell-empty{display:none}
  
  #grid td[data-label="Brand"]{justify-content:flex-start;align-items:center;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent);font-weight:800;color:#fff;font-size:14px;letter-spacing:.03em;padding:11px 13px}
  #grid td[data-label="Brand"]::before{display:none}
  
  #grid td[data-label="Model"] b{font-size:15px;color:#fff}
  #grid td[data-label="Device"]{font-size:12.5px}
  
  #grid td .fngrid,#grid td .verwrap{justify-content:flex-start;flex-wrap:wrap}
  #grid td.soccol,#grid td.vercol,#grid td.fncol{white-space:normal}
  #grid td.fncol,#grid td.vercol{align-items:flex-start}
  #grid td.fncol::before,#grid td.vercol::before{padding-top:2px}
  
  .admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .adminwrap{padding-left:10px;padding-right:10px}
  .rev-fields{grid-template-columns:1fr 1fr}
}
@media (max-width:460px){
  #grid td::before{flex-basis:64px;font-size:9.5px}
  #grid td{padding:7px 11px}
  .rev-fields{grid-template-columns:1fr}
}


.extract-box{background:linear-gradient(180deg,#15171d,#101117);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin:0 0 16px}
.extract-head h2{margin:0 0 4px;font-size:16px;color:#fff}
.extract-head h2 .muted{font-weight:400;font-size:13px}
.extract-head p{margin:0 0 12px;font-size:12.5px;line-height:1.6}
.extract-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.extract-controls input[type=file]{color:var(--muted);font-size:13px}
.logs-progress{margin-top:14px}
.lp-bar{height:12px;background:#0c0d11;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.lp-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .25s ease;border-radius:8px}
.lp-status{margin-top:9px;font-size:13px;color:var(--text)}
.lp-status strong{color:#fff}
.lp-add{color:var(--green);font-weight:700}
.lp-dup{color:var(--yellow);font-weight:700}
.lp-skip{color:var(--muted);font-weight:700}
.lp-models{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;max-height:170px;overflow:auto}
.lp-chip{background:var(--panel2);border:1px solid var(--border);border-radius:7px;padding:3px 9px;font-size:11.5px;color:var(--text);animation:tileIn .25s ease}


td.actions{display:flex;gap:7px;align-items:center;white-space:nowrap}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:30px;height:30px;padding:0;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--muted);cursor:pointer;transition:all .15s ease;position:relative}
.icon-btn svg{display:block}
.icon-btn:hover{transform:translateY(-1px)}
.icon-btn.edit:hover{color:#fff;border-color:#58a6ff;background:rgba(88,166,255,.14)}
.icon-btn.logs{width:auto;padding:0 9px;color:#cfd2da}
.icon-btn.logs:hover{color:#fff;border-color:var(--green);background:rgba(39,192,138,.14)}
.icon-btn.del:hover{color:#fff;border-color:var(--red);background:rgba(224,36,43,.16)}
.lock-tog{margin-left:6px;padding:0 4px;border:0;background:transparent;cursor:pointer;font-size:13px;line-height:1;opacity:.65;vertical-align:middle}
.lock-tog:hover{opacity:1}
.lock-tog.on{opacity:1;filter:drop-shadow(0 0 2px #d8a017)}
.ic-badge{font-size:11px;font-weight:800;color:var(--green)}
.icon-btn.logs:hover .ic-badge{color:#fff}


*{scrollbar-width:thin;scrollbar-color:#3a3d46 #0b0c10}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:#0b0c10}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3a3d46,#26272d);border:2px solid #0b0c10;border-radius:8px}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent2,#2f80ed),var(--accent,#1f6fd6))}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:#0b0c10}

.logwin .modal-b,.logbody,.acc-body,.lp-models,.admin-table-wrap{scrollbar-width:thin;scrollbar-color:#3a3d46 transparent}
.logwin .modal-b::-webkit-scrollbar,.logbody::-webkit-scrollbar,.lp-models::-webkit-scrollbar,.admin-table-wrap::-webkit-scrollbar{width:10px;height:10px}
.logwin .modal-b::-webkit-scrollbar-track,.logbody::-webkit-scrollbar-track,.lp-models::-webkit-scrollbar-track,.admin-table-wrap::-webkit-scrollbar-track{background:#0b0c10;border-radius:8px}
.logwin .modal-b::-webkit-scrollbar-thumb,.logbody::-webkit-scrollbar-thumb,.lp-models::-webkit-scrollbar-thumb,.admin-table-wrap::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3a3d46,#26272d);border:2px solid #0b0c10;border-radius:8px}
.logwin .modal-b::-webkit-scrollbar-thumb:hover,.logbody::-webkit-scrollbar-thumb:hover,.admin-table-wrap::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent2),var(--accent))}
.logwin .modal-b::-webkit-scrollbar-corner{background:#0b0c10}


.modal.logwin{max-width:980px;width:96%}
.modal::-webkit-scrollbar,.logwin::-webkit-scrollbar{width:10px;height:10px}
.modal::-webkit-scrollbar-track,.logwin::-webkit-scrollbar-track{background:#0b0c10;border-radius:8px}
.modal::-webkit-scrollbar-thumb,.logwin::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3a3d46,#26272d);border:2px solid #0b0c10;border-radius:8px}
.modal::-webkit-scrollbar-thumb:hover,.logwin::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent2),var(--accent))}
.modal,.logwin{scrollbar-width:thin;scrollbar-color:#3a3d46 transparent}


.tabs{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:0 0 0;border-bottom:1px solid var(--border);margin-bottom:16px;scrollbar-width:thin}
.tabs::-webkit-scrollbar{height:6px}
.tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.tab-btn{flex:0 0 auto;white-space:nowrap;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;color:var(--muted);font-weight:700;font-size:13px;padding:9px 14px;margin-bottom:-1px;cursor:pointer;transition:all .15s}
.tab-btn:hover{color:#fff}
.tab-btn.active{color:#fff;background:var(--panel);border-color:var(--border);border-bottom-color:var(--panel)}
.tab-panel{display:none}
.title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}


#opGrid,#socGrid{width:100%;border-collapse:collapse}
#opGrid th,#socGrid th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--border)}
#opGrid td,#socGrid td{padding:9px 10px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
#opGrid tr:hover td,#socGrid tr:hover td{background:rgba(255,255,255,.02)}
.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.2);margin-right:7px;vertical-align:-2px}
.os-tag{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;border:1px solid var(--border)}
.os-tag.os-android{color:#3fb950;border-color:#27c08a}
.os-tag.os-ios{color:#58a6ff;border-color:#3478f6}
.os-tag.os-both{color:var(--muted)}
.soc-badge{display:inline-block;padding:2px 9px;border-radius:7px;font-size:10.5px;font-weight:800;color:#fff;letter-spacing:.4px}
.ok-dot{color:#3fb950}.off-dot{color:var(--muted)}
.card-preview{margin:12px 0 4px;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}


.data-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}
.data-card{background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;align-items:stretch;gap:10px}
.data-card h3{margin:0;color:#fff;font-size:15px}
.data-card p{margin:0 0 4px;font-size:12.5px}
.data-card .btn{margin:0;width:100%;text-align:center}
.data-card .import-form{display:flex;flex-direction:column;gap:6px;margin:0}
.data-card .import-form input[type=file]{width:100%;font-size:12px}
.data-card form{margin:0}
.data-card.danger{border-color:rgba(224,36,43,.4)}

.brand-lim{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:7px;font-size:10px;font-weight:800;background:rgba(224,36,43,.16);color:#ff8a8a;border:1px solid rgba(224,36,43,.35)}


.imp-files{width:100%;border-collapse:collapse}
.imp-files th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border)}
.imp-files td{padding:7px 10px;border-bottom:1px solid var(--border);font-size:12.5px}
.imp-files tr:hover td{background:rgba(255,255,255,.02)}


#esmDlg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:80;align-items:center;justify-content:center}
#esmDlg .dlg{background:var(--panel);border:1px solid var(--border);border-radius:14px;max-width:440px;width:92%;box-shadow:0 20px 60px rgba(0,0,0,.6);overflow:hidden;animation:tileIn .18s ease}
#esmDlg .dlg-b{padding:20px 20px 8px;color:var(--text);font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow:auto}
#esmDlg .dlg-a{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px}
#esmDlg .dlg.wide{max-width:520px}

.esd-title{font-size:14.5px;font-weight:800;color:#fff;margin:0 0 12px;white-space:normal}
.esd-box{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:rgba(255,255,255,.02);white-space:normal}
.esd-row{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.05)}
.esd-row:last-child{border-bottom:0}
.esd-k{flex:0 0 132px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding-top:2px}
.esd-v{flex:1;color:#e7edf6;font-size:13.5px;font-family:Consolas,monospace;word-break:break-word;white-space:normal}
.esd-edit{margin:14px 0 2px;white-space:normal}
.esd-elabel{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:700}
.esd-input{width:100%;padding:9px 11px;border:1px solid var(--accent);border-radius:9px;background:#0f1117;color:#fff;font-size:14px;font-family:Consolas,monospace}
.esd-note{margin-top:12px;font-size:12px;color:#8a94a8;line-height:1.6;white-space:normal;direction:rtl;text-align:right}


.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.subtab-btn{background:var(--panel2);border:1px solid var(--border);border-radius:9px;color:var(--muted);font-weight:700;font-size:12.5px;padding:7px 12px;cursor:pointer}
.subtab-btn.active{color:#fff;border-color:var(--accent);background:rgba(224,36,43,.12)}
.subtab-btn .cnt{display:inline-block;background:var(--panel);border-radius:10px;padding:0 7px;font-size:11px;margin-left:4px;color:var(--muted)}
.subtab-btn.active .cnt{color:#fff}
.brand-kind-panel{display:none}

.review-sub{display:none}
.review-sub.active{display:block}
.brand-kind-panel table{width:100%;border-collapse:collapse}
.brand-kind-panel th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--border)}
.brand-kind-panel td{padding:9px 10px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.brand-kind-panel tr:hover td{background:rgba(255,255,255,.02)}
.brand-tag-c{display:inline-block;padding:2px 9px;border-radius:7px;font-size:11.5px;font-weight:800;color:#fff}


select,input[type=text],input[type=search],input[type=number],input[type=password],input[list],textarea{
  background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238a8b92' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}
select option,select optgroup{background:#16171b;color:#ececee}
input::placeholder,textarea::placeholder{color:#6b6d76}
input[type=color]{padding:2px;height:34px;width:54px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;cursor:pointer}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
::-webkit-calendar-picker-indicator{filter:invert(1)}


.lcard{border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden;background:var(--panel2)}
.lcard-head,.lcard-foot{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;background:#0d1017}
.lcard-head{border-bottom:1px solid var(--border);cursor:pointer;user-select:none}
.lcard:not(.open) .lcard-head{border-bottom:0}
.lcard-foot{border-top:1px solid var(--border)}
.lcard-sp{flex:1 1 auto}
.lcard-bd{display:none}
.lcard.open .lcard-bd{display:block}
.lc-arrow{color:var(--muted);transition:transform .15s;flex:0 0 auto}
.lcard.open .lc-arrow{transform:rotate(180deg)}
.lc-src{color:var(--muted);font-size:11px;font-family:Consolas,monospace}
.lcard .logbody{max-height:300px;border-radius:0;margin:0}
.lcard .acc-no{flex:0 0 auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:50%;font-size:12px;font-weight:800}
.lcard .lgt{color:var(--muted);font-size:11.5px}
.lcard-ttl{font-weight:800;color:#fff;font-family:Consolas,monospace;font-size:13px}
.lcard-op{display:inline-flex;align-items:center;gap:4px;background:rgba(39,192,138,.16);color:#3fb950;border:1px solid #27c08a;border-radius:8px;padding:3px 10px;font-size:12px;font-weight:700}
.lgchip.op{border-color:#27c08a}.lgchip.op b{color:#3fb950}


.unk-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;margin-bottom:7px;background:var(--panel2)}
.unk-name{font-family:Consolas,monospace;font-size:12.5px;color:var(--text);word-break:break-word}
.unk-act{display:flex;gap:6px;flex:0 0 auto}
.unk-src{flex:0 0 100%;margin:4px 0 0;padding:8px 10px;background:var(--panel);border:1px solid var(--border);border-radius:8px;font-family:Consolas,monospace;font-size:11.5px;line-height:1.5;color:var(--muted);white-space:pre-wrap;word-break:break-word;overflow:auto}


.rev-card{border:1px solid var(--border);border-radius:12px;background:var(--panel2);padding:12px 14px;margin-bottom:12px}
.rev-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.rev-reason{display:inline-block;padding:2px 9px;border-radius:7px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:#6b7280}
.rev-reason.rr-serial{background:#c2410c}
.rev-reason.rr-no-name{background:#7c3aed}
.rev-reason.rr-unrecognized{background:#b45309}
.rev-reason.rr-brand{background:#0e7490}
.rev-reason.rr-op{background:#6d28d9}

.rev-src{font-size:11.5px;color:var(--muted);line-height:1.8}
.rev-src .mono{color:var(--text)}
.brand-card .rev-fields{grid-template-columns:minmax(180px,260px) 1fr;align-items:center}
.brand-card .rb-name{font-weight:700;letter-spacing:.02em}
.rev-marker{font-size:12px;color:var(--text);word-break:break-all;background:#0c0d11;border:1px solid var(--border);border-radius:7px;padding:2px 8px}
.rev-seen{font-size:11px}
.rev-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rev-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.rev-fields input{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:400;text-transform:none;letter-spacing:0}
.rev-fields input:focus{border-color:var(--accent);outline:none}
.rev-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;font-size:11.5px}
.rev-meta .rev-fn{background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:6px;padding:2px 8px;color:var(--text)}
.rev-act{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}

.rm-ck-wrap{display:inline-flex;align-items:center;margin-inline-end:2px;cursor:pointer}
.rm-ck-wrap input{width:16px;height:16px;cursor:pointer}

.review-sub[data-rev="names"] .rev-card{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}
.review-sub[data-rev="names"] .rev-head{flex:0 0 100%;margin-bottom:2px}
.review-sub[data-rev="names"] .rev-form{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}
.review-sub[data-rev="names"] .rev-fields{display:flex;flex-wrap:wrap;gap:10px 12px;flex:1 1 auto;margin:0}
.review-sub[data-rev="names"] .rev-card .rev-fields + .rev-fields{margin-top:0}
.review-sub[data-rev="names"] .rev-fields label{min-width:140px;flex:1 1 150px}
.review-sub[data-rev="names"] .rev-act{flex:0 0 100%;margin-top:4px}
.review-sub[data-rev="names"] .rev-log,.review-sub[data-rev="names"] .rev-meta{flex:0 0 100%}
.btn.warn{border-color:#7f1d1d}
.btn.mini.warn:hover{background:rgba(220,38,38,.16);color:#fca5a5;border-color:#dc2626}
.rev-log{margin-top:11px;background:#0a0b0f;border:1px solid var(--border);border-radius:9px;padding:11px 13px;font-size:11.5px;line-height:1.55;color:#c9d1d9;max-height:340px;overflow:auto;white-space:pre-wrap;word-break:break-word}

.rev-fields label.prov{color:var(--pc,inherit)}
.rev-fields label.prov.prov-brand{--pc:#14b8a6}
.rev-fields label.prov.prov-model{--pc:#2bd4a0}
.rev-fields label.prov.prov-code{--pc:#5a9bff}
.rev-fields label.prov.prov-soc{--pc:#c084fc}
.rev-fields label.prov.prov-op{--pc:#f59e0b}
.rev-fields label.prov input,.rev-fields label.prov select{border-left:3px solid var(--pc)}
.rev-log mark.prov{background:transparent;color:var(--pc);font-weight:800;border-bottom:2px solid var(--pc);border-radius:2px;padding:0 1px}
.rev-oprule-wrap{display:flex;flex-direction:column;gap:4px;justify-content:flex-end}
.rev-oprule-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.03em;font-weight:700}

.prov-rule{cursor:pointer;font-size:10px;font-weight:700;color:var(--pc,#888);border:1px solid var(--pc,#888);border-radius:5px;padding:0 5px;margin-inline-start:6px;opacity:.75;text-transform:none;letter-spacing:0;white-space:nowrap}
.prov-rule:hover{opacity:1;background:color-mix(in srgb, var(--pc,#888) 14%, transparent)}

.rev-socprev{display:flex;align-items:center;gap:7px;align-self:flex-end;padding:6px 2px;font-size:12.5px}
.rev-socprev-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.03em;font-weight:700}
.rev-socprev .socbadge{color:#fff;font-size:10px;font-weight:800;padding:1px 6px;border-radius:5px}
.rev-card.rev-matched{box-shadow:0 0 0 2px #27c08a inset;transition:box-shadow .3s}


.bl-group{margin-bottom:18px}
.bl-group-ttl{font-size:13px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.03em}
.bl-items{display:flex;flex-wrap:wrap;gap:8px}
.bl-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 6px 5px 11px;border:1px solid var(--border);border-radius:999px;background:var(--panel2)}
.bl-chip .bl-val{font-size:12.5px}
.bl-x{border:0;background:#ef4444;color:#fff;width:18px;height:18px;line-height:18px;border-radius:50%;cursor:pointer;font-size:13px;font-weight:800;padding:0;display:inline-flex;align-items:center;justify-content:center}
.bl-x:hover{background:#dc2626}
.bl-addbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.bl-addbar select,.bl-addbar input{padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}
.bl-addbar input{flex:1;min-width:160px}
.btn.bl-btn{color:#ef4444;border-color:rgba(239,68,68,.4)}
.btn.bl-btn:hover{background:rgba(239,68,68,.12)}


.recurwin{max-width:560px;width:94%}
.rc-cand{border:1px solid var(--border);border-radius:10px;padding:11px 13px;margin-bottom:10px;background:var(--panel2)}
.rc-head{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.rc-desc{font-size:12.5px;margin:5px 0 0;line-height:1.6}
.rc-desc code{background:var(--panel);padding:1px 5px;border-radius:4px}
.rc-fields{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px}
.rc-f{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.rc-f input{font-weight:400;text-transform:none;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}
.rc-f input[type=color]{padding:2px;width:48px;height:32px}
.rc-act{display:flex;gap:9px;margin-top:6px}


#opGrid,#socGrid,.brand-kind-panel table{table-layout:auto;width:100%}
#opGrid th:first-child,#opGrid td:first-child,#socGrid th:first-child,#socGrid td:first-child,.brand-kind-panel th:first-child,.brand-kind-panel td:first-child{width:100%;white-space:normal;word-break:break-word;overflow-wrap:anywhere}

.col-on,.col-pri,.col-clr,.col-os,.col-src,.col-act{width:1px;white-space:nowrap}
#modeGridR td.mode-pat{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#modeGridR{table-layout:auto}
.col-on,.col-pri,.col-clr{text-align:center}
.col-clr .swatch{margin:0}
td.col-act.actions{display:table-cell;white-space:nowrap;text-align:right;padding-right:10px}
td.col-act .icon-btn{width:28px;height:28px;display:inline-flex;vertical-align:middle}
td.col-act .inline-form{display:inline-block;vertical-align:middle;margin:0 0 0 6px}


.btn.mini{padding:2px 8px;font-size:11px;border-radius:6px;margin-left:6px}
.btn.warn{background:#7a1f24;border-color:#a3343a;color:#ffd9db}
.btn.warn:hover{background:#a3343a}
.title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.scan-box{margin:12px 0 4px;padding:10px;border:1px dashed var(--border);border-radius:10px;background:rgba(255,255,255,.02)}
.scan-result{margin-top:8px}
.sd-list{display:flex;flex-direction:column;gap:4px}
.sd-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);cursor:pointer}
.sd-row input{margin:0}
.sd-lbl{flex:0 0 90px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}
.sd-val{flex:1;font-size:13px}
.sd-cur{color:var(--muted);text-decoration:line-through}
.sd-kind{font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;text-transform:uppercase}
.sd-new{background:#15401f;color:#7ee2a0}.sd-add{background:#143a4d;color:#86d2f5}.sd-changed{background:#4d3a14;color:#f5d486}
.sd-actions{margin-top:8px;display:flex;gap:10px;align-items:center}
.addlog-box{margin-top:14px;padding:10px;border:1px dashed var(--border);border-radius:10px}
.addlog-h{font-weight:800;color:#fff;font-size:13px;margin-bottom:6px}
.addlog-ta{width:100%;min-height:90px;font-family:Consolas,monospace;font-size:12px;background:#0f1117;color:#cdd3df;border:1px solid var(--border);border-radius:8px;padding:8px}
.addlog-act{margin-top:8px;display:flex;gap:10px;align-items:center}
.dp-list{margin-top:10px;display:flex;flex-direction:column;gap:4px;max-height:340px;overflow:auto}
.dp-item{text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--text);cursor:pointer;font-size:13px}
.dp-item:hover{border-color:var(--accent);background:var(--panel)}
.dp-create{border-color:#2f6fd6;border-style:dashed;background:linear-gradient(180deg,rgba(47,128,237,.14),rgba(31,111,214,.08))}
.dp-create:hover{border-style:solid;border-color:var(--accent);background:linear-gradient(180deg,rgba(47,128,237,.24),rgba(31,111,214,.14))}
.mg-row{display:flex;gap:10px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.mg-k{flex:0 0 120px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}
.mg-v{flex:1;font-size:13px;color:var(--text)}
.mg-del{color:#ff8f93;text-decoration:line-through}


.rs-summary{font-size:13px;color:var(--text);margin:4px 0 8px}
.rs-errt{color:#ff8f93}
.rs-log{max-height:340px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:#0e0f14;padding:8px;font-family:Consolas,monospace;font-size:12px;line-height:1.55}
.rs-line{padding:2px 4px;border-bottom:1px solid rgba(255,255,255,.03);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-no{color:var(--muted);margin-right:4px}
.rs-ok{color:var(--muted)}
.rs-okt{color:#4fae73}
.rs-changed{color:#cfe3ff}
.rs-done{color:#7ee2a0;font-weight:700;white-space:normal}
.rs-err{color:#ff8f93;white-space:normal}

.edit-logs{margin-top:10px;max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:8px;background:rgba(255,255,255,.02)}

.rs-ctl{margin:6px 0 10px}
.rs-review{margin-top:6px}
.rs-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rs-toolbar .rs-sp{flex:1}
.chk.mini{font-size:12px;display:inline-flex;align-items:center;gap:5px;color:var(--muted)}
.rs-list{max-height:360px;overflow:auto;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:8px;padding:6px;background:#0e0f14}
.rs-list .sd-row{cursor:pointer}
.rs-dev{color:var(--muted);font-size:11px;margin-right:6px}
.rs-dbn{color:#f0a35a;font-size:11px;margin-left:8px;border:1px solid rgba(240,163,90,.4);border-radius:6px;padding:1px 6px}
.rs-apply{margin-top:10px;display:flex;gap:10px;align-items:center}
.rs-code{color:#7c8aa3;font-size:11px;font-family:Consolas,monospace}

.rs-list{display:block}

.rs-block{border:1px solid var(--border);border-radius:10px;margin:0 0 14px;background:rgba(255,255,255,.02);overflow:hidden}
.rs-block-h{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#161922;border-bottom:1px solid var(--border);font-size:13.5px;color:#fff;position:sticky;top:0;z-index:3}
.rs-block-h .rs-sp{flex:1}
.rs-block-h .btn.mini{background:linear-gradient(180deg,var(--accent2,#2f80ed),var(--accent,#1f6fd6));color:#fff;border:0}
.rs-block table{margin:0}
.rs-edit{width:100%;max-width:280px;padding:5px 7px;border:1px solid var(--border);border-radius:6px;background:#0f1117;color:#7ee2a0;font-weight:700;font-size:12.5px}
.rs-edit:focus{outline:none;border-color:var(--accent,#1f6fd6);background:#0b0d13}
.rs-tr.rs-picked{background:rgba(56,132,255,.12)}
.rs-act{white-space:nowrap;width:1%;text-align:center;vertical-align:middle}
.rs-act .btn.mini{padding:3px 8px}
.rs-block.rs-misplaced .rs-block-h{background:#2a1c12;color:#f0a35a}
.rs-mp-target{color:#7ee2a0;font-weight:700;word-break:break-word;overflow-wrap:anywhere}
.rs-mp-grouphead td{background:#161d17;border-top:2px solid #25502f;color:#bdf0c8;padding:8px 10px!important}
.rs-mp-grouphead td b{color:#7ee2a0}

.rs-conf{display:inline-block;margin-top:4px;font-size:10.5px;font-weight:700;color:#c9a227;background:rgba(201,162,39,.12);border:1px solid rgba(201,162,39,.4);border-radius:6px;padding:1px 6px;white-space:nowrap}
.rs-conf.ok{color:#7ee2a0;background:rgba(46,160,86,.14);border-color:rgba(46,160,86,.45)}

.ss-wrap{position:relative;display:inline-block;min-width:170px}
.ss-trigger{width:100%;text-align:left;background:var(--panel2,#0f1117);border:1px solid var(--border);color:var(--text);padding:10px 30px 10px 12px;border-radius:8px;font-size:13.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-trigger::after{content:"▾";position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:11px;pointer-events:none}
.ss-trigger:hover{border-color:#3a4255}
.ss-wrap.open .ss-trigger{border-color:var(--accent,#2f80ed);box-shadow:0 0 0 2px rgba(47,128,237,.15)}
.ss-pop{position:fixed;z-index:1000;min-width:220px;max-width:96vw;background:#0e1626;border:1px solid #2b3550;border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.55);padding:8px;display:none}
.ss-search{width:100%;box-sizing:border-box;background:#0b0f18;border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:7px;font-size:13px;outline:none;margin-bottom:6px}
.ss-search:focus{border-color:var(--accent,#2f80ed)}
.ss-list{max-height:300px;overflow-y:auto;overflow-x:hidden;display:block!important}
.ss-opt{display:block!important;position:static!important;float:none!important;box-sizing:border-box;min-height:34px!important;height:auto!important;line-height:18px!important;padding:8px 10px!important;margin:0 0 2px!important;border-radius:6px;cursor:pointer;font-size:13px;color:#cdd3df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-opt:hover{background:#1a2740}
.ss-opt.sel{background:linear-gradient(180deg,rgba(47,128,237,.28),rgba(31,111,214,.2));color:#fff;font-weight:600}
.ss-empty{padding:10px;color:var(--muted);font-size:12.5px;text-align:center}

.rs-fixed col.c-mp-src{width:13%}
.rs-fixed col.c-mp-code{width:10%}
.rs-fixed col.c-mp-log{width:30%}
.rs-fixed col.c-mp-target{width:25%}
.rs-fixed col.c-mp-act{width:22%}
.rs-fixed td.rs-mpact{white-space:normal;overflow:visible;text-align:left;vertical-align:middle}
.rs-fixed td.rs-mpact .btn.mini{padding:3px 8px;margin:0 5px 5px 0;display:inline-block}

/* Review dashboard cards */
.dash-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0 0 16px}
.dash-card{display:flex;flex-direction:column;gap:5px;padding:12px 14px;background:var(--panel2,#0f1117);border:1px solid var(--border);border-radius:11px;text-align:left;font:inherit}
.dash-card .dc-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.dash-card .dc-num{font-size:22px;font-weight:800;line-height:1.1;color:var(--text)}
.dash-card .dc-num.dc-small{font-size:14px}
.dash-card .dc-sub{font-size:11px;color:var(--muted)}
.dash-card.dc-click{cursor:pointer;transition:border-color .15s,transform .1s}
.dash-card.dc-click:hover{border-color:var(--accent);transform:translateY(-1px)}
.dash-card.dc-warn{border-color:#7a5a1e;background:linear-gradient(180deg,rgba(224,168,46,.12),transparent)}
.dash-card.dc-warn .dc-num{color:#ffd27d}
.dash-card .dc-bar{height:6px;border-radius:4px;background:var(--border);overflow:hidden;margin:3px 0}
.dash-card .dc-bar span{display:block;height:100%;background:#2e9e5b;border-radius:4px}
.dc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-right:3px}
.dc-dot.ok{background:#2e9e5b;box-shadow:0 0 6px rgba(46,158,91,.6)}
.rescan-actions{margin:0 0 14px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
/* grouped re-scan actions (Scan / Database side-by-side; Advanced / Danger full width below) */
.rs-group{flex:0 1 auto;padding:11px 13px;background:var(--panel2,#0f1117);border:1px solid var(--border);border-radius:10px}
.rs-foldable{flex:1 1 100%}
.rs-group .rs-glabel{display:block;margin:0 0 9px}
.rs-btns{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.rs-btns .btn{flex:0 0 auto;white-space:nowrap}
.rs-btns::-webkit-scrollbar{height:6px}
.rs-btns::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.rs-foldable{padding:0}
.rs-foldable>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:11px 13px}
.rs-foldable>summary::-webkit-details-marker{display:none}
.rs-foldable>summary::before{content:"▸";color:var(--muted);font-weight:800;transition:transform .15s}
.rs-foldable[open]>summary::before{content:"▾"}
.rs-foldable>summary .rs-glabel{margin:0}
.rs-foldable .rs-hint{color:var(--muted);font-size:11.5px;font-weight:400;text-transform:none;letter-spacing:0}
.rs-foldable .rs-btns{padding:0 13px 13px}
.rs-danger{border-color:#7a2620;background:linear-gradient(180deg,rgba(179,38,30,.10),transparent)}
.rs-danger>summary .rs-glabel{color:#ff8a80}

.rs-head{align-items:center}

.rs-ptitle{justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:8px}
.rs-desc{margin:0 0 14px;color:var(--muted);font-size:13px}
.rs-brandpick{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;white-space:nowrap}
.rs-brandpick select{background:var(--panel2,#0f1117);border:1px solid var(--border);color:var(--text);padding:7px 10px;border-radius:8px;font-size:13px;min-width:150px}
.rs-head .ss-wrap{min-width:150px}
.rs-head .ss-trigger{padding:7px 28px 7px 11px}

.rs-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 11px;background:var(--panel2,#0f1117);border:1px solid var(--border);border-radius:10px}
.rs-bar .btn{flex:0 0 auto;white-space:nowrap}
.rs-glabel{flex:0 0 auto;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin:0 1px;opacity:.85}
.rs-divider{flex:0 0 auto;align-self:stretch;width:1px;background:var(--border);margin:1px 5px}

.mnum-list{font-size:10.5px;line-height:1.35;color:var(--muted);opacity:.82;margin-top:3px;word-break:break-word;letter-spacing:.2px}
.ml-mnums{font-size:11px;line-height:1.35;color:var(--muted);opacity:.8;margin-top:2px;word-break:break-word}
.hist-item{padding:7px 9px;border-bottom:1px solid var(--border);font-size:13px;line-height:1.55}
.hist-item:last-child{border-bottom:0}
.rs-host{margin-top:6px}
.rs-host .rs-list{max-height:none;overflow:visible;border:0;background:transparent;padding:0}
.rs-h2{font-size:16px;color:#fff;margin:0 0 12px;font-weight:800}
.rs-acc{background:transparent;border:0;color:#cdd3df;font-size:13px;cursor:pointer;padding:0 8px 0 0}
.rs-block.collapsed .rs-block-body{display:none}
.rs-block-body{overflow-x:auto} 

.rs-fixed{table-layout:fixed;width:100%}
.rs-fixed td,.rs-fixed th{white-space:normal;word-break:break-word;overflow-wrap:anywhere;overflow:hidden;vertical-align:middle}
.rs-fixed td.rs-codc{white-space:normal;word-break:break-word}
.rs-fixed td.rs-act{white-space:nowrap;overflow:visible;text-align:center}
.rs-fixed col.c-ck{width:34px}
.rs-fixed col.c-dev{width:14%}
.rs-fixed col.c-code{width:10%}
.rs-fixed col.c-field{width:7%}
.rs-fixed col.c-cur{width:10%}
.rs-fixed col.c-new{width:15%}
.rs-fixed col.c-db{width:7%}
.rs-fixed col.c-st{width:6%}
.rs-fixed col.c-srcb{width:10%}
.rs-fixed col.c-act2{width:84px}
.rs-fixed col.c-src{width:20%}
.rs-fixed col.c-log{width:34%}
.rs-fixed col.c-target{width:22%}
.rs-fixed .rs-edit{max-width:100%}

.rs-fixed td.rs-act .btn.mini{min-width:30px;width:30px;padding:4px 0;margin:0 0 0 5px;text-align:center;display:inline-block}
.rs-fixed td.rs-srcc{white-space:normal;overflow:visible}
.rs-fixed td.rs-srcc .btn.mini{padding:2px 7px;margin:0 3px 3px 0}
.rs-srctag{display:inline-block;font-size:11px;color:var(--muted);padding:2px 6px;border:1px solid var(--border);border-radius:5px}
.rs-rm{display:inline-block;color:#ef5350;font-weight:600;font-size:12px}
.rs-fixed .rs-hint{max-width:100%;white-space:normal}
.rs-table{width:100%;border-collapse:collapse;font-size:12.5px}
.rs-table thead th{position:sticky;top:0;background:#161922;color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:.04em;text-align:left;padding:7px 8px;border-bottom:1px solid var(--border);z-index:1}
.rs-table thead .th-sub{display:block;font-size:9px;color:#5b6478}
#rescanModal .modal{max-width:min(1280px,98vw);width:98vw;max-height:94vh;overflow:hidden;display:flex;flex-direction:column}
#rescanModal .modal-h{flex:0 0 auto}
#rescanModal .modal-b{overflow:auto;flex:1 1 auto}
#rescanModal .rs-list{max-height:none}
.rs-table td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:top}


.oo-table{width:100%;table-layout:auto}
.oo-table colgroup{display:none}                                  
.oo-table td,.oo-table th{vertical-align:middle;white-space:normal;word-break:normal;overflow-wrap:break-word;line-height:1.45}
.oo-table th{white-space:nowrap}                                   
.oo-table td.oo-ckc,.oo-table th.oo-ckc{text-align:center;width:30px}
.oo-table td.oo-note{font-family:Consolas,monospace;font-size:11px;color:#7c8aa3;white-space:nowrap}  
.oo-table td.oo-act{white-space:nowrap;text-align:right}
.oo-table td.oo-act .btn.mini{margin:0 0 0 5px;padding:3px 8px;display:inline-block}
.rs-tr:hover{background:rgba(255,255,255,.03)}
.rs-c{width:1%;text-align:center}
.rs-dvc{color:#fff;max-width:200px}
.rs-codc{color:#9fb0cc}
.rs-fc{color:var(--muted)}
.rs-new b{color:#7ee2a0}
.rs-dbc{color:#f0a35a}
.rs-hint{color:#7c8aa3;font-size:10.5px;font-family:Consolas,monospace;margin-top:3px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.dup-grp{border:1px solid var(--border);border-radius:10px;margin:0 0 12px;padding:8px 10px;background:rgba(255,255,255,.02)}
.dup-grp-h{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:14px;color:#fff}

.modal-h .modal-hsp{min-width:8px}
.modal.fullpage{max-width:100vw!important;width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0;display:flex;flex-direction:column}
.modal.fullpage .modal-b{flex:1 1 auto;overflow:auto}
.modal.fullpage .rs-list{max-height:none;overflow:visible}

.modal.fullpage .rs-table td,.modal.fullpage .rs-table th{white-space:normal;vertical-align:middle}
.modal.fullpage .rs-table td.rs-codc,.modal.fullpage .rs-table td.rs-act{white-space:nowrap}
.modal.fullpage .rs-dvc{max-width:240px}
.modal.fullpage .rs-new{max-width:300px}
.modal.fullpage .rs-hint{max-width:440px;white-space:normal}
.modal.fullpage .dup-grp table{min-width:760px}

.logtools{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border);background:#11131a;position:sticky;top:0;z-index:2}

.lg-searchbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0e1016;border-bottom:1px solid var(--border)}
.lg-searchbar input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#0f1117;color:#cdd3df;font-size:13px}
.lg-searchbar #lmFilterInfo{font-size:11.5px;white-space:nowrap}
#lmBody .logtools{top:48px}
mark.lg-hl,.lg-hl{background:#facc15;color:#11131a;border-radius:2px;padding:0 1px;font-weight:700}

#logModal{z-index:50}
#dupModal,#rescanModal{z-index:52}
#formModal{z-index:70}

#devPicker{z-index:86}
#mergeModal{z-index:88}
#esmDlg{z-index:90}
.dp-bar{display:flex;gap:8px;align-items:center}
.lg-sel{margin:0 4px 0 0}

#formModal .modal{max-width:min(980px,96vw);width:96vw;max-height:92vh;overflow:hidden;display:flex;flex-direction:column}
#formModal .modal-h{position:sticky;top:0;flex:0 0 auto;background:var(--panel);z-index:6}
#formModal .modal-b{overflow:auto;flex:1 1 auto}
#formModal .edit-logs{max-height:46vh}

.fm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 14px;margin-bottom:10px}
.fm-grid .field{margin:0}
.fm-grid .field label,.fm-full label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-grid .field input{width:100%}
.field label .th-sub{display:inline;margin-left:4px;font-weight:600}
.fm-full{margin:10px 0}
.fm-full textarea{width:100%}

.ar-note{direction:rtl;text-align:right;background:rgba(56,132,255,.08);border:1px solid rgba(56,132,255,.25);border-radius:9px;padding:9px 12px;margin:0 0 12px;font-size:12.5px;line-height:1.7;color:#cdd9ee}
.ar-note code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px}
.fhint{direction:rtl;text-align:right;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.5}

.os-tag,.src-tag,.socbadge,.osbadge,.soc-badge,.brand-tag-c{white-space:nowrap}
.src-tag{display:inline-block;padding:2px 7px;border-radius:8px;font-size:10px;font-weight:700;color:var(--muted);border:1px solid var(--border);background:var(--panel2)}


.col-vis{width:1px;white-space:nowrap;text-align:center}
#adminGrid td.vis-cell{text-align:center;vertical-align:middle}
.vis-toggle-wrap{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;width:24px;height:24px}
.vis-toggle{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
.vis-mark{width:22px;height:22px;border-radius:6px;border:2px solid var(--border);background:var(--panel2);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.vis-mark::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .15s;margin-top:-2px}
.vis-toggle:checked + .vis-mark{background:linear-gradient(180deg,var(--green),#1fa776);border-color:transparent;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.vis-toggle:checked + .vis-mark::after{transform:rotate(45deg) scale(1)}
.vis-toggle:focus-visible + .vis-mark{box-shadow:0 0 0 3px rgba(39,192,138,.32)}

#adminGrid tr.row-hidden{background:repeating-linear-gradient(45deg,rgba(224,36,43,.05),rgba(224,36,43,.05) 10px,rgba(224,36,43,.09) 10px,rgba(224,36,43,.09) 20px)}
#adminGrid tr.row-hidden td{opacity:.6}
#adminGrid tr.row-hidden td.vis-cell,#adminGrid tr.row-hidden td.actions{opacity:1}
#adminGrid tr.row-hidden:hover{background:rgba(224,36,43,.13)}

.rev-card .rev-fields + .rev-fields{margin-top:10px}
.rev-newbrand-wrap .rev-brand-new{border-color:var(--accent)}


.chip-edit{display:flex;flex-wrap:wrap;gap:6px;min-height:38px;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);margin-bottom:8px}
.pchip{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:3px 6px 3px 10px;font-family:Consolas,monospace;font-size:12px;color:var(--text)}
.pchip-loc{color:#f9c74f;font-family:inherit;font-weight:800;font-size:11px}
.pchip-x{background:rgba(224,36,43,.18);color:#ff6b6b;border:0;border-radius:50%;width:18px;height:18px;cursor:pointer;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.pchip-x:hover{background:var(--accent);color:#fff}
.chip-add{display:flex;gap:8px}
.chip-add input{flex:1}

/* ===== Model Names: toolbar + inline edit ===== */
.ml-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;background:var(--panel);border:1px solid var(--border);border-radius:10px}
.ml-toolbar .ml-tb-sep{width:1px;height:22px;background:var(--border);margin:0 4px}
.ml-toolbar .ml-tb-lbl{font-size:12px;font-weight:700;color:var(--muted)}
.ml-toolbar select,.ml-toolbar input{background:var(--panel2);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:6px 9px;font-size:12.5px}
.ml-toolbar #mlRepFind,.ml-toolbar #mlRepWith{width:150px}
.ml-toolbar .ml-tb-hint{font-size:11.5px;margin-left:auto}
.ml-ck-h,.ml-ck{width:34px;text-align:center}
#modelGrid .ml-cell{cursor:text}
#modelGrid .ml-cell:hover{background:rgba(224,36,43,.06)}
.ml-edit-inp{width:100%;background:#0c0d10;border:1px solid var(--accent2);border-radius:6px;color:var(--text);padding:5px 7px;font:inherit;box-sizing:border-box}
#modelGrid th.ml-sort{cursor:pointer;user-select:none}
#modelGrid th.ml-sort:hover{color:var(--accent2)}
#modelGrid .sort-ar{font-size:10px;color:var(--accent2)}
.badge-new{display:inline-block;font-size:10px;font-weight:800;color:#06351b;background:#3ddc84;border-radius:5px;padding:1px 6px}
#modelGrid td.ml-chg{background:rgba(249,168,38,.12)}
#modelGrid td.ml-chg .ml-ev{color:#ffcf6b;font-weight:700}
.ml-was{display:block;margin-top:3px;font-size:11.5px;color:#3ddc84;font-weight:600}
.btn.mini.btn-update{background:#f9a826;color:#3b1d00;border-color:transparent}
.btn.mini.btn-apply{background:#27c08a;color:#04231a;border-color:transparent}
.btn.mini.btn-move{background:#e0242b;color:#fff;border-color:transparent}
.btn.mini.btn-merge{background:#3478f6;color:#fff;border-color:transparent}
.btn.mini.btn-warn{background:#f9a826;color:#3b1d00;border-color:transparent}
.ml-ev{outline:none}
.ml-ev:focus{outline:1px solid var(--accent2);border-radius:4px;padding:0 3px}
.badge-diff{display:inline-block;font-size:10px;font-weight:800;color:#3b1d00;background:#f9a826;border-radius:5px;padding:1px 6px}
#modelGrid td.ml-saved{animation:mlSaved .9s ease}
@keyframes mlSaved{0%{background:rgba(39,192,138,.55)}100%{background:transparent}}

/* ===== Operations tab sub-tabs ===== */
.ops-sub{display:none}
.ops-sub.active{display:block}

/* ===== Maintenance tab ===== */
.maint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:6px}
.maint-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}
.maint-card .maint-ico{font-size:26px;line-height:1}
.maint-card h3{margin:2px 0 0;font-size:15px}
.maint-card p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.6;flex:1}
.maint-card .btn{align-self:flex-start;margin-top:4px}
.maint-card.maint-full{grid-column:1/-1;border-color:var(--accent);background:linear-gradient(180deg,rgba(224,36,43,.10),transparent)}
.maint-out{margin-top:18px}
.maint-run{padding:16px;border:1px dashed var(--border);border-radius:11px;color:var(--muted);text-align:center}
.maint-err{padding:14px;border:1px solid #b3261e;border-radius:11px;color:#ff8a80;background:rgba(179,38,30,.12)}
.maint-result{border:1px solid var(--border);border-radius:12px;overflow:hidden;max-width:460px}
.maint-result.is-dry{border-color:#e0a82e}
.maint-result.is-done{border-color:#2e9e5b}
.maint-rhead{padding:12px 16px;font-weight:800;font-size:14px;background:var(--panel)}
.maint-result.is-dry .maint-rhead{background:rgba(224,168,46,.14);color:#ffd27d}
.maint-result.is-done .maint-rhead{background:rgba(46,158,91,.16);color:#86e3ad}
.mrows{padding:6px 16px}
.mrow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.mrow:last-child{border-bottom:none}
.mrow span{color:var(--muted)}
.mrow b{font-family:Consolas,monospace;font-size:14px}
.maint-ract{padding:12px 16px;background:var(--panel)}
.maint-exec{background:#2e9e5b!important}
.maint-exec:hover{background:#36b56a!important}
.maint-done{color:#86e3ad;font-weight:700;font-size:13px}

/* ===== API tab ===== */
.api-sub{display:none}
.api-sub.active{display:block}
.api-table{width:100%;border-collapse:collapse;margin-top:6px}
.api-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--border)}
.api-table td{padding:8px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.api-table td code{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:3px 7px;font-size:12px;color:#cfd2da;white-space:nowrap}
.api-row-act{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.api-out{margin-top:14px;background:#0c0d10;border:1px solid var(--border);border-radius:10px;padding:14px;max-height:420px;overflow:auto;font-family:Consolas,monospace;font-size:12.5px;line-height:1.5;color:#cfe3d6;white-space:pre-wrap;word-break:break-word}

/* ===== SEO Settings tab ===== */
.seo-sub{display:none}
.seo-sub.active{display:block}
.seo-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px;max-width:780px}
.seo-card h3{margin:0 0 6px;font-size:15px}
.seo-card .muted{margin:0 0 14px;font-size:12.5px;line-height:1.6}
.seo-url{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.seo-url code{background:var(--panel2);border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:12.5px;color:#cfd2da;word-break:break-all}
.seo-pill{background:var(--accent);color:#fff;font-size:11px;font-weight:800;border-radius:20px;padding:3px 11px;white-space:nowrap}
.seo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.seo-field{display:block;margin-bottom:13px}
.seo-field>span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}
.seo-field input,.seo-field textarea,.seo-ta{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 11px;font-size:13px;font-family:inherit;box-sizing:border-box}
.seo-ta.mono,.seo-field textarea.mono{font-family:Consolas,monospace;font-size:12.5px;line-height:1.55}
.seo-field input:focus,.seo-field textarea:focus,.seo-ta:focus{outline:none;border-color:var(--accent2)}
.seo-og{display:flex;gap:14px;align-items:flex-start}
.seo-og-prev{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--panel2);flex:none}
.seo-og-in{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.seo-og-in input[type=file]{font-size:12px;color:var(--muted)}
.seo-save{margin-top:16px}
