/* ============================================================
   Componentes .dsmk-* — copia local del pack mkmedico-ui (a_brainClaude/05_design-system)
   adaptada al tema oscuro: los fondos #fff del pack pasan a var(--dsmk-surface).
   Íconos: Material Symbols Rounded.
   ============================================================ */

/* ── Buttons ── */
.dsmk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--dsmk-font-body);font-size:var(--dsmk-fs-sm);font-weight:600;padding:11px 22px;border-radius:var(--dsmk-r-pill);border:1px solid transparent;cursor:pointer;transition:all var(--dsmk-t-base);text-decoration:none;line-height:1;white-space:nowrap;background:none}
.dsmk-btn--primary{background:var(--dsmk-brand-grad);color:var(--dsmk-on-brand)}
.dsmk-btn--primary:hover{background:var(--dsmk-brand-grad);filter:brightness(1.1);color:var(--dsmk-on-brand);transform:translateY(-1px);box-shadow:var(--dsmk-sh-glow)}
.dsmk-btn--grad{background:var(--dsmk-brand-grad);color:var(--dsmk-on-brand)}
.dsmk-btn--grad:hover{color:var(--dsmk-on-brand);transform:translateY(-1px);box-shadow:var(--dsmk-sh-glow)}
.dsmk-btn--secondary{background:var(--dsmk-ink-50);border-color:var(--dsmk-ink-200);color:var(--dsmk-ink-800)}
.dsmk-btn--secondary:hover{border-color:var(--dsmk-ink-400);color:var(--dsmk-ink-900);background:var(--dsmk-ink-100)}
.dsmk-btn--ghost{background:transparent;color:var(--dsmk-ink-600)}
.dsmk-btn--ghost:hover{background:var(--dsmk-ink-100);color:var(--dsmk-ink-900)}
.dsmk-btn--danger{background:var(--dsmk-error-50);color:var(--dsmk-error-600);border-color:rgba(255,90,77,.3)}
.dsmk-btn--danger:hover{background:var(--dsmk-error-500);color:#fff}
.dsmk-btn--success{background:var(--dsmk-success-50);color:var(--dsmk-success-600);border-color:rgba(34,197,94,.3)}
.dsmk-btn--success:hover{background:var(--dsmk-success-500);color:#04140a}
.dsmk-btn--sm{padding:7px 14px;font-size:var(--dsmk-fs-xs)}
.dsmk-btn--lg{padding:15px 30px;font-size:var(--dsmk-fs-md)}
.dsmk-btn--block{width:100%}
.dsmk-btn[disabled],.dsmk-btn.is-disabled{opacity:.45;pointer-events:none}
.dsmk-btn .material-symbols-rounded{font-size:1.125rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ── Forms ── */
.dsmk-input,.dsmk-textarea,.dsmk-select{width:100%;font-family:var(--dsmk-font-body);font-size:var(--dsmk-fs-base);color:var(--dsmk-ink-900);background:var(--dsmk-ink-50);border:1px solid var(--dsmk-ink-200);border-radius:var(--dsmk-r-md);padding:11px 14px;transition:border-color var(--dsmk-t-fast),box-shadow var(--dsmk-t-fast);outline:none}
.dsmk-select option{background:var(--dsmk-surface);color:var(--dsmk-ink-900)}
.dsmk-input:focus,.dsmk-textarea:focus,.dsmk-select:focus{border-color:var(--dsmk-brand-500);box-shadow:var(--dsmk-sh-focus)}
.dsmk-input::placeholder,.dsmk-textarea::placeholder{color:var(--dsmk-ink-400)}
.dsmk-input[aria-invalid="true"]{border-color:var(--dsmk-error-600)}
.dsmk-input[type="datetime-local"]{color-scheme:inherit}
.dsmk-label{display:block;font-size:var(--dsmk-fs-sm);font-weight:600;color:var(--dsmk-ink-800);margin-bottom:6px}
.dsmk-help{margin-top:5px;font-size:0.75rem;color:var(--dsmk-ink-500)}
.dsmk-help.err{color:var(--dsmk-error-600)}
.dsmk-field{margin-bottom:16px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:640px){.row2,.row3{grid-template-columns:1fr}}
.dsmk-check{display:inline-flex;align-items:flex-start;gap:10px;font-size:0.875rem;color:var(--dsmk-ink-700);cursor:pointer;line-height:1.45}
.dsmk-check input{width:17px;height:17px;accent-color:var(--dsmk-brand-500);flex:none;margin-top:1px}
.dsmk-check.is-disabled{opacity:.5;cursor:not-allowed}

/* ── Chips / Tags / Badges ── */
.dsmk-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--dsmk-ink-50);border:1px solid var(--dsmk-ink-200);border-radius:var(--dsmk-r-pill);font-size:var(--dsmk-fs-sm);color:var(--dsmk-ink-600);font-weight:500;white-space:nowrap;cursor:pointer;transition:all var(--dsmk-t-fast)}
.dsmk-chip:hover{border-color:var(--dsmk-ink-400);color:var(--dsmk-ink-900)}
.dsmk-chip.is-active{background:var(--dsmk-ink-900);color:var(--dsmk-bg);border-color:var(--dsmk-ink-900)}
.dsmk-chip .n{font-family:var(--dsmk-font-mono);font-size:0.6875rem;opacity:.8}
.dsmk-tag{display:inline-block;padding:4px 10px;background:var(--dsmk-ink-50);border:1px solid var(--dsmk-ink-100);border-radius:var(--dsmk-r-pill);font-size:var(--dsmk-fs-xs);color:var(--dsmk-ink-600);font-weight:500}
.dsmk-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:0.6562rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:var(--dsmk-r-sm);white-space:nowrap}
.dsmk-badge .material-symbols-rounded{font-size:0.8125rem}
.dsmk-badge--dark{background:var(--dsmk-ink-100);color:var(--dsmk-ink-700)}
.dsmk-badge--brand{background:var(--dsmk-brand-50);color:var(--dsmk-brand-700)}
.dsmk-badge--success{background:var(--dsmk-success-50);color:var(--dsmk-success-600)}
.dsmk-badge--amber{background:var(--dsmk-amber-50);color:var(--dsmk-amber-600)}
.dsmk-badge--error{background:var(--dsmk-error-50);color:var(--dsmk-error-600)}

/* ── Cards (sin bordes duros: hairline + superficie) ── */
.dsmk-card{background:var(--dsmk-surface);border:1px solid var(--dsmk-ink-100);border-radius:var(--dsmk-r-lg);padding:var(--dsmk-sp-6);transition:border-color var(--dsmk-t-base),box-shadow var(--dsmk-t-base),transform var(--dsmk-t-base)}
a.dsmk-card:hover,.dsmk-card.is-link:hover{border-color:var(--dsmk-ink-200);box-shadow:var(--dsmk-sh-md)}
.dsmk-card--featured{border-color:var(--dsmk-brand-100);background:linear-gradient(180deg,rgba(227,12,201,.10) 0%,var(--dsmk-surface) 55%)}
.dsmk-card--flush{padding:0;overflow:hidden}
.dsmk-card h3{font-size:var(--dsmk-fs-lg);font-weight:700}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}

/* ── Tables ── */
.dsmk-table-wrap{width:100%;overflow-x:auto;border-radius:var(--dsmk-r-md);border:1px solid var(--dsmk-ink-100)}
.dsmk-table{width:100%;border-collapse:collapse;background:var(--dsmk-surface);font-size:var(--dsmk-fs-sm);color:var(--dsmk-ink-800)}
.dsmk-table th,.dsmk-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--dsmk-ink-100);vertical-align:middle;overflow-wrap:break-word}
.dsmk-table thead th{background:var(--dsmk-ink-50);font-family:var(--dsmk-font-mono);font-size:0.6562rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dsmk-ink-500);white-space:nowrap}
.dsmk-table tbody tr:last-child td{border-bottom:0}
.dsmk-table tbody tr:hover td{background:var(--dsmk-ink-50)}
.dsmk-table td.num,.dsmk-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--dsmk-font-mono);font-size:0.7812rem;white-space:nowrap}
.dsmk-table td.mono{font-family:var(--dsmk-font-mono);font-size:0.75rem;color:var(--dsmk-ink-700)}
.dsmk-table td.actions{white-space:nowrap;text-align:right}
.dsmk-table .row-muted td{color:var(--dsmk-ink-500)}
.dsmk-table--compact th,.dsmk-table--compact td{padding:7px 10px}
.dsmk-table .sub{display:block;font-size:0.75rem;color:var(--dsmk-ink-500)}

/* ── Alerts / toast ── */
.dsmk-alert{border:1px solid;border-radius:var(--dsmk-r-md);padding:13px 16px;display:flex;gap:12px;align-items:flex-start;font-size:0.875rem;line-height:1.5;color:var(--dsmk-ink-800)}
.dsmk-alert .material-symbols-rounded{font-size:1.25rem;flex:none;margin-top:1px}
.dsmk-alert--info{border-color:var(--dsmk-brand-100);background:var(--dsmk-brand-50)}
.dsmk-alert--info .material-symbols-rounded{color:var(--dsmk-brand-500)}
.dsmk-alert--success{border-color:rgba(34,197,94,.3);background:var(--dsmk-success-50)}
.dsmk-alert--success .material-symbols-rounded{color:var(--dsmk-success-600)}
.dsmk-alert--error{border-color:rgba(255,90,77,.32);background:var(--dsmk-error-50)}
.dsmk-alert--error .material-symbols-rounded{color:var(--dsmk-error-600)}
.dsmk-alert--amber{border-color:rgba(245,158,11,.3);background:var(--dsmk-amber-50)}
.dsmk-alert--amber .material-symbols-rounded{color:var(--dsmk-amber-600)}
.flash-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}

/* ── Breadcrumbs ── */
.dsmk-crumbs{display:flex;gap:8px;font-size:var(--dsmk-fs-sm);color:var(--dsmk-ink-500);align-items:center;flex-wrap:wrap}
.dsmk-crumbs a{color:inherit}
.dsmk-crumbs a:hover{color:var(--dsmk-brand-500)}
.dsmk-crumbs .current{color:var(--dsmk-ink-900);font-weight:600}

/* ── App shell · Login split ── */
.dsmk-login-split{display:grid;grid-template-columns:1fr minmax(380px,480px);min-height:100vh;background:var(--dsmk-bg)}
.dsmk-login-hero{position:relative;overflow:hidden;color:#fff;min-height:100%;background:var(--dsmk-bg)}
.dsmk-login-hero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:56px 52px;z-index:2}
.dsmk-login-hero-eyebrow{font-family:var(--dsmk-font-mono);font-size:0.6562rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dsmk-brand-500);margin-bottom:14px;font-weight:600}
.dsmk-login-hero-title{font-size:clamp(2.125rem,4vw,3.375rem);font-weight:700;line-height:1.04;letter-spacing:-.025em;margin:0 0 16px;color:#fff}
.dsmk-login-hero-sub{font-size:var(--dsmk-fs-md);color:var(--dsmk-ink-600);max-width:44ch;line-height:var(--dsmk-lh-snug)}
.dsmk-login-panel{background:linear-gradient(180deg,var(--dsmk-bg-2),var(--dsmk-bg));display:flex;flex-direction:column;justify-content:center;padding:48px 44px;position:relative;z-index:2}
.dsmk-login-panel-inner{width:100%;max-width:350px;margin:0 auto}
.dsmk-login-logo{margin-bottom:28px;display:flex;align-items:center;gap:10px}
.dsmk-login-logo b{font-size:1rem;font-weight:700;color:var(--dsmk-ink-900)}
.dsmk-login-panel h1{font-size:var(--dsmk-fs-2xl);font-weight:700;margin:0 0 6px}
.dsmk-login-sub{font-size:var(--dsmk-fs-sm);color:var(--dsmk-ink-500);margin:0 0 24px;line-height:var(--dsmk-lh-snug)}
.dsmk-login-foot{margin-top:24px;text-align:center;font-size:var(--dsmk-fs-sm);color:var(--dsmk-ink-500)}
@media(max-width:860px){.dsmk-login-split{grid-template-columns:1fr}.dsmk-login-hero{min-height:240px}.dsmk-login-hero-content{padding:28px}.dsmk-login-panel{padding:32px 22px}}

/* ── App shell · Topnav (reemplaza al sidebar; alumno) ── */
.dsmk-topnav{display:flex;align-items:center;gap:24px;height:64px;padding:0 24px;background:var(--lu-glass);backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--dsmk-ink-100);position:sticky;top:0;z-index:50}
.dsmk-topnav-brand{display:flex;align-items:center;gap:10px;font-size:0.9375rem;font-weight:700;color:var(--dsmk-ink-900);flex:none}
.dsmk-topnav-brand:hover{color:var(--dsmk-ink-900);opacity:.85}
.brand-dot{width:12px;height:12px;border-radius:4px;background:var(--dsmk-brand-grad);flex:none;box-shadow:0 0 14px rgba(227,12,201,.55)}
.dsmk-topnav-links{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.dsmk-topnav-link{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:var(--dsmk-r-md);font-size:0.8438rem;font-weight:500;color:var(--dsmk-ink-600);white-space:nowrap;transition:all var(--dsmk-t-fast)}
.dsmk-topnav-link:hover{background:var(--dsmk-ink-100);color:var(--dsmk-ink-900)}
.dsmk-topnav-link.is-active{color:var(--dsmk-brand-700);background:var(--dsmk-brand-50);font-weight:600}
.dsmk-topnav-link .material-symbols-rounded{font-size:1.125rem}
.dsmk-topnav-actions{display:flex;align-items:center;gap:6px;flex:none}
.dsmk-topnav-user{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;padding:0 8px}
.dsmk-topnav-user b{font-size:0.8125rem;color:var(--dsmk-ink-900);font-weight:600}
.dsmk-topnav-user small{font-family:var(--dsmk-font-mono);font-size:0.5938rem;letter-spacing:.08em;color:var(--dsmk-ink-500);text-transform:uppercase;font-weight:600;margin-top:2px}
.dsmk-topnav-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--dsmk-r-sm);color:var(--dsmk-ink-700);background:none;border:0;cursor:pointer;transition:all var(--dsmk-t-fast)}
.dsmk-topnav-icon:hover{background:var(--dsmk-ink-100);color:var(--dsmk-ink-900)}
@media(max-width:760px){.dsmk-topnav{gap:10px;padding:0 14px}.dsmk-topnav-user{display:none}.dsmk-topnav-link span.lbl{display:none}}

/* ── App shell · Sidebar (admin) ── */
.dsmk-sidebar{width:var(--dsmk-sidebar-w);background:var(--dsmk-bg-2);border-right:1px solid var(--dsmk-ink-100);display:flex;flex-direction:column;overflow-y:auto;padding:16px 12px 24px}
.dsmk-sidebar-brand{display:flex;align-items:center;gap:10px;padding:10px 12px 18px;font-size:0.9375rem;font-weight:700;color:var(--dsmk-ink-900);margin-bottom:8px}
.dsmk-sidebar-section{margin-bottom:14px}
.dsmk-sidebar-section-label{display:block;padding:8px 12px 4px;font-family:var(--dsmk-font-mono);font-size:0.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dsmk-ink-400);font-weight:700}
.dsmk-nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--dsmk-r-sm);font-size:0.8438rem;font-weight:500;color:var(--dsmk-ink-700);transition:all var(--dsmk-t-fast);position:relative}
.dsmk-nav-link:hover{background:var(--dsmk-ink-100);color:var(--dsmk-ink-900)}
.dsmk-nav-link.is-active{background:var(--dsmk-brand-50);color:var(--dsmk-brand-700);font-weight:600}
.dsmk-nav-link.is-active::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--dsmk-brand-500)}
.dsmk-nav-link .material-symbols-rounded{font-size:1.1875rem;color:var(--dsmk-ink-500)}
.dsmk-nav-link.is-active .material-symbols-rounded{color:var(--dsmk-brand-500)}
.dsmk-nav-count{margin-left:auto;font-family:var(--dsmk-font-mono);font-size:0.6875rem;font-weight:700;background:var(--dsmk-amber-50);color:var(--dsmk-amber-600);padding:2px 8px;border-radius:var(--dsmk-r-pill)}
.dsmk-nav-sublink{padding-left:40px;font-size:0.7812rem;color:var(--dsmk-ink-600)}
.dsmk-nav-sublink.is-active::before{display:none}
.dsmk-sidebar-select select{width:100%;padding:9px 12px;font-family:inherit;font-size:0.8125rem;color:var(--dsmk-ink-800);background:var(--dsmk-ink-50);border:1px solid var(--dsmk-ink-200);border-radius:var(--dsmk-r-sm)}

/* ── Footer (dominio visible en toda vista) ── */
.dsmk-footer{padding:28px var(--dsmk-container-pad) 36px;color:var(--dsmk-ink-500);font-size:0.7812rem}
.dsmk-footer .ft-in{max-width:var(--dsmk-container);margin:0 auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.dsmk-footer a{color:var(--dsmk-ink-500)}
.dsmk-footer a:hover{color:var(--dsmk-ink-900)}
.dsmk-footer .dom{font-family:var(--dsmk-font-mono);letter-spacing:.06em;color:var(--dsmk-ink-600)}
.dsmk-footer nav{display:flex;gap:18px;flex-wrap:wrap}
