/* ============================================================================
   NexFor · app.css · Apeiron360.LLC · @peiron360 · v=40
   SISTEMA DE DISEÑO "SALA DE CONTROL CLÍNICA"
   Superficie profunda como identidad · densidad tipo terminal · rejilla y líneas
   en vez de tarjetas flotantes · jade fosforescente como única señal viva.
   Reescritura total: mismos nombres de clase, valores radicalmente nuevos.
   ============================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;450;500;600&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --void:#070b12; --bg-0:#0a1019; --bg-1:#0e1622; --bg-2:#131d2c; --bg-3:#1a2738;
  --line:#1f2d40; --line-2:#27384f; --line-soft:#172234;
  --jade-50:#0a2620; --jade-100:#0e3a2f; --jade-200:#155446; --jade-300:#1e7c66;
  --jade-500:#2ee6a6; --jade-600:#26c994; --jade-700:#1ea882; --jade-800:#9ff5d6;
  --jade:#2ee6a6;
  --azul-900:#eaf2ff; --azul-800:#cfe0f5; --azul-700:#9db8d9; --azul-600:#5b8fd6; --azul-500:#3b82c4;
  --ambar:#ffb454; --ambar-soft:#2a1f0e;
  --c-canvas:#0a1019; --c-surface:#0e1622; --c-surface-2:#131d2c;
  --gris-50:#131d2c; --gris-100:#172234; --gris-200:#1f2d40; --gris-300:#27384f; --gris-400:#3d5070;
  --texto:#e7eefb; --texto-2:#9fb2cc; --texto-suave:#6479a0; --suave:#6479a0; --blanco:#0e1622;
  --dom-clinico:#5b8fd6; --dom-agenda:#2ee6a6; --dom-financiero:#ffb454; --dom-equipo:#a78bfa; --dom-gobierno:#647a9e;
  --ok:#2ee6a6; --error:#ff5d6c; --warn:#ffb454; --info:#5b8fd6;
  --ok-soft:#0e3a2f; --error-soft:#2e1419; --warn-soft:#2a1f0e; --info-soft:#11233d;
  --cian:#2ee6a6;
  --ink-100:#11233d; --ink-200:#16314f; --ink-300:#1d4063; --ink-400:#5b8fd6; --amber-100:#2a1f0e;
  --display:'Space Grotesk','Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono','SF Mono',ui-monospace,Menlo,Consolas,monospace;
  --fs-2xs:10px; --fs-xs:11px; --fs-sm:12px; --fs-base:13px; --fs-md:14.5px;
  --fs-lg:17px; --fs-xl:21px; --fs-2xl:27px; --fs-3xl:36px;
  --lh-tight:1.12; --lh-snug:1.35; --lh-normal:1.55; --tracking-tight:-.02em;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s7:32px; --s8:40px; --s9:56px;
  --radius-xs:3px; --radius-sm:4px; --radius:6px; --radius-lg:8px; --radius-xl:11px; --radius-pill:999px;
  --sh-1:0 0 0 1px var(--line); --sh-2:0 4px 20px rgba(0,0,0,.45),0 0 0 1px var(--line);
  --sh-3:0 12px 40px rgba(0,0,0,.6),0 0 0 1px var(--line-2);
  --sh-pop:0 24px 70px rgba(0,0,0,.7),0 0 0 1px var(--line-2);
  --sombra:var(--sh-1); --sombra-2:var(--sh-2); --sombra-3:var(--sh-3);
  --ring:0 0 0 1px var(--jade-500),0 0 0 4px rgba(46,230,166,.18);
  --glow:0 0 24px rgba(46,230,166,.35);
  --ease:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{font-family:var(--body);color:var(--texto);background:var(--c-canvas);line-height:var(--lh-normal);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  background-image:radial-gradient(60% 50% at 50% -10%,rgba(46,230,166,.05),transparent 70%),linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:auto,44px 44px,44px 44px;}
a{color:var(--jade-600);text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight);font-weight:600;}
::selection{background:var(--jade-300);color:var(--void);}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm);}
input,select,textarea{font-family:inherit;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg-0);}
::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--bg-0);}
::-webkit-scrollbar-thumb:hover{background:var(--gris-400);}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(70% 60% at 50% 0%,rgba(46,230,166,.12),transparent 65%),var(--void);position:relative;overflow:hidden;}
.login-wrap::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:44px 44px;opacity:.5;}
.login-card{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:44px 42px;width:404px;box-shadow:var(--sh-pop);position:relative;z-index:1;}
.login-logo{font-family:var(--display);font-size:32px;font-weight:700;letter-spacing:-.04em;color:var(--texto);margin-bottom:3px;}
.login-logo .dot{color:var(--jade-500);text-shadow:var(--glow);}
.login-sub{color:var(--texto-suave);font-size:var(--fs-sm);margin-bottom:30px;font-family:var(--mono);letter-spacing:.02em;}
.field{margin-bottom:var(--s4);}
.field label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--texto-2);margin-bottom:7px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono);}
.field input{width:100%;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:var(--fs-md);outline:none;transition:box-shadow .16s var(--ease),border-color .16s var(--ease);background:var(--bg-0);color:var(--texto);}
.field input:focus{border-color:var(--jade-500);box-shadow:var(--ring);}

.btn{padding:9px 17px;border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-base);background:var(--bg-3);color:var(--texto);display:inline-flex;align-items:center;gap:7px;transition:all .14s var(--ease);box-shadow:inset 0 0 0 1px var(--line-2);white-space:nowrap;letter-spacing:.01em;}
.btn:hover{background:var(--gris-300);box-shadow:inset 0 0 0 1px var(--gris-400);}
.btn:active{transform:translateY(1px);}
.btn-block,.btn-block.btn{width:100%;justify-content:center;}
.btn-primary{background:var(--jade-500);color:var(--void);box-shadow:0 0 0 1px var(--jade-500),var(--glow);}
.btn-primary:hover{background:var(--jade-600);box-shadow:0 0 0 1px var(--jade-600),var(--glow);}
.btn-amber{background:var(--ambar);color:var(--void);box-shadow:0 0 0 1px var(--ambar);}
.btn-amber:hover{background:#ffc06f;}
.btn-ghost{background:transparent;color:var(--texto-2);box-shadow:inset 0 0 0 1px var(--line-2);}
.btn-ghost:hover{background:var(--bg-2);color:var(--texto);box-shadow:inset 0 0 0 1px var(--gris-400);}
.btn-sm{padding:6px 12px;font-size:var(--fs-sm);}
.btn-lg{padding:13px 24px;font-size:var(--fs-md);}
.msg-error{background:var(--error-soft);color:var(--error);padding:10px 13px;border-radius:var(--radius-sm);font-size:var(--fs-base);margin-bottom:14px;display:none;border-left:2px solid var(--error);}
.brand-foot{margin-top:24px;text-align:center;font-size:var(--fs-2xs);color:var(--texto-suave);font-family:var(--mono);}
.brand-foot b{color:var(--jade-600);}

.app{display:flex;min-height:100vh;}
.side{width:236px;background:var(--void);color:var(--texto-2);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:40;border-right:1px solid var(--line-2);}
.side-logo{padding:22px 22px 18px;font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.04em;color:var(--texto);display:flex;align-items:center;gap:2px;}
.side-logo .dot{color:var(--jade-500);text-shadow:var(--glow);}
.side-menu{flex:1;overflow-y:auto;padding:6px 0 12px;}
.side-menu::-webkit-scrollbar{width:5px;}
.side-menu::-webkit-scrollbar-thumb{background:var(--line-2);border:none;}
.menu-group{padding:18px 22px 7px;font-size:var(--fs-2xs);letter-spacing:.18em;text-transform:uppercase;color:var(--texto-suave);font-weight:600;font-family:var(--mono);}
.menu-item{display:flex;align-items:center;gap:11px;padding:8px 12px;margin:1px 10px;border-radius:var(--radius-sm);color:var(--texto-2);font-size:var(--fs-base);font-weight:500;cursor:pointer;transition:all .12s var(--ease);position:relative;}
.menu-item svg{width:16px;height:16px;flex-shrink:0;opacity:.7;}
.menu-item:hover{background:var(--bg-2);color:var(--texto);}
.menu-item:hover svg{opacity:1;}
.menu-item.active{background:var(--jade-50);color:var(--jade-800);}
.menu-item.active svg{opacity:1;color:var(--jade-500);}
.menu-item.active::before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:2px;height:18px;background:var(--jade-500);box-shadow:var(--glow);}
.menu-item .dom-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.side-foot{padding:14px 22px;font-size:var(--fs-2xs);color:var(--texto-suave);border-top:1px solid var(--line-2);font-family:var(--mono);}
.side-foot b{color:var(--jade-600);}
.main{margin-left:236px;flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{background:rgba(10,16,25,.82);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line-2);padding:12px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;}
.topbar h1{font-family:var(--display);font-size:var(--fs-xl);color:var(--texto);font-weight:600;letter-spacing:-.02em;}
.topbar .user{display:flex;align-items:center;gap:12px;font-size:var(--fs-base);color:var(--texto-2);}
.topbar .clock{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500;color:var(--jade-600);font-size:var(--fs-sm);}
.content{padding:26px 28px 44px;flex:1;max-width:1560px;width:100%;animation:fadeUp .4s var(--ease-out) both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;margin-bottom:var(--s7);background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;}
.card{background:var(--bg-1);border-radius:0;padding:18px 20px;border:none;position:relative;overflow:hidden;transition:background .2s var(--ease);}
.card:hover{background:var(--bg-2);transform:none;box-shadow:none;}
.card .k{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--texto-suave);font-weight:600;display:flex;align-items:center;gap:6px;font-family:var(--mono);}
.card .v{font-family:var(--display);font-size:var(--fs-3xl);font-weight:600;color:var(--texto);margin-top:9px;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.card .delta{font-size:var(--fs-xs);font-weight:600;margin-top:9px;display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);}
.card .delta.up{color:var(--ok);}.card .delta.down{color:var(--error);}
.card .ic{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-3);color:var(--texto-suave);}
.card.clinico::after,.card.agenda::after,.card.financiero::after,.card.equipo::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;}
.card.clinico::after{background:var(--dom-clinico);} .card.agenda::after{background:var(--dom-agenda);box-shadow:var(--glow);}
.card.financiero::after{background:var(--dom-financiero);} .card.equipo::after{background:var(--dom-equipo);}

.panel{background:var(--bg-1);border-radius:var(--radius-lg);box-shadow:var(--sh-1);border:none;overflow:hidden;margin-bottom:var(--s5);}
.panel-head{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.panel-head h2{font-size:var(--fs-lg);color:var(--texto);font-weight:600;}
.panel-head .sub{font-size:var(--fs-sm);color:var(--texto-suave);font-weight:400;margin-top:2px;font-family:var(--mono);}
.panel-body{padding:20px;}

table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-base);}
table.tbl th{text-align:left;padding:10px 14px;background:var(--bg-0);color:var(--texto-suave);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line-2);font-weight:600;font-family:var(--mono);}
table.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);}
table.tbl tr{transition:background .1s var(--ease);}
table.tbl tbody tr:hover td{background:var(--jade-50);}
table.tbl tr:last-child td{border-bottom:none;}

.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-xs);font-size:var(--fs-2xs);font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.05em;font-family:var(--mono);border:1px solid transparent;}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;}
.badge.programada{background:var(--info-soft);color:var(--info);border-color:var(--info);}
.badge.en_sala{background:var(--warn-soft);color:var(--warn);border-color:var(--warn);}
.badge.en_atencion{background:var(--ok-soft);color:var(--ok);border-color:var(--ok);}
.badge.atendido{background:var(--info-soft);color:var(--azul-600);border-color:var(--azul-600);}
.badge.cobrado{background:var(--ok-soft);color:var(--ok);border-color:var(--ok);}
.badge.cerrado{background:var(--bg-3);color:var(--texto-suave);border-color:var(--line-2);}
.badge.cancelada,.badge.no_asistio{background:var(--error-soft);color:var(--error);border-color:var(--error);}
.chip{display:inline-block;padding:2px 8px;border-radius:var(--radius-xs);font-size:var(--fs-2xs);font-weight:600;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;}
.chip-grave{background:var(--error-soft);color:var(--error);}.chip-mod{background:var(--warn-soft);color:var(--warn);}.chip-leve{background:var(--info-soft);color:var(--info);}

.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);}
.grid-form .full{grid-column:1/-1;}
.grid-form input,.grid-form textarea,.grid-form select,
.fld input,.fld select,.fld textarea{width:100%;padding:10px 13px;border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--bg-0);color:var(--texto);transition:box-shadow .15s var(--ease),border-color .15s var(--ease);}
.grid-form input:focus,.grid-form textarea:focus,.grid-form select:focus,
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--jade-500);box-shadow:var(--ring);}
.grid-form textarea{resize:vertical;min-height:64px;}
.fld{margin:0 0 11px;}
.fld label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--texto-2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--mono);}

.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-3);color:var(--texto);padding:13px 19px;border-radius:var(--radius-sm);box-shadow:var(--sh-pop);font-size:var(--fs-base);opacity:0;transform:translateY(10px);transition:all .28s var(--ease-out);z-index:100;border-left:2px solid var(--jade-500);}
.toast.show{opacity:1;transform:translateY(0);}
.toast.ok{border-left-color:var(--ok);}
.toast.err{border-left-color:var(--error);}
.empty{text-align:center;padding:48px 24px;color:var(--texto-suave);font-size:var(--fs-base);font-family:var(--mono);}
.empty svg{width:38px;height:38px;opacity:.3;margin-bottom:12px;}
.row-actions{display:flex;gap:7px;}
.muted{color:var(--texto-suave);font-size:var(--fs-sm);}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}

.nf-bell{position:relative;cursor:pointer;color:var(--texto-2);display:inline-flex;align-items:center;padding:5px;border-radius:var(--radius-sm);transition:all .14s var(--ease);}
.nf-bell:hover{color:var(--jade-600);background:var(--bg-2);}
.nf-badge{position:absolute;top:-2px;right:-2px;background:var(--error);color:#fff;font-size:var(--fs-2xs);font-weight:700;min-width:15px;height:15px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--c-canvas);font-family:var(--mono);}
.nf-notifs{position:absolute;top:60px;right:24px;width:340px;max-height:440px;overflow-y:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--sh-pop);z-index:50;}
.nf-n-item{padding:13px 16px;border-bottom:1px solid var(--line);transition:background .12s var(--ease);}
.nf-n-item.unread{background:var(--jade-50);}
.nf-n-t{font-weight:600;font-size:var(--fs-base);color:var(--texto);}
.nf-n-c{font-size:var(--fs-sm);color:var(--texto-suave);margin-top:2px;}
.nf-n-empty{padding:24px;text-align:center;color:var(--texto-suave);font-size:var(--fs-base);}
.nf-n-foot{padding:11px;text-align:center;font-size:var(--fs-sm);color:var(--jade-600);cursor:pointer;font-weight:600;border-top:1px solid var(--line);}
.nf-n-foot:hover{background:var(--bg-3);}

.banner{padding:11px 15px;border-radius:var(--radius-sm);margin:0 0 14px;font-size:var(--fs-base);font-weight:500;display:flex;align-items:center;gap:9px;border:1px solid;}
.banner-warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);}
.banner-ok{background:var(--ok-soft);border-color:var(--jade-300);color:var(--jade-800);}
.banner-info{background:var(--info-soft);border-color:var(--info);color:var(--azul-700);}
.modal-bg{position:fixed;inset:0;background:rgba(3,6,11,.72);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeUp .2s var(--ease-out) both;}
.modal-card{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-xl);padding:24px;max-width:520px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--sh-pop);}
.modal-card h3{font-family:var(--display);color:var(--texto);margin:0 0 16px;font-size:var(--fs-lg);font-weight:600;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:0 0 16px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.stat-card{background:var(--bg-1);border:none;border-radius:0;padding:15px 16px;}
.stat-card .n{font-family:var(--display);font-size:var(--fs-2xl);color:var(--texto);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;}
.stat-card .l{font-size:var(--fs-xs);color:var(--texto-suave);margin-top:3px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;}

.btn-emergencia{background:var(--error);color:#fff;border-radius:var(--radius-sm);padding:8px 14px;font-weight:700;font-size:var(--fs-sm);cursor:pointer;display:inline-flex;align-items:center;gap:6px;letter-spacing:.03em;text-transform:uppercase;box-shadow:0 0 0 1px var(--error),0 0 16px rgba(255,93,108,.4);transition:all .15s;font-family:var(--mono);}
.btn-emergencia:hover{background:#ff7681;}
.btn-emergencia:active{transform:scale(.97);}

.nf-sk-wrap{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;}
.nf-sk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;}
.nf-sk{background:linear-gradient(100deg,var(--bg-1) 30%,var(--bg-3) 50%,var(--bg-1) 70%);background-size:200% 100%;animation:nf-shimmer 1.3s var(--ease) infinite;}
@keyframes nf-shimmer{from{background-position:200% 0;}to{background-position:-200% 0;}}

.nf-cmdk{display:inline-flex;align-items:center;gap:7px;background:var(--bg-2);color:var(--texto-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:6px 12px;font-size:var(--fs-sm);font-weight:500;transition:all .14s var(--ease);font-family:var(--mono);}
.nf-cmdk:hover{border-color:var(--jade-300);color:var(--texto);}
.nf-cmdk kbd{font-family:var(--mono);font-size:var(--fs-2xs);background:var(--bg-0);border:1px solid var(--line-2);border-radius:3px;padding:1px 5px;color:var(--texto-suave);}

.nf-cmdbg{position:fixed;inset:0;background:rgba(3,6,11,.7);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:flex-start;justify-content:center;padding-top:13vh;z-index:1200;animation:fadeUp .16s var(--ease-out) both;}
.nf-cmd{width:100%;max-width:580px;background:var(--bg-2);border-radius:var(--radius-lg);box-shadow:var(--sh-pop);overflow:hidden;border:1px solid var(--line-2);}
.nf-cmd-input{width:100%;border:none;outline:none;padding:18px 20px;font-size:var(--fs-md);background:var(--bg-2);color:var(--texto);border-bottom:1px solid var(--line);font-family:var(--mono);}
.nf-cmd-list{max-height:50vh;overflow-y:auto;padding:6px;}
.nf-cmd-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:var(--radius-sm);cursor:pointer;}
.nf-cmd-item.sel{background:var(--jade-50);}
.nf-cmd-kind{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--jade-600);min-width:48px;font-family:var(--mono);}
.nf-cmd-lbl{font-size:var(--fs-base);color:var(--texto);font-weight:500;}
.nf-cmd-empty{padding:22px;text-align:center;color:var(--texto-suave);font-size:var(--fs-base);font-family:var(--mono);}
.nf-cmd-foot{display:flex;gap:18px;justify-content:center;padding:10px;border-top:1px solid var(--line);font-size:var(--fs-2xs);color:var(--texto-suave);font-family:var(--mono);}

.kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;align-items:start;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;}
@media(max-width:1100px){.kanban{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.kanban{grid-template-columns:1fr;}}
.kb-col{background:var(--bg-1);border-radius:0;min-height:140px;display:flex;flex-direction:column;}
.kb-col.drop{background:var(--jade-50);box-shadow:inset 0 0 0 1px var(--jade-500);}
.kb-col-h{padding:12px 14px;font-size:var(--fs-xs);font-weight:700;color:var(--texto);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono);}
.kb-col-h .n{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--radius-xs);font-size:var(--fs-2xs);padding:1px 7px;color:var(--texto-suave);}
.kb-col-b{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1;}
.kb-card{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:11px 13px;cursor:grab;transition:all .14s var(--ease);}
.kb-card:hover{border-color:var(--jade-300);transform:translateY(-1px);}
.kb-card:active{cursor:grabbing;}
.kb-card.dragging{opacity:.4;}
.kb-card .nm{font-weight:600;font-size:var(--fs-base);color:var(--texto);}
.kb-card .mt{font-size:var(--fs-xs);color:var(--texto-suave);margin-top:3px;}
.kb-card .tm{font-size:var(--fs-2xs);color:var(--jade-600);margin-top:6px;font-family:var(--mono);font-variant-numeric:tabular-nums;}
.kb-empty{font-size:var(--fs-xs);color:var(--texto-suave);text-align:center;padding:14px 6px;font-family:var(--mono);}

.nrs-grid{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start;}
@media(max-width:980px){.nrs-grid{grid-template-columns:1fr;}}
.nrs-pac{display:flex;flex-direction:column;gap:8px;}
.nrs-pac-card{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;transition:all .14s var(--ease);}
.nrs-pac-card:hover{border-color:var(--jade-300);}
.nrs-pac-card.on{border-color:var(--jade-500);box-shadow:var(--ring);}
.nrs-pac-card .nm{font-weight:600;color:var(--texto);}
.nrs-pac-card .mt{font-size:var(--fs-xs);color:var(--texto-suave);margin-top:2px;font-family:var(--mono);}
.mar-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line);}
.mar-row:last-child{border-bottom:none;}
.mar-med{font-weight:600;color:var(--texto);font-size:var(--fs-base);}
.mar-sub{font-size:var(--fs-xs);color:var(--texto-suave);font-family:var(--mono);}
.mar-hora{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--texto-2);font-size:var(--fs-sm);}
.mar-btn{padding:6px 13px;border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-sm);background:var(--jade-500);color:var(--void);}
.mar-btn.done{background:var(--ok-soft);color:var(--ok);pointer-events:none;box-shadow:inset 0 0 0 1px var(--jade-300);}
.escala-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;}

.tp-wrap{max-width:540px;margin:0 auto;}
.tp-card{background:var(--bg-1);border-radius:var(--radius-xl);box-shadow:var(--sh-3);overflow:hidden;border:1px solid var(--line-2);}
.tp-prio{padding:9px;text-align:center;font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--void);font-family:var(--mono);}
.tp-prio.alta{background:var(--error);}.tp-prio.media{background:var(--ambar);}.tp-prio.baja{background:var(--azul-600);}
.tp-body{padding:26px 24px;text-align:center;}
.tp-nom{font-family:var(--display);font-size:var(--fs-2xl);font-weight:600;color:var(--texto);}
.tp-folio{font-size:var(--fs-sm);color:var(--texto-suave);margin-top:2px;font-family:var(--mono);}
.tp-ruta{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px 0;}
.tp-loc{flex:1;background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
.tp-loc .lbl{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--texto-suave);font-family:var(--mono);}
.tp-loc .val{font-size:var(--fs-md);font-weight:600;color:var(--texto);margin-top:3px;}
.tp-arrow{font-size:24px;color:var(--jade-500);text-shadow:var(--glow);}
.tp-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 24px 24px;}
.tp-actions .btn{justify-content:center;padding:15px;font-size:var(--fs-md);}
.tp-none{text-align:center;padding:60px 20px;color:var(--texto-suave);font-family:var(--mono);}
.tp-none .big{font-size:46px;margin-bottom:10px;color:var(--jade-500);}

.menu-toggle{display:none;}
@media (max-width:1024px){.ws{grid-template-columns:260px 1fr !important;}.ws-asist{display:none;}}
@media (max-width:820px){
  .side{transform:translateX(-100%);transition:transform .25s var(--ease);}
  .side.open{transform:translateX(0);}
  .main{margin-left:0;}
  .topbar .menu-toggle{display:inline-flex !important;}
  .content{padding:20px 16px 32px;}
  .ws{grid-template-columns:1fr !important;}
  .ws-360{position:static !important;}
  .soap{grid-template-columns:1fr !important;}
  .vit-grid{grid-template-columns:1fr 1fr !important;}
  .grid-form{grid-template-columns:1fr !important;}
}
@media (max-width:480px){.vit-grid{grid-template-columns:1fr 1fr !important;}.topbar .user span{display:none;}.topbar h1{font-size:var(--fs-lg);}.nf-cmdk{display:none;}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important;}}

[data-theme="light"]{
  --void:#eef2f7; --bg-0:#f7f9fc; --bg-1:#ffffff; --bg-2:#f4f7fb; --bg-3:#eaf0f7;
  --line:#e2e8f1; --line-2:#d4deeb; --line-soft:#edf1f7;
  --c-canvas:#f4f7fb; --c-surface:#ffffff; --c-surface-2:#f7f9fc;
  --gris-50:#f4f7fb; --gris-100:#edf1f7; --gris-200:#e2e8f1; --gris-300:#d4deeb; --gris-400:#9fb0c6;
  --texto:#0e1d33; --texto-2:#42546e; --texto-suave:#7286a0; --suave:#7286a0; --blanco:#fff;
  --azul-900:#0c1a2e; --azul-800:#16314f; --azul-700:#1d5fa5; --azul-600:#1d5fa5;
  --jade-50:#e7f7f0; --jade-800:#0c6450;
  --ok-soft:#e7f7f0; --error-soft:#fbeae8; --warn-soft:#f9efdf; --info-soft:#eaf2fb;
  --ink-100:#eaf2fb;
  --sh-1:0 0 0 1px var(--line); --sh-2:0 4px 16px rgba(12,26,46,.08),0 0 0 1px var(--line);
  --sh-3:0 12px 36px rgba(12,26,46,.12),0 0 0 1px var(--line-2);
  --sh-pop:0 20px 60px rgba(12,26,46,.16),0 0 0 1px var(--line-2);
  --glow:0 0 0 transparent;
}
[data-theme="light"] body{background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:44px 44px;}
[data-theme="light"] .side{background:var(--void);}
[data-theme="light"] .login-wrap{background:radial-gradient(70% 60% at 50% 0%,rgba(46,230,166,.1),transparent 65%),var(--void);}
