:root{
  --brand-blue:#003595;
  --brand-blue-600:#0756bd;
  --brand-blue-700:#002d80;
  --brand-blue-850:#07295b;
  --brand-blue-950:#041d43;
  --brand-red:#ab1918;
  --brand-red-dark:#7f181b;
  --success:#0b8a63;
  --warning:#e6a20b;
  --danger:#e1262f;
  --info:#1268d6;
  --ink:#10213b;
  --muted:#65758b;
  --muted-2:#8a98aa;
  --line:#dce4ee;
  --line-soft:#e8edf4;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-soft:#f8fafd;
  --sidebar-w:248px;
  --topbar-h:70px;
  --radius:14px;
  --radius-sm:10px;
  --shadow-sm:0 2px 9px rgba(17,42,79,.05);
  --shadow:0 8px 26px rgba(17,42,79,.075);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}
body{font-size:14px;-webkit-font-smoothing:antialiased}
a{color:inherit}
svg{display:block}
.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--brand-blue) 0%,var(--brand-blue-700) 57%,var(--brand-blue-950) 100%);color:#fff;padding:14px 12px 16px;display:flex;flex-direction:column;overflow:auto;box-shadow:10px 0 30px rgba(4,29,67,.08);z-index:30}
.sidebar::after{content:"";position:absolute;left:0;right:0;bottom:100px;height:210px;pointer-events:none;opacity:.12;background:linear-gradient(153deg,transparent 0 40%,#fff 40% 41%,transparent 41% 54%,#fff 54% 55%,transparent 55%),linear-gradient(30deg,transparent 0 58%,#fff 58% 59%,transparent 59%)}
.brand{position:relative;z-index:1;padding:0 4px 15px;border-bottom:1px solid rgba(255,255,255,.18)}
.brand-logo-plate{height:96px;background:#fff;border-radius:13px;display:grid;place-items:center;padding:9px 12px;box-shadow:0 8px 22px rgba(3,26,59,.18);border:1px solid rgba(255,255,255,.7)}
.brand img{display:block;width:184px;max-width:100%;height:82px;object-fit:contain}
.brand-module{font-size:18px;font-weight:800;margin:12px 8px 2px;letter-spacing:.05px}
.brand-subtitle{font-size:11.5px;color:#cbd9ef;margin:0 8px;letter-spacing:.18px}
.brand-accent{width:56px;height:4px;border-radius:99px;background:linear-gradient(90deg,var(--brand-red),#e32c2c);margin:10px 8px 0}
.sidebar nav{position:relative;z-index:1;padding-top:13px;display:grid;gap:5px}
.sidebar nav a{color:#f6f9ff;text-decoration:none;padding:10.5px 12px;border-radius:10px;display:flex;gap:11px;align-items:center;font-size:14px;border:1px solid transparent;transition:.18s ease}
.sidebar nav a .nav-icon{width:22px;height:22px;display:grid;place-items:center;color:#d9e5f6;flex:0 0 22px}
.sidebar nav a .nav-icon svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.sidebar nav a:hover{background:rgba(255,255,255,.085);transform:translateX(1px)}
.sidebar nav a.active{background:linear-gradient(90deg,rgba(18,104,214,.9),rgba(15,88,184,.64));border-color:rgba(255,255,255,.10);box-shadow:inset 3px 0 #fff,0 5px 16px rgba(0,0,0,.08)}
.sidebar nav a.active .nav-icon{color:#fff}
.sidebar-user{position:relative;z-index:1;margin-top:auto;border-top:1px solid rgba(255,255,255,.16);padding:15px 9px 0;display:grid;gap:4px}
.user-line{display:flex;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0e6dd3,#0a477e);color:#fff;font-weight:800;border:1px solid rgba(255,255,255,.2);box-shadow:0 3px 10px rgba(0,0,0,.12)}
.user-info{min-width:0}.user-info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#cbd9eb}
.sidebar-user button{margin-top:11px;background:transparent;border:0;color:#fff;padding:8px 2px;cursor:pointer;text-align:left;font:inherit;opacity:.93}
.main{min-width:0}.topbar{height:var(--topbar-h);background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(17,42,79,.025)}
.search-wrap{position:relative;width:min(650px,55vw)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;color:#47627f}.search-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.global-search{width:100%;background:#f6f9fc;border:1px solid #d6e0eb;border-radius:10px;padding:11.5px 15px 11.5px 43px;font-size:14px;color:var(--ink);outline:none;transition:.18s}.global-search:focus{border-color:#75a2e9;background:#fff;box-shadow:0 0 0 3px rgba(0,53,149,.08)}
.top-actions{display:flex;gap:16px;align-items:center}.top-user{display:flex;align-items:center;gap:9px;font-weight:700}.top-user small{display:block;color:var(--muted);font-weight:500}.notification{position:relative;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#31516f}.notification svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}.notification-badge{position:absolute;right:-3px;top:-4px;background:var(--danger);color:#fff;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;border:2px solid #fff}
.content{padding:22px 28px 34px;max-width:1660px;margin:0 auto;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px;gap:18px}.page-head h1{font-size:30px;line-height:1.05;margin:0;font-weight:850;letter-spacing:-.65px;color:#0d1f3c}.page-head p{margin:5px 0 0;color:var(--muted);font-size:15px}.date-chip{color:#53667d;font-size:13px;white-space:nowrap;display:flex;align-items:center;gap:7px}.date-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand-blue);box-shadow:0 0 0 4px rgba(0,53,149,.08)}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-left:4px solid #8291a5;border-radius:12px;padding:14px 15px;box-shadow:var(--shadow-sm);min-height:118px;position:relative;overflow:hidden}.kpi::after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-32px;top:-32px;background:currentColor;opacity:.035}.kpi-head{display:flex;align-items:center;gap:9px}.kpi-icon{width:34px;height:34px;border-radius:10px;background:#eff3f8;display:grid;place-items:center;color:#697d93;flex:0 0 34px}.kpi-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.kpi .label{font-size:12.5px;font-weight:800;line-height:1.25}.kpi strong{display:block;font-size:31px;margin:9px 0 2px;line-height:1;letter-spacing:-.4px}.kpi small{color:var(--muted);font-size:11.8px}.kpi.success{border-left-color:var(--success);color:var(--success)}.kpi.success .kpi-icon{background:#e7f7f1;color:var(--success)}.kpi.success .label,.kpi.success small{color:initial}.kpi.danger{border-left-color:var(--danger);color:var(--danger)}.kpi.danger .kpi-icon{background:#fff0f1;color:var(--danger)}.kpi.danger .label,.kpi.danger small{color:initial}.kpi.warning{border-left-color:var(--warning);color:#d79200}.kpi.warning .kpi-icon{background:#fff6dd;color:#e5a20a}.kpi.warning .label,.kpi.warning small{color:initial}.kpi.info{border-left-color:var(--brand-blue);color:var(--brand-blue)}.kpi.info .kpi-icon{background:#edf4ff;color:var(--brand-blue)}.kpi.info .label,.kpi.info small{color:initial}
.dashboard-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:14px;margin-top:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:17px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:14px}.panel-title h2{font-size:18px;margin:0;letter-spacing:-.28px;color:#132640}.panel-title a{font-size:13px;color:var(--brand-blue);text-decoration:none;font-weight:750}.section-heading{display:flex;align-items:center;gap:9px}.section-heading-icon{width:28px;height:28px;border-radius:8px;background:#edf4ff;color:var(--brand-blue);display:grid;place-items:center}.section-heading-icon.danger{background:#fff0f1;color:var(--danger)}.section-heading-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.attention-list{display:grid;gap:8px}.attention-item{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;padding:9px;border:1px solid var(--line-soft);border-radius:10px;background:linear-gradient(180deg,#fff,#fbfcfe);transition:.16s}.attention-item:hover{border-color:#cfdbea;box-shadow:0 3px 12px rgba(17,42,79,.05);transform:translateY(-1px)}.attention-thumb{width:58px;height:50px;border-radius:8px;background:#edf2f7;object-fit:cover}.attention-item strong{display:block;font-size:15px}.attention-item small{color:var(--muted)}
.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:11.8px;font-weight:800;white-space:nowrap}.pill.danger{background:#ffe3e5;color:#b7151d}.pill.warning{background:#fff1c9;color:#805a00}.pill.info{background:#e7f1ff;color:#1555a7}.pill.success{background:#def6e9;color:#08744f}.pill.gray{background:#eef2f6;color:#596678}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.data-table{border-collapse:collapse;width:100%;min-width:760px;background:#fff}.data-table th,.data-table td{padding:10.5px 12px;border-bottom:1px solid #e8edf3;text-align:left;vertical-align:middle}.data-table th{background:#f5f8fc;font-size:11.8px;color:#3a4c65;white-space:nowrap;text-transform:none}.data-table td{font-size:13px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover td{background:#fbfdff}.data-table a{color:var(--brand-blue);font-weight:700;text-decoration:none}.criticality{display:inline-grid;place-items:center;width:29px;height:27px;border-radius:7px;font-weight:850}.criticality.a{background:#e83c43;color:#fff}.criticality.b{background:#ffd75c;color:#594300}.criticality.c{background:#55b69c;color:#fff}
.chart-row{display:grid;grid-template-columns:1.15fr .84fr 1fr;gap:14px;margin-top:14px}.chart-card{min-height:248px}.chart-placeholder{height:176px;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f4f8fc);border:1px solid #e0e7f0;display:flex;align-items:end;justify-content:space-around;padding:20px;position:relative}.chart-placeholder::before{content:"";position:absolute;inset:20px;background:repeating-linear-gradient(to top,#dce6f1 0 1px,transparent 1px 34px);opacity:.7}.bar{width:8%;background:linear-gradient(180deg,#0d67d1,var(--brand-blue));border-radius:6px 6px 0 0;opacity:.94;position:relative;z-index:1}.bar.secondary{background:#b9c5d3}
.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #cad7e5;background:#fff;color:var(--ink);padding:9.5px 14px;border-radius:9px;font-weight:750;text-decoration:none;cursor:pointer;font-size:13px;transition:.15s}.btn-primary{background:linear-gradient(180deg,#0647a4,var(--brand-blue));border-color:var(--brand-blue);color:#fff;box-shadow:0 3px 10px rgba(0,53,149,.15)}.btn-danger{background:#fff;border-color:#eea3a3;color:#b42318}.btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(17,42,79,.06)}
.filters{display:grid;grid-template-columns:1.4fr repeat(3,minmax(140px,.55fr));gap:10px;margin:12px 0 14px}.input,.select{width:100%;border:1px solid #cfdae6;border-radius:9px;background:#fff;padding:10px 12px;color:var(--ink);outline:none}.input:focus,.select:focus{border-color:#7ea7e5;box-shadow:0 0 0 3px rgba(0,53,149,.07)}
.record-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.stat{border:1px solid var(--line);background:#fff;border-radius:11px;padding:14px;box-shadow:var(--shadow-sm)}.stat small{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.stat strong{font-size:17px}
.asset-hero{display:grid;grid-template-columns:105px 1fr auto;gap:18px;align-items:center}.asset-icon{width:105px;height:85px;background:linear-gradient(135deg,#edf4ff,#f7faff);border-radius:12px;display:grid;place-items:center;color:var(--brand-blue);border:1px solid #dce6f2}.asset-icon svg{width:42px;height:42px;stroke:currentColor;fill:none;stroke-width:1.55}.asset-hero h2{margin:0;font-size:24px}.asset-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;color:var(--muted)}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin:16px -17px 0;padding:0 17px;overflow:auto}.tab{padding:12px 16px;text-decoration:none;color:#4f5f74;border-bottom:3px solid transparent;font-weight:700;white-space:nowrap}.tab.active{color:var(--brand-blue);border-bottom-color:var(--brand-blue)}
.detail-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:14px;margin-top:14px}.kv{display:grid;grid-template-columns:180px 1fr;gap:10px 18px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:650}.timeline{display:grid;gap:10px}.timeline-item{display:grid;grid-template-columns:16px 105px 1fr;gap:10px;align-items:start}.timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--brand-blue);margin-top:4px;box-shadow:0 0 0 4px rgba(0,53,149,.08)}.timeline-item small{color:var(--muted)}
.login-body{min-height:100vh;background:#f3f6fb;padding:0}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,43%) 1fr}.login-brand{background:linear-gradient(145deg,var(--brand-blue) 0%,var(--brand-blue-700) 58%,var(--brand-blue-950) 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;position:relative;overflow:hidden}.login-brand::after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.10);border-radius:50%;right:-270px;bottom:-270px;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018)}.login-logo-plate{width:min(330px,86%);background:#fff;border-radius:18px;padding:20px 28px;box-shadow:0 25px 60px rgba(0,0,0,.23);position:relative;z-index:1}.login-logo-plate img{display:block;width:100%;height:auto}.login-brand-copy{position:relative;z-index:1;color:#fff;text-align:center;margin-top:24px}.login-brand-copy h2{font-size:28px;margin:0}.login-brand-copy p{color:#d2dff1;margin:8px 0 0;max-width:410px}.login-pane{display:grid;place-items:center;padding:36px}.login-card{width:min(430px,94vw);background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 22px 55px rgba(17,42,79,.11)}.login-card .mini-brand{display:none}.login-card h1{margin:0;font-size:28px;letter-spacing:-.4px}.login-card p{color:var(--muted);margin:6px 0 23px}.login-card form{display:grid;gap:9px}.login-card label{font-size:13px;font-weight:800;margin-top:6px}.login-card input{padding:12px;border:1px solid #cfd9e5;border-radius:9px;outline:none}.login-card input:focus{border-color:#75a2e9;box-shadow:0 0 0 3px rgba(0,53,149,.08)}.login-card .btn-primary{margin-top:10px;padding:12px}.alert.danger{background:#fff1f1;color:#a5141a;padding:10px;border-radius:8px;margin-bottom:12px}
.empty-state{min-height:170px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--muted);gap:6px}.empty-state strong{color:var(--ink)}
@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.chart-row{grid-template-columns:1fr 1fr}.chart-row .chart-card:last-child{grid-column:1/-1}.record-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:930px){:root{--sidebar-w:82px}.brand-logo-plate{height:64px;padding:5px}.brand img{width:62px;height:54px}.brand-module,.brand-subtitle,.brand-accent{display:none}.sidebar nav a span:not(.nav-icon){display:none}.sidebar nav a{justify-content:center}.sidebar-user .user-info,.sidebar-user form{display:none}.sidebar-user{justify-items:center}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.asset-hero{grid-template-columns:85px 1fr}.asset-hero>.toolbar{grid-column:1/-1}.top-user .user-text{display:none}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card .mini-brand{display:block;width:200px;margin:0 auto 20px}}
@media(max-width:680px){.app-shell{display:block}.sidebar{height:auto;position:static;min-height:0;display:block;padding:10px}.brand{display:flex;align-items:center;gap:12px;padding:0 4px 8px}.brand-logo-plate{width:124px;height:62px}.brand img{width:112px;height:52px}.brand-module{display:block;font-size:15px;margin:0;color:#fff}.sidebar nav{display:flex;overflow:auto;padding-top:7px}.sidebar nav a{min-width:48px;padding:9px}.sidebar-user{display:none}.topbar{height:60px;padding:0 12px}.search-wrap{width:75vw}.content{padding:16px}.page-head{align-items:flex-start}.page-head h1{font-size:25px}.date-chip{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-row{grid-template-columns:1fr}.chart-row .chart-card:last-child{grid-column:auto}.filters{grid-template-columns:1fr}.record-grid{grid-template-columns:1fr}.asset-hero{grid-template-columns:70px 1fr}.asset-icon{width:70px;height:60px}.kv{grid-template-columns:1fr}.kv dt{font-size:12px}.attention-item{grid-template-columns:48px 1fr}.attention-thumb{width:48px;height:45px}.attention-item>.pill{grid-column:2}.top-actions{gap:8px}}
.agenda-tabs .btn{min-width:86px;text-align:center}.workflow .stat{min-height:74px}.workflow .stat strong{font-size:14px}.pagination{display:flex;gap:6px;list-style:none;padding:0}.pagination a,.pagination span{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;text-decoration:none;background:#fff;color:var(--ink)}.pagination .active span{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}

/* V0.4 · Compactación visual solicitada por TOYO */
:root{--sidebar-w:220px;--topbar-h:62px;--radius:12px;--radius-sm:9px}
.sidebar{padding:10px 10px 13px;box-shadow:8px 0 22px rgba(4,29,67,.07)}
.brand{padding:0 3px 11px}
.brand-logo-plate{height:74px;border-radius:11px;padding:6px 10px;box-shadow:0 5px 16px rgba(3,26,59,.16)}
.brand img{width:152px;height:62px}
.brand-module{font-size:16px;margin:9px 7px 1px}.brand-subtitle{font-size:10.5px;margin:0 7px}.brand-accent{width:46px;height:3px;margin:8px 7px 0}
.sidebar nav{padding-top:10px;gap:3px}.sidebar nav a{padding:8.5px 10px;border-radius:8px;gap:9px;font-size:13px}.sidebar nav a .nav-icon{width:20px;height:20px;flex-basis:20px}.sidebar nav a .nav-icon svg{width:17px;height:17px}
.sidebar-user{padding:11px 7px 0}.avatar{width:34px;height:34px;font-size:12px}
.topbar{padding:0 22px}.search-wrap{width:min(560px,52vw)}.global-search{padding:9.5px 13px 9.5px 40px;font-size:13px;border-radius:9px}.notification{width:31px;height:31px}
.content{padding:18px 22px 28px;max-width:1540px}.page-head{margin-bottom:14px}.page-head h1{font-size:26px;letter-spacing:-.45px}.page-head p{font-size:13.5px;margin-top:4px}.date-chip{font-size:12px}
.kpi-grid{gap:9px}.kpi{min-height:94px;padding:11px 12px;border-radius:10px}.kpi-head{gap:7px}.kpi-icon{width:30px;height:30px;border-radius:8px;flex-basis:30px}.kpi-icon svg{width:16px;height:16px}.kpi .label{font-size:11.5px}.kpi strong{font-size:26px;margin:6px 0 1px}.kpi small{font-size:10.8px}
.dashboard-grid{gap:11px;margin-top:11px}.panel{padding:13px;border-radius:12px}.panel-title{margin-bottom:9px;gap:10px}.panel-title h2{font-size:16px}.panel-title a{font-size:12px}.section-heading{gap:7px}.section-heading-icon{width:25px;height:25px;border-radius:7px}.section-heading-icon svg{width:14px;height:14px}
.attention-list{gap:6px}.attention-item{grid-template-columns:46px 1fr auto;gap:9px;padding:7px;border-radius:8px}.attention-thumb{width:46px;height:40px;border-radius:7px}.attention-item strong{font-size:13.5px}.attention-item small{font-size:11.5px}
.pill{padding:5px 8px;font-size:10.8px}.data-table th,.data-table td{padding:8px 10px}.data-table th{font-size:10.8px}.data-table td{font-size:12px}.criticality{width:26px;height:24px;border-radius:6px;font-size:12px}
.chart-row{gap:11px;margin-top:11px}.chart-card{min-height:205px}.chart-placeholder{height:135px;padding:15px}.chart-placeholder::before{inset:15px;background:repeating-linear-gradient(to top,#dce6f1 0 1px,transparent 1px 27px)}
.toolbar{gap:7px}.btn{padding:8px 11px;border-radius:8px;font-size:12px}.filters{gap:8px;margin:9px 0 11px}.input,.select{padding:8.5px 10px;border-radius:8px;font-size:12.5px}
.record-grid{gap:9px}.stat{padding:10px;border-radius:9px}.stat small{font-size:10.8px;margin-bottom:4px}.stat strong{font-size:14.5px}.workflow .stat{min-height:58px}.workflow .stat strong{font-size:12.5px}
.asset-hero{grid-template-columns:82px 1fr auto;gap:13px}.asset-icon{width:82px;height:66px;border-radius:10px}.asset-icon svg{width:34px;height:34px}.asset-hero h2{font-size:21px}.asset-meta{gap:7px;margin-top:6px;font-size:12px}
.detail-grid{gap:11px;margin-top:11px}.kv{grid-template-columns:155px 1fr;gap:8px 14px}.kv dt,.kv dd{font-size:12.5px}.timeline{gap:8px}.timeline-item{grid-template-columns:14px 90px 1fr;gap:8px}.timeline-dot{width:9px;height:9px}
.empty-state{min-height:130px}.agenda-tabs .btn{min-width:74px}
.login-brand{padding:36px}.login-logo-plate{width:min(270px,80%);padding:15px 22px;border-radius:14px}.login-brand-copy{margin-top:18px}.login-brand-copy h2{font-size:24px}.login-card{width:min(400px,94vw);padding:27px;border-radius:14px}.login-card h1{font-size:25px}

/* OT V0.4 */
.ot-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px}.ot-code{font-size:12px;color:var(--brand-blue);font-weight:800;margin-bottom:3px}.ot-title{font-size:24px;margin:0}.ot-subtitle{margin:4px 0 0;color:var(--muted);font-size:13px}.ot-status-stack{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.ot-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-2px -2px 12px;padding:0 2px;overflow:auto}.ot-tab{padding:8px 10px;font-size:12px;font-weight:750;color:#5e6f84;border-bottom:2px solid transparent;white-space:nowrap}.ot-tab.active{color:var(--brand-blue);border-bottom-color:var(--brand-blue)}
.ot-main-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:11px}.ot-section{display:grid;gap:9px}.ot-section-title{font-size:14px;font-weight:850;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.field{display:grid;gap:4px}.field label{font-size:11px;font-weight:800;color:#4a5e76}.field small{font-size:10.5px;color:var(--muted)}.textarea{min-height:76px;resize:vertical}
.checklist{display:grid;gap:6px}.check-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 118px minmax(150px,1fr);gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line-soft);border-radius:8px;background:#fff}.check-title{font-size:12.5px;font-weight:750}.check-criterion{font-size:10.8px;color:var(--muted);margin-top:2px}.check-result{display:flex;gap:4px}.check-result label{font-size:10.5px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:#fff}.check-result input{margin:0 3px 0 0}.check-note{font-size:11.5px;padding:7px 8px;border:1px solid #d5dee9;border-radius:7px;width:100%}
.mini-list{display:grid;gap:6px}.mini-card{padding:8px 9px;border:1px solid var(--line-soft);border-radius:8px;background:#fbfcfe}.mini-card strong{font-size:12.5px}.mini-card small{display:block;color:var(--muted);font-size:10.8px;margin-top:2px}.evidence-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:8px;background:#fff;font-size:11.5px}
.alert-inline{padding:8px 10px;border-radius:8px;font-size:11.5px}.alert-inline.warning{background:#fff6dc;color:#705000}.alert-inline.danger{background:#fff0f1;color:#a7141a}.alert-inline.success{background:#eaf8f1;color:#08704f}
@media(max-width:930px){:root{--sidebar-w:76px}.brand-logo-plate{height:58px}.brand img{width:56px;height:48px}.ot-main-grid{grid-template-columns:1fr}.check-row{grid-template-columns:1fr 118px}.check-note{grid-column:1/-1}}
@media(max-width:680px){.brand-logo-plate{width:110px;height:54px}.brand img{width:100px;height:46px}.content{padding:13px}.page-head h1{font-size:23px}.kpi{min-height:87px}.kpi strong{font-size:23px}.ot-hero{display:block}.ot-status-stack{justify-content:flex-start;margin-top:8px}.form-grid{grid-template-columns:1fr}.check-row{grid-template-columns:1fr}.check-note{grid-column:auto}.chart-card{min-height:180px}.chart-placeholder{height:115px}}

/* V0.6 · Maestros administrables + búsqueda global */
.form-stack{display:grid;gap:14px}.form-section{border-top:1px solid var(--line-soft);padding-top:12px}.form-section:first-child{border-top:0;padding-top:0}.form-section h2{font-size:15px;margin:0 0 10px;color:#18304f}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.textarea.compact{min-height:58px}.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.narrow-form{max-width:900px}.toggle-line{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:750;color:#354a64}.toggle-line input{accent-color:var(--brand-blue)}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.role-card{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe;cursor:pointer}.role-card input{accent-color:var(--brand-blue)}.role-card strong{display:block;font-size:12.5px}.role-card small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}.role-card.read-only{cursor:default}.row-card{display:flex;justify-content:space-between;align-items:center;gap:8px}.table-actions{display:flex;gap:5px;white-space:nowrap}.search-page{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:12px;max-width:820px}.search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.search-result{display:block;padding:9px 10px;border:1px solid var(--line-soft);border-radius:8px;text-decoration:none;background:#fff;margin-bottom:6px}.search-result:hover{border-color:#bfcfe2;background:#fbfdff}.search-result strong{display:block;font-size:12.5px;color:var(--brand-blue)}.search-result small{display:block;color:var(--muted);margin-top:2px;font-size:10.8px}
@media(max-width:1000px){.form-grid.three,.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.span-3{grid-column:span 2}.search-results{grid-template-columns:1fr}}
@media(max-width:680px){.form-grid.two,.form-grid.three,.form-grid.four,.role-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.search-page{grid-template-columns:1fr}.form-actions{justify-content:stretch}.form-actions .btn{flex:1;text-align:center}}
