/* ViaOn Conecta v0.3.4 • visual premium with dedicated ROOT console. */
:root{--orange:#f47619;--ink:#1b2430;--bg:#f4f6f8;--stroke:#e2e7ed;--sub:#67727f}
html{scroll-behavior:smooth}body{background:#e9edf1}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
.messages{background-image:none!important;isolation:isolate}
.messages::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background-image:url('/fox-face-watermark.png');background-repeat:no-repeat;background-size:min(55%,350px);background-position:center 52%;opacity:.10}
[data-theme="dark"] .messages::before{opacity:.075}
/* Administration mode is distinct from chat mode, without duplicate sections on the dashboard. */
body.is-admin .shell{width:100%;max-width:1720px;box-shadow:0 10px 42px #10182313}
body.is-admin:not(.admin-chat-mode) .roomline,body.is-admin:not(.admin-chat-mode) .chat-nav,body.is-admin:not(.admin-chat-mode) #chatPanel,body.is-admin:not(.admin-chat-mode) #radioPanel,body.is-admin:not(.admin-chat-mode) .actions,body.is-admin:not(.admin-chat-mode) #peoplePanel,body.is-admin:not(.admin-chat-mode) main>.fine.center{display:none!important}
body.is-admin:not(.admin-chat-mode) main{padding:0 12px 20px}
body.is-admin .root-panel{display:grid;grid-template-columns:224px minmax(0,1fr);margin:14px 0;min-height:calc(100dvh - 115px);border:1px solid #e2e6ea;border-radius:18px;background:#f3f5f8;overflow:hidden;padding:0}
body.is-admin.admin-chat-mode #rootPanel{display:none!important}
body.is-admin.admin-chat-mode main{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:12px 16px;padding:0 22px 18px}
body.is-admin.admin-chat-mode .roomline,body.is-admin.admin-chat-mode .chat-nav{grid-column:1/-1}
body.is-admin.admin-chat-mode #chatPanel{grid-column:1;grid-row:3 / span 4;height:max(610px,calc(100dvh - 220px));display:flex;flex-direction:column;margin:0}
body.is-admin.admin-chat-mode #radioPanel{grid-column:2;grid-row:3;margin:0;display:flex;flex-direction:column;align-items:center}
body.is-admin.admin-chat-mode .actions{grid-column:2;grid-row:4;margin:0}
body.is-admin.admin-chat-mode #peoplePanel{grid-column:2;grid-row:5;margin:0}
body.is-admin.admin-chat-mode .messages{flex:1;max-height:none}
body.is-admin.admin-chat-mode .ptt{width:76px;height:76px}
body.is-admin.admin-chat-mode main>.fine.center{grid-column:1/-1}
body.is-admin .root-sidebar{background:#10161e;padding:24px 13px;min-height:0;gap:22px}
body.is-admin .root-sidebar-brand{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;font-size:27px;line-height:1;letter-spacing:-1px}
body.is-admin .root-sidebar-brand small{flex-basis:100%;font-size:11px;margin:6px 0 10px;color:#abb4c1}
.root-sidebar-icon{width:30px;height:30px;object-fit:contain;margin-right:4px}
.root-sidebar nav a{position:relative;font-size:13px;padding:13px 14px;border-radius:10px;line-height:1.2;color:#e1e6ec}
.root-sidebar nav a:first-child{background:var(--orange);color:white}
.root-sidebar nav a em{float:right;min-width:20px;text-align:center;padding:2px 5px;border-radius:8px;background:#f47619;color:white;font-size:10px;font-weight:900;font-style:normal}
.root-sidebar-foot{font-size:10px;color:#99a2af}
body.is-admin .root-dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px;padding:22px;background:#f4f6f8;align-content:start}
.root-dashboard>*{min-width:0}
.root-head,.root-kpis,.root-pending-banner,.root-quick-actions,.root-city-switch,.root-footer-note{grid-column:1/-1}
.root-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.root-head h2{font-size:clamp(21px,2vw,28px);line-height:1.15;margin:4px 0 7px;letter-spacing:-.9px}
.root-head-highlight{color:#f47619}
.root-head p{font-size:12px;color:#647081;max-width:530px;margin:0}
.root-head small{font-size:10px;color:#ea7017;letter-spacing:1.4px;font-weight:900}
.root-role-meta{display:flex;align-items:center;gap:13px;flex-wrap:wrap;justify-content:flex-end}
.root-online{color:#0c945a;font-size:12px;font-weight:800}
.root-shield{background:#1a2029;color:#ff9a43;border-radius:999px;font-size:11px;padding:10px 14px}
.root-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin:3px 0 0;gap:11px}
.root-kpis>div{background:#fff;border:1px solid #e2e7ee;border-radius:14px;padding:14px 12px 13px;box-shadow:0 4px 15px #192c4510;text-align:left;display:grid;grid-template-columns:32px 1fr;column-gap:9px;align-items:center}
.root-kpis i{grid-row:1 / span 2;font-size:25px;color:#f47619;font-style:normal;align-self:center}
.root-kpis strong{font-size:27px;color:#171c25;line-height:1.1}
.root-kpis small{font-size:11px;color:#6f7681;margin-top:2px}
.root-pending-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff6e9;border:1px solid #f3d1ac;border-left:4px solid #f47619;padding:12px 17px;border-radius:12px}
.root-pending-banner b{font-size:13px;color:#a54b0c}
.root-pending-banner small{display:block;font-size:11px;color:#8b6244;margin-top:3px}
.root-panel .root-pending-banner .root-orange{background:#f47619;color:white;padding:10px 15px;white-space:nowrap}
.root-quick-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.root-quick-actions>span{font-size:12px;color:#697583;font-weight:800;margin-right:3px}
.root-quick-actions button{font-size:12px!important;padding:10px 14px!important;background:#fff!important;border:1px solid #dfe5ec!important;color:#354153!important}
.root-city-switch{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#fff;border:1px solid #e4e7eb;border-radius:12px;flex-wrap:wrap}
.root-city-switch .root-label{margin:0;flex:1;min-width:200px}
.root-city-switch select{margin:3px 0 0;max-width:380px;padding:9px 10px}
.root-city-switch .root-inline{margin:0}
.root-dashboard>.root-section{margin:0;border:1px solid #e1e6ee;border-radius:14px;background:#fff;box-shadow:0 3px 13px #10141b0b;padding:17px;min-width:0}
#rootCitiesSection,#rootAccountsSection{grid-column:span 6}
#rootModerationSection,#rootAnnouncementsSection,#rootReportsSection,#rootSosSection,#rootAuditSection{grid-column:span 6}
.root-section>summary{font-size:15px;letter-spacing:-.15px;color:#1f2835;font-weight:850;cursor:pointer;margin-bottom:12px}
.root-list{max-height:380px;gap:8px}
.root-row{padding:11px;background:#f8fafc;border:1px solid #e5eaf0;border-radius:10px;gap:9px}
.root-row>span:first-child{font-size:12px;font-weight:750;color:#202b37;min-width:155px}
.root-row small{font-size:10px;font-weight:500;color:#7c8794;margin-top:3px}
.root-row-actions{justify-content:flex-start;gap:6px}
.root-row-actions button{font-size:11px!important;min-height:33px!important;padding:7px 11px!important;border-radius:8px!important}
.root-approve-btn{color:white!important;background:#198b57!important;border-color:#198b57!important;font-weight:800!important}
.root-account-status{flex:0 0 auto!important;min-width:unset!important;padding:4px 8px;font-size:10px!important;border-radius:7px;font-weight:800!important}
.root-account-status.is-pending{color:#a7550c!important;background:#fff0d9}.root-account-status.is-active{color:#157346!important;background:#e1f8ea}.root-account-status.is-blocked{color:#b63a35!important;background:#ffe8e7}
.root-account-admin{font-size:10px!important;font-weight:800!important;background:#e9edff;color:#424da5!important;padding:4px 7px;border-radius:6px;min-width:unset!important}
.root-account-controls{margin:10px 0}.root-account-controls input{height:39px;width:100%;border:1px solid #e0e6ec;border-radius:9px;padding:9px 12px;font-size:12px!important}
.root-account-filters{display:flex;gap:5px;overflow-x:auto;margin-top:8px}.root-account-filters button{flex:1 0 auto;min-width:70px;font-size:11px!important;padding:8px 9px!important;border-radius:8px!important}
.root-account-filters button.is-selected{background:#f47619!important;color:white!important;border-color:#f47619!important}
.root-pending-number{display:inline-block;font-size:10px;font-weight:850;background:#fff0e2;border-radius:6px;color:#ab520d;padding:4px 7px;margin-left:5px}
.root-empty{background:#f8fafc;padding:20px 14px;text-align:center;border-radius:10px;color:#697585;font-size:12px}
.root-footer-note{color:#77818e;text-align:center}
#rootAccountsSection .root-list{max-height:430px}
body.is-admin .top{min-height:70px;background:#11161e}
body.is-admin .brand b{font-size:23px}body.is-admin .brand small{color:#a2aab6}
@media(max-width:1180px){#rootCitiesSection,#rootAccountsSection,#rootModerationSection,#rootAnnouncementsSection,#rootReportsSection,#rootSosSection,#rootAuditSection{grid-column:1/-1}}
@media(max-width:760px){
body.is-admin .root-panel{grid-template-columns:minmax(0,1fr);border-radius:13px}
body.is-admin .root-sidebar{min-height:0;padding:13px;gap:7px}
body.is-admin .root-sidebar-brand{font-size:20px;justify-content:flex-start}
body.is-admin .root-sidebar-brand small{display:none}
.root-sidebar-icon{width:24px;height:24px}
.root-sidebar nav{display:flex;flex-direction:row;gap:5px;overflow-x:auto;scrollbar-width:none}
.root-sidebar nav a{white-space:nowrap;font-size:11px;padding:9px 11px}
.root-sidebar-foot{display:none}
body.is-admin .root-dashboard{padding:12px;gap:10px}
.root-head{align-items:flex-start;flex-direction:column;gap:8px}.root-head h2{font-size:21px}.root-head p{font-size:11px}
.root-role-meta{justify-content:flex-start}.root-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.root-kpis>div{padding:10px;grid-template-columns:25px 1fr;gap:5px}.root-kpis strong{font-size:22px}.root-kpis i{font-size:20px}.root-kpis small{font-size:10px}
.root-pending-banner{flex-direction:column;align-items:stretch;gap:9px}.root-pending-banner button{width:100%}
.root-dashboard>.root-section{padding:12px}
.root-city-switch{padding:10px;align-items:stretch;flex-direction:column}.root-city-switch .root-label{min-width:0}.root-city-switch .root-inline{flex-wrap:wrap}
body.is-admin.admin-chat-mode main{display:block;padding:0 9px}
body.is-admin.admin-chat-mode #chatPanel{height:auto;min-height:calc(100dvh - 200px)}
body.is-admin.admin-chat-mode #radioPanel{display:flex;margin-top:8px}
body.is-admin.admin-chat-mode .actions{display:grid;margin-top:8px}
body.is-admin.admin-chat-mode #peoplePanel{margin-top:8px}
}
[data-theme="dark"] .root-pending-banner{background:#392a20}
/* keep radio compact, chat readable in both night and day modes */
.ptt{width:68px;height:68px}.ptt span{font-size:23px}.ptt b{font-size:9px}
/* Override legacy high-specificity dashboard grid rules from the 0.3.3 stylesheet. */
body.is-admin .root-dashboard > #rootCitiesSection,
body.is-admin .root-dashboard > #rootAccountsSection,
body.is-admin .root-dashboard > #rootModerationSection,
body.is-admin .root-dashboard > #rootAnnouncementsSection,
body.is-admin .root-dashboard > #rootReportsSection,
body.is-admin .root-dashboard > #rootSosSection,
body.is-admin .root-dashboard > #rootAuditSection{grid-column:span 6}
body.is-admin .root-dashboard > .root-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
body.is-admin .root-kpis>div{display:grid;grid-template-columns:32px 1fr;gap:2px 9px;align-items:center;text-align:left}
body.is-admin .root-kpis i{grid-row:span 2}
@media(max-width:1180px){
 body.is-admin .root-dashboard > #rootCitiesSection,
 body.is-admin .root-dashboard > #rootAccountsSection,
 body.is-admin .root-dashboard > #rootModerationSection,
 body.is-admin .root-dashboard > #rootAnnouncementsSection,
 body.is-admin .root-dashboard > #rootReportsSection,
 body.is-admin .root-dashboard > #rootSosSection,
 body.is-admin .root-dashboard > #rootAuditSection{grid-column:1/-1}
}
@media(max-width:760px){body.is-admin .root-dashboard > .root-kpis{grid-template-columns:repeat(2,minmax(0,1fr))};body.is-admin .root-kpis>div{grid-template-columns:24px 1fr}}
