[hidden]{display:none!important}
:root{
 --brand:#2b587d;--brand-hover:#6795ba;--brand-soft:#edf4f8;
 --bg:#f5f7fa;--surface:#fff;--surface-2:#f8fafc;--text:#17212b;--muted:#6c7885;
 --border:#dee6ed;--shadow:0 12px 32px rgba(31,58,80,.07);
 --danger:#b42318;--danger-bg:#fff1f0;--ok:#177245;--ok-bg:#eef9f2;
 --warning:#9a6700;--warning-bg:#fff8e5;--violet:#6842a5;--cyan:#087e8b;
 --amber:#a95d00;--radius:15px;--sidebar:274px
}
html[data-theme="dark"]{
 --bg:#0f151b;--surface:#172028;--surface-2:#111920;--text:#edf3f7;--muted:#9ba9b5;
 --border:#2a3741;--shadow:0 16px 40px rgba(0,0,0,.2);--brand-soft:#172c3c;
 --danger-bg:#351d1c;--ok-bg:#173125;--warning-bg:#352d17
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--console-font,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);color:var(--text);background:var(--bg)}
a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:30}
.brand{height:76px;display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid var(--border)}
.brand img{width:42px;height:42px;object-fit:contain}.brand div{display:flex;flex-direction:column;min-width:0}
.brand strong{font-size:15px}.brand span{font-size:11px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.08em}.sidebar-close{display:none;margin-left:auto}
.nav-search{margin:15px 14px 8px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;display:flex;align-items:center;padding:0 10px;color:var(--muted)}
.nav-search input{border:0;background:transparent;outline:0;width:100%;padding:9px;font-size:13px}
.nav{padding:4px 12px 16px;overflow:auto;flex:1}.nav-group{margin-top:13px}
.nav-label{padding:7px 10px;font-size:10px;font-weight:900;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:10px;text-decoration:none;padding:9px 10px;margin:2px 0;border-radius:9px;color:var(--muted);font-size:13px;font-weight:650;transition:.18s}
.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:800}
.nav-icon{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:900}
.nav-item.active .nav-icon{background:var(--brand);color:#fff;border-color:var(--brand)}
.sidebar-footer{padding:14px;border-top:1px solid var(--border)}.user-mini{display:flex;align-items:center;gap:10px}
.avatar{width:35px;height:35px;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand-hover));color:#fff;display:grid;place-items:center;font-weight:900}
.user-mini>div:last-child{display:flex;flex-direction:column;min-width:0}.user-mini strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-mini span{font-size:10px;color:var(--muted);margin-top:2px}
.main{margin-left:var(--sidebar);min-height:100vh}
.topbar{height:66px;background:color-mix(in srgb,var(--surface) 93%,transparent);backdrop-filter:blur(15px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}
.topbar-title{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:700}.status-dot{width:8px;height:8px;border-radius:50%;background:#29a063;box-shadow:0 0 0 4px rgba(41,160,99,.1)}
.topbar-actions{display:flex;align-items:center;gap:8px}.top-link{font-size:12px;text-decoration:none;color:var(--muted);font-weight:700;padding:8px}
.icon-btn,.ghost-btn{border:1px solid var(--border);background:var(--surface);border-radius:9px;min-width:36px;height:36px;display:grid;place-items:center}
.ghost-btn{padding:0 12px;font-size:12px;font-weight:800}.menu-btn{display:none}
.page{padding:30px;max-width:1580px;margin:auto}
.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:25px}.page-head.compact{align-items:center}
.page-head h1{margin:3px 0 5px;font-size:30px;letter-spacing:-.035em}.page-head p{margin:0;color:var(--muted);max-width:780px;font-size:13px;line-height:1.55}
.eyebrow{font-size:10px;color:var(--brand-hover);font-weight:900;letter-spacing:.13em}.page-head-actions{display:flex;gap:9px;align-items:center}
.primary-btn,.secondary-btn{border:0;border-radius:10px;text-decoration:none;font-weight:850;font-size:12px;padding:11px 14px;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.primary-btn{background:var(--brand);color:#fff}.primary-btn:hover{background:var(--brand-hover)}.secondary-btn{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.wide{width:100%}.text-link{font-size:12px;font-weight:800;color:var(--brand);text-decoration:none}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:13px;margin-bottom:18px}
.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:17px;text-decoration:none;position:relative;overflow:hidden;box-shadow:var(--shadow);min-height:133px;display:flex;flex-direction:column;transition:.18s}
.metric-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand)}
.tone-danger:before{background:#d24a3a}.tone-violet:before{background:#7c59b7}.tone-amber:before{background:#d28b2d}.tone-green:before{background:#2c9563}.tone-cyan:before{background:#2f94a4}
.metric-label{font-size:11px;color:var(--muted);font-weight:800}.metric-value{font-size:33px;font-weight:900;margin-top:9px;letter-spacing:-.04em}
.metric-cta{font-size:11px;color:var(--brand);font-weight:850;margin-top:auto}.metric-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 30%,var(--border))}
.two-col{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.panel-head h2{font-size:16px;margin:0 0 3px}.panel-head p{font-size:11px;color:var(--muted);margin:0}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick{display:flex;gap:12px;align-items:center;border:1px solid var(--border);border-radius:11px;padding:13px;text-decoration:none;background:var(--surface-2)}
.quick>b{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:17px}.quick span{display:flex;flex-direction:column}
.quick strong{font-size:12px}.quick small{font-size:10px;color:var(--muted);margin-top:2px}
.health-list{display:flex;flex-direction:column;gap:10px}.health-row{display:flex;align-items:flex-start;gap:10px}.health-state{width:10px;height:10px;border-radius:50%;margin-top:4px;background:#9aa6af;flex:0 0 auto}
.health-state.ok{background:#2c9563}.health-state.warning{background:#d28b2d}.health-state.error{background:#d24a3a}.health-row div{display:flex;flex-direction:column}.health-row strong{font-size:12px}.health-row small{font-size:10px;color:var(--muted);margin-top:2px}

.table-panel{padding:0;overflow:hidden}.table-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;border-bottom:1px solid var(--border)}
.searchbox{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:0 10px;min-width:310px}
.searchbox input{border:0;background:transparent;outline:0;padding:9px;width:100%;font-size:12px}.record-count{font-size:11px;color:var(--muted);font-weight:700}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;padding:10px 14px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
td strong{font-size:12px}.cell-note{display:block;color:var(--muted);font-size:10px;margin-top:3px;max-width:440px}
.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);border:1px solid var(--border)}
.badge.ok{color:var(--ok);background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 25%,var(--border))}
.badge.warning{color:var(--warning);background:var(--warning-bg);border-color:color-mix(in srgb,var(--warning) 25%,var(--border))}
.badge.danger{color:var(--danger);background:var(--danger-bg)}.badge.primary{color:var(--brand);background:var(--brand-soft)}
.badge.violet{color:var(--violet);background:color-mix(in srgb,var(--violet) 10%,var(--surface))}.badge.muted{color:var(--muted)}
.actions{display:flex;gap:5px;justify-content:flex-end;align-items:center}.actions form{display:inline}
.table-btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 8px;text-decoration:none;font-size:10px;font-weight:800;white-space:nowrap}.table-btn.danger{color:var(--danger)}
.panel-note{padding:12px 16px;font-size:11px;color:var(--muted);background:var(--surface-2);border-top:1px solid var(--border)}
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.span-2{grid-column:1/-1}.form-stack{display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:11px;font-weight:850}.field>span small{font-weight:500;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:10px 11px;outline:0;font-size:12px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-hover) 15%,transparent)}.field textarea{resize:vertical}
.check-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:11px;background:var(--surface-2)}
.check-card span{display:flex;flex-direction:column}.check-card strong{font-size:11px}.check-card small{font-size:10px;color:var(--muted)}.sticky-panel{align-self:start;position:sticky;top:88px}
.admin-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-decoration:none;box-shadow:var(--shadow);min-height:170px;display:flex;flex-direction:column;align-items:flex-start;transition:.18s}
.admin-card h2{font-size:17px;margin:16px 0 6px}.admin-card p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}.admin-card b{font-size:11px;color:var(--brand);margin-top:auto}.admin-card:hover{transform:translateY(-2px);border-color:var(--brand-hover)}
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.module-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;justify-content:space-between;min-height:178px;box-shadow:var(--shadow)}
.module-card h2{font-size:15px;margin:13px 0 5px}.module-card p{font-size:11px;color:var(--muted);line-height:1.5;margin:0}
.switch-btn{margin-top:18px;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:850;display:flex;align-items:center;gap:7px}
.switch-btn span{width:8px;height:8px;border-radius:50%;background:#9aa6af}.switch-btn.on span{background:#29a063}.switch-btn.on{color:var(--ok)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.kv-list{display:flex;flex-direction:column}.kv-list>div{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.kv-list span{font-size:11px;color:var(--muted)}code{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:2px 5px;word-break:break-all}
.permission-wrap{display:flex;flex-direction:column;gap:14px}.permission-module{padding:0;overflow:hidden}.permission-module .panel-head{padding:17px 18px;margin:0;border-bottom:1px solid var(--border)}
.permission-table{display:flex;flex-direction:column}.permission-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:13px 18px;border-bottom:1px solid var(--border)}.permission-row:last-child{border:0}
.permission-copy{display:flex;flex-direction:column;gap:3px}.permission-copy strong{font-size:12px}.permission-copy small{font-size:10px;color:var(--muted)}.permission-copy code{width:max-content;margin-top:4px}
.permission-roles{display:flex;gap:5px;align-items:center}.perm-toggle input{position:absolute;opacity:0;pointer-events:none}
.perm-toggle span{display:grid;place-items:center;width:40px;height:31px;border:1px solid var(--border);border-radius:8px;font-size:9px;font-weight:900;color:var(--muted);cursor:pointer}
.perm-toggle input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}.perm-toggle input:disabled+span{opacity:.65;cursor:not-allowed}
.health-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.health-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.health-card.error{border-left:3px solid #d24a3a}.health-card.warning{border-left:3px solid #d28b2d}.health-card.ok{border-left:3px solid #2c9563}
.health-card-top{display:flex;align-items:flex-start;gap:11px}.health-card-top>div{flex:1}.health-card h2{font-size:14px;margin:0 0 4px}.health-card p{font-size:11px;color:var(--muted);margin:0}
.health-card details{margin-top:13px;border-top:1px solid var(--border);padding-top:10px}.health-card summary{font-size:10px;font-weight:850;color:var(--brand);cursor:pointer}.health-card ul{font-size:10px;color:var(--muted);padding-left:17px}
.notification-list{display:flex;flex-direction:column;gap:8px}.notification-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;gap:11px;text-decoration:none}
.notification-item.unread{border-left:3px solid var(--brand)}.notification-dot{width:8px;height:8px;border-radius:50%;background:#a7b2bb;margin-top:5px}.notification-item.unread .notification-dot{background:var(--brand-hover)}
.notification-item div{display:flex;flex-direction:column}.notification-item strong{font-size:12px}.notification-item p{font-size:11px;color:var(--muted);margin:4px 0}.notification-item small{font-size:9px;color:var(--muted)}

.toast{position:fixed;right:24px;top:80px;z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 13px;box-shadow:0 18px 50px rgba(0,0,0,.15);display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;max-width:420px;font-size:11px}
.toast.success{border-left:3px solid var(--ok)}.toast.danger{border-left:3px solid var(--danger)}.toast button{border:0;background:transparent;color:var(--muted);font-size:16px}
.role-editor[hidden],.modal-backdrop[hidden]{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80}
.role-editor{position:fixed;z-index:90;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;width:min(520px,90vw);box-shadow:0 30px 90px rgba(0,0,0,.3)}
.role-editor h3{margin:0 0 14px}.role-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.role-checks label{border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;gap:9px;align-items:flex-start}
.role-checks span{display:flex;flex-direction:column}.role-checks strong{font-size:11px}.role-checks small{font-size:9px;color:var(--muted)}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}
.login-body{min-height:100vh;background:var(--surface)}.login-grid{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}
.login-hero{background:linear-gradient(145deg,#15324a 0%,#2b587d 58%,#3c6d93 100%);color:#fff;padding:42px 55px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.login-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-180px;bottom:-240px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}
.login-brand{display:flex;align-items:center;gap:12px;z-index:1}.login-brand img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.2))}
.login-brand div{display:flex;flex-direction:column}.login-brand strong{font-size:14px}.login-brand span{font-size:10px;opacity:.72;letter-spacing:.1em;text-transform:uppercase}
.hero-copy{margin:auto 0;max-width:720px;z-index:1}.hero-copy .eyebrow{color:#a7c8df}.hero-copy h1{font-size:clamp(42px,5vw,72px);line-height:.99;margin:16px 0 22px;letter-spacing:-.055em}
.hero-copy h1 em{font-style:normal;color:#b6d1e4}.hero-copy p{font-size:15px;line-height:1.65;max-width:590px;color:rgba(255,255,255,.78)}
.hero-foot{font-size:10px;color:rgba(255,255,255,.55);z-index:1}
.login-panel{display:grid;place-items:center;padding:30px;background:var(--bg)}.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:35px;box-shadow:0 24px 70px rgba(31,58,80,.12)}
.login-card .pill{display:inline-flex;background:var(--ok-bg);color:var(--ok);border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;text-transform:uppercase}
.login-card h2{font-size:26px;margin:16px 0 7px;letter-spacing:-.035em}.login-card>p{font-size:12px;color:var(--muted);line-height:1.55;margin:0 0 22px}
.login-notes{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;color:var(--muted);font-size:9px}.inline-alert{padding:10px;border-radius:9px;font-size:11px;margin-bottom:15px}.inline-alert.danger{background:var(--danger-bg);color:var(--danger)}
.logo-mobile{display:none}.error-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--bg)}
.error-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:35px;max-width:480px;text-align:center;box-shadow:var(--shadow)}
.error-code{font-size:52px;font-weight:950;color:var(--brand);opacity:.25}.error-card h1{margin:0}.error-card p{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:20px}
.empty-state{padding:60px;text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:14px}.empty-state b{font-size:30px;color:var(--ok)}.empty-state h3{margin:8px 0 3px}.empty-state p{margin:0;color:var(--muted);font-size:11px}
.sidebar-backdrop{display:none}
@media(max-width:1200px){
 .metric-grid{grid-template-columns:repeat(3,1fr)}
 .module-grid,.admin-card-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
 .sidebar{transform:translateX(-100%);transition:.22s}.sidebar.open{transform:translateX(0)}.sidebar-close{display:grid}
 .sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:25}
 .main{margin-left:0}.menu-btn{display:grid}.page{padding:20px}
 .two-col,.form-layout,.settings-grid,.health-cards{grid-template-columns:1fr}.sticky-panel{position:static}
 .login-grid{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh}.logo-mobile{display:block}.logo-mobile img{width:58px}
 .permission-row{grid-template-columns:1fr}.permission-roles{overflow:auto}
}
@media(max-width:650px){
 .metric-grid{grid-template-columns:1fr 1fr}.module-grid,.admin-card-grid,.quick-grid{grid-template-columns:1fr}
 .page-head{align-items:flex-start;flex-direction:column}.page-head-actions{width:100%}.page-head-actions>*{flex:1}
 .topbar{padding:0 14px}.top-link{display:none}.page{padding:16px}
 .searchbox{min-width:0;width:100%}.table-tools{align-items:flex-start;flex-direction:column}
 .form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.role-checks{grid-template-columns:1fr}
 .login-card{padding:25px}.metric-value{font-size:28px}
}

/* v0.2 · Migración guiada + agenda operativa */
.admin-card-featured{grid-column:span 2;background:linear-gradient(135deg,var(--brand-soft),var(--surface));border-color:rgba(103,149,186,.5)}
.admin-card-featured h2{font-size:20px}.admin-card-featured p{max-width:560px}
.migration-head{margin-bottom:18px}.migration-source{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:10px;font-weight:850;color:var(--muted)}
.migration-summary{display:grid;grid-template-columns:1.4fr .8fr;gap:18px;background:linear-gradient(135deg,#17354e,#2b587d);color:#fff;border-radius:18px;padding:24px 26px;margin-bottom:18px;box-shadow:var(--shadow)}
.migration-summary-main{display:flex;flex-direction:column;align-items:flex-start}.migration-kicker{font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#b9d4e6}.migration-summary-main>strong{font-size:27px;letter-spacing:-.035em;margin:7px 0}.migration-summary-main p{font-size:11px;line-height:1.6;color:rgba(255,255,255,.72);margin:0;max-width:700px}
.migration-summary-side{display:flex;flex-direction:column;justify-content:center;gap:9px}.migration-summary-side>div{display:grid;grid-template-columns:125px 1fr;gap:10px;border-bottom:1px solid rgba(255,255,255,.12);padding:7px 0}.migration-summary-side span{font-size:9px;color:rgba(255,255,255,.58)}.migration-summary-side strong{font-size:10px;word-break:break-all}
.migration-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;margin-bottom:14px}.migration-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}.migration-toolbar strong{font-size:12px}.migration-toolbar span{font-size:10px;color:var(--muted)}.migration-toolbar-actions{display:flex;gap:8px;flex-shrink:0}
.migration-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.migration-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.migration-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand)}.migration-card.tone-green:before{background:#2d9b68}.migration-card.tone-violet:before{background:#7e59bd}.migration-card.tone-danger:before{background:#d15a50}.migration-card.tone-amber:before{background:#c98a2a}.migration-card.tone-cyan:before{background:#168e9a}.migration-card.tone-muted:before{background:#84919b}
.migration-card.is-warning{opacity:.78}.migration-card-top{display:flex;align-items:flex-start;gap:12px}.migration-icon{width:34px;height:34px;border-radius:10px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:950;flex:0 0 auto}.migration-card-copy{flex:1;min-width:0}.migration-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.migration-title-line h2{font-size:14px;margin:0}.migration-card-copy p{font-size:10px;line-height:1.55;color:var(--muted);margin:5px 0 0}
.migration-check{position:relative;flex:0 0 auto}.migration-check input{position:absolute;opacity:0;pointer-events:none}.migration-check span{display:block;width:38px;height:22px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);position:relative;transition:.18s}.migration-check span:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#a8b3bc;left:2px;top:2px;transition:.18s}.migration-check input:checked+span{background:var(--brand);border-color:var(--brand)}.migration-check input:checked+span:after{left:18px;background:#fff}.migration-check input:disabled+span{opacity:.45}
.migration-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:15px}.migration-facts>div{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}.migration-facts span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.migration-facts strong{font-size:10px;line-height:1.3}.migration-note{font-size:9px;color:var(--muted);margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.migration-explainer{margin-top:14px;display:flex;gap:13px;align-items:flex-start}.explainer-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok);font-weight:950}.migration-explainer h2{font-size:13px;margin:0 0 4px}.migration-explainer p{font-size:10px;line-height:1.55;color:var(--muted);margin:0}.migration-last-run{margin-top:14px}.migration-last-run summary{cursor:pointer;font-size:11px;font-weight:850}.migration-last-run pre{font:10px/1.5 "SFMono-Regular",Consolas,monospace;white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:10px;padding:12px;border:1px solid var(--border)}
.event-section{margin-bottom:22px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:0 0 10px}.section-title h2{font-size:17px;margin:2px 0 0}.section-note{font-size:9px;color:var(--muted)}.event-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.event-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px;box-shadow:var(--shadow);min-height:150px}.event-card.is-live{border-color:rgba(44,149,99,.55);background:linear-gradient(135deg,var(--ok-bg),var(--surface))}.event-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.event-date{font-size:9px;font-weight:850;color:var(--muted)}.event-card h3{font-size:13px;line-height:1.35;margin:15px 0 6px}.event-card>p{font-size:10px;color:var(--muted);line-height:1.45;margin:0}.event-meta{margin-top:14px;padding-top:9px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:3px;font-size:8px;color:var(--muted)}.compact-cards{grid-template-columns:repeat(3,1fr)}
.history-panel{padding:0;overflow:hidden}.history-panel>summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.history-panel>summary::-webkit-details-marker{display:none}.history-panel>summary span{display:flex;flex-direction:column;gap:3px}.history-panel>summary strong{font-size:13px}.history-panel>summary small{font-size:9px;color:var(--muted)}.history-panel>summary>b{font-size:9px;color:var(--brand)}.history-panel[open]>summary{border-bottom:1px solid var(--border)}.history-tools{padding:12px 15px;margin:0}
@media(max-width:1200px){.event-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.migration-summary{grid-template-columns:1fr}.migration-grid{grid-template-columns:1fr}.migration-toolbar{align-items:flex-start;flex-direction:column}.migration-toolbar-actions{width:100%}.migration-toolbar-actions>*{flex:1}.admin-card-featured{grid-column:auto}}
@media(max-width:650px){.event-card-grid,.compact-cards{grid-template-columns:1fr}.migration-summary{padding:20px}.migration-summary-side>div{grid-template-columns:1fr}.migration-facts{grid-template-columns:1fr}.migration-toolbar-actions{flex-direction:column}}
.ticket-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.ticket-status-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 17px;display:grid;grid-template-columns:1fr auto;gap:3px 12px;box-shadow:var(--shadow)}.ticket-status-card span{font-size:10px;font-weight:850;color:var(--muted)}.ticket-status-card strong{grid-row:1/3;grid-column:2;font-size:27px;align-self:center}.ticket-status-card small{font-size:9px;color:var(--muted)}.ticket-status-card.is-pending{border-left:3px solid #d05b50}.ticket-status-card.is-replied{border-left:3px solid #2c9563}.ticket-focus-section{margin-bottom:18px}.ticket-card-list{display:flex;flex-direction:column;gap:8px}.ticket-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.ticket-card-id{font-size:10px;font-weight:900;color:var(--muted);min-width:48px}.ticket-card-body{display:flex;flex-direction:column;gap:3px;flex:1}.ticket-card-body strong{font-size:12px}.ticket-card-body span{font-size:9px;color:var(--muted)}.standalone-transition-note{margin-top:12px}
@media(max-width:650px){.ticket-status-grid{grid-template-columns:1fr}.ticket-card{align-items:flex-start;flex-wrap:wrap}.ticket-card-body{min-width:180px}}
.migration-dashboard-banner{display:flex;align-items:center;gap:12px;text-decoration:none;background:linear-gradient(135deg,var(--brand-soft),var(--surface));border:1px solid rgba(103,149,186,.55);border-radius:14px;padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow)}.migration-dashboard-icon{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:900}.migration-dashboard-banner>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.migration-dashboard-banner strong{font-size:11px}.migration-dashboard-banner small{font-size:9px;color:var(--muted)}.migration-dashboard-banner b{font-size:9px;color:var(--brand)}
@media(max-width:650px){.migration-dashboard-banner{align-items:flex-start;flex-wrap:wrap}.migration-dashboard-banner b{width:100%;padding-left:46px}}

/* v0.3 · Solicitudes ATC nativas */
.danger-btn{border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));background:var(--danger-bg);color:var(--danger);border-radius:10px;text-decoration:none;font-weight:850;font-size:12px;padding:11px 14px;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.ticket-status-grid.four{grid-template-columns:repeat(4,1fr)}
.ticket-card-link{text-decoration:none;transition:.18s}.ticket-card-link:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 28%,var(--border));background:color-mix(in srgb,var(--brand-soft) 36%,var(--surface))}.ticket-card-body small{font-size:9px;color:var(--text);opacity:.82;line-height:1.45;margin-top:2px}.ticket-open-arrow{font-size:18px;color:var(--brand);font-weight:900}
.ticket-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.ticket-detail-main,.ticket-detail-side{display:flex;flex-direction:column;gap:18px}.ticket-detail-side .sticky-panel{position:sticky;top:86px}
.request-highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.request-highlight-grid>div{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:13px;display:flex;flex-direction:column;gap:4px}.request-highlight-grid span,.request-message>span{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850}.request-highlight-grid strong{font-size:12px}
.request-message{border:1px solid var(--border);border-radius:12px;padding:14px 15px;background:var(--surface-2);margin-top:10px}.request-message.secondary{background:transparent}.request-message p{font-size:12px;line-height:1.65;margin:7px 0 0}.request-all-fields{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.request-all-fields summary{cursor:pointer;font-size:10px;font-weight:850;color:var(--brand)}.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.kv-grid>div{border:1px solid var(--border);border-radius:9px;padding:10px;background:var(--surface-2);display:flex;flex-direction:column;gap:3px}.kv-grid span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.kv-grid strong{font-size:10px;word-break:break-word}
.conversation-list{display:flex;flex-direction:column;gap:12px}.conversation-item{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden}.conversation-meta{padding:10px 13px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.conversation-meta strong{font-size:10px}.conversation-meta span{font-size:9px;color:var(--muted)}.conversation-body{padding:14px;font-size:12px;line-height:1.65}.empty-state.small{padding:20px}.reply-destination{display:grid;grid-template-columns:50px 1fr;gap:2px 8px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.reply-destination span{font-size:9px;color:var(--muted);font-weight:800}.reply-destination strong{font-size:11px}.reply-destination small{grid-column:2;font-size:9px;color:var(--muted)}.reply-actions{display:flex;align-items:center;gap:12px}.reply-actions small{font-size:9px;color:var(--muted)}
.ticket-action-stack{display:flex;flex-direction:column;gap:8px}.ticket-person-card .kv-list>div{align-items:flex-start;gap:5px;flex-direction:column}.ticket-person-card .kv-list strong{font-size:11px;word-break:break-word}.mini-timeline{display:flex;flex-direction:column;gap:0}.mini-timeline>div{display:grid;grid-template-columns:16px 1fr;gap:8px;position:relative;padding-bottom:15px}.mini-timeline>div:not(:last-child):before{content:"";position:absolute;left:4px;top:9px;bottom:0;width:1px;background:var(--border)}.timeline-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);margin-top:3px;position:relative;z-index:1}.mini-timeline p{margin:0;display:flex;flex-direction:column;gap:3px}.mini-timeline strong{font-size:10px}.mini-timeline small{font-size:9px;color:var(--muted);line-height:1.45}.muted-copy{font-size:10px;color:var(--muted);margin:0}
@media(max-width:1100px){.ticket-status-grid.four{grid-template-columns:repeat(2,1fr)}.ticket-detail-grid{grid-template-columns:1fr}.ticket-detail-side .sticky-panel{position:static}.ticket-detail-side{display:grid;grid-template-columns:repeat(2,1fr)}.ticket-detail-side .ticket-history-panel{grid-column:1/-1}}
@media(max-width:650px){.ticket-status-grid.four{grid-template-columns:1fr}.request-highlight-grid,.kv-grid{grid-template-columns:1fr}.ticket-detail-side{display:flex}.conversation-meta{align-items:flex-start;flex-direction:column}.reply-actions{align-items:flex-start;flex-direction:column}.reply-actions .primary-btn{width:100%}}

/* v0.4 · permisos claros + Agenda nativa */
.table-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}.table-actions .table-btn{display:inline-flex}
.notice-card{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-bottom:16px}.notice-card strong{font-size:11px}.notice-card span{font-size:10px;color:var(--muted)}.notice-card.warning{border-left:3px solid #d28b2d}.notice-card.danger{border-left:3px solid var(--danger);background:color-mix(in srgb,var(--danger-bg) 35%,var(--surface))}
.permission-user-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.permission-user-summary h2{font-size:15px;margin:4px 0}.permission-user-summary p{font-size:10px;color:var(--muted);margin:0;line-height:1.55}.legend-chips{display:flex;gap:6px;flex-wrap:wrap}
.user-overrides .permission-row{grid-template-columns:minmax(260px,1fr) auto}.override-choice{display:flex;align-items:center;gap:5px}.override-choice input{position:absolute;opacity:0;pointer-events:none}.override-choice span{display:flex;align-items:center;gap:5px;min-height:34px;padding:0 10px;border:1px solid var(--border);border-radius:9px;font-size:9px;font-weight:850;color:var(--muted);cursor:pointer;background:var(--surface)}.override-choice span b{font-size:8px}.override-choice input:checked+span{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.override-choice .allow input:checked+span{border-color:color-mix(in srgb,var(--ok) 45%,var(--border));background:var(--ok-bg);color:var(--ok)}.override-choice .deny input:checked+span{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));background:var(--danger-bg);color:var(--danger)}

.form-panel{padding:18px}.form-grid>label,.stack-form>label{display:flex;flex-direction:column;gap:6px}.form-grid>label>span,.stack-form>label>span,.field-title{font-size:10px;font-weight:850}.form-grid input,.form-grid select,.form-grid textarea,.stack-form input,.stack-form select,.stack-form textarea,.event-signup-form input,.event-signup-form select,.event-signup-form textarea{width:100%;border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:10px 11px;outline:0;font-size:11px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.event-signup-form input:focus,.event-signup-form select:focus,.event-signup-form textarea:focus{border-color:var(--brand-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-hover) 15%,transparent)}.form-grid small,.stack-form small{font-size:9px;color:var(--muted)}
.toggle-field{flex-direction:row!important;align-items:flex-start;gap:9px!important;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:11px}.toggle-field input{width:auto!important;margin-top:2px}.toggle-field>span{display:flex;flex-direction:column;gap:2px}.toggle-field strong{font-size:10px}.toggle-field small{font-size:9px;color:var(--muted)}.toggle-field.compact{align-self:end}
.role-inline-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px}.role-inline-checks label{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:9px;padding:9px;background:var(--surface-2);font-size:9px;font-weight:800}.role-inline-checks input{width:auto}

.event-card-link{text-decoration:none}.event-card.is-cancelled{opacity:.7;border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}
.event-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.event-detail-main,.event-detail-side{display:flex;flex-direction:column;gap:18px}.event-hero-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.event-hero-facts>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:11px;display:flex;flex-direction:column;gap:4px}.event-hero-facts span,.event-description>span{font-size:8px;font-weight:850;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.event-hero-facts strong{font-size:10px}.event-description{margin-top:14px;border-top:1px solid var(--border);padding-top:13px}.event-description p{font-size:11px;line-height:1.6;margin:6px 0 0}
.signup-state-card{display:flex;gap:9px;align-items:center;border:1px solid var(--border);background:var(--surface-2);padding:11px;border-radius:10px}.signup-state-card .status-dot{background:#9aa6af}.signup-state-card.open .status-dot{background:#2c9563}.signup-state-card div{display:flex;flex-direction:column}.signup-state-card strong{font-size:10px}.signup-state-card small{font-size:9px;color:var(--muted)}.position-chips{display:flex;flex-wrap:wrap;gap:5px;margin:11px 0}.position-chips span{font-size:8px;font-weight:850;border:1px solid var(--border);border-radius:999px;padding:4px 7px;background:var(--surface-2)}.compact-details{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.compact-details summary{font-size:10px;font-weight:850;color:var(--brand);cursor:pointer}.stack-form{display:flex;flex-direction:column;gap:11px;margin-top:11px}
.event-assignment-list{display:flex;flex-direction:column}.assignment-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--border)}.assignment-row:last-child{border:0}.assignment-main{display:flex;align-items:flex-start;gap:9px;min-width:0}.assignment-main>div{display:flex;flex-direction:column;gap:3px}.assignment-main strong{font-size:11px}.assignment-main small{font-size:9px;color:var(--muted)}.assignment-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.inline-form{display:inline}.danger-text{color:var(--danger)!important}
.event-signup-modal{position:fixed;z-index:130;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 28px));max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 28px 80px rgba(0,0,0,.28);padding:20px}.event-signup-form{display:flex;flex-direction:column;gap:14px}.event-signup-form>label{display:flex;flex-direction:column;gap:6px}.event-signup-form>label>span{font-size:10px;font-weight:850}.modal-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.modal-title h2{font-size:18px;margin:3px 0}.modal-title p{font-size:10px;color:var(--muted);margin:0}.event-signup-modal+ .modal-backdrop{z-index:120}

@media(max-width:1000px){.event-detail-grid{grid-template-columns:1fr}.event-detail-side .sticky-panel{position:static}.event-hero-facts{grid-template-columns:repeat(2,1fr)}.user-overrides .permission-row{grid-template-columns:1fr}.override-choice{justify-content:flex-start}.permission-user-summary{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.role-inline-checks{grid-template-columns:1fr}.event-hero-facts{grid-template-columns:1fr}.assignment-row{align-items:flex-start;flex-direction:column}.assignment-actions{justify-content:flex-start}.override-choice{flex-direction:column;align-items:stretch}.override-choice label{width:100%}.override-choice span{justify-content:center}.table-actions{align-items:stretch;flex-direction:column}.permission-user-summary{padding:14px}}
.permission-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:14px;padding:0}.permission-guide>div{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-right:1px solid var(--border)}.permission-guide>div:last-child{border:0}.guide-number{width:24px;height:24px;flex:0 0 24px;border-radius:8px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:10px;font-weight:950}.permission-guide p{display:flex;flex-direction:column;gap:3px;margin:0}.permission-guide strong{font-size:10px}.permission-guide small{font-size:9px;color:var(--muted);line-height:1.45}.permission-title-line{display:flex;align-items:center;gap:7px}.permission-row.is-access{background:color-mix(in srgb,var(--brand-soft) 24%,var(--surface))}.perm-toggle span{width:auto;min-width:65px;padding:0 8px}.permission-roles{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1000px){.permission-guide{grid-template-columns:1fr}.permission-guide>div{border-right:0;border-bottom:1px solid var(--border)}.permission-guide>div:last-child{border-bottom:0}.permission-row{grid-template-columns:1fr}.permission-roles{justify-content:flex-start}}
.attendance-pop{position:relative}.attendance-pop>summary{list-style:none;cursor:pointer}.attendance-pop>summary::-webkit-details-marker{display:none}.attendance-pop[open]>form{position:absolute;z-index:40;right:0;top:36px;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.22);padding:12px;display:flex;flex-direction:column;gap:9px}.attendance-pop form>label:not(.toggle-field){display:flex;flex-direction:column;gap:5px}.attendance-pop form>label>span{font-size:9px;font-weight:850}.attendance-pop textarea{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:8px;font-size:10px;color:var(--text)}
@media(max-width:650px){.attendance-pop[open]>form{position:fixed;left:14px;right:14px;top:auto;bottom:14px;width:auto;z-index:150}}

/* v0.4.1 · Logs */
.log-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.mini-stat{background:var(--panel,#17212b);border:1px solid var(--border,#2b3a46);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:5px}.mini-stat>span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.mini-stat strong{font-size:18px}.mini-stat small{opacity:.65;overflow-wrap:anywhere}.inline-filter label{display:flex;align-items:center;gap:8px}.inline-filter label>span{font-size:12px;opacity:.7}.log-list{display:flex;flex-direction:column;gap:10px}.log-row{border:1px solid var(--border,#2b3a46);border-left:3px solid #607789;border-radius:12px;padding:13px 14px;background:rgba(255,255,255,.015)}.log-row.error{border-left-color:#d95858}.log-row.warning{border-left-color:#d19a32}.log-row.info{border-left-color:#4385ad}.log-row-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.log-row-head strong{min-width:0;overflow-wrap:anywhere}.log-row-head time{font-size:11px;opacity:.65}.log-meta{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 0;font-size:11px;opacity:.65}.log-row details{margin-top:9px}.log-row summary{cursor:pointer;font-size:12px}.log-row pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;background:rgba(0,0,0,.2);padding:12px;border-radius:10px;font-size:11px;line-height:1.45}@media(max-width:800px){.log-summary-grid{grid-template-columns:1fr}.log-row-head{grid-template-columns:auto 1fr}.log-row-head time{grid-column:1/-1}}

/* v0.5 · permisos modo lectura + papelera Agenda */
.permission-modes{display:grid;grid-template-columns:repeat(6,minmax(115px,1fr));gap:8px;padding:13px 18px;background:color-mix(in srgb,var(--brand-soft) 13%,var(--surface));border-bottom:1px solid var(--border)}
.permission-mode-field{display:flex;flex-direction:column;gap:5px}.permission-mode-field>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.permission-mode-field select{min-height:34px;padding:0 9px;font-size:9px;font-weight:800;border-radius:9px}.permission-mode-field select:disabled{opacity:.65;cursor:not-allowed}
.permission-row.is-access .permission-copy small:after{content:' · Si sólo activás esta fila, el rol queda en solo lectura.';color:var(--brand)}
@media(max-width:1100px){.permission-modes{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.permission-modes{grid-template-columns:1fr 1fr}}

/* v0.5.1 · permisos legibles */
.permission-important{background:color-mix(in srgb,var(--brand-soft) 42%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));color:var(--text);margin-bottom:14px}.permission-important strong{color:var(--brand)}
.permission-mode-field{border:1px solid var(--border);border-radius:11px;padding:9px;background:var(--surface);transition:.15s}.permission-mode-field small{font-size:8px;line-height:1.35;color:var(--muted);min-height:22px}.permission-mode-field.mode-readonly{border-color:color-mix(in srgb,var(--brand) 34%,var(--border));background:color-mix(in srgb,var(--brand-soft) 34%,var(--surface))}.permission-mode-field.mode-full{border-color:color-mix(in srgb,var(--ok) 30%,var(--border));background:color-mix(in srgb,var(--ok-bg) 34%,var(--surface))}.permission-mode-field.mode-none{opacity:.8}.permission-mode-field.mode-custom{border-style:dashed}.permission-mode-field select{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
.permission-section-label{display:flex;align-items:center;gap:10px;padding:12px 18px 8px;background:var(--surface)}.permission-section-label>span{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--brand);color:white;font-size:9px;font-weight:950}.permission-section-label>div{display:flex;flex-direction:column;gap:1px}.permission-section-label strong{font-size:10px}.permission-section-label small{font-size:8px;color:var(--muted)}.permission-section-label.actions-label{border-top:1px solid var(--border);padding-top:14px}.permission-access-table{border-bottom:0}.permission-row.is-access{border-left:3px solid var(--brand)}
.permission-guide .guide-readonly{background:color-mix(in srgb,var(--brand-soft) 24%,transparent)}
.ticket-trash-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.ticket-trash-actions form{display:inline}.ticket-trash-actions .table-btn{cursor:pointer}
@media(max-width:1100px){.permission-mode-field small{min-height:0}}

/* v0.6 · Instrucción / Exámenes nativo */
.exam-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.exam-summary{padding:15px 17px;border-left:3px solid var(--brand)}.exam-summary span{display:block;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.exam-summary strong{display:block;font-size:25px;line-height:1;margin:8px 0 4px}.exam-summary small{font-size:9px;color:var(--muted)}.exam-summary.pending{border-left-color:var(--warning)}.exam-summary.approved{border-left-color:var(--ok)}.exam-summary.failed{border-left-color:var(--danger)}
.exam-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.exam-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exam-facts>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.exam-facts span,.exam-notes>span{font-size:9px;font-weight:850;text-transform:uppercase;color:var(--muted)}.exam-facts strong{font-size:12px}.exam-facts small{font-size:9px;color:var(--muted)}.exam-notes{border-top:1px solid var(--border);margin-top:16px;padding-top:15px}.rich-copy{margin-top:8px;font-size:11px;line-height:1.6;white-space:normal}.muted-copy{font-size:10px;color:var(--muted)}
.exam-file-panel{align-self:start}.exam-file-card{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;margin-bottom:12px}.exam-file-card>div:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.exam-file-card strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-file-card small{font-size:9px;color:var(--muted)}.file-icon{width:42px;height:42px;border-radius:10px;background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger);display:grid;place-items:center;font-size:10px;font-weight:950}.full-btn{width:100%;display:flex;justify-content:center;margin-top:8px}.panel-separator{border:0;border-top:1px solid var(--border);margin:16px 0}.locked-field{border:1px dashed var(--border);border-radius:10px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}.locked-field span{font-size:9px;font-weight:850;color:var(--muted);text-transform:uppercase}.locked-field strong{font-size:12px}.locked-field small{font-size:9px;color:var(--muted)}.form-side-note{align-self:start}.form-side-note h3{margin:0 0 12px;font-size:14px}.simple-check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.simple-check-list li{font-size:10px;color:var(--muted);line-height:1.45;padding-left:18px;position:relative}.simple-check-list li:before{content:'✓';position:absolute;left:0;color:var(--ok);font-weight:900}
@media(max-width:1000px){.exam-summary-grid{grid-template-columns:1fr 1fr}.exam-detail-grid{grid-template-columns:1fr}}@media(max-width:620px){.exam-summary-grid{grid-template-columns:1fr}.exam-facts{grid-template-columns:1fr}}

/* ==========================================================
   v0.8 · UX / Branding / light+dark visual system
   ========================================================== */
:root{
 --brand-hover:color-mix(in srgb,var(--brand) 78%,#ffffff);
 --brand-strong:color-mix(in srgb,var(--brand) 82%,#000000);
 --brand-soft:color-mix(in srgb,var(--brand) 10%,#ffffff);
 --bg:#f3f6f8;--surface:#ffffff;--surface-2:#f7f9fb;--surface-3:#edf2f6;
 --text:#15212c;--muted:#667685;--muted-2:#8795a2;--border:#d8e1e8;
 --shadow:0 10px 28px rgba(19,42,61,.07);--shadow-lg:0 22px 55px rgba(19,42,61,.12);
 --danger:#b7352b;--danger-bg:#fff1ef;--ok:#168154;--ok-bg:#eaf8f1;
 --warning:#a46800;--warning-bg:#fff6df;--violet:#7051b5;--cyan:#167d8a;--amber:#aa610d;
 --radius:16px;--sidebar:286px;--focus:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)
}
html[data-theme="dark"]{
 --brand-hover:color-mix(in srgb,var(--brand) 68%,#ffffff);
 --brand-strong:color-mix(in srgb,var(--brand) 76%,#000000);
 --brand-soft:color-mix(in srgb,var(--brand) 20%,#101820);
 --bg:#0b1116;--surface:#121b23;--surface-2:#0f171e;--surface-3:#18242d;
 --text:#edf3f7;--muted:#a2b0bb;--muted-2:#768794;--border:#283640;
 --shadow:0 12px 34px rgba(0,0,0,.22);--shadow-lg:0 26px 68px rgba(0,0,0,.34);
 --danger:#ef7169;--danger-bg:#321c1c;--ok:#4bc58b;--ok-bg:#173326;
 --warning:#e0ad49;--warning-bg:#342b17;--violet:#a184dd;--cyan:#55bbc7;--amber:#e6a15a
}
html{font-size:16px;color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
body{font-size:15px;line-height:1.5;letter-spacing:.002em}
::selection{background:color-mix(in srgb,var(--brand) 26%,transparent)}
.ui-icon{display:block;flex:0 0 auto}
.theme-logo.logo-dark{display:none!important}html[data-theme="dark"] .theme-logo.logo-light{display:none!important}html[data-theme="dark"] .theme-logo.logo-dark{display:block!important}

/* Shell / navigation */
.sidebar{background:color-mix(in srgb,var(--surface) 97%,var(--brand) 3%);box-shadow:1px 0 0 var(--border)}
.brand{height:82px;padding:15px 18px;gap:10px}.brand-main{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;flex:1}.brand-logo{display:flex;align-items:center;max-width:112px;min-width:0}.brand-logo img{display:block!important;width:auto!important;height:auto!important;max-width:112px!important;max-height:38px!important;object-fit:contain!important}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-size:15px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy span{font-size:10.5px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-search{margin:16px 14px 7px;padding:0 11px;min-height:42px;border-radius:11px;gap:6px}.nav-search:focus-within{border-color:color-mix(in srgb,var(--brand) 55%,var(--border));box-shadow:var(--focus)}.nav-search input{font-size:13.5px;padding:10px 6px}
.nav{padding:4px 11px 18px}.nav-group{margin-top:15px}.nav-label{font-size:10.5px;padding:7px 10px;letter-spacing:.11em}.nav-item{font-size:13.5px;padding:9px 10px;min-height:43px;border-radius:11px;gap:10px}.nav-item:hover{background:var(--surface-3);color:var(--text);transform:translateX(1px)}.nav-item.active{background:var(--brand-soft);color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}html[data-theme="dark"] .nav-item.active{color:color-mix(in srgb,var(--brand) 55%,#fff)}
.nav-icon{width:30px;height:30px;border-radius:9px;background:transparent;border:0;color:var(--muted)}.nav-item:hover .nav-icon{color:var(--text)}.nav-item.active .nav-icon{background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand);border:0}
.sidebar-footer{padding:14px 16px}.user-mini{gap:10px}.user-mini-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--muted);border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.user-mini strong{font-size:12.5px}.user-mini span{font-size:10.5px}.avatar{display:none!important}
.main{background:var(--bg)}.topbar{height:70px;padding:0 30px;background:color-mix(in srgb,var(--surface) 90%,transparent);border-bottom-color:color-mix(in srgb,var(--border) 82%,transparent)}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-title{font-size:12.5px}.topbar-actions{gap:9px}.top-link{display:flex;align-items:center;gap:7px;font-size:12.5px}.icon-btn,.ghost-btn{min-width:39px;height:39px;border-radius:11px}.ghost-btn{display:flex;align-items:center;gap:7px;padding:0 13px}.theme-toggle .theme-moon{display:none}.theme-toggle .theme-sun{display:block}html[data-theme="dark"] .theme-toggle .theme-moon{display:block}html[data-theme="dark"] .theme-toggle .theme-sun{display:none}
.page{padding:34px 34px 52px;max-width:1640px}.page-head{margin-bottom:26px}.page-head h1{font-size:34px;line-height:1.12;margin:4px 0 7px}.page-head p{font-size:14.5px;line-height:1.6}.eyebrow{font-size:10.5px}.section-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--brand);font-size:10px;font-weight:900;letter-spacing:.1em;margin-bottom:5px}

/* Buttons, panels, forms */
.primary-btn,.secondary-btn{font-size:13px;min-height:41px;border-radius:11px;padding:10px 15px;transition:.16s}.primary-btn{background:var(--brand);box-shadow:0 5px 16px color-mix(in srgb,var(--brand) 18%,transparent)}.primary-btn:hover{background:var(--brand-hover);transform:translateY(-1px)}.secondary-btn:hover,.ghost-btn:hover,.icon-btn:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));background:var(--surface-3)}.primary-btn:focus-visible,.secondary-btn:focus-visible,.icon-btn:focus-visible,.ghost-btn:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:0;box-shadow:var(--focus)}
.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.panel-head{padding:19px 20px}.panel-head h2{font-size:17px;line-height:1.25}.panel-head p{font-size:12.5px;line-height:1.55}.panel-note,.section-note{font-size:12px;line-height:1.6}.notice-card{font-size:13px}.notice-card strong{font-size:13.5px}
.field{gap:7px}.field>span,.field-title{font-size:12px;font-weight:800}.field small{font-size:11px;line-height:1.45}.field input,.field textarea,.field select,.searchbox input,.inline-form input,.inline-form select{min-height:43px;font-size:13.5px;border-radius:10px;background:var(--surface-2);border-color:var(--border);padding:10px 12px}.field textarea{min-height:94px}.field input:hover,.field textarea:hover,.field select:hover{border-color:color-mix(in srgb,var(--brand) 25%,var(--border))}
.badge{font-size:10.5px;padding:5px 8px;border-radius:999px;font-weight:850}.record-count{font-size:11.5px}.table-tools{min-height:58px;padding:10px 14px}.searchbox{min-height:40px}.searchbox input{min-height:38px;padding:8px}.table-wrap table{font-size:13px}.table-wrap th,table th{font-size:10.5px;letter-spacing:.07em;padding:11px 13px;color:var(--muted)}.table-wrap td,table td{padding:13px;font-size:13px;vertical-align:middle}.cell-note{font-size:11px!important;line-height:1.45;margin-top:3px}.table-btn{font-size:11.5px;min-height:34px;padding:7px 10px;border-radius:9px}
.kv-list>div{padding:10px 0;gap:14px}.kv-list span{font-size:11px}.kv-list code{font-size:11px;overflow-wrap:anywhere}
.toast{font-size:13px;box-shadow:var(--shadow-lg);border-radius:13px}.inline-alert{font-size:12.5px;line-height:1.5}

/* Dashboard */
.metric-grid{gap:14px;margin-bottom:19px}.metric-card{min-height:145px;padding:19px;border-radius:17px}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--brand) 25%,var(--border))}.metric-label{font-size:12px}.metric-value{font-size:34px}.metric-cta{font-size:11.5px}.quick-grid{gap:10px}.quick{min-height:63px;padding:11px 13px;border-radius:12px}.quick>b{width:36px;height:36px;border-radius:10px}.quick strong{font-size:12.5px}.quick small{font-size:10.5px;line-height:1.4}.health-row strong{font-size:12.5px}.health-row small{font-size:10.5px;line-height:1.4}

/* Modals / details */
.role-editor form,.event-signup-modal{border-radius:18px;box-shadow:var(--shadow-lg)}.role-checks label{border-radius:12px;padding:12px}.role-checks strong{font-size:12px}.role-checks small{font-size:10.5px}.modal-actions{gap:9px}.conversation-body,.rich-copy,.request-message{font-size:13px;line-height:1.65}.event-card,.ticket-card,.module-card,.health-card{border-radius:15px}.event-card h3,.ticket-card h3,.module-card h3{font-size:14px}

/* Permission screen readability */
.permission-important{font-size:13px}.permission-mode-field>span{font-size:10px}.permission-mode-field small{font-size:10px;min-height:30px}.permission-mode-field select{font-size:11.5px;min-height:38px}.permission-section-label strong{font-size:12px}.permission-section-label small{font-size:10px}.permission-copy strong{font-size:12.5px}.permission-copy small{font-size:10.5px}.permission-copy code{font-size:9.5px}.permission-guide strong{font-size:11.5px}.permission-guide small{font-size:10.5px}

/* Branding settings */
.settings-grid-v08{align-items:start}.branding-panel{overflow:hidden}.branding-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.55fr);gap:18px;padding:0 20px 20px}.branding-preview{border:1px solid var(--border);background:linear-gradient(145deg,color-mix(in srgb,var(--preview-brand) 9%,var(--surface)),var(--surface));border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:13px;align-self:stretch}.branding-preview-top{display:flex;align-items:center;gap:8px;font-size:12px}.preview-dot{width:8px;height:8px;border-radius:50%;background:var(--preview-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--preview-brand) 12%,transparent)}.branding-preview-card{margin-top:auto;border:1px solid color-mix(in srgb,var(--preview-brand) 20%,var(--border));background:var(--surface);padding:14px;border-radius:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.branding-preview-card>span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:850}.branding-preview-card>strong{font-size:14px}.branding-preview-card button{border:0;background:var(--preview-brand);color:#fff;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:800}.branding-preview>small{font-size:10px;color:var(--muted)}
.color-input{display:flex;align-items:center;gap:9px}.color-input input[type=color]{width:48px;height:42px;padding:3px;border-radius:9px}.color-input code{font-size:11px;background:var(--surface-3);border:1px solid var(--border);padding:7px 9px;border-radius:8px}.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px 20px}.asset-field{border:1px solid var(--border);border-radius:13px;padding:12px;background:var(--surface-2);display:grid;grid-template-columns:98px minmax(0,1fr);gap:12px;align-items:center}.asset-preview{height:70px;border:1px dashed var(--border);border-radius:10px;background:var(--surface);display:grid;place-items:center;overflow:hidden}.asset-preview img{max-width:92%;max-height:58px;width:auto;height:auto;object-fit:contain}.asset-preview.wide img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.asset-empty{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted)}.asset-empty span{font-size:9px}.asset-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.asset-copy strong{font-size:11.5px}.asset-copy small{font-size:9.5px;line-height:1.35;color:var(--muted)}.file-picker input{position:absolute;opacity:0;width:1px;height:1px}.file-picker span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.remove-asset{font-size:9.5px;color:var(--danger);display:flex;align-items:center;gap:5px}.save-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;position:sticky;bottom:14px;z-index:8;box-shadow:var(--shadow-lg)}.save-bar>div{display:flex;flex-direction:column}.save-bar strong{font-size:13px}.save-bar span{font-size:10.5px;color:var(--muted)}

/* Login */
.login-body{min-height:100vh;background:var(--bg)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.12fr) minmax(430px,.88fr);background:var(--bg)}.login-visual{position:relative;min-height:100vh;background:linear-gradient(145deg,color-mix(in srgb,var(--login-accent) 86%,#081018),#0a131b);overflow:hidden}.login-shell.has-background .login-visual{background-image:linear-gradient(145deg,rgba(5,12,18,.82),rgba(5,12,18,.58)),var(--login-bg);background-size:cover;background-position:center}.login-visual:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;bottom:-200px;background:color-mix(in srgb,var(--login-accent) 33%,transparent);filter:blur(2px)}.login-visual-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.18));pointer-events:none}.login-visual-inner{position:relative;z-index:1;min-height:100vh;padding:46px 52px;display:flex;flex-direction:column;color:#fff}.login-identity{display:flex;align-items:center;gap:15px}.login-identity .login-logo{max-width:180px;display:flex;align-items:center}.login-identity img{max-width:180px;max-height:52px;width:auto;height:auto;object-fit:contain}.login-identity>div{display:flex;flex-direction:column}.login-identity strong{font-size:17px}.login-identity span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.72;margin-top:3px}.login-custom-copy{max-width:650px;margin:auto 0}.login-custom-copy h1{font-size:clamp(34px,4vw,58px);line-height:1.04;letter-spacing:-.045em;margin:0 0 18px}.login-custom-copy p{font-size:16px;line-height:1.7;max-width:590px;margin:0;color:rgba(255,255,255,.78)}.login-feature-list{display:grid;gap:8px;margin-top:auto;max-width:620px}.login-feature-list>div{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.82)}.login-access-copy{margin-top:16px;font-size:11px;color:rgba(255,255,255,.6)}
.login-panel-v08{display:grid;place-items:center;padding:40px;background:var(--bg)}.login-card-v08{width:min(470px,100%);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:22px;padding:30px}.login-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:54px}.login-mobile-brand{display:flex;flex-direction:column}.login-mobile-brand strong{font-size:14px}.login-mobile-brand span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:3px}.login-card-copy{margin-bottom:24px}.login-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--login-accent)}.login-card-copy h2{font-size:31px;line-height:1.12;letter-spacing:-.035em;margin:7px 0 9px}.login-card-copy p{font-size:13.5px;line-height:1.6;color:var(--muted);margin:0}.vatsim-login-btn{min-height:58px;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-decoration:none;border-radius:13px;padding:10px 14px;background:var(--login-accent);color:#fff;font-size:13px;font-weight:850;box-shadow:0 9px 24px color-mix(in srgb,var(--login-accent) 26%,transparent);transition:.16s}.vatsim-login-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}.vatsim-brand{min-width:72px;display:flex;align-items:center}.vatsim-brand img{max-width:78px;max-height:28px;width:auto;height:auto;object-fit:contain}.vatsim-brand strong{font-size:12px;letter-spacing:.08em}.login-security-note{margin-top:18px;display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:10.5px;line-height:1.45}.login-security-note .ui-icon{margin-top:1px;color:var(--ok)}

/* Responsive */
@media(max-width:1180px){.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.branding-layout{grid-template-columns:1fr}.branding-preview{min-height:210px}.login-shell{grid-template-columns:1fr 1fr}}
@media(max-width:900px){:root{--sidebar:286px}.page{padding:26px 20px 42px}.topbar{padding:0 18px}.menu-btn{display:grid}.sidebar{transform:translateX(-100%);transition:.22s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.sidebar-close{display:grid}.login-shell{display:block}.login-visual{display:none}.login-panel-v08{min-height:100vh;padding:24px}.login-card-v08{max-width:500px}.login-card-head{margin-bottom:40px}.asset-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){html{font-size:15px}.page{padding:22px 14px 38px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:29px}.page-head-actions{width:100%;flex-wrap:wrap}.topbar{height:64px}.topbar-title span:last-child{display:none}.top-link span{display:none}.logout-btn span{display:none}.logout-btn{padding:0;min-width:39px}.asset-grid{grid-template-columns:1fr;padding:0 14px 16px}.branding-layout{padding:0 14px 16px}.asset-field{grid-template-columns:86px 1fr}.save-bar{position:static;align-items:stretch;gap:12px;flex-direction:column}.save-bar .primary-btn{width:100%}.login-panel-v08{padding:15px}.login-card-v08{padding:22px;border-radius:18px}.login-card-copy h2{font-size:27px}.form-grid.three{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:124px}.metric-value{font-size:29px}.table-wrap{margin-left:-14px;margin-right:-14px;width:calc(100% + 28px);border-left:0;border-right:0;border-radius:0}}
@media(max-width:430px){.metric-grid{grid-template-columns:1fr}.brand-copy strong{font-size:14px}.brand-logo{max-width:90px}.brand-logo img{max-width:90px!important}.page-head h1{font-size:27px}}
:root{--brand-contrast:#fff;--login-contrast:#fff}.primary-btn,.nav-item.active .nav-icon{color:var(--brand-contrast)}.vatsim-login-btn{color:var(--login-contrast)}
/* v0.8 · remaining component consistency */
.mini-stat{background:var(--surface);border-color:var(--border)}.log-row{background:var(--surface)}html[data-theme="dark"] .log-row pre{background:#091017}.log-row pre{background:var(--surface-2)}
.migration-summary{background:linear-gradient(135deg,var(--brand-strong),var(--brand));color:var(--brand-contrast)}.migration-kicker,.migration-summary-main p,.migration-summary-side span{color:color-mix(in srgb,var(--brand-contrast) 74%,transparent)}.migration-summary-side>div{border-color:color-mix(in srgb,var(--brand-contrast) 18%,transparent)}
.migration-dashboard-banner{border-color:color-mix(in srgb,var(--brand) 35%,var(--border))}.migration-dashboard-icon{color:var(--brand-contrast)}
.perm-toggle input:checked+span{color:var(--brand-contrast)}.migration-check input:checked+span:after{background:var(--brand-contrast)}
.event-date,.event-meta,.section-note{font-size:10.5px}.event-card h3{font-size:14px}.event-card>p{font-size:11.5px}.compact-details summary{font-size:11.5px}.position-chips span{font-size:10px}.signup-state-card strong{font-size:11.5px}.signup-state-card small{font-size:10.5px}.event-signup-form>label>span{font-size:11.5px}.event-signup-modal .modal-title p{font-size:11.5px}
.exam-summary span,.exam-facts span,.exam-notes>span,.locked-field span{font-size:10.5px}.exam-summary small,.exam-facts small,.exam-file-card small,.locked-field small,.simple-check-list li{font-size:10.5px}.exam-facts strong,.locked-field strong{font-size:13px}.rich-copy{font-size:13px}.muted-copy{font-size:11.5px}
.branding-preview-card button{color:var(--brand-contrast)}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.form-grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.form-grid.three{grid-template-columns:1fr}}
/* v0.8 · legibility pass for module-specific legacy components */
.notification-item strong{font-size:13px}.notification-item p{font-size:12px;line-height:1.5}.notification-item small{font-size:10.5px}.health-card summary,.health-card ul{font-size:11px}.check-card strong{font-size:12px}.check-card small{font-size:10.5px}.switch-btn{font-size:11px}.perm-toggle span{font-size:10.5px}
.migration-source{font-size:11px}.migration-summary-main p{font-size:12px}.migration-summary-side span{font-size:10px}.migration-summary-side strong{font-size:11px}.migration-toolbar strong{font-size:13px}.migration-toolbar span{font-size:11px}.migration-title-line h2{font-size:15px}.migration-card-copy p{font-size:11.5px}.migration-facts span{font-size:9.5px}.migration-facts strong{font-size:11px}.migration-note{font-size:10.5px}.migration-explainer p{font-size:11.5px}.migration-last-run pre{font-size:10.5px}.history-panel>summary small,.history-panel>summary>b{font-size:10.5px}
.ticket-status-card span{font-size:11px}.ticket-status-card small{font-size:10.5px}.ticket-card-id{font-size:11px}.ticket-card-body strong{font-size:13px}.ticket-card-body span{font-size:10.5px}.ticket-card{padding:14px 15px}.request-highlight-grid span,.request-all-fields dt,.conversation-meta,.timeline-dot+div small{font-size:10.5px}.request-highlight-grid strong,.request-all-fields dd{font-size:12px}
.asset-empty span{font-size:10px}.asset-copy strong{font-size:12px}.asset-copy small,.remove-asset{font-size:10px}.file-picker span{font-size:10.5px}.save-bar span{font-size:11px}
.login-shell.minimal{grid-template-columns:1fr}.login-shell.minimal .login-visual{display:none}.login-shell.minimal .login-panel-v08{min-height:100vh;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--login-accent) 8%,var(--bg)),var(--bg) 55%)}
.asset-preview.dark-swatch{background:#111a22;border-color:#34434e}.asset-preview.dark-swatch .asset-empty{color:#8fa1ae}
.branding-preview{--preview-contrast:var(--brand-contrast)}.branding-preview-card button{color:var(--preview-contrast)}
.admin-card{position:relative;transition:.18s}.admin-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--brand) 28%,var(--border))}.admin-card-icon{width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;margin-bottom:12px}.admin-card-featured .admin-card-icon{background:var(--brand);color:var(--brand-contrast)}.admin-card h2{font-size:16px}.admin-card p{font-size:12px;line-height:1.55}.admin-card b{font-size:11px}


/* ============================================================
 * v0.8.1 · UX repair pass
 * Restores the original login composition and normalizes the
 * visual language of modules added after the first Core.
 * ============================================================ */
:root{
 --surface-3:#edf3f7;
 --text-soft:#445563;
 --focus:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent);
 --shadow-lg:0 22px 55px rgba(21,43,60,.13)
}
html[data-theme="dark"]{
 --bg:#0b1218;
 --surface:#131d25;
 --surface-2:#0f171e;
 --surface-3:#1b2730;
 --text:#f1f5f8;
 --muted:#9eb0bc;
 --text-soft:#c2ced6;
 --border:#2a3a46;
 --shadow:0 12px 32px rgba(0,0,0,.18);
 --shadow-lg:0 24px 60px rgba(0,0,0,.32);
 color-scheme:dark
}
html[data-theme="light"]{color-scheme:light}
body{font-size:15px;line-height:1.48}
button,input,select,textarea{font-size:14px}
::placeholder{color:color-mix(in srgb,var(--muted) 82%,transparent);opacity:1}
.sidebar{background:color-mix(in srgb,var(--surface) 96%,var(--bg))}
.nav-item{font-size:14px;min-height:44px}
.nav-label{font-size:10.5px}
.nav-search input{font-size:14px}
.user-mini strong{font-size:13px}.user-mini span{font-size:11px}
.page{max-width:1700px;padding:32px 34px 54px}
.page-head h1{font-size:33px;line-height:1.12}
.page-head p{font-size:14px;line-height:1.6}
.panel{box-shadow:0 8px 26px rgba(31,58,80,.055)}
html[data-theme="dark"] .panel{box-shadow:0 8px 26px rgba(0,0,0,.12)}
.panel-head h2,.panel>h2{font-size:18px;letter-spacing:-.015em}
.panel-head p,.panel>p{font-size:13px;line-height:1.5}
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.table-btn{font-weight:800}
.primary-btn,.secondary-btn,.danger-btn{font-size:13px;min-height:40px}
.ghost-btn{font-size:12.5px}
.table-btn{font-size:12px;min-height:34px;padding:7px 10px}
.table-wrap table{font-size:14px}
.table-wrap th,table th{font-size:10.5px;padding:11px 14px}
.table-wrap td,table td{font-size:13.5px;padding:13px 14px}
td strong{font-size:13.5px}
.cell-note{font-size:11.5px;line-height:1.4}
.record-count{font-size:11.5px}
.badge{font-size:10px;padding:5px 8px}
.field>span,.form-grid>label>span,.provider-form label>span,.row-menu-card label>span{font-size:12px;font-weight:800;margin-bottom:5px;display:block}
.field input,.field select,.field textarea,
.form-grid>label>input,.form-grid>label>select,.form-grid>label>textarea,
.provider-form textarea,.row-menu-card input,.row-menu-card textarea{
 min-height:43px;font-size:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;width:100%;outline:0
}
.field input:focus,.field select:focus,.field textarea:focus,
.form-grid>label>input:focus,.form-grid>label>select:focus,.form-grid>label>textarea:focus,
.provider-form textarea:focus,.row-menu-card input:focus,.row-menu-card textarea:focus{
 border-color:color-mix(in srgb,var(--brand) 56%,var(--border));box-shadow:var(--focus)
}
input[type=file]{padding:7px}
input[type=file]::file-selector-button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 10px;margin-right:9px;font-weight:800;cursor:pointer}
.section-gap{margin-top:18px}
.form-actions{display:flex;align-items:center;gap:9px;margin-top:12px;flex-wrap:wrap}
.form-actions.span-2{grid-column:1/-1}
.page-actions{display:flex;align-items:center;gap:8px}
.muted-text{color:var(--muted);font-size:13px}
.table-link{color:var(--brand);font-weight:800;text-decoration:none}.table-link:hover{text-decoration:underline}
.empty-cell{text-align:center;color:var(--muted);padding:28px!important}
.align-right{text-align:right}
.justify-end{justify-content:flex-end}
.is-wrap{white-space:normal;max-width:540px}
.note-preview{line-height:1.55;color:var(--text-soft);max-width:620px}

/* Common list / actions components that were missing styling */
.inline-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.inline-actions form{margin:0}
.compact-list{display:flex;flex-direction:column}
.compact-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}
.compact-row:last-child{border-bottom:0}
.compact-row>div{display:flex;flex-direction:column;min-width:0}
.compact-row strong{font-size:13.5px}.compact-row small{font-size:11.5px;color:var(--muted);margin-top:3px}
.check-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.mini-input{min-width:210px;max-width:330px}
.inline-edit{display:flex;align-items:center;gap:7px}
.code-textarea{width:100%;min-height:260px;resize:vertical;background:#0c141b;color:#dfe9ef;border:1px solid var(--border);border-radius:11px;padding:13px;font:12.5px/1.55 "SFMono-Regular",Consolas,monospace;white-space:pre}
html[data-theme="light"] .code-textarea{background:#17212b;color:#eef5f8}

/* Tabs */
.segmented{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0 0 14px}
.segmented a{padding:8px 13px;border-radius:9px;text-decoration:none;color:var(--muted);font-size:12px;font-weight:800}
.segmented a:hover{background:var(--surface-2);color:var(--text)}
.segmented a.active{background:var(--brand);color:var(--brand-contrast);box-shadow:0 5px 14px color-mix(in srgb,var(--brand) 18%,transparent)}

/* Details / member profile */
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:0}
.detail-list>div{padding:12px 0;border-bottom:1px solid var(--border)}
.detail-list dt{font-size:10.5px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);margin-bottom:4px}
.detail-list dd{margin:0;font-size:14px;font-weight:700;overflow-wrap:anywhere}
.compact-grid{grid-template-columns:1fr 1fr!important}
.kv-list>div{grid-template-columns:minmax(110px,180px) 1fr}
.kv-list span{font-size:11.5px}.kv-list strong,.kv-list code{font-size:12px}
details.panel>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px}
details.panel>summary::-webkit-details-marker{display:none}

/* Notification center */
.notification-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:18px;align-items:start}
.notification-copy{flex:1;min-width:0}
.notification-item{align-items:flex-start;padding:15px 16px}
.notification-item strong{font-size:13.5px}.notification-item p{font-size:12.5px;line-height:1.5}.notification-item small{font-size:10.5px}
.permission-stack{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.permission-toggle{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:11px;cursor:pointer}
.permission-toggle input{margin-top:3px;accent-color:var(--brand)}
.permission-toggle>span{display:flex;flex-direction:column}
.permission-toggle strong{font-size:12px}.permission-toggle small{font-size:10.5px;color:var(--muted);margin-top:2px}

/* Metrics */
.compact-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-card.green:before{background:#2c9563}.metric-card.blue:before{background:var(--brand)}.metric-card.amber:before{background:#d28b2d}
.metric-card>span{font-size:12px;color:var(--muted);font-weight:800}.metric-card>strong{font-size:30px;margin-top:8px}.metric-card>small{font-size:10.5px;color:var(--muted);margin-top:auto}

/* Action popovers */
.row-menu{position:relative}
.row-menu>summary{list-style:none;cursor:pointer}.row-menu>summary::-webkit-details-marker{display:none}
.row-menu[open]>summary{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));background:var(--brand-soft);color:var(--brand)}
.row-menu-card{position:absolute;right:0;top:calc(100% + 7px);z-index:40;width:min(360px,70vw);padding:13px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:10px}
.row-menu-card textarea{resize:vertical}
.provider-editor>summary{width:max-content;list-style:none;cursor:pointer}.provider-editor>summary::-webkit-details-marker{display:none}
.provider-form{margin-top:12px}

/* Sectorfile */
.sector-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.sector-top-grid .panel{height:100%}

/* Agenda */
.agenda-lanes{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.agenda-lane{padding:0;overflow:hidden}
.agenda-lane .panel-head{padding:18px 18px 14px;border-bottom:1px solid var(--border);margin:0}
.agenda-lane .event-card-grid{padding:14px;grid-template-columns:1fr}
.agenda-stack .event-card{min-height:0;box-shadow:none;background:var(--surface-2)}
.event-live-strip{margin-bottom:18px}
.event-card-grid-auto{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.event-card{min-height:0}
.event-card h3{font-size:15px;margin:12px 0 5px}
.event-card>p{font-size:12px}
.event-meta{font-size:10.5px}
.event-date{font-size:10.5px}
.event-hero-facts span,.event-description>span{font-size:10px}
.event-hero-facts strong{font-size:12px}
.event-description p{font-size:13px}
.signup-state-card strong{font-size:12px}.signup-state-card small{font-size:10.5px}.position-chips span{font-size:10px}

/* Table paging */
.table-pager{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-top:1px solid var(--border);background:var(--surface-2)}
.table-pager-info{font-size:11.5px;color:var(--muted)}
.table-pager-controls{display:flex;align-items:center;gap:7px}
.table-pager button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;min-width:34px;height:34px;font-size:12px;font-weight:800}
.table-pager button:disabled{opacity:.4;cursor:not-allowed}
.table-pager .page-number{font-size:11.5px;color:var(--muted);padding:0 4px}
.table-pager select{height:34px;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:0 8px;font-size:11.5px}

/* Legacy login composition restored, but fully configurable */
.login-grid-configurable{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr)}
.login-grid-configurable .login-hero{background:linear-gradient(145deg,color-mix(in srgb,var(--login-accent) 74%,#102333),var(--login-accent));padding:42px 55px;position:relative}
.login-grid-configurable .login-hero.has-background{background-image:linear-gradient(145deg,rgba(7,18,27,.82),rgba(7,18,27,.54)),var(--login-bg);background-size:cover;background-position:center}
.login-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.18));pointer-events:none}
.login-brand,.hero-copy,.hero-foot{position:relative;z-index:1}
.login-brand-logo{display:flex;align-items:center;max-width:230px}
.login-brand-logo img{max-width:230px;max-height:64px;width:auto;height:auto;object-fit:contain}
.login-brand>div{margin-left:2px}
.login-brand strong{font-size:16px}.login-brand span{font-size:10.5px}
.hero-copy{max-width:690px}
.hero-copy h1{font-size:clamp(38px,4.6vw,66px);line-height:1.02;margin:12px 0 18px;white-space:normal}
.hero-copy p{font-size:16px;line-height:1.65}
.login-feature-list.legacy-layout{margin-top:24px;display:grid;gap:9px}
.login-feature-list.legacy-layout>div{font-size:12.5px}
.login-panel{background:var(--bg)}
.login-card{width:min(440px,100%);padding:34px}
.login-card-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.login-card-topline .logo-mobile{margin:0}
.login-card .pill{font-size:10px;padding:6px 9px}
.login-card h2{font-size:29px}
.login-card>p{font-size:13.5px}
.login-vatsim-btn{display:grid;grid-template-columns:auto 1fr auto;gap:11px;min-height:56px}
.login-vatsim-btn .vatsim-brand{display:flex;align-items:center;min-width:72px}
.login-vatsim-btn .vatsim-brand img{max-width:82px;max-height:27px;width:auto;height:auto;object-fit:contain}
.login-notes{font-size:10.5px;gap:12px}
.login-notes span{display:flex;align-items:center;gap:4px}
.logo-mobile img{max-width:150px;max-height:44px;width:auto;height:auto;object-fit:contain}

/* Better light mode depth */
html[data-theme="light"] .sidebar,html[data-theme="light"] .topbar{background:#fff}
html[data-theme="light"] .panel,html[data-theme="light"] .table-panel{border-color:#dbe4eb}
html[data-theme="light"] tbody tr:hover{background:#f6f9fb}
html[data-theme="light"] .nav-item.active{background:color-mix(in srgb,var(--brand) 10%,#fff)}
html[data-theme="dark"] tbody tr:hover{background:color-mix(in srgb,var(--surface-3) 68%,transparent)}

@media(max-width:1100px){
 .notification-layout,.agenda-lanes,.sector-top-grid,.detail-grid{grid-template-columns:1fr}
 .permission-stack{grid-template-columns:1fr}
 .compact-grid{grid-template-columns:1fr!important}
}
@media(max-width:900px){
 .login-grid-configurable{grid-template-columns:1fr}
 .login-grid-configurable .login-hero{display:none}
 .login-panel{min-height:100vh}
 .logo-mobile{display:flex}
 .row-menu-card{position:fixed;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 28px))}
}
@media(max-width:680px){
 body{font-size:14px}.page{padding:20px 14px 38px}.page-head h1{font-size:28px}
 .table-wrap td,table td{font-size:13px}
 .compact-metrics{grid-template-columns:1fr}
 .table-pager{align-items:flex-start;flex-direction:column}
 .table-pager-controls{width:100%;justify-content:space-between}
 .detail-list{grid-template-columns:1fr}
 .segmented{width:100%;overflow:auto}.segmented a{white-space:nowrap;flex:1;text-align:center}
}

/* Remaining component normalization */
.color-field{align-self:start}
.permission-read-table{background:color-mix(in srgb,var(--surface-2) 75%,var(--surface))}
.permission-row.is-read{background:color-mix(in srgb,var(--brand-soft) 20%,transparent)}
.permission-section-label.read-label>span{background:color-mix(in srgb,var(--brand) 16%,var(--surface));color:var(--brand)}
.code-box{margin:14px 0;padding:13px 14px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);overflow:auto}
.code-box code{font-size:12px;white-space:nowrap}
.module-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.planned-note{margin-top:14px;padding:11px 12px;border:1px dashed var(--border);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:11.5px;line-height:1.45}
.branding-form{display:flex;flex-direction:column;gap:18px}
.mini-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.mini-gallery article{border:1px solid var(--border);border-radius:11px;overflow:hidden;background:var(--surface-2)}
.mini-gallery img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.mini-gallery small{display:block;padding:8px 9px;font-size:10.5px;color:var(--muted)}
.tiny-logo{max-width:70px;max-height:30px;width:auto;height:auto;object-fit:contain}
.ticket-request-panel,.reply-panel{overflow:hidden}

/* Statistics dashboard */
.stats-ranking-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ranking-panel{padding:0;overflow:hidden}.ranking-panel .panel-head{padding:18px 20px;border-bottom:1px solid var(--border);margin:0}
.ranking-panel .panel-head h2{display:flex;align-items:center;gap:8px}
.ranking-list{padding:5px 18px 12px}
.ranking-row{display:grid;grid-template-columns:42px minmax(0,1fr) 72px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.ranking-row:last-child{border-bottom:0}.ranking-pos{font-size:12px;font-weight:900;color:var(--muted)}
.ranking-main{min-width:0}.ranking-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}.ranking-title strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-title small{font-size:10px;color:var(--muted);white-space:nowrap}
.ranking-track{height:5px;border-radius:999px;background:var(--surface-3);overflow:hidden}.ranking-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#7bb5dd))}
.ranking-hours{text-align:right;font-size:16px;font-weight:900}.ranking-hours span{font-size:10px;color:var(--muted);margin-left:2px}
.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.record-card{display:flex;align-items:center;gap:13px}.record-icon{width:42px;height:42px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;flex:0 0 auto}.record-card>div:last-child{display:flex;flex-direction:column}.record-card span{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:850}.record-card strong{font-size:16px;margin-top:2px}.record-card small{font-size:11px;color:var(--muted);margin-top:2px}
.member-live-warning{margin-bottom:14px}
@media(max-width:1000px){.stats-ranking-grid{grid-template-columns:1fr}.record-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.record-grid{grid-template-columns:1fr}.ranking-row{grid-template-columns:34px minmax(0,1fr) 58px}.ranking-title small{display:none}}


/* v0.8.2 · checkpoint 2 · Login, maintenance and personal dashboard */
.break-safe{overflow-wrap:anywhere;word-break:normal}
.login-body{display:flex;flex-direction:column;align-items:stretch}
.login-grid-configurable .login-hero:after{display:none!important}
.login-grid-configurable .login-brand{gap:0}
.login-grid-configurable .login-brand>div{margin-left:0}
.login-grid-configurable .hero-copy{margin:clamp(62px,9vh,108px) 0 0;max-width:690px}
.login-grid-configurable .hero-foot{margin-top:auto}
.login-panel{position:relative}
.login-access-logo{display:flex;justify-content:center;align-items:center;min-height:68px;margin:2px 0 18px}
.login-access-logo img{display:block;max-width:230px;max-height:70px;width:auto;height:auto;object-fit:contain}
.login-vatsim-btn{grid-template-columns:1fr auto!important;text-align:left;margin-top:6px}
.login-network-logos{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:34px;width:min(330px,calc(100% - 44px));padding:0;margin:0;border:0;background:transparent;box-shadow:none}
.login-network-logo{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:transparent;border:0;padding:0}
.login-network-logo img{display:block;max-width:118px;max-height:38px;width:auto;height:auto;object-fit:contain}
html[data-theme="dark"] .login-network-logo img{filter:none}
.maintenance-body{min-height:100vh;display:grid;place-items:center;padding:28px;background:var(--bg)}
.maintenance-card{width:min(560px,100%);background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);padding:34px;text-align:center}
.maintenance-logo{min-height:68px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.maintenance-logo img{max-width:235px;max-height:72px;width:auto;height:auto;object-fit:contain}
.maintenance-card h1{font-size:28px;letter-spacing:-.035em;margin:7px 0 10px}.maintenance-card p{color:var(--muted);line-height:1.65;margin:0 auto;max-width:460px}.maintenance-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px}
.dashboard-profile-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:18px;align-items:start}.dashboard-user-card,.dashboard-sessions-card{min-height:100%}
.dashboard-admin-row.single{grid-template-columns:1fr}
.system-mode-chip{display:flex;align-items:center;gap:9px;min-height:40px;padding:7px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-decoration:none;color:inherit}.system-mode-chip>span:last-child{display:flex;flex-direction:column;line-height:1.2}.system-mode-chip strong{font-size:10.5px}.system-mode-chip small{font-size:9px;color:var(--muted);margin-top:2px}.system-mode-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.system-mode-chip.is-online .system-mode-dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-bg)}.system-mode-chip.is-maintenance{border-color:color-mix(in srgb,var(--warning) 40%,var(--border));background:color-mix(in srgb,var(--warning-bg) 70%,var(--surface))}.system-mode-chip.is-maintenance .system-mode-dot{background:var(--warning);box-shadow:0 0 0 4px var(--warning-bg)}
.dashboard-user-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-user-facts>div{min-width:0;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:12px}.dashboard-user-facts span{display:block;font-size:9.5px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.dashboard-user-facts strong{font-size:12.5px;line-height:1.35;display:block}
.session-list{display:flex;flex-direction:column}.session-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.session-row:last-child{border-bottom:0}.session-index{width:27px;height:27px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-size:9.5px;font-weight:900;color:var(--muted)}.session-main{display:flex;flex-direction:column;min-width:0}.session-main strong{font-size:11.5px}.session-main small,.session-side small{font-size:9.5px;color:var(--muted)}.session-side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.dashboard-exam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px}.dashboard-exam-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:7px;text-decoration:none;color:inherit}.dashboard-exam-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.dashboard-exam-card strong{font-size:12.5px}.dashboard-exam-card p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.45}.panel-footer-actions{margin-top:14px;padding-top:13px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
@media(max-width:1200px){.dashboard-profile-grid{grid-template-columns:1fr}}
@media(max-width:900px){.login-network-logos{position:static;transform:none;margin:34px auto 0;padding-bottom:20px}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center}}
@media(max-width:680px){.dashboard-user-facts{grid-template-columns:1fr}.session-row{grid-template-columns:28px minmax(0,1fr)}.session-side{grid-column:2;text-align:left;align-items:flex-start}.login-card{padding:25px 20px}.login-access-logo img{max-width:195px}.login-network-logos{gap:24px;width:100%}.login-network-logo img{max-width:100px}.system-mode-chip{width:100%}}

/* v0.8.2 · checkpoint 3 · Login alignment + dashboard profile/exam legibility */
.login-grid-configurable .hero-copy{max-width:min(860px,100%);margin-top:clamp(58px,8vh,96px)}
.login-grid-configurable .hero-copy h1{max-width:860px;text-wrap:balance}
.login-access-logo{min-height:92px;margin:0 0 20px}
.login-access-logo img{max-width:300px;max-height:94px}
.login-network-logos{width:min(440px,calc(100% - 44px));display:grid;grid-template-columns:1fr 1fr;gap:42px;bottom:54px}
.login-network-logo{width:100%}
.login-network-logo img{max-width:158px;max-height:54px}
.login-network-logo.vatsur-logo img{max-width:168px}

.dashboard-user-facts strong{font-size:13px}
.dashboard-exam-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:13px}
.dashboard-exam-card{padding:15px;gap:12px;min-width:0}
.dashboard-exam-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px}
.dashboard-exam-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.dashboard-exam-type{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-readable,var(--brand))}
.dashboard-exam-head strong{font-size:15px}
.dashboard-exam-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dashboard-exam-meta>div{min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:9px 10px;display:flex;flex-direction:column;gap:3px}
.dashboard-exam-meta span,.dashboard-exam-notes>span{font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.dashboard-exam-meta strong{font-size:11.5px;line-height:1.35;overflow-wrap:anywhere}.dashboard-exam-meta small{font-size:9.5px;color:var(--muted)}
.dashboard-exam-notes{border-top:1px solid var(--border);padding-top:10px}.dashboard-exam-notes p{margin:4px 0 0!important;font-size:11.5px!important;line-height:1.5!important;color:var(--text-soft,var(--muted))!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dashboard-exam-open{font-size:11px;font-weight:850;color:var(--brand-readable,var(--brand));margin-top:auto}

:root{--brand-readable:var(--brand)}
html[data-theme="dark"]{--brand-readable:color-mix(in srgb,var(--brand) 44%,#ffffff)}
html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .text-link,
html[data-theme="dark"] .metric-cta,
html[data-theme="dark"] .table-link,
html[data-theme="dark"] .dashboard-exam-type,
html[data-theme="dark"] .dashboard-exam-open,
html[data-theme="dark"] .quick>b,
html[data-theme="dark"] .admin-card-icon,
html[data-theme="dark"] .record-icon,
html[data-theme="dark"] .permission-important strong,
html[data-theme="dark"] .permission-section-label.read-label>span,
html[data-theme="dark"] .row-menu[open]>summary,
html[data-theme="dark"] .badge.primary{color:var(--brand-readable)}
html[data-theme="dark"] .nav-item.active .nav-icon{color:var(--brand-readable)}

@media(max-width:1100px){
 .login-grid-configurable .hero-copy{max-width:760px}
 .login-grid-configurable .hero-copy h1{font-size:clamp(36px,4.7vw,58px)}
}
@media(max-width:900px){
 .login-network-logos{width:min(440px,100%);grid-template-columns:1fr 1fr;gap:34px}
 .login-access-logo img{max-width:270px;max-height:86px}
}
@media(max-width:680px){
 .login-access-logo img{max-width:235px;max-height:78px}
 .login-network-logo img{max-width:132px;max-height:46px}
 .login-network-logo.vatsur-logo img{max-width:142px}
 .dashboard-exam-grid{grid-template-columns:1fr}
 .dashboard-exam-meta{grid-template-columns:1fr}
}

/* v0.8.2 · checkpoint 4 · Solicitudes ATC + acceso directo a documentos de examen */
.ticket-page-head .ticket-requester-line{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-top:7px}
.ticket-page-head .ticket-requester-line strong{font-size:13px;color:var(--text)}
.ticket-page-head .ticket-requester-line span{font-size:11.5px;color:var(--muted);position:relative}
.ticket-page-head .ticket-requester-line span+span:before{content:"·";margin-right:12px;color:var(--border-strong,var(--muted))}
.ticket-request-heading{align-items:flex-start}
.ticket-request-heading h2{font-size:20px;margin-top:3px}
.ticket-request-heading p{font-size:12px}
.ticket-received{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;min-width:180px}
.ticket-received span{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--muted)}
.ticket-received strong{font-size:11.5px;line-height:1.35}
.request-highlight-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 16px}
.request-highlight-grid-v2>div{padding:17px 18px;border-radius:13px;min-height:86px;justify-content:center}
.request-highlight-grid-v2 .request-highlight-airports{grid-column:1/-1;min-height:78px}
.request-highlight-grid-v2 span{font-size:10px!important;margin-bottom:3px}
.request-highlight-grid-v2 strong{font-size:19px!important;line-height:1.3;letter-spacing:-.015em;overflow-wrap:anywhere}
.request-highlight-grid-v2 .request-highlight-airports strong{font-size:17px!important}
.request-message-main{padding:17px 18px}
.request-message>span{font-size:10px}
.request-message p{font-size:13px!important;line-height:1.7!important}
.request-all-fields{padding-top:15px;margin-top:16px}
.request-all-fields summary{font-size:11.5px;color:var(--brand-readable,var(--brand))}
.request-all-fields .kv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.request-all-fields .kv-grid>div{padding:12px 13px}
.request-all-fields .kv-grid span{font-size:9.5px}
.request-all-fields .kv-grid strong{font-size:12px;line-height:1.4}
.ticket-person-card .panel-head{margin-bottom:13px}
.ticket-person-card .panel-head h2{font-size:17px;margin-top:2px}
.ticket-person-facts{display:flex;flex-direction:column;gap:9px}
.ticket-person-facts>div{border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:12px 13px;display:flex;flex-direction:column;gap:4px;min-width:0}
.ticket-person-facts span{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}
.ticket-person-facts strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.ticket-actions-panel .panel-head p{font-size:10.5px}
.ticket-conversation-panel .conversation-meta{padding:11px 14px}
.ticket-conversation-panel .conversation-meta strong{font-size:11.5px}
.ticket-conversation-panel .conversation-meta span{font-size:10px}
.ticket-conversation-panel .conversation-body{padding:15px 16px;font-size:13px;line-height:1.7}
.ticket-history-panel .mini-timeline strong{font-size:11px}
.ticket-history-panel .mini-timeline small{font-size:9.5px}
.dashboard-exam-card[href]{transition:.16s}
.dashboard-exam-card[href]:hover{border-color:color-mix(in srgb,var(--brand) 32%,var(--border));transform:translateY(-1px);background:color-mix(in srgb,var(--brand-soft) 20%,var(--surface-2))}

html[data-theme="dark"] .request-all-fields summary,
html[data-theme="dark"] .ticket-open-arrow{color:var(--brand-readable)}

@media(max-width:900px){
 .ticket-detail-grid{grid-template-columns:1fr}
 .ticket-detail-side .sticky-panel{position:static}
 .ticket-detail-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}
 .ticket-history-panel{grid-column:1/-1}
}
@media(max-width:650px){
 .ticket-request-heading{gap:12px}
 .ticket-received{align-items:flex-start;text-align:left;min-width:0}
 .request-highlight-grid-v2{grid-template-columns:1fr}
 .request-highlight-grid-v2 .request-highlight-airports{grid-column:auto}
 .request-highlight-grid-v2 strong,.request-highlight-grid-v2 .request-highlight-airports strong{font-size:16px!important}
 .request-all-fields .kv-grid{grid-template-columns:1fr}
 .ticket-detail-side{grid-template-columns:1fr}
 .ticket-history-panel{grid-column:auto}
 .ticket-page-head .ticket-requester-line span+span:before{display:none}
}

/* v0.8.2 · checkpoint 5 · Solicitudes ATC: solicitante integrado + legibilidad */
.ticket-detail-grid{grid-template-columns:minmax(0,1fr) 370px;gap:20px}
.ticket-request-heading p,.ticket-conversation-panel .panel-head p,.ticket-actions-panel .panel-head p,.ticket-history-panel .panel-head p{font-size:12.5px;line-height:1.55}
.ticket-received span{font-size:10.5px}.ticket-received strong{font-size:12.5px}
.ticket-requester-inline{margin:2px 0 16px;padding:16px 17px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 72%,var(--surface))}
.ticket-requester-inline-head{display:flex;align-items:baseline;gap:10px;margin-bottom:11px}.ticket-requester-inline-head strong{font-size:14px;color:var(--text)}
.ticket-requester-inline-grid{display:grid;grid-template-columns:1.1fr .7fr 1.35fr;gap:10px}
.ticket-requester-inline-grid>div{min-width:0;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px 13px;display:flex;flex-direction:column;gap:4px}
.ticket-requester-inline-grid span{font-size:10.5px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:900}
.ticket-requester-inline-grid strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.request-highlight-grid-v2 span{font-size:11px!important}.request-highlight-grid-v2 strong{font-size:20px!important}.request-highlight-grid-v2 .request-highlight-airports strong{font-size:18px!important}
.request-message>span{font-size:11px}.request-message p{font-size:14px!important;line-height:1.72!important}
.request-all-fields summary{font-size:12.5px}.request-all-fields .kv-grid span{font-size:10px}.request-all-fields .kv-grid strong{font-size:13px}
.ticket-conversation-panel .conversation-meta{padding:13px 16px}.ticket-conversation-panel .conversation-meta strong{font-size:13.5px}.ticket-conversation-panel .conversation-meta span{font-size:11px}.ticket-conversation-panel .conversation-body{padding:17px 18px;font-size:14px;line-height:1.72}
.ticket-actions-panel .panel-head h2,.ticket-history-panel .panel-head h2{font-size:18px}.ticket-actions-panel .secondary-btn,.ticket-actions-panel .danger-btn,.ticket-actions-panel .primary-btn{font-size:13px;min-height:42px}.ticket-actions-panel .panel-note{font-size:11.5px;line-height:1.55}
.ticket-history-panel .mini-timeline{margin-top:2px}.ticket-history-panel .mini-timeline>div{grid-template-columns:18px 1fr;gap:9px;padding-bottom:18px}.ticket-history-panel .timeline-dot{width:10px;height:10px}.ticket-history-panel .mini-timeline strong{font-size:12.5px}.ticket-history-panel .mini-timeline small{font-size:10.5px;line-height:1.55}.ticket-history-panel .muted-copy{font-size:11.5px}
.dashboard-exam-open.is-muted{color:var(--muted)!important;font-weight:750}
@media(max-width:1100px){.ticket-detail-grid{grid-template-columns:1fr}.ticket-detail-side{display:grid;grid-template-columns:1fr 1fr}.ticket-history-panel{grid-column:auto}.ticket-detail-side .sticky-panel{position:static}}
@media(max-width:720px){.ticket-requester-inline-grid{grid-template-columns:1fr}.ticket-detail-side{grid-template-columns:1fr}.conversation-meta{align-items:flex-start;flex-direction:column}}

/* ==========================================================
   v0.8.3 · Agenda de Eventos reestructurada
   ========================================================== */
.event-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.event-overview-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 17px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.event-overview-item span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.event-overview-item strong{font-size:26px;line-height:1.05}.event-overview-item small{font-size:10px;color:var(--muted)}
.event-section-v2{margin-bottom:24px}.event-section-v2 .section-title{align-items:flex-start}.event-section-v2 .section-title p{margin:4px 0 0;font-size:10.5px;color:var(--muted)}.event-card-grid-v2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.agenda-board{display:grid;grid-template-columns:1fr 1fr;gap:16px}.agenda-column{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:17px;box-shadow:var(--shadow);min-width:0}.agenda-column-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.agenda-column-head h2{font-size:17px;margin:3px 0 2px}.agenda-column-head p{font-size:10px;color:var(--muted);margin:0}.agenda-card-stack{display:flex;flex-direction:column;gap:10px}
.event-card-v2{display:grid;grid-template-columns:122px minmax(0,1fr);min-height:132px;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;overflow:hidden;box-shadow:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;color:var(--text)}.event-card-v2:not(.has-image){grid-template-columns:1fr}.event-card-v2:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 34%,var(--border));box-shadow:var(--shadow)}.event-card-v2.is-live{border-color:color-mix(in srgb,var(--ok) 45%,var(--border));background:color-mix(in srgb,var(--ok-bg) 28%,var(--surface))}.event-card-v2.is-cancelled{opacity:.72}.event-card-image{min-height:132px;background:var(--surface-3);overflow:hidden}.event-card-image img{width:100%;height:100%;object-fit:cover;display:block}.event-card-body{padding:13px 14px;display:flex;flex-direction:column;min-width:0}.event-card-v2 .event-card-top{margin-bottom:10px}.event-card-v2 h3{font-size:13.5px;line-height:1.35;margin:0 0 5px}.event-card-v2 p{font-size:10.5px;line-height:1.45;color:var(--muted);margin:0;overflow-wrap:anywhere}.event-card-meta-v2{margin-top:auto;padding-top:10px;display:flex;gap:7px;flex-wrap:wrap;font-size:9px;color:var(--muted)}.event-card-meta-v2 span{padding-right:7px;border-right:1px solid var(--border)}.event-card-meta-v2 span:last-child{border-right:0;padding-right:0}.event-history-v2>summary>b{color:var(--brand-hover)}

.event-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:17px;align-items:start}.event-editor-main,.event-editor-side{display:flex;flex-direction:column;gap:17px}.event-editor-side{position:sticky;top:86px}.event-form-grid textarea{resize:vertical;min-height:116px}.event-signup-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.event-signup-config-grid>label:not(.event-switch-card),.event-select-field,.event-url-field{display:flex;flex-direction:column;gap:6px}.event-signup-config-grid>label>span,.event-select-field>span,.event-url-field>span{font-size:10px;font-weight:850}.event-signup-config-grid input:not([type=checkbox]),.event-select-field select,.event-url-field input{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;padding:10px 11px;outline:0;font-size:11px}.event-signup-config-grid small,.event-url-field small,.event-field-help{font-size:9px;color:var(--muted)}
.event-switch-card{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:10px!important;border:1px solid var(--border);border-radius:11px;padding:11px 12px;background:var(--surface-2);cursor:pointer}.event-switch-card input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px!important;height:17px!important;min-width:17px;margin:1px 0 0!important;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:5px;background:var(--surface);display:grid;place-items:center;cursor:pointer}.event-switch-card input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.event-switch-card input[type=checkbox]:checked:after{content:'✓';font-size:11px;line-height:1;color:#fff;font-weight:950}.event-switch-card>span{display:flex;flex-direction:column;gap:2px;min-width:0}.event-switch-card strong{font-size:10.5px}.event-switch-card small{font-size:9px;color:var(--muted);line-height:1.4}.event-switch-card.compact{padding:9px 10px}.event-switch-card.compact strong{font-size:10px}
.event-image-preview{height:190px;border:1px dashed var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden;display:grid;place-items:center;margin-bottom:11px}.event-image-preview img{width:100%;height:100%;object-fit:cover;display:block}.event-image-empty{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted)}.event-image-empty span{font-size:10px}.event-image-picker{display:inline-flex;margin-bottom:6px}.event-image-picker span{background:var(--surface-2);font-size:10.5px}.event-remove-image{margin:9px 0 13px}.event-url-field{border-top:1px solid var(--border);padding-top:13px;margin-top:10px}.event-role-wrap{margin-top:14px}.event-role-wrap.is-hidden{display:none}.event-role-grid{grid-template-columns:1fr 1fr}.event-role-grid label{font-size:10px;padding:9px 10px;cursor:pointer}.event-role-grid input[type=checkbox]{width:15px!important;height:15px!important;accent-color:var(--brand)}

.event-hero-v2{display:grid;grid-template-columns:minmax(300px,40%) minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:17px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:18px}.event-hero-v2:not(.has-image){grid-template-columns:1fr}.event-hero-image{min-height:310px;background:var(--surface-3)}.event-hero-image img{width:100%;height:100%;object-fit:cover;display:block}.event-hero-content{padding:22px}.event-hero-titleline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.event-hero-titleline h2{font-size:23px;line-height:1.25;margin:9px 0 0}.event-facts-v2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px}.event-facts-v2>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:11px;display:flex;flex-direction:column;gap:4px}.event-facts-v2 span,.event-description-v2>span,.event-position-block>span,.event-side-facts span,.assignment-time>span{font-size:8.5px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}.event-facts-v2 strong{font-size:11.5px;line-height:1.4}.event-description-v2{border-top:1px solid var(--border);margin-top:16px;padding-top:15px}.event-description-v2 p{font-size:11.5px;line-height:1.65;margin:7px 0 0}.event-detail-grid-v2{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px;align-items:start}.event-side-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:11px 0}.event-side-facts>div{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:3px}.event-side-facts strong{font-size:11px}.event-position-block{border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.event-position-block>.muted-copy{margin:7px 0 0}.assignment-row-v2{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(160px,1.1fr) minmax(185px,1fr) auto;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.assignment-row-v2:last-child{border-bottom:0}.assignment-position,.assignment-person,.assignment-time{display:flex;flex-direction:column;gap:3px;min-width:0}.assignment-position{align-items:flex-start}.assignment-position strong,.assignment-person strong,.assignment-time strong{font-size:11px}.assignment-person small,.assignment-time small{font-size:9px;color:var(--muted)}.assignment-note{grid-column:2/-1;font-size:9.5px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:7px 9px}.event-ops-panel .compact-details summary{color:var(--brand-hover)}

.verify-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.verify-form{display:flex;flex-direction:column;gap:16px}.verify-rule-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:12px}.verify-select-field{display:flex;flex-direction:column;gap:6px}.verify-select-field>span{font-size:10px;font-weight:850}.verify-select-field select{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;padding:10px 11px;font-size:11px}.verify-select-field small{font-size:9px;color:var(--muted);line-height:1.4}.verify-toggle{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;cursor:pointer}.verify-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px!important;height:17px!important;min-width:17px!important;margin:1px 0 0!important;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:5px;background:var(--surface);display:grid;place-items:center;cursor:pointer}.verify-toggle input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.verify-toggle input[type=checkbox]:checked:after{content:'✓';font-size:11px;color:#fff;font-weight:950;line-height:1}.verify-toggle input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.verify-toggle>span{display:flex;flex-direction:column;gap:3px}.verify-toggle strong{font-size:10.5px}.verify-toggle small{font-size:9px;color:var(--muted);line-height:1.4}.verify-apply-block{border-top:1px solid var(--border);padding-top:15px;display:grid;grid-template-columns:210px minmax(0,1fr);gap:13px}.verify-apply-copy{display:flex;flex-direction:column;gap:4px}.verify-apply-copy strong{font-size:12px}.verify-apply-copy small{font-size:9px;color:var(--muted);line-height:1.45}.verify-apply-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.verify-apply-block.is-readonly{grid-template-columns:1fr}.verify-submit-row{display:flex;align-items:center;gap:12px;padding-top:2px}.verify-submit-row small{font-size:9px;color:var(--muted);line-height:1.45}.verify-event-facts{display:flex;flex-direction:column;gap:8px}.verify-event-facts>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--border);background:var(--surface-2);border-radius:9px}.verify-event-facts span{font-size:8.5px;font-weight:900;color:var(--muted);text-transform:uppercase}.verify-event-facts strong{font-size:10.5px}.verify-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:16px}.verify-metrics>div{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;gap:5px}.verify-metrics span{font-size:8.5px;font-weight:900;text-transform:uppercase;color:var(--muted)}.verify-metrics strong{font-size:22px}.verify-metrics .is-ok{border-left:3px solid var(--ok)}.verify-metrics .is-warning{border-left:3px solid var(--warning)}.verify-metrics .is-danger{border-left:3px solid var(--danger)}.verify-results-panel .table-tools{margin:0 -20px;border-top:1px solid var(--border)}

html[data-theme="dark"] .event-card-v2:hover{border-color:color-mix(in srgb,var(--brand-hover) 48%,var(--border))}html[data-theme="dark"] .event-history-v2>summary>b,html[data-theme="dark"] .event-ops-panel .compact-details summary{color:var(--brand-hover)}
@media(max-width:1200px){.event-card-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.event-editor-layout{grid-template-columns:minmax(0,1fr) 320px}.assignment-row-v2{grid-template-columns:120px 1fr 1fr}.assignment-actions{grid-column:2/-1;justify-content:flex-start}.event-detail-grid-v2{grid-template-columns:minmax(0,1fr) 315px}}
@media(max-width:980px){.event-overview-grid{grid-template-columns:repeat(2,1fr)}.agenda-board,.event-editor-layout,.event-detail-grid-v2,.verify-layout{grid-template-columns:1fr}.event-editor-side{position:static}.event-hero-v2{grid-template-columns:1fr}.event-hero-image{min-height:260px;max-height:380px}.event-detail-side .sticky-panel{position:static}.verify-summary-panel{order:-1}}
@media(max-width:700px){.event-card-grid-v2{grid-template-columns:1fr}.event-card-v2{grid-template-columns:96px minmax(0,1fr)}.event-card-image{min-height:126px}.event-signup-config-grid,.event-facts-v2,.verify-rule-grid,.verify-apply-options{grid-template-columns:1fr}.verify-apply-block{grid-template-columns:1fr}.assignment-row-v2{grid-template-columns:1fr 1fr;align-items:start}.assignment-time{grid-column:1/2}.assignment-actions{grid-column:2/3;justify-content:flex-start}.assignment-note{grid-column:1/-1}.event-role-grid{grid-template-columns:1fr}.verify-metrics{grid-template-columns:1fr 1fr}.verify-submit-row{align-items:stretch;flex-direction:column}.event-hero-titleline{flex-direction:column}.event-hero-content{padding:17px}}
@media(max-width:480px){.event-overview-grid,.verify-metrics{grid-template-columns:1fr}.event-card-v2{grid-template-columns:1fr}.event-card-image{height:150px}.assignment-row-v2{grid-template-columns:1fr}.assignment-time,.assignment-actions{grid-column:1}.agenda-column{padding:14px}}

/* Agenda 0.8.3 checkpoint 2: participación explícita */
.attendance-pop[open]>form{width:330px}
.attendance-pop-head{display:flex;flex-direction:column;gap:3px;padding-bottom:2px}.attendance-pop-head strong{font-size:12px}.attendance-pop-head small{font-size:9.5px;line-height:1.45;color:var(--muted)}
.attendance-choice-grid{display:grid;grid-template-columns:1fr;gap:7px}.attendance-choice{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:9px!important;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);cursor:pointer}.attendance-choice:hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--border))}.attendance-choice input[type=radio]{appearance:none;-webkit-appearance:none;width:16px!important;height:16px!important;min-width:16px;margin:1px 0 0!important;border:1px solid color-mix(in srgb,var(--muted) 58%,var(--border));border-radius:50%;background:var(--surface);display:grid;place-items:center}.attendance-choice input[type=radio]:checked{border:5px solid var(--brand)}.attendance-choice:has(input:checked){border-color:color-mix(in srgb,var(--brand) 70%,var(--border));background:color-mix(in srgb,var(--brand) 8%,var(--surface-2))}.attendance-choice>span{display:flex;flex-direction:column;gap:2px}.attendance-choice strong{font-size:10.5px}.attendance-choice small{font-size:9px;line-height:1.4;color:var(--muted)}
.verify-action-options{display:grid;grid-template-columns:1fr;gap:8px}.verify-action-choice{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;cursor:pointer}.verify-action-choice:hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--border))}.verify-action-choice input[type=radio]{appearance:none;-webkit-appearance:none;width:17px!important;height:17px!important;min-width:17px!important;margin:1px 0 0!important;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:50%;background:var(--surface)}.verify-action-choice input[type=radio]:checked{border:5px solid var(--brand)}.verify-action-choice:has(input:checked){border-color:color-mix(in srgb,var(--brand) 65%,var(--border));background:color-mix(in srgb,var(--brand) 8%,var(--surface-2))}.verify-action-choice>span{display:flex;flex-direction:column;gap:3px}.verify-action-choice strong{font-size:10.5px}.verify-action-choice small{font-size:9px;line-height:1.45;color:var(--muted)}.verify-action-choice.danger-option:has(input:checked){border-color:color-mix(in srgb,var(--danger) 60%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--surface-2))}.verify-action-choice.danger-option input[type=radio]:checked{border-color:var(--danger)}
@media(max-width:650px){.attendance-pop[open]>form{width:auto}.verify-action-options{grid-template-columns:1fr}}

/* Agenda 0.8.3 checkpoint 3: posiciones por checks, reservas separadas e imagen histórica */
.event-position-selector{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:12px}
.event-position-selector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.event-position-selector-head>span{font-size:10.5px;font-weight:900;color:var(--text)}
.event-position-selector-head small{font-size:9px;line-height:1.45;color:var(--muted);text-align:right;max-width:420px}
.event-position-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.event-position-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;min-width:0;padding:8px 9px;border:1px solid var(--border);background:var(--surface);border-radius:9px;cursor:pointer}
.event-position-check:hover{border-color:color-mix(in srgb,var(--brand) 52%,var(--border))}
.event-position-check:has(input:checked){border-color:color-mix(in srgb,var(--brand) 65%,var(--border));background:color-mix(in srgb,var(--brand) 8%,var(--surface))}
.event-position-check input[type=checkbox]{appearance:none;-webkit-appearance:none;width:15px!important;height:15px!important;min-width:15px!important;margin:0!important;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:4px;background:var(--surface-2);display:grid;place-items:center;cursor:pointer}
.event-position-check input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}
.event-position-check input[type=checkbox]:checked:after{content:'✓';font-size:10px;line-height:1;color:#fff;font-weight:950}
.event-position-check span{min-width:0;font-size:9.5px;font-weight:850;letter-spacing:.02em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-selector{padding:10px;margin-top:2px}.compact-selector .event-position-selector-head{display:block}.compact-selector .event-position-selector-head small{display:block;text-align:left;margin-top:3px}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:270px;overflow:auto;padding-right:3px}

.event-assignment-group+.event-assignment-group{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.event-assignment-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}
.event-assignment-group-head h3{font-size:15px;margin:3px 0 0}.event-assignment-group-head p{font-size:9.5px;color:var(--muted);line-height:1.45;margin:4px 0 0}
.event-assignment-group .inline-empty{padding:15px 4px 4px;text-align:left;border:0;background:transparent}.event-assignment-group .inline-empty p{margin:0;font-size:10.5px}
.reserve-group .assignment-row-v2{background:color-mix(in srgb,var(--warning-bg) 18%,transparent);padding-left:10px;padding-right:10px;border-radius:9px}

.event-hero-v2.is-past .event-hero-image{display:grid;place-items:center;padding:12px;background:var(--surface-2)}
.event-hero-v2.is-past .event-hero-image img{object-fit:contain;max-height:430px}
.event-image-zoom{position:relative;width:100%;height:100%;min-height:286px;border:0;padding:0;background:transparent;color:inherit;cursor:zoom-in;display:grid;place-items:center;overflow:hidden;border-radius:10px}
.event-image-zoom img{width:100%;height:100%;object-fit:contain!important;display:block}
.event-image-zoom>span{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:8px;background:rgba(5,13,20,.78);color:#fff;font-size:9.5px;font-weight:850;backdrop-filter:blur(6px)}
.event-image-lightbox[hidden],.event-image-lightbox-backdrop[hidden]{display:none}
.event-image-lightbox-backdrop{position:fixed;inset:0;z-index:180;background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
.event-image-lightbox{position:fixed;inset:24px;z-index:190;display:grid;place-items:center;pointer-events:none}
.event-image-lightbox-frame{width:min(1500px,calc(100vw - 70px));height:min(900px,calc(100vh - 70px));display:grid;place-items:center;pointer-events:auto}
.event-image-lightbox-frame img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.5);background:#050a0e}
.event-image-lightbox-close{position:fixed;top:24px;right:28px;z-index:200;width:40px;height:40px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(5,13,20,.82);color:#fff;font-size:25px;line-height:1;cursor:pointer;pointer-events:auto}
body.event-lightbox-open{overflow:hidden}
html[data-theme="dark"] .event-position-check:has(input:checked){background:color-mix(in srgb,var(--brand-hover) 11%,var(--surface))}
@media(max-width:1050px){.event-position-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.event-position-check-grid,.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-position-selector-head{display:block}.event-position-selector-head small{display:block;text-align:left;margin-top:3px}.event-image-lightbox{inset:12px}.event-image-lightbox-frame{width:calc(100vw - 30px);height:calc(100vh - 30px)}}
@media(max-width:440px){.event-position-check-grid,.compact-grid{grid-template-columns:1fr}}


/* v0.8.3 checkpoint 4 · inscripción propia a eventos */
.self-signup-cta{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--brand) 8%,var(--panel));display:flex;align-items:center;justify-content:space-between;gap:14px}
.self-signup-cta>div{display:grid;gap:3px;min-width:0}.self-signup-cta strong{font-size:15px}.self-signup-cta small{color:var(--muted);line-height:1.4}.self-signup-cta .primary-btn{flex:0 0 auto}
.self-signup-closed{margin-top:14px;padding:13px 14px;border:1px dashed var(--line);border-radius:12px;display:grid;gap:4px}.self-signup-closed strong{font-size:13px}.self-signup-closed small{color:var(--muted);line-height:1.45}
.my-event-signups{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:8px}.my-event-signups-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.my-event-signups-head>span{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.my-event-signups-head>strong{min-width:26px;height:26px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;font-size:12px}
.my-event-signup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft)}.my-event-signup-row>div{display:grid;gap:3px;min-width:0}.my-event-signup-row strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.my-event-signup-row small{color:var(--muted);font-size:11px}.my-event-signup-row form{flex:0 0 auto}
.self-signup-identity{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin:14px 0 18px}.self-signup-identity>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);display:grid;gap:3px}.self-signup-identity span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.self-signup-identity strong{font-size:14px}
@media(max-width:720px){.self-signup-cta{align-items:stretch;flex-direction:column}.self-signup-cta .primary-btn{width:100%}.self-signup-identity{grid-template-columns:1fr}.my-event-signup-row{align-items:flex-start;flex-direction:column}.my-event-signup-row form,.my-event-signup-row form button{width:100%}}

/* v0.8.4 · corrección checkbox inscripción propia */
.event-switch-card input[type=checkbox]{min-height:17px!important;padding:0!important;flex:0 0 17px!important}

/* v0.8.4 · NOTAM */
.notam-page-head{margin-bottom:18px}.notam-page-head h1{letter-spacing:-.02em}
.notam-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.notam-metric{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:15px 16px;display:grid;gap:4px;min-height:112px;align-content:center;position:relative;overflow:hidden}
.notam-metric:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:color-mix(in srgb,var(--muted) 45%,transparent)}
.notam-metric.is-active:before{background:var(--ok)}.notam-metric.is-critical:before{background:var(--danger)}
.notam-metric>span{font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.notam-metric>strong{font-size:29px;line-height:1}.notam-metric>small{font-size:10.5px;color:var(--muted);line-height:1.4}
.notam-list-panel{overflow:hidden}.notam-panel-head{padding-bottom:14px}.notam-panel-head h2{margin-top:2px}
.notam-filterbar{display:grid;grid-template-columns:minmax(280px,1.7fr) minmax(150px,.6fr) minmax(150px,.6fr) minmax(180px,.7fr);gap:10px;padding:14px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.notam-filterbar>label:not(.notam-archive-filter){display:grid;gap:5px}.notam-filterbar>label>span{font-size:9.5px;font-weight:850;color:var(--muted)}
.notam-filterbar select{min-height:40px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);padding:8px 10px;font-size:12px}.notam-search{align-self:end;margin:0}
.notam-archive-filter{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--surface);cursor:pointer;align-self:end;min-height:40px}.notam-archive-filter input{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-width:16px;min-height:16px!important;padding:0!important;margin:0;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:4px;background:var(--surface-2);display:grid;place-items:center}.notam-archive-filter input:checked{background:var(--brand);border-color:var(--brand)}.notam-archive-filter input:checked:after{content:'✓';color:#fff;font-size:10px;font-weight:900}.notam-archive-filter>span{display:grid;gap:1px}.notam-archive-filter strong{font-size:10.5px}.notam-archive-filter small{font-size:9px;color:var(--muted)}
.notam-table-wrap{margin:0;border:0;border-radius:0}.notam-table-wrap table{min-width:1100px}.notam-table-wrap th:first-child,.notam-table-wrap td:first-child{padding-left:20px}.notam-table-wrap th:last-child,.notam-table-wrap td:last-child{padding-right:20px}
.notam-id-cell{min-width:150px}.notam-id-cell strong{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.notam-id-cell>span{display:block;font-size:14px;font-weight:850;margin-top:4px}.notam-id-cell>small{display:block;color:var(--muted);margin-top:2px}
.notam-content-cell{min-width:300px;max-width:520px}.notam-content-cell>strong{display:block;font-size:14px}.notam-content-cell>small{display:block;margin-top:5px;color:var(--muted);line-height:1.45}.notam-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.notam-tags span{font-size:9px;font-weight:800;padding:3px 6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}
.notam-validity-cell{min-width:180px}.notam-validity-cell>strong,.notam-validity-cell>small{display:block}.notam-validity-cell>small{color:var(--muted);margin:3px 0 7px}
.notam-image-cell{width:100px}.notam-thumb{width:82px;height:58px;border:1px solid var(--border);border-radius:9px;padding:0;background:var(--surface-2);overflow:hidden;position:relative;cursor:zoom-in}.notam-thumb img{width:100%;height:100%;object-fit:cover;display:block}.notam-thumb span{position:absolute;right:4px;bottom:4px;padding:2px 5px;border-radius:5px;background:rgba(5,13,20,.76);color:#fff;font-size:8.5px;font-weight:850}.notam-no-image{font-size:10px;color:var(--muted)}
.notam-state-cell{min-width:145px}.notam-state-cell>.badge{display:table;margin-bottom:6px}.notam-severity{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900}.notam-severity.sev-critical{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}.notam-severity.sev-advisory{background:var(--warning-bg);color:var(--warning)}.notam-severity.sev-info{background:color-mix(in srgb,var(--brand-hover) 13%,transparent);color:var(--brand-hover)}
.notam-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:17px;align-items:start}.notam-editor-main,.notam-editor-side{display:flex;flex-direction:column;gap:17px}.notam-main-fields textarea{min-height:190px;resize:vertical}.notam-main-fields label.is-muted{opacity:.55}.notam-main-fields label.is-muted input{background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.notam-images-section .panel-head{align-items:center}.notam-image-count{font-size:11px;font-weight:850;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 8px}
.notam-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.notam-image-card{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden}.notam-image-preview-btn{display:block;width:100%;height:150px;border:0;padding:0;background:var(--surface-2);position:relative;cursor:zoom-in}.notam-image-preview-btn img{width:100%;height:100%;display:block;object-fit:contain;background:color-mix(in srgb,var(--surface) 65%,#000 35%)}.notam-image-preview-btn>span{position:absolute;right:8px;bottom:8px;padding:5px 7px;border-radius:7px;background:rgba(5,13,20,.78);color:#fff;font-size:9px;font-weight:850}.notam-image-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border-top:1px solid var(--border)}.notam-image-card-foot>span{font-size:10px;font-weight:800;color:var(--muted)}
.notam-empty-images{min-height:115px;border:1px dashed var(--border);border-radius:12px;display:grid;place-items:center;align-content:center;text-align:center;gap:3px;color:var(--muted)}.notam-empty-images strong{color:var(--text);font-size:13px}.notam-empty-images span{font-size:10.5px}
.notam-upload-block{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.notam-upload-block>div{display:grid;gap:2px}.notam-upload-block strong{font-size:11px}.notam-upload-block small{font-size:9.5px;color:var(--muted)}.notam-file-picker{position:relative;display:inline-flex}.notam-file-picker>span{display:inline-flex;min-height:38px;align-items:center;padding:8px 11px;border-radius:9px;background:var(--brand);color:var(--brand-contrast,#fff);font-size:10.5px;font-weight:850;cursor:pointer}.notam-file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.notam-new-image-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.notam-new-image-card{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface-2)}.notam-new-image-card img{width:100%;height:90px;object-fit:cover;display:block}.notam-new-image-card span{display:block;padding:6px 7px;font-size:8.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notam-publish-panel .panel-head{padding-bottom:12px}.notam-switch{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);cursor:pointer}.notam-switch input{appearance:none;-webkit-appearance:none;width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;padding:0!important;margin:1px 0 0;border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:5px;background:var(--surface);display:grid;place-items:center}.notam-switch input:checked{background:var(--brand);border-color:var(--brand)}.notam-switch input:checked:after{content:'✓';font-size:11px;font-weight:900;color:#fff}.notam-switch>span{display:grid;gap:2px}.notam-switch strong{font-size:11px}.notam-switch small{font-size:9.5px;color:var(--muted)}
.notam-publish-summary{display:grid;gap:3px;border-top:1px solid var(--border);padding-top:12px}.notam-publish-summary>span{font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.notam-publish-summary>strong{font-size:12px}.notam-publish-summary>small{font-size:9.5px;color:var(--muted)}
.notam-image-lightbox[hidden],.notam-image-lightbox-backdrop[hidden]{display:none}.notam-image-lightbox-backdrop{position:fixed;inset:0;z-index:220;background:rgba(0,0,0,.84);backdrop-filter:blur(5px)}.notam-image-lightbox{position:fixed;inset:24px;z-index:230;display:grid;place-items:center;pointer-events:none}.notam-image-lightbox-frame{width:min(1500px,calc(100vw - 70px));height:min(900px,calc(100vh - 70px));display:grid;place-items:center;pointer-events:auto}.notam-image-lightbox-frame img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.52);background:#050a0e}.notam-image-lightbox-close{position:fixed;top:24px;right:28px;z-index:240;width:40px;height:40px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(5,13,20,.82);color:#fff;font-size:25px;line-height:1;cursor:pointer;pointer-events:auto}body.notam-lightbox-open{overflow:hidden}
html[data-theme="dark"] .notam-severity.sev-info{color:color-mix(in srgb,var(--brand-hover) 74%,#fff)}
@media(max-width:1100px){.notam-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notam-filterbar{grid-template-columns:1fr 1fr}.notam-search{grid-column:1/-1}.notam-editor-layout{grid-template-columns:1fr}.notam-editor-side .sticky-panel{position:static}.notam-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.notam-metric-grid,.notam-filterbar{grid-template-columns:1fr}.notam-search{grid-column:auto}.notam-image-grid{grid-template-columns:1fr}.notam-new-image-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.notam-upload-block{align-items:flex-start;flex-direction:column}.notam-file-picker,.notam-file-picker>span{width:100%;justify-content:center}.notam-image-lightbox{inset:12px}.notam-image-lightbox-frame{width:calc(100vw - 30px);height:calc(100vh - 30px)}}
/* v0.8.4 · fuerza composición correcta de checks dentro de form-grid */
.form-grid>label.event-switch-card>span{display:flex!important;flex-direction:column!important;gap:3px!important;margin:0!important}
.form-grid>label.event-switch-card strong,.form-grid>label.event-switch-card small{display:block!important}

/* Sectorfile SUEO · workflow */
.sector-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.sector-summary-card{padding:15px 17px;border-left:3px solid var(--brand);min-width:0}.sector-summary-card>span{display:block;font-size:10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:var(--muted)}.sector-summary-card>strong{display:block;font-size:20px;line-height:1.15;margin:8px 0 4px;overflow-wrap:anywhere}.sector-summary-card>small{display:block;font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sector-summary-card.is-ok{border-left-color:var(--ok)}.sector-summary-card.is-warning{border-left-color:var(--warning)}
.sector-workflow-panel{padding:20px}.sector-step-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.sector-step-number{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-readable,var(--brand));font-size:12px;font-weight:950}.sector-step-head h2{margin:1px 0 4px;font-size:17px}.sector-step-head p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.5}.sector-step-head code,.sector-workflow-panel code{font-size:.92em}
.sector-upload-form{display:flex;flex-direction:column;gap:12px}.sector-dropzone{border:1.5px dashed color-mix(in srgb,var(--brand) 38%,var(--border));background:var(--surface-2);border-radius:13px;min-height:126px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:5px;cursor:pointer;transition:.16s}.sector-dropzone:hover,.sector-dropzone.is-dragging{border-color:var(--brand);background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface-2));transform:translateY(-1px)}.sector-dropzone-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--brand-readable,var(--brand));margin-bottom:3px}.sector-dropzone strong{font-size:13px}.sector-dropzone small{font-size:10.5px;color:var(--muted)}.sector-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.sector-upload-preview{display:flex;flex-direction:column;gap:8px}.sector-upload-item{border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:10px 12px;display:grid;grid-template-columns:minmax(220px,.75fr) minmax(260px,1.25fr);gap:15px;align-items:center}.sector-upload-item>div{display:flex;align-items:center;gap:9px;min-width:0}.sector-upload-item>div>div{min-width:0;display:flex;flex-direction:column;gap:2px}.sector-upload-item strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sector-upload-item small{font-size:9.5px;color:var(--muted)}.sector-upload-item label>span{display:block;font-size:9.5px;font-weight:900;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.sector-upload-item input{width:100%;min-height:38px}
.sector-file-cell{display:flex;align-items:center;gap:9px;min-width:0}.sector-file-mark{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--border);background:var(--surface-2);font-size:9px;font-weight:950;color:var(--brand-readable,var(--brand))}.sector-file-cell>div{min-width:0;display:flex;flex-direction:column;gap:2px}.sector-file-cell small{font-size:9.5px;color:var(--muted)}.sector-file-link{color:var(--text);text-decoration:none}.sector-file-link:hover{color:var(--brand-readable,var(--brand));text-decoration:underline}.row-menu-card>small{display:block;font-size:9.5px;color:var(--muted);line-height:1.4;margin-top:-3px}
.sector-provider-alert{border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));background:color-mix(in srgb,var(--warning) 8%,var(--surface-2));border-radius:11px;padding:13px 14px;display:flex;flex-direction:column;gap:4px}.sector-provider-alert strong{font-size:12px}.sector-provider-alert span{font-size:10.5px;color:var(--muted)}.sector-provider-list{display:flex;flex-direction:column;gap:10px}.sector-provider-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:13px}.sector-provider-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.sector-provider-card>header>div{min-width:0}.sector-provider-card>header span:not(.badge){display:block;font-size:9px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:var(--muted)}.sector-provider-card h3{margin:3px 0 2px;font-size:13.5px}.sector-provider-card p{margin:0;color:var(--muted);font-size:10.5px;overflow-wrap:anywhere}.sector-provider-fields{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(300px,1.58fr);gap:10px}.sector-provider-fields label>span{display:block;font-size:9.5px;font-weight:900;text-transform:uppercase;color:var(--muted);margin:0 0 4px}.sector-provider-fields input{width:100%;min-height:39px}.sector-provider-fields input[readonly]{opacity:.72;cursor:not-allowed}.sector-readonly-note{margin-top:12px;border-top:1px solid var(--border);padding-top:11px;color:var(--muted);font-size:10.5px}
html[data-theme="dark"] .sector-dropzone-icon,html[data-theme="dark"] .sector-file-mark{color:#9fc5e5}html[data-theme="dark"] .sector-step-number{color:#a8cceb}html[data-theme="dark"] .sector-file-link:hover{color:#a8cceb}
@media(max-width:1050px){.sector-summary-grid{grid-template-columns:1fr 1fr}.sector-provider-fields{grid-template-columns:1fr}.sector-upload-item{grid-template-columns:1fr}}@media(max-width:620px){.sector-summary-grid{grid-template-columns:1fr}.sector-workflow-panel{padding:15px}.sector-step-head{gap:9px}.sector-step-number{width:27px;height:27px}.sector-upload-item{padding:10px}.sector-provider-card>header{flex-direction:column}}

/* Carga de examen · búsqueda de alumno */
.exam-student-picker{display:flex;flex-direction:column;gap:6px}.exam-student-picker>label>span{font-size:12px;font-weight:800}.exam-student-search{position:relative;display:flex;align-items:center}.exam-student-search>span{position:absolute;left:12px;color:var(--muted);font-size:14px;pointer-events:none}.exam-student-search input{width:100%;padding-left:34px}.exam-student-picker select{width:100%}.exam-student-picker>small{font-size:10.5px;color:var(--muted)}

/* Inscripción a eventos · checkbox compacto definitivo */
.event-signup-form .event-switch-card input[type=checkbox]{width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;min-height:17px!important;max-height:17px!important;padding:0!important;margin:1px 0 0!important;flex:0 0 17px!important;box-sizing:border-box!important;align-self:flex-start!important}
.event-signup-form .event-switch-card>span{display:grid!important;gap:2px!important;min-width:0!important}.event-signup-form .event-switch-card>span>strong,.event-signup-form .event-switch-card>span>small{display:block!important;margin:0!important}
.sector-upload-item input,.sector-provider-fields input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px;padding:8px 10px;outline:0;font-size:12px}.sector-upload-item input:focus,.sector-provider-fields input:focus{border-color:color-mix(in srgb,var(--brand) 56%,var(--border));box-shadow:var(--focus)}

/* v0.8.6 · Agenda: acciones de la inscripción propia */
.my-event-signup-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:7px!important;flex:0 0 auto;min-width:max-content}
.my-event-signup-actions form{display:inline-flex;margin:0}
@media(max-width:720px){.my-event-signup-actions{width:100%;min-width:0;justify-content:stretch}.my-event-signup-actions .table-btn,.my-event-signup-actions form,.my-event-signup-actions form button{flex:1;width:100%}}

/* v0.8.6 checkpoint 2 · semántica visual de Agenda */
.event-overview-item{position:relative;overflow:hidden}
.event-overview-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border)}
.event-overview-item.is-live:before{background:var(--ok)}
.event-overview-item.is-open:before{background:var(--brand-hover)}
.event-overview-item.is-upcoming:before{background:var(--cyan)}
.event-overview-item.is-history:before{background:var(--violet)}
.event-overview-item.is-live strong{color:var(--ok)}
.event-overview-item.is-open strong{color:var(--brand-hover)}
.event-overview-item.is-upcoming strong{color:var(--cyan)}
.event-overview-item.is-history strong{color:var(--violet)}
.agenda-column-open{border-color:color-mix(in srgb,var(--ok) 32%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--ok) 7%,transparent)}
.holder-group{border-left:3px solid color-mix(in srgb,var(--brand-hover) 70%,var(--brand));padding-left:14px}
.reserve-group{border-left:3px solid var(--warning);padding-left:14px}
.assignment-row-v2.is-holder{background:color-mix(in srgb,var(--brand-soft) 48%,transparent);padding-left:10px;padding-right:10px;border-radius:9px}
.assignment-row-v2.is-reserve{background:color-mix(in srgb,var(--warning-bg) 42%,transparent);padding-left:10px;padding-right:10px;border-radius:9px}
.assignment-row-v2.is-holder .assignment-position strong{color:var(--brand-hover)}
.assignment-row-v2.is-reserve .assignment-position strong{color:var(--warning)}
.position-chips span{border-color:color-mix(in srgb,var(--brand-hover) 28%,var(--border));background:color-mix(in srgb,var(--brand-soft) 66%,var(--surface-2));color:var(--brand-hover)}
.my-event-signup-row.is-holder{border-color:color-mix(in srgb,var(--brand-hover) 35%,var(--line));background:color-mix(in srgb,var(--brand-soft) 52%,var(--panel-soft))}
.my-event-signup-row.is-reserve{border-color:color-mix(in srgb,var(--warning) 35%,var(--line));background:color-mix(in srgb,var(--warning-bg) 38%,var(--panel-soft))}
.my-event-reserve-cta{margin-top:4px;padding:11px 12px;border:1px dashed color-mix(in srgb,var(--warning) 45%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--warning-bg) 32%,var(--surface-2));display:flex;align-items:center;justify-content:space-between;gap:12px}
.my-event-reserve-cta>div{display:flex;flex-direction:column;gap:3px}.my-event-reserve-cta strong{font-size:11.5px;color:var(--warning)}.my-event-reserve-cta small{font-size:10.5px;color:var(--muted)}
.reserve-action-btn{border-color:color-mix(in srgb,var(--warning) 38%,var(--border));color:var(--warning);background:color-mix(in srgb,var(--warning-bg) 55%,var(--surface))}
.event-switch-card.reserve-mode{border-color:color-mix(in srgb,var(--warning) 38%,var(--border));background:color-mix(in srgb,var(--warning-bg) 40%,var(--surface-2))}
.event-switch-card.is-locked{cursor:default}.event-switch-card.is-locked input{pointer-events:none}
.signup-state-card.open{border-color:color-mix(in srgb,var(--ok) 35%,var(--border));background:color-mix(in srgb,var(--ok-bg) 45%,var(--surface-2))}
html[data-theme="dark"] .event-overview-item.is-live strong{color:#55c58b}
html[data-theme="dark"] .event-overview-item.is-open strong,.assignment-row-v2.is-holder .assignment-position strong,.position-chips span{color:#8db6d8}
html[data-theme="dark"] .event-overview-item.is-upcoming strong{color:#61c3ce}
html[data-theme="dark"] .event-overview-item.is-history strong{color:#b69be3}
html[data-theme="dark"] .assignment-row-v2.is-reserve .assignment-position strong,html[data-theme="dark"] .my-event-reserve-cta strong,html[data-theme="dark"] .reserve-action-btn{color:#e5b95d}
@media(max-width:720px){.my-event-reserve-cta{align-items:stretch;flex-direction:column}.my-event-reserve-cta .secondary-btn{width:100%}}


/* ==========================================================
   v0.8.7 · Miembros FIR + imágenes de Agenda ampliables
   ========================================================== */
.event-card-image{position:relative;cursor:zoom-in;outline:0}
.event-card-image:focus-visible{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--brand-hover) 75%,transparent)}
.event-card-image-zoom{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;background:rgba(5,13,20,.78);color:#fff;font-size:9px;font-weight:850;opacity:0;transform:translateY(3px);transition:.15s;pointer-events:none;backdrop-filter:blur(6px)}
.event-card-image:hover .event-card-image-zoom,.event-card-image:focus-visible .event-card-image-zoom{opacity:1;transform:none}
.event-hero-v2:not(.is-past) .event-image-zoom img{object-fit:cover!important}
.event-hero-v2:not(.is-past) .event-image-zoom{min-height:310px;border-radius:0}

.roster-head-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.roster-profile-grid{display:grid;grid-template-columns:1.15fr .9fr .95fr;gap:16px;align-items:stretch}
.roster-profile-card{min-width:0}
.roster-fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.roster-fact-grid>div{min-width:0;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:11px 12px;display:flex;flex-direction:column;gap:4px}
.roster-fact-grid>div>span,.roster-rating-row>span,.roster-stats-grid span{font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.roster-fact-grid>div>strong{font-size:11.5px;line-height:1.4;overflow-wrap:anywhere}
.roster-fact-grid.compact{grid-template-columns:1fr 1fr}
.roster-rating-list{display:flex;flex-direction:column;gap:9px}
.roster-rating-row{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:12px 13px 12px 16px;display:flex;flex-direction:column;gap:4px}
.roster-rating-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border)}
.roster-rating-row.atc:before{background:var(--brand-hover)}
.roster-rating-row.pilot:before{background:var(--violet)}
.roster-rating-row.military:before{background:var(--warning)}
.roster-rating-row strong{font-size:11.5px;line-height:1.45}
.roster-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px}
.roster-stats-grid>div{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding:12px 13px;display:flex;flex-direction:column;gap:5px}
.roster-stats-grid>div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border)}
.roster-stats-grid>div.primary:before{background:var(--brand-hover)}
.roster-stats-grid>div.violet:before{background:var(--violet)}
.roster-stats-grid strong{font-size:19px;line-height:1.1}
.roster-subtools{margin:0 -20px;border-top:1px solid var(--border)}
html[data-theme="dark"] .roster-rating-row.atc strong,
html[data-theme="dark"] .roster-head-meta .badge.primary{color:#9fc5e5}
html[data-theme="dark"] .roster-rating-row.pilot strong{color:#b69be3}
html[data-theme="dark"] .roster-rating-row.military strong{color:#e5b95d}
@media(max-width:1180px){.roster-profile-grid{grid-template-columns:1fr 1fr}.roster-profile-grid>.roster-profile-card:first-child{grid-column:1/-1}}
@media(max-width:760px){.roster-profile-grid,.roster-fact-grid,.roster-fact-grid.compact{grid-template-columns:1fr}.roster-profile-grid>.roster-profile-card:first-child{grid-column:auto}.roster-subtools .searchbox{min-width:0;width:100%}}

/* v0.8.8 · Miembros FIR */
th.is-sortable{cursor:pointer;user-select:none;position:relative;padding-right:27px}
th.is-sortable:after{content:"↕";position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;opacity:.38}
th.is-sortable.sort-asc:after{content:"↑";opacity:.9;color:var(--brand)}
th.is-sortable.sort-desc:after{content:"↓";opacity:.9;color:var(--brand)}
th.is-sortable:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:-2px}
.roster-list-panel{overflow:visible}.roster-filter-bar{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(5,minmax(135px,.72fr)) auto;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border);align-items:end;background:color-mix(in srgb,var(--surface-2) 62%,var(--surface))}.roster-filter-bar>label{display:flex;flex-direction:column;gap:5px;min-width:0}.roster-filter-bar>label>span{font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--muted)}.roster-filter-bar select{width:100%;min-height:40px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);padding:8px 30px 8px 10px;font:inherit;font-size:11px}.roster-search{min-width:0}.roster-clear-filters{height:40px}.roster-count-row{justify-content:space-between}.roster-count-row small{font-size:9.5px;color:var(--muted)}
.roster-profile-card{position:relative;overflow:hidden}.roster-profile-card:before,.roster-activity-panel:before,.roster-live-panel:before,.roster-history-panel:before,.roster-config-panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border)}.roster-profile-card,.roster-activity-panel,.roster-live-panel,.roster-history-panel,.roster-config-panel{position:relative;overflow:hidden}.roster-profile-card.identity-card:before{background:var(--brand-hover)}.roster-profile-card.ratings-card:before{background:var(--violet)}.roster-profile-card.status-card:before{background:var(--ok)}.roster-activity-panel:before{background:var(--warning)}.roster-live-panel:before{background:var(--ok)}.roster-history-panel.atc-history:before{background:var(--brand-hover)}.roster-history-panel.pilot-history:before{background:var(--violet)}
.roster-profile-card.identity-card .roster-fact-grid>div{background:color-mix(in srgb,var(--brand-soft) 30%,var(--surface-2));border-color:color-mix(in srgb,var(--brand-hover) 16%,var(--border))}.roster-profile-card.status-card .roster-fact-grid>div{background:color-mix(in srgb,var(--ok-bg) 28%,var(--surface-2));border-color:color-mix(in srgb,var(--ok) 14%,var(--border))}.status-text.is-ok{color:var(--ok)}.status-text.is-danger{color:var(--danger)}.status-text.is-muted{color:var(--muted)}
.notice-card.info{border-left:3px solid var(--brand-hover);background:color-mix(in srgb,var(--brand-soft) 35%,var(--surface))}.member-live-warning strong{font-size:13px}.member-live-warning span{font-size:11px;line-height:1.5}
.roster-history-panel.atc-history thead th{background:color-mix(in srgb,var(--brand-soft) 44%,var(--surface-2))}.roster-history-panel.pilot-history thead th{background:color-mix(in srgb,var(--violet) 7%,var(--surface-2))}
.roster-settings-form{gap:16px}.roster-config-panel.atc-config:before{background:var(--brand-hover)}.roster-config-panel.pilot-config:before{background:var(--violet)}.roster-config-panel.military-config:before{background:var(--warning)}.roster-config-panel.status-config:before{background:var(--ok)}.roster-config-panel{padding-bottom:20px}.roster-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px}.roster-config-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-config-grid input{width:100%}.roster-config-grid .field>span{font-size:10px}.roster-config-grid .field>span small{font-size:9px;margin-left:4px}.sticky-actions{position:sticky;bottom:14px;z-index:8;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:flex;gap:9px;justify-content:flex-end}
html[data-theme="dark"] th.is-sortable.sort-asc:after,html[data-theme="dark"] th.is-sortable.sort-desc:after{color:#9fc5e5}html[data-theme="dark"] .roster-profile-card.identity-card .roster-fact-grid>div{background:color-mix(in srgb,var(--brand-soft) 52%,var(--surface-2))}html[data-theme="dark"] .roster-history-panel.atc-history thead th{background:color-mix(in srgb,var(--brand-soft) 60%,var(--surface-2))}html[data-theme="dark"] .roster-history-panel.pilot-history thead th{background:color-mix(in srgb,var(--violet) 13%,var(--surface-2))}
@media(max-width:1450px){.roster-filter-bar{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(140px,.8fr));}.roster-clear-filters{align-self:end}.roster-filter-bar>label:nth-of-type(n+4){grid-row:2}}
@media(max-width:900px){.roster-filter-bar{grid-template-columns:1fr 1fr}.roster-search{grid-column:1/-1}.roster-config-grid,.roster-config-grid.two{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.roster-filter-bar,.roster-config-grid,.roster-config-grid.two{grid-template-columns:1fr}.roster-filter-bar>label:nth-of-type(n+4){grid-row:auto}.roster-clear-filters{width:100%}.sticky-actions{position:static;flex-direction:column}.sticky-actions>*{width:100%}}
.roster-section-tabs{display:inline-flex;align-items:center;gap:5px;padding:5px;margin:-4px 0 16px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.roster-section-tabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:850}.roster-section-tabs a:hover{background:var(--surface-2);color:var(--text)}.roster-section-tabs a.active{background:var(--brand-soft);color:var(--brand)}html[data-theme="dark"] .roster-section-tabs a.active{color:#9fc5e5}

/* v0.8.9 · Denuncias */
.blacklist-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.blacklist-stats .metric-card{position:relative;overflow:hidden}.blacklist-stats .metric-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.metric-card.tone-blue:before{background:#4f8fc4}.metric-card.tone-red:before{background:#d85c54}.metric-card.tone-amber:before{background:#d79a38}.metric-card.tone-violet:before{background:#866ec7}.blacklist-new-panel{border-top:3px solid rgba(43,88,125,.7)}.blacklist-list-head{align-items:center}.blacklist-person-list{display:flex;flex-direction:column;gap:10px;padding:0 16px 16px}.blacklist-person-card{border:1px solid var(--border);border-radius:15px;background:var(--surface);overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease}.blacklist-person-card:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));box-shadow:0 8px 24px rgba(31,58,80,.06)}.blacklist-person-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:15px 16px}.blacklist-person-main{display:flex;align-items:center;gap:12px;min-width:0}.blacklist-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-size:16px;font-weight:900;flex:0 0 auto}.blacklist-person-main h3{margin:2px 0 3px;font-size:14px}.blacklist-person-main p{margin:0;color:var(--muted);font-size:10.5px}.blacklist-person-flags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.blacklist-history{border-top:1px solid var(--border);background:var(--surface-2);padding:12px;display:flex;flex-direction:column;gap:9px}.blacklist-history[hidden]{display:none}.blacklist-report{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px}.blacklist-report.is-latest{border-left:3px solid var(--brand)}.blacklist-report-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:9px;color:var(--muted);font-size:10px}.blacklist-report-meta strong{color:var(--text);font-size:10.5px}.blacklist-report-note{font-size:12.5px;line-height:1.62;color:var(--text);white-space:normal}.blacklist-report-actions{display:flex;justify-content:flex-end;gap:7px;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid var(--border)}.blacklist-report-actions form{margin:0}.blacklist-person-danger{margin-top:3px;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--border));border-radius:12px;padding:12px 13px;background:var(--danger-bg);display:flex;align-items:center;justify-content:space-between;gap:14px}.blacklist-person-danger div{display:flex;flex-direction:column;gap:2px}.blacklist-person-danger strong{font-size:11px;color:var(--danger)}.blacklist-person-danger small{font-size:9.5px;color:var(--muted)}.blacklist-edit-modal[hidden]{display:none}.blacklist-edit-modal{position:fixed;z-index:131;left:50%;top:50%;transform:translate(-50%,-50%);width:min(650px,calc(100vw - 28px));max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.3);padding:20px}.blacklist-edit-modal+.modal-backdrop{z-index:130}.blacklist-edit-field{display:flex;flex-direction:column;gap:6px;margin-top:16px}.blacklist-edit-field>span{font-size:11px;font-weight:850}.blacklist-edit-modal .inline-alert.warning{margin:12px 0 0;background:var(--warning-bg);color:var(--warning)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.warning{background:var(--warning-bg);color:var(--warning)}
@media(max-width:900px){.blacklist-stats{grid-template-columns:1fr 1fr}.blacklist-person-summary{grid-template-columns:1fr auto}.blacklist-person-flags{grid-column:1/-1;justify-content:flex-start}.blacklist-person-summary>.secondary-btn{grid-row:1;grid-column:2}.blacklist-person-danger{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.blacklist-stats{grid-template-columns:1fr}.blacklist-person-summary{grid-template-columns:1fr}.blacklist-person-summary>.secondary-btn{grid-row:auto;grid-column:auto;width:100%}.blacklist-person-main{align-items:flex-start}.blacklist-report-meta{align-items:flex-start;flex-direction:column;gap:4px}.blacklist-report-actions{justify-content:stretch}.blacklist-report-actions>*{flex:1}.blacklist-report-actions button{width:100%}}
html[data-theme="dark"] .blacklist-person-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.16)}

/* v0.8.10 · Notification bell / global notification center */
.notification-center{position:relative;z-index:65}
.notification-bell{position:relative;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);display:grid;place-items:center;transition:.16s ease;box-shadow:none}
.notification-bell:hover,.notification-bell[aria-expanded="true"]{color:var(--text);border-color:color-mix(in srgb,var(--brand) 34%,var(--border));background:var(--surface-2)}
.notification-bell.has-unread{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--brand) 24%,transparent)}
.notification-bell.has-unread.priority-high{background:#b87520;border-color:#b87520}.notification-bell.has-unread.priority-critical{background:#b93a35;border-color:#b93a35}
.notification-bell-badge{position:absolute;right:-7px;top:-7px;min-width:19px;height:19px;border-radius:999px;background:#d84c45;color:#fff;border:2px solid var(--surface);display:inline-flex;align-items:center;justify-content:center;padding:0 4px;font-size:9px;font-weight:950;line-height:1;box-shadow:0 3px 9px rgba(0,0,0,.18)}
.notification-bell-badge[hidden]{display:none}
.notification-popover[hidden]{display:none}.notification-popover{position:absolute;right:0;top:calc(100% + 10px);width:min(430px,calc(100vw - 28px));background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 65px rgba(15,23,42,.24);overflow:hidden;color:var(--text);z-index:90}
.notification-popover-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid var(--border);background:var(--surface)}
.notification-popover-head>div{display:flex;flex-direction:column;gap:2px}.notification-popover-head strong{font-size:13.5px}.notification-popover-head span{font-size:10px;color:var(--muted);font-weight:700}
.notification-popover-action{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;padding:6px 9px;font-size:9.5px;font-weight:850}.notification-popover-action:disabled{opacity:.42;cursor:default}
.notification-popover-list{max-height:min(480px,63vh);overflow:auto;padding:8px;display:flex;flex-direction:column;gap:7px;overscroll-behavior:contain}
.notification-popover-item{--notify-accent:#7f8b96;position:relative;border:1px solid var(--border);border-left:4px solid var(--notify-accent);border-radius:12px;background:var(--surface);display:grid;grid-template-columns:minmax(0,1fr) 28px;overflow:hidden;transition:.15s ease}
.notification-popover-item:hover{border-color:color-mix(in srgb,var(--notify-accent) 45%,var(--border));transform:translateY(-1px);box-shadow:0 6px 18px rgba(20,35,47,.06)}
.notification-popover-item.is-unread{background:color-mix(in srgb,var(--notify-accent) 7%,var(--surface));border-left-width:5px}.notification-popover-item.is-read{opacity:.78}
.notification-popover-item.source-flamingo{--notify-accent:#3d8b72}.notification-popover-item.source-event_agenda{--notify-accent:#4d78a0}.notification-popover-item.source-instruccion{--notify-accent:#7864ad}.notification-popover-item.source-notams{--notify-accent:#b1772b}.notification-popover-item.source-sectorfile{--notify-accent:#3d879f}.notification-popover-item.source-escenarios{--notify-accent:#568452}.notification-popover-item.source-blacklist{--notify-accent:#bd5550}.notification-popover-item.source-roster{--notify-accent:#6d7d8c}
.notification-popover-main{display:block;min-width:0;text-decoration:none;padding:11px 7px 11px 11px}.notification-popover-main>strong{display:block;font-size:12.5px;line-height:1.32;margin:5px 0 3px}.notification-popover-main>p{font-size:11px;line-height:1.42;color:var(--muted);margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.notification-popover-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.notification-popover-meta time{font-size:9px;color:var(--muted);margin-left:auto}.notification-source-pill,.notification-mandatory{display:inline-flex;align-items:center;min-height:18px;border-radius:999px;padding:2px 6px;font-size:8.5px;font-weight:900;line-height:1;background:color-mix(in srgb,var(--notify-accent) 11%,var(--surface));color:var(--notify-accent)}.notification-mandatory{background:var(--danger-bg);color:var(--danger)}
.notification-popover-delete{align-self:start;margin:7px 6px 0 0;width:24px;height:24px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);display:grid;place-items:center;font-size:17px;line-height:1}.notification-popover-delete:hover{background:var(--danger-bg);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 20%,var(--border))}
.notification-popover-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:var(--muted)}.notification-popover-empty strong{font-size:12px;color:var(--text)}.notification-popover-empty span{font-size:10px}
.notification-popover-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.notification-popover-foot a{font-size:10px;font-weight:850;color:var(--brand);text-decoration:none}.notification-popover-foot a:hover{text-decoration:underline}
html[data-theme="dark"] .notification-bell-badge{border-color:var(--surface)}
html[data-theme="dark"] .notification-popover{box-shadow:0 28px 70px rgba(0,0,0,.48)}
html[data-theme="dark"] .notification-popover-item.is-unread{background:color-mix(in srgb,var(--notify-accent) 13%,var(--surface))}

/* v0.8.10 · Notification history polish */
.notification-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.notification-stat{border:1px solid var(--border);background:var(--surface);border-radius:13px;padding:14px 15px;position:relative;overflow:hidden}.notification-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand)}.notification-stat.pending:before{background:#c07a23}.notification-stat.total:before{background:var(--brand)}.notification-stat.sources:before{background:#7864ad}.notification-stat span{display:block;color:var(--muted);font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.notification-stat strong{display:block;font-size:26px;margin-top:6px}
.notification-history-item{--notify-accent:var(--brand);display:grid;grid-template-columns:5px minmax(0,1fr) auto;border:1px solid var(--border);border-radius:13px;background:var(--surface);overflow:hidden}.notification-history-item+.notification-history-item{margin-top:9px}.notification-history-accent{background:var(--notify-accent)}.notification-history-item.source-flamingo{--notify-accent:#3d8b72}.notification-history-item.source-event_agenda{--notify-accent:#4d78a0}.notification-history-item.source-instruccion{--notify-accent:#7864ad}.notification-history-item.source-notams{--notify-accent:#b1772b}.notification-history-item.source-sectorfile{--notify-accent:#3d879f}.notification-history-item.source-escenarios{--notify-accent:#568452}.notification-history-item.source-blacklist{--notify-accent:#bd5550}.notification-history-item.source-roster{--notify-accent:#6d7d8c}.notification-history-item.is-unread{background:color-mix(in srgb,var(--notify-accent) 6%,var(--surface));border-color:color-mix(in srgb,var(--notify-accent) 30%,var(--border))}.notification-history-copy{padding:14px 15px;min-width:0}.notification-history-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:7px}.notification-history-source{display:inline-flex;border-radius:999px;padding:3px 7px;background:color-mix(in srgb,var(--notify-accent) 11%,var(--surface));color:var(--notify-accent);font-size:9px;font-weight:900}.notification-history-state{font-size:9px;font-weight:850;color:var(--muted)}.notification-history-state.pending{color:#a76612}.notification-history-priority{font-size:8.5px;text-transform:uppercase;font-weight:900;letter-spacing:.035em;color:var(--muted)}.notification-history-priority.high{color:#a76612}.notification-history-priority.critical{color:var(--danger)}.notification-history-top time{margin-left:auto;color:var(--muted);font-size:9.5px}.notification-history-copy h3{font-size:13.5px;margin:0 0 5px}.notification-history-copy p{font-size:11.5px;line-height:1.52;color:var(--muted);margin:0}.notification-history-actions{display:flex;align-items:center;gap:6px;padding:10px 11px}.notification-history-actions form{margin:0}
@media(max-width:700px){.notification-popover{position:fixed;right:12px;left:12px;top:68px;width:auto}.notification-stats{grid-template-columns:1fr}.notification-history-item{grid-template-columns:5px minmax(0,1fr)}.notification-history-actions{grid-column:2;justify-content:flex-start;padding:0 15px 12px}.notification-popover-meta time{width:100%;margin-left:0}.notification-popover-list{max-height:62vh}}
.notification-layout .permission-stack{grid-template-columns:1fr}


/* v0.8.10 checkpoint 2 · notificaciones: solo pendientes + contraste/legibilidad */
.notification-popover{width:min(470px,calc(100vw - 28px))}
.notification-popover-head{padding:16px 17px;background:var(--surface)}
.notification-popover-head strong{font-size:15px;line-height:1.25}
.notification-popover-head span{font-size:11px;line-height:1.35}
.notification-popover-action{padding:7px 11px;font-size:10.5px}
.notification-popover-list{padding:10px;gap:8px}
.notification-popover-item{grid-template-columns:minmax(0,1fr) 32px;border-left-width:4px;background:var(--surface-2);border-radius:13px}
.notification-popover-item.is-unread{background:var(--surface-2);border-color:var(--border);border-left-color:var(--notify-accent);border-left-width:4px;opacity:1}
.notification-popover-item:hover{background:color-mix(in srgb,var(--surface-2) 72%,var(--surface));border-color:color-mix(in srgb,var(--notify-accent) 38%,var(--border));border-left-color:var(--notify-accent);transform:none;box-shadow:0 5px 16px rgba(20,35,47,.08)}
.notification-popover-main{padding:13px 8px 13px 13px}
.notification-popover-main>strong{font-size:14px;line-height:1.35;margin:7px 0 4px;color:var(--text);letter-spacing:-.01em}
.notification-popover-main>p{font-size:12px;line-height:1.5;color:var(--muted);-webkit-line-clamp:3}
.notification-popover-meta{gap:7px}
.notification-popover-meta time{font-size:10px;line-height:1.2;color:var(--muted);font-weight:650}
.notification-source-pill{gap:6px;min-height:21px;padding:3px 8px;font-size:9.5px;line-height:1;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.notification-source-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--notify-accent);flex:0 0 auto}
.notification-mandatory{min-height:21px;padding:3px 8px;font-size:9px}
.notification-popover-delete{margin:9px 7px 0 0;width:26px;height:26px;font-size:16px;color:var(--muted);border-color:transparent}
.notification-popover-empty{min-height:165px;gap:7px}.notification-popover-empty strong{font-size:14px}.notification-popover-empty span{font-size:11px}
.notification-popover-foot{padding:11px 16px}.notification-popover-foot a{font-size:11px;color:var(--text);opacity:.82}.notification-popover-foot a:hover{color:var(--brand-hover);opacity:1;text-decoration:none}

/* El historial puede usar más aire porque ya no compite con la campanita. */
.notification-history-source{font-size:10px;padding:4px 8px;color:var(--text);background:var(--surface-2);border:1px solid var(--border)}
.notification-history-source:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--notify-accent);margin-right:6px;display:inline-block}
.notification-history-state{font-size:10px}.notification-history-priority{font-size:9.5px}.notification-history-top time{font-size:10.5px}
.notification-history-copy h3{font-size:15px;line-height:1.35}.notification-history-copy p{font-size:12.5px;line-height:1.55}

html[data-theme="dark"] .notification-popover{background:#151f27;border-color:#34434e}
html[data-theme="dark"] .notification-popover-head{background:#151f27}
html[data-theme="dark"] .notification-popover-list{background:#10181f}
html[data-theme="dark"] .notification-popover-item,
html[data-theme="dark"] .notification-popover-item.is-unread{background:#18242d;border-color:#31414d;border-left-color:var(--notify-accent)}
html[data-theme="dark"] .notification-popover-item:hover{background:#1c2a34;border-color:#425564;border-left-color:var(--notify-accent);box-shadow:0 6px 18px rgba(0,0,0,.2)}
html[data-theme="dark"] .notification-source-pill{background:#111a21;border-color:#394a57;color:#edf3f7}
html[data-theme="dark"] .notification-popover-main>strong{color:#f3f7fa}
html[data-theme="dark"] .notification-popover-main>p,
html[data-theme="dark"] .notification-popover-meta time{color:#b7c4ce}
html[data-theme="dark"] .notification-popover-foot{background:#111920}
html[data-theme="dark"] .notification-popover-foot a{color:#dbe7ef}
html[data-theme="dark"] .notification-popover-foot a:hover{color:#9bc8e6}
html[data-theme="dark"] .notification-history-source{background:#111a21;border-color:#394a57;color:#edf3f7}
html[data-theme="dark"] .notification-history-item.is-unread{background:#18242d;border-color:#31414d}
html[data-theme="dark"] .notification-history-state.pending,
html[data-theme="dark"] .notification-history-priority.high{color:#f0b45d}

@media(max-width:700px){.notification-popover-main>strong{font-size:13.5px}.notification-popover-main>p{font-size:11.5px}}

/* v0.8.11 · interacción de campanita */
.notification-popover-item{cursor:pointer}
.notification-popover-item.is-opening{opacity:.62;pointer-events:none}
.notification-popover-item.is-opening .notification-popover-main:after{content:'Marcando leída…';display:block;margin-top:7px;font-size:10px;font-weight:800;color:var(--muted)}

/* ==========================================================
   v0.8.12 · Escenarios + QA visual global
   ========================================================== */
.scenery-page-head,.scenery-form-head{align-items:center}
.scenery-health-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:10px;font-weight:850;color:var(--muted);white-space:nowrap}
.scenery-health-pill i,.scenery-health-item>i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.scenery-health-pill.is-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 26%,var(--border));background:color-mix(in srgb,var(--ok-bg) 56%,var(--surface))}.scenery-health-pill.is-ok i,.scenery-health-item.is-ok>i{background:var(--ok)}
.scenery-health-pill.is-warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 28%,var(--border));background:color-mix(in srgb,var(--warning-bg) 58%,var(--surface))}.scenery-health-pill.is-warning i,.scenery-health-item.is-warning>i{background:var(--warning)}
.scenery-metrics .metric-card:nth-child(1):before{background:var(--brand-hover)}
.scenery-health-panel{padding:0;margin-bottom:18px;overflow:hidden}.scenery-health-panel>summary{list-style:none;cursor:pointer;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;gap:18px}.scenery-health-panel>summary::-webkit-details-marker{display:none}.scenery-health-panel>summary span{display:flex;flex-direction:column;gap:3px}.scenery-health-panel>summary strong{font-size:12px}.scenery-health-panel>summary small{font-size:10px;color:var(--muted)}.scenery-health-panel>summary>b{font-size:10px;color:var(--muted)}.scenery-health-panel[open]>summary{border-bottom:1px solid var(--border)}
.scenery-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.scenery-health-item{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;border-right:1px solid var(--border);background:var(--surface-2)}.scenery-health-item:last-child{border-right:0}.scenery-health-item>i{margin-top:4px}.scenery-health-item>span{display:flex;flex-direction:column;gap:2px;min-width:0}.scenery-health-item strong{font-size:10.5px}.scenery-health-item small{font-size:9.5px;color:var(--muted);line-height:1.35}
.scenery-filter-bar{display:grid;grid-template-columns:minmax(280px,1.6fr) repeat(3,minmax(150px,.75fr)) auto;gap:10px;padding:15px 16px;border-bottom:1px solid var(--border);align-items:end;background:color-mix(in srgb,var(--surface-2) 58%,var(--surface))}.scenery-filter-bar>label{display:flex;flex-direction:column;gap:5px;min-width:0}.scenery-filter-bar>label>span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.065em;color:var(--muted)}.scenery-filter-bar select{min-height:40px;width:100%;border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:7px 30px 7px 10px;font-size:11px}.scenery-search{min-width:0;height:40px}.scenery-clear-filters{height:40px}.scenery-count-row small{font-size:9.5px;color:var(--muted)}
.scenery-cover-cell{width:86px}.scenery-cover-thumb{width:64px;height:46px;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2);position:relative;display:block}.scenery-cover-thumb img{width:100%;height:100%;object-fit:cover;display:block}.scenery-cover-thumb span{position:absolute;right:4px;bottom:4px;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;background:rgba(5,13,20,.78);color:#fff;opacity:0;transition:.15s}.scenery-cover-thumb:hover span,.scenery-cover-thumb:focus-visible span{opacity:1}.scenery-cover-empty{width:64px;height:46px;display:grid;place-items:center;border:1px dashed var(--border);border-radius:8px;background:var(--surface-2);color:var(--muted)}
.scenery-download-btn{display:inline-flex;align-items:center;gap:6px}.scenery-empty{margin:18px;border-radius:12px}.scenery-list-panel tbody td{font-size:12px}.scenery-list-panel .inline-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.scenery-list-panel .inline-actions form{margin:0}
.scenery-form{display:flex;flex-direction:column;gap:16px}.scenery-form-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:18px;align-items:start}.scenery-form-panel{position:relative;overflow:hidden}.scenery-form-panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border)}.scenery-form-panel.identity:before{background:var(--brand-hover)}.scenery-form-panel.download:before{background:var(--cyan)}.scenery-form-panel.cover:before{background:var(--violet)}.scenery-form-panel.storage:before{background:var(--ok)}
.scenery-form .field>small{font-size:9.5px;line-height:1.45;color:var(--muted)}.scenery-file-field input[type="file"]{padding:10px;background:var(--surface-2);border-style:dashed}.scenery-current-file{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;padding:12px;margin-bottom:15px;border:1px solid color-mix(in srgb,var(--cyan) 25%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--cyan) 6%,var(--surface-2))}.scenery-file-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--cyan) 13%,var(--surface));color:var(--cyan)}.scenery-current-file>div{display:flex;flex-direction:column;gap:3px;min-width:0}.scenery-current-file span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}.scenery-current-file a{font-size:11.5px;font-weight:850;color:var(--text);text-decoration:none;overflow-wrap:anywhere}.scenery-current-file a:hover{color:var(--brand-hover)}.scenery-current-file small{font-size:9px;color:var(--muted);overflow-wrap:anywhere}
.scenery-cover-preview{min-height:190px;margin-bottom:14px}.scenery-cover-current{width:100%;height:210px;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden;position:relative}.scenery-cover-current img{width:100%;height:100%;object-fit:contain;display:block;background:color-mix(in srgb,var(--surface-2) 85%,#000)}.scenery-cover-current>span{position:absolute;right:9px;bottom:9px;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;background:rgba(5,13,20,.78);color:#fff;font-size:9.5px;font-weight:850}.scenery-cover-placeholder{min-height:190px;border:1px dashed var(--border);border-radius:12px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;color:var(--muted)}.scenery-cover-placeholder strong{font-size:12px;color:var(--text)}.scenery-cover-placeholder span{font-size:9.5px;max-width:210px;line-height:1.45}.scenery-cover-preview.is-local img{object-fit:contain}
.scenery-safe-toggle{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.scenery-safe-toggle input{width:17px;height:17px;min-width:17px;margin:1px 0 0;accent-color:var(--brand)}.scenery-safe-toggle>span{display:flex;flex-direction:column;gap:3px}.scenery-safe-toggle strong{font-size:10.5px}.scenery-safe-toggle small{font-size:9.5px;color:var(--muted);line-height:1.4}.scenery-health-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:11px;overflow:hidden}.scenery-health-list .scenery-health-item{border-right:0;border-bottom:1px solid var(--border)}.scenery-health-list .scenery-health-item:last-child{border-bottom:0}.scenery-form-actions{position:sticky;bottom:12px;z-index:6;display:flex;justify-content:flex-end;gap:9px;padding:12px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);box-shadow:var(--shadow)}
html[data-theme="dark"] .scenery-health-pill.is-ok{color:#69d39b}html[data-theme="dark"] .scenery-health-pill.is-warning{color:#efbd62}html[data-theme="dark"] .scenery-form-panel.identity .eyebrow,html[data-theme="dark"] .scenery-download-btn{color:#a4cce9}html[data-theme="dark"] .scenery-current-file{background:#14252d;border-color:#31515d}html[data-theme="dark"] .scenery-file-icon{color:#70c7d2;background:#17313a}html[data-theme="dark"] .scenery-cover-current img{background:#0d1419}

/* QA visual: links/accentos deben mantener contraste en oscuro. */
html[data-theme="dark"] .text-link,html[data-theme="dark"] .table-link,html[data-theme="dark"] .metric-cta,html[data-theme="dark"] .history-panel>summary>b{color:#9bc8e6}
html[data-theme="dark"] .badge.primary{color:#a4cce9;border-color:#35536a;background:#172c3c}
html[data-theme="dark"] .nav-item.active{color:#b7d8ef}

@media(max-width:1150px){.scenery-filter-bar{grid-template-columns:1fr 1fr 1fr}.scenery-search{grid-column:1/-1}.scenery-clear-filters{width:100%}.scenery-form-layout{grid-template-columns:1fr}.scenery-form-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.scenery-form-layout>aside .panel{margin:0}}
@media(max-width:760px){.scenery-page-head,.scenery-form-head{align-items:flex-start}.scenery-page-head .page-head-actions,.scenery-form-head .page-head-actions{width:100%;flex-wrap:wrap}.scenery-page-head .page-head-actions>*{flex:1}.scenery-health-grid{grid-template-columns:1fr 1fr}.scenery-health-item:nth-child(2){border-right:0}.scenery-filter-bar{grid-template-columns:1fr}.scenery-search{grid-column:auto}.scenery-form-layout>aside{grid-template-columns:1fr}.scenery-form-actions{position:static}.scenery-form-actions>*{flex:1}.scenery-cover-current{height:190px}}

/* ==========================================================
   v0.8.13 · QA transversal: legibilidad, dark mode y responsive
   ========================================================== */
/* Jerarquía tipográfica coherente en toda la Consola. */
.page .eyebrow,.page .section-kicker{font-size:11px;line-height:1.3}
.page .panel-head p,.page .panel>p{font-size:13.25px;line-height:1.55}
.page .section-note,.page .panel-note{font-size:12px;line-height:1.55}
.table-wrap table{font-size:13.5px}
.table-wrap th,table th{font-size:11px;line-height:1.3}
.table-wrap td,table td{font-size:13.25px;line-height:1.45}
.cell-note{font-size:11.75px!important;line-height:1.45}
.badge{font-size:10.5px;line-height:1.15}
.table-btn{font-size:11.75px;line-height:1.2}
.field>span,.form-grid>label>span,.form-stack>label>span{font-size:11.5px;line-height:1.35}
.field>small,.form-grid>label>small,.form-stack>label>small{font-size:10.75px;line-height:1.5}
.empty-state p,.empty-state.small p{font-size:12px;line-height:1.55}

/* Componentes que todavía conservaban texto excesivamente chico. */
.event-date,.event-meta,.history-panel>summary small,.position-chips span,
.signup-state-card small,.request-highlight-grid span,.request-all-fields dt,
.conversation-meta,.timeline-dot+div small,.notam-filterbar>label>span,
.notam-archive-filter small,.notam-tags span,.notam-severity,.notam-no-image,
.notam-image-card-foot>span,.notam-upload-block small,.notam-switch small,
.notam-publish-summary>span,.notam-publish-summary>small,.scenery-health-panel>summary small,
.scenery-health-item small,.scenery-filter-bar>label>span,.scenery-count-row small,
.scenery-form .field>small,.scenery-current-file span,.scenery-current-file small,
.scenery-cover-placeholder span,.scenery-safe-toggle small,.blacklist-person-main p,
.blacklist-report-meta,.blacklist-person-danger small{font-size:10.5px;line-height:1.45}
.event-card>p,.migration-card-copy p,.migration-note,.migration-explainer p{font-size:11.75px;line-height:1.55}

/* Acciones y paneles no deben romperse cuando hay nombres o textos largos. */
.page-head-actions,.table-actions,.inline-actions,.modal-actions{flex-wrap:wrap}
.page-head-actions form,.table-actions form,.inline-actions form{margin:0}
.panel-head>div{min-width:0}.panel-head h2,.panel-head p,.page-head h1,.page-head p{overflow-wrap:anywhere}
.break-safe,.cell-note,.notification-popover-main>p{overflow-wrap:anywhere}

/* Controles accesibles y foco visible, también en dark mode. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid color-mix(in srgb,var(--brand-hover) 80%,#fff);outline-offset:2px}
html[data-theme="dark"] .eyebrow,html[data-theme="dark"] .section-kicker{color:#a8cfe9}
html[data-theme="dark"] .field>small,html[data-theme="dark"] .form-grid>label>small,html[data-theme="dark"] .form-stack>label>small,
html[data-theme="dark"] .cell-note,html[data-theme="dark"] .panel-head p,html[data-theme="dark"] .section-note{color:#b8c5cf}
html[data-theme="dark"] .table-wrap th,html[data-theme="dark"] table th{color:#b5c2cc;background:#111b23}
html[data-theme="dark"] .record-count{color:#c0ccd5}
html[data-theme="dark"] .text-link,html[data-theme="dark"] .table-link{color:#a9d2ec}
html[data-theme="dark"] .text-link:hover,html[data-theme="dark"] .table-link:hover{color:#d6ecfa}

/* Tablas: mejor lectura y cabecera estable sin cambiar el flujo horizontal. */
.table-wrap{scrollbar-gutter:stable both-edges;overscroll-behavior-inline:contain}
.table-wrap thead th{position:sticky;top:70px;z-index:2}
.table-wrap tbody tr:last-child td{border-bottom:0}
.table-pager{gap:12px;flex-wrap:wrap}
.table-pager-info{font-size:11.5px}

/* Modales: siempre utilizables en notebooks y móviles. */
.role-editor,.event-signup-modal,.blacklist-edit-modal{max-height:min(88vh,860px);overflow:auto;overscroll-behavior:contain}
.modal-actions{position:sticky;bottom:-1px;padding-top:10px;background:linear-gradient(180deg,transparent 0,var(--surface) 28%)}

/* Dropdown de notificaciones: nunca desborda el viewport. */
.notification-popover{max-width:calc(100vw - 24px)}
.notification-popover-list{scrollbar-gutter:stable}
.notification-popover-main>p{font-size:12px}
.notification-source-pill,.notification-mandatory{font-size:9.5px}
.notification-popover-meta time{font-size:10.5px}

/* Administración: las tarjetas deben conservar jerarquía al ocultarse opciones por permiso. */
.admin-card-grid{align-items:stretch}.admin-card{min-height:180px}.admin-card p{font-size:12.5px}

@media(max-width:900px){
 .page-head-actions{align-items:stretch}
 .page-head-actions>a,.page-head-actions>button,.page-head-actions>form{max-width:100%}
 .page-head-actions>form>button{width:100%}
 .panel-head{align-items:flex-start;flex-wrap:wrap}
 .panel-head>.page-head-actions,.panel-head>.inline-actions{width:100%}
 .table-tools{gap:10px;flex-wrap:wrap}
 .table-tools>.searchbox{flex:1 1 260px}
 .form-layout,.notam-editor-layout,.scenery-form-layout{grid-template-columns:1fr}
}
@media(max-width:680px){
 .table-wrap thead th{top:64px}
 body{font-size:15.5px}
 .page{padding:20px 14px 38px}
 .page-head h1{font-size:29px}
 .page-head p{font-size:13.5px}
 .panel{border-radius:13px}
 .panel-head{padding:16px}
 .panel-head h2{font-size:17px}
 .page-head-actions{display:grid;grid-template-columns:1fr;width:100%}
 .page-head-actions>*{width:100%;min-width:0}
 .page-head-actions>a,.page-head-actions>button,.page-head-actions>form>button{justify-content:center}
 .table-tools{align-items:stretch}
 .table-tools>.searchbox,.table-tools>select,.table-tools>button{width:100%}
 .table-pager{align-items:stretch;flex-direction:column}
 .table-pager-controls{justify-content:space-between;width:100%}
 .role-editor,.event-signup-modal,.blacklist-edit-modal{width:calc(100vw - 20px);max-height:calc(100vh - 24px);padding:16px;border-radius:14px}
 .modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-actions>*{width:100%}
 .notification-popover{right:8px;left:8px;top:66px;max-width:none}
 .notification-popover-head{align-items:flex-start}.notification-popover-action{flex:0 0 auto}
 .admin-card-featured{grid-column:auto}
}


/* ==========================================================
   v0.8.14 · Tablas sin solapamiento + densidad corregida
   ========================================================== */
/* La cabecera sticky global de v0.8.13 terminaba flotando encima de la
   primera fila en tablas largas. Las vistas con scroll horizontal siguen
   funcionando, pero la cabecera vuelve al flujo normal. */
.table-wrap thead th{position:static;top:auto;z-index:auto}
.table-wrap td,.table-wrap th{line-height:1.4}
.table-wrap td>small,.table-wrap td>strong+small,.table-wrap td>a+small{display:block;margin-top:3px;line-height:1.35;white-space:normal}
.table-wrap td>.badge+small{display:block;margin-top:4px}
.table-wrap .table-actions,.table-wrap .inline-actions{white-space:nowrap}
/* Evita que etiquetas ampliadas invadan columnas vecinas sin volver a
   achicar toda la Consola. */
.table-wrap th{white-space:nowrap}
.table-wrap td{overflow-wrap:anywhere}
@media(max-width:680px){.table-wrap thead th{position:static;top:auto}}

/* ==========================================================
   v0.8.15 · Legibilidad final + pulido pre-release
   ========================================================== */
/* Subimos únicamente microtexto y ayudas. Las celdas conservan su tamaño
   para no repetir los solapamientos de la pasada anterior. */
.page .field>span,.page .form-grid>label>span,.page .form-stack>label>span,
.page .provider-form label>span,.page .row-menu-card label>span{font-size:12.5px;line-height:1.4}
.page .field>small,.page .form-grid>label>small,.page .form-stack>label>small,
.page .row-menu-card>small,.page .planned-note{font-size:11.5px;line-height:1.55}
.toggle-field{padding:13px 14px;gap:10px!important}.toggle-field strong{font-size:12.5px;line-height:1.35}.toggle-field small{font-size:11.5px;line-height:1.5}
.page .section-note,.page .panel-note{font-size:12.5px;line-height:1.55}
.page code{font-size:11.25px;line-height:1.4}

/* Sectorfile: nombres, ayudas y provider siguen siendo compactos, no diminutos. */
.sector-step-head p{font-size:12.25px}.sector-dropzone small{font-size:11.5px}
.sector-upload-item strong{font-size:12.5px}.sector-upload-item small{font-size:11px}.sector-upload-item label>span{font-size:10.75px}
.sector-file-cell small{font-size:11.25px}.sector-provider-alert span{font-size:11.5px}
.sector-provider-card>header span:not(.badge),.sector-provider-fields label>span{font-size:10.75px}
.sector-provider-card p,.sector-readonly-note{font-size:11.5px;line-height:1.5}

/* Administración y permisos. */
.permission-mode-field>span,.permission-section-label strong{font-size:12px}
.permission-mode-field small,.permission-section-label small,.permission-guide small{font-size:11.25px;line-height:1.5}
.permission-mode-field select{font-size:12.5px}.permission-guide strong{font-size:12.5px}
.permission-copy small{font-size:11.5px}.permission-copy code{font-size:10.75px}

/* Agenda, exámenes, escenarios y notificaciones: mínimos legibles. */
.event-overview-item span,.event-card-meta-v2,.event-hero-facts span,.event-description>span,
.event-signup-config-grid>label>span,.event-select-field>span,.event-url-field>span{font-size:10.75px}
.event-overview-item small,.agenda-column-head p,.event-card-v2 p,.event-signup-config-grid small,.event-url-field small,.event-field-help{font-size:11.25px;line-height:1.5}
.exam-summary span,.exam-facts span,.exam-notes>span,.exam-file-card small,.locked-field small{font-size:11px}
.exam-summary small,.exam-facts small,.simple-check-list li{font-size:11.25px}
.scenery-health-item strong,.scenery-safe-toggle strong{font-size:11.5px}.scenery-health-item small,.scenery-filter-bar>label>span,
.scenery-count-row small,.scenery-form .field>small,.scenery-current-file span,.scenery-current-file small,
.scenery-cover-placeholder span,.scenery-safe-toggle small{font-size:11.25px;line-height:1.5}
.notification-history-source,.notification-history-state{font-size:10.5px}.notification-history-priority{font-size:10px}.notification-history-top time{font-size:11px}
.notification-history-copy p{font-size:12.25px}.notification-popover-meta time{font-size:11px}.notification-source-pill,.notification-mandatory{font-size:10px}

/* Tablas: el texto secundario se separa y nunca se pega al valor principal. */
.table-wrap td>small,.table-wrap td>strong+small,.table-wrap td>a+small{font-size:12px!important;margin-top:4px;line-height:1.4}
.table-wrap th{font-size:11.25px}
.table-wrap th.is-sortable{cursor:pointer;user-select:none}
.table-wrap th.is-sortable:hover{color:var(--text);background:color-mix(in srgb,var(--brand-soft) 28%,var(--surface-2))}

/* Dark mode: ayudas más claras sin convertir todo en azul. */
html[data-theme="dark"] .toggle-field small,
html[data-theme="dark"] .row-menu-card>small,
html[data-theme="dark"] .sector-provider-card p,
html[data-theme="dark"] .sector-readonly-note,
html[data-theme="dark"] .notification-history-copy p{color:#bcc9d2}

@media(max-width:680px){
 .page .field>span,.page .form-grid>label>span,.page .form-stack>label>span{font-size:12.75px}
 .page .field>small,.page .form-grid>label>small,.page .form-stack>label>small{font-size:11.75px}
}


/* ==========================================================
   v0.9.0-rc1 · legibilidad segura de candidata
   ========================================================== */
/* Ajuste final exclusivamente sobre ayudas/formularios/paneles.
   No aumenta filas ni celdas de tablas para evitar solapamientos. */
.page .settings-grid label>span,.page .settings-grid .field>span,
.page .settings-grid .toggle-field strong,.page .settings-grid .panel-head h2{font-size:13px}
.page .settings-grid label>small,.page .settings-grid .field>small,
.page .settings-grid .toggle-field small,.page .settings-grid .panel-head p{font-size:12px;line-height:1.55}
.page .sector-upload-item label>span,.page .sector-provider-fields label>span{font-size:11.5px}
.page .sector-upload-item small,.page .sector-provider-card p,.page .sector-readonly-note{font-size:12px;line-height:1.5}
.page .permission-mode-field small,.page .permission-section-label small,.page .permission-guide small{font-size:12px}
.page .event-overview-item span,.page .event-card-meta-v2,.page .event-hero-facts span,
.page .exam-summary span,.page .exam-facts span{font-size:11.5px}
.page .event-overview-item small,.page .event-card-v2 p,.page .exam-summary small,.page .exam-facts small{font-size:12px;line-height:1.5}
html[data-theme="dark"] .settings-grid .panel-head p,
html[data-theme="dark"] .settings-grid label>small,
html[data-theme="dark"] .settings-grid .toggle-field small{color:#c2cdd5}

/* v0.9.0-rc2 · estadísticas históricas */
.stats-filter-panel{padding:16px 18px}.stats-filter-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.stats-filter-form label{display:grid;gap:6px;min-width:210px}.stats-filter-form label>span{font-size:12px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}.stats-filter-form select{min-height:42px}.stats-filter-form .primary-btn{min-height:42px}.section-gap-sm{margin-top:12px}.stats-period-metrics .metric small{display:block;margin-top:5px;font-size:11.5px}.metric-trend.success{color:var(--ok)}.metric-trend.warning{color:var(--warning)}.metric-trend.muted{color:var(--muted)}
.stats-ranking-scroll{max-height:650px;overflow:auto;scrollbar-width:thin}.stats-ranking-scroll .ranking-row{padding:11px 0}.stats-secondary-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:18px}.is-selected-row td{background:color-mix(in srgb,var(--brand-soft) 55%,transparent)}.is-selected-row td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.stats-snapshot-table{max-height:520px;overflow:auto}
@media(max-width:900px){.stats-secondary-grid{grid-template-columns:1fr}.stats-filter-form label{min-width:min(100%,220px);flex:1 1 210px}}@media(max-width:620px){.stats-filter-form{display:grid;grid-template-columns:1fr}.stats-filter-form label{min-width:0}.stats-filter-form .primary-btn{width:100%}}

/* Discord · administración RC2 */
.discord-tabs{margin-top:2px;margin-bottom:18px}
.discord-metrics .metric,.discord-admin-metrics .metric{min-height:104px}
.discord-metrics .metric small,.discord-admin-metrics .metric small{display:block;margin-top:6px;font-size:10.5px;line-height:1.45;color:var(--muted)}
.status-good{color:var(--ok)!important}.status-danger{color:var(--danger)!important}.status-muted{color:var(--muted)!important}
.discord-overview-grid{grid-template-columns:minmax(0,1.55fr) minmax(330px,.85fr)}
.discord-run-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 13px}
.discord-run-summary>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:3px}
.discord-run-summary span,.discord-diagnostic-list span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.discord-run-summary strong{font-size:12px}
.discord-current-pick{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:11px;margin-bottom:12px;display:grid;gap:8px}
.discord-current-pick>span{font-size:9.5px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.discord-current-pick>button,.discord-mini-gallery article>button{border:0;padding:0;background:transparent;cursor:zoom-in;width:100%;display:block}
.discord-current-pick img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:9px;display:block}
.discord-current-pick>strong{font-size:11px}
.discord-mini-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.discord-mini-gallery article{min-width:0}.discord-mini-gallery img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.discord-mini-gallery small{font-size:9.5px;line-height:1.35}
.discord-kv strong{font-size:10.5px;overflow-wrap:anywhere}.discord-kv .danger-text{font-weight:800}
.discord-gallery-panel>.panel-head{margin-bottom:14px}
.discord-gallery-filters{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto auto;gap:10px;align-items:end;margin:0 0 14px}
.discord-gallery-filters .field{margin:0}
.discord-gallery-bulk{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:9px 11px;margin-bottom:13px}
.discord-gallery-bulk label{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800}.discord-gallery-bulk input{width:15px!important;height:15px!important}.discord-gallery-bulk span{font-size:10px;color:var(--muted);margin-right:auto}
.discord-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.discord-gallery-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;overflow:hidden;min-width:0}
.discord-gallery-image{position:relative;aspect-ratio:16/9;background:var(--surface-3)}
.discord-gallery-image>button{border:0;background:transparent;padding:0;width:100%;height:100%;display:block;cursor:zoom-in;position:relative}
.discord-gallery-image img{width:100%;height:100%;display:block;object-fit:cover}.discord-gallery-image>button>span{position:absolute;right:7px;bottom:7px;padding:5px 7px;border-radius:7px;background:rgba(5,13,20,.76);color:#fff;font-size:9px;font-weight:800;opacity:0;transition:.15s}.discord-gallery-image>button:hover>span{opacity:1}
.discord-gallery-select{position:absolute;top:8px;left:8px;display:flex;align-items:center;gap:6px;background:rgba(5,13,20,.78);color:#fff;padding:6px 8px;border-radius:8px;font-size:9px;font-weight:800;backdrop-filter:blur(5px)}.discord-gallery-select input{width:14px!important;height:14px!important}
.discord-gallery-missing{height:100%;display:grid;place-items:center;color:var(--muted);font-size:10px;padding:12px;text-align:center}
.discord-gallery-meta{padding:10px 11px;display:flex;flex-direction:column;gap:4px}.discord-gallery-meta strong{font-size:11px}.discord-gallery-meta>span{font-size:9.5px;color:var(--muted)}.discord-gallery-meta small{font-size:8.8px;color:var(--muted)}.discord-gallery-meta form{margin-top:5px}
.discord-pagination{margin-top:15px}
.discord-settings-grid{align-items:start}.discord-admin-section>.panel-head{margin-bottom:15px}.discord-admin-section .form-grid{margin-top:0}
.discord-emoji-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.discord-emoji-grid label{display:flex;flex-direction:column;gap:5px}.discord-emoji-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:850;color:var(--muted)}.discord-emoji-grid input{min-width:0}
.discord-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
.discord-savebar{position:sticky;bottom:12px;z-index:18;margin:16px 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;gap:16px}.discord-savebar>div{display:flex;flex-direction:column;gap:2px}.discord-savebar strong{font-size:11px}.discord-savebar span{font-size:9.5px;color:var(--muted)}
.discord-admin-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.discord-diagnostic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.discord-diagnostic-list>div{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:4px;min-width:0}.discord-diagnostic-list strong,.discord-diagnostic-list code{font-size:10.5px;overflow-wrap:anywhere}.discord-tool-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.discord-tool-actions form{margin:0}
:root[data-theme="dark"] .discord-gallery-select{background:rgba(5,12,18,.88)}
@media(max-width:1180px){.discord-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.discord-run-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.discord-overview-grid{grid-template-columns:1fr}}
@media(max-width:820px){.discord-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discord-gallery-filters{grid-template-columns:1fr 130px}.discord-gallery-filters .secondary-btn,.discord-gallery-filters .ghost-btn{width:100%}.discord-emoji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discord-admin-tools{grid-template-columns:1fr}.discord-savebar{position:static}}
@media(max-width:560px){.discord-gallery-grid,.discord-run-summary,.discord-emoji-grid,.discord-check-grid,.discord-diagnostic-list{grid-template-columns:1fr}.discord-gallery-filters{grid-template-columns:1fr}.discord-tool-actions{flex-direction:column}.discord-tool-actions form,.discord-tool-actions button{width:100%}}

/* Discord 0.9.0-rc2 · separación historial web / banco Discord */
.discord-web-history>.panel-head,.discord-gallery-panel>.panel-head,.discord-recovery-panel>.panel-head,.discord-actions-explained>.panel-head{margin-bottom:16px}
.discord-web-history .panel-head p,.discord-gallery-panel .panel-head p,.discord-recovery-panel .panel-head p,.discord-actions-explained .panel-head p{max-width:820px}
.discord-today-strip{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.4fr) minmax(180px,.7fr);gap:14px;align-items:center;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,var(--surface-2)),var(--surface-2));border-radius:14px;padding:14px;margin:0 0 16px}
.discord-today-strip>div{display:flex;flex-direction:column;gap:4px}.discord-today-strip>div>span{font-size:11px;font-weight:900;letter-spacing:.055em;color:var(--muted);text-transform:uppercase}.discord-today-strip>div>strong{font-size:16px}.discord-today-strip>div>small{font-size:12px;color:var(--muted)}
.discord-today-strip>button{border:0;background:transparent;padding:0;cursor:zoom-in;display:block;width:100%}.discord-today-strip img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:11px;border:1px solid var(--border)}
.discord-web-filters{display:flex;align-items:end;gap:10px;margin-bottom:14px}.discord-web-filters .field{max-width:180px;margin:0}
.discord-published-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.discord-published-card{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;overflow:hidden;min-width:0;box-shadow:0 4px 15px rgba(10,32,48,.035)}.discord-published-card.is-today{border-color:color-mix(in srgb,var(--brand) 58%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 18%,transparent)}
.discord-published-image{position:relative;aspect-ratio:16/9;background:var(--surface-3)}.discord-published-image>button{width:100%;height:100%;border:0;background:transparent;padding:0;cursor:zoom-in;display:block;position:relative}.discord-published-image img{width:100%;height:100%;object-fit:cover;display:block}.discord-published-image>button>span{position:absolute;right:8px;bottom:8px;background:rgba(3,11,17,.78);color:#fff;border-radius:8px;padding:5px 8px;font-size:10px;font-weight:850;opacity:0;transition:.15s}.discord-published-image>button:hover>span{opacity:1}.discord-published-current,.discord-source-current{position:absolute;top:8px;right:8px;background:#0f8f63;color:#fff;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;box-shadow:0 3px 10px rgba(0,0,0,.18)}
.discord-published-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.discord-published-meta>div{display:flex;flex-direction:column;gap:3px;min-width:0}.discord-published-meta span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.045em;font-weight:850}.discord-published-meta strong{font-size:13px;overflow-wrap:anywhere}.discord-published-meta strong small{font-size:10px;color:var(--muted);font-weight:700}
.discord-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:13px;border-top:1px solid var(--border)}.discord-pager>span{font-size:12px;color:var(--muted);font-weight:750}.discord-pager>div{display:flex;gap:8px}
.discord-gallery-card.is-today{border-color:color-mix(in srgb,#0f8f63 60%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#0f8f63 18%,transparent)}
.discord-recovery-panel{margin-bottom:16px;border-color:color-mix(in srgb,#1b9b70 40%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,#1b9b70 6%,var(--surface)),var(--surface))}.discord-recovery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:14px}.discord-recovery-grid>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:3px}.discord-recovery-grid span{font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.discord-recovery-grid strong{font-size:12px;overflow-wrap:anywhere}
.discord-actions-explained{margin-top:18px}.discord-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.discord-action-grid article{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:12px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center}.discord-action-grid article.warning{border-color:color-mix(in srgb,#c88b20 38%,var(--border));background:color-mix(in srgb,#c88b20 5%,var(--surface-2))}.discord-action-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 11%,var(--surface-3));font-size:19px;font-weight:900}.discord-action-grid h3{margin:0 0 3px;font-size:13px}.discord-action-grid p{margin:0;font-size:11.5px;line-height:1.48;color:var(--muted)}.discord-action-grid p strong{color:var(--text)}.discord-action-grid form{margin:0}
.discord-admin-form .field>span{font-size:11px}.discord-admin-form .field>small,.discord-check-grid small{font-size:11px;line-height:1.45}.discord-admin-form input,.discord-admin-form select,.discord-admin-form textarea{font-size:13px}.discord-emoji-grid span{font-size:10px}.discord-emoji-grid input{font-size:13px}
.discord-gallery-meta strong{font-size:12.5px}.discord-gallery-meta>span{font-size:11px}.discord-gallery-meta small{font-size:10px}.discord-gallery-bulk label{font-size:11px}.discord-gallery-bulk span{font-size:11px}
.discord-run-summary span,.discord-diagnostic-list span{font-size:10px}.discord-run-summary strong,.discord-diagnostic-list strong,.discord-diagnostic-list code{font-size:12px}.discord-metrics .metric small,.discord-admin-metrics .metric small{font-size:11px}
:root[data-theme="dark"] .discord-today-strip{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 14%,var(--surface-2)),var(--surface-2))}:root[data-theme="dark"] .discord-recovery-panel{background:linear-gradient(135deg,color-mix(in srgb,#1b9b70 10%,var(--surface)),var(--surface))}
@media(max-width:1120px){.discord-published-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discord-today-strip{grid-template-columns:1fr 1.4fr}.discord-today-strip>div:last-child{grid-column:1/-1}.discord-recovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discord-action-grid{grid-template-columns:1fr}}
@media(max-width:680px){.discord-published-grid,.discord-recovery-grid{grid-template-columns:1fr}.discord-today-strip{grid-template-columns:1fr}.discord-today-strip>div:last-child{grid-column:auto}.discord-published-meta{grid-template-columns:1fr}.discord-action-grid article{grid-template-columns:34px minmax(0,1fr)}.discord-action-grid article form{grid-column:1/-1}.discord-action-grid article button{width:100%}.discord-web-filters{align-items:stretch;flex-direction:column}.discord-web-filters .field{max-width:none}.discord-pager{align-items:flex-start;flex-direction:column}}
.discord-source-history{position:absolute;top:8px;right:8px;background:#486273;color:#fff;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;box-shadow:0 3px 10px rgba(0,0,0,.18)}

/* v0.9.0-rc2 · tareas programadas */
.tasks-cron-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;margin-bottom:22px}.cron-url-box{display:flex;gap:10px;align-items:center}.cron-url-box input{min-width:0;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.cron-command-block{margin-top:18px}.cron-command-block>span{display:block;font-weight:750;margin-bottom:8px}.cron-command-block small{display:block;margin-top:8px;color:var(--muted)}.task-security-note{margin-top:18px;padding:13px 15px;border:1px solid color-mix(in srgb,#d79b2f 42%,var(--border));background:color-mix(in srgb,#d79b2f 9%,var(--surface));border-radius:12px;display:grid;gap:3px}.task-security-note span{color:var(--muted);font-size:.9rem}.task-cron-side form{margin-top:18px}.code-box.compact{font-size:.82rem}.task-external-toggle{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;margin:0 0 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.task-external-toggle input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.task-external-toggle span{display:grid;gap:2px}.task-external-toggle small{color:var(--muted)}.tasks-table td{vertical-align:middle}.task-slug{display:block;margin-top:6px;font:600 .72rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted);opacity:.78}.task-interval-control{display:flex;align-items:center;gap:7px;min-width:190px}.task-interval-control input{width:76px;min-width:76px}.task-interval-control select{min-width:104px}.task-frequency-cell .cell-note{margin-top:6px}.panel-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:15px;border-top:1px solid var(--border)}
@media(max-width:980px){.tasks-cron-grid{grid-template-columns:1fr}.tasks-table{min-width:980px}}
@media(max-width:640px){.cron-url-box{align-items:stretch;flex-direction:column}.task-interval-control{min-width:170px}.task-interval-control select{min-width:92px}}

/* === Auditoría operativa RC2 === */
.audit-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 18px}.audit-metrics .metric-card{min-height:112px;padding:15px}.audit-metrics .metric-card span{font-size:10.5px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}.audit-metrics .metric-card strong{font-size:28px;line-height:1;margin:9px 0 6px}.audit-metrics .metric-card small{font-size:10.5px;color:var(--muted)}.metric-card.tone-slate:before{background:#71808d}.badge.info{color:#246a96;background:color-mix(in srgb,#4f9dcc 13%,var(--surface));border-color:color-mix(in srgb,#4f9dcc 28%,var(--border))}
.audit-filter-panel{padding-bottom:18px}.audit-filter-grid{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(4,minmax(150px,.72fr));gap:12px;align-items:end}.audit-filter-grid label{display:flex;flex-direction:column;gap:6px;min-width:0}.audit-filter-grid label>span{font-size:11.5px;font-weight:850}.audit-filter-grid input,.audit-filter-grid select{width:100%;min-height:41px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;padding:9px 11px;font-size:12.5px;outline:0}.audit-filter-grid input:focus,.audit-filter-grid select:focus{border-color:var(--brand-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-hover) 15%,transparent)}.audit-filter-search{grid-column:span 2}.audit-filter-actions{display:flex;align-items:flex-end}.audit-filter-actions .primary-btn{min-height:41px;width:100%}
.audit-table-panel .table-tools>div{display:flex;flex-direction:column;gap:2px}.audit-table-panel td{min-width:125px}.audit-table-panel td:nth-child(3){min-width:220px}.audit-table-panel td:last-child{min-width:86px;text-align:right}.audit-table-panel code{font-size:10.5px}.audit-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-top:1px solid var(--border);background:var(--surface-2)}.audit-page-jumps{display:flex;align-items:center;gap:5px}.audit-page-jumps a,.audit-page-jumps span{min-width:32px;height:32px;border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;text-decoration:none;font-size:11px;font-weight:850;background:var(--surface)}.audit-page-jumps a.active{background:var(--brand);border-color:var(--brand);color:#fff}.audit-pagination .is-disabled{opacity:.45;pointer-events:none}
.audit-detail-modal[hidden]{display:none}.audit-detail-modal{position:fixed;z-index:141;left:50%;top:50%;translate:-50% -50%;transform:none;width:min(900px,calc(100vw - 30px));max-height:min(88vh,900px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 32px 100px rgba(0,0,0,.34);padding:22px}.audit-detail-modal+.modal-backdrop{z-index:140}.audit-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--border)}.audit-detail-head h2{margin:3px 0 4px;font-size:22px}.audit-detail-head p{margin:0;color:var(--muted);font-size:11.5px}.audit-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.audit-detail-card{border:1px solid var(--border);border-radius:13px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px;min-width:0}.audit-detail-card>span,.audit-tech-grid span{font-size:9.5px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.audit-detail-card strong{font-size:13px;word-break:break-word}.audit-detail-card small{font-size:10.5px;color:var(--muted);word-break:break-word}.audit-tech-section{margin-top:14px;border:1px solid var(--border);border-radius:14px;padding:14px}.audit-tech-section h3{font-size:13px;margin:0 0 10px}.audit-tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.audit-tech-grid>div{display:flex;flex-direction:column;gap:4px;min-width:0}.audit-tech-grid .wide{grid-column:1/-1}.audit-tech-grid strong{font-size:12px}.audit-tech-grid code{font-size:11px;padding:7px 8px;display:block;white-space:normal}.audit-ua{display:block;padding:9px 10px;line-height:1.55;font-size:10.5px;white-space:normal}.audit-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.audit-section-title h3{margin:0}.ghost-btn.compact{height:31px;min-width:0;padding:0 9px;font-size:10.5px}.audit-payload{margin:10px 0 0;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:11px/1.55 "SFMono-Regular",Consolas,monospace;white-space:pre-wrap;overflow:auto;max-height:290px}.modal-open{overflow:hidden}
html[data-theme="dark"] .badge.info{color:#9bd4f4;background:#163144;border-color:#2c526c}html[data-theme="dark"] .badge.violet{color:#ceb8ff;background:#2b2040;border-color:#49366d}html[data-theme="dark"] .audit-detail-card{background:#121b22}html[data-theme="dark"] .audit-payload{background:#0f171d;color:#e9f1f6}
@media(max-width:1180px){.audit-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-filter-search{grid-column:span 2}.audit-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.audit-metrics{grid-template-columns:1fr 1fr}.audit-filter-grid{grid-template-columns:1fr 1fr}.audit-filter-search{grid-column:1/-1}.audit-filter-actions{grid-column:1/-1}.audit-pagination{flex-direction:column}.audit-detail-grid,.audit-tech-grid{grid-template-columns:1fr}.audit-tech-grid .wide{grid-column:auto}.audit-detail-modal{width:calc(100vw - 18px);max-height:calc(100vh - 20px);padding:16px}.audit-page-jumps{flex-wrap:wrap;justify-content:center}}
@media(max-width:480px){.audit-metrics{grid-template-columns:1fr}.audit-filter-grid{grid-template-columns:1fr}.audit-filter-search{grid-column:auto}}

/* v0.9.0-rc2 · Cache de imágenes */
.cache-metrics .compact-value{font-size:1.15rem;line-height:1.25;max-width:100%;overflow-wrap:anywhere}
.cache-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:18px;align-items:start}
.cache-side-stack{display:grid;gap:18px}
.cache-settings-panel .form-grid{margin-top:14px}
.input-with-suffix{display:flex;align-items:stretch;gap:0}
.input-with-suffix input{border-radius:10px 0 0 10px;min-width:0}
.input-with-suffix b{display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--surface-2);font-size:.88rem;color:var(--muted);white-space:nowrap}
.cache-action-list{display:grid;gap:10px}
.cache-action-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.cache-action-list article>div{display:grid;gap:4px}.cache-action-list article strong{font-size:.98rem}.cache-action-list article small{font-size:.88rem;line-height:1.45;color:var(--muted)}
.cache-action-list article.danger-zone{border-color:color-mix(in srgb,var(--danger) 32%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--surface-2))}
.cache-host-list{display:grid;gap:8px}.cache-host-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.cache-host-list span{overflow-wrap:anywhere}.cache-host-list strong{color:var(--brand)}
.cache-path-note{margin-top:14px;display:grid;gap:6px}.cache-path-note span{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cache-path-note code{display:block;padding:9px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);font-size:.78rem;overflow-wrap:anywhere}
html[data-theme="dark"] .cache-host-list strong{color:#9ecbf0}
@media(max-width:980px){.cache-layout{grid-template-columns:1fr}}
@media(max-width:640px){.cache-action-list article{grid-template-columns:1fr}.cache-action-list form,.cache-action-list button{width:100%}.cache-settings-panel .form-grid.two-col{grid-template-columns:1fr}}

/* v0.9.0-rc2 · checkpoint 9 · legibilidad y estados ocultos */
.badge,.perm-toggle span,.login-card .pill{font-size:10px}
.notification-item small,.role-checks small,.login-notes,.migration-kicker,.migration-summary-side span,.migration-note,.section-note,.event-date,.history-panel>summary small,.history-panel>summary>b,.ticket-status-card small,.ticket-card-body span,.ticket-card-body small,.conversation-meta span,.reply-destination span,.reply-destination small,.reply-actions small,.mini-timeline small,.sector-upload-item small,.sector-upload-item label>span,.sector-file-cell small,.row-menu-card>small,.sector-provider-card>header span:not(.badge),.sector-provider-fields label>span,.roster-filter-bar>label>span,.roster-count-row small,.roster-config-grid .field>span small,.blacklist-person-danger small,.notification-popover-meta time,.notification-popover-action{font-size:10.5px}
.migration-facts span,.event-meta,.kv-grid span,.roster-fact-grid>div>span,.roster-rating-row>span,.roster-stats-grid span,.notification-source-pill,.notification-mandatory{font-size:10px}


/* v0.9.0-rc2 checkpoint 10 · estados de entrega + legibilidad final */
.conversation-item.delivery-failed{border-color:color-mix(in srgb,var(--danger) 48%,var(--border));background:color-mix(in srgb,var(--danger-bg) 38%,var(--surface-2))}
.conversation-item.delivery-pending{border-color:color-mix(in srgb,var(--warning) 42%,var(--border))}
.nav-label,.eyebrow,.cell-note,.panel-head p,.quick small,.health-row small,.record-count,.field>span,.check-card small,.admin-card p,.module-card p,.permission-copy small,.health-card p,.notification-item p,.ticket-card-body span,.ticket-card-body small,.conversation-meta span,.reply-destination small,.mini-timeline small{font-size:max(10.5px,0.68rem)}
.badge,.table-btn,.notification-item small,.role-checks small,.login-card .pill,.section-note,.event-date,.ticket-status-card small,.request-highlight-grid span,.request-message>span,.kv-grid span,.reply-destination span,.reply-actions small,.muted-copy{font-size:max(10px,0.64rem)}
@media(max-width:680px){.page-head h1{font-size:26px}.topbar-title{display:none}.toast{left:12px;right:12px;top:70px;max-width:none}}


/* v0.9.0-rc2 checkpoint 11 · ajustes de robustez visual */
.notification-history-actions{flex-wrap:wrap;justify-content:flex-end;max-width:300px}
.notification-history-actions .table-btn{white-space:nowrap}
.discord-diagnostic-list>div{overflow:hidden}.discord-diagnostic-list strong,.discord-diagnostic-list code{word-break:break-word}
@media(max-width:900px){.notification-history-item{grid-template-columns:5px minmax(0,1fr)}.notification-history-actions{grid-column:2;max-width:none;justify-content:flex-start;padding:0 15px 12px}}
@media(max-width:680px){.notification-history-actions{align-items:stretch}.notification-history-actions form,.notification-history-actions a,.notification-history-actions button{width:100%}}

/* v0.9.0-rc2 checkpoint 17 — legibilidad global final.
   Mantiene la jerarquía visual pero elimina microtexto heredado de 8–10 px. */
.nav-label,.user-mini span,.eyebrow,.quick small,.health-row small,.cell-note,
.check-card small,.switch-btn,.permission-copy small,.health-card summary,.health-card ul,
.notification-item p,.role-checks small,.login-brand span,.login-notes,.migration-source,
.migration-toolbar span,.migration-card-copy p,.migration-note,.migration-explainer p,
.section-note,.event-date,.event-card>p,.event-meta,.history-panel>summary small,
.ticket-status-card small,.ticket-card-body span,.attendance-choice small,.verify-action-choice small,
.event-position-selector-head small,.event-position-check span,.event-assignment-group-head p,
.event-image-zoom>span{font-size:11px!important;line-height:1.45}
th,.table-btn,.badge,.perm-toggle span,.notification-item small,.migration-kicker,
.migration-summary-side span,.migration-summary-side strong,.migration-facts span,.migration-facts strong,
.history-panel>summary>b,.ticket-status-card span,.ticket-card-id{font-size:10.5px!important}
code{font-size:11px}
@media(max-width:680px){
  .page-head p,.muted,.cell-note{font-size:11.5px!important}
  th{font-size:10.5px!important}
  td{font-size:12px}
}

/* v0.9.0-rc2 checkpoint 19 */
.airline-logo-current{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft)}
.airline-logo-current img{max-width:180px;max-height:64px;object-fit:contain;background:#fff;border-radius:10px;padding:8px;border:1px solid rgba(15,23,42,.08)}
.airline-logo-current .field-label{display:block;font-weight:800;margin-bottom:3px}
.airline-logo-error{display:none;color:var(--danger);font-size:.82rem;font-weight:700}
.airline-logo-current.has-error .airline-logo-error{display:block}
.audit-user-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}
.audit-user-breakdown>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.audit-user-breakdown>div>strong{width:100%;font-size:.9rem}
.verify-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.airline-logo-current{align-items:flex-start;flex-direction:column}.audit-user-breakdown,.verify-rule-grid{grid-template-columns:1fr}}

/* RC2 checkpoint 20 — verificación VATSIM basada en plugins WordPress reales */
.verify-source-note{margin:14px 0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);font-size:13px;line-height:1.5}.verify-source-note strong{display:block;margin-bottom:3px}.verify-source-note p{margin:0;color:var(--muted)}
.verify-progress{margin-top:14px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.verify-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.verify-progress-bar{height:8px;margin:10px 0 7px;border-radius:999px;overflow:hidden;background:var(--border)}.verify-progress-bar>span{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .2s ease}.verify-progress small{display:block;color:var(--muted)}

/* 0.9.0-rc2 checkpoint 21 — Pilotos Online / callsigns custom */
.custom-logo-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.custom-logo-preview-grid>div{display:flex;flex-direction:column;gap:8px;min-width:0}.airline-logo-preview{display:block;max-width:220px;max-height:70px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px}.panel-note code,.notice-card code{overflow-wrap:anywhere}@media(max-width:760px){.custom-logo-preview-grid{grid-template-columns:1fr}}

/* 0.9.0-rc2 checkpoint 23 — Agenda: herramientas visibles + estadísticas rediseñadas */
.agenda-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.agenda-tool-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-decoration:none;color:inherit;transition:.16s ease}
.agenda-tool-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 42%,var(--border));box-shadow:0 10px 28px rgba(15,23,42,.08)}
.agenda-tool-card.is-history{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 7%,var(--surface)),var(--surface))}
.agenda-tool-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand)}
.agenda-tool-card>div{display:grid;gap:3px}.agenda-tool-card strong{font-size:1rem}.agenda-tool-card small{color:var(--muted);font-size:.82rem;line-height:1.45}.agenda-tool-card>b{font-size:.82rem;color:var(--brand);white-space:nowrap}
.history-manage-callout{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:14px 16px 0;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.history-manage-callout>div{display:grid;gap:3px}.history-manage-callout small{color:var(--muted);font-size:.8rem}
.event-stats-filter{margin-top:4px}
.event-stats-context{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}.event-stats-context h2{margin:3px 0 4px;font-size:1.15rem}.event-stats-context p{margin:0;color:var(--muted)}
.event-stats-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:16px}
.event-stat-main-card{padding:20px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 12%,var(--surface)),var(--surface));box-shadow:var(--shadow-sm)}
.event-stat-main-value{display:flex;align-items:flex-end;gap:14px;margin:10px 0 14px}.event-stat-main-value strong{font-size:2.6rem;line-height:1;letter-spacing:-.04em}.event-stat-main-value span{max-width:260px;color:var(--muted);font-size:.85rem;line-height:1.4}
.event-stat-progress{height:12px;border-radius:999px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.event-stat-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#7dd3fc))}
.event-stat-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.event-stat-time-pair>div{padding:11px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.event-stat-time-pair small{display:block;color:var(--muted);font-size:.75rem}.event-stat-time-pair b{display:block;margin-top:2px;font-size:1rem}
.event-stat-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}.event-stat-kpis article{padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface);display:grid;align-content:center;gap:3px;min-height:108px}.event-stat-kpis span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.event-stat-kpis strong{font-size:1.8rem;line-height:1}.event-stat-kpis small{font-size:.78rem;color:var(--muted)}
.event-stats-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.event-rank-list{display:grid;gap:8px}.event-rank-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid var(--border)}.event-rank-row:last-child{border-bottom:0}.event-rank-index{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);font-size:.75rem;font-weight:800;color:var(--muted)}
.event-rank-body{min-width:0}.event-rank-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.event-rank-head>div{min-width:0;display:grid;gap:2px}.event-rank-head strong{overflow-wrap:anywhere}.event-rank-head small{color:var(--muted);font-size:.75rem}.event-rank-head>b{font-size:.82rem;color:var(--brand)}
.event-rank-track{height:8px;margin:8px 0 5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.event-rank-track>span{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--brand) 18%,var(--surface-2));min-width:3px}.event-rank-track i{display:block;height:100%;border-radius:inherit;background:var(--brand)}.event-rank-foot{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.72rem}
.event-stats-detail>summary{padding:16px 18px}.event-stats-detail>summary span{display:grid;gap:3px}.event-stats-detail>summary small{color:var(--muted)}
.event-history-performance{display:grid}.event-performance-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px) 120px;gap:18px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.event-performance-row:last-child{border-bottom:0}.event-performance-row:hover strong{color:var(--brand)}.event-performance-main{display:grid;gap:3px;min-width:0}.event-performance-main strong{overflow-wrap:anywhere}.event-performance-main small,.event-performance-meter small,.event-performance-times small{color:var(--muted);font-size:.75rem}.event-performance-meter{display:grid;gap:4px}.event-performance-meter>div{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.event-performance-meter>div>span{display:block;height:100%;border-radius:inherit;background:var(--brand)}.event-performance-times{text-align:right;display:grid;gap:2px}
@media(max-width:1050px){.event-stats-hero{grid-template-columns:1fr}.event-stats-split{grid-template-columns:1fr}.agenda-tools{grid-template-columns:1fr}}
@media(max-width:700px){.agenda-tool-card{grid-template-columns:auto 1fr}.agenda-tool-card>b{grid-column:2;white-space:normal}.history-manage-callout,.event-stats-context{align-items:stretch;flex-direction:column}.event-stat-kpis{grid-template-columns:1fr 1fr}.event-performance-row{grid-template-columns:1fr;gap:8px}.event-performance-times{text-align:left;grid-template-columns:auto auto;justify-content:start;gap:5px}.event-stat-main-value{align-items:flex-start;flex-direction:column;gap:7px}}
@media(max-width:460px){.event-stat-kpis{grid-template-columns:1fr}.event-stat-time-pair{grid-template-columns:1fr}}
/* RC2 checkpoint 24 — paridad administrativa WP */
.po-admin-layout{align-items:start}.import-card{display:grid;gap:10px;padding:14px 0;border-bottom:1px solid var(--border)}.import-card:last-child{border-bottom:0}.inline-checks{display:flex;flex-wrap:wrap;gap:8px 14px}.inline-checks label{display:inline-flex;gap:6px;align-items:center}.notify-policy-card{margin-bottom:14px}.code-area,.raw-output{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.raw-output{white-space:pre-wrap;overflow:auto;max-height:68vh;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px}.inline-form{display:inline-flex;gap:8px;align-items:center}.stack-list{display:grid;gap:8px}.list-row{display:grid;gap:3px;padding:10px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit}.list-row span{font-size:12px;color:var(--muted)}


/* checkpoint 24 — paridad administrativa WordPress */
.po-admin-kpis small{display:block;margin-top:.35rem;color:var(--muted);font-size:.78rem}.po-admin-layout{align-items:start}.import-card{display:grid;gap:.65rem;padding:1rem 0;border-bottom:1px solid var(--border)}.import-card:last-child{border-bottom:0}.import-bundle-form{margin-bottom:1rem}.roster-settings-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1rem}.roster-settings-actions form{margin:0}.secret-row{overflow:auto;padding:.8rem;border:1px dashed var(--border);border-radius:10px;background:var(--surface-2)}.secret-row code{white-space:nowrap}.danger-zone{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.notify-policy-card .field-label{display:block;font-weight:700;margin-bottom:.45rem}.check-grid{display:flex;gap:.45rem 1rem;flex-wrap:wrap}.priority-pill{font-size:.75rem;font-weight:800;border:1px solid var(--border);border-radius:999px;padding:.28rem .55rem}.priority-high{border-color:#c28c25}.priority-critical{border-color:#b54747}.raw-output{white-space:pre-wrap;overflow:auto;max-height:65vh}.code-area{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
@media(max-width:900px){.po-admin-layout{grid-template-columns:1fr}.notify-policy-card .panel-head{align-items:flex-start}.roster-settings-actions{display:grid;grid-template-columns:1fr}.roster-settings-actions button{width:100%}}


/* checkpoint 24 — matriz fina de notificaciones */
.notify-events{margin-top:1rem;border-top:1px solid var(--border);padding-top:.9rem}.notify-events>summary{cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center}.notify-event-list{display:grid;gap:.75rem;margin-top:.9rem}.notify-event-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(250px,1.4fr);gap:.75rem 1rem;padding:.85rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.notify-event-title{display:flex;flex-direction:column;gap:.3rem}.notify-event-title code{font-size:.72rem;color:var(--muted)}.notify-event-toggles,.notify-event-controls,.notify-event-extra{display:flex;gap:.6rem 1rem;flex-wrap:wrap;align-items:end}.notify-event-controls,.notify-event-extra,.notify-event-row>div:nth-child(n+3){grid-column:1/-1}.check-grid.compact{gap:.3rem .8rem}.notify-event-extra label:first-child{flex:1;min-width:240px}.notify-event-extra input{width:100%}
@media(max-width:900px){.notify-event-row{grid-template-columns:1fr}.notify-event-controls,.notify-event-extra,.notify-event-row>div:nth-child(n+3){grid-column:auto}.notify-event-toggles{display:grid;grid-template-columns:1fr 1fr}.notify-events>summary{align-items:flex-start}}

/* checkpoint 25 — notificaciones y Pilotos Online: UX administrativa */
.notify-admin-head{margin-bottom:16px}.notify-policy-form{gap:18px}.notify-role-matrix-panel{overflow:hidden}.notify-legend{display:flex;flex-wrap:wrap;gap:10px 18px;padding:0 18px 14px;color:var(--muted);font-size:.8rem}.notify-legend span{display:inline-flex;align-items:center;gap:7px}.notify-dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid var(--border);background:var(--surface-2)}.notify-dot.role{background:var(--brand);border-color:var(--brand)}.notify-dot.inherit{background:color-mix(in srgb,var(--brand) 45%,var(--surface));border-color:color-mix(in srgb,var(--brand) 55%,var(--border))}.notify-dot.mandatory{background:var(--danger);border-color:var(--danger)}
.notify-role-matrix-wrap{overflow:auto;border-top:1px solid var(--border)}.notify-role-matrix{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}.notify-role-matrix th,.notify-role-matrix td{padding:11px 10px;text-align:center;border-bottom:1px solid var(--border);vertical-align:middle}.notify-role-matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface);font-size:.72rem;text-transform:uppercase;letter-spacing:.035em}.notify-role-matrix .notify-source-col,.notify-role-matrix .notify-source-cell{text-align:left;position:sticky;left:0;z-index:1;background:var(--surface);min-width:220px}.notify-role-matrix thead .notify-source-col{z-index:3}.notify-source-cell{display:table-cell}.notify-source-cell strong{display:block;font-size:.9rem}.notify-source-cell small{display:block;margin-top:3px;max-width:300px;color:var(--muted);font-size:.72rem;line-height:1.35}.notify-role-cell{width:98px}.notify-role-check{display:inline-grid;place-items:center;cursor:pointer}.notify-role-check input{position:absolute;opacity:0;pointer-events:none}.notify-role-check span{width:34px;height:30px;border:1px solid var(--border);border-radius:9px;display:grid;place-items:center;font-size:.72rem;font-weight:900;color:transparent;background:var(--surface-2);transition:.15s ease}.notify-role-check:hover span{border-color:color-mix(in srgb,var(--brand) 45%,var(--border))}.notify-role-check input:checked+span{background:color-mix(in srgb,var(--brand) 14%,var(--surface));border-color:var(--brand);color:var(--brand)}.notify-role-check.inherit input:checked+span{background:color-mix(in srgb,var(--brand) 8%,var(--surface));color:var(--brand)}
.notify-source-settings{display:grid;gap:12px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;padding:2px 2px 5px}.section-heading h2{margin:3px 0 2px}.section-heading p{margin:0;color:var(--muted)}.notify-source-card{padding:0;overflow:hidden}.notify-source-card>summary{list-style:none}.notify-source-card>summary::-webkit-details-marker{display:none}.notify-source-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;cursor:pointer}.notify-source-card[open]>.notify-source-summary{border-bottom:1px solid var(--border);background:var(--surface-2)}.notify-source-summary-copy{display:grid;gap:2px;min-width:0}.notify-source-summary-copy>strong{font-size:1rem}.notify-source-summary-copy>small{color:var(--muted);font-size:.78rem}.notify-source-summary-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.notify-chevron{font-size:1rem;color:var(--muted);transition:transform .15s ease}.notify-source-card[open] .notify-source-summary>.notify-source-summary-meta .notify-chevron,.notify-event-item[open]>.notify-event-main .notify-chevron{transform:rotate(180deg)}.notify-source-body{padding:16px 18px 18px;display:grid;gap:16px}.notify-base-settings{display:grid;gap:12px}.notify-base-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notify-event-table{border:1px solid var(--border);border-radius:14px;overflow:hidden}.notify-event-table-head,.notify-event-main{display:grid;grid-template-columns:minmax(220px,1.6fr) 130px 135px 105px 24px;gap:12px;align-items:center}.notify-event-table-head{padding:9px 12px;background:var(--surface-2);color:var(--muted);font-size:.7rem;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.notify-event-item{border-top:1px solid var(--border)}.notify-event-item:first-of-type{border-top:0}.notify-event-item>summary{list-style:none}.notify-event-item>summary::-webkit-details-marker{display:none}.notify-event-main{padding:11px 12px;cursor:pointer}.notify-event-item[open]>.notify-event-main{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}.notify-event-name{display:grid;gap:2px;min-width:0}.notify-event-name strong{font-size:.86rem}.notify-event-name code{font-size:.68rem;color:var(--muted)}.notify-event-policy-label{font-size:.78rem;font-weight:700;color:var(--muted)}.notify-event-editor{padding:14px;border-top:1px dashed var(--border);background:var(--surface-2);display:grid;gap:13px}.notify-event-mode{padding-bottom:8px;border-bottom:1px solid var(--border)}.notify-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notify-event-roles{display:grid;gap:7px}.notify-role-pills{display:flex;flex-wrap:wrap;gap:7px}.notify-role-pills label{cursor:pointer}.notify-role-pills input{position:absolute;opacity:0}.notify-role-pills span{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.76rem;font-weight:700}.notify-role-pills input:checked+span{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand)}.notify-savebar{display:flex;justify-content:space-between;align-items:center;gap:14px}.notify-savebar>span{color:var(--muted);font-size:.78rem}
.compact-switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.compact-switch input{position:absolute;opacity:0}.compact-switch>span{width:30px;height:18px;border-radius:999px;background:var(--border);position:relative;transition:.15s ease}.compact-switch>span:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--surface);top:3px;left:3px;transition:.15s ease;box-shadow:0 1px 3px rgba(0,0,0,.18)}.compact-switch input:checked+span{background:var(--brand)}.compact-switch input:checked+span:after{transform:translateX(12px)}.compact-switch b{font-size:.72rem;color:var(--muted)}

.po-admin-head{margin-bottom:16px}.po-admin-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}.po-status-card{padding:14px 15px;border:1px solid var(--border);border-radius:14px;background:var(--surface);display:grid;gap:3px}.po-status-card>span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800}.po-status-card>strong{font-size:1.65rem;line-height:1}.po-status-card>small{color:var(--muted);font-size:.72rem;line-height:1.35}.po-settings-form{display:grid;gap:14px}.po-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.po-settings-card{min-width:0}.po-settings-card-wide{grid-column:1/-1}.po-settings-card .panel-head{margin-bottom:12px}.po-settings-card .panel-head p{max-width:620px}.po-upload-block{display:grid;gap:9px;padding:12px 0;border-top:1px solid var(--border)}.po-upload-block:first-of-type{border-top:0;padding-top:0}.file-field{display:grid;gap:6px;padding:10px;border:1px dashed var(--border);border-radius:11px;background:var(--surface-2)}.file-field input[type=file]{width:100%;font-size:.78rem}.danger-soft{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--danger) 5%,transparent)}.po-upload-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.po-plane-options{display:grid;grid-template-columns:1fr 100px;gap:10px}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.input-with-unit input{border-top-right-radius:0;border-bottom-right-radius:0}.input-with-unit b{display:grid;place-items:center;min-width:42px;padding:0 8px;border:1px solid var(--border);border-left:0;border-radius:0 10px 10px 0;background:var(--surface-2);font-size:.72rem;color:var(--muted)}.po-tolerance{display:grid;gap:6px;margin-top:12px}.po-savebar{display:flex;justify-content:space-between;align-items:center;gap:14px}.po-savebar>span{color:var(--muted);font-size:.78rem}.po-datasets{margin-top:16px}.po-datasets .panel-head{align-items:flex-start}.po-dataset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.po-dataset-card{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--surface-2);display:grid;gap:12px}.po-dataset-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.po-dataset-card>header>div{display:grid;gap:2px}.po-dataset-card>header small,.po-dataset-card>p{color:var(--muted);font-size:.76rem}.po-dataset-card>p{margin:0;line-height:1.4}.dataset-status{font-size:.68rem;font-weight:800;padding:4px 7px;border:1px solid var(--border);border-radius:999px}.dataset-status.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}.dataset-status.idle{color:var(--muted)}.po-dataset-card details{border-top:1px solid var(--border);padding-top:10px}.po-dataset-card details>summary{cursor:pointer;font-size:.8rem;font-weight:800}.po-dataset-card details>form{margin-top:10px}.po-seed-form{display:flex;justify-content:flex-end}.po-related-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.po-related-links a{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit;background:var(--surface-2)}.po-related-links a:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border))}.po-related-links span{color:var(--muted);font-size:.76rem}

@media(max-width:1100px){.po-admin-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.notify-event-table-head,.notify-event-main{grid-template-columns:minmax(200px,1.5fr) 120px 125px 95px 22px}}
@media(max-width:900px){.notify-base-grid,.notify-event-grid,.po-settings-grid,.po-dataset-grid{grid-template-columns:1fr}.po-settings-card-wide{grid-column:auto}.po-admin-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.notify-event-table-head{display:none}.notify-event-main{grid-template-columns:minmax(0,1fr) auto auto}.notify-event-main>span:nth-child(4){display:none}.notify-event-main>.notify-chevron{justify-self:end}.notify-event-main>span:nth-child(3){font-size:.72rem}.notify-savebar,.po-savebar{align-items:stretch;flex-direction:column}.notify-savebar button,.po-savebar button{width:100%}}
@media(max-width:620px){.po-admin-overview{grid-template-columns:1fr 1fr}.po-upload-inline,.po-plane-options,.po-related-links{grid-template-columns:1fr}.notify-source-summary{align-items:flex-start;flex-direction:column}.notify-source-summary-meta{justify-content:flex-start}.notify-event-main{grid-template-columns:1fr auto}.notify-event-main>span:nth-child(3){display:none}.notify-event-main>.notify-chevron{display:none}.notify-role-pills{display:grid;grid-template-columns:1fr 1fr}.notify-role-pills span{justify-content:center;width:100%}}


/* 0.9.0-rc2 checkpoint 27 — visual system + interaction polish */
:root{
 --surface-3:#eef3f7;--surface-glass:rgba(255,255,255,.82);
 --brand-2:#3f7faa;--brand-3:#70afd3;--info:#246f9a;--info-bg:#edf7fd;
 --shadow-sm:0 5px 16px rgba(24,56,79,.07);--shadow-lg:0 22px 55px rgba(24,56,79,.13);
 --ring:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent);
 --ease:cubic-bezier(.2,.8,.2,1)
}
html[data-theme="dark"]{
 --surface-3:#1b2730;--surface-glass:rgba(23,32,40,.84);
 --brand-2:#6ca4ca;--brand-3:#8bc4e7;--info:#71b8df;--info-bg:#152c39;
 --shadow-sm:0 7px 20px rgba(0,0,0,.2);--shadow-lg:0 24px 64px rgba(0,0,0,.34)
}
html{scroll-behavior:smooth;color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
body{background:
 radial-gradient(circle at 92% -10%,color-mix(in srgb,var(--brand) 8%,transparent),transparent 31rem),
 radial-gradient(circle at 12% 110%,color-mix(in srgb,var(--cyan) 5%,transparent),transparent 28rem),var(--bg)}
::selection{background:color-mix(in srgb,var(--brand) 25%,transparent);color:var(--text)}

/* Checkboxes nunca deben heredar width/min-height de inputs de formulario. */
input[type="checkbox"],input[type="radio"]{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;padding:0!important;margin:0;flex:0 0 18px;accent-color:var(--brand);border-radius:5px;vertical-align:middle}
input[type="radio"]{border-radius:50%}
input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{outline:2px solid var(--brand-hover);outline-offset:2px}
.compact-switch input,.migration-check input,.notify-role-pills input,.notify-role-check input{width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;max-width:1px!important;max-height:1px!important}

/* Estructura premium */
.sidebar{background:
 radial-gradient(circle at 20% 4%,color-mix(in srgb,var(--brand) 10%,transparent),transparent 15rem),
 linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 95%,var(--brand-soft)));box-shadow:8px 0 30px rgba(27,59,82,.04)}
.brand{height:82px;padding:16px 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--brand-soft) 34%,transparent),transparent)}
.brand-main{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand-logo{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid color-mix(in srgb,var(--brand) 15%,var(--border));box-shadow:var(--shadow-sm);overflow:hidden}
.brand img{width:40px;height:40px}.brand-copy strong{font-size:15.5px;letter-spacing:-.015em}.brand-copy>span{font-size:10px;letter-spacing:.12em}
.nav-search{border-color:color-mix(in srgb,var(--brand) 10%,var(--border));box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 40%,transparent);transition:.18s var(--ease)}
.nav-search:focus-within{border-color:color-mix(in srgb,var(--brand) 48%,var(--border));background:var(--surface);box-shadow:var(--ring)}
.nav-item{position:relative;overflow:hidden;border:1px solid transparent;transition:transform .16s var(--ease),background .16s,border-color .16s,color .16s}
.nav-item:hover{transform:translateX(2px);border-color:color-mix(in srgb,var(--brand) 9%,var(--border));background:color-mix(in srgb,var(--brand-soft) 48%,var(--surface-2))}
.nav-item.active{background:linear-gradient(100deg,color-mix(in srgb,var(--brand) 14%,var(--surface)),color-mix(in srgb,var(--brand-soft) 74%,var(--surface)));border-color:color-mix(in srgb,var(--brand) 16%,var(--border));box-shadow:0 6px 16px color-mix(in srgb,var(--brand) 7%,transparent)}
.nav-item.active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 6px 6px 0;background:linear-gradient(var(--brand-3),var(--brand))}
.nav-icon{transition:.18s var(--ease);background:color-mix(in srgb,var(--surface-2) 88%,var(--brand-soft));box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 35%,transparent)}
.nav-item:hover .nav-icon{transform:scale(1.06) rotate(-2deg)}
.nav-group:nth-of-type(2) .nav-icon{color:var(--violet)}.nav-group:nth-of-type(3) .nav-icon{color:var(--cyan)}.nav-group:nth-of-type(4) .nav-icon{color:var(--ok)}
.nav-item.active .nav-icon{color:#fff;background:linear-gradient(145deg,var(--brand-2),var(--brand));box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 25%,transparent)}
.user-mini-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--brand-soft),var(--surface-3));color:var(--brand);display:grid;place-items:center;border:1px solid var(--border)}
.topbar{height:70px;background:var(--surface-glass);box-shadow:0 7px 24px rgba(25,54,75,.035)}
.status-dot{background:#25a568;box-shadow:0 0 0 4px rgba(37,165,104,.11),0 0 16px rgba(37,165,104,.28);animation:statusPulse 2.8s ease-in-out infinite}
@keyframes statusPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

.page{padding:34px 32px 46px}.page-head{margin-bottom:28px}.page-head h1{font-size:32px;letter-spacing:-.045em}.eyebrow{color:var(--brand-2);letter-spacing:.14em}
.page-head p{font-size:13.5px}.panel,.metric-card,.admin-card,.module-card,.health-card,.migration-card,.event-card{border-color:color-mix(in srgb,var(--brand) 7%,var(--border));box-shadow:var(--shadow-sm)}
.panel{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,var(--brand-soft)),var(--surface));transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
.panel:hover{border-color:color-mix(in srgb,var(--brand) 14%,var(--border));box-shadow:0 10px 28px rgba(24,56,79,.075)}
.metric-card{min-height:138px;border-radius:17px;background:
 linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,var(--brand-soft)),var(--surface));transition:.22s var(--ease)}
.metric-card:after{content:"";position:absolute;width:94px;height:94px;right:-38px;top:-38px;border-radius:50%;background:color-mix(in srgb,var(--brand) 7%,transparent);pointer-events:none}
.metric-card:hover{transform:translateY(-4px);box-shadow:0 15px 34px rgba(24,56,79,.11)}
.metric-card.tone-green:after{background:color-mix(in srgb,var(--ok) 8%,transparent)}.metric-card.tone-violet:after{background:color-mix(in srgb,var(--violet) 9%,transparent)}.metric-card.tone-cyan:after{background:color-mix(in srgb,var(--cyan) 9%,transparent)}.metric-card.tone-danger:after{background:color-mix(in srgb,var(--danger) 8%,transparent)}
.metric-value{font-variant-numeric:tabular-nums}.panel-head h2{font-size:17px;letter-spacing:-.018em}.panel-head p{font-size:11.5px;line-height:1.5}
.quick{position:relative;overflow:hidden;transition:.2s var(--ease);background:linear-gradient(145deg,var(--surface-2),color-mix(in srgb,var(--surface) 95%,var(--brand-soft)))}
.quick:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 26%,var(--border));box-shadow:var(--shadow-sm)}.quick>b{transition:.2s var(--ease)}.quick:hover>b{transform:scale(1.08);background:var(--brand);color:#fff}

/* Botones */
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{transition:transform .15s var(--ease),box-shadow .15s,border-color .15s,background .15s,filter .15s}
.primary-btn{background:linear-gradient(135deg,var(--brand-2),var(--brand));box-shadow:0 7px 18px color-mix(in srgb,var(--brand) 18%,transparent)}
.primary-btn:hover{background:linear-gradient(135deg,var(--brand-3),var(--brand-2));transform:translateY(-1px);box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 24%,transparent)}
.primary-btn:active,.secondary-btn:active,.ghost-btn:active,.danger-btn:active,.table-btn:active,.icon-btn:active{transform:translateY(1px) scale(.99)}
.secondary-btn:hover,.ghost-btn:hover,.table-btn:hover,.icon-btn:hover{border-color:color-mix(in srgb,var(--brand) 30%,var(--border));background:color-mix(in srgb,var(--brand-soft) 55%,var(--surface));box-shadow:var(--shadow-sm)}
.danger-btn:hover{filter:saturate(1.15);box-shadow:0 8px 20px color-mix(in srgb,var(--danger) 13%,transparent)}

/* Tablas */
.table-panel{border-radius:17px}.table-wrap{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand) 25%,var(--border)) transparent}
thead th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--surface-2) 94%,transparent);backdrop-filter:blur(10px)}
tbody tr{transition:background .13s,transform .13s}tbody tr:hover{background:color-mix(in srgb,var(--brand-soft) 46%,var(--surface));}
.badge{padding:5px 9px;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 30%,transparent)}

/* Forms */
.field input,.field select,.field textarea,.form-grid input:not([type="checkbox"]):not([type="radio"]),.form-grid select,.form-grid textarea,.stack-form input:not([type="checkbox"]):not([type="radio"]),.stack-form select,.stack-form textarea{transition:border-color .15s,box-shadow .15s,background .15s}
.field input:hover,.field select:hover,.field textarea:hover{background:color-mix(in srgb,var(--surface-2) 86%,var(--brand-soft))}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:var(--ring)}
.check-row,.check-card,.event-switch-card,.verify-toggle,.toggle-field,.mini-check{accent-color:var(--brand)}
.check-row:has(input:checked),.check-card:has(input:checked),.event-switch-card:has(input:checked),.verify-toggle:has(input:checked){border-color:color-mix(in srgb,var(--brand) 24%,var(--border));background:color-mix(in srgb,var(--brand-soft) 52%,var(--surface-2))}

/* Componentes de imagen: carga progresiva */
img{transition:opacity .22s var(--ease),filter .22s var(--ease)}
img[data-ui-loading="1"]{opacity:.38;filter:saturate(.75) blur(1px)}
img[data-ui-loaded="1"]{opacity:1;filter:none}
.discord-gallery-image,.discord-published-image,.scenery-cover-current,.asset-preview{background:linear-gradient(110deg,var(--surface-2) 8%,color-mix(in srgb,var(--brand-soft) 62%,var(--surface)) 18%,var(--surface-2) 33%);background-size:200% 100%}
body.ui-loading-images .discord-gallery-image,body.ui-loading-images .discord-published-image,body.ui-loading-images .asset-preview{animation:imageShimmer 1.45s linear infinite}
@keyframes imageShimmer{to{background-position-x:-200%}}

/* Entrada de página y microinteracciones */
@media (prefers-reduced-motion:no-preference){
 body.ui-ready .page>.page-head,body.ui-ready .page>.metric-grid,body.ui-ready .page>.panel,body.ui-ready .page>.two-col,body.ui-ready .page>.section-gap,body.ui-ready .page>.admin-card-grid,body.ui-ready .page>.module-grid{animation:uiRise .42s var(--ease) both}
 body.ui-ready .page>*:nth-child(2){animation-delay:.035s}body.ui-ready .page>*:nth-child(3){animation-delay:.07s}body.ui-ready .page>*:nth-child(4){animation-delay:.105s}body.ui-ready .page>*:nth-child(5){animation-delay:.14s}
 .notification-popover:not([hidden]),.modal:not([hidden]){animation:uiPop .2s var(--ease) both}
 details[open]>:not(summary){animation:uiFade .18s ease both}
}
@keyframes uiRise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes uiPop{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}
@keyframes uiFade{from{opacity:0}to{opacity:1}}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand) 22%,var(--border)) transparent}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--brand) 22%,var(--border));border:2px solid transparent;background-clip:padding-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--brand) 38%,var(--border));background-clip:padding-box}

/* Dark mode refinement */
html[data-theme="dark"] .sidebar{background:radial-gradient(circle at 20% 4%,rgba(103,149,186,.12),transparent 15rem),linear-gradient(180deg,#161f27,#11181f)}
html[data-theme="dark"] .panel,html[data-theme="dark"] .metric-card{box-shadow:0 10px 28px rgba(0,0,0,.18)}
html[data-theme="dark"] .primary-btn{box-shadow:0 8px 22px rgba(43,88,125,.24)}

@media(max-width:680px){.page{padding:24px 15px 38px}.page-head h1{font-size:29px}.metric-card{min-height:122px}.topbar{padding:0 15px}.brand{height:74px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{position:relative;overflow:hidden}.ui-ripple{position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.28);transform:scale(0);animation:uiRipple .46s ease-out}.secondary-btn .ui-ripple,.ghost-btn .ui-ripple,.table-btn .ui-ripple,.icon-btn .ui-ripple{background:color-mix(in srgb,var(--brand) 16%,transparent)}@keyframes uiRipple{to{transform:scale(1);opacity:0}}

/* v0.9.0-rc2 checkpoint 28 · sidebar plano, iconos legibles y grupos persistentes */
.sidebar{
  background:var(--surface)!important;
  box-shadow:none!important;
  border-right:1px solid var(--border);
}
html[data-theme="dark"] .sidebar{
  background:#121a21!important;
  box-shadow:none!important;
}
.brand{
  background:transparent!important;
}
.brand-logo{
  background:transparent!important;
  box-shadow:none!important;
  border-color:color-mix(in srgb,var(--brand) 18%,var(--border))!important;
}
.nav-group{margin-top:10px}
.nav-group-toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 8px 5px;border:0;background:transparent;color:var(--muted);
  text-align:left;border-radius:8px;cursor:pointer;
}
.nav-group-toggle:hover{color:var(--text);background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.nav-group-toggle .nav-label{padding:0;font-size:10.5px;line-height:1.2}
.nav-group-chevron{font-size:15px;line-height:1;transition:transform .16s var(--ease);color:color-mix(in srgb,var(--muted) 86%,var(--text))}
.nav-group.is-collapsed .nav-group-chevron{transform:rotate(-90deg)}
.nav-group-items{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .18s var(--ease),opacity .14s ease}
.nav-group-items>*{min-height:0}
.nav-group.is-collapsed .nav-group-items{display:none}
.nav.is-searching .nav-group-toggle{pointer-events:none}

.nav-item{
  overflow:visible!important;
  border:0!important;
  border-radius:8px!important;
  box-shadow:none!important;
  transform:none!important;
  min-height:40px;
  padding:8px 9px!important;
  gap:10px;
}
.nav-item:hover{
  transform:none!important;
  box-shadow:none!important;
  background:color-mix(in srgb,var(--brand-soft) 38%,var(--surface-2))!important;
}
.nav-item.active{
  background:color-mix(in srgb,var(--brand-soft) 72%,var(--surface))!important;
  color:color-mix(in srgb,var(--brand) 86%,var(--text))!important;
  box-shadow:none!important;
  border:0!important;
}
.nav-item.active:before{
  top:8px!important;bottom:8px!important;width:2px!important;
  background:var(--brand)!important;
}
.nav-icon{
  width:24px!important;height:24px!important;min-width:24px!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  box-shadow:none!important;color:color-mix(in srgb,var(--text) 72%,var(--brand))!important;
  opacity:1!important;transform:none!important;
}
.nav-icon .ui-icon{display:block;stroke:currentColor!important;opacity:1!important;visibility:visible!important}
.nav-item:hover .nav-icon{transform:none!important;color:var(--brand)!important}
.nav-item.active .nav-icon{
  color:var(--brand)!important;background:transparent!important;box-shadow:none!important;border:0!important;
}
html[data-theme="dark"] .nav-icon{color:#a9bac7!important}
html[data-theme="dark"] .nav-item:hover .nav-icon,html[data-theme="dark"] .nav-item.active .nav-icon{color:#7fb6dc!important}
.nav-group:nth-of-type(2) .nav-icon,.nav-group:nth-of-type(3) .nav-icon,.nav-group:nth-of-type(4) .nav-icon{color:inherit}

/* Las tarjetas quedan limpias: sin discos decorativos flotantes. */
.metric-card:after{display:none!important;content:none!important}
.metric-card{overflow:visible}

/* Menos relieve global en sidebar y controles del sidebar. */
.nav-search{box-shadow:none!important;background:var(--surface-2)}
.user-mini-icon{background:transparent!important;box-shadow:none!important;border-color:var(--border)!important}

@media (prefers-reduced-motion:reduce){.nav-group-items,.nav-group-chevron{transition:none!important}}
\n\n/* Checkpoint 29 · escala tipográfica y sidebar refinado */\nbody{font-size:14px}\n.brand strong{font-size:15.5px}.brand span{font-size:11.5px}\n.nav-search input{font-size:13.75px}\n.nav-group-toggle .nav-label{font-size:11px!important;letter-spacing:.105em}\n.nav-item{font-size:14.25px!important}\n.user-mini strong{font-size:12.75px}.user-mini span{font-size:10.75px}\n.topbar-title,.top-link{font-size:12.75px}.ghost-btn,.primary-btn,.secondary-btn{font-size:12.75px}\n.page-head p{font-size:13.75px}.eyebrow{font-size:10.75px}\n.metric-label,.metric-cta{font-size:11.5px}.panel-head p{font-size:11.75px}\n.quick strong,.health-row strong,td strong,.permission-copy strong{font-size:12.5px}\n.quick small,.health-row small,.cell-note,.record-count{font-size:10.75px}\ntable{font-size:12.75px}th{font-size:10.5px}.badge{font-size:9.75px}.table-btn{font-size:10.75px}\n.field>span{font-size:11.75px}.field input,.field select,.field textarea{font-size:12.75px}\n.admin-card p,.module-card p,.health-card p,.notification-item p{font-size:11.75px}\n\n.nav-group-chevron{width:18px;height:18px;display:grid;place-items:center;transition:transform .18s var(--ease);color:var(--muted);flex:0 0 auto}\n.nav-group-chevron .ui-icon{width:16px;height:16px;stroke-width:2.15}\n.nav-group.is-collapsed .nav-group-chevron{transform:rotate(-90deg)}\n.nav-group-toggle:hover .nav-group-chevron{color:var(--brand)}\n.online-ua{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n
.notify-chevron{width:18px;height:18px;display:inline-grid;place-items:center;font-size:0!important;line-height:1}
.notify-chevron .ui-icon{width:15px;height:15px;stroke-width:2.15}


/* Checkpoint 30 · legibilidad, chevrons y presencia contextual */
body{font-size:14.5px}
.nav-group-toggle .nav-label{font-size:11.75px!important;letter-spacing:.1em}
.nav-item{font-size:14.5px!important}
.brand span,.user-mini span{font-size:11.25px}
.eyebrow{font-size:11.25px}.page-head p{font-size:14px}
.metric-label,.metric-cta{font-size:12px}.panel-head p{font-size:12.25px}
.quick small,.health-row small,.cell-note,.record-count{font-size:11.25px}
table{font-size:13px}th{font-size:11px}.badge{font-size:10.25px}.table-btn{font-size:11.25px}
.field>span{font-size:12.25px}.field input,.field select,.field textarea{font-size:13px}
.admin-card p,.module-card p,.health-card p,.notification-item p{font-size:12.25px}
.nav-group-chevron{width:24px;height:24px;margin-right:1px}
.nav-group-chevron .ui-icon{width:20px!important;height:20px!important;stroke-width:2.45!important}
.nav-group-toggle{min-height:34px}
.online-route,.online-path{display:block;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.online-path{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px!important;color:color-mix(in srgb,var(--muted) 82%,var(--brand));margin-top:2px}

/* Checkpoint 31 · motion system / microinteracciones finales */
:root{
 --motion-fast:140ms;--motion-base:220ms;--motion-slow:360ms;
 --motion-spring:cubic-bezier(.2,.8,.2,1);
 --motion-soft:cubic-bezier(.22,1,.36,1);
}

/* Navegación y progreso de ruta */
.ui-route-progress{position:fixed;left:0;top:0;height:3px;width:0;z-index:9999;pointer-events:none;opacity:0;background:linear-gradient(90deg,var(--brand),var(--brand-hover),var(--cyan));box-shadow:0 0 12px color-mix(in srgb,var(--brand) 50%,transparent);transform-origin:left center;transition:width .22s var(--motion-soft),opacity .16s ease}
body.ui-route-pending .ui-route-progress,body.ui-navigating .ui-route-progress{opacity:1;width:76%}
body.ui-route-complete .ui-route-progress{width:100%;opacity:0;transition:width .13s ease,opacity .22s .08s ease}
body.ui-navigating .main{opacity:.94;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease}

/* Sidebar: grupos e items con movimiento contenido */
.nav-group-items{overflow:hidden!important;display:grid!important;grid-template-rows:1fr!important;opacity:1!important;transition:grid-template-rows var(--motion-base) var(--motion-soft),opacity var(--motion-fast) ease!important}
.nav-group-items>*{min-height:0}
.nav-group.is-collapsed .nav-group-items{display:grid!important;grid-template-rows:0fr!important;opacity:0!important;pointer-events:none}
.nav-group-items>.nav-item{transition:background var(--motion-fast) ease,color var(--motion-fast) ease,opacity .18s ease,transform .22s var(--motion-soft)!important}
.nav-group:not(.is-collapsed) .nav-group-items>.nav-item{opacity:1;transform:translateY(0)}
.nav-group.is-collapsed .nav-group-items>.nav-item{opacity:0;transform:translateY(-4px)}
.nav-group-toggle{transition:background var(--motion-fast) ease,color var(--motion-fast) ease!important}
.nav-group-chevron{transition:transform var(--motion-base) var(--motion-spring),color var(--motion-fast) ease!important}
.nav-group-toggle:active .nav-group-chevron{transform:scale(.88)}
.nav-group.is-collapsed .nav-group-toggle:active .nav-group-chevron{transform:rotate(-90deg) scale(.88)}
.nav-item{transition:background var(--motion-fast) ease,color var(--motion-fast) ease!important}
.nav-item .nav-icon{transition:color var(--motion-fast) ease,transform var(--motion-base) var(--motion-spring)!important}
.nav-item:hover .nav-icon{transform:translateX(1px) scale(1.06)!important}
.nav-item.active .nav-icon{transform:scale(1.04)!important}

/* Cards: lift muy sutil, sin círculos ni pseudo-3D */
.metric-card,.admin-card,.module-card,.health-card,.event-card,.ticket-card,.quick{transition:transform var(--motion-base) var(--motion-soft),border-color var(--motion-fast) ease,box-shadow var(--motion-base) ease,background var(--motion-fast) ease!important;will-change:transform}
.metric-card:hover,.admin-card:hover,.module-card:hover,.health-card:hover,.event-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(24,56,79,.09)}
.metric-card:active,.admin-card:active,.module-card:active,.event-card:active{transform:translateY(0) scale(.995)}

/* Botones: respuesta instantánea y estado de envío */
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{transition:transform var(--motion-fast) var(--motion-spring),box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease,background var(--motion-fast) ease,opacity var(--motion-fast) ease!important}
button.ui-submitting,[type="submit"].ui-submitting{pointer-events:none;opacity:.74;transform:scale(.985)!important}
button.ui-submitting:after,[type="submit"].ui-submitting:after{content:"";width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;vertical-align:-2px;animation:uiSpin .62s linear infinite}
@keyframes uiSpin{to{transform:rotate(360deg)}}

/* Toasts y popovers */
.toast{transform-origin:top right}
@media (prefers-reduced-motion:no-preference){
 .toast{animation:toastIn .34s var(--motion-soft) both}
 .toast.ui-leaving{animation:toastOut .22s ease both}
 .notification-popover:not([hidden]){animation:popoverIn .22s var(--motion-soft) both!important}
 .notification-popover-item{animation:uiFade .22s ease both}
 .notification-popover-item:nth-child(2){animation-delay:.025s}.notification-popover-item:nth-child(3){animation-delay:.05s}.notification-popover-item:nth-child(4){animation-delay:.075s}.notification-popover-item:nth-child(5){animation-delay:.1s}
}
@keyframes toastIn{from{opacity:0;transform:translateY(-10px) scale(.975)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(18px) scale(.985)}}
@keyframes popoverIn{from{opacity:0;transform:translateY(-7px) scale(.985)}to{opacity:1;transform:none}}

/* Modales y backdrops */
.modal-backdrop{transition:opacity var(--motion-base) ease,backdrop-filter var(--motion-base) ease;background:rgba(6,14,20,.46);backdrop-filter:blur(3px)}
@media (prefers-reduced-motion:no-preference){
 .modal:not([hidden]),.event-signup-modal:not([hidden]),.role-editor:not([hidden]){animation:modalEnter .3s var(--motion-soft) both}
 .modal-backdrop:not([hidden]){animation:backdropEnter .2s ease both}
}
@keyframes modalEnter{from{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:none}}
@keyframes backdropEnter{from{opacity:0}to{opacity:1}}

/* Details / acordeones */
details>summary{transition:color var(--motion-fast) ease,background var(--motion-fast) ease}
details>summary:hover{color:var(--brand)}
@media (prefers-reduced-motion:no-preference){details[open]>:not(summary){animation:detailsReveal .24s var(--motion-soft) both}}
@keyframes detailsReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Inputs y filas */
.field input:focus,.field select:focus,.field textarea:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{transform:translateY(-1px);transition:transform var(--motion-fast) var(--motion-spring),border-color var(--motion-fast),box-shadow var(--motion-fast)}
tbody tr{transition:background var(--motion-fast) ease,box-shadow var(--motion-fast) ease!important}
tbody tr:hover{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--brand) 38%,transparent)}

/* Entrada de página menos genérica y más fluida */
@media (prefers-reduced-motion:no-preference){
 body.ui-ready .page>.page-head{animation:pageHeadIn .38s var(--motion-soft) both}
 body.ui-ready .page>.metric-grid,body.ui-ready .page>.admin-card-grid,body.ui-ready .page>.module-grid{animation:pageGridIn .42s .035s var(--motion-soft) both}
 body.ui-ready .page>.panel,body.ui-ready .page>.two-col,body.ui-ready .page>.section-gap{animation:pagePanelIn .42s .07s var(--motion-soft) both}
}
@keyframes pageHeadIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes pageGridIn{from{opacity:0;transform:translateY(7px) scale(.996)}to{opacity:1;transform:none}}
@keyframes pagePanelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media(max-width:760px){
 .metric-card:hover,.admin-card:hover,.module-card:hover,.health-card:hover,.event-card:hover{transform:none;box-shadow:var(--shadow-sm)}
 body.ui-navigating .main{transform:none}
}
@media(prefers-reduced-motion:reduce){
 .ui-route-progress{display:none!important}
 .nav-group-items{transition:none!important}.nav-group-items>.nav-item{transition:none!important}
 button.ui-submitting:after,[type="submit"].ui-submitting:after{animation:none!important}
}
/* Corrección de colapso: varios links directos no son compatibles con el truco 0fr sin wrapper interno. */
.nav-group-items{display:block!important;max-height:1400px!important;opacity:1!important;overflow:hidden!important;transition:max-height .28s var(--motion-soft),opacity .16s ease!important}
.nav-group.is-collapsed .nav-group-items{display:block!important;max-height:0!important;opacity:0!important;pointer-events:none}

/* Checkpoint 40 · Visitantes VATSUR persistentes */
.table-primary-link{color:inherit;text-decoration:none}.table-primary-link:hover strong{text-decoration:underline;text-underline-offset:3px}.visitor-profile-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr)}.visitor-motivation{font-size:1rem;line-height:1.65;color:var(--text);white-space:normal}.visitor-raw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.visitor-raw-item{min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 78%,transparent)}.visitor-raw-item>span{display:block;margin-bottom:5px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.visitor-raw-item>strong{display:block;overflow-wrap:anywhere;font-size:.94rem;line-height:1.45}.visitor-nested{margin-top:8px}.visitor-nested .visitor-raw-grid{grid-template-columns:1fr}.visitor-history-stack{display:grid;gap:14px}.visitor-history-block{border:1px solid var(--border);border-radius:14px;overflow:hidden}.visitor-history-path{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--muted)}.visitor-history-entry{padding:12px}.visitor-history-entry+.visitor-history-entry{border-top:1px solid var(--border)}.visitor-diff-list{display:grid;gap:7px}.visitor-diff-list>div{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:10px}.visitor-diff-list span{color:var(--muted);overflow-wrap:anywhere}@media(max-width:900px){.visitor-profile-grid{grid-template-columns:1fr}.visitor-raw-grid{grid-template-columns:1fr}.visitor-diff-list>div{grid-template-columns:1fr;gap:2px}}

/* Checkpoint 41 · densidad, color y tablas */
:root{--accent-cyan:#2f94a4;--accent-green:#2c9563;--accent-amber:#d28b2d;--accent-violet:#7c59b7;--accent-red:#cf5a50}
.page{max-width:1840px;padding-left:28px;padding-right:28px}
.panel{position:relative}
.panel-head .eyebrow{color:color-mix(in srgb,var(--brand) 70%,var(--accent-cyan))}
.metric-card{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 93%,var(--brand-soft)))}
.metric-card.cyan{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 89%,var(--accent-cyan)))}
.metric-card.blue{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 88%,var(--brand)))}
.metric-card.violet{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-violet)))}
.metric-card.green{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-green)))}
.metric-card.amber{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-amber)))}
.metric-card.cyan:before{background:var(--accent-cyan)}.metric-card.violet:before{background:var(--accent-violet)}
.badge.cyan{color:var(--accent-cyan);background:color-mix(in srgb,var(--accent-cyan) 11%,var(--surface));border-color:color-mix(in srgb,var(--accent-cyan) 30%,var(--border))}
.table-wrap td{overflow-wrap:normal;word-break:normal}.table-wrap td.allow-break{overflow-wrap:anywhere}
.table-wrap tbody tr{transition:background-color .13s ease,box-shadow .13s ease}.table-wrap tbody tr:hover{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--brand) 58%,transparent)}
th.is-sortable{transition:background-color .13s ease,color .13s ease}.table-wrap th.is-sortable:hover{color:var(--text);background:color-mix(in srgb,var(--brand) 8%,var(--surface-2))}

/* Visitantes · listado ancho y legible */
.visitors-page-head{margin-bottom:22px}.visitors-table-panel{overflow:hidden}.visitors-table-wrap{width:100%}
.visitors-table{min-width:1470px}.visitors-table th,.visitors-table td{padding-left:11px;padding-right:11px}.visitors-table th:first-child,.visitors-table td:first-child{padding-left:15px}
.visitors-table th:last-child,.visitors-table td:last-child{padding-right:15px}.visitors-table td:not(:first-child){white-space:nowrap}.visitors-table td:first-child{min-width:310px;max-width:390px;white-space:normal}.visitors-table td:nth-child(3){min-width:90px}.visitors-table td:nth-child(4),.visitors-table td:nth-child(5),.visitors-table td:nth-child(6){min-width:142px}.visitors-table td:nth-child(9),.visitors-table td:nth-child(10){min-width:142px}
.visitors-table .badge{white-space:nowrap}.visitors-table .cell-note{max-width:330px}

/* Visitantes · ficha informativa, no visor JSON */
.visitor-detail-head{padding-bottom:4px}.visitor-detail-head h1{font-size:36px}.visitor-profile-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.8fr);gap:18px}
.visitor-accent-blue,.visitor-accent-green,.visitor-complement-panel,.visitor-history-panel,.visitor-local-history,.visitor-auth-history{overflow:hidden}
.visitor-accent-blue:before,.visitor-accent-green:before,.visitor-complement-panel:before,.visitor-history-panel:before,.visitor-local-history:before,.visitor-auth-history:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.visitor-accent-blue:before{background:var(--brand)}.visitor-accent-green:before{background:var(--accent-green)}.visitor-complement-panel:before{background:var(--accent-cyan)}.visitor-history-panel:before{background:var(--accent-amber)}.visitor-local-history:before{background:var(--accent-violet)}.visitor-auth-history:before{background:var(--brand-hover)}
.visitor-motivation{font-size:1.02rem;line-height:1.7;padding:4px 2px 8px}.visitor-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:11px}.visitor-detail-grid.nested{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.visitor-detail-item{min-width:0;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(145deg,var(--surface-2),color-mix(in srgb,var(--surface-2) 92%,var(--brand-soft)))}.visitor-detail-item>span,.visitor-object-field>span{display:block;font-size:.72rem;line-height:1.25;font-weight:850;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.visitor-detail-item>strong,.visitor-object-field>strong{font-size:.94rem;line-height:1.45}.visitor-detail-wide{grid-column:1/-1}
.visitor-position-chips,.visitor-value-chips{display:flex;flex-wrap:wrap;gap:7px}.visitor-position-chip,.visitor-value-chips>span{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:9px;border:1px solid color-mix(in srgb,var(--accent-cyan) 35%,var(--border));background:color-mix(in srgb,var(--accent-cyan) 9%,var(--surface));color:color-mix(in srgb,var(--accent-cyan) 78%,var(--text));font-size:.82rem;font-weight:850}.visitor-empty-value{color:var(--muted);font-size:.86rem}
.visitor-object-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.visitor-object-card{padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.visitor-object-field+.visitor-object-field{margin-top:9px}
.visitor-history-stack{display:grid;gap:12px}.visitor-history-block{border:1px solid var(--border);border-radius:13px;overflow:hidden;background:var(--surface-2)}.visitor-history-path{padding:10px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--accent-amber) 8%,var(--surface));font-family:inherit;font-weight:850;font-size:.78rem;color:color-mix(in srgb,var(--accent-amber) 75%,var(--text))}.visitor-history-entry{padding:12px}.visitor-history-entry+.visitor-history-entry{border-top:1px solid var(--border)}
.visitor-diff-list{display:grid;gap:7px}.visitor-diff-list>div{display:grid;grid-template-columns:minmax(125px,.3fr) 1fr;gap:10px}.visitor-diff-list span{color:var(--muted)}
html[data-theme="dark"] .visitor-position-chip,html[data-theme="dark"] .visitor-value-chips>span{color:#b9e4eb}html[data-theme="dark"] .visitor-history-path{color:#efca8b}
@media(max-width:1100px){.visitor-profile-grid{grid-template-columns:1fr}.visitors-table{min-width:1450px}}
@media(max-width:680px){.page{padding-left:14px;padding-right:14px}.visitor-detail-head h1{font-size:29px}.visitor-detail-grid,.visitor-detail-grid.nested{grid-template-columns:1fr}.visitor-diff-list>div{grid-template-columns:1fr;gap:2px}}


/* Checkpoint 42 · Solo Validation VATSUR */
.solo-dashboard-card{overflow:hidden;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 90%,var(--accent-green)))}
.solo-dashboard-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-green)}
#soloValidationTable{min-width:1120px}#soloValidationTable td{white-space:nowrap}#soloValidationTable td:first-child{min-width:220px;white-space:normal}

/* Checkpoint 43 · segunda pasada global UI/UX */
:root{
 --radius-sm:10px;--radius-md:14px;--radius-lg:18px;
 --shadow-soft:0 7px 22px rgba(31,58,80,.055);
 --shadow-lift:0 16px 38px rgba(31,58,80,.10);
 --focus-ring:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent);
}
html[data-theme="dark"]{--shadow-soft:0 8px 24px rgba(0,0,0,.16);--shadow-lift:0 18px 42px rgba(0,0,0,.28)}
body{background:
 radial-gradient(circle at 82% -8%,color-mix(in srgb,var(--brand) 7%,transparent),transparent 31rem),
 var(--bg)}
.page{max-width:1880px;padding:34px clamp(22px,2.2vw,42px) 48px}
.page-head{margin-bottom:28px;align-items:center}
.page-head h1{font-size:clamp(29px,2.05vw,38px);line-height:1.08;letter-spacing:-.045em}
.page-head p{max-width:920px;line-height:1.62}.eyebrow,.section-kicker{letter-spacing:.14em}

/* Sidebar: más clara y con mejor orientación */
.sidebar{width:286px}.main{margin-left:286px}
.brand{height:80px;padding:14px 17px}.brand-main{min-width:0;flex:1}
.nav{padding:5px 11px 18px}.nav-group{padding-top:7px;margin-top:7px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
.nav-group:first-child{border-top:0}.nav-group-toggle{padding:7px 9px 6px}.nav-group-items{padding:2px 0 3px}
.nav-item{min-height:42px!important;padding:9px 10px!important;border-radius:10px!important;position:relative}
.nav-item:after{content:"";position:absolute;right:9px;width:5px;height:5px;border-radius:50%;background:var(--brand);opacity:0;transform:scale(.5);transition:.16s ease}
.nav-item.active:after{opacity:.75;transform:scale(1)}
.nav-item.active:before{left:-1px!important;top:7px!important;bottom:7px!important;width:3px!important;border-radius:0 3px 3px 0}
.nav-search{margin:14px 12px 9px;min-height:40px;border-radius:11px;background:color-mix(in srgb,var(--surface-2) 92%,var(--brand-soft));transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.nav-search:focus-within{border-color:color-mix(in srgb,var(--brand) 52%,var(--border));box-shadow:var(--focus-ring);background:var(--surface)}
.sidebar-footer{padding:13px 15px;background:color-mix(in srgb,var(--surface-2) 64%,var(--surface))}
.user-mini{padding:7px 5px}.user-mini-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft)!important;color:var(--brand)}

/* Topbar: más útil visualmente sin ocupar más */
.topbar{height:68px;padding:0 clamp(20px,2vw,34px);box-shadow:0 1px 0 color-mix(in srgb,var(--border) 75%,transparent)}
.topbar-title{padding:7px 10px;border:1px solid color-mix(in srgb,var(--ok) 18%,var(--border));background:color-mix(in srgb,var(--ok-bg) 65%,var(--surface));border-radius:999px;color:color-mix(in srgb,var(--ok) 70%,var(--text));font-weight:800}
.status-dot{width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 14%,transparent)}
.icon-btn,.ghost-btn{transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.icon-btn:hover,.ghost-btn:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--brand) 28%,var(--border));transform:translateY(-1px)}

/* Botones y foco */
.primary-btn,.secondary-btn,.table-btn,.danger-btn{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease,color .15s ease}
.primary-btn{box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 18%,transparent)}
.primary-btn:hover{transform:translateY(-1px);box-shadow:0 11px 25px color-mix(in srgb,var(--brand) 24%,transparent)}
.secondary-btn:hover,.table-btn:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--brand) 32%,var(--border));background:color-mix(in srgb,var(--brand-soft) 38%,var(--surface))}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* Panels: jerarquía y profundidad controladas */
.panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--border) 90%,var(--brand));padding:22px}
.panel:hover{border-color:color-mix(in srgb,var(--border) 80%,var(--brand))}
.panel-head{margin-bottom:18px}.panel-head h2{font-size:17px;letter-spacing:-.015em}.panel-head p{line-height:1.5}
.section-gap{margin-top:20px}

/* Métricas: más vivas pero dentro de la paleta FIR */
.metric-grid{gap:15px;margin-bottom:21px}.metric-card{min-height:138px;border-radius:var(--radius-lg);padding:18px 18px 16px;box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--border) 88%,var(--brand));overflow:hidden!important}
.metric-card:before{width:4px}.metric-card .metric-value{font-size:36px;line-height:1}.metric-card .metric-label{letter-spacing:.015em}.metric-card .metric-cta{display:flex;align-items:center;gap:5px}.metric-card .metric-cta span{transition:transform .15s ease}.metric-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}.metric-card:hover .metric-cta span{transform:translateX(3px)}
.tone-danger{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-red)))}
.tone-violet{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-violet)))}
.tone-amber{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-amber)))}
.tone-green{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-green)))}
.tone-cyan{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--accent-cyan)))}

/* Acciones rápidas */
.quick-grid{gap:11px}.quick{min-height:67px;border-radius:13px;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}
.quick:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 28%,var(--border));background:color-mix(in srgb,var(--brand-soft) 35%,var(--surface));box-shadow:var(--shadow-soft)}
.quick>b{width:36px;height:36px;border-radius:10px}

/* Formularios */
.field input,.field select,.field textarea,.mini-input{border-radius:11px!important;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.field input:hover,.field select:hover,.field textarea:hover,.mini-input:hover{border-color:color-mix(in srgb,var(--brand) 28%,var(--border))}
.field input:focus,.field select:focus,.field textarea:focus,.mini-input:focus{border-color:color-mix(in srgb,var(--brand) 55%,var(--border));box-shadow:var(--focus-ring)!important;background:var(--surface)}
.field>span{letter-spacing:.015em}

/* Tablas: cabecera sticky, lectura más rápida y toolbar más clara */
.table-panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
.table-tools{min-height:61px;padding:13px 15px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 64%,var(--surface)),var(--surface));gap:12px;flex-wrap:wrap}
.searchbox{min-width:min(360px,100%);height:40px;border-radius:11px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.searchbox:focus-within{border-color:color-mix(in srgb,var(--brand) 48%,var(--border));box-shadow:var(--focus-ring);background:var(--surface)}
.record-count{padding:5px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);white-space:nowrap}
.table-wrap{position:relative;scrollbar-gutter:stable both-edges}table{font-variant-numeric:tabular-nums}
th{position:sticky;top:0;z-index:2;padding-top:11px;padding-bottom:11px;background:color-mix(in srgb,var(--surface-2) 94%,var(--surface));backdrop-filter:blur(8px)}
td{padding-top:13px;padding-bottom:13px}tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface-2) 28%,transparent)}
tbody tr:hover{background:color-mix(in srgb,var(--brand-soft) 36%,var(--surface))!important}
th.is-sortable{padding-right:28px!important;position:sticky}
th.is-sortable:after{right:10px;opacity:.45}th.is-sortable:hover:after,th.is-sortable[aria-sort]{opacity:1}
.table-primary-link strong,.table-link{color:color-mix(in srgb,var(--brand) 82%,var(--text))}.table-primary-link:hover strong,.table-link:hover{color:var(--brand-hover)}
.actions{gap:7px}.table-btn{min-height:30px;padding:6px 9px;border-radius:9px}

/* Badges: más legibles y con mejor diferenciación */
.badge{min-height:24px;align-items:center;padding:4px 9px;border-radius:999px;line-height:1.1}.badge.ok{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 5%,transparent)}.badge.warning{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warning) 5%,transparent)}

/* Estados vacíos y textos auxiliares */
.empty-state{border:1px dashed color-mix(in srgb,var(--border) 80%,var(--brand));border-radius:14px;background:color-mix(in srgb,var(--surface-2) 70%,var(--surface));padding:24px}.empty-state h3{margin-top:7px}.cell-note{line-height:1.45}

/* Dashboard: bloques personales más distinguibles */
.dashboard-profile-grid{gap:20px}.dashboard-user-card,.dashboard-sessions-card{overflow:hidden}.dashboard-user-card:before,.dashboard-sessions-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px}.dashboard-user-card:before{background:linear-gradient(90deg,var(--brand),var(--accent-cyan))}.dashboard-sessions-card:before{background:linear-gradient(90deg,var(--accent-violet),var(--brand-hover))}
.solo-dashboard-card{border-color:color-mix(in srgb,var(--accent-green) 30%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--accent-green) 10%,transparent)}
.dashboard-user-facts>div{border-radius:12px;transition:border-color .15s ease,background .15s ease}.dashboard-user-facts>div:hover{border-color:color-mix(in srgb,var(--brand) 25%,var(--border));background:color-mix(in srgb,var(--brand-soft) 28%,var(--surface-2))}
.session-row{transition:background .15s ease,border-color .15s ease}.session-row:hover{background:color-mix(in srgb,var(--brand-soft) 28%,var(--surface));border-color:color-mix(in srgb,var(--brand) 24%,var(--border))}

/* Visitantes y Solo Validation: aprovechar escritorio ancho */
.visitors-table{min-width:1400px}.visitors-table td:first-child{min-width:330px}
#soloValidationTable{min-width:1180px}.visitor-detail-head,.visitors-page-head{max-width:none}

/* Tooltips nativos visuales para controles con title */
[title]{text-underline-offset:2px}

@media(max-width:1200px){
 .sidebar{width:274px}.main{margin-left:274px}
 .page{padding-left:24px;padding-right:24px}
 .two-col,.dashboard-profile-grid{grid-template-columns:1fr!important}
}
@media(max-width:980px){
 .sidebar{width:286px}.main{margin-left:0}
 .topbar-title{padding:6px 9px}
 .page{padding:26px 18px 40px}.page-head{align-items:flex-start;flex-direction:column}.page-head-actions{width:100%;flex-wrap:wrap}
}
@media(max-width:680px){
 .page{padding:22px 13px 34px}.page-head{margin-bottom:20px}.page-head h1{font-size:29px}
 .metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{min-height:118px;padding:15px}.metric-card .metric-value{font-size:31px}
 .panel{padding:17px;border-radius:15px}.table-tools{padding:11px}.searchbox{width:100%;min-width:0}.record-count{margin-left:auto}
 .quick-grid{grid-template-columns:1fr}.topbar{height:62px;padding:0 12px}.topbar-title span:last-child{display:none}.topbar-title{padding:7px}
}
@media(max-width:460px){.metric-grid{grid-template-columns:1fr}.metric-card{min-height:108px}}

/* Checkpoint 44 · navegación percibida, loader global y transiciones */
::view-transition-old(root){animation:uiViewOld .12s ease both}
::view-transition-new(root){animation:uiViewNew .18s ease both}
@keyframes uiViewOld{to{opacity:.72;transform:translateY(2px)}}
@keyframes uiViewNew{from{opacity:.74;transform:translateY(3px)}to{opacity:1;transform:none}}

.page-loader{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(8px) saturate(.9);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility 0s linear .16s}
.page-loader.is-visible,body.ui-booting .page-loader,body.ui-navigating .page-loader,body.ui-form-loading .page-loader{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .14s ease}
.page-loader-dialog{width:min(410px,calc(100vw - 34px));display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:18px 19px;border-radius:18px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));background:color-mix(in srgb,var(--surface) 96%,var(--brand-soft));box-shadow:0 22px 70px color-mix(in srgb,#000 28%,transparent),0 0 0 1px color-mix(in srgb,var(--brand) 8%,transparent);transform:translateY(6px) scale(.985);transition:transform .18s var(--motion-soft)}
.page-loader.is-visible .page-loader-dialog,body.ui-booting .page-loader-dialog,body.ui-navigating .page-loader-dialog,body.ui-form-loading .page-loader-dialog{transform:none}
.page-loader-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.page-loader-copy strong{font-size:15px;letter-spacing:-.01em}.page-loader-copy span{font-size:12px;color:var(--muted);line-height:1.35}
.page-loader-orbit{width:42px;height:42px;position:relative;border-radius:50%;background:color-mix(in srgb,var(--brand-soft) 75%,var(--surface-2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 18%,var(--border))}
.page-loader-orbit:before{content:"";position:absolute;inset:7px;border:3px solid color-mix(in srgb,var(--brand) 20%,transparent);border-top-color:var(--brand);border-right-color:var(--accent-cyan);border-radius:50%;animation:uiSpin .72s linear infinite}
.page-loader-orbit span{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--brand)}
.page-loader-orbit span:nth-child(1){left:3px;top:18px;background:var(--accent-cyan)}.page-loader-orbit span:nth-child(2){right:5px;top:8px;background:var(--accent-green)}.page-loader-orbit span:nth-child(3){right:4px;bottom:7px;background:var(--accent-amber)}
.page-loader-skeleton{grid-column:1/-1;display:grid;gap:7px;margin-top:1px}.page-loader-skeleton i{display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--surface-2) 20%,color-mix(in srgb,var(--brand-soft) 68%,var(--surface-2)) 45%,var(--surface-2) 70%);background-size:220% 100%;animation:uiSkeleton 1.05s linear infinite}.page-loader-skeleton i:nth-child(1){width:100%}.page-loader-skeleton i:nth-child(2){width:76%}.page-loader-skeleton i:nth-child(3){width:46%}
@keyframes uiSkeleton{to{background-position:-220% 0}}

body.ui-booting .main{opacity:.72;transform:translateY(3px)}
body.ui-ready .main{animation:uiPageArrive .22s var(--motion-soft) both}
@keyframes uiPageArrive{from{opacity:.84;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-head,.metric-grid,.panel,.table-panel,.dashboard-profile-grid{will-change:opacity,transform}
body.ui-content-enter .page>.page-head,body.ui-content-enter .page>.metric-grid,body.ui-content-enter .page>.panel,body.ui-content-enter .page>.table-panel,body.ui-content-enter .page>.dashboard-profile-grid{animation:uiBlockArrive .24s var(--motion-soft) both}
body.ui-content-enter .page>*:nth-child(2){animation-delay:.025s}body.ui-content-enter .page>*:nth-child(3){animation-delay:.05s}body.ui-content-enter .page>*:nth-child(4){animation-delay:.075s}
@keyframes uiBlockArrive{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:none}}

/* Estados busy homogéneos */
[data-ui-busy="1"]{pointer-events:none!important;cursor:wait!important}.ui-action-busy{position:relative;opacity:.78!important;pointer-events:none!important}.ui-action-busy:after{content:"";width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;vertical-align:-2px;animation:uiSpin .62s linear infinite}
body.ui-navigating,body.ui-form-loading{cursor:progress}
body.ui-navigating .sidebar,body.ui-form-loading .sidebar{pointer-events:none}

/* Skeleton reutilizable para módulos AJAX actuales/futuros */
.ui-skeleton{position:relative;overflow:hidden;background:var(--surface-2);border-radius:9px;color:transparent!important;user-select:none}.ui-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--brand-soft) 62%,transparent),transparent);animation:uiSkeletonSweep 1.1s ease-in-out infinite}@keyframes uiSkeletonSweep{to{transform:translateX(100%)}}
.ui-skeleton-line{height:11px;margin:8px 0}.ui-skeleton-line.short{width:42%}.ui-skeleton-line.medium{width:68%}

/* Toasters / modales: entrada más suave */
.toast{animation:uiToastIn .2s var(--motion-soft) both}@keyframes uiToastIn{from{opacity:0;transform:translateY(-7px) scale(.985)}to{opacity:1;transform:none}}
[role="dialog"]:not([hidden]),.role-editor:not([hidden]){animation:uiDialogIn .18s var(--motion-soft) both}@keyframes uiDialogIn{from{opacity:.72;transform:translateY(5px) scale(.99)}to{opacity:1;transform:none}}

@media(max-width:680px){.page-loader{padding:12px}.page-loader-dialog{grid-template-columns:38px 1fr;padding:15px;border-radius:15px}.page-loader-orbit{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation:none!important}.page-loader,.page-loader-dialog,.toast,[role="dialog"]:not([hidden]),.role-editor:not([hidden]),body.ui-ready .main,body.ui-content-enter .page>*{animation:none!important;transition:none!important}.page-loader-orbit:before,.page-loader-skeleton i,.ui-skeleton:after,.ui-action-busy:after{animation:none!important}.ui-route-progress{display:none!important}}

/* Checkpoint 47 · balanceo seguro global de tarjetas + acentos consistentes */
.auto-card-grid{
  display:grid!important;
  grid-template-columns:repeat(var(--card-grid-cols,1),minmax(0,1fr))!important;
  align-items:stretch;
}
.auto-card-grid>*{min-width:0}

/* Acento lateral unificado para tarjetas que antes quedaban sin línea. */
.admin-card,.module-card,.health-card,.quick,.event-card,.mini-stat,.record-card,.po-status-card,
.dashboard-exam-card,.dashboard-sessions-card,.dashboard-user-card,.solo-dashboard-card,
.signup-state-card,.sector-summary-card,.event-stat-main-card,.identity-card,.ratings-card,
.import-card,.maintenance-card,.notice-card,.notify-policy-card,.notify-source-card{
  position:relative;
  overflow:hidden;
  --card-accent:var(--brand);
}
.admin-card:before,.module-card:before,.quick:before,.event-card:before,.mini-stat:before,.record-card:before,.po-status-card:before,
.dashboard-exam-card:before,.dashboard-sessions-card:before,.dashboard-user-card:before,.solo-dashboard-card:before,
.signup-state-card:before,.sector-summary-card:before,.event-stat-main-card:before,.identity-card:before,.ratings-card:before,
.import-card:before,.maintenance-card:before,.notify-policy-card:before,.notify-source-card:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:var(--card-accent);
  pointer-events:none;
}
.admin-card:hover,.module-card:hover,.quick:hover,.event-card:hover,.record-card:hover{
  border-color:color-mix(in srgb,var(--card-accent) 34%,var(--border));
}
.tone-green,.is-live,.approved,.ok{--card-accent:var(--accent-green)}
.tone-amber,.warning,.pending{--card-accent:var(--accent-amber)}
.tone-danger,.danger,.error,.failed{--card-accent:var(--accent-red)}
.tone-violet{--card-accent:var(--accent-violet)}
.tone-cyan{--card-accent:var(--accent-cyan)}

/* Componentes con border-left propio: mantener ancho y color consistentes. */
.health-card.error,.health-card.warning,.health-card.ok,
.ticket-status-card.is-pending,.ticket-status-card.is-replied,
.exam-summary,.notice-card.warning,.notice-card.danger{border-left-width:3px!important}

/* Responsive del sistema balanceado. */
@media(max-width:680px){.auto-card-grid{--card-grid-cols:1!important}}

/* Checkpoint 49 · producción: motion más calmo, spacing consistente y lectura segura */
::view-transition-old(root),::view-transition-new(root){animation-duration:.09s!important;animation-timing-function:ease-out!important;transform:none!important}
body.ui-ready .main{animation:uiPageArriveProd .12s ease-out both!important}
@keyframes uiPageArriveProd{from{opacity:.94}to{opacity:1}}
body.ui-content-enter .page>.page-head,body.ui-content-enter .page>.metric-grid,body.ui-content-enter .page>.panel,body.ui-content-enter .page>.table-panel,body.ui-content-enter .page>.dashboard-profile-grid{animation:uiBlockArriveProd .12s ease-out both!important;animation-delay:0s!important}
@keyframes uiBlockArriveProd{from{opacity:.94}to{opacity:1}}
.page-loader{backdrop-filter:blur(4px) saturate(.96);transition:opacity .11s ease,visibility 0s linear .11s}
.page-loader.is-visible,body.ui-booting .page-loader,body.ui-navigating .page-loader,body.ui-form-loading .page-loader{transition:opacity .1s ease}
.page-loader-dialog{transform:none!important;transition:none!important}
.toast{animation:uiToastInProd .13s ease-out both!important}@keyframes uiToastInProd{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}
[role="dialog"]:not([hidden]),.role-editor:not([hidden]){animation:uiDialogInProd .13s ease-out both!important}@keyframes uiDialogInProd{from{opacity:.92;transform:translateY(2px) scale(.997)}to{opacity:1;transform:none}}
.metric-card:hover,.admin-card:hover,.event-card-v2:hover,.ticket-card-link:hover,.sector-dropzone:hover,.sector-dropzone.is-dragging,.primary-btn:hover,.vatsim-login-btn:hover{transform:none!important}
.nav-item,.metric-card,.admin-card,.primary-btn,.secondary-btn,.ghost-btn,.icon-btn,.event-card-v2,.ticket-card-link,.sector-dropzone{transition-duration:.11s!important}
.ui-ripple{display:none!important}

/* Ritmo vertical: evita paneles y bloques pegados sin inflar toda la interfaz. */
.page>.panel,.page>.table-panel,.page>.settings-grid,.page>.admin-card-grid,.page>.module-grid,.page>.health-cards,.page>.permission-wrap,.page>.record-grid,.page>.event-card-grid,.page>.event-card-grid-v2,.page>.dashboard-profile-grid{margin-bottom:20px}
.page>.metric-grid{margin-bottom:20px}
.page-head{margin-bottom:28px}
.panel-head{margin-bottom:19px}
.panel-head+.form-stack,.panel-head+.form-grid,.panel-head+.settings-grid{margin-top:2px}
.form-stack{gap:16px}.form-grid{gap:17px}.settings-grid{gap:20px}.two-col{gap:20px}
.inline-actions,.page-head-actions,.modal-actions,.actions,.table-actions{gap:9px}
.save-bar{margin-top:4px;padding-top:18px;padding-bottom:18px}
.table-tools{padding:15px 17px}.table-wrap td{padding-top:13px;padding-bottom:13px}
.permission-wrap{gap:17px}.permission-row{padding-top:14px;padding-bottom:14px}.permission-module .panel-head{padding-top:18px;padding-bottom:18px}

/* Tarjetas: línea de acento siempre completa y contenido con aire suficiente. */
.admin-card,.module-card,.quick,.event-card,.mini-stat,.record-card,.po-status-card,.dashboard-exam-card,.dashboard-sessions-card,.dashboard-user-card,.solo-dashboard-card,.signup-state-card,.sector-summary-card,.event-stat-main-card,.identity-card,.ratings-card,.import-card,.maintenance-card,.notice-card,.notify-policy-card,.notify-source-card{isolation:isolate}
.admin-card:before,.module-card:before,.quick:before,.event-card:before,.mini-stat:before,.record-card:before,.po-status-card:before,.dashboard-exam-card:before,.dashboard-sessions-card:before,.dashboard-user-card:before,.solo-dashboard-card:before,.signup-state-card:before,.sector-summary-card:before,.event-stat-main-card:before,.identity-card:before,.ratings-card:before,.import-card:before,.maintenance-card:before,.notify-policy-card:before,.notify-source-card:before{z-index:0;border-radius:3px 0 0 3px}
.admin-card>* ,.module-card>* ,.quick>* ,.event-card>* ,.record-card>* ,.dashboard-exam-card>* ,.dashboard-sessions-card>* ,.dashboard-user-card>* ,.solo-dashboard-card>* ,.identity-card>* ,.ratings-card>*{position:relative;z-index:1}
.metric-card,.admin-card,.module-card,.health-card,.quick,.record-card{padding-left:20px}

/* Sólo lectura: visible y realmente no editable en la UI. El backend sigue siendo la autoridad. */
.is-readonly-form{position:relative}
.is-readonly-form :is(input,select,textarea,button[type="submit"]):disabled{opacity:.68;cursor:not-allowed}
.is-readonly-form .field>span:after{content:""}
.readonly-note{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}

@media(max-width:980px){.page-head{margin-bottom:22px}.settings-grid,.form-grid,.two-col{gap:16px}}
@media(max-width:680px){.page>.panel,.page>.table-panel,.page>.settings-grid,.page>.admin-card-grid,.page>.module-grid,.page>.health-cards,.page>.permission-wrap,.page>.record-grid,.page>.event-card-grid,.page>.event-card-grid-v2,.page>.dashboard-profile-grid{margin-bottom:16px}.page-head{margin-bottom:20px}.panel-head{margin-bottom:16px}}


/* Checkpoint 50 · cierre visual: sin parpadeos de bloques, ritmo estable y navegación funcional */
/* El contenido PHP ya llega renderizado: no animar paneles al entrar. */
body.ui-ready .main,
body.ui-ready .page>* ,
body.ui-content-enter .page>*{
  animation:none!important;
}
::view-transition-old(root),::view-transition-new(root){animation:none!important}

/* Flujo vertical robusto para contenedores principales. */
:root{--page-section-gap:22px}
.page>:is(.panel,.table-panel,.metric-grid,.two-col,.settings-grid,.admin-card-grid,.module-grid,.health-cards,.quick-grid,.record-grid,.event-card-grid,.event-card-grid-v2,.dashboard-profile-grid,.permission-wrap,.ticket-detail-grid,.migration-grid,.log-summary-grid,.exam-summary-grid,.audit-metrics,.event-overview-grid,.po-admin-overview,.po-dataset-grid,.event-section,.event-section-v2,.section-gap){
  margin-top:0;
  margin-bottom:var(--page-section-gap)!important;
}
.page>.page-head{margin-bottom:28px!important}
.page>form.settings-grid{row-gap:20px!important}
.page>form.settings-grid>.panel{margin:0!important}
.page>.section-gap:last-child,.page>.panel:last-child,.page>.table-panel:last-child{margin-bottom:0!important}
.panel>.panel-head+*{margin-top:0}
.panel>.panel-head{margin-bottom:18px!important}
.panel>:last-child{margin-bottom:0}

/* La X pertenece únicamente al drawer móvil. */
.sidebar .sidebar-close{display:none!important}
@media(max-width:980px){.sidebar .sidebar-close{display:grid!important}}

/* Color funcional sutil del menú, compatible con light/dark mediante variables semánticas. */
.nav-group{--nav-accent:var(--brand)}
.nav-group[data-nav-group-key="operacion"]{--nav-accent:var(--accent-cyan,var(--cyan))}
.nav-group[data-nav-group-key="controladores"]{--nav-accent:var(--accent-green,var(--ok))}
.nav-group[data-nav-group-key="datos-contenido"]{--nav-accent:var(--accent-violet,var(--violet))}
.nav-group[data-nav-group-key="integraciones"]{--nav-accent:var(--accent-amber,var(--warning))}
.nav-group[data-nav-group-key="administracion"]{--nav-accent:var(--brand-hover)}
.nav-group .nav-label{color:color-mix(in srgb,var(--nav-accent) 72%,var(--muted))}
.nav-group .nav-item .nav-icon{color:color-mix(in srgb,var(--nav-accent) 72%,var(--text));background:color-mix(in srgb,var(--nav-accent) 7%,var(--surface-2));border-color:color-mix(in srgb,var(--nav-accent) 14%,var(--border))}
.nav-group .nav-item:hover{background:color-mix(in srgb,var(--nav-accent) 6%,var(--surface-2));color:var(--text)}
.nav-group .nav-item.active{background:color-mix(in srgb,var(--nav-accent) 12%,var(--surface));color:color-mix(in srgb,var(--nav-accent) 82%,var(--text));box-shadow:inset 3px 0 0 var(--nav-accent)}
.nav-group .nav-item.active .nav-icon{background:var(--nav-accent);border-color:var(--nav-accent);color:#fff}
html[data-theme="dark"] .nav-group .nav-item.active{background:color-mix(in srgb,var(--nav-accent) 16%,var(--surface))}

@media(max-width:680px){:root{--page-section-gap:17px}.page>.page-head{margin-bottom:21px!important}}

/* Ritmo top-level definitivo: cada bloque de una vista mantiene separación homogénea. */
.page>:not(.page-head):not(script):not(style){margin-bottom:0!important}
.page>:not(.page-head):not(script):not(style)+:not(script):not(style){margin-top:var(--page-section-gap)!important}
.page>.page-head+:not(script):not(style){margin-top:0!important}
body.ui-booting .main{opacity:1!important;transform:none!important}

/* Checkpoint 52: dashboard block permissions */
.dashboard-profile-grid.single{grid-template-columns:minmax(0,1fr)!important}
.dashboard-permission-table .permission-row{align-items:center}

/* Checkpoint 53 · acceso explícito administrable */
.explicit-access-panel .panel-head{align-items:flex-start}
.explicit-access-form{margin-top:2px;margin-bottom:18px}
.explicit-access-form .form-actions{grid-column:1/-1;display:flex;justify-content:flex-end}
.explicit-access-panel .table-wrap{margin-top:4px}
.explicit-access-panel td form{margin:0}
@media(max-width:900px){.explicit-access-form{grid-template-columns:1fr 1fr}.explicit-access-form .form-actions{grid-column:1/-1}}
@media(max-width:620px){.explicit-access-form{grid-template-columns:1fr}.explicit-access-form .form-actions{grid-column:1}}


/* Checkpoint 54 · loader informativo con barra de actividad */
.page-loader-dialog{grid-template-columns:auto 1fr;row-gap:12px}
.page-loader-progress{grid-column:1/-1;position:relative;height:6px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--surface-2) 82%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 72%,transparent)}
.page-loader-progress span{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--accent-cyan));animation:loaderActivity 1.15s ease-in-out infinite}
.page-loader-stage{grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.35;margin-top:-4px}
@keyframes loaderActivity{0%{transform:translateX(-110%);width:28%}50%{width:52%}100%{transform:translateX(310%);width:28%}}
@media(prefers-reduced-motion:reduce){.page-loader-progress span{animation:none;left:0;width:58%;transform:none}}

/* Checkpoint 55 · Entrenamientos beta */
.cell-sub,.table-primary-link small{display:block;margin-top:3px;color:var(--muted);font-size:.76rem;font-weight:600}.metric-text{font-size:clamp(1rem,1.3vw,1.3rem)!important;line-height:1.2;overflow-wrap:anywhere}.detail-note{margin-top:16px;padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:var(--panel-2)}.detail-note>span{display:block;margin-bottom:6px;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.detail-note p{margin:0;line-height:1.6}.table-text-long{min-width:220px;white-space:normal!important;line-height:1.45}

/* Checkpoint 57 · Centro de alertas ATC */
.alert-filter-bar{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(150px,.7fr)) auto auto;gap:12px;align-items:end;margin-bottom:16px}.alert-filter-bar label{display:grid;gap:6px}.alert-filter-bar label>span{font-size:.78rem;font-weight:700;color:var(--muted)}.alert-severity-critical{background:color-mix(in srgb,#ef4444 18%,transparent)!important;color:#ef4444!important;border-color:color-mix(in srgb,#ef4444 45%,var(--line))!important}.alert-severity-high{background:color-mix(in srgb,#f97316 17%,transparent)!important;color:#f97316!important;border-color:color-mix(in srgb,#f97316 42%,var(--line))!important}.alert-severity-medium{background:color-mix(in srgb,#eab308 16%,transparent)!important;color:#ca8a04!important;border-color:color-mix(in srgb,#eab308 38%,var(--line))!important}.alert-severity-low{background:color-mix(in srgb,#38bdf8 15%,transparent)!important;color:#0284c7!important;border-color:color-mix(in srgb,#38bdf8 36%,var(--line))!important}.alert-summary{font-size:1rem;line-height:1.65;margin:0 0 18px}.technical-json{max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px;font-size:.82rem;line-height:1.55}@media(max-width:1180px){.alert-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.alert-filter-bar{grid-template-columns:1fr}}

/* Checkpoint 58 · Perfil operativo consolidado del controlador */
.operational-profile-panel{border-color:color-mix(in srgb,var(--brand) 24%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 4%,var(--surface)),var(--surface))}
.operational-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.operational-summary-card{position:relative;min-width:0;padding:16px 17px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);overflow:hidden}
.operational-summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand)}
.operational-summary-card>span{display:block;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.operational-summary-card>strong{display:block;margin-top:7px;color:var(--text);font-size:1.14rem;line-height:1.2;overflow-wrap:anywhere}
.operational-summary-card>small{display:block;margin-top:7px;color:var(--muted);font-size:.78rem;line-height:1.35}
.operational-summary-card.ok:before{background:var(--ok)}.operational-summary-card.info:before{background:var(--accent-cyan)}.operational-summary-card.violet:before{background:var(--violet)}.operational-summary-card.warning:before{background:var(--warning)}.operational-summary-card.danger:before{background:var(--danger)}.operational-summary-card.muted:before{background:var(--muted)}
.operational-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.operational-detail-grid>.panel{margin:0!important;min-width:0}
.operational-detail-grid td small{display:block;margin-top:3px;color:var(--muted);font-size:.75rem}.change-chip-list{display:flex;flex-wrap:wrap;gap:6px}.change-chip{display:inline-flex;gap:4px;align-items:center;padding:5px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:.74rem;line-height:1.2}.change-chip strong{color:var(--text)}
@media(max-width:1280px){.operational-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.operational-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operational-detail-grid{grid-template-columns:1fr}}
@media(max-width:620px){.operational-summary-grid{grid-template-columns:1fr}}

/* Checkpoint 59 · habilitaciones por rating + selects buscables */
.operational-profile-panel{border:0!important;box-shadow:none!important;background:var(--surface)!important}
.rating-rules-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}
.rating-rules-table{min-width:760px;margin:0}
.rating-rules-table th,.rating-rules-table td{text-align:center;vertical-align:middle}
.rating-rules-table th:first-child,.rating-rules-table td:first-child{text-align:left;white-space:nowrap}
.rating-rules-table th:last-child,.rating-rules-table td:last-child{text-align:left;min-width:220px}
.rating-rule-check{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:84px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}
.rating-rule-check:has(input:checked){border-color:color-mix(in srgb,var(--brand) 42%,var(--line));background:color-mix(in srgb,var(--brand) 10%,var(--surface-2));color:var(--text)}
.rating-rule-check input{margin:0}.rating-rule-check span{font-size:.78rem;font-weight:800}
.rating-rule-summary{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--brand) 9%,var(--surface-2));border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));font-size:.78rem;font-weight:750;white-space:nowrap}
.rating-rule-summary.is-empty{background:var(--surface-2);border-color:var(--line);color:var(--muted)}
.searchable-select{display:grid;gap:7px;min-width:0}.searchable-select>select{width:100%}.searchable-select-input{width:100%;padding-left:36px!important;background-image:linear-gradient(transparent,transparent)}
.searchable-select{position:relative}.searchable-select:before{content:'⌕';position:absolute;left:12px;top:11px;color:var(--muted);z-index:1;pointer-events:none}.searchable-select-input.no-results{border-color:color-mix(in srgb,var(--warning) 55%,var(--line))!important}
@media(max-width:760px){.rating-rules-table-wrap{border-radius:12px}.rating-rule-check{min-width:72px;padding:7px 8px}}

/* Checkpoint 62 · combobox integrado, sin buscador separado del select */
.combo-select{position:relative;min-width:0}
.combo-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.combo-select-input{width:100%;padding-right:38px!important;background-image:linear-gradient(transparent,transparent)}
.combo-select:after{content:'⌄';position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:16px}
.combo-select-menu{position:absolute;z-index:120;left:0;right:0;top:calc(100% + 6px);max-height:290px;overflow:auto;padding:6px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 42px rgba(0,0,0,.32);isolation:isolate}
.combo-select-option{display:block;width:100%;text-align:left;border:0;background:var(--surface);color:var(--text);padding:10px 11px;border-radius:8px;cursor:pointer;font:inherit}
.combo-select-option:hover,.combo-select-option.active{background:color-mix(in srgb,var(--brand) 14%,transparent)}
.combo-select-option.selected{font-weight:700;color:var(--brand)}
.combo-select-empty{padding:12px;color:var(--muted);text-align:center}
.searchable-select,.searchable-select-input{display:none!important}

/* Checkpoint 63 · base operativa de instrucción */
.training-ops-grid{align-items:start}.training-progress-panel{min-height:100%}.combo-select{z-index:5}.combo-select:focus-within{z-index:130}.combo-select-menu[hidden]{display:none!important}


/* Checkpoint 65 · ficha de instrucción + historial del roster */
.training-detail-columns{align-items:start}
.training-main-data .panel-head{margin-bottom:16px}
.training-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.training-fact{display:flex;flex-direction:column;gap:5px;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.training-fact>span{font-size:.73rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.training-fact>strong{font-size:.98rem;line-height:1.4;color:var(--text);overflow-wrap:anywhere}
.training-fact>small{font-size:.77rem;line-height:1.35;color:var(--muted)}
.training-fact-wide{grid-column:1/-1}
.training-assignment-note{margin-top:12px}
.training-progress-panel .detail-grid{gap:11px}
.training-progress-panel .detail-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);min-width:0}
.training-progress-panel .detail-grid>div>span{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.training-progress-panel .detail-grid>div>strong{font-size:.97rem;line-height:1.35}
.training-progress-panel .detail-grid>div>small{font-size:.76rem;line-height:1.35;color:var(--muted)}

.roster-history-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(150px,.7fr) minmax(150px,.65fr) minmax(150px,.65fr) auto;gap:12px;align-items:end}
.roster-history-filters label{display:grid;gap:6px}.roster-history-filters label>span{font-size:.76rem;font-weight:800;color:var(--muted)}
.roster-history-filters .form-actions{margin:0;align-self:end}
.roster-change-timeline{display:flex;flex-direction:column;gap:0}
.roster-change-entry{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;position:relative;padding:3px 0 18px}
.roster-change-entry:not(:last-child):before{content:"";position:absolute;left:7px;top:18px;bottom:-2px;width:1px;background:var(--line)}
.roster-change-marker{width:14px;height:14px;margin-top:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 12%,transparent);z-index:1}
.roster-change-marker.ok{background:var(--ok)}.roster-change-marker.warning{background:var(--warning)}.roster-change-marker.info{background:var(--accent-cyan)}
.roster-change-content{padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);min-width:0}
.roster-change-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.roster-change-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.roster-change-head a{text-decoration:none}.roster-change-head span,.roster-change-head time{font-size:.76rem;color:var(--muted)}
.roster-change-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:11px}
.roster-change-fields>div{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1fr) auto minmax(0,1fr);gap:7px;align-items:center;padding:9px 10px;border-radius:9px;background:var(--surface);border:1px solid var(--line)}
.roster-change-fields span{font-size:.73rem;font-weight:800;color:var(--muted)}.roster-change-fields strong{font-size:.82rem;overflow-wrap:anywhere}.roster-change-fields b{color:var(--muted);font-weight:700}
.roster-change-summary{margin:10px 0 0;color:var(--text-soft);font-size:.86rem;line-height:1.5}
.roster-member-change-list{display:flex;flex-direction:column}.roster-member-change-list article{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.roster-member-change-list article:last-child{border-bottom:0}.roster-member-change-list time{font-size:.78rem;color:var(--muted)}.roster-member-change-list article>div>strong{display:block;margin-bottom:7px}
.secondary-btn.compact{padding:7px 10px;min-height:0;font-size:.76rem}
@media(max-width:1100px){.roster-history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filter-search{grid-column:1/-1}.roster-history-filters .form-actions{grid-column:1/-1}}
@media(max-width:700px){.training-facts-grid{grid-template-columns:1fr}.training-fact-wide{grid-column:auto}.roster-history-filters{grid-template-columns:1fr}.history-filter-search,.roster-history-filters .form-actions{grid-column:auto}.roster-change-head{flex-direction:column}.roster-change-fields{grid-template-columns:1fr}.roster-change-fields>div{grid-template-columns:1fr;gap:3px}.roster-change-fields b{display:none}.roster-member-change-list article{grid-template-columns:1fr;gap:5px}}

/* Checkpoint 66 · estadísticas ATC operativas */
.stats-ops-panel{overflow:hidden}
.stats-ops-metrics{margin-top:4px}
.stats-ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.stats-ops-card{min-width:0;border:1px solid var(--border);background:var(--surface-2);border-radius:15px;padding:17px 18px}
.stats-ops-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}
.stats-ops-card-head h3{margin:3px 0 0;font-size:1rem}.stats-ops-card-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.ops-bar-row{display:grid;gap:5px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.ops-bar-row:last-child{border-bottom:0;padding-bottom:0}
.ops-bar-label{display:flex;align-items:center;justify-content:space-between;gap:12px}.ops-bar-label strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.ops-bar-label span{font-variant-numeric:tabular-nums;font-weight:850;font-size:12px;color:var(--text)}
.ops-bar-track{height:7px;border-radius:999px;background:color-mix(in srgb,var(--border) 52%,transparent);overflow:hidden}.ops-bar-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--cyan));min-width:3px}
.ops-bar-row>small{color:var(--muted);font-size:10.5px}
.ops-hour-chart{display:grid;grid-template-columns:repeat(24,minmax(8px,1fr));align-items:end;gap:5px;height:225px;padding:24px 3px 0;border-bottom:1px solid var(--border)}
.ops-hour-col{height:100%;display:grid;grid-template-rows:1fr auto;align-items:end;gap:7px;min-width:0}.ops-hour-col>span{width:100%;min-height:2px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--cyan),var(--brand));opacity:.9}.ops-hour-col>small{font-size:8px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}
.ops-quality{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:calc(100% - 45px);align-items:stretch}.ops-quality>div{border:1px solid var(--border);border-radius:12px;background:var(--surface);display:flex;min-height:118px;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.ops-quality-value{font-size:2.25rem;font-weight:950;line-height:1}.ops-quality-value.success{color:var(--ok)}.ops-quality-value.warning{color:var(--warning)}.ops-quality strong{font-size:12px}
@media(max-width:1050px){.stats-ops-grid{grid-template-columns:1fr}.ops-hour-chart{height:200px}}
@media(max-width:700px){.stats-ops-card{padding:14px}.ops-hour-chart{gap:3px;height:170px}.ops-hour-col>small{font-size:7px}.stats-ops-metrics{grid-template-columns:1fr 1fr!important}.ops-quality{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.stats-ops-metrics{grid-template-columns:1fr!important}.ops-hour-chart{gap:2px}.ops-hour-col>small{font-size:0}.ops-hour-col>small:after{content:""}}

/* Checkpoint 67 · Centro de Instrucción */
.training-center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.training-center-card{background:var(--card-bg,var(--panel));border:1px solid var(--border);border-radius:16px;padding:18px;display:grid;gap:15px;box-shadow:0 8px 22px rgba(15,23,42,.05)}.training-center-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.training-center-card-head a{color:inherit;text-decoration:none}.training-center-card-head strong{display:block;font-size:1.05rem}.training-center-card-head small{display:block;margin-top:4px;color:var(--muted)}.training-path{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--primary) 8%,transparent);font-weight:700}.training-path b{color:var(--muted)}.training-center-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.training-center-facts>div{padding:10px 12px;border:1px solid var(--border);border-radius:12px;min-width:0}.training-center-facts span,.training-next span{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.training-center-facts strong{display:block;overflow-wrap:anywhere}.training-next{padding:12px 14px;border-left:3px solid var(--primary);background:color-mix(in srgb,var(--primary) 5%,transparent);border-radius:10px}.training-next p{margin:0;line-height:1.45}.text-danger{color:var(--danger,#c43d3d)}
@media(max-width:1100px){.training-center-grid{grid-template-columns:1fr}.training-center-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.training-center-card-head{flex-direction:column}.training-center-facts{grid-template-columns:1fr}.training-path{flex-wrap:wrap}}

/* Checkpoint 68 · Centro de vencimientos */
.expiry-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.expiry-summary-card{display:flex;flex-direction:column;gap:5px;min-height:124px;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm)}.expiry-summary-card span{font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.expiry-summary-card strong{font-size:2rem;line-height:1}.expiry-summary-card small{color:var(--muted)}.expiry-summary-card.danger{border-left:4px solid var(--danger)}.expiry-summary-card.critical{border-left:4px solid #d14b4b}.expiry-summary-card.warning{border-left:4px solid var(--warning)}.expiry-summary-card.info{border-left:4px solid var(--brand)}
.expiry-filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:14px;align-items:end;margin-bottom:18px}.expiry-filter-actions{display:flex;gap:9px;align-items:center}.expiry-source{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--surface-2);font-size:.76rem;font-weight:800;white-space:nowrap}.expiry-source.source-solo{box-shadow:inset 3px 0 0 #4aa66b}.expiry-source.source-visitor{box-shadow:inset 3px 0 0 #8b66d6}.expiry-source.source-notam{box-shadow:inset 3px 0 0 #d59a3a}.expiry-source.source-event{box-shadow:inset 3px 0 0 #478fbf}.table-subline{display:block;margin-top:3px;color:var(--muted);font-size:.75rem}
@media(max-width:1050px){.expiry-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.expiry-summary-grid{grid-template-columns:1fr}.expiry-filter-bar{grid-template-columns:1fr}.expiry-filter-actions{justify-content:flex-start}}

/* Checkpoint 69 · enlaces CID en tablas */
.vatsim-cid-link{color:var(--brand);font-weight:750;text-decoration:none;text-underline-offset:2px;white-space:nowrap}
.vatsim-cid-link:hover{text-decoration:underline}

/* Checkpoint 70 · accesos manuales temporales */
.temporary-access-form{display:grid;gap:14px;margin-top:2px;margin-bottom:18px}.temporary-access-form .form-actions{display:flex;justify-content:flex-end}.temporary-permissions{border:1px solid var(--border);border-radius:13px;background:var(--surface-2);overflow:hidden}.temporary-permissions>summary{cursor:pointer;padding:12px 14px;font-weight:850;list-style:none}.temporary-permissions>summary::-webkit-details-marker{display:none}.temporary-permissions>summary:after{content:'+';float:right;color:var(--muted)}.temporary-permissions[open]>summary:after{content:'−'}.temporary-permissions>p{margin:0;padding:0 14px 12px}.temporary-permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 14px 14px}.temporary-permission-groups fieldset{min-width:0;border:1px solid var(--border);border-radius:11px;padding:10px 12px;background:var(--surface)}.temporary-permission-groups legend{padding:0 6px;font-size:.76rem;font-weight:850;color:var(--muted)}.permission-choice{display:flex;gap:9px;align-items:flex-start;padding:7px 2px}.permission-choice input{margin-top:3px}.permission-choice span{min-width:0}.permission-choice strong{display:block;font-size:.82rem}.permission-choice small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem;line-height:1.35}.expiry-source.source-access{box-shadow:inset 3px 0 0 #b46ad8}
@media(max-width:900px){.temporary-permission-groups{grid-template-columns:1fr}}


/* Checkpoint 71 · dark mode legibility + vencimientos semánticos */
html[data-theme="dark"]{
  --ok:#69d39b;
  --danger:#ff9188;
  --warning:#efbd62;
  --violet:#ceb8ff;
  --cyan:#70c7d2;
  --amber:#f0b45d;
}
html[data-theme="dark"] .page .text-link,
html[data-theme="dark"] .page .table-link,
html[data-theme="dark"] .page .vatsim-cid-link,
html[data-theme="dark"] .page .metric-cta,
html[data-theme="dark"] .page .health-card summary,
html[data-theme="dark"] .page .compact-details summary,
html[data-theme="dark"] .page .request-all-fields summary,
html[data-theme="dark"] .page .history-panel>summary>b,
html[data-theme="dark"] .page .admin-card b,
html[data-theme="dark"] .page .ticket-open-arrow,
html[data-theme="dark"] .page .section-kicker,
html[data-theme="dark"] .page details>summary:hover{
  color:#a9d2ec;
}
html[data-theme="dark"] .page .vatsim-cid-link:hover,
html[data-theme="dark"] .page .text-link:hover,
html[data-theme="dark"] .page .table-link:hover{color:#d9effc}
html[data-theme="dark"] .badge.ok{color:#7fe1ac}
html[data-theme="dark"] .badge.warning{color:#f4ca76}
html[data-theme="dark"] .badge.danger{color:#ff9d95}
html[data-theme="dark"] .alert-severity-medium{color:#f0c64f!important}
html[data-theme="dark"] .alert-severity-low{color:#7dd3fc!important}
html[data-theme="dark"] .alert-severity-high{color:#fb9a55!important}
html[data-theme="dark"] .alert-severity-critical{color:#ff8c8c!important}
html[data-theme="dark"] .combo-select-option.selected{color:#a9d2ec}
html[data-theme="dark"] .expiry-source{color:var(--text)}
.expiry-policy-note{margin:0 0 14px;padding:11px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--muted);font-size:.78rem;line-height:1.5}
.expiry-policy-note strong{color:var(--text)}

/* Checkpoint 72 · salud de Clarity */
.clarity-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 14px}
.clarity-health-card{min-width:0;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);display:grid;gap:6px}
.clarity-health-card>span{font-size:.74rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.clarity-health-card>strong{font-size:1rem;color:var(--text)}
.clarity-health-card>small{font-size:.82rem;line-height:1.45;color:var(--muted)}
@media(max-width:760px){.clarity-health-grid{grid-template-columns:1fr}}

/* Auditoría operacional legible · checkpoint 73 */
.audit-human-event{min-width:320px}.audit-human-event>strong{display:block;font-size:13px;line-height:1.35}.audit-human-event>.cell-note{display:block;margin-top:4px;max-width:560px;white-space:normal;line-height:1.45}.audit-subject-chip{display:inline-flex;margin-top:7px;padding:3px 7px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:800}.audit-human-summary{margin:16px 0 4px;padding:14px 15px;border:1px solid color-mix(in srgb,var(--brand-hover) 28%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--brand-hover) 7%,var(--surface-2))}.audit-human-summary strong{display:block;font-size:16px;line-height:1.35}.audit-human-summary p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
html[data-theme="dark"] .audit-human-summary{background:color-mix(in srgb,var(--brand-hover) 10%,#10181f);border-color:color-mix(in srgb,var(--brand-hover) 32%,var(--border))}
@media(max-width:760px){.audit-human-event{min-width:250px}}


/* Checkpoint 75 · ATC automation spacing + personal dashboard */
.atc-alert-automation .form-grid,.panel .atc-alert-automation{gap:18px}
.atc-incident-settings .toggle-row{padding:14px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);align-items:flex-start}
.atc-incident-settings .toggle-row>span{display:flex!important;flex-direction:column!important;gap:5px!important;min-width:0}
.atc-incident-settings .toggle-row strong{display:block;line-height:1.35}
.atc-incident-settings .toggle-row small{display:block;line-height:1.5;color:var(--muted);margin:0!important}
.atc-incident-settings>label:not(.toggle-row){display:flex;flex-direction:column;gap:7px}
.atc-incident-settings>label:not(.toggle-row)>span{display:block;margin:0}
.atc-incident-settings>label:not(.toggle-row)>small{display:block;margin:0;line-height:1.5}
.dashboard-customize-panel{padding:0;overflow:hidden}
.dashboard-customize-panel details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px}
.dashboard-customize-panel summary::-webkit-details-marker{display:none}
.dashboard-customize-panel summary>span:first-child{display:flex;flex-direction:column;gap:3px}
.dashboard-customize-panel summary strong{font-size:13px}.dashboard-customize-panel summary small{color:var(--muted);font-size:11px}
.dashboard-customize-panel .details-chevron{color:var(--muted);font-size:18px;transition:transform .15s ease}.dashboard-customize-panel details[open] .details-chevron{transform:rotate(180deg)}
.dashboard-preference-form{border-top:1px solid var(--border);padding:18px}
.dashboard-preference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.dashboard-pref-option{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);cursor:pointer}
.dashboard-pref-option>span{display:flex;flex-direction:column;gap:2px}.dashboard-pref-option strong{font-size:11.5px}.dashboard-pref-option small{font-size:10px;color:var(--muted)}
.dashboard-pref-option input{margin-top:2px}
.dashboard-preference-form .form-actions{margin-top:16px}
@media(max-width:680px){.dashboard-preference-grid{grid-template-columns:1fr}}


/* checkpoint 76 · salud de integraciones */
.integration-health-panel{display:grid;gap:16px}.integration-health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.integration-health-summary>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);display:grid;gap:4px}.integration-health-summary span{font-size:.73rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.integration-health-summary strong{font-size:1.35rem}.integration-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-health-card{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);min-width:0}.integration-health-card.is-ok{border-left:3px solid var(--success)}.integration-health-card.is-warning{border-left:3px solid var(--warning)}.integration-health-card.is-error{border-left:3px solid var(--danger)}.integration-health-card.is-disabled{opacity:.78}.integration-health-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.integration-health-card>p{margin:8px 0 12px;color:var(--muted);line-height:1.45}.integration-health-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.integration-health-card dl>div{padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--panel) 70%,transparent)}.integration-health-card dt{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:var(--muted)}.integration-health-card dd{margin:3px 0 0;font-weight:750}.integration-health-error{display:block;margin-top:10px;color:var(--danger);line-height:1.4;overflow-wrap:anywhere}.integration-health-card details{margin-top:12px}.integration-health-card summary{cursor:pointer;font-weight:750;color:var(--text)}.integration-health-tasks{display:grid;gap:7px;margin-top:8px}.integration-health-tasks>div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border);border-radius:9px}.integration-health-tasks span{font-size:.78rem;color:var(--muted)}@media(max-width:900px){.integration-health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.integration-health-grid{grid-template-columns:1fr}}@media(max-width:560px){.integration-health-summary{grid-template-columns:1fr}.integration-health-card dl{grid-template-columns:1fr}}

/* Checkpoint 77 · Mapa operativo ATC */
.live-map-head-actions{display:flex;align-items:center;gap:10px}.live-indicator{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;color:var(--muted)}.live-indicator i{width:9px;height:9px;border-radius:50%;background:#25a768;box-shadow:0 0 0 4px color-mix(in srgb,#25a768 16%,transparent)}
.live-map-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.live-map-summary-card{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:16px;display:grid;gap:4px}.live-map-summary-card span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.live-map-summary-card strong{font-size:1.7rem}.live-map-summary-card small{color:var(--muted)}.live-map-summary-card.ok{border-color:color-mix(in srgb,#25a768 45%,var(--border))}.live-map-summary-card.warning{border-color:color-mix(in srgb,#d99a20 52%,var(--border))}.live-map-summary-card.danger{border-color:color-mix(in srgb,#d95050 50%,var(--border))}
.atc-live-layers{display:grid;gap:16px}.atc-live-layer{border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--panel) 88%,var(--bg));padding:14px}.atc-live-layer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.atc-live-layer-head>div{display:grid;gap:2px}.atc-live-layer-head strong{font-size:1.02rem}.atc-live-layer-head span:not(.badge){font-size:.82rem;color:var(--muted)}.atc-live-empty{padding:14px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);text-align:center}.atc-live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.atc-live-card{border:1px solid var(--border);border-left-width:4px;border-radius:14px;background:var(--panel);padding:14px;display:grid;gap:12px}.atc-live-card.state-normal{border-left-color:#25a768}.atc-live-card.state-warning{border-left-color:#d99a20}.atc-live-card.state-alert{border-left-color:#d95050}.atc-live-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.atc-live-card-top>div{display:grid;gap:2px}.atc-live-callsign{font-size:1.08rem;letter-spacing:.02em}.atc-live-frequency{font-size:.82rem;color:var(--muted)}.atc-live-controller{display:grid;gap:3px}.atc-live-controller strong{font-size:.96rem}.atc-live-controller .text-link{width:max-content;font-size:.84rem}.atc-live-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.atc-live-meta>div{border-radius:10px;background:color-mix(in srgb,var(--bg) 62%,transparent);padding:8px 10px}.atc-live-meta dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.atc-live-meta dd{margin:3px 0 0;font-weight:650}.atc-live-note{margin:0;padding:9px 10px;border-radius:10px;background:color-mix(in srgb,var(--brand) 8%,transparent);font-size:.84rem;line-height:1.45}.atc-live-alerts{display:grid;gap:7px}.atc-live-alert-link{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-size:.84rem}.atc-live-alert-link:hover{text-decoration:underline}.atc-live-alerts small{color:var(--muted)}.atc-live-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.secondary-btn.compact{padding:7px 10px;font-size:.82rem}
@media(max-width:900px){.live-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.live-map-summary{grid-template-columns:1fr}.atc-live-grid{grid-template-columns:1fr}.atc-live-meta{grid-template-columns:1fr}}

/* Checkpoint 79 · Mapa ATC — pase visual operativo */
.atc-live-page-head{align-items:flex-end}.live-map-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.live-indicator{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid color-mix(in srgb,#25a768 34%,var(--border));border-radius:999px;background:color-mix(in srgb,#25a768 8%,var(--panel));font-size:.82rem;font-weight:750;color:var(--text)}.live-indicator i{width:8px;height:8px;border-radius:50%;background:#25a768;box-shadow:0 0 0 4px color-mix(in srgb,#25a768 16%,transparent)}.live-map-refresh-copy{font-size:.8rem;color:var(--muted)}
.atc-live-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--panel) 74%,transparent);border:1px solid var(--border)}.atc-live-legend>span{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700}.atc-live-legend small{margin-left:auto;color:var(--muted);font-size:.8rem}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}.status-dot.normal{background:#25a768}.status-dot.warning{background:#d99a20}.status-dot.alert{background:#d95050}
.live-map-summary{display:grid;grid-template-columns:1.35fr repeat(3,minmax(0,1fr));gap:12px}.live-map-summary-card{position:relative;overflow:hidden;border:1px solid var(--border);background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 96%,var(--bg)),var(--panel));border-radius:16px;padding:16px 17px;display:grid;gap:5px;min-height:110px;align-content:center}.live-map-summary-card.primary{grid-template-columns:auto 1fr;align-items:center;gap:14px}.live-map-summary-card:after{content:"";position:absolute;inset:auto -24px -34px auto;width:92px;height:92px;border-radius:50%;background:color-mix(in srgb,var(--border) 34%,transparent)}.live-map-summary-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.075em;color:var(--muted);font-weight:800}.live-map-summary-card strong{font-size:1.85rem;line-height:1}.live-map-summary-card small{color:var(--muted);font-size:.79rem}.live-map-summary-card.ok{border-color:color-mix(in srgb,#25a768 44%,var(--border))}.live-map-summary-card.warning{border-color:color-mix(in srgb,#d99a20 48%,var(--border))}.live-map-summary-card.danger{border-color:color-mix(in srgb,#d95050 48%,var(--border))}.summary-card-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 15%,var(--panel));border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));font-size:.72rem;font-weight:900;letter-spacing:.06em;color:var(--text)}
.atc-live-board{padding:18px}.atc-live-board-head{align-items:center}.atc-live-board-status{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--bg) 40%,var(--panel));font-size:.8rem;white-space:nowrap}.atc-live-board-status strong{font-size:.8rem}
.atc-live-layers{display:grid;gap:18px}.atc-live-layer{border:1px solid color-mix(in srgb,var(--border) 92%,transparent);border-radius:16px;background:color-mix(in srgb,var(--bg) 28%,var(--panel));padding:14px}.atc-live-layer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;padding:0 2px}.atc-live-layer-title{display:flex;align-items:center;gap:10px}.atc-live-layer-title>div{display:grid;gap:1px}.atc-live-layer-head strong{font-size:1rem}.atc-live-layer-head span:not(.layer-code):not(.layer-count){font-size:.78rem;color:var(--muted)}.layer-code{width:42px;height:30px;display:grid;place-items:center;border-radius:9px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));background:color-mix(in srgb,var(--brand) 10%,var(--panel));font-size:.68rem;font-weight:900;letter-spacing:.06em}.layer-count{font-size:.76rem;color:var(--muted);font-weight:700}
.atc-live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}.atc-live-card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:15px;background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 98%,var(--bg)),var(--panel));padding:15px 15px 14px 18px;display:grid;gap:13px;box-shadow:0 9px 24px color-mix(in srgb,#000 5%,transparent)}.atc-live-status-rail{position:absolute;inset:0 auto 0 0;width:4px;background:#25a768}.atc-live-card.state-warning .atc-live-status-rail{background:#d99a20}.atc-live-card.state-alert .atc-live-status-rail{background:#d95050}.atc-live-card.state-warning{border-color:color-mix(in srgb,#d99a20 34%,var(--border))}.atc-live-card.state-alert{border-color:color-mix(in srgb,#d95050 38%,var(--border))}.atc-live-card-top{display:block}.atc-live-position{display:grid;gap:5px}.atc-live-callsign-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.atc-live-callsign{font-size:1.16rem;letter-spacing:.025em}.atc-live-frequency-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.atc-live-frequency{font-size:.87rem;color:var(--text);font-weight:700}.atc-live-duration{font-size:.76rem;color:var(--muted)}
.atc-live-controller{display:flex;align-items:center;gap:10px}.controller-avatar{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 12%,var(--bg));border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));font-weight:850;font-size:.85rem}.controller-copy{display:grid;gap:1px;min-width:0}.controller-copy strong{font-size:.94rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controller-copy .text-link{width:max-content;font-size:.78rem}.atc-live-chips{display:flex;gap:6px;flex-wrap:wrap}.atc-live-chips .badge{font-size:.7rem;padding:5px 8px}
.atc-live-qualification{border-radius:11px;padding:10px 11px;background:color-mix(in srgb,var(--brand) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--brand) 16%,var(--border));display:grid;gap:3px}.atc-live-qualification.state-warning{background:color-mix(in srgb,#d99a20 7%,var(--bg));border-color:color-mix(in srgb,#d99a20 22%,var(--border))}.atc-live-qualification.state-alert{background:color-mix(in srgb,#d95050 7%,var(--bg));border-color:color-mix(in srgb,#d95050 24%,var(--border))}.qualification-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;font-weight:850;color:var(--muted)}.atc-live-qualification p{margin:0;font-size:.82rem;line-height:1.42}
.atc-live-alerts{display:grid;gap:7px;border-top:1px solid var(--border);padding-top:11px}.atc-live-alerts-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850}.atc-live-alert-link{display:flex;align-items:flex-start;gap:8px;color:var(--text);text-decoration:none;font-size:.8rem;line-height:1.35}.atc-live-alert-link:hover span:last-child{text-decoration:underline}.atc-live-alerts small{color:var(--muted);font-size:.75rem}.atc-live-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-top:2px}.secondary-btn.compact{padding:7px 10px;font-size:.8rem}
.atc-live-zero-state{min-height:260px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--muted)}.atc-live-zero-state strong{color:var(--text);font-size:1.05rem}.atc-live-zero-state p{margin:0;max-width:460px}.atc-live-zero-icon{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--brand) 24%,var(--border));color:var(--text);font-size:.75rem;font-weight:900;letter-spacing:.08em}
@media(max-width:1050px){.live-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.live-map-summary-card.primary{grid-column:span 2}}@media(max-width:700px){.atc-live-page-head{align-items:flex-start}.live-map-head-actions{justify-content:flex-start}.atc-live-legend small{width:100%;margin-left:0}.atc-live-board-head{align-items:flex-start}.atc-live-board-status{white-space:normal}.atc-live-grid{grid-template-columns:1fr}}@media(max-width:520px){.live-map-summary{grid-template-columns:1fr}.live-map-summary-card.primary{grid-column:auto}.atc-live-layer{padding:11px}.atc-live-card{padding:13px 13px 12px 16px}.atc-live-callsign-row{align-items:flex-start}.atc-live-frequency-row{gap:7px}}


/* Checkpoint 80 · normalización visual global y corrección Mapa ATC */
/* Sin decoraciones circulares ornamentales: conservar sólo indicadores de estado funcionales. */
body{background:var(--bg)!important}
.metric-card:after,.live-map-summary-card:after,.login-hero:after,.nav-item:after{display:none!important;content:none!important}

/* Branding: el logo no se fuerza a un cuadrado ni se recorta. */
.brand{overflow:visible!important}
.brand-main{gap:12px!important;overflow:visible!important}
.brand-logo{
  width:min(118px,42%)!important;
  min-width:58px!important;
  max-width:118px!important;
  height:46px!important;
  flex:0 1 118px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.brand-logo img,.brand img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:44px!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:0!important;
}
.brand-copy{flex:1 1 auto!important;min-width:0!important}

/* Menú: recuperar la codificación funcional acordada. */
.nav-group[data-nav-group-key="operacion"]{--nav-accent:var(--cyan)!important}
.nav-group[data-nav-group-key="controladores"]{--nav-accent:var(--ok)!important}
.nav-group[data-nav-group-key="datos-contenido"]{--nav-accent:var(--violet)!important}
.nav-group[data-nav-group-key="integraciones"]{--nav-accent:var(--amber)!important}
.nav-group[data-nav-group-key="administracion"]{--nav-accent:var(--brand-hover)!important}
.nav-group .nav-item .nav-icon{color:color-mix(in srgb,var(--nav-accent) 78%,var(--text))!important;background:color-mix(in srgb,var(--nav-accent) 7%,var(--surface-2))!important;border-color:color-mix(in srgb,var(--nav-accent) 16%,var(--border))!important}
.nav-group .nav-item.active .nav-icon{color:#fff!important;background:var(--nav-accent)!important;border-color:var(--nav-accent)!important}
.nav-group .nav-item.active{color:color-mix(in srgb,var(--nav-accent) 82%,var(--text))!important;box-shadow:inset 3px 0 0 var(--nav-accent)!important}
html[data-theme="dark"] .nav-group .nav-item .nav-icon{color:color-mix(in srgb,var(--nav-accent) 72%,#fff)!important}
html[data-theme="dark"] .nav-group .nav-item.active .nav-icon{color:#fff!important}

/* Mapa ATC: compacto, plano y consistente con el resto de la consola. */
.live-map-summary{grid-template-columns:1.25fr repeat(3,minmax(0,1fr))!important;gap:12px!important}
.live-map-summary-card{min-height:96px!important;border-radius:13px!important;background:var(--surface)!important;box-shadow:none!important;padding:14px 16px!important}
.live-map-summary-card.primary{grid-template-columns:1fr!important;gap:5px!important}
.summary-card-icon{display:none!important}
.atc-live-board{padding:18px!important;border-radius:14px!important}
.atc-live-board-status,.live-indicator{border-radius:10px!important}
.atc-live-layer{border-radius:13px!important;background:var(--surface-2)!important;padding:14px!important}
.layer-code{border-radius:8px!important}
.atc-live-card{border-radius:12px!important;background:var(--surface)!important;box-shadow:none!important;padding:14px 14px 13px 17px!important}
.atc-live-controller{display:block!important}
.controller-copy{gap:3px!important}
.controller-copy strong{font-size:.98rem!important;white-space:normal!important}
.controller-avatar{display:none!important}
.atc-live-qualification,.atc-live-meta>div{border-radius:9px!important}
.atc-live-zero-icon{width:auto!important;height:auto!important;min-width:54px!important;padding:8px 12px!important;border-radius:8px!important}
.atc-live-legend{border-radius:11px!important;background:var(--surface)!important}

/* No hover ornamental sobre paneles/cards. */
.panel:hover,.metric-card:hover{transform:none!important}

@media(max-width:1050px){.live-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.live-map-summary-card.primary{grid-column:span 2!important}}
@media(max-width:520px){.live-map-summary{grid-template-columns:1fr!important}.live-map-summary-card.primary{grid-column:auto!important}.brand-logo{max-width:96px!important;flex-basis:96px!important}}


/* v0.9.0-rc2 checkpoint 82 · lenguaje visual definitivo: recto, flat, técnico */
*,*::before,*::after{font-style:normal!important;text-shadow:none!important}
html,body{font-synthesis:none!important}
body{background:var(--bg)!important}

/* Header/sidebar: compacto y exactamente alineado */
.sidebar{box-shadow:none!important;background:var(--surface)!important}
.brand{height:70px!important;min-height:70px!important;padding:9px 12px!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;box-sizing:border-box}
.brand-main{display:flex!important;align-items:center!important;gap:4px!important;min-width:0;max-width:100%}
.brand-logo{width:58px!important;height:40px!important;min-width:58px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;padding:0!important}
.brand-logo img,.brand img{width:58px!important;height:40px!important;max-width:58px!important;max-height:40px!important;object-fit:contain!important;object-position:left center!important;display:block!important}
.brand-copy{display:grid!important;gap:2px!important;min-width:0;margin:0!important}
.brand-copy strong{font-size:14px!important;line-height:1.08!important;letter-spacing:.01em!important;font-weight:700!important}
.brand-copy>span{font-size:9.5px!important;line-height:1.12!important;letter-spacing:.09em!important;margin:0!important;font-weight:500!important}
.topbar{height:70px!important;min-height:70px!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;box-shadow:none!important;backdrop-filter:none!important}

/* Navegación aprobada: flat, sin “pastilla” azul ni movimiento */
.nav-item,.nav-item:hover,.nav-item.active{box-shadow:none!important;transform:none!important;border:0!important}
.nav-item{position:relative!important;border-radius:6px!important;background:transparent!important;font-weight:600!important}
.nav-item:hover{background:color-mix(in srgb,var(--surface-2) 78%,transparent)!important;color:var(--text)!important}
.nav-item.active{background:color-mix(in srgb,var(--brand) 7%,var(--surface))!important;color:var(--text)!important;font-weight:700!important}
.nav-item.active:before{content:""!important;position:absolute!important;left:0!important;top:7px!important;bottom:7px!important;width:2px!important;border-radius:0!important;background:var(--brand-hover)!important}
.nav-item .nav-icon,.nav-item:hover .nav-icon,.nav-item.active .nav-icon{background:transparent!important;box-shadow:none!important;transform:none!important;border:0!important}
.nav-item.active .nav-icon{color:var(--brand-hover)!important}
.nav-group-toggle:hover{background:transparent!important}

/* Entorno global: ninguna profundidad decorativa */
.panel,.metric-card,.admin-card,.module-card,.health-card,.migration-card,.event-card,.quick,.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{box-shadow:none!important;transform:none!important;background-image:none!important}
.panel,.metric-card,.admin-card,.module-card,.health-card,.migration-card,.event-card,.quick{background:var(--surface)!important}
.panel:hover,.metric-card:hover,.admin-card:hover,.module-card:hover,.health-card:hover,.migration-card:hover,.event-card:hover,.quick:hover{box-shadow:none!important;transform:none!important}
.metric-card:after{display:none!important}.ui-ripple{display:none!important}.status-dot{animation:none!important;box-shadow:none!important}
.primary-btn{background:var(--brand)!important}.primary-btn:hover{background:var(--brand-hover)!important;box-shadow:none!important;transform:none!important}

/* Tipografía general: recta, sólida y con contraste */
.page-head h1{font-weight:750!important;letter-spacing:-.025em!important}
.page-head p,.panel-head p,.atc-live-legend small,.live-map-refresh-copy{font-weight:450!important;color:var(--muted)!important}
.eyebrow{font-weight:800!important;letter-spacing:.1em!important}

/* MAPA ATC: composición operativa, plana e iconográfica */
.atc-live-page-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:20px!important;margin-bottom:16px!important}
.atc-live-heading-copy{display:grid!important;gap:5px!important}
.atc-live-page-head h1{display:flex!important;align-items:center!important;gap:9px!important;margin:0!important;font-size:30px!important;line-height:1.08!important}
.page-title-icon,.section-title-icon{display:inline-grid!important;place-items:center!important;color:var(--brand-hover)!important;flex:0 0 auto}
.live-map-head-actions{display:flex!important;align-items:center!important;gap:10px!important;margin:0!important;padding:0 0 2px!important}
.live-indicator{display:inline-flex!important;align-items:center!important;gap:6px!important;border:1px solid color-mix(in srgb,var(--ok) 38%,var(--border))!important;border-radius:6px!important;background:transparent!important;padding:5px 8px!important;font-size:.76rem!important;font-weight:700!important}
.live-indicator i{width:6px!important;height:6px!important;border-radius:50%!important;background:var(--ok)!important;box-shadow:none!important}
.live-map-refresh-copy{font-size:.76rem!important}

.atc-live-legend{display:flex!important;align-items:center!important;gap:15px!important;flex-wrap:wrap!important;padding:7px 10px!important;border-radius:7px!important;background:var(--surface)!important;border:1px solid var(--border)!important}
.atc-live-legend>span{display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:.76rem!important;font-weight:650!important}
.atc-live-legend>span>.ui-icon{display:none!important}
.atc-live-legend .status-dot{width:7px!important;height:7px!important}.atc-live-legend small{margin-left:auto!important;font-size:.74rem!important}

.live-map-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-bottom:12px!important}
.live-map-summary-card{min-height:86px!important;padding:12px!important;border-radius:7px!important;background:var(--surface)!important;box-shadow:none!important;border:1px solid var(--border)!important;display:grid!important;grid-template-columns:30px 1fr!important;grid-template-rows:auto auto auto!important;column-gap:9px!important;align-items:start!important}
.live-map-summary-card .summary-card-icon{grid-row:1/span 3!important;width:30px!important;height:30px!important;border:0!important;border-radius:5px!important;display:grid!important;place-items:center!important;background:var(--surface-2)!important;color:var(--brand-hover)!important}
.live-map-summary-card .summary-card-icon .ui-icon{width:16px!important;height:16px!important}
.live-map-summary-card>span,.live-map-summary-card>div:not(.summary-card-icon)>span{grid-column:2!important;font-size:.66rem!important;line-height:1.15!important;letter-spacing:.065em!important;text-transform:uppercase!important;font-weight:800!important;color:var(--muted)!important}
.live-map-summary-card>strong,.live-map-summary-card>div:not(.summary-card-icon)>strong{grid-column:2!important;font-size:1.45rem!important;line-height:1!important;margin:2px 0 0!important;font-weight:750!important}
.live-map-summary-card>small,.live-map-summary-card>div:not(.summary-card-icon)>small{grid-column:2!important;font-size:.7rem!important;line-height:1.25!important;color:var(--muted)!important;margin-top:3px!important}
.live-map-summary-card.primary>div:not(.summary-card-icon){display:contents!important}
.live-map-summary-card.ok{border-left:3px solid var(--ok)!important}.live-map-summary-card.warning{border-left:3px solid #d99a20!important}.live-map-summary-card.danger{border-left:3px solid var(--danger)!important}.live-map-summary-card.primary{border-left:3px solid var(--brand-hover)!important}
.live-map-summary-card.ok .summary-card-icon{color:var(--ok)!important}.live-map-summary-card.warning .summary-card-icon{color:#d99a20!important}.live-map-summary-card.danger .summary-card-icon{color:var(--danger)!important}

.atc-live-board{padding:0!important;border-radius:8px!important;background:var(--surface)!important;overflow:hidden!important}
.atc-live-board-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;padding:14px 16px!important;margin:0!important;border-bottom:1px solid var(--border)!important;background:var(--surface)!important}
.atc-live-board-head>div:first-child{display:grid!important;gap:3px!important}.atc-live-board-head h2{display:flex!important;align-items:center!important;gap:7px!important;margin:0!important;font-size:1rem!important;font-weight:750!important}.atc-live-board-head p{margin:0!important;font-size:.73rem!important}
.atc-live-board-status{display:inline-flex!important;align-items:center!important;gap:6px!important;border:0!important;border-radius:5px!important;background:var(--surface-2)!important;padding:6px 8px!important;font-size:.72rem!important;white-space:nowrap!important}.atc-live-board-status strong{font-size:.72rem!important;font-weight:700!important}
.atc-live-layers{display:grid!important;gap:10px!important;padding:12px!important}
.atc-live-layer{border:1px solid var(--border)!important;border-radius:7px!important;background:var(--surface-2)!important;padding:10px!important}
.atc-live-layer-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 9px!important;padding:0!important}.atc-live-layer-title{display:flex!important;align-items:center!important;gap:8px!important}.layer-code{width:28px!important;height:28px!important;border-radius:5px!important;background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--brand-hover)!important}.layer-count{font-size:.7rem!important;color:var(--muted)!important;font-weight:650!important}
.atc-live-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;gap:8px!important}
.atc-live-card{position:relative!important;border:1px solid var(--border)!important;border-radius:7px!important;background:var(--surface)!important;box-shadow:none!important;padding:11px 11px 10px 14px!important;display:grid!important;gap:9px!important;overflow:hidden!important}.atc-live-status-rail{position:absolute!important;left:0!important;top:0!important;bottom:0!important;width:3px!important;background:var(--ok)!important}.atc-live-card.state-warning .atc-live-status-rail{background:#d99a20!important}.atc-live-card.state-alert .atc-live-status-rail{background:var(--danger)!important}
.atc-live-callsign-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}.atc-live-callsign{font-size:1.03rem!important;font-weight:800!important;letter-spacing:.025em!important}.atc-live-frequency-row{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap!important}.atc-live-frequency{font-size:.79rem!important;font-weight:700!important;color:var(--text)!important}.atc-live-duration{display:inline-flex!important;align-items:center!important;gap:4px!important;font-size:.72rem!important;color:var(--muted)!important}
.atc-live-controller{display:block!important}.controller-copy{display:grid!important;gap:2px!important}.controller-name-line{display:flex!important;align-items:center!important;gap:5px!important}.controller-name-line strong{font-size:.88rem!important;font-weight:700!important}.controller-name-line .ui-icon{width:13px!important;height:13px!important;color:var(--muted)!important}.controller-copy .text-link{font-size:.73rem!important;font-weight:650!important}
.atc-live-chips{display:flex!important;gap:5px!important;flex-wrap:wrap!important}.atc-live-chips .badge{font-size:.65rem!important;padding:4px 7px!important;border-radius:5px!important;box-shadow:none!important}
.atc-live-qualification{border-radius:6px!important;background:var(--surface-2)!important;border:1px solid var(--border)!important;padding:8px 9px!important}.qualification-label{font-size:.62rem!important;font-weight:800!important}.atc-live-qualification p{font-size:.76rem!important;line-height:1.35!important}
.atc-live-alerts{gap:6px!important;padding-top:8px!important}.atc-live-alerts-title{font-size:.63rem!important}.atc-live-alert-link{font-size:.75rem!important}
.atc-live-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding-top:1px!important}.atc-live-actions .secondary-btn{display:inline-flex!important;align-items:center!important;gap:5px!important;padding:6px 8px!important;font-size:.73rem!important;border-radius:5px!important}
.atc-live-zero-state{min-height:132px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:5px!important;padding:18px!important;text-align:center!important}.atc-live-zero-icon{width:34px!important;height:34px!important;min-width:34px!important;border:0!important;border-radius:5px!important;background:var(--surface-2)!important;color:var(--brand-hover)!important;display:grid!important;place-items:center!important}.atc-live-zero-icon .ui-icon{width:19px!important;height:19px!important}.atc-live-zero-state strong{font-size:.9rem!important;font-weight:750!important}.atc-live-zero-state p{margin:0!important;max-width:430px!important;font-size:.74rem!important;line-height:1.4!important}

html[data-theme="dark"] .sidebar,html[data-theme="dark"] .topbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .metric-card{box-shadow:none!important;background:var(--surface)!important}

@media(max-width:1050px){.live-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.atc-live-page-head{grid-template-columns:1fr!important;align-items:start!important}.live-map-head-actions{justify-content:flex-start!important}.atc-live-legend small{width:100%!important;margin-left:0!important}.atc-live-board-head{align-items:flex-start!important;flex-direction:column!important}.atc-live-board-status{white-space:normal!important}.atc-live-grid{grid-template-columns:1fr!important}}
@media(max-width:520px){.live-map-summary{grid-template-columns:1fr!important}.brand-logo{width:52px!important;min-width:52px!important}.brand-logo img,.brand img{width:52px!important;max-width:52px!important}.brand-main{gap:3px!important}}


/* Checkpoint 83 · cierre visual de preproducción */
/* Navegación: estado activo integrado al menú, no tarjeta/pastilla. */
.nav-group .nav-item,
.nav-group .nav-item:hover,
.nav-group .nav-item.active{
  border-radius:4px!important;
  box-shadow:none!important;
  transform:none!important;
}
.nav-group .nav-item{background:transparent!important;color:var(--muted)!important}
.nav-group .nav-item:hover{background:color-mix(in srgb,var(--nav-accent) 4%,var(--surface))!important;color:var(--text)!important}
.nav-group .nav-item.active{
  background:transparent!important;
  color:color-mix(in srgb,var(--nav-accent) 82%,var(--text))!important;
  box-shadow:none!important;
}
.nav-group .nav-item.active:before{
  left:0!important;top:9px!important;bottom:9px!important;width:2px!important;
  background:var(--nav-accent)!important;border-radius:0!important;
}
.nav-group .nav-item .nav-icon,
.nav-group .nav-item:hover .nav-icon,
.nav-group .nav-item.active .nav-icon{
  width:27px!important;height:27px!important;border:0!important;border-radius:4px!important;
  background:transparent!important;box-shadow:none!important;transform:none!important;
}
.nav-group .nav-item.active .nav-icon{color:var(--nav-accent)!important;background:transparent!important}
html[data-theme="dark"] .nav-group .nav-item.active{background:transparent!important}
html[data-theme="dark"] .nav-group .nav-item.active .nav-icon{color:color-mix(in srgb,var(--nav-accent) 78%,#fff)!important}

/* Títulos: mismo sistema de iconos en toda la consola. */
.page-head h1{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap!important}
.page-title-icon{width:28px!important;height:28px!important;border:1px solid var(--border)!important;border-radius:5px!important;background:var(--surface-2)!important;color:var(--brand-hover)!important;display:inline-grid!important;place-items:center!important;flex:0 0 auto!important}
.page-title-icon .ui-icon{width:16px!important;height:16px!important}
.page-head p{max-width:920px!important;line-height:1.45!important}

/* Resumen del Mapa ATC: icono arriba y todos los textos alineados a la izquierda. */
.live-map-summary-card{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;
  gap:7px!important;padding:13px 14px!important;min-height:104px!important;text-align:left!important;
}
.live-map-summary-card .summary-card-icon{
  width:28px!important;height:28px!important;min-width:28px!important;display:grid!important;place-items:center!important;
  border:1px solid var(--border)!important;border-radius:5px!important;background:var(--surface-2)!important;
  color:var(--brand-hover)!important;
}
.live-map-summary-card .summary-card-copy{display:grid!important;gap:2px!important;width:100%!important;text-align:left!important}
.live-map-summary-card .summary-card-copy>span{font-size:.66rem!important;line-height:1.15!important;letter-spacing:.065em!important;text-transform:uppercase!important;font-weight:800!important;color:var(--muted)!important;text-align:left!important}
.live-map-summary-card .summary-card-copy>strong{font-size:1.5rem!important;line-height:1!important;font-weight:750!important;text-align:left!important;margin:1px 0!important}
.live-map-summary-card .summary-card-copy>small{font-size:.7rem!important;line-height:1.25!important;color:var(--muted)!important;text-align:left!important;margin:0!important}
.live-map-summary-card.ok .summary-card-icon{color:var(--ok)!important}
.live-map-summary-card.warning .summary-card-icon{color:#d99a20!important}
.live-map-summary-card.danger .summary-card-icon{color:var(--danger)!important}

/* Iconografía funcional: tamaños y trazo homogéneos. */
.ui-icon{stroke-width:1.8!important;vector-effect:non-scaling-stroke}
.panel-head h2>.ui-icon,.section-title h2>.ui-icon,.section-title-icon .ui-icon{width:17px!important;height:17px!important;flex:0 0 auto!important}
.panel-head h2{display:flex;align-items:center;gap:7px}

/* Ninguna profundidad ornamental en preproducción. */
.panel,.metric-card,.admin-card,.module-card,.health-card,.quick,.atc-live-card,.atc-live-layer,.live-map-summary-card,
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.icon-btn,.nav-item{box-shadow:none!important;filter:none!important}

/* Contraste consistente de textos auxiliares. */
html[data-theme="dark"] .page-head p,
html[data-theme="dark"] .panel-head p,
html[data-theme="dark"] .cell-note,
html[data-theme="dark"] small,
html[data-theme="dark"] .muted{color:#9fb2c1!important}

@media(max-width:700px){
  .page-head h1{gap:7px!important}.page-title-icon{width:26px!important;height:26px!important}
  .live-map-summary-card{min-height:96px!important}
}


/* Checkpoint 84 · QA preproducción · guardas visuales finales */
/* Identidad tipográfica: ninguna vista puede forzar cursivas u oblicuas. */
html,body,button,input,select,textarea,.page,.sidebar,.topbar{font-style:normal!important}
.page *,.sidebar *,.topbar *{font-style:normal!important}

/* Navegación aprobada: flat, sin punto decorativo ni tarjeta activa. */
.nav-item:after,.nav-item.active:after{display:none!important;content:none!important}
.nav-group .nav-item,.nav-group .nav-item:hover,.nav-group .nav-item.active{
  background:transparent!important;box-shadow:none!important;filter:none!important;transform:none!important;
}
.nav-group .nav-item.active:before{width:2px!important;left:0!important;top:8px!important;bottom:8px!important;border-radius:0!important}

/* Sin profundidad artificial en navegación, contenido o controles. */
body.ui-navigating .main,.main,.page>*{transform:none!important}
.metric-card,.admin-card,.module-card,.health-card,.migration-card,.event-card,.ticket-card,.quick,
.panel,.table-panel,.atc-live-card,.atc-live-layer,.live-map-summary-card,
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{
  box-shadow:none!important;filter:none!important;transform:none!important;background-image:none!important;
}
.metric-card:hover,.admin-card:hover,.module-card:hover,.health-card:hover,.migration-card:hover,.event-card:hover,
.ticket-card:hover,.quick:hover,.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover,.danger-btn:hover,.table-btn:hover,.icon-btn:hover{
  box-shadow:none!important;transform:none!important;filter:none!important;
}

/* El header y el bloque de marca comparten exactamente la misma línea base. */
.brand,.topbar{height:70px!important;min-height:70px!important;border-bottom:1px solid var(--border)!important;box-shadow:none!important}
.brand-main{min-width:0!important;gap:7px!important}
.brand-copy{min-width:0!important;gap:1px!important}

/* Texto auxiliar legible y consistente en ambos temas. */
.page-head p,.panel-head p,.cell-note,.muted,small{line-height:1.42}
html[data-theme="dark"] .page-head p,
html[data-theme="dark"] .panel-head p,
html[data-theme="dark"] .cell-note,
html[data-theme="dark"] .muted,
html[data-theme="dark"] small{color:#a9bbc8!important}

/* Mapa ATC: métricas homogéneas y completamente alineadas a la izquierda. */
.live-map-summary-card,.live-map-summary-card.primary{
  display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;
  align-items:start!important;align-content:start!important;justify-items:start!important;text-align:left!important;
}
.live-map-summary-card .summary-card-icon{grid-column:1;grid-row:1/4;align-self:start!important}
.live-map-summary-card .summary-card-copy{grid-column:2;grid-row:1/4;width:100%!important;text-align:left!important;justify-items:start!important}
.live-map-summary-card .summary-card-copy>*{text-align:left!important;justify-self:start!important;margin-left:0!important}

@media(max-width:700px){
  .brand-main{gap:6px!important}
  .live-map-summary-card,.live-map-summary-card.primary{grid-template-columns:28px minmax(0,1fr)!important}
}

/* Checkpoint 85 · cierre visual transversal de preproducción */
/* Sin recursos ornamentales ni profundidad artificial en ninguna sección. */
.avatar{background:var(--brand)!important;box-shadow:none!important}
.login-hero{background-color:var(--brand)!important;box-shadow:none!important}
.login-hero:after{display:none!important;content:none!important}
.login-card,.error-card,.role-editor,.event-signup-modal,.toast,.migration-summary,.migration-card,
.event-card,.ticket-status-card,.ticket-card,.migration-dashboard-banner,.visitor-detail-item,
.solo-dashboard-card,.dashboard-user-card,.dashboard-sessions-card,.table-panel,.table-tools,
.page-loader-dialog,.page-loader-orbit,.searchbox,.nav-search{
  box-shadow:none!important;background-image:none!important;filter:none!important;
}
.admin-card-featured,.event-card.is-live,.migration-dashboard-banner,.visitor-detail-item,.solo-dashboard-card,
.tone-danger,.tone-violet,.tone-amber,.tone-green,.tone-cyan,.metric-card,.metric-card.cyan,.metric-card.blue,
.metric-card.violet,.metric-card.green,.metric-card.amber,.table-tools{
  background-image:none!important;
}
.quick:hover,.metric-card:hover,.admin-card:hover,.module-card:hover,.health-card:hover,.event-card:hover,
.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover,.danger-btn:hover,.table-btn:hover,.icon-btn:hover{
  transform:none!important;box-shadow:none!important;
}
.dashboard-user-card:before,.dashboard-sessions-card:before{background:var(--brand)!important}
.page-loader-orbit{border-radius:7px!important}

/* Títulos e iconos: una única escala en todo el sitio. */
.page-title-icon{width:28px!important;height:28px!important;border-radius:5px!important;background:var(--surface-2)!important;border:1px solid var(--border)!important}
.page-title-icon .ui-icon{width:16px!important;height:16px!important}
.page-head h1{font-style:normal!important;font-weight:750!important}
.page-head p{font-style:normal!important;font-weight:450!important}
.section-kicker,.eyebrow{font-style:normal!important}

/* Navegación activa: sólo acento lineal + color, sin bloque visual. */
.nav-group .nav-item.active{background:transparent!important;border-radius:4px!important}
.nav-group .nav-item.active:before{width:2px!important;top:8px!important;bottom:8px!important}
.nav-group .nav-item.active .nav-icon{background:transparent!important;border:0!important}

/* Formularios y paneles: ayudas legibles y separación estable. */
.form-grid small,.stack-form small,.field small,.panel-head p,.page-head p{margin-top:2px!important;line-height:1.45!important}
.panel-head{gap:14px!important}
.panel-head>div{min-width:0!important}

/* Mapa ATC: los cuatro indicadores comparten exactamente la misma lectura izquierda. */
.live-map-summary-card,.live-map-summary-card.primary{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left!important;gap:6px!important}
.live-map-summary-card .summary-card-icon{width:28px!important;height:28px!important;min-width:28px!important;display:grid!important;place-items:center!important}
.live-map-summary-card .summary-card-copy{width:100%!important;display:grid!important;gap:3px!important;text-align:left!important}
.live-map-summary-card .summary-card-copy>*{justify-self:start!important;text-align:left!important;margin-left:0!important}


/* Checkpoint 86 · QA preproducción Datos/Integraciones/Administración */
/* Baseline visual de producción: superficies planas, sin profundidad ornamental. */
:root,html[data-theme="dark"]{--shadow:none!important}
.topbar{background:var(--surface)!important;backdrop-filter:none!important}
.status-dot{box-shadow:none!important}
.notification-bell,.notification-bell.has-unread,.notification-bell-badge,.notification-popover,
.notification-popover-item,.notification-popover-item:hover,
.blacklist-person-card,.blacklist-person-card:hover,.blacklist-edit-modal,
.discord-savebar,.discord-published-card,.discord-published-card.is-today,.discord-gallery-card.is-today,
.scenery-form-actions,.modal-actions,.login-brand img{
  box-shadow:none!important;filter:none!important;transform:none!important;
}
.discord-today-strip,.discord-recovery-panel,.migration-summary,.admin-card-featured,
.modal-actions{background-image:none!important;background:var(--surface)!important}
.discord-published-current,.discord-source-current,.badge,.login-card .pill{border-radius:7px!important}
.notification-bell-badge{border-radius:7px!important}
.health-state,.status-dot{border-radius:3px!important}

/* Todos los encabezados funcionales deben mantener texto recto y jerarquía estable. */
.page-head h1,.page-head h2,.panel-head h2,.section-title h2,.nav-item,.nav-label,
.metric-label,.metric-value,.metric-cta,.badge,.table-btn,.primary-btn,.secondary-btn,.ghost-btn{
  font-style:normal!important;
}

/* Ayudas de administración e integraciones: legibilidad de producción. */
.admin-help,.integration-help,.field small,.panel-head p,.page-head p,.panel-note{
  color:var(--muted);line-height:1.5!important;
}
html[data-theme="dark"] .admin-help,
html[data-theme="dark"] .integration-help,
html[data-theme="dark"] .field small,
html[data-theme="dark"] .panel-note{color:#a9bbc8!important}

/* El foco sigue siendo visible aunque se eliminen sombras decorativas. */
.field input:focus,.field select:focus,.field textarea:focus,
.nav-search:focus-within,.searchbox:focus-within{
  outline:2px solid color-mix(in srgb,var(--brand-hover) 65%,transparent)!important;
  outline-offset:1px!important;box-shadow:none!important;
}


/* Checkpoint 87 · login preproducción: el fondo configurado no puede ser anulado por el baseline flat. */
.login-grid-configurable .login-hero{
  background-color:var(--login-accent)!important;
  background-image:none!important;
}
.login-grid-configurable .login-hero.has-background{
  background-color:var(--login-accent)!important;
  background-image:var(--login-bg)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.login-grid-configurable .login-hero-shade{
  background:rgba(5,12,18,.58)!important;
}
html[data-theme="dark"] .login-grid-configurable .login-hero-shade{
  background:rgba(4,10,15,.64)!important;
}


/* Checkpoint 88 · hardening de preproducción */
/* Los botones no generan ondas, lifts ni animaciones ornamentales. */
.ui-ripple{display:none!important;animation:none!important}
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.table-btn,.icon-btn{transform:none!important}

/* El estado activo del sidebar permanece puramente lineal y semántico. */
.nav-group .nav-item.active{box-shadow:none!important;filter:none!important;transform:none!important}
.nav-group .nav-item.active:after{display:none!important;content:none!important}


/* Checkpoint 91 · radar ATC minimalista para el loader global */
.page-loader-dialog{grid-template-columns:92px minmax(0,1fr)!important;gap:18px!important}
.page-loader-atc{
  position:relative;width:92px;height:92px;display:grid;place-items:center;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--brand) 38%,var(--border));border-radius:10px;
  background:color-mix(in srgb,var(--surface-2) 90%,var(--brand-soft));box-shadow:none!important;
}
.page-loader-atc-scope{width:82px;height:82px;color:var(--brand);overflow:visible}
.page-loader-atc-scope .scope-ring{stroke:currentColor;stroke-width:1;opacity:.26}
.page-loader-atc-scope .scope-ring-outer{opacity:.52}
.page-loader-atc-scope .scope-axis{stroke:currentColor;stroke-width:.8;opacity:.18}
.page-loader-atc-scope .scope-sweep{transform-origin:50px 50px;animation:mvdRadarSweep 1.25s linear infinite}
.page-loader-atc-scope .scope-sector{fill:color-mix(in srgb,var(--accent-green) 18%,transparent);stroke:none}
.page-loader-atc-scope .scope-sweep-line{stroke:var(--accent-green);stroke-width:1.5;stroke-linecap:round}
.page-loader-atc-scope .scope-blip{fill:var(--accent-green);opacity:.34}
.page-loader-atc-scope .scope-blip-a{animation:mvdRadarBlip 1.65s .08s ease-in-out infinite}
.page-loader-atc-scope .scope-blip-b{animation:mvdRadarBlip 1.65s .62s ease-in-out infinite}
.page-loader-atc-scope .scope-blip-c{animation:mvdRadarBlip 1.65s 1.05s ease-in-out infinite}
.page-loader-atc-scope .scope-aircraft{fill:color-mix(in srgb,var(--accent-cyan) 18%,transparent);stroke:var(--accent-cyan);stroke-width:1.1;stroke-linejoin:round;opacity:.9}
.page-loader-atc-scope .scope-center{fill:var(--accent-green);opacity:.95}
.page-loader-progress{border-radius:3px!important;box-shadow:none!important}
.page-loader-progress span{border-radius:2px!important;background:var(--brand)!important}
@keyframes mvdRadarSweep{to{transform:rotate(360deg)}}
@keyframes mvdRadarBlip{0%,58%,100%{opacity:.24}66%,84%{opacity:1}}

/* Login: movimiento permitido sólo aquí, manteniendo composición 2D y sin profundidad artificial. */
.login-body.login-animated{overflow:hidden}
.login-body.login-animated .login-hero{overflow:hidden}
.login-body.login-animated .login-hero.has-background:before{
  content:"";position:absolute;inset:-2.5%;z-index:0;background-image:var(--login-bg);background-size:cover;background-position:center center;
  transform:scale(1.025);animation:mvdLoginDrift 18s ease-in-out infinite alternate;pointer-events:none;
}
.login-body.login-animated .login-hero.has-background{background-image:none!important}
.login-body.login-animated .login-hero-shade{z-index:1}
.login-body.login-animated .login-brand,.login-body.login-animated .hero-copy,.login-body.login-animated .hero-foot{z-index:2}
.login-body.login-animated .login-brand,.login-body.login-animated .hero-copy,.login-body.login-animated .hero-foot,
.login-body.login-animated .login-card,.login-body.login-animated .login-network-logos{opacity:0;transform:translateY(10px)}
.login-body.login-animated.login-ready .login-brand{animation:mvdLoginEnter .42s ease .04s forwards}
.login-body.login-animated.login-ready .hero-copy{animation:mvdLoginEnter .5s ease .11s forwards}
.login-body.login-animated.login-ready .hero-foot{animation:mvdLoginEnter .45s ease .18s forwards}
.login-body.login-animated.login-ready .login-card{animation:mvdLoginEnter .48s ease 2.08s forwards}
.login-body.login-animated.login-ready .login-network-logos{animation:mvdLoginEnter .42s ease 2.18s forwards}
.login-body.login-animated.login-exiting .login-grid{opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}
.login-body.login-animated.login-exiting:after{
  content:"Conectando con VATSIM…";position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--bg);
  color:var(--text);font-size:13px;font-weight:650;letter-spacing:.02em;
}
@keyframes mvdLoginEnter{to{opacity:1;transform:none}}
@keyframes mvdLoginDrift{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.055) translate3d(-.7%,-.45%,0)}}

@media(max-width:680px){.page-loader-dialog{grid-template-columns:76px minmax(0,1fr)!important}.page-loader-atc{width:76px;height:76px}.page-loader-atc-scope{width:68px;height:68px}}
@media(prefers-reduced-motion:reduce){
  .page-loader-atc-scope .scope-sweep,.page-loader-atc-scope .scope-blip,.login-body.login-animated .login-hero.has-background:before{animation:none!important}
  .login-body.login-animated .login-brand,.login-body.login-animated .hero-copy,.login-body.login-animated .hero-foot,.login-body.login-animated .login-card,.login-body.login-animated .login-network-logos{opacity:1!important;transform:none!important;animation:none!important}
  .login-body.login-animated.login-exiting .login-grid{transition:none!important}
}


/* Checkpoint 92 · legibilidad dark y track de aeronave reconocible */
html[data-theme="dark"] .page-loader-atc{
  border-color:#3d657a;
  background:#111d25;
}
html[data-theme="dark"] .page-loader-atc-scope{color:#78b7d1}
html[data-theme="dark"] .page-loader-atc-scope .scope-ring{opacity:.48;stroke-width:1.15}
html[data-theme="dark"] .page-loader-atc-scope .scope-ring-outer{opacity:.78;stroke-width:1.25}
html[data-theme="dark"] .page-loader-atc-scope .scope-axis{opacity:.34}
html[data-theme="dark"] .page-loader-atc-scope .scope-sweep-line{stroke:#60d394;stroke-width:1.65}
html[data-theme="dark"] .page-loader-atc-scope .scope-sector{fill:color-mix(in srgb,#60d394 25%,transparent)}
html[data-theme="dark"] .page-loader-atc-scope .scope-aircraft{fill:#8fd5e6;stroke:#b9e9f2;stroke-width:.75;opacity:1}
html[data-theme="dark"] .page-loader-atc-scope .scope-blip{fill:#60d394}
.page-loader-atc-scope .scope-aircraft{fill:var(--accent-cyan);stroke:color-mix(in srgb,var(--accent-cyan) 72%,var(--text));stroke-width:.7;opacity:1}
.page-loader-stage{min-height:1.4em}


/* Checkpoint 93 · transición OAuth→Consola, avión seguidor y alineación de logos de red */
.login-panel{--login-card-width:420px}
.login-network-logos{
  width:min(var(--login-card-width),calc(100% - 60px))!important;
  max-width:var(--login-card-width)!important;
  gap:28px!important;
}
.login-network-logo{min-width:0!important;justify-content:center!important}
.login-network-logo img{max-width:146px!important;max-height:50px!important}
.login-network-logo.vatsur-logo img{max-width:154px!important}

.login-cursor-trail{
  position:fixed;inset:0;z-index:11;width:100vw;height:100vh;pointer-events:none;overflow:visible;opacity:0;transition:opacity .2s ease;
}
.login-cursor-trail.is-enabled{opacity:1}
.login-cursor-trail path{fill:none;stroke:var(--login-trail-color,var(--login-aircraft-color,#79c8e7));stroke-width:var(--login-trail-width,2.2px);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.login-cursor-aircraft{
  position:fixed;left:0;top:0;z-index:12;width:var(--login-aircraft-size,50px);height:var(--login-aircraft-size,50px);
  pointer-events:none;opacity:0;will-change:transform,opacity;
  color:var(--login-aircraft-color,#79c8e7);
  filter:none!important;transition:opacity .22s ease;
}
.login-cursor-aircraft.is-active{opacity:.82}
.login-cursor-aircraft svg{display:block;width:100%;height:100%;overflow:visible}
.login-cursor-aircraft path{fill:currentColor;stroke:color-mix(in srgb,currentColor 70%,#ffffff);stroke-width:.7;vector-effect:non-scaling-stroke}
.login-cursor-aircraft-shape{display:block;width:100%;height:100%;background:currentColor}
.login-cursor-aircraft-shape.is-custom{-webkit-mask-image:var(--login-aircraft-mask);mask-image:var(--login-aircraft-mask);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
html[data-theme="dark"] .login-cursor-aircraft{color:var(--login-aircraft-color,#79c8e7)}

.login-arrival-transition{
  position:fixed;inset:0;z-index:10050;display:grid;place-items:center;
  background:var(--bg);opacity:1;visibility:visible;
  transition:opacity .42s ease,visibility .42s step-end;
}
.login-arrival-transition.is-leaving{opacity:0;visibility:hidden}
.login-arrival-inner{
  width:min(360px,calc(100% - 44px));display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:10px;color:var(--text);transform:translateY(0);
  transition:transform .42s ease,opacity .42s ease;
}
.login-arrival-transition.is-leaving .login-arrival-inner{transform:translateY(-8px);opacity:.25}
.login-arrival-logo{height:54px;display:flex;align-items:center;justify-content:center;margin-bottom:5px}
.login-arrival-logo img{display:block;max-width:210px;max-height:54px;width:auto;height:auto;object-fit:contain}
.login-arrival-check{width:42px;height:42px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--ok) 58%,var(--border));border-radius:10px;color:var(--ok);background:color-mix(in srgb,var(--ok-bg) 70%,var(--surface))}
.login-arrival-inner strong{font-size:18px;font-weight:750;letter-spacing:-.015em}
.login-arrival-inner small{font-size:12px;color:var(--muted);font-weight:500}

@media(max-width:900px){
  .login-network-logos{width:min(var(--login-card-width),calc(100% - 60px))!important;margin-left:auto!important;margin-right:auto!important}
}
@media(max-width:680px){
  .login-panel{--login-card-width:calc(100% - 40px)}
  .login-network-logos{width:var(--login-card-width)!important;gap:22px!important}
  .login-network-logo img{max-width:112px!important;max-height:42px!important}
  .login-network-logo.vatsur-logo img{max-width:120px!important}
}
@media(pointer:coarse){.login-cursor-aircraft,.login-cursor-trail{display:none!important}}
@media(prefers-reduced-motion:reduce){
  .login-cursor-aircraft,.login-cursor-trail{display:none!important}
  .login-arrival-transition,.login-arrival-inner{transition:none!important}
}


/* Checkpoint 94 · login: logos estructuralmente alineados y avión con vuelo inercial */
.login-panel{--login-card-width:440px}
.login-access-stack{
  position:relative;width:min(var(--login-card-width),calc(100% - 60px));height:100%;min-height:100vh;
  display:grid;place-items:center;margin:0 auto;
}
.login-access-stack .login-card{width:100%!important;max-width:none!important}
.login-access-stack .login-network-logos{
  position:absolute!important;left:0!important;right:0!important;bottom:54px!important;transform:none!important;
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:28px!important;align-items:center!important;
}
@media(max-width:900px){
  .login-panel{padding:0 30px!important}
  .login-access-stack{width:min(var(--login-card-width),100%);min-height:100vh}
  .login-access-stack .login-network-logos{position:absolute!important;bottom:38px!important;margin:0!important}
}
@media(max-width:680px){
  .login-panel{padding:0 20px!important;--login-card-width:100%}
  .login-access-stack{width:100%}
  .login-access-stack .login-network-logos{gap:20px!important;bottom:28px!important}
  .login-cursor-aircraft,.login-cursor-trail{display:none!important}
}


/* Checkpoint 97 · login: aviso siempre visible + entrada orbital natural */
.login-access-notice-panel{
  display:block;
  margin-top:16px;
  padding-top:13px;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
  font-weight:500;
  text-align:left;
}

/* Checkpoint 98 · Auditoría: centrado estable del modal aun con animaciones globales */
.audit-detail-modal{translate:-50% -50%}

/* Checkpoint 101 · editor global del orden del menú */
.menu-order-panel{overflow:visible}
.menu-order-help{display:flex;align-items:center;gap:10px;margin:-3px 0 16px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--muted);font-size:11.5px;line-height:1.45}
.menu-order-handle,.menu-order-drag{font-family:ui-monospace,monospace;letter-spacing:-3px;color:var(--muted);user-select:none}
.menu-order-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.menu-order-group{min-width:0;border:1px solid var(--border);border-radius:13px;background:var(--surface);overflow:hidden;transition:border-color .15s ease,background .15s ease,opacity .15s ease}
.menu-order-group.is-dragging,.menu-order-item.is-dragging{opacity:.48}
.menu-order-group.is-drop-target{border-color:color-mix(in srgb,var(--brand) 52%,var(--border));background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.menu-order-group-head{display:flex;align-items:center;gap:9px;min-height:44px;padding:9px 11px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.menu-order-group-head strong{font-size:12px;flex:1}
.menu-order-drag{cursor:grab;font-size:16px;line-height:1}
.menu-order-group:active .menu-order-drag,.menu-order-item:active .menu-order-drag{cursor:grabbing}
.menu-order-items{min-height:48px;padding:7px;display:flex;flex-direction:column;gap:5px}
.menu-order-items:empty::after{content:'Soltá opciones acá';display:grid;place-items:center;min-height:44px;border:1px dashed var(--border);border-radius:9px;color:var(--muted);font-size:10.5px}
.menu-order-item{display:grid;grid-template-columns:18px 24px minmax(0,1fr);align-items:center;gap:7px;min-height:38px;padding:6px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:grab}
.menu-order-item:hover{border-color:color-mix(in srgb,var(--brand) 34%,var(--border));background:color-mix(in srgb,var(--brand) 3%,var(--surface))}
.menu-order-item-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--surface-2);color:var(--muted)}
.menu-order-item strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-order-item.is-drop-before{box-shadow:0 -2px 0 var(--brand)}
.menu-order-item.is-drop-after{box-shadow:0 2px 0 var(--brand)}
.is-readonly-form .menu-order-group,.is-readonly-form .menu-order-item{cursor:default}
.is-readonly-form .menu-order-drag{display:none}
@media(max-width:1050px){.menu-order-groups{grid-template-columns:1fr}}


/* Checkpoint 105 · configuración visible del avión / circuito de espera */
.login-motion-settings{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:18px;align-items:stretch}
.login-motion-controls{display:grid;gap:16px}.login-motion-preview{position:relative;min-height:290px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,var(--surface-2),var(--surface));overflow:hidden;display:grid;place-items:center;padding:22px}
.login-motion-preview::before{content:'';position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--border) 38%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 38%,transparent) 1px,transparent 1px);background-size:28px 28px;opacity:.42}
.login-motion-track{position:relative;width:min(88%,360px);height:128px;border:2px solid color-mix(in srgb,var(--brand) 44%,var(--border));border-radius:64px;transform:rotate(-18deg);z-index:1;transition:width .2s,border-radius .2s}
.login-motion-aircraft{position:absolute;left:50%;top:50%;width:42px;height:42px;translate:-50% -50%;rotate:28deg;z-index:2;color:var(--brand)}
.login-motion-aircraft svg{width:100%;height:100%;display:block}.login-motion-aircraft path{fill:currentColor}
.login-motion-trail-demo{position:absolute;left:25%;top:52%;width:34%;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--brand) 30%,transparent),var(--brand));transform:rotate(12deg);transform-origin:right center;z-index:1;border-radius:999px;opacity:.65}
.login-motion-preview-copy{position:absolute;left:14px;bottom:12px;z-index:3;padding:7px 9px;border-radius:9px;background:color-mix(in srgb,var(--surface) 84%,transparent);border:1px solid var(--border);font-size:11px;color:var(--muted)}
@media(max-width:900px){.login-motion-settings{grid-template-columns:1fr}.login-motion-preview{min-height:240px}}

/* Checkpoint 106 · diagnóstico OAuth */
.log-oauth-summary{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0 2px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);font-size:11px;color:var(--muted)}.log-oauth-summary b{color:var(--text);margin-right:4px}

/* Checkpoint 107 · preview en tiempo real de la animación del login */
[data-login-motion-editor] .field>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
[data-login-motion-editor] output{font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));padding:2px 7px;border-radius:999px;text-transform:none;letter-spacing:0}
[data-login-motion-editor] input[type=range]{width:100%;accent-color:var(--brand)}
.login-motion-preview{--preview-speed:8s;--preview-plane-size:42px;--preview-plane-color:var(--brand);--preview-trail-color:var(--brand);--preview-trail-width:2px;--preview-trail-opacity:.5}
.login-motion-aircraft{width:var(--preview-plane-size)!important;height:var(--preview-plane-size)!important;color:var(--preview-plane-color)!important;animation:login-preview-fly var(--preview-speed) linear infinite;transform-origin:center}
.login-motion-trail-demo{height:var(--preview-trail-width)!important;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--preview-trail-color) 28%,transparent),var(--preview-trail-color))!important;opacity:var(--preview-trail-opacity)!important}
@keyframes login-preview-fly{0%{transform:translate(-118px,-48px) rotate(90deg)}25%{transform:translate(118px,-48px) rotate(90deg)}50%{transform:translate(118px,48px) rotate(270deg)}75%{transform:translate(-118px,48px) rotate(270deg)}100%{transform:translate(-118px,-48px) rotate(450deg)}}

/* Checkpoint 113 · Auditoría: presencia y selector de actor */
.audit-online-users{display:grid;gap:8px}
.audit-online-user{display:grid;grid-template-columns:12px minmax(180px,1.25fr) minmax(160px,1fr) minmax(150px,.8fr);gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);text-decoration:none;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.audit-online-user:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));background:color-mix(in srgb,var(--brand) 4%,var(--surface));transform:translateY(-1px)}
.audit-online-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 14%,transparent)}
.audit-online-main,.audit-online-now,.audit-online-seen{display:grid;min-width:0;gap:2px}.audit-online-main small,.audit-online-now small,.audit-online-seen small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-online-main strong,.audit-online-now strong,.audit-online-seen strong{font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.audit-online-user{grid-template-columns:12px 1fr}.audit-online-now,.audit-online-seen{grid-column:2}}

/* Checkpoint 121 · Mapa operativo ATC */
.live-map-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important}.live-map-summary-card.info{border-left:3px solid var(--brand-hover)!important}.live-map-summary-card.info .summary-card-icon{color:var(--brand-hover)!important}
.atc-atis-board{padding:0!important;overflow:hidden!important}.atc-atis-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;padding:14px 16px!important;margin:0!important;border-bottom:1px solid var(--border)!important}.atc-atis-head h2{display:flex!important;align-items:center!important;gap:7px!important;margin:0!important;font-size:1rem!important}.atc-atis-head p{margin:3px 0 0!important;font-size:.73rem!important;color:var(--muted)!important}.atc-atis-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;gap:10px!important;padding:12px!important}.atc-atis-card{border:1px solid var(--border)!important;border-radius:8px!important;background:var(--surface-2)!important;padding:12px!important;display:grid!important;gap:9px!important}.atc-atis-card-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:10px!important}.atc-atis-card-head>div{display:grid!important;gap:2px!important}.atc-atis-card-head strong{font-size:1rem!important;letter-spacing:.02em!important}.atc-atis-card-head span:not(.atis-code){font-size:.78rem!important;font-weight:700!important}.atis-code{display:inline-flex!important;align-items:center!important;border:1px solid color-mix(in srgb,var(--brand-hover) 40%,var(--border))!important;background:color-mix(in srgb,var(--brand-hover) 10%,var(--surface))!important;border-radius:5px!important;padding:4px 7px!important;font-size:.68rem!important;font-weight:800!important;white-space:nowrap!important}.atc-atis-meta{display:flex!important;gap:10px!important;flex-wrap:wrap!important;align-items:center!important;font-size:.7rem!important;color:var(--muted)!important}.atc-atis-meta span,.atc-atis-meta a{display:inline-flex!important;align-items:center!important;gap:4px!important}.atc-atis-text{border-top:1px solid var(--border)!important;padding-top:8px!important;display:grid!important;gap:3px!important}.atc-atis-text p{margin:0!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:.72rem!important;line-height:1.4!important;color:var(--text)!important}.atc-atis-empty{padding:18px!important;color:var(--muted)!important;text-align:center!important;font-size:.78rem!important}
.atc-live-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))!important}.atc-live-card{gap:10px!important;padding:13px 13px 12px 16px!important}.atc-live-callsign-row>div:first-child{display:grid!important;gap:2px!important}.atc-live-position-type{font-size:.68rem!important;color:var(--muted)!important;font-weight:600!important}.atc-live-controller-block{border-top:1px solid var(--border)!important;padding-top:9px!important;display:grid!important;gap:5px!important}.atc-live-field-label{font-size:.61rem!important;letter-spacing:.07em!important;text-transform:uppercase!important;color:var(--muted)!important;font-weight:800!important}.atc-live-controller-main{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-width:0!important}.controller-identity{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important}.controller-user-icon{width:28px!important;height:28px!important;min-width:28px!important;border:1px solid var(--border)!important;border-radius:6px!important;background:var(--surface-2)!important;display:grid!important;place-items:center!important;color:var(--brand-hover)!important}.controller-identity>div{display:grid!important;gap:1px!important;min-width:0!important}.controller-identity strong{font-size:.88rem!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.controller-identity .text-link{font-size:.69rem!important;width:max-content!important}.atc-live-controller-main .atc-live-chips{justify-content:flex-end!important}.atc-live-facts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin:0!important}.atc-live-facts>div{border:1px solid var(--border)!important;border-radius:6px!important;background:var(--surface-2)!important;padding:7px 8px!important;min-width:0!important}.atc-live-facts dt{font-size:.59rem!important;text-transform:uppercase!important;letter-spacing:.055em!important;color:var(--muted)!important;font-weight:800!important}.atc-live-facts dd{margin:2px 0 0!important;font-size:.72rem!important;font-weight:650!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.atc-live-qualification{margin-top:0!important}
@media(max-width:1200px){.live-map-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}.live-map-summary-card.primary{grid-column:auto!important}}
@media(max-width:850px){.live-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.atc-atis-grid{grid-template-columns:1fr!important}.atc-live-controller-main{align-items:flex-start!important;flex-direction:column!important}.atc-live-controller-main .atc-live-chips{justify-content:flex-start!important}}
@media(max-width:560px){.live-map-summary{grid-template-columns:1fr!important}.atc-live-grid{grid-template-columns:1fr!important}.atc-live-facts{grid-template-columns:1fr!important}.atc-atis-head{align-items:flex-start!important;flex-direction:column!important}}
/* Checkpoint 132 · modo solo lectura reforzado */
.readonly-mode-banner{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.readonly-mode-banner strong{white-space:nowrap}
.page.is-module-readonly form[data-readonly-blocked="1"]{opacity:.72}
.page.is-module-readonly form[data-readonly-blocked="1"] button:disabled,
.page.is-module-readonly form[data-readonly-blocked="1"] input[type="submit"]:disabled{cursor:not-allowed;filter:saturate(.45)}

/* Checkpoint 133 · solo lectura persistente y controles realmente bloqueados */
.page.is-module-readonly form[data-readonly-blocked="1"] :is(input,select,textarea,button):disabled{opacity:.58;cursor:not-allowed}
.page.is-module-readonly [aria-disabled="true"]{cursor:not-allowed}
.permission-mode-field.mode-readonly{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--brand) 65%,transparent)}

/* Checkpoint 140 · Centro Operativo FIR */
.ops-tabs{display:flex;gap:.55rem;flex-wrap:wrap}.ops-tabs a{padding:.72rem 1rem;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text-muted);font-weight:700;background:var(--surface)}.ops-tabs a.active{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 55%,var(--border));background:color-mix(in srgb,var(--brand) 9%,var(--surface))}
.ops-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:5px}.metric-card span{color:var(--text-muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.metric-card strong{font-size:1.7rem}.metric-card small{color:var(--text-muted)}
.ops-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ops-status-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-top:1px solid var(--border)}.ops-status-row:first-of-type{border-top:0}.ops-status-row>div{display:flex;flex-direction:column;gap:3px}.ops-status-row span,.ops-status-row small{color:var(--text-muted)}
.load-hero{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.load-hero>strong{font-size:3rem;line-height:1}.load-hero p{margin-bottom:0;max-width:760px;color:var(--text-muted)}.load-pill{font-weight:800;padding:.45rem .7rem;border-radius:999px;background:var(--surface-2)}.load-medium{border-color:#b98a22}.load-high{border-color:#b84b4b}
.health-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.health-summary>span{padding:.5rem .72rem;background:var(--surface);border:1px solid var(--border);border-radius:999px}.health-overall{font-weight:900}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.health-card{background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:16px;padding:16px}.health-card.status-ok{border-left-color:#3d9b67}.health-card.status-warning{border-left-color:#c7982c}.health-card.status-error{border-left-color:#c84d4d}.health-card.status-disabled{border-left-color:#7b8794}.health-card header{display:flex;justify-content:space-between;gap:12px}.health-card header>div{display:flex;flex-direction:column;gap:4px}.health-card header span{color:var(--text-muted)}.health-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0 0}.health-card dl div{background:var(--surface-2);padding:9px 10px;border-radius:10px}.health-card dt{font-size:.74rem;text-transform:uppercase;color:var(--text-muted);font-weight:700}.health-card dd{margin:3px 0 0;font-weight:700}.health-detail{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}
@media(max-width:900px){.ops-two-col{grid-template-columns:1fr}.load-hero{align-items:flex-start}.health-card dl{grid-template-columns:1fr}}

/* Checkpoint 142 · seguimiento de entrenamiento */
.training-competency-summary{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.training-competency-summary strong{font-size:1.7rem}.training-competency-summary span{font-size:.76rem;color:var(--text-muted)}
.training-competency-editor{display:grid;gap:10px}.training-competency-row{display:grid;grid-template-columns:minmax(220px,1.2fr) 190px minmax(220px,1fr) 38px;gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.training-competency-row label{margin:0}.training-competency-row .icon-btn{margin-bottom:1px}.training-competency-list{display:grid;gap:8px}.training-competency-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.training-competency-item>div{display:grid;gap:3px}.training-competency-item small{color:var(--text-muted)}
@media(max-width:980px){.training-competency-row{grid-template-columns:1fr 180px 38px}.training-competency-row .competency-notes{grid-column:1/3}}@media(max-width:620px){.training-competency-row{grid-template-columns:1fr 38px}.training-competency-row label,.training-competency-row .competency-notes{grid-column:1}.training-competency-row .icon-btn{grid-column:2;grid-row:1;align-self:end}}
/* Checkpoint 144 · Estado operativo + calidad de cobertura */
.operational-state{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.operational-state h2{margin:3px 0 0}.operational-state.operational-warning{border-color:color-mix(in srgb,var(--warning) 55%,var(--border));background:color-mix(in srgb,var(--warning) 7%,var(--surface))}.operational-state.operational-critical{border-color:color-mix(in srgb,var(--danger) 58%,var(--border));background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.operational-counts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.operational-counts span{padding:6px 9px;border:1px solid var(--border);border-radius:999px;font-size:.72rem;font-weight:800;background:var(--surface-2)}.operational-alert-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.operational-alert{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.operational-alert strong{font-size:.86rem}.operational-alert span{font-size:.76rem;color:var(--text-muted);line-height:1.45}.operational-alert.level-warning{border-left:3px solid var(--warning)}.operational-alert.level-critical{border-left:3px solid var(--danger)}.operational-alert.level-info{border-left:3px solid var(--brand)}
.coverage-bars{display:grid;gap:10px}.coverage-bar-row{display:grid;grid-template-columns:130px minmax(0,1fr) 52px;align-items:center;gap:10px}.coverage-bar-row>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:.76rem}.coverage-bar-row>div:first-child span,.coverage-bar-row>small{color:var(--text-muted);font-size:.7rem}.coverage-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--border)}.coverage-bar i{display:block;height:100%;background:var(--brand);border-radius:inherit}.coverage-hour-grid{height:210px;display:grid;grid-template-columns:repeat(24,minmax(8px,1fr));align-items:end;gap:4px;padding-top:8px}.coverage-hour{height:100%;display:grid;grid-template-rows:1fr auto;align-items:end;gap:5px;min-width:0}.coverage-hour i{display:block;width:100%;min-height:2px;border-radius:4px 4px 1px 1px;background:var(--brand)}.coverage-hour span{text-align:center;font-size:8px;color:var(--text-muted)}
@media(max-width:760px){.operational-state{align-items:flex-start;flex-direction:column}.operational-counts{justify-content:flex-start}.coverage-bar-row{grid-template-columns:95px minmax(0,1fr) 45px}.coverage-hour-grid{height:165px;gap:2px}.coverage-hour span{font-size:7px}}

/* Checkpoint 145 · Salud de integraciones: tarjetas legibles y consistentes */
.health-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.health-grid .health-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:18px;
}
.health-grid .health-card header{align-items:flex-start}
.health-grid .health-card header>div{min-width:0;flex:1}
.health-grid .health-card header>div>strong{font-size:1rem;line-height:1.3}
.health-grid .health-card header>div>span{font-size:.82rem;line-height:1.4;margin-top:2px}
.health-grid .health-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:16px}
.health-grid .health-card dl>div{min-width:0;padding:10px 12px}
.health-grid .health-card dt{font-size:.68rem;line-height:1.25}
.health-grid .health-card dd{font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}
.health-grid .health-card details{margin-top:auto;padding-top:14px}
@media(max-width:1350px){.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.health-grid{grid-template-columns:1fr}}

/* Checkpoint 151 · visitante destacado en Mapa ATC */
.atc-live-chips .badge.visitor-strong{background:color-mix(in srgb,#8b5cf6 18%,var(--surface-2))!important;border-color:color-mix(in srgb,#8b5cf6 55%,var(--border))!important;color:color-mix(in srgb,#c4b5fd 88%,var(--text))!important;font-weight:850!important;letter-spacing:.055em!important}.visitor-profile-btn{border-color:color-mix(in srgb,#8b5cf6 42%,var(--border))!important}
/* Checkpoint 159 · vista previa Discord de apertura de inscripciones */
.discord-event-preview{margin-top:16px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface-2)}
.discord-event-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border)}
.discord-event-preview-head>span{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.discord-event-preview-head small{font-size:11px;color:var(--muted)}
.discord-message-preview{padding:14px;background:#313338;color:#dbdee1}
.discord-message-author{display:flex;align-items:center;gap:7px;margin-bottom:5px}.discord-message-author strong{color:#f2f3f5;font-size:13px}.discord-message-author span{font-size:8px;font-weight:800;background:#5865f2;color:#fff;border-radius:3px;padding:2px 4px}
.discord-message-content{font-size:13px;margin:0 0 7px}.discord-message-content mark{background:#5865f2;color:#fff;border-radius:3px;padding:0 3px}
.discord-embed-preview{max-width:620px;border-left:4px solid #5865f2;background:#2b2d31;border-radius:4px;padding:11px 12px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.discord-embed-title{display:block;color:#00a8fc;font-size:13px;margin-bottom:6px}.discord-embed-preview p{margin:0 0 10px;color:#dbdee1;font-size:12px;line-height:1.5}
.discord-embed-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}.discord-embed-fields>div{display:flex;flex-direction:column;gap:2px;min-width:0}.discord-embed-fields>div:not(.is-inline){grid-column:1/-1}.discord-embed-fields b{font-size:11px;color:#f2f3f5}.discord-embed-fields span{font-size:11px;color:#dbdee1;overflow-wrap:anywhere}.discord-embed-link{display:block;margin-top:10px;color:#b5bac1;font-size:10px}
@media(max-width:700px){.discord-embed-fields{grid-template-columns:1fr}.discord-embed-fields>div{grid-column:1/-1}.discord-event-preview-head{align-items:flex-start;flex-direction:column}}

/* Checkpoint 160 · preview de imagen del evento en webhook Discord */
.discord-event-preview-image{margin-top:12px;border-radius:8px;overflow:hidden;max-width:520px;background:rgba(0,0,0,.08)}
.discord-event-preview-image img{display:block;width:100%;max-height:280px;object-fit:cover}

/* Checkpoint 162 · Agenda: alinear Operación/Inscripciones y centrar modales de asignación */
.event-detail-grid-v2>.event-detail-side{
  align-self:start;
  margin:0!important;
  padding:0!important;
}
.event-detail-grid-v2>.event-detail-side>.event-ops-panel{
  align-self:start;
  margin:0!important;
  position:sticky;
  top:88px;
}
.event-signup-modal:not([hidden]){
  animation:eventSignupModalEnter .18s var(--motion-soft) both!important;
}
@keyframes eventSignupModalEnter{
  from{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.985)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@media(max-width:980px){
  .event-detail-grid-v2>.event-detail-side>.event-ops-panel{position:static;top:auto}
}
@media(prefers-reduced-motion:reduce){
  .event-signup-modal:not([hidden]){animation:none!important;transform:translate(-50%,-50%)!important}
}


/* Checkpoint 163 · Agenda modal anchored to the real browser viewport */
body > .event-signup-modal{
  position:fixed!important;
  left:50vw!important;
  top:50vh!important;
  right:auto!important;
  bottom:auto!important;
  margin:0!important;
  translate:none!important;
  transform:translate(-50%,-50%)!important;
}
body > .event-signup-modal:not([hidden]){
  animation:eventSignupModalViewportEnter .18s var(--motion-soft) both!important;
}
@keyframes eventSignupModalViewportEnter{
  from{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.985)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  body > .event-signup-modal:not([hidden]){animation:none!important;transform:translate(-50%,-50%)!important}
}

/* Checkpoint 170 · countdown integrado y sin tarjetas anidadas */
.agenda-signup-inline{display:flex;align-items:baseline;gap:7px;min-width:0;margin-top:7px;color:var(--muted);line-height:1.25}
.agenda-signup-inline .agenda-countdown-label{font-size:9px;font-weight:850;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);flex:0 0 auto}
.agenda-signup-inline strong{font-size:11px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.agenda-signup-inline .agenda-countdown-prefix{font-weight:650;color:var(--muted)}
.agenda-signup-inline small{margin-left:auto;font-size:9px;color:var(--muted);white-space:nowrap}
.agenda-signup-inline.is-opening strong{color:var(--ok)}
.signup-state-card.has-countdown{align-items:flex-start;padding-top:12px;padding-bottom:12px}
.signup-state-card .signup-state-copy{display:grid;gap:3px;min-width:0;flex:1}
.signup-state-timer{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:1px}
.signup-state-timer>span{font-size:10px;font-weight:700;color:var(--muted)}
.signup-state-timer>b{font-size:15px;line-height:1.15;font-weight:850;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.015em;white-space:nowrap}
.signup-state-card.is-opening .signup-state-timer>b{color:var(--ok)}
@media(max-width:700px){.agenda-signup-inline{flex-wrap:wrap}.agenda-signup-inline small{margin-left:0;width:100%}.signup-state-timer{align-items:flex-start;flex-direction:column;gap:2px}.signup-state-timer>b{font-size:14px}}


/* Checkpoint 171 · cabecera operativa y countdown con mayor jerarquía */
.event-top-grid-v3{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px;align-items:start;margin-bottom:18px}
.event-top-grid-v3 .event-hero-v2{margin-bottom:0;height:100%}
.event-top-grid-v3 .event-detail-side{min-width:0}
.event-top-grid-v3 .event-detail-side .sticky-panel{position:static;top:auto}
.event-detail-grid-main-only{display:block}
.event-detail-grid-main-only .event-detail-main{min-width:0}

.agenda-signup-inline{margin-top:10px;padding:8px 10px;border-left:3px solid var(--brand);border-radius:7px;background:color-mix(in srgb,var(--brand) 9%,var(--surface-2));align-items:center;gap:9px}
.agenda-signup-inline .agenda-countdown-label{color:var(--brand-hover);font-size:9px;letter-spacing:.07em}
.agenda-signup-inline strong{font-size:13px;line-height:1.1;font-weight:900;letter-spacing:-.01em;color:var(--text)}
.agenda-signup-inline strong [data-countdown-value]{font-variant-numeric:tabular-nums}
.agenda-signup-inline .agenda-countdown-prefix{font-weight:700;color:var(--muted)}
.agenda-signup-inline small{font-size:9.5px;color:var(--muted);font-weight:700}
.agenda-signup-inline.is-opening{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok-bg) 55%,var(--surface-2))}
.agenda-signup-inline.is-opening .agenda-countdown-label,.agenda-signup-inline.is-opening strong{color:var(--ok)}

.event-top-grid-v3 .signup-state-card.has-countdown{border-color:color-mix(in srgb,var(--brand) 35%,var(--border));background:color-mix(in srgb,var(--brand) 7%,var(--surface-2))}
.event-top-grid-v3 .signup-state-timer>b{font-size:17px}

@media(max-width:1180px){
  .event-top-grid-v3{grid-template-columns:minmax(0,1fr) 310px}
}
@media(max-width:980px){
  .event-top-grid-v3{grid-template-columns:1fr}
  .event-top-grid-v3 .event-detail-side{order:2}
}
@media(max-width:700px){
  .agenda-signup-inline{align-items:flex-start}
  .agenda-signup-inline strong{font-size:12px}
}

/* Checkpoint 172 · Reservas ATC (maqueta para futura integración API) */
.atc-reservations-notice{margin:0 0 16px}
.atc-reservation-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.atc-reservation-summary .metric-card{position:relative;overflow:hidden}.atc-reservation-summary .metric-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.atc-reservation-summary .tone-blue:before{background:#4f8fc4}.atc-reservation-summary .tone-amber:before{background:#d79a38}.atc-reservation-summary .tone-green:before{background:#52b788}.atc-reservation-summary .tone-violet:before{background:#866ec7}
.atc-reservations-panel{overflow:hidden}.atc-reservations-head{align-items:flex-end}.atc-reservations-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.atc-reservations-filters input{min-width:250px}.atc-reservations-filters select{min-width:165px}.atc-reservations-filters :disabled{opacity:.58;cursor:not-allowed}.atc-reservations-table td{vertical-align:middle}.atc-reservations-table .empty-state{min-height:230px}
.atc-reservation-modal[hidden]{display:none}.atc-reservation-modal{position:fixed;z-index:151;left:50%;top:50%;translate:-50% -50%;transform:none!important;width:min(790px,calc(100vw - 30px));max-height:min(90vh,900px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 32px 100px rgba(0,0,0,.36);padding:20px}.atc-reservation-modal+.modal-backdrop{z-index:150}.atc-reservation-modal .inline-alert{margin:13px 0 0}.atc-reservation-form{display:flex;flex-direction:column;gap:14px;margin-top:15px}.atc-reservation-form label{display:flex;flex-direction:column;gap:6px}.atc-reservation-form label>span,.atc-reservation-quick>span{font-size:11px;font-weight:850}.atc-reservation-grid{display:grid;gap:12px}.atc-reservation-grid.two{grid-template-columns:1fr 1fr}.atc-reservation-quick{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--muted)}.atc-reservation-quick>div{display:flex;gap:5px}.atc-reservation-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid color-mix(in srgb,var(--success) 32%,var(--border));background:color-mix(in srgb,var(--success-bg) 68%,var(--surface));border-radius:12px;padding:12px}.atc-reservation-preview>div{display:flex;flex-direction:column;gap:4px}.atc-reservation-preview span{font-size:10px;color:var(--muted)}.atc-reservation-preview strong{font-size:13px}.atc-reservation-form textarea{resize:vertical;min-height:88px}
@media(max-width:980px){.atc-reservation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.atc-reservations-head{align-items:stretch}.atc-reservations-filters{justify-content:flex-start}.atc-reservations-filters input,.atc-reservations-filters select{min-width:0;flex:1 1 200px}}
@media(max-width:680px){.atc-reservation-summary{grid-template-columns:1fr}.atc-reservation-grid.two,.atc-reservation-preview{grid-template-columns:1fr}.atc-reservation-quick{align-items:flex-start;flex-direction:column}.atc-reservation-modal{padding:16px}}
.atc-reservation-filter-empty{padding:14px 18px;text-align:center;color:var(--muted);border-top:1px solid var(--border)}
.atc-member-picker{position:relative}.atc-member-picker>small{color:var(--muted);font-size:10px}.atc-member-results{position:absolute;z-index:12;left:0;right:0;top:calc(100% - 16px);max-height:270px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.28);padding:5px}.atc-member-option{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.atc-member-option:hover{background:var(--surface-2)}.atc-member-option strong{font-size:12px}.atc-member-option span,.atc-member-loading,.atc-member-error{font-size:10px;color:var(--muted)}.atc-member-loading,.atc-member-error{padding:10px}.atc-member-error{color:var(--danger)}

/* Checkpoint 206 · inscripción centrada y accesible en ventanas pequeñas */
body > .event-signup-modal{
  box-sizing:border-box;
  width:min(720px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  overscroll-behavior:contain;
}
body > .event-signup-modal[hidden]{display:none!important}
@supports(height:100dvh){
  body > .event-signup-modal{
    top:50dvh!important;
    max-height:calc(100dvh - 28px);
  }
}
@media(max-width:600px){
  body > .self-signup-modal .form-grid{grid-template-columns:minmax(0,1fr)}
  body > .self-signup-modal .form-grid .span-2{grid-column:1/-1}
  body > .self-signup-modal .self-signup-identity{grid-template-columns:minmax(0,1fr);gap:10px}
  body > .self-signup-modal .modal-actions{flex-wrap:wrap}
}

/* Checkpoint 207 · nombres de opciones del menú */
.menu-order-name{display:flex;flex-direction:column;gap:4px;min-width:0;cursor:text}
.menu-order-name>span{font-size:10px;color:var(--muted);font-weight:750}
.menu-order-name input{width:100%;min-width:0;font-size:12px;cursor:text}
.menu-order-name small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}

/* Checkpoint 220: control global compacto para la vista por rol. */
.role-preview-menu{position:relative;flex-shrink:0;color:var(--text)}
.role-preview-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:0 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface);font-size:12px;font-weight:750;cursor:pointer;list-style:none;max-width:210px}
.role-preview-toggle::-webkit-details-marker{display:none}.role-preview-toggle>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-preview-toggle:hover,.role-preview-menu[open]>.role-preview-toggle{border-color:var(--brand)}
.role-preview-menu.is-active>.role-preview-toggle{color:var(--brand);border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface))}
.role-preview-menu.is-active>.role-preview-toggle::after{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.role-preview-popover{position:absolute;right:0;top:calc(100% + 10px);width:min(330px,calc(100vw - 24px));padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 16px 40px #0004;z-index:45;text-align:left}
.role-preview-popover>strong{display:block;font-size:14px}.role-preview-popover p{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 16px}.role-preview-popover form{display:flex;flex-direction:column;gap:10px}.role-preview-popover label{font-size:12px;font-weight:700}.role-preview-popover select{width:100%;min-width:0;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text)}.role-preview-popover button{justify-content:center;width:100%}.role-preview-popover form+form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.error-body>.role-preview-menu{position:fixed;top:16px;right:16px;z-index:50}
@media(max-width:600px){.role-preview-toggle{width:36px;min-height:36px;padding:0}.role-preview-toggle>span{display:none}.role-preview-menu.is-active>.role-preview-toggle::after{position:absolute;top:4px;right:4px}.topbar .role-preview-popover{position:fixed;top:72px;right:12px}}

/* Checkpoint 221: diagnostic filters and permission dependencies. */
.log-filter{flex-wrap:wrap;gap:10px;align-items:end}.log-filter label{min-width:150px;max-width:100%}.log-filter input{width:100%;min-width:0}.permission-dependency{margin-top:6px;padding:7px 9px;border-left:2px solid var(--brand);background:color-mix(in srgb,var(--brand) 6%,transparent);border-radius:0 6px 6px 0}

/* Usuarios autorizados: vías de ingreso y roles son conceptos independientes. */
.user-role-badges{display:flex;flex-wrap:wrap;gap:6px}
.badge.user-role,.badge.access-origin{color:var(--identity-ink);background:var(--identity-bg);border:1px solid var(--identity-border)}
.user-role-admin{--identity-ink:#9b263b;--identity-bg:#fff0f2;--identity-border:#e9a9b5}
.user-role-fir{--identity-ink:#64359a;--identity-bg:#f5edff;--identity-border:#c7a8e9}
.user-role-operations{--identity-ink:#1755a0;--identity-bg:#edf5ff;--identity-border:#9cbfe8}
.user-role-instruction{--identity-ink:#876000;--identity-bg:#fff8de;--identity-border:#dbc36e}
.user-role-controller{--identity-ink:#15604c;--identity-bg:#eaf8f1;--identity-border:#8cc8b1}
.user-role-other{--identity-ink:#44536b;--identity-bg:#edf1f7;--identity-border:#afbacb}
.access-origin-vatsur_atc_roster{--identity-ink:#176451;--identity-bg:#edf9f3;--identity-border:#9acbb8}
.access-origin-vatsur_active_visitor{--identity-ink:#155c91;--identity-bg:#edf7ff;--identity-border:#9bc6e5}
.access-origin-explicit{--identity-ink:#8a5809;--identity-bg:#fff6e6;--identity-border:#d8bb87}
html[data-theme="dark"] .user-role,html[data-theme="dark"] .access-origin{color:color-mix(in srgb,var(--identity-ink) 30%,white);background:color-mix(in srgb,var(--identity-ink) 18%,#101b24);border-color:color-mix(in srgb,var(--identity-border) 48%,#263746)}

/* Entrenamientos oficiales y seguimiento local */
.training-sync-status{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:var(--muted);font-size:.85rem;margin-bottom:18px}
.training-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:20px 0}
.training-tabs a{padding:12px 16px;color:var(--muted);text-decoration:none;border-bottom:3px solid transparent;display:flex;align-items:center;gap:8px}
.training-tabs a.active{color:var(--text);border-color:var(--brand);font-weight:700}
.training-tabs a span{font-size:.8rem;border:1px solid var(--border);border-radius:6px;padding:1px 6px}
.training-time{display:grid;gap:6px;min-width:145px}.training-time progress{width:100%;height:7px;accent-color:var(--brand)}.training-time small{color:var(--muted)}
.training-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.training-action-grid .panel{min-width:0}
.training-action-fields{border:0;margin:0;padding:0;display:grid;gap:14px;min-width:0;grid-column:1/-1}.training-action-fields:disabled{opacity:.58}
@media(max-width:850px){.training-action-grid{grid-template-columns:1fr}.training-tabs a{padding:10px}}

/* Excepciones personales: herencia, regla y resultado claramente separados. */
.personal-permission-guide{margin-bottom:18px}.personal-permission-guide h2{margin:0 0 8px}.personal-permission-guide p{color:var(--muted);line-height:1.6}
.personal-permission-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.personal-permission-options>div{display:grid;gap:7px;padding:14px;border:1px solid var(--border);border-radius:10px}.personal-permission-options small{color:var(--muted);line-height:1.5}
.personal-permission-tools{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;align-items:end;margin-bottom:18px}.personal-permission-tools label{display:grid;gap:8px;min-width:0}.personal-permission-tools p{color:var(--muted);margin:0;align-self:center}
.personal-permission-module>summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;padding:20px;border-bottom:1px solid var(--border)}.personal-permission-module>summary span{color:var(--muted);font-size:.8rem}
.user-overrides .personal-permission-row{grid-template-columns:minmax(250px,1fr) minmax(340px,1fr);align-items:start}.personal-permission-setting{display:grid;gap:13px}.personal-permission-setting .override-choice{flex-wrap:wrap;justify-content:flex-start}.personal-permission-origin{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:.78rem;color:var(--muted)}.personal-permission-origin b{color:var(--text)}
.personal-permission-result{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.personal-permission-result small{color:var(--muted)}.personal-permission-code{margin-top:10px;color:var(--muted);font-size:.75rem}.personal-legacy-rule{display:block;margin-top:10px;color:var(--warning)!important}.personal-permission-row.has-unsaved-change{border-left:3px solid var(--warning);background:color-mix(in srgb,var(--warning) 5%,var(--surface))}
.personal-permission-save{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.personal-permission-save span{color:var(--muted)}
@media(max-width:1000px){.personal-permission-options,.personal-permission-tools{grid-template-columns:1fr}.user-overrides .personal-permission-row{grid-template-columns:1fr}.personal-permission-setting .override-choice{align-items:stretch}.personal-permission-save{flex-wrap:wrap}}

.personal-extra-choice{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);cursor:pointer;line-height:1.5}.personal-extra-choice input{width:18px;height:18px;flex:none;accent-color:var(--brand)}.personal-extra-choice:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}.personal-legacy-block{display:grid;gap:10px}

.personal-permission-tools input,.personal-permission-tools select{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);font:inherit}.personal-permission-tools input:focus,.personal-permission-tools select:focus{outline:2px solid var(--brand);outline-offset:2px}

/* Official training dossiers: bounded tables instead of recursive grids. */
.training-dossier-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0 24px 24px;margin:0}
.training-dossier-fields>div{min-width:0}.training-dossier-fields dt{font-weight:700;color:var(--muted);margin-bottom:6px}.training-dossier-fields dd{margin:0;overflow-wrap:anywhere;white-space:normal}
.training-dossier-empty{padding:20px 24px 28px}.training-dossier-empty p{margin:8px 0 0;color:var(--muted)}
.training-dossier-observation{min-width:240px;max-width:620px;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
@media(max-width:640px){.training-dossier-fields{grid-template-columns:1fr;padding:0 18px 20px}.training-dossier-empty{padding:18px}.training-dossier-observation{min-width:220px}}

/* Errors remain readable until explicitly dismissed. */
.toast.danger{animation:none!important;position:fixed;top:84px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));max-width:760px;max-height:calc(100dvh - 112px);overflow:auto;box-sizing:border-box;display:grid;grid-template-columns:1fr 32px;gap:10px 18px;padding:22px 24px;border:2px solid #e56c6c;border-left:6px solid #e56c6c;box-shadow:0 14px 48px #0005;z-index:10050;font-size:15px;line-height:1.6}
.toast.danger>strong{grid-column:1;font-size:17px}.toast.danger>span{grid-column:1;overflow-wrap:anywhere}.toast.danger>button{grid-column:2;grid-row:1;align-self:start}
.training-operation-detail{display:grid;gap:14px;padding:12px 0;min-width:240px;max-width:720px}.training-operation-detail section{padding:14px;border:1px solid var(--border);border-radius:10px}.training-operation-detail h3{margin:0 0 8px;font-size:14px}.training-operation-detail p{margin:6px 0;white-space:normal;overflow-wrap:anywhere}.training-operation-detail .operation-response{border-left:3px solid #db6666}.training-operation-detail dl{margin:0}.training-operation-detail dt{font-weight:700}.training-operation-detail dd{margin:4px 0 10px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:640px){.toast.danger{top:72px;padding:16px;gap:8px;max-height:calc(100dvh - 96px)}}

.training-icon-label{display:flex;align-items:center;gap:8px}.training-icon-label svg{flex-shrink:0;color:var(--accent,#4c9ddd)}
.training-case-progress{display:block;width:100%;height:10px;accent-color:#328ec9;margin:12px 0;border:0;border-radius:8px;overflow:hidden}
.training-operation-dialog{position:fixed;inset:0;margin:auto;width:min(760px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:0 24px 90px #0006;box-sizing:border-box;overflow:auto}
.training-operation-dialog:not([open]){display:none}.training-operation-dialog::backdrop{background:#07111ab3;backdrop-filter:blur(6px)}
.training-operation-dialog>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px}.training-operation-dialog h2{margin:8px 0 0}.training-operation-dialog .training-operation-detail{max-width:none;min-width:0}.training-operation-dialog .training-operation-detail section{min-width:0}
@media(max-width:640px){.training-operation-dialog{padding:18px;max-height:calc(100dvh - 24px)}.training-operation-dialog h2{font-size:20px}}

.training-stage-list{display:flex;gap:16px;list-style:none;padding:0;margin:20px 0;flex-wrap:wrap}.training-stage-list li{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:12px 16px;color:var(--muted);flex:1;min-width:180px}.training-stage-list li.done{color:var(--text);border-left:4px solid #339b83;background:color-mix(in srgb,#339b83 7%,var(--surface))}.training-stage-list li.done svg{color:#339b83}

/* Admission interview: grouped data and a clear resolution. */
.dossier-source-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:18px 0}.dossier-source-line time{margin-left:auto;font-variant-numeric:tabular-nums}
.interview-overview{display:flex;align-items:center;gap:16px;padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.interview-avatar{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:14px;background:var(--brand-soft);color:var(--brand-hover)}
.interview-overview h2{font-size:21px;margin:5px 0}.interview-overview p{margin:4px 0 0;color:var(--muted);font-size:13px}.interview-overview>.badge{margin-left:auto;align-self:center}
.interview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:start}
.interview-card{margin:0;overflow:hidden;padding:0;min-width:0}.interview-card>header{display:flex;align-items:flex-start;gap:12px;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.interview-card>header>svg{flex-shrink:0;margin-top:2px;color:var(--brand-hover)}.interview-card h2{font-size:16px;margin:0}.interview-card header p{color:var(--muted);font-size:12px;margin:6px 0 0;line-height:1.5}
.interview-fields{display:grid;gap:18px;padding:22px 24px;margin:0}.interview-fields>div{min-width:0}.interview-fields dt{font-size:11px;text-transform:uppercase;letter-spacing:.045em;font-weight:700;color:var(--muted);margin-bottom:7px}.interview-fields dd{margin:0;line-height:1.7;overflow-wrap:anywhere;font-size:14px}
.interview-resolution{grid-column:1/-1}.interview-resolution .interview-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.interview-resolution .interview-fields>div:last-child{grid-column:1/-1;border-top:1px solid var(--border);padding-top:16px}
@media(max-width:720px){.interview-grid{grid-template-columns:1fr;gap:16px}.interview-overview{padding:18px;flex-wrap:wrap;gap:12px}.interview-overview>.badge{margin-left:64px}.interview-overview h2{font-size:19px}.interview-card>header{padding:18px}.interview-fields{padding:18px}.interview-resolution .interview-fields{grid-template-columns:1fr}.dossier-source-line time{margin-left:25px;width:100%}}

.training-action-denied{display:flex;align-items:flex-start;gap:12px;margin:0 24px 24px;padding:18px;border:1px solid var(--border);border-left:4px solid var(--warning);border-radius:10px;background:var(--warning-bg);color:var(--text)}.training-action-denied>svg{color:var(--warning);flex-shrink:0;margin-top:2px}.training-action-denied strong{display:block;font-size:14px}.training-action-denied p{margin:7px 0 0;font-size:13px;line-height:1.6}
@media(max-width:640px){.training-action-denied{margin:0 18px 18px;padding:15px}}

.training-audience-form{display:grid;gap:22px}.training-audience-card{margin:0;padding:18px 22px 0;min-width:0}.training-audience-card legend{font-size:16px;font-weight:800;padding:0 8px}.training-audience-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:8px 0 20px}
.training-audience-option{display:flex;gap:12px;align-items:flex-start;padding:15px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;cursor:pointer;min-width:0}.training-audience-option:has(input:checked){border-color:var(--brand-hover);background:var(--brand-soft)}.training-audience-option input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand)}.training-audience-option strong{display:block;font-size:13px;line-height:1.5}.training-audience-option small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}
.training-audience-legacy{border-left:3px solid var(--warning);background:var(--warning-bg);padding:12px 15px;line-height:1.6;font-size:13px;border-radius:6px}.training-audience-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border);padding:15px 0;font-size:12px;color:var(--muted)}
@media(max-width:720px){.training-audience-options{grid-template-columns:1fr}.training-audience-card{padding:15px 16px 0}.training-audience-footer{align-items:flex-start;flex-direction:column}}

/* Checkpoint 264: role editing in the browser top layer. */
dialog.role-editor{inset:0;margin:auto;translate:none;transform:none!important;animation:none!important;color:var(--text);box-sizing:border-box;max-height:calc(100dvh - 32px);width:min(560px,calc(100vw - 32px));overscroll-behavior:contain}
dialog.role-editor:not([open]){display:none!important}
dialog.role-editor::backdrop{background:rgba(6,14,20,.46);backdrop-filter:blur(3px)}
body.roles-modal-open{overflow:hidden}
@media(max-width:540px){dialog.role-editor .role-checks{grid-template-columns:1fr}}
