/* ── LOCAL FONTS ── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/inter-inter-latin-300-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-inter-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-inter-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-inter-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-inter-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jbmono-jetbrains-mono-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/jbmono-jetbrains-mono-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}


*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg: #F5F3EE; --surface: #FDFCFA; --border: #DDD9CF; --border-light: #EAE7DF;
  --text: #1A1916; --text-muted: #6B6760; --text-faint: #A09D97;
  --radius: 6px; --radius-lg: 10px;
  --font-body: 'Fraunces', Georgia, serif; --font-mono: 'DM Mono', monospace;
  --prio-critica: #C0392B; --prio-alta: #D4700A; --prio-media: #1A5C96; --prio-baja: #2E7D32;
  --prio-critica-bg: #FDF1F0; --prio-alta-bg: #FDF5EC; --prio-media-bg: #EEF4FC; --prio-baja-bg: #EEF6EE;
  --danger: #C0392B; --success: #2E7D32;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #18171A; --surface: #211F24; --border: #3A383E; --border-light: #2C2A30;
    --text: #F0EEE8; --text-muted: #9E9BA4; --text-faint: #5C5960;
    --prio-critica-bg: #2A1A1A; --prio-alta-bg: #251E14; --prio-media-bg: #14202C; --prio-baja-bg: #141C14;
  }
}
body { background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 15px; line-height: 1.6; min-height: 100vh; }

/* SCREENS */
.screen { display: none; }
.screen.active { display: block; }
#login-screen.active, #reset-screen.active { display: flex; }
#login-screen, #reset-screen { min-height: 100vh; align-items: center; justify-content: center; flex-direction: column; gap: 1.5rem; }

/* LOGIN */
.login-brand { font-size: 22px; font-family: var(--font-mono); color: var(--text-muted); letter-spacing: 0.25em; text-transform: uppercase; font-weight: 500; }
.login-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem 2.5rem; width: 360px; max-width: 95vw; display: flex; flex-direction: column; gap: 1.25rem; }
.login-heading { font-size: 22px; font-weight: 300; font-style: italic; }
.login-sub { font-size: 12px; color: var(--text-muted); margin-top: -10px; font-family: var(--font-mono); }
.login-error { font-size: 12px; font-family: var(--font-mono); color: var(--danger); display: none; }
.login-link { font-size: 12px; font-family: var(--font-mono); color: var(--text-muted); text-align: center; cursor: pointer; text-decoration: underline; background: none; border: none; width: 100%; }
.login-link:hover { color: var(--text); }

/* FORMS */
.field { display: flex; flex-direction: column; gap: 5px; }
.field label { font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.field input, .field select, .field textarea {
  background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 9px 12px; font-size: 14px; font-family: var(--font-body); color: var(--text);
  width: 100%; outline: none; transition: border-color 0.15s;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--text-muted); }
.field textarea { resize: vertical; min-height: 80px; }
.field-hint { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); }

/* BUTTONS */
.btn-main { background: var(--text); color: var(--surface); border: none; border-radius: var(--radius); padding: 10px 16px; font-size: 14px; font-family: var(--font-body); font-weight: 500; cursor: pointer; width: 100%; transition: opacity 0.15s; }
.btn-main:hover { opacity: 0.82; }
.btn-main:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-outline { border: 1px solid var(--border); border-radius: var(--radius); background: transparent; color: var(--text-muted); padding: 7px 14px; font-size: 13px; font-family: var(--font-mono); cursor: pointer; display: flex; align-items: center; gap: 6px; transition: background 0.12s, color 0.12s; white-space: nowrap; }
.btn-outline:hover { background: var(--surface); color: var(--text); }
.btn-solid { border: 1px solid var(--text); border-radius: var(--radius); background: var(--text); color: var(--surface); padding: 7px 14px; font-size: 13px; font-family: var(--font-mono); cursor: pointer; display: flex; align-items: center; gap: 6px; transition: opacity 0.12s; white-space: nowrap; }
.btn-solid:hover { opacity: 0.82; }
.btn-solid:disabled { opacity: 0.4; cursor: not-allowed; }

/* LAYOUT */
#main-screen { max-width: 860px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }

/* TOPBAR */
.topbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-light); flex-wrap: wrap; }
.brand-block { flex-shrink: 0; }
.brand-title { font-size: 24px; font-weight: 300; font-style: italic; }
.brand-meta { display: flex; flex-direction: column; gap: 1px; margin-top: 3px; }
.brand-user { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); }
.brand-datetime { font-size: 12px; font-family: var(--font-mono); color: var(--text-muted); font-weight: 500; }
.topbar-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.sync-indicator { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); display: flex; align-items: center; gap: 5px; }
.sync-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--success); flex-shrink: 0; }
.sync-dot.syncing { background: var(--prio-alta); animation: pulse 1s infinite; }
.sync-dot.error   { background: var(--danger); }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }

/* NAV TABS */
.nav-tabs { display: flex; gap: 0; margin-bottom: 1.75rem; border-bottom: 1px solid var(--border); overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch; scrollbar-width: none; white-space: nowrap; flex-wrap: nowrap; }
.nav-tabs::-webkit-scrollbar { display: none; }
.nav-tab { font-size: 13px; font-family: var(--font-mono); color: var(--text-faint); padding: 8px 14px; cursor: pointer; border: none; background: transparent; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color 0.12s, border-color 0.12s; flex-shrink: 0; white-space: nowrap; }
.nav-tab:hover { color: var(--text-muted); }
.nav-tab.active { color: var(--text); border-bottom-color: var(--text); }

/* STATS GRID */
.stats-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 1.5rem; }
.stat-card { background: var(--surface); border: 1px solid var(--border-light); border-radius: var(--radius); padding: 0.875rem 1rem; }
.stat-label { font-size: 10px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-faint); margin-bottom: 4px; }
.stat-value { font-size: 26px; font-weight: 300; line-height: 1; }
.stat-value.critica { color: var(--prio-critica); }

/* STATS PANEL */
#stats-panel { display: none; }
#stats-panel.active { display: block; }
.stats-section-title { font-size: 11px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-faint); margin: 1.5rem 0 0.75rem; }
.stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 0.5rem; }
.stats-big-card { background: var(--surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg); padding: 1.25rem; display: flex; flex-direction: column; gap: 4px; }
.stats-big-label { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.08em; }
.stats-big-value { font-size: 28px; font-weight: 300; color: var(--text); line-height: 1.1; }
.stats-big-sub { font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }
.chart-bar-wrap { display: flex; flex-direction: column; gap: 8px; }
.chart-bar-row { display: flex; align-items: center; gap: 10px; }
.chart-bar-label { font-size: 12px; font-family: var(--font-mono); color: var(--text-muted); min-width: 80px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chart-bar-track { flex: 1; height: 8px; background: var(--border-light); border-radius: 4px; overflow: hidden; }
.chart-bar-fill { height: 100%; border-radius: 4px; background: var(--text); transition: width 0.4s; }
.chart-bar-fill.critica { background: var(--prio-critica); }
.chart-bar-fill.alta    { background: var(--prio-alta); }
.chart-bar-fill.media   { background: var(--prio-media); }
.chart-bar-fill.baja    { background: var(--prio-baja); }
.chart-bar-count { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); min-width: 24px; text-align: right; }
.history-list { display: flex; flex-direction: column; gap: 6px; }
.history-item { background: var(--surface); border: 1px solid var(--border-light); border-radius: var(--radius); padding: 10px 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.history-title { font-size: 13px; color: var(--text); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-meta { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); white-space: nowrap; }
.empty-stats { text-align: center; padding: 3rem 1rem; color: var(--text-faint); font-size: 14px; font-style: italic; }

/* FILTERS */
.filter-row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 1.25rem; align-items: center; }
.filter-btn { border: 1px solid var(--border); border-radius: 20px; background: transparent; padding: 4px 14px; font-size: 12px; font-family: var(--font-mono); cursor: pointer; color: var(--text-muted); transition: all 0.12s; }
.filter-btn:hover { border-color: var(--text-muted); color: var(--text); }
.filter-btn.active { background: var(--text); color: var(--surface); border-color: var(--text); }
.filter-sep { width: 1px; height: 20px; background: var(--border); flex-shrink: 0; }

/* TAG CHIPS */
.tag-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-family: var(--font-mono); font-weight: 500; border: 1px solid transparent; cursor: default; }
.tag-chip.removable { cursor: pointer; }
.tag-chip.removable:hover { opacity: 0.7; }

/* TAG SELECTOR */
.tag-selector { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); min-height: 44px; }
.tag-option { padding: 3px 10px; border-radius: 10px; font-size: 12px; font-family: var(--font-mono); cursor: pointer; border: 1.5px solid transparent; transition: all 0.12s; }
.tag-option.selected { font-weight: 600; }
.tag-add-row { display: flex; gap: 8px; align-items: center; }
.tag-add-row input { flex: 1; }
.color-swatches { display: flex; gap: 6px; flex-wrap: wrap; }
.swatch { width: 22px; height: 22px; border-radius: 50%; cursor: pointer; border: 2px solid transparent; transition: transform 0.1s; }
.swatch:hover { transform: scale(1.15); }
.swatch.selected { border-color: var(--text); }

/* TASK CARDS */
.task-list { display: flex; flex-direction: column; gap: 6px; }
.task-card { background: var(--surface); border: 1px solid var(--border-light); border-left: 3px solid transparent; border-radius: var(--radius-lg); padding: 0.875rem 1rem; transition: border-color 0.12s; }
.task-card:hover { border-color: var(--border); }
.task-card.prio-critica { border-left-color: var(--prio-critica); }
.task-card.prio-alta    { border-left-color: var(--prio-alta); }
.task-card.prio-media   { border-left-color: var(--prio-media); }
.task-card.prio-baja    { border-left-color: var(--prio-baja); }
.task-card.done { opacity: 0.45; }
.task-row { display: flex; align-items: flex-start; gap: 12px; }
.task-check { width: 18px; height: 18px; border-radius: 4px; border: 1.5px solid var(--border); background: transparent; cursor: pointer; flex-shrink: 0; margin-top: 3px; display: flex; align-items: center; justify-content: center; transition: all 0.12s; }
.task-check:hover { border-color: var(--text-muted); }
.task-check.checked { background: var(--text); border-color: var(--text); }
.task-check.checked::after { content: '✓'; color: var(--surface); font-size: 10px; font-weight: 700; }
.task-body { flex: 1; min-width: 0; }
.task-title { font-size: 15px; font-weight: 500; margin-bottom: 4px; word-break: break-word; }
.task-title.done-text { text-decoration: line-through; color: var(--text-faint); font-weight: 300; }
.task-meta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.badge { font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 8px; border-radius: 10px; font-weight: 500; }
.badge.critica { background: var(--prio-critica-bg); color: var(--prio-critica); }
.badge.alta    { background: var(--prio-alta-bg);    color: var(--prio-alta); }
.badge.media   { background: var(--prio-media-bg);   color: var(--prio-media); }
.badge.baja    { background: var(--prio-baja-bg);    color: var(--prio-baja); }
.task-date { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); }
.task-due  { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); }
.task-due.overdue { color: var(--danger); }
.elapsed-chip { font-size: 11px; font-family: var(--font-mono); color: var(--text-faint); display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.elapsed-chip.overday { color: var(--danger); }
.elapsed-chip .red-dot { color: var(--danger); font-size: 9px; letter-spacing: 1px; }
.task-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.icon-btn { border: none; background: transparent; cursor: pointer; color: var(--text-faint); padding: 5px; border-radius: 5px; font-size: 17px; display: flex; align-items: center; transition: color 0.12s, background 0.12s; }
.icon-btn:hover { color: var(--text); background: var(--bg); }
.task-notes { margin-top: 10px; padding: 8px 12px; background: var(--bg); border-radius: var(--radius); border-left: 2px solid var(--border); font-size: 13px; color: var(--text-muted); line-height: 1.6; font-style: italic; white-space: pre-wrap; }
.task-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }

/* GROUPED VIEW */
.group-header { font-size: 12px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-faint); padding: 8px 4px 6px; margin-top: 8px; border-bottom: 1px solid var(--border-light); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.group-count { background: var(--border-light); border-radius: 10px; padding: 1px 8px; font-size: 11px; }

/* MODAL */
.modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.45); display: none; align-items: center; justify-content: center; z-index: 400; padding: 1rem; }
.modal-backdrop.open { display: flex; }
.modal { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.75rem; width: 520px; max-width: 100%; display: flex; flex-direction: column; gap: 1rem; max-height: 92vh; overflow-y: auto; }
.modal-heading { font-size: 18px; font-weight: 300; font-style: italic; }
.modal-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 0.25rem; }
.divider { border: none; border-top: 1px solid var(--border-light); }

/* MISC */
.empty-state { text-align: center; padding: 4rem 1rem; color: var(--text-faint); font-size: 15px; font-style: italic; font-weight: 300; }
.empty-state i { font-size: 36px; display: block; margin-bottom: 12px; opacity: 0.4; }
.msg-ok  { font-size: 12px; font-family: var(--font-mono); color: var(--success); display: none; }
.msg-err { font-size: 12px; font-family: var(--font-mono); color: var(--danger);  display: none; }
.toast { position: fixed; bottom: 1.5rem; right: 1.5rem; background: var(--text); color: var(--surface); font-family: var(--font-mono); font-size: 12px; padding: 10px 16px; border-radius: var(--radius); opacity: 0; transition: opacity 0.25s; pointer-events: none; z-index: 999; max-width: 320px; }
.toast.show { opacity: 1; }
.info-box { background: var(--prio-media-bg); border: 1px solid var(--prio-media); border-radius: var(--radius); padding: 10px 14px; font-size: 12px; font-family: var(--font-mono); color: var(--prio-media); line-height: 1.6; }



/* ── PRESCRIPCIÓN ── */
.presc-ref-box { background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius); padding:10px 14px; margin-bottom:.5rem; }
.presc-ref-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; }
.presc-ref-item { display:flex; flex-direction:column; gap:2px; background:var(--bg); border-radius:var(--radius); padding:6px 10px; }
.presc-ref-art  { font-size:11px; font-family:var(--font-mono); font-weight:500; color:var(--prio-media); }
.presc-ref-desc { font-size:12px; color:var(--text-muted); }
.presc-table { width:100%; border-collapse:collapse; font-size:12px; }
.presc-table th { background:var(--text); color:var(--surface); font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em; padding:8px 10px; text-align:center; white-space:nowrap; border:1px solid var(--border); font-weight:500; }
.presc-table td { padding:6px 8px; border:1px solid var(--border-light); vertical-align:middle; background:var(--surface); }
.presc-table tr:nth-child(even) td { background:var(--bg); }
.presc-table input[type=text],.presc-table input[type=date],.presc-table input[type=number] {
  background:transparent; border:none; outline:none; width:100%; font-size:12px;
  font-family:var(--font-body); color:var(--text); padding:2px 4px;
}
.presc-table input[type=text]:focus,.presc-table input[type=date]:focus,.presc-table input[type=number]:focus {
  background:var(--prio-media-bg); border-radius:3px;
}
.presc-calc-cell { font-family:var(--font-mono); font-size:11px; text-align:center; white-space:nowrap; }
.presc-calc-cell.naranja { color:var(--prio-alta); font-weight:500; }
.presc-si  { color:var(--danger); font-weight:700; font-family:var(--font-mono); text-align:center; }
.presc-no  { color:var(--success); font-weight:700; font-family:var(--font-mono); text-align:center; }
.presc-nd  { color:var(--text-faint); font-family:var(--font-mono); text-align:center; }
.presc-dias-neg { color:var(--danger); font-family:var(--font-mono); font-size:11px; text-align:center; }
.presc-dias-pos { color:var(--success); font-family:var(--font-mono); font-size:11px; text-align:center; }
@media (max-width:600px) { .presc-ref-grid { grid-template-columns:1fr; } }


/* ── PRESCRIPCIÓN ── */
.presc-layout { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
@media(max-width:700px) { .presc-layout { grid-template-columns:1fr; } }
.presc-col-left { display:flex; flex-direction:column; gap:1rem; }
.presc-col-right { position:sticky; top:1rem; align-self:start; }
.presc-section { background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius-lg); padding:1rem; display:flex; flex-direction:column; gap:0.75rem; }
.presc-section-title { font-size:12px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.1em; color:var(--text-muted); display:flex; align-items:center; gap:6px; }
.presc-hitos-hint { font-size:12px; font-family:var(--font-mono); color:var(--text-faint); margin-top:-4px; }
.presc-hito-row { display:grid; grid-template-columns:1fr 1.2fr auto; gap:6px; align-items:center; }
.presc-susp-row { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:6px; align-items:center; }
.presc-hito-row input, .presc-susp-row input, .presc-hito-row select, .presc-susp-row input[type=text] {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:6px 10px; font-size:13px; font-family:var(--font-body); color:var(--text); outline:none; width:100%;
}
.presc-hito-row input:focus, .presc-susp-row input:focus, .presc-hito-row select:focus { border-color:var(--text-muted); }
.presc-remove-btn { border:none; background:transparent; cursor:pointer; color:var(--text-faint); font-size:16px; padding:4px; border-radius:4px; display:flex; align-items:center; }
.presc-remove-btn:hover { color:var(--danger); background:var(--prio-critica-bg); }
.presc-add-btn { border:1px dashed var(--border); border-radius:var(--radius); background:transparent; color:var(--text-faint); padding:6px 12px; font-size:12px; font-family:var(--font-mono); cursor:pointer; display:flex; align-items:center; gap:6px; transition:all .12s; width:100%; justify-content:center; }
.presc-add-btn:hover { border-color:var(--text-muted); color:var(--text); }
.presc-calc-result { background:var(--prio-media-bg); border:1px solid var(--prio-media); border-radius:var(--radius); padding:10px 14px; font-size:13px; font-family:var(--font-mono); color:var(--prio-media); line-height:1.6; }
/* Results */
.presc-result-empty { text-align:center; padding:3rem 1rem; color:var(--text-faint); font-size:14px; font-style:italic; }
.presc-result-card { background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius-lg); padding:1.25rem; display:flex; flex-direction:column; gap:1rem; }
.presc-result-title { font-size:16px; font-weight:500; color:var(--text); }
.presc-result-status { padding:10px 14px; border-radius:var(--radius); font-size:13px; font-family:var(--font-mono); font-weight:500; }
.presc-result-status.prescripta { background:var(--prio-baja-bg); color:var(--prio-baja); border:1px solid var(--prio-baja); }
.presc-result-status.vigente    { background:var(--prio-critica-bg); color:var(--prio-critica); border:1px solid var(--prio-critica); }
.presc-result-status.proxima    { background:var(--prio-alta-bg); color:var(--prio-alta); border:1px solid var(--prio-alta); }
.presc-timeline { display:flex; flex-direction:column; gap:4px; }
.presc-tl-row { display:flex; justify-content:space-between; align-items:baseline; gap:8px; padding:5px 0; border-bottom:1px solid var(--border-light); font-size:13px; }
.presc-tl-row:last-child { border-bottom:none; }
.presc-tl-label { color:var(--text-muted); font-family:var(--font-mono); font-size:12px; }
.presc-tl-value { color:var(--text); font-family:var(--font-mono); font-weight:500; }
.presc-tl-value.key { color:var(--prio-critica); }
.presc-tl-value.ok  { color:var(--prio-baja); }
.presc-export-btn { border:1px solid var(--border); border-radius:var(--radius); background:transparent; color:var(--text-muted); padding:7px 14px; font-size:13px; font-family:var(--font-mono); cursor:pointer; display:flex; align-items:center; gap:6px; transition:all .12s; }
.presc-export-btn:hover { background:var(--surface); color:var(--text); }
.presc-susp-total { font-size:12px; font-family:var(--font-mono); color:var(--text-muted); text-align:right; }


/* ── CÓMPUTO DE PENAS ── */
.cp-config-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:1.25rem; align-items:flex-end; }
.cp-config-group { display:flex; flex-direction:column; gap:4px; flex:1; min-width:180px; }
.cp-config-label { font-size:10px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); }
.cp-select { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:8px 10px; font-size:13px; font-family:var(--font-mono); color:var(--text-muted); outline:none; cursor:pointer; }
.cp-input-date { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:8px 10px; font-size:13px; font-family:var(--font-mono); color:var(--text); outline:none; }
.cp-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cp-col { display:flex; flex-direction:column; gap:12px; }
.cp-card { background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius-lg); padding:1rem; }
.cp-card-result { background:var(--text); color:var(--surface); text-align:center; }
.cp-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem; }
.cp-card-title { font-size:13px; font-family:var(--font-mono); font-weight:500; color:var(--text); display:flex; align-items:center; gap:6px; }
.cp-card-result .cp-card-title { color:var(--surface); }
.cp-btn-add { font-size:11px; font-family:var(--font-mono); background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:4px 10px; cursor:pointer; color:var(--text-muted); display:flex; align-items:center; gap:4px; }
.cp-btn-add:hover { color:var(--text); }
.cp-row { display:grid; grid-template-columns:2fr 60px 55px 55px 28px; gap:6px; align-items:center; margin-bottom:6px; }
.cp-row-label { font-size:12px; font-family:var(--font-mono); color:var(--text-muted); padding:0 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cp-input { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:6px 8px; font-size:13px; font-family:var(--font-mono); color:var(--text); width:100%; outline:none; text-align:center; }
.cp-input:focus { border-color:var(--text-muted); }
.cp-input.desc-type { text-align:left; font-size:12px; }
.cp-label { font-size:10px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.07em; color:var(--text-faint); }
.cp-field { display:flex; flex-direction:column; gap:3px; }
.cp-col-head { font-size:9px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); text-align:center; }
.cp-headers { display:grid; grid-template-columns:2fr 60px 55px 55px 28px; gap:6px; margin-bottom:4px; }
.cp-del-btn { background:none; border:none; color:var(--text-faint); cursor:pointer; font-size:15px; padding:2px; border-radius:4px; }
.cp-del-btn:hover { color:var(--danger); }
.cp-total-row { font-size:12px; font-family:var(--font-mono); color:var(--text-muted); padding-top:8px; border-top:1px solid var(--border-light); margin-top:6px; }
.cp-total-row span { color:var(--text); font-weight:500; }
.cp-result-label { font-size:11px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.1em; opacity:.7; margin-bottom:6px; }
.cp-result-value { font-size:32px; font-weight:300; line-height:1.1; }
.cp-result-sub { font-size:12px; font-family:var(--font-mono); opacity:.65; margin-top:4px; }
.cp-hito { display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px solid var(--border-light); font-size:13px; }
.cp-hito:last-child { border-bottom:none; }
.cp-hito-label { color:var(--text-muted); font-family:var(--font-mono); font-size:12px; }
.cp-hito-val { font-weight:500; color:var(--text); font-family:var(--font-mono); font-size:12px; }
.cp-hito-val.ok { color:var(--prio-baja); }
.cp-hito-val.pending { color:var(--prio-alta); }
.cp-hito-val.na { color:var(--text-faint); }
.cp-desc-row { display:grid; grid-template-columns:2fr 120px 60px 55px 55px 28px; gap:6px; align-items:center; margin-bottom:6px; }
.cp-desc-headers { display:grid; grid-template-columns:2fr 120px 60px 55px 55px 28px; gap:6px; margin-bottom:4px; }
@media(max-width:600px){
  .cp-grid { grid-template-columns:1fr; }
  .cp-row { grid-template-columns:1.5fr 50px 45px 45px 24px; }
  .cp-headers { grid-template-columns:1.5fr 50px 45px 45px 24px; }
  .cp-desc-row { grid-template-columns:1.5fr 90px 50px 45px 45px 24px; }
  .cp-desc-headers { grid-template-columns:1.5fr 90px 50px 45px 45px 24px; }
}

/* ── JURISCAT ── */
/* JurisCat tag filter bar */
.jc-tag-filter-wrap { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:1rem; padding:8px 12px; background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius); }
.jc-tag-filter-label { font-size:10px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); white-space:nowrap; }
#jc-tag-chips { display:flex; flex-wrap:wrap; gap:6px; }
.jc-tag-chip-btn { font-size:11px; font-family:var(--font-mono); padding:3px 10px; border-radius:10px; background:var(--border-light); color:var(--text-muted); border:1.5px solid transparent; cursor:pointer; transition:all .12s; }
.jc-tag-chip-btn:hover { border-color:var(--text-muted); color:var(--text); }
.jc-tag-chip-btn.selected { background:var(--text); color:var(--surface); border-color:var(--text); }
.jc-tag-clear { font-size:11px; font-family:var(--font-mono); color:var(--text-faint); background:none; border:none; cursor:pointer; padding:2px 6px; }
.jc-tag-clear:hover { color:var(--danger); }
/* Citas badge */
.jc-citas-badge { display:inline-flex; align-items:center; gap:3px; font-size:11px; font-family:var(--font-mono); color:var(--text-faint); background:var(--border-light); border-radius:10px; padding:2px 8px; cursor:pointer; border:none; transition:background .12s, color .12s; }
.jc-citas-badge:hover { background:var(--prio-media-bg); color:var(--prio-media); }
.jc-citas-badge.cited { background:var(--prio-media-bg); color:var(--prio-media); font-weight:500; }
/* Detail modal */
.jc-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.jc-detail-field { display:flex; flex-direction:column; gap:3px; }
.jc-detail-label { font-size:10px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); }
.jc-detail-value { font-size:14px; color:var(--text); }
.jc-detail-fallo { background:var(--bg); border-left:2px solid var(--border); border-radius:var(--radius); padding:12px 14px; font-size:14px; color:var(--text-muted); line-height:1.7; font-style:italic; white-space:pre-wrap; }
.jc-btn-search { white-space:nowrap; }

.jc-toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:1rem; }
.jc-search-wrap { position:relative; flex:1; min-width:180px; }
.jc-search-icon { position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--text-faint); font-size:15px; }
#jc-search { width:100%; padding:8px 12px 8px 34px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); font-size:14px; font-family:var(--font-body); color:var(--text); outline:none; }
#jc-search:focus { border-color:var(--text-muted); }
.jc-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1rem; }
.jc-filters select { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:5px 10px; font-size:12px; font-family:var(--font-mono); color:var(--text-muted); outline:none; cursor:pointer; }
.jc-filters select:focus { border-color:var(--text-muted); }
.jc-strip { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:1.25rem; }
.jc-pill { font-size:11px; font-family:var(--font-mono); background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius); padding:4px 12px; color:var(--text-muted); }
.jc-pill span { color:var(--text); font-weight:500; }
.jc-card { background:var(--surface); border:1px solid var(--border-light); border-left:3px solid var(--border); border-radius:var(--radius-lg); padding:1rem; margin-bottom:8px; transition:border-color .12s; }
.jc-card:hover { border-color:var(--border); }
.jc-card.favor   { border-left-color:var(--prio-baja); }
.jc-card.contra  { border-left-color:var(--prio-critica); }
.jc-card.neutral { border-left-color:var(--text-faint); }
.jc-card-header { display:flex; align-items:flex-start; gap:10px; }
.jc-card-body { flex:1; min-width:0; }
.jc-card-title { font-size:15px; font-weight:500; color:var(--text); margin-bottom:4px; word-break:break-word; }
.jc-card-meta { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:11px; font-family:var(--font-mono); color:var(--text-faint); }
.jc-pos-badge { font-size:10px; font-family:var(--font-mono); padding:2px 8px; border-radius:10px; font-weight:500; text-transform:uppercase; letter-spacing:.05em; }
.jc-pos-badge.favor   { background:var(--prio-baja-bg);    color:var(--prio-baja); }
.jc-pos-badge.contra  { background:var(--prio-critica-bg); color:var(--prio-critica); }
.jc-pos-badge.neutral { background:var(--border-light);    color:var(--text-muted); }
.jc-fallo { margin-top:8px; padding:8px 12px; background:var(--bg); border-radius:var(--radius); border-left:2px solid var(--border); font-size:13px; color:var(--text-muted); line-height:1.6; font-style:italic; white-space:pre-wrap; }
.jc-card-actions { display:flex; gap:2px; flex-shrink:0; }
.jc-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.jc-tag { font-size:10px; font-family:var(--font-mono); padding:2px 8px; border-radius:10px; background:var(--border-light); color:var(--text-muted); }
.jc-archivo-btn { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-family:var(--font-mono); color:var(--prio-media); cursor:pointer; margin-top:6px; background:none; border:none; padding:0; text-decoration:underline; }
/* PDF viewer overlay */
#pdf-overlay { position:fixed; inset:0; background:rgba(0,0,0,.7); z-index:500; display:none; flex-direction:column; }
#pdf-overlay.open { display:flex; }
.pdf-toolbar { background:var(--surface); border-bottom:1px solid var(--border); padding:10px 16px; display:flex; align-items:center; gap:12px; }
.pdf-toolbar-title { flex:1; font-size:14px; font-family:var(--font-mono); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#pdf-frame { flex:1; border:none; background:#fff; }
/* Google search modal */
.jc-google-sources { display:flex; flex-direction:column; gap:8px; }
.jc-source-row { display:flex; align-items:center; gap:10px; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:8px 12px; }
.jc-source-name { font-size:13px; font-family:var(--font-mono); color:var(--text-muted); flex:1; }
.jc-source-link { font-size:12px; font-family:var(--font-mono); color:var(--prio-media); cursor:pointer; text-decoration:underline; background:none; border:none; }

/* RESPONSIVE */
@media (max-width: 600px) {
  .topbar { flex-direction: column; gap: 10px; }
  .topbar-actions { width: 100%; justify-content: flex-end; }
  .brand-title { font-size: 20px; }
  .btn-outline, .btn-solid { padding: 7px 10px; font-size: 12px; }
  .btn-outline span, .btn-solid span { display: none; }
  #main-screen { padding: 1.25rem 1rem 3rem; }
  .stats-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-value { font-size: 22px; }
  .modal { padding: 1.25rem; }
  .sync-indicator { display: none; }
}


/* ── EXPORT DROPDOWN ── */
.export-dropdown { position:relative; display:inline-block; }
.export-dd-menu { display:none; position:absolute; right:0; top:calc(100% + 4px); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); min-width:180px; z-index:100; box-shadow:0 4px 12px rgba(0,0,0,.1); overflow:hidden; }
.export-dd-menu.open { display:block; }
.export-dd-menu button { display:flex; align-items:center; gap:8px; width:100%; padding:9px 14px; font-size:13px; font-family:var(--font-mono); color:var(--text-muted); background:transparent; border:none; cursor:pointer; text-align:left; }
.export-dd-menu button:hover { background:var(--bg); color:var(--text); }
.export-dd-menu button i { font-size:15px; }


/* ── ICON FALLBACK (mobile) ── */
.ti { font-family: 'tabler-icons', sans-serif !important; font-style: normal; display: inline-block; }
/* Ensure icons render even if font is slow */
.icon-btn { min-width: 28px; min-height: 28px; }


/* ── PRESC SUB-TABS ── */
.presc-subtabs { display:flex; gap:0; margin-bottom:1.5rem; border-bottom:2px solid var(--border); }
.presc-subtab { font-size:13px; font-family:var(--font-mono); color:var(--text-faint); padding:8px 18px; cursor:pointer; border:none; background:transparent; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .12s, border-color .12s; display:flex; align-items:center; gap:6px; flex-shrink:0; }
.presc-subtab:hover { color:var(--text-muted); }
.presc-subtab.active { color:var(--text); border-bottom-color:var(--text); }

/* CC interrupciones / suspensiones rows */
.cc-row { display:grid; grid-template-columns:1fr 160px 28px; gap:6px; align-items:center; margin-bottom:6px; }
.cc-row-susp { display:grid; grid-template-columns:1fr 120px 120px 28px; gap:6px; align-items:center; margin-bottom:6px; }
.cc-row-head { display:grid; grid-template-columns:1fr 160px 28px; gap:6px; margin-bottom:4px; }
.cc-row-susp-head { display:grid; grid-template-columns:1fr 120px 120px 28px; gap:6px; margin-bottom:4px; }
.cc-col-head { font-size:9px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); text-align:center; }

/* CC result */
.cc-result-box { padding:1rem; border-radius:var(--radius-lg); border:1px solid var(--border); margin-bottom:1rem; }
.cc-result-box.prescripta { background:var(--prio-baja-bg); border-color:var(--prio-baja); }
.cc-result-box.vigente { background:var(--prio-media-bg); border-color:var(--prio-media); }
.cc-result-box.proxima { background:var(--prio-critica-bg); border-color:var(--prio-critica); }
.cc-status { font-size:16px; font-weight:500; margin-bottom:4px; }
.cc-venc { font-size:13px; font-family:var(--font-mono); margin-bottom:4px; }
.cc-detail { font-size:12px; font-family:var(--font-mono); color:var(--text-muted); }
.cc-timeline { display:flex; flex-direction:column; gap:6px; }
.cc-timeline-row { display:flex; justify-content:space-between; align-items:center; padding:6px 10px; background:var(--surface); border:1px solid var(--border-light); border-radius:var(--radius); font-size:12px; font-family:var(--font-mono); }
.cc-timeline-label { color:var(--text-muted); }
.cc-timeline-val { font-weight:500; color:var(--text); }
.cc-timeline-val.ok { color:var(--prio-baja); }
.cc-timeline-val.warn { color:var(--prio-alta); }

@media(max-width:600px){
  .cc-row { grid-template-columns:1fr 120px 24px; }
  .cc-row-susp { grid-template-columns:1fr 100px 100px 24px; }
}


/* ── ADMIN PANEL ── */
.admin-user-row { display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border:1px solid var(--border-light); border-radius:var(--radius); margin-bottom:6px; font-size:13px; }
.admin-user-row:last-child { margin-bottom:0; }
.admin-user-info { display:flex; flex-direction:column; gap:2px; }
.admin-user-email { font-weight:500; color:var(--text); }
.admin-user-meta { font-size:11px; font-family:var(--font-mono); color:var(--text-faint); }
.admin-user-rol { font-size:11px; font-family:var(--font-mono); padding:2px 8px; border-radius:99px; font-weight:600; }
.admin-user-rol.admin { background:var(--prio-critica-bg); color:var(--prio-critica); }
.admin-user-rol.user  { background:var(--prio-media-bg);  color:var(--prio-media); }


/* ── ROLE-BASED VISIBILITY ── */
body.role-user #tasks-tab,
body.role-user #jc-tab,
body.role-user #admin-nav-btn,
body.role-user #unif-tab-btn { display: none !important; }

body.role-admin #tasks-tab,
body.role-admin #jc-tab,
body.role-admin #unif-tab-btn { display: inline-flex !important; }
body.role-admin #admin-nav-btn { display: inline-flex !important; }

/* Tasks toolbar: solo visible para admin (users no acceden a tareas) */
body.role-user .tasks-toolbar { display: none !important; }


/* ── PANEL PADDING FIX ── */
#inicio-panel, #tasks-panel, #stats-panel,
#juris-panel, #presc-panel, #computo-panel, #unif-panel {
  max-width: 860px;
  margin: 0 auto;
  padding: 2rem 1.5rem 4rem;
  box-sizing: border-box;
}
@media (max-width: 600px) {
  #inicio-panel, #tasks-panel, #stats-panel,
  #juris-panel, #presc-panel, #computo-panel, #unif-panel {
    padding: 1.25rem 1rem 3rem;
  }
}


/* ── TASKS TOOLBAR ── */
.tasks-toolbar { display:flex; align-items:center; gap:8px; margin-bottom:1.25rem; flex-wrap:wrap; }



/* ── GLOBAL SEARCH ── */
.global-search-wrap { position:relative; display:flex; align-items:center; }
.global-search-icon { position:absolute; left:9px; color:var(--text-faint); font-size:15px; pointer-events:none; }
.global-search-input { width:220px; padding:6px 10px 6px 30px; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg); color:var(--text); font-size:13px; font-family:var(--font-mono); transition:width .2s, border-color .15s; }
.global-search-input:focus { outline:none; border-color:var(--text-faint); width:300px; }
.global-search-results { position:absolute; top:calc(100% + 6px); left:0; width:340px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:0 4px 16px rgba(0,0,0,.1); z-index:200; max-height:360px; overflow-y:auto; }
.gsr-section { padding:6px 0; }
.gsr-section-title { font-size:10px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint); padding:4px 12px; }
.gsr-item { display:flex; flex-direction:column; padding:8px 12px; cursor:pointer; transition:background .1s; }
.gsr-item:hover { background:var(--bg); }
.gsr-item-title { font-size:13px; font-weight:500; color:var(--text); }
.gsr-item-meta  { font-size:11px; color:var(--text-faint); font-family:var(--font-mono); margin-top:2px; }
.gsr-empty { padding:16px 12px; text-align:center; font-size:13px; color:var(--text-faint); font-style:italic; }
@media(max-width:600px) {
  .global-search-input { width:140px; }
  .global-search-input:focus { width:200px; }
  .global-search-results { width:280px; }
}

/* ── VENCIMIENTOS BADGE ── */
.venc-badge { display:inline-flex; align-items:center; justify-content:center; background:var(--prio-critica); color:#fff; font-size:10px; font-weight:700; border-radius:99px; min-width:18px; height:18px; padding:0 5px; margin-left:5px; vertical-align:middle; font-family:var(--font-mono); }

/* ── VENCIMIENTOS INICIO ── */
.venc-item { display:flex; justify-content:space-between; align-items:center; padding:8px 12px; border:1px solid var(--border); border-radius:var(--radius); margin-bottom:6px; font-size:13px; cursor:pointer; transition:background .12s; }
.venc-item:hover { background:var(--surface); }
.venc-item.overdue { border-color:var(--prio-critica); background:var(--prio-critica-bg); }
.venc-item.soon    { border-color:var(--prio-alta);    background:var(--prio-alta-bg); }
.venc-item-title { font-weight:500; color:var(--text); flex:1; }
.venc-item-date  { font-size:11px; font-family:var(--font-mono); color:var(--text-faint); margin-left:12px; white-space:nowrap; }
.venc-item-date.overdue { color:var(--prio-critica); font-weight:600; }
.venc-item-date.soon    { color:var(--prio-alta);    font-weight:600; }


/* ── ADMIN OVERLAY ── */
.admin-overlay { position:fixed; inset:0; background:var(--bg); z-index:300; overflow-y:auto; display:none; }
.admin-overlay.open { display:block; }
.admin-overlay-header { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:1; }


/* ── ADMIN PANEL REDESIGN ── */
.adm-header { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:10; }
.adm-logo { width:36px; height:36px; background:var(--navy,#1A3A6B); color:#fff; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.adm-body { max-width:960px; margin:0 auto; padding:1.5rem 1.5rem 4rem; }
.adm-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; margin-bottom:1.25rem; }
.adm-section-title { font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:6px; margin-bottom:1rem; }
.adm-section-title i { font-size:16px; color:#1A3A6B; }
.adm-cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; }
.adm-stat-card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:1rem; text-align:center; }
.adm-stat-card .adm-stat-value { font-size:28px; font-weight:700; color:var(--text); line-height:1; margin-bottom:4px; }
.adm-stat-card .adm-stat-label { font-size:11px; color:var(--text-faint); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.06em; }
.adm-stat-card .adm-stat-trend { font-size:11px; margin-top:4px; }
.adm-stat-card.highlight { border-color:#1A3A6B; background:#1A3A6B08; }
.adm-stat-card.highlight .adm-stat-value { color:#1A3A6B; }
.adm-stat-card.danger .adm-stat-value { color:var(--prio-critica); }
.adm-stat-card.ok .adm-stat-value { color:var(--prio-baja); }

/* Actividad semanal mini bar chart */
.adm-week-bars { display:flex; gap:4px; align-items:flex-end; height:60px; margin-top:.5rem; }
.adm-week-bar { flex:1; background:#1A3A6B; border-radius:3px 3px 0 0; min-height:4px; transition:height .3s; position:relative; }
.adm-week-bar:hover::after { content:attr(data-label); position:absolute; top:-22px; left:50%; transform:translateX(-50%); background:var(--text); color:var(--bg); font-size:10px; padding:2px 5px; border-radius:3px; white-space:nowrap; font-family:var(--font-mono); }
.adm-week-labels { display:flex; gap:4px; margin-top:4px; }
.adm-week-label { flex:1; text-align:center; font-size:10px; color:var(--text-faint); font-family:var(--font-mono); }

/* User row */
.adm-user-row { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius); margin-bottom:6px; cursor:pointer; transition:background .1s, border-color .1s; }
.adm-user-row:hover { background:var(--bg); border-color:var(--text-faint); }
.adm-user-row .adm-user-main { flex:1; }
.adm-user-row .adm-user-email { font-size:13px; font-weight:500; color:var(--text); }
.adm-user-row .adm-user-meta { font-size:11px; color:var(--text-faint); font-family:var(--font-mono); margin-top:2px; }
.adm-user-row .adm-user-badges { display:flex; align-items:center; gap:6px; }
.adm-badge-2fa { font-size:10px; background:#dcfce7; color:#16a34a; border:1px solid #bbf7d0; border-radius:99px; padding:2px 7px; font-family:var(--font-mono); }
.adm-badge-no2fa { font-size:10px; background:#fef2f2; color:#dc2626; border:1px solid #fecaca; border-radius:99px; padding:2px 7px; font-family:var(--font-mono); }

/* Session row */
.adm-session-row { display:flex; justify-content:space-between; align-items:center; padding:8px 12px; border:1px solid var(--border); border-radius:var(--radius); margin-bottom:6px; font-size:12px; }

@media(max-width:600px) {
  .adm-cards-grid { grid-template-columns: 1fr 1fr; }
  .adm-body { padding:1rem .75rem 3rem; }
}

/* ── PRINT / PDF ── */
@media print {
  body > * { display: none !important; }
  #piduco-print-area { display: block !important; position: static; background: white; padding: 0; font-family: Arial, sans-serif; font-size: 11pt; color: #1A1916; }
  .pp-title { font-size: 20pt; font-weight: bold; color: #1A3A6B; margin-bottom: 4pt; }
  .pp-subtitle { font-size: 10pt; color: #6B6760; margin-bottom: 16pt; border-bottom: 2px solid #1A3A6B; padding-bottom: 6pt; }
  .pp-section { margin-top: 14pt; margin-bottom: 4pt; }
  .pp-section-title { font-size: 11pt; font-weight: bold; color: white; background: #1A3A6B; padding: 4pt 8pt; margin-bottom: 0; }
  .pp-section-title.crimson { background: #C0392B; }
  .pp-section-title.green   { background: #2E7D32; }
  .pp-section-title.gray    { background: #6B6760; }
  .pp-section-title.orange  { background: #D4700A; }
  .pp-section-title.purple  { background: #7B2D8B; }
  .pp-table { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
  .pp-table th { background: #EEF4FC; color: #1A3A6B; font-weight: bold; padding: 3pt 6pt; border: 1pt solid #DDD9CF; text-align: center; }
  .pp-table th.crimson { background: #FDF1F0; color: #C0392B; }
  .pp-table th.green   { background: #EEF6EE; color: #2E7D32; }
  .pp-table th.orange  { background: #FDF5EC; color: #D4700A; }
  .pp-table td { padding: 3pt 6pt; border: 1pt solid #EAE7DF; vertical-align: middle; }
  .pp-table tr:nth-child(even) td { background: #F5F3EE; }
  .pp-table td.label { font-weight: bold; color: #6B6760; background: #F5F3EE; }
  .pp-table td.total { font-weight: bold; color: #1A3A6B; background: #EEF4FC; }
  .pp-table td.total-r { font-weight: bold; color: #C0392B; background: #FDF1F0; }
  .pp-table td.center { text-align: center; }
  .pp-result { margin-top: 10pt; padding: 8pt 12pt; background: #F0C040; border-left: 4pt solid #1A3A6B; }
  .pp-result-label { font-size: 9pt; color: #6B6760; text-transform: uppercase; letter-spacing: 0.05em; }
  .pp-result-value { font-size: 18pt; font-weight: bold; color: #1A3A6B; }
  .pp-result-sub { font-size: 9pt; color: #6B6760; }
  .pp-status { padding: 6pt 10pt; font-weight: bold; font-size: 12pt; margin-top: 8pt; }
  .pp-status.ok     { background: #EEF6EE; color: #2E7D32; border-left: 4pt solid #2E7D32; }
  .pp-status.warn   { background: #FDF1F0; color: #C0392B; border-left: 4pt solid #C0392B; }
  .pp-status.info   { background: #EEF4FC; color: #1A5C96; border-left: 4pt solid #1A5C96; }
  .pp-config { font-size: 9pt; color: #6B6760; margin-bottom: 8pt; }
  .pp-footer { margin-top: 16pt; padding-top: 6pt; border-top: 1pt solid #DDD9CF; font-size: 8pt; color: #A09D97; font-style: italic; text-align: center; }
  .pp-page-break { page-break-before: always; }
  @page { margin: 1.5cm 2cm; size: A4; }
}

/* ── INICIO PANEL ── */
.inicio-wrap { max-width:640px; margin:0 auto; padding:2rem 1rem; }
.inicio-header { display:flex; align-items:center; gap:1rem; margin-bottom:2rem; }
.inicio-logo { width:52px; height:52px; background:#1A3A6B; color:#fff; font-size:26px; font-weight:700; border-radius:14px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); flex-shrink:0; }
.inicio-title { font-size:22px; font-weight:700; color:var(--text); letter-spacing:-.02em; }
.inicio-subtitle { font-size:12px; color:var(--text-faint); font-family:var(--font-mono); margin-top:2px; }
.inicio-welcome { font-size:15px; color:var(--text-muted); margin-bottom:1.5rem; padding:12px 16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); }
.inicio-user { font-weight:600; color:var(--text); }
.inicio-cards { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:2rem; }
.inicio-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.inicio-card:hover { border-color:var(--text-faint); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.inicio-card-icon { font-size:28px; color:#1A3A6B; margin-bottom:.5rem; }
.inicio-card-title { font-size:14px; font-weight:600; color:var(--text); margin-bottom:.35rem; }
.inicio-card-desc { font-size:12px; color:var(--text-faint); line-height:1.5; margin-bottom:.75rem; font-family:var(--font-mono); }
.inicio-card-action { font-size:12px; color:#1A3A6B; font-weight:600; display:flex; align-items:center; gap:4px; }
.inicio-footer { font-size:11px; color:var(--text-faint); font-family:var(--font-mono); text-align:center; padding-top:1rem; border-top:1px solid var(--border-light); }
@media (max-width:600px) {
  .inicio-cards { grid-template-columns:1fr; }
  .inicio-wrap { padding:1.25rem .75rem; }
}

