:root{
  --bg:#080c12;--panel:#0f1723;--panel2:#121c2a;--line:#243044;--text:#f8fafc;--muted:#94a3b8;
  --purple:#8b5cf6;--purple2:#6d28d9;--purple3:#a78bfa;--green:#22c55e;--danger:#ef4444;
  --shadow:0 20px 60px rgba(0,0,0,.28);--radius:18px
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at 80% 10%,#241445 0,transparent 26%),var(--bg);color:var(--text);font:15px/1.45 Inter,Segoe UI,Arial,sans-serif;min-height:100vh}
button,input{font:inherit} button{cursor:pointer}.hidden{display:none!important}
.topbar{height:82px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1c2636;background:rgba(8,12,18,.92);backdrop-filter:blur(18px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--purple),var(--purple2));display:grid;place-items:center;font-size:18px}.brand strong{display:block;font-size:22px}.brand span{color:var(--muted);font-size:12px}.top-nav{display:flex;gap:10px}.top-nav button{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:10px}.top-nav button:hover{background:#171f2c;color:#fff}
main{width:min(1180px,92vw);margin:0 auto;min-height:calc(100vh - 150px)}.auth-shell{display:grid;place-items:center;padding:86px 0}.auth-card{width:min(470px,92vw);background:linear-gradient(180deg,#111927,#0d141f);border:1px solid #202b3e;border-radius:24px;padding:38px;box-shadow:var(--shadow)}.auth-logo{font-size:25px;font-weight:800;margin-bottom:28px}.auth-logo span{color:var(--purple3)}h1,h2,h3,p{margin-top:0}.auth-card h1{font-size:28px;margin-bottom:8px}.auth-card p{color:var(--muted);margin-bottom:28px}.auth-card label,.modal label{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;color:#cbd5e1;margin:15px 0 7px}.auth-card input,.modal input{width:100%;background:#0a1019;color:#fff;border:1px solid #2c394e;border-radius:11px;padding:13px 14px;outline:none}.auth-card input:focus,.modal input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(139,92,246,.14)}
.primary,.secondary{border-radius:11px;padding:12px 18px;font-weight:800}.primary{background:linear-gradient(135deg,var(--purple),var(--purple2));border:0;color:#fff}.secondary{background:#111927;border:1px solid #334155;color:#e2e8f0}.auth-card .primary,.auth-card .secondary{width:100%;margin-top:13px}.compact{width:auto!important;padding:11px 16px!important}.message{margin-top:14px;min-height:20px;color:#fda4af;font-size:13px}.message.ok{color:#86efac}
.dashboard{padding:46px 0 60px}.hero-panel{background:linear-gradient(115deg,#101827,#17112a);border:1px solid #252f43;border-radius:var(--radius);padding:30px 34px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:24px}.hero-panel h1{font-size:30px;margin:5px 0}.hero-panel p{color:var(--muted);margin:0}.eyebrow{font-size:11px;color:var(--purple3);font-weight:900;letter-spacing:.12em}.view-panel{background:#0c131e;border:1px solid #202b3e;border-radius:var(--radius);overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid #202b3e}.section-heading>div{display:flex;gap:10px;align-items:center}.section-heading h2{font-size:20px;margin:0}.section-icon{color:var(--purple3);font-size:20px}.counter{font-size:12px;color:var(--muted);background:#121c2a;padding:6px 10px;border-radius:999px}
.playlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px}.playlist-card{background:#111a27;border:1px solid #263248;border-radius:15px;padding:20px;position:relative}.playlist-card.active{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple)}.playlist-card h3{font-size:19px;margin-bottom:7px}.playlist-meta{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.pill{padding:4px 8px;border-radius:999px;background:#1d2939}.pill.active{background:#123524;color:#86efac}.playlist-summary{color:#94a3b8;font-size:13px;margin:16px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-actions{display:flex;gap:8px}.card-actions button{background:#0c131e;color:#cbd5e1;border:1px solid #334155;border-radius:9px;padding:8px 10px}.card-actions button:hover{border-color:var(--purple);color:#fff}.card-actions .danger:hover{border-color:var(--danger);color:#fca5a5}
.device-list{padding:20px}.device-row{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:16px;align-items:center;padding:16px;border-bottom:1px solid #202b3e}.device-row:last-child{border-bottom:0}.device-name{font-weight:800}.device-sub{font-size:12px;color:var(--muted)}.device-row button{background:transparent;color:#fca5a5;border:1px solid #7f1d1d;border-radius:9px;padding:8px 10px}.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}.empty-state h3{color:#fff;margin-bottom:7px}.empty-icon{font-size:44px;color:var(--purple3);margin-bottom:8px}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,12,.78);display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(650px,96vw);max-height:90vh;overflow:auto;background:#0d1521;border:1px solid #2a364b;border-radius:20px;padding:26px;box-shadow:var(--shadow)}.modal-header{display:flex;justify-content:space-between;align-items:start}.modal-header h2{margin:5px 0}.icon-button{width:38px;height:38px;border-radius:10px;background:#151f2d;color:#cbd5e1;border:1px solid #334155;font-size:24px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.type-option{padding:13px;border-radius:11px;background:#111a27;color:#cbd5e1;border:1px solid #334155;font-weight:800}.type-option.active{background:#251a44;border-color:var(--purple);color:#fff}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-line{display:flex!important;align-items:center;gap:9px;margin-top:18px!important}.check-line input{width:auto!important}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}footer{text-align:center;color:#64748b;padding:25px;border-top:1px solid #182131;font-size:12px}
@media(max-width:760px){.topbar{padding:0 18px}.brand span{display:none}.top-nav button{padding:8px}.hero-panel{align-items:flex-start;gap:20px;flex-direction:column}.playlist-grid{grid-template-columns:1fr}.device-row{grid-template-columns:1fr}.two-columns{grid-template-columns:1fr}.auth-shell{padding:40px 0}}

/* Cadastro: textos de validação multilinha e orientação sobre o formato de usuário */
.message{white-space:pre-line}
.field-hint{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.4}

/* Painel master v1.1.0 */
.admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 24px}
.admin-stat{background:#111a27;border:1px solid #263248;border-radius:13px;padding:18px}
.admin-stat strong{display:block;font-size:26px;color:#fff}
.admin-stat span{color:var(--muted);font-size:12px}
.admin-controls{display:flex;align-items:center;gap:10px;padding:0 24px 16px}
.admin-controls input{flex:1;min-width:140px;background:#0a1019;border:1px solid #2c394e;border-radius:10px;color:#fff;padding:11px}
.admin-message{margin:0 24px 10px}
.admin-table-scroll{width:100%;overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;min-width:720px;text-align:left}
.admin-table th{font-size:12px;color:var(--muted);background:#121c2a;padding:13px 20px}
.admin-table td{border-top:1px solid #202b3e;padding:15px 20px;vertical-align:middle}
.admin-table td small{color:var(--muted);display:block}
.admin-table-actions{display:flex;gap:6px;flex-wrap:wrap}
.admin-table-actions button{background:#141e2c;color:#e2e8f0;border:1px solid #334155;border-radius:8px;padding:8px 10px;font-size:12px}
.admin-table-actions button.danger{color:#fecaca;border-color:#713035}
.admin-status{padding:5px 9px;border-radius:999px;font-size:12px;background:#3c2e18;color:#fde68a}
.admin-status.enabled{background:#123524;color:#86efac}
.admin-pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;padding:16px 24px;color:var(--muted);font-size:12px}
.modal-help{color:var(--muted);font-size:12px;margin-top:14px}
@media(max-width:760px){.top-nav{gap:0;flex-wrap:wrap}.topbar{height:auto;min-height:82px;gap:10px;padding:12px 16px;flex-wrap:wrap}.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin:16px}.admin-controls{padding:0 16px 14px;flex-wrap:wrap}.admin-pagination{padding:16px}}
