/* Admin panel layout (desktop-first, responsive). Builds on app.css tokens. */
body.adm { font-size: 14.5px; }
.layout { position: relative; z-index: 2; display: grid; grid-template-columns: 250px 1fr; min-height: 100vh; }
.side { position: sticky; top: 0; height: 100vh; padding: 22px 14px; border-left: 1px solid var(--line); background: rgba(8, 12, 11, .82); backdrop-filter: blur(20px); display: flex; flex-direction: column; gap: 4px; }
.side .brand { margin: 0 8px 18px; }
.side a { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 13px; color: var(--muted); font-weight: 600; transition: .25s var(--ease); position: relative; }
.side a svg { width: 19px; height: 19px; }
.side a:hover { color: var(--text); background: var(--surface); }
.side a.on { color: var(--text); background: linear-gradient(135deg, rgba(52,232,166,.16), rgba(20,184,166,.05)); box-shadow: inset 0 0 0 1px rgba(52,232,166,.25); }
.side a.on svg { color: var(--em); }
.side a .cnt { margin-inline-start: auto; font-size: 11px; font-weight: 800; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; color: #03140d; background: var(--em); }
.side .foot { margin-top: auto; font-size: 12px; color: var(--dim); padding: 0 10px; }
.main { padding: 26px 28px 60px; min-width: 0; }
.main h1 { font-size: 24px; }
.ph { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.ph p { margin: 2px 0 0; color: var(--muted); font-size: 13.5px; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.kpi { padding: 18px; border-radius: var(--r-lg); border: 1px solid var(--line); background: linear-gradient(180deg, rgba(20,27,24,.86), rgba(11,15,14,.82)); position: relative; overflow: hidden; }
.kpi span { color: var(--muted); font-size: 12.5px; }
.kpi b { display: block; font-size: 24px; margin-top: 4px; letter-spacing: -.01em; }
.kpi small { color: var(--dim); font-size: 12px; }
.kpi::after { content: ""; position: absolute; width: 120px; height: 120px; left: -40px; top: -40px; border-radius: 50%; background: radial-gradient(circle, var(--em-glow), transparent 70%); opacity: .5; }
.kpi.gold::after { background: radial-gradient(circle, rgba(227,194,122,.35), transparent 70%); }
.chart { display: flex; align-items: flex-end; gap: 6px; height: 170px; padding-top: 10px; }
.chart .c { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.chart .c i { width: 100%; max-width: 30px; border-radius: 8px 8px 4px 4px; background: linear-gradient(180deg, var(--em), rgba(20,184,166,.25)); box-shadow: 0 0 18px -4px var(--em-glow); transform-origin: bottom; animation: grow .9s var(--ease) both; min-height: 3px; }
.chart .c span { font-size: 10.5px; color: var(--dim); }
@keyframes grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
table.t { width: 100%; border-collapse: collapse; }
table.t th { text-align: right; font-weight: 600; color: var(--muted); font-size: 12.5px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
table.t td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.t tr.click { cursor: pointer; transition: background .2s; }
table.t tr.click:hover td { background: rgba(255,255,255,.03); }
.twrap { overflow-x: auto; }
.toolbar { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.toolbar .input { max-width: 380px; height: 46px; }
.ord { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; }
.ord + .ord { margin-top: 12px; }
.ord .rimg { width: 110px; height: 110px; border-radius: 14px; object-fit: cover; border: 1px solid var(--line-2); cursor: zoom-in; }
.ord .acts { display: flex; flex-direction: column; gap: 8px; min-width: 150px; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 14px; }
.drawer-bg { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); animation: fade .25s both; }
.drawer { position: fixed; z-index: 41; top: 0; bottom: 0; left: 0; width: min(560px, 100vw); overflow: auto; padding: 22px; background: linear-gradient(180deg, #101715, #090d0c);
  border-right: 1px solid var(--line-2); animation: slide .45s var(--ease) both; }
@keyframes slide { from { transform: translateX(-100%); } to { transform: none; } }
.drawer .close { position: sticky; top: 0; float: left; }
.switch { position: relative; width: 50px; height: 28px; border-radius: 99px; background: rgba(255,255,255,.12); border: 0; cursor: pointer; transition: .3s var(--ease); flex: none; }
.switch::after { content: ""; position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: .35s var(--spring); }
.switch.on { background: linear-gradient(135deg, var(--em), var(--em-2)); }
.switch.on::after { right: 25px; }
.setrow { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--line); }
.setrow:last-child { border-bottom: 0; }
.setrow b { display: block; } .setrow small { color: var(--muted); }
.setrow .input { max-width: 260px; height: 44px; }
.mtabs { display: none; }
.admin-mobile-nav { display:none; }
.admin-menu-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px; }
.admin-menu-grid a { min-height:84px;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center; }
.admin-menu-grid svg { width:23px;height:23px;color:var(--em); }
.bigbtn { height: 64px; font-size: 16px; border-radius: 20px; }
.node-list { display:grid;gap:12px;margin-top:14px; }
.node-card { padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--surface),rgba(8,13,11,.92)); }
.node-main { display:flex;align-items:center;gap:11px;min-width:0; }
.node-flag { width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:14px;background:var(--surface-2);font-size:25px; }
.node-info { flex:1;min-width:0; }
.node-info b,.node-info span { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.node-info span { margin-top:3px;color:var(--muted);font-size:12px;text-align:left; }
.node-progress { height:5px;margin:13px 0 10px;border-radius:9px;background:rgba(255,255,255,.06);overflow:hidden; }
.node-progress i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--em),var(--gold)); }
.node-log { min-height:34px;color:var(--muted);font:11.5px/1.75 var(--mono);direction:rtl;text-align:right;white-space:pre-line;overflow-wrap:anywhere; }
.node-actions { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px; }
.node-actions .btn { width:100%;min-width:0; }
.node-actions .ghost-danger { color:#ffaaaa;background:transparent;border-color:rgba(255,107,107,.3); }
.node-help { margin:10px 0 0;color:var(--muted);font-size:11.5px;line-height:1.7; }
.location-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.location-card { min-width:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--surface),rgba(8,13,11,.92)); }
.location-card.archived { opacity:.72;border-style:dashed; }
.location-meta { display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px; }
.location-meta span { padding:8px 5px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:10.5px;text-align:center; }
.location-meta b { display:block;margin-top:3px;color:var(--text);font-size:11px; }
.danger-zone { border-color: rgba(255,107,107,.35) !important; background: linear-gradient(160deg, rgba(255,107,107,.12), rgba(10,14,13,.9)) !important; }
.em-on { border-color: rgba(245,184,74,.55) !important; background: linear-gradient(160deg, rgba(245,184,74,.18), rgba(10,14,13,.9)) !important; }
.lgn { position: relative; z-index: 2; max-width: 420px; margin: 0 auto; padding: 16px; }
@media (max-width: 980px) {
  .layout { grid-template-columns: 1fr; }
  .side { display:none; }
  .admin-mobile-nav { position:fixed;z-index:30;bottom:10px;right:12px;left:12px;height:70px;display:grid;grid-template-columns:repeat(4,1fr);padding:5px;border-radius:23px;background:rgba(10,15,13,.9);border:1px solid var(--line-2);backdrop-filter:blur(22px);box-shadow:0 18px 50px rgba(0,0,0,.5); }
  .admin-mobile-nav a,.admin-mobile-nav button { position:relative;border:0;background:transparent;color:var(--dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10.5px;border-radius:17px; }
  .admin-mobile-nav a.on,.admin-mobile-nav button.on { color:var(--text);background:rgba(52,232,166,.1); }
  .admin-mobile-nav svg { width:21px;height:21px; }
  .admin-mobile-nav .cnt { position:absolute;top:1px;left:18%;min-width:18px;height:18px;border-radius:99px;display:grid;place-items:center;font-size:9px;color:#03140d;background:var(--em); }
  .main { padding: 18px 14px 110px; }
  .kpis { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .ord { grid-template-columns: 1fr; } .ord .acts { flex-direction: row; }
  .ord .acts { flex-wrap:wrap;min-width:0; }
  .ord .acts .btn { flex:1;min-width:120px; }
  .ph h1 { font-size:21px; }
  .setrow { align-items:flex-start;flex-direction:column; }
  .setrow .input { max-width:none; }
  .location-grid { grid-template-columns:1fr; }
}
@media (max-width: 520px) {
  .kpis { grid-template-columns:1fr; }
  .toolbar .input { max-width:none; }
  .toolbar .btn { width:100%; }
  .drawer { padding:18px 14px 100px; }
  table.t th,table.t td { padding:10px 8px;white-space:nowrap; }
  .node-card { padding:13px; }
  .node-actions { grid-template-columns:1fr; }
  .node-actions .btn { min-height:42px; }
  .location-card { padding:13px; }
  .location-meta { grid-template-columns:1fr 1fr 1fr; }
}
