/* Pronto Portal 750 — Admin panel */
.admin-shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}
.admin-side{background:var(--c-surface);border-right:1px solid color-mix(in srgb,var(--c-text) 8%,transparent);
  padding:1.4rem 1rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-brand{display:flex;align-items:center;gap:.6rem;font-weight:800;color:var(--c-heading);padding:.4rem .6rem 1.4rem;font-size:1.1rem}
.admin-nav a{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;border-radius:14px;color:var(--c-text);
  font-weight:600;font-size:.92rem;margin-bottom:.2rem;transition:.2s}
.admin-nav a .i{width:24px;text-align:center;font-size:1.1rem}
.admin-nav a:hover{background:var(--c-bg-soft)}
.admin-nav a.active{background:var(--brand-gradient);color:#fff;box-shadow:0 10px 22px -12px var(--c-primary)}
.admin-side .group-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);padding:1rem .9rem .4rem;font-weight:700}
.admin-main{padding:clamp(1.2rem,3vw,2.4rem);background:var(--c-bg);min-height:100vh}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.8rem;gap:1rem;flex-wrap:wrap}
.admin-topbar h1{font-size:1.6rem;margin:0}
.admin-topbar .sub{color:var(--c-muted);font-size:.9rem}

.card{background:var(--c-surface);border-radius:var(--radius);padding:1.5rem;
  border:1px solid color-mix(in srgb,var(--c-text) 8%,transparent);margin-bottom:1.4rem}
.card h3{font-size:1.1rem;margin-bottom:1rem}
.card .hint{color:var(--c-muted);font-size:.85rem;margin-top:-.6rem;margin-bottom:1.2rem}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-bottom:1.6rem}
.stat-box{background:var(--c-surface);border-radius:var(--radius);padding:1.3rem;border:1px solid color-mix(in srgb,var(--c-text) 8%,transparent)}
.stat-box .n{font-size:2rem;font-weight:800;color:var(--c-primary-dark)}
.stat-box .l{color:var(--c-muted);font-size:.85rem}
.stat-box .ic{font-size:1.6rem;margin-bottom:.5rem}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}

/* color field */
.color-field{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
.color-field input[type=color]{width:52px;height:46px;border:0;border-radius:12px;background:none;cursor:pointer;padding:0}
.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:12px}
.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.color-field .meta{flex:1}
.color-field .meta label{font-weight:600;font-size:.9rem;display:block}
.color-field .meta .hex{font-size:.78rem;color:var(--c-muted);font-family:monospace}

/* preset swatches */
.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.preset{border:2px solid transparent;border-radius:16px;padding:1rem;cursor:pointer;background:var(--c-bg);transition:.2s;text-align:left}
.preset:hover{transform:translateY(-3px)}
.preset.active{border-color:var(--c-primary)}
.preset .swatches{display:flex;gap:.3rem;margin-bottom:.6rem}
.preset .sw{width:26px;height:26px;border-radius:8px}
.preset .nm{font-size:.85rem;font-weight:700}

/* preview pane */
.theme-preview{position:sticky;top:1.5rem}
.tp-card{border-radius:var(--radius);overflow:hidden;border:1px solid color-mix(in srgb,var(--c-text) 10%,transparent)}
.tp-hero{background:var(--brand-gradient);color:#fff;padding:1.6rem}
.tp-hero .e{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
.tp-hero h4{color:#fff;font-size:1.3rem;margin:.3rem 0}
.tp-body{padding:1.2rem;background:var(--c-surface)}
.tp-chip{display:inline-block;background:var(--c-bg-soft);color:var(--c-primary-dark);padding:.4rem .8rem;border-radius:100px;font-size:.8rem;font-weight:700;margin:.2rem}
.tp-btn{display:inline-block;background:var(--brand-gradient);color:#fff;padding:.6rem 1.2rem;border-radius:100px;font-weight:700;font-size:.85rem;margin-top:.6rem}

/* table */
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th{text-align:left;padding:.8rem;color:var(--c-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--c-bg-soft)}
.table td{padding:.85rem .8rem;border-bottom:1px solid var(--c-bg-soft);vertical-align:middle}
.table tr:hover td{background:var(--c-bg-soft)}
.pill{display:inline-block;padding:.25rem .7rem;border-radius:100px;font-size:.74rem;font-weight:700}
.pill-on{background:color-mix(in srgb,var(--c-primary) 16%,transparent);color:var(--c-primary-dark)}
.pill-off{background:#eee;color:#888}
.pill-role{background:var(--c-bg-soft);color:var(--c-primary-dark)}

.switch{position:relative;display:inline-block;width:46px;height:26px}
.switch input{display:none}
.switch .sl{position:absolute;inset:0;background:#ccc;border-radius:100px;cursor:pointer;transition:.2s}
.switch .sl::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+.sl{background:var(--c-primary)}
.switch input:checked+.sl::before{transform:translateX(20px)}

.admin-mobile-bar{display:none}
@media(max-width:880px){
  .admin-shell{grid-template-columns:1fr}
  .admin-side{position:fixed;left:0;top:0;bottom:0;z-index:80;transform:translateX(-100%);transition:.3s;width:264px}
  .admin-side.open{transform:none}
  .admin-mobile-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--c-surface);position:sticky;top:0;z-index:40;border-bottom:1px solid var(--c-bg-soft)}
  .grid2,.grid3,.stat-row{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .preset-grid{grid-template-columns:repeat(2,1fr)}
}
