:root{color-scheme:dark;--bg:#080b20;--surface:#12152e;--raised:#191b38;--stroke:#2d2e50;--text:#f8f3ff;--muted:#a5a5c5;--brand:#d98aff;--lavender:#a88bff;--green:#76d9bd;--red:#ff899e;--radius:16px}*{box-sizing:border-box}body{margin:0;font:15px 'Nunito Sans',Arial,sans-serif;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand)}button{color:inherit}button:disabled{cursor:wait;opacity:.55}.icon{width:20px;height:20px;flex:none;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.2;letter-spacing:-1px;margin-bottom:8px}h2{font-size:19px;letter-spacing:-.3px}h3{font-size:16px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;line-height:1.5}.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--brand);text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--stroke);border-radius:9px;padding:9px 15px;font-weight:800;background:var(--raised);white-space:nowrap}.button:hover{border-color:var(--brand);background:#242040}.button.primary{background:var(--brand);color:#261033;border-color:var(--brand)}.button.primary:hover{background:#e5b0ff}.button.danger{color:var(--red);background:#331b2c;border-color:#633347}.button.ghost{background:transparent}.button.small{min-height:32px;padding:5px 9px;font-size:12px}.button.full{width:100%}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--stroke);padding:4px 9px;font-size:11px;font-weight:900;border-radius:20px;white-space:nowrap;background:#1c1c3a}.badge.live{color:var(--green);border-color:#335a50;background:#12342f}.badge.live:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green)}.badge.offline{color:var(--muted)}.badge.pending{color:#ffc993;background:#32251f;border-color:#715640}.badge.playing{color:var(--brand)}.badge.fulfilled{color:var(--green)}.badge.rejected{color:var(--red)}.error{color:var(--red);background:#351a2c;border:1px solid #643246;border-radius:10px;padding:12px;font-size:13px}.error:empty{display:none}.success{color:var(--green);background:#18332e;padding:12px;border-radius:10px}.success:empty{display:none}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:800}.field input,.field select,.field textarea,.search{width:100%;border:1px solid #3b365b;color:var(--text);background:#0d1026;border-radius:9px;padding:11px 12px;min-height:43px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand)}.field textarea{resize:vertical;min-height:86px}.field input[type=color]{padding:5px}.field input[type=checkbox]{width:auto;min-height:auto;accent-color:var(--brand)}.fields{display:grid;gap:16px}.fields.two{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.check{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.4}.check input{accent-color:var(--brand);width:16px;height:16px}.password-wrap{position:relative}.password-wrap input{padding-right:65px}.password-toggle{position:absolute;right:9px;top:9px;background:none;border:0;color:var(--muted);font-size:12px;padding:4px}.auth-layout{min-height:100vh;display:grid;grid-template-columns:52% 48%;background:radial-gradient(ellipse at 90% 20%,#31134866,transparent 65%),var(--bg)}.auth-left{padding:40px max(30px,7vw);display:flex;flex-direction:column;align-items:start;justify-content:center}.auth-brand{width:240px;margin-bottom:40px}.auth-brand img{display:block;width:100%}.auth-form{width:100%;max-width:400px}.auth-form h1{font-size:37px;margin:12px 0}.auth-form>.muted{line-height:1.6;margin-bottom:28px}.auth-form .fields{gap:18px}.auth-links{display:flex;justify-content:space-between;gap:15px;font-size:13px;margin-top:22px;color:var(--muted)}.auth-links a:hover{color:var(--brand)}.auth-art{display:flex;align-items:center;justify-content:center;overflow:hidden;border-left:1px solid var(--stroke);position:relative}.auth-art img{width:125%;max-width:none;image-rendering:pixelated}.auth-caption{position:absolute;bottom:7%;left:10%;right:10%;background:#0b0d27ed;border:1px solid #483365;padding:20px;border-radius:16px}.auth-caption strong{font-size:20px}.auth-caption p{margin:7px 0 0;color:var(--muted)}.app-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#0c0f27;border-right:1px solid var(--stroke);padding:14px 14px 18px;display:flex;flex-direction:column;z-index:20}.sidebar-logo{display:block;height:104px;overflow:hidden;margin-bottom:4px}.sidebar-logo img{width:202px;height:auto;margin-top:-8px}.sidebar-label{font-size:10px;color:#797897;letter-spacing:1.5px;font-weight:900;margin:17px 13px 10px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:9px;color:#b2adc9;font-weight:700;font-size:13px}.nav-item:hover{background:#1c1b36;color:#fff}.nav-item.active{background:#352046;color:#eba5ff;box-shadow:inset 3px 0 0 var(--brand)}.sidebar-bottom{margin-top:auto;padding-top:22px}.sidebar-user{display:flex;gap:10px;align-items:center;padding:10px;border-top:1px solid var(--stroke)}.sidebar-user img{width:40px;height:48px;object-fit:cover;object-position:top;image-rendering:pixelated;border-radius:8px;background:#3b2857}.sidebar-user strong{font-size:13px;display:block}.sidebar-user small{font-size:11px;color:var(--muted)}.app-main{grid-column:2;min-width:0}.topbar{height:78px;border-bottom:1px solid var(--stroke);display:flex;justify-content:space-between;align-items:center;padding:0 34px;background:#0d1028;gap:12px;position:sticky;top:0;z-index:10}.topbar-title{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center}.topbar-title b{color:var(--text)}.topbar-actions{display:flex;gap:14px;align-items:center}.topbar-clock{color:var(--muted);font-size:12px}.menu-toggle{display:none}.content{max-width:1550px;margin:auto;padding:30px 34px 50px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-heading p{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.card{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius);padding:20px;min-width:0}.stat-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.stat-icon{background:#2d2344;color:var(--brand);padding:8px;border-radius:9px;display:flex}.stat-value{font-size:31px;letter-spacing:-1px;font-weight:900;margin:12px 0 2px}.stat-note{color:var(--muted);font-size:11px}.columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:22px;margin-bottom:22px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.card-heading h2{margin:0}.live-card{background:linear-gradient(140deg,#2b1844,#14162f);border-color:#653b83;position:relative;overflow:hidden}.live-host{display:flex;gap:18px;align-items:center;margin:22px 0}.live-avatar{width:82px;height:110px;border-radius:11px;background:#a566db;image-rendering:pixelated;object-fit:cover;object-position:top}.live-host h3{font-size:23px;margin-bottom:4px}.live-host p{margin-bottom:6px;color:#c2b6d8;font-size:13px}.live-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #573c70;padding-top:17px;margin-bottom:20px}.live-details small{display:block;color:#bdaacb;font-size:11px;margin-bottom:4px}.live-details strong{font-size:13px}.card .button.full{margin-top:7px}.chart{height:228px;position:relative;padding:12px 0 30px}.chart svg{width:100%;height:100%;overflow:visible}.chart-labels{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:10px}.chart-tooltip{color:var(--brand);font-size:12px;text-align:right}.chart-empty{height:228px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:12px;text-align:center;border:1px dashed #4c426b;border-radius:10px;padding:24px}.chart-empty .icon{width:35px;height:35px;color:var(--lavender)}.activity{display:flex;flex-direction:column;gap:16px}.activity-row{display:flex;gap:12px;align-items:start;font-size:12px;line-height:1.5}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);margin-top:4px;flex:none}.activity-row small{display:block;color:var(--muted);margin-top:2px}.slot-list{display:flex;flex-direction:column;gap:12px}.slot-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--stroke);padding-bottom:12px}.slot-row:last-child{border:0;padding-bottom:0}.slot-time{border-radius:8px;background:#2b2441;min-width:59px;padding:9px 7px;text-align:center;color:var(--brand);font-weight:900;font-size:12px}.slot-row strong{display:block;font-size:13px}.slot-row small{font-size:11px;color:var(--muted)}.empty{padding:35px 20px;text-align:center;color:var(--muted);border:1px dashed var(--stroke);border-radius:12px;line-height:1.6}.empty .icon{width:30px;height:30px;color:var(--brand);display:block;margin:0 auto 12px}.empty strong{display:block;color:#e3d9f4;margin-bottom:5px}.empty p{margin:0;font-size:13px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.search{max-width:310px;font-size:13px;min-height:40px}.toolbar select{background:var(--surface);color:var(--text);border:1px solid var(--stroke);border-radius:9px;padding:9px 12px;min-height:40px}.table-wrap{width:100%;overflow:auto;border:1px solid var(--stroke);border-radius:12px;background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#a59ab7;font-size:11px;letter-spacing:.5px;font-weight:900;padding:13px 16px;background:#1a1a34;white-space:nowrap}td{padding:15px 16px;border-top:1px solid #292844;vertical-align:middle}td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}td strong{font-size:13px}td .actions{display:flex;gap:6px;justify-content:flex-end}.table-wrap td:first-child{min-width:150px}.table-wrap td audio{max-width:210px;height:32px}.avatar-name{display:flex;gap:10px;align-items:center}.avatar-name img{width:34px;height:44px;object-fit:cover;object-position:top;background:#332746;border-radius:6px;image-rendering:pixelated}.request-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.request{padding:20px;background:var(--surface);border:1px solid var(--stroke);border-radius:14px}.request.playing{border-color:var(--brand);background:#211832}.request .request-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px}.request h3{font-size:20px;margin:0 0 3px}.request .artist{color:var(--muted);margin-bottom:16px;font-size:13px}.request blockquote{margin:12px 0 18px;background:#0d1128;border-left:2px solid #9c70c7;padding:11px 13px;color:#c5bbd8;font-size:13px;line-height:1.5}.request .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.request-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:14px}.queue-header{padding:16px 20px;border-radius:12px;background:#211b36;border:1px solid #49305c;margin-bottom:20px;font-size:13px;display:flex;gap:10px;align-items:center}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;min-width:980px}.week-wrap{overflow-x:auto}.week-day{background:#10142c;border:1px solid var(--stroke);border-radius:12px;min-height:280px;padding:10px}.day-label{display:block;font-size:12px;font-weight:900;text-align:center;padding:9px;border-bottom:1px solid var(--stroke);margin-bottom:12px;color:#c9bedc}.week-slot{display:block;width:100%;text-align:left;border:1px solid #604582;border-radius:9px;background:#332247;padding:12px 9px;margin-bottom:10px;color:#f0defe}.week-slot strong{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.week-slot small{display:block;font-size:11px;color:#d0badc;margin-top:8px}.week-slot .time{color:#e7a9ff;font-size:11px;font-weight:900;display:block;margin-bottom:7px}.week-empty{text-align:center;color:#635e7e;font-size:11px;padding-top:40px}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.role-card h2{margin-bottom:6px}.role-card p{font-size:12px;color:var(--muted);margin-bottom:20px}.permission-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.permission-list span{font-size:10px;background:#24203b;padding:5px 7px;border-radius:5px;color:#c4b6d7}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px;background:#0e1128;border-radius:10px}.pagination{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:17px;color:var(--muted);font-size:12px}.audit-details{max-width:420px;overflow-wrap:anywhere;font-size:11px;color:#a8a0bd;white-space:pre-wrap}.settings-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:22px}.setting-note{padding:15px;background:#201a32;border:1px solid #4b365f;border-radius:10px;font-size:12px;line-height:1.6;color:#c9b6d8;margin-bottom:16px}.integration-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--stroke);padding:12px 0;font-size:13px}.integration-line:last-child{border:0}.integration-line span{color:var(--muted)}dialog{border:1px solid #56426e;border-radius:18px;background:#15152e;color:var(--text);padding:28px;width:min(600px,calc(100% - 32px));max-height:90vh;overflow:auto;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#050719c9;backdrop-filter:blur(3px)}dialog h2{font-size:24px;margin-bottom:22px}.dialog-close{position:absolute;top:14px;right:14px;background:transparent;border:0;padding:4px;color:var(--muted)}.toast{position:fixed;bottom:24px;right:24px;z-index:60;max-width:420px;border:1px solid #63507d;padding:14px 18px;border-radius:12px;background:#28213b;box-shadow:0 12px 40px #0006;color:#f4e8ff;font-size:13px;display:none}.toast.visible{display:block}.loading{padding:70px 10px;color:var(--muted);text-align:center}.mobile-backdrop{display:none}.privacy-note{font-size:11px;color:var(--muted);margin-top:20px}body[data-loading=true] .content{opacity:.7}
@media(min-width:1800px){.content{padding-top:40px}.cards{gap:22px}.card{padding:24px}}
@media(max-width:1200px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr 1fr}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:25px}.topbar{padding:0 25px}.topbar-clock{display:none}}
@media(max-width:900px){.app-layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px;padding:10px}.sidebar-logo{height:90px}.sidebar-logo img{width:170px}.nav-item{font-size:12px;padding:10px;gap:9px}.columns,.settings-layout{grid-template-columns:1fr}.request-grid{grid-template-columns:1fr}.content{padding:24px 20px}.topbar{padding:0 20px}.topbar-title{font-size:12px}.role-grid{grid-template-columns:1fr}.auth-left{padding:35px}.auth-form h1{font-size:32px}.auth-brand{width:200px}.auth-caption{left:5%;right:5%}}
@media(max-width:650px){.app-layout{display:block}.sidebar{transform:translateX(-100%);width:235px;transition:transform .2s}.sidebar-logo img{width:200px}.sidebar-logo{height:102px}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .mobile-backdrop{display:block;position:fixed;inset:0;background:#0009;z-index:19}.menu-toggle{display:flex;padding:7px;min-height:35px}.topbar{height:68px;padding:0 15px}.topbar-title>b:first-child{display:none}.topbar-title{gap:5px}.topbar-actions{gap:8px}.topbar-actions .button{font-size:0;padding:8px;min-height:34px}.topbar-actions .button .icon{font-size:initial}.content{padding:22px 16px 40px}.page-heading{align-items:start;gap:15px;flex-wrap:wrap;margin-bottom:22px}h1{font-size:27px}.page-heading p{font-size:12px}.cards{gap:10px}.card{padding:16px;border-radius:13px}.stat-head{font-size:11px}.stat-icon{padding:6px}.stat-icon .icon{width:17px;height:17px}.stat-value{font-size:27px}.stat-note{font-size:10px}.columns{gap:16px}.auth-layout{display:block}.auth-art{display:none}.auth-left{min-height:100vh;padding:25px;align-items:center}.auth-brand{width:220px;margin-bottom:22px}.auth-form h1{font-size:34px}.fields.two{grid-template-columns:1fr}.wide{grid-column:auto}.request{padding:17px}.role-grid{gap:14px}.permission-grid{grid-template-columns:1fr}.card-heading{flex-wrap:wrap}.chart{height:200px}.chart-empty{height:200px}.toast{bottom:15px;left:15px;right:15px;max-width:none}.toolbar .search{max-width:none;flex:1;min-width:160px}.table-wrap td audio{max-width:150px}dialog{padding:24px 18px}.sidebar-user strong{font-size:13px}.nav-item{font-size:13px}.live-details{gap:8px}.form-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.fansite-footer{color:#8c8ca8;font-size:11px;line-height:1.8;border-top:1px solid #292b43;padding:20px 36px;max-width:1100px;margin:25px auto}.fansite-footer a{color:#b2a2c6;text-decoration:none}.fansite-footer nav{display:flex;gap:20px;flex-wrap:wrap}.sidebar nav{overflow-y:auto;min-height:0;flex:1}.sidebar{overflow-y:auto}.sidebar-bottom{flex-shrink:0}.auth-page>.fansite-footer{position:relative;padding:18px 25px;max-width:650px}.auth-page{flex-wrap:wrap}.staff-declaration{padding:18px;border:1px solid #624060;border-radius:12px;margin-bottom:22px;background:#271b30}

/* Authentication pages must not inherit the application's full-height split. */
body[data-page=login],body[data-page=recuperar],body[data-page=redefinir]{min-width:0;display:flex;flex-direction:column;min-height:100dvh}
.auth-layout{min-height:calc(100dvh - 150px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex:1}
.auth-left{min-width:0;padding:32px clamp(24px,5vw,80px);align-items:center}
.auth-brand{max-width:100%;width:240px;flex:none;margin-bottom:20px}
.auth-brand img{width:100%;height:auto;object-fit:contain}
.auth-form{min-width:0;max-width:420px}
.auth-form .field,.auth-form .password-wrap{min-width:0}
.auth-form .fields{grid-template-columns:minmax(0,1fr)}
.auth-form input{min-width:0;width:100%}
.auth-art{min-width:0;isolation:isolate}
.auth-art>img{width:100%;height:100%;object-fit:contain;max-height:720px}
.auth-caption{bottom:24px;left:24px;right:24px}
body[data-page]>.fansite-footer{width:100%;max-width:1100px;margin:0 auto;padding:20px 24px;flex:none}
@media(max-width:760px){.auth-layout{display:block;min-height:auto}.auth-left{min-height:auto;padding:24px 22px 36px}.auth-brand{width:200px;margin-bottom:18px}.auth-form h1{font-size:30px}.auth-art{display:none}.auth-links{flex-wrap:wrap}.auth-form .fields{grid-template-columns:minmax(0,1fr)}}

.sidebar-logo{flex-shrink:0;height:104px;display:flex;align-items:center;justify-content:center}.sidebar-logo img{width:100%;height:100%;object-fit:contain;margin:0}.sidebar nav{gap:4px;overscroll-behavior:contain;scrollbar-width:thin}.nav-group{margin-top:6px}.nav-group summary{list-style:none;display:flex;justify-content:space-between;padding:10px 12px;cursor:pointer;font-size:11px;font-weight:800;color:#a9a2bd;letter-spacing:.7px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:hover{color:#eba5ff}.nav-group summary span{transition:transform .15s}.nav-group[open] summary span{transform:rotate(180deg)}.nav-group>div{display:grid;gap:3px}.nav-group summary:focus-visible{outline:2px solid #d98aff;border-radius:6px}.sidebar-bottom{padding-top:12px}.encoder-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.encoder-management{margin-bottom:20px;display:flex;align-items:center;gap:24px}.encoder-management .field{min-width:220px}.encoder-values{display:grid;gap:16px;margin:22px 0}.encoder-values input{font-family:monospace}.encoder-admin-actions{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid var(--stroke);margin-top:22px;padding-top:18px}.encoder-connection{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;font-size:13px}.encoder-connection dt{color:var(--muted)}.encoder-connection dd{margin:0;overflow-wrap:anywhere;font-weight:700}@media(max-width:900px){.encoder-layout{grid-template-columns:1fr}.encoder-management{display:block}.encoder-management .field{min-width:0}.encoder-management .hint{margin-top:12px}}

[hidden]{display:none!important}
