/* Ajustes visuales acotados al panel administrativo */
body.panel-login-modern { background:#090b0e; }
.panel-login-modern .login-wrapper {
  position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,520px) minmax(360px,430px);
  gap:clamp(38px,7vw,88px); align-items:center; justify-content:center; min-height:100vh; padding:48px 28px;
  background:linear-gradient(90deg,rgba(7,9,12,.97) 0%,rgba(7,9,12,.91) 48%,rgba(7,9,12,.78) 100%),url('assets/vision-auto.jpg') center/cover no-repeat;
}
.panel-login-modern .login-wrapper::before { content:''; position:absolute; z-index:-1; inset:0; background:radial-gradient(circle at 17% 18%,rgba(255,210,31,.13),transparent 28rem); }
.login-context { color:#fff; }
.login-context-kicker { display:inline-flex; align-items:center; gap:10px; margin-bottom:18px; color:#ffd21f; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.login-context-kicker::before { content:''; width:28px; height:2px; background:#ffd21f; }
.login-context h2 { max-width:510px; margin:0; font-size:clamp(38px,5vw,62px); font-weight:780; line-height:1.01; letter-spacing:-.05em; }
.login-context > p { max-width:490px; margin:20px 0 28px; color:#aeb3bc; font-size:14px; line-height:1.7; }
.login-context-points { display:flex; flex-wrap:wrap; gap:10px; }
.login-context-points span { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:8px 11px; border:1px solid rgba(255,255,255,.1); border-radius:9px; background:rgba(255,255,255,.035); color:#c4c8cf; font-size:10px; font-weight:650; }
.login-context-points svg { width:14px; height:14px; color:#d8b700; }
.panel-login-modern .login-card { width:100%; max-width:430px; padding:34px; border:1px solid rgba(255,255,255,.85); border-radius:22px; background:rgba(255,255,255,.96); color:#17191e; text-align:left; box-shadow:0 30px 90px rgba(0,0,0,.42); backdrop-filter:blur(18px); }
.panel-login-modern .login-card img { display:block; width:142px; max-width:142px; margin:0 0 29px; filter:none !important; }
.panel-login-modern .login-card h1 { margin:0 0 7px; color:#15181d; font-size:27px; font-weight:780; letter-spacing:-.035em; }
.panel-login-modern .login-card > p { margin:0 0 27px; color:#747a84; font-size:12px; line-height:1.55; }
.panel-login-modern .login-form { display:grid; gap:15px; }
.login-field { display:grid; gap:7px; }
.login-field-label { color:#454b55; font-size:11px; font-weight:750; }
.login-input-wrap { position:relative; display:block; }
.login-input-icon { position:absolute; z-index:1; left:13px; top:50%; width:18px; height:18px; color:#8b9099; transform:translateY(-50%); pointer-events:none; }
.login-input-icon svg { width:18px; height:18px; }
.panel-login-modern .login-form input { width:100%; min-height:50px; margin:0; padding:12px 14px 12px 43px; border:1px solid #d9dce1; border-radius:11px; background:#fff; color:#17191e; font-size:13px; outline:none; box-shadow:none; }
.panel-login-modern .login-form input::placeholder { color:#a2a6ad; }
.panel-login-modern .login-form input:hover { border-color:#bdc1c8; }
.panel-login-modern .login-form input:focus { border-color:#b99b00; box-shadow:0 0 0 3px rgba(255,210,31,.18); }
.panel-login-modern .login-form .btn-primary { width:100%; min-height:50px; margin-top:3px; border:1px solid #15181d; border-radius:11px; background:#15181d; color:#fff; font-size:12px; }
.panel-login-modern .login-form .btn-primary:hover { border-color:#2b2f36; background:#2b2f36; box-shadow:0 8px 20px rgba(15,18,22,.18); }
.panel-login-modern .error-msg { margin:0 0 18px; padding:11px 12px; border:1px solid #f0cccc; border-radius:10px; background:#fff3f3; color:#a93e3e; font-size:11px; }
.login-security-note { display:flex; align-items:flex-start; justify-content:center; gap:7px; color:#8b9099; font-size:9px; line-height:1.45; text-align:center; }
.login-security-note svg { width:13px; height:13px; flex:0 0 13px; }
@media (max-width:820px) {
  .panel-login-modern .login-wrapper { grid-template-columns:minmax(0,430px); gap:24px; padding:30px 16px; background:linear-gradient(rgba(7,9,12,.9),rgba(7,9,12,.96)),url('assets/vision-auto.jpg') center/cover no-repeat; }
  .login-context { text-align:center; }
  .login-context-kicker { margin-bottom:10px; }
  .login-context h2 { font-size:clamp(30px,9vw,43px); }
  .login-context > p { margin:12px auto 0; font-size:12px; }
  .login-context-points { display:none; }
  .panel-login-modern .login-card { padding:27px 22px; }
}
body.panel-menu-open { overflow:hidden; }
.layout { background:#f3f4f6; }
.sidebar {
  position:relative; width:282px; flex:0 0 282px; padding:22px 16px 16px;
  border-right:1px solid rgba(255,255,255,.07);
  background:radial-gradient(circle at 50% -10%,rgba(255,210,31,.13),transparent 18rem),#0b0d11;
  color:#fff; box-shadow:16px 0 50px rgba(15,23,42,.08);
}
.sidebar::after { content:''; position:absolute; inset:0 0 auto; height:3px; background:#ffd21f; }
.sidebar-brand { justify-content:flex-start; align-items:center; gap:12px; min-height:66px; margin:0 4px 25px; padding:0 9px 17px; border-bottom:1px solid rgba(255,255,255,.09); }
.sidebar-brand img { width:132px; max-width:132px; height:auto; filter:none !important; opacity:1; }
.sidebar-brand-copy { min-width:0; }
.sidebar-brand-copy strong { display:block; color:#f7f8fa; font-size:12px; font-weight:750; }
.sidebar-brand-copy span { display:block; margin-top:2px; color:#777e8b; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.sidebar nav { display:flex; flex-direction:column; gap:5px; }
.sidebar-nav-label { margin:0 13px 7px; color:#5f6672; font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.sidebar .nav-item { position:relative; display:flex; align-items:center; gap:11px; min-height:46px; margin:0; padding:9px 12px; border:1px solid transparent; border-radius:11px; color:#9298a3; font-size:13px; font-weight:620; line-height:1.25; text-decoration:none; }
.sidebar .nav-item:hover { border-color:rgba(255,255,255,.08); background:rgba(255,255,255,.045); color:#fff; }
.sidebar .nav-item.active { border-color:rgba(255,210,31,.18); border-left:1px solid rgba(255,210,31,.18); background:rgba(255,210,31,.1); color:#fff; }
.sidebar .nav-item.active::before { content:''; position:absolute; left:-1px; width:3px; height:20px; border-radius:0 4px 4px 0; background:#ffd21f; }
.sidebar-icon { width:31px; height:31px; flex:0 0 31px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:9px; background:rgba(255,255,255,.035); color:#777e8b; }
.sidebar-icon svg { width:16px; height:16px; }
.sidebar .nav-item:hover .sidebar-icon { color:#d7dae0; }
.sidebar .nav-item.active .sidebar-icon { border-color:rgba(255,210,31,.25); background:rgba(255,210,31,.12); color:#ffd21f; }
.sidebar-link-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-bottom { margin-top:auto; padding-top:20px; }
.sidebar-session { margin:0 0 9px !important; padding:13px !important; border:1px solid rgba(255,255,255,.08); border-radius:12px !important; background:rgba(255,255,255,.035) !important; }
.sidebar-session-label { margin:0 0 7px !important; color:#676e7b !important; font-size:9px !important; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.sidebar-session-name { margin:0 !important; color:#f2f3f5; font-size:12px !important; font-weight:700 !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-session-role { display:inline-flex; margin:7px 0 0 !important; padding:4px 7px; border-radius:6px; background:rgba(255,210,31,.1); color:#d9b900 !important; font-size:8px !important; font-weight:800; letter-spacing:.09em; }
.sidebar .nav-logout { color:#bd8585 !important; }
.sidebar .nav-logout:hover { border-color:rgba(239,68,68,.16); background:rgba(239,68,68,.07); color:#f1a4a4 !important; }
.sidebar .nav-logout .sidebar-icon { color:#a26b6b; }
.main-content { min-width:0; padding:30px clamp(18px,3vw,38px); }
.header { min-height:52px; margin-bottom:25px; }
.header h2 { font-size:clamp(22px,3vw,29px); font-weight:720; letter-spacing:-.025em; }
.panel-menu-toggle { display:none; width:42px; height:42px; padding:0; border:1px solid #d9dce1; border-radius:11px; background:#fff; color:#20242b; box-shadow:0 5px 15px rgba(15,23,42,.07); }
.panel-menu-toggle svg { width:19px; height:19px; }
.sidebar-backdrop { display:none; position:fixed; inset:0; z-index:79; border:0; background:rgba(5,7,10,.55); backdrop-filter:blur(2px); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:9px 15px; border-radius:10px; font-size:13px; font-weight:700; box-shadow:none; }
.btn svg { width:15px; height:15px; flex:0 0 auto; }
.btn-primary { border:1px solid #d9b800; background:#ffd21f; color:#17191e; }
.btn-primary:hover { border-color:#c7a900; background:#f4c900; box-shadow:0 7px 16px rgba(190,155,0,.16); transform:translateY(-1px); }
.btn-outline { border-color:#d8dce2; background:#fff; color:#444b56; }
.btn-outline:hover { border-color:#bfc4cc; background:#f8f9fa; color:#17191e; }
.btn-sm { min-height:34px; padding:6px 10px; border-radius:9px; font-size:11px; }
.btn-icon-only { width:34px; padding:0; }
.btn-icon-only svg { width:15px; height:15px; }
.close-btn.panel-svg-ready { display:grid; place-items:center; width:36px; height:36px; border:1px solid #e0e3e7; border-radius:10px; background:#fff; color:#69707b; font-size:0; }
.close-btn.panel-svg-ready svg { width:16px; height:16px; }
.stat-icon.panel-svg-ready { color:#5c4d00; font-size:0; }
.stat-icon.panel-svg-ready svg { width:22px; height:22px; }
@media (max-width:900px) {
  .sidebar { position:fixed; inset:0 auto 0 0; z-index:80; width:min(86vw,292px); transform:translateX(-105%); transition:transform .24s ease; }
  .sidebar.open { transform:translateX(0); }
  .sidebar-backdrop.visible { display:block; }
  .main-content { width:100%; height:auto; min-height:100vh; overflow:visible; padding:20px 14px 38px; }
  .header { justify-content:flex-start; gap:12px; margin-bottom:18px; }
  .panel-menu-toggle { display:grid; place-items:center; flex:0 0 42px; }
}
@media (max-width:560px) {
  .card { padding:16px; border-radius:14px; }
  .filters { padding:12px; }
  .filters .btn { width:100% !important; }
  .operational-actions { flex-direction:column-reverse; }
}
@media (prefers-reduced-motion:reduce) { .sidebar { transition:none; } .btn { transition:none; } }

body.panel-dialog-open { overflow:hidden; }
.panel-toast-region { position:fixed; z-index:4000; top:20px; right:20px; display:flex; width:min(390px,calc(100vw - 28px)); flex-direction:column; gap:10px; pointer-events:none; }
.panel-toast { display:grid; grid-template-columns:38px minmax(0,1fr) 30px; gap:11px; align-items:start; padding:14px; border:1px solid #dfe3e8; border-radius:14px; background:rgba(255,255,255,.98); color:#252a32; box-shadow:0 18px 50px rgba(14,19,28,.18); pointer-events:auto; animation:panel-toast-in .22s ease-out; backdrop-filter:blur(12px); }
.panel-toast.is-leaving { opacity:0; transform:translateX(12px); transition:opacity .18s ease,transform .18s ease; }
.panel-toast-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; background:#e7f8ee; color:#137546; }
.panel-toast-icon svg { width:19px; height:19px; }
.panel-toast > div { min-width:0; padding-top:1px; }
.panel-toast strong { display:block; margin-bottom:3px; color:#20242b; font-size:12px; }
.panel-toast p { margin:0; color:#69717d; font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.panel-toast > button { display:grid; width:30px; height:30px; place-items:center; border:0; border-radius:8px; background:transparent; color:#8b929d; cursor:pointer; }
.panel-toast > button:hover { background:#f1f3f5; color:#3f4650; }
.panel-toast > button svg { width:14px; height:14px; }
.panel-toast--error { border-color:#efcecb; }
.panel-toast--error .panel-toast-icon { background:#fee9e7; color:#af3d35; }
.panel-toast--warning { border-color:#eadb9b; }
.panel-toast--warning .panel-toast-icon { background:#fff5cf; color:#856600; }
@keyframes panel-toast-in { from { opacity:0; transform:translateY(-8px) scale(.98); } }

.panel-confirm-overlay { position:fixed; z-index:4100; inset:0; display:flex; align-items:center; justify-content:center; padding:18px; }
.panel-confirm-backdrop { position:absolute; inset:0; background:rgba(7,10,15,.66); backdrop-filter:blur(5px); }
.panel-confirm-card { position:relative; width:min(430px,100%); padding:27px; border:1px solid rgba(255,255,255,.65); border-radius:19px; background:#fff; color:#22262e; text-align:center; box-shadow:0 30px 90px rgba(0,0,0,.3); animation:panel-confirm-in .2s ease-out; }
.panel-confirm-overlay.is-leaving { opacity:0; transition:opacity .16s ease; }
.panel-confirm-icon { display:grid; width:48px; height:48px; margin:0 auto 15px; place-items:center; border-radius:13px; background:#fff4c5; color:#7f6800; }
.panel-confirm-icon svg { width:23px; height:23px; }
.panel-confirm-card h3 { margin:0 0 7px; color:#1d2128; font-size:19px; letter-spacing:-.02em; }
.panel-confirm-card p { max-width:350px; margin:0 auto 21px; color:#707783; font-size:12px; line-height:1.6; }
.panel-confirm-card > div:last-child { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.panel-confirm-card button { min-height:43px; padding:0 14px; border-radius:10px; font:inherit; font-size:11px; font-weight:800; cursor:pointer; }
.panel-confirm-cancel { border:1px solid #d9dde3; background:#fff; color:#535b67; }
.panel-confirm-accept { border:1px solid #d2ae00; background:#ffd21f; color:#17191e; }
.panel-confirm-accept.is-danger { border-color:#ad3c35; background:#b7443c; color:#fff; }
@keyframes panel-confirm-in { from { opacity:0; transform:translateY(10px) scale(.985); } }
@media(max-width:560px){.panel-toast-region{top:12px;right:14px}.panel-confirm-card{padding:23px 18px}.panel-confirm-card>div:last-child{grid-template-columns:1fr}.panel-confirm-cancel{order:2}}
@media(prefers-reduced-motion:reduce){.panel-toast,.panel-confirm-card{animation:none}}
