/* Tema del panel: barra lateral oscura, superficies suaves y el tablero de inicio. */

:root {
    --ms-ink: #0b1324;
    --ms-ink-2: #131d33;
    --ms-surface: #ffffff;
    --ms-bg: #f4f6fa;
    --ms-border: #e6e9f0;
    --ms-text: #0f172a;
    --ms-muted: #64748b;
    --ms-amber: #f59e0b;
    --ms-amber-deep: #d97706;
    --ms-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px -12px rgba(15, 23, 42, .12);
}

.dark {
    --ms-surface: #121a2b;
    --ms-bg: #0a101d;
    --ms-border: #1f2a40;
    --ms-text: #e8edf6;
    --ms-muted: #8b98b0;
    --ms-shadow: 0 1px 2px rgba(0, 0, 0, .3);
}

/* ---------- Estructura general ---------- */

.fi-body { background: var(--ms-bg); }

.fi-topbar { box-shadow: none; border-bottom: 1px solid var(--ms-border); }

.fi-sidebar { background: var(--ms-ink); border: 0; }
.fi-sidebar-header { background: var(--ms-ink); box-shadow: none; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.fi-sidebar-nav { padding-top: 1.25rem; }
.fi-sidebar-group-label { color: #6b7a96; font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; }
.fi-sidebar-group-btn .fi-icon, .fi-sidebar-group-collapse-btn { color: #6b7a96; }
.fi-sidebar-item-btn { border-radius: .625rem; }
.fi-sidebar-item-btn .fi-sidebar-item-label { color: #c3cce0; font-weight: 500; }
.fi-sidebar-item-btn .fi-icon { color: #7c8aa8; }
.fi-sidebar-item-btn:hover, .fi-sidebar-item-btn:focus-visible { background: rgba(255, 255, 255, .06); }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background: linear-gradient(90deg, rgba(245, 158, 11, .22), rgba(245, 158, 11, .06)); box-shadow: inset 3px 0 0 var(--ms-amber); }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label { color: #fff; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-icon { color: var(--ms-amber); }
.fi-sidebar-header .fi-icon-btn { color: #9aa7c2; }

.ms-brand { display: flex; align-items: center; gap: .625rem; font-weight: 700; font-size: 1.0625rem; letter-spacing: -.01em; color: #fff; }
.ms-brand-mark { display: grid; place-items: center; width: 2.125rem; height: 2.125rem; border-radius: .625rem; background: linear-gradient(135deg, #fbbf24, #f97316); color: #fff; box-shadow: 0 6px 16px -6px rgba(249, 115, 22, .7); }
.ms-brand-mark svg { width: 1.25rem; height: 1.25rem; }
.fi-simple-layout .ms-brand, .fi-topbar .ms-brand { color: var(--ms-text); }

.fi-section, .fi-ta-ctn, .fi-wi-stats-overview-stat { border-radius: 1rem; box-shadow: var(--ms-shadow); }
.fi-header-heading { letter-spacing: -.02em; }
.fi-btn { border-radius: .625rem; }

/* ---------- Piezas comunes ---------- */

.ms-card { background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: 1rem; box-shadow: var(--ms-shadow); padding: 1.25rem; color: var(--ms-text); }
.ms-ico { width: 1.375rem; height: 1.375rem; }
.ms-ico-sm { width: 1.125rem; height: 1.125rem; flex: none; }

.ms-dash { display: grid; gap: 1.25rem; }
.fi-page:has(.ms-dash) .fi-header { display: none; }

/* Encabezado */
.ms-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-end; justify-content: space-between; padding: 1.75rem; border-radius: 1.25rem; color: #fff; background: radial-gradient(60rem 22rem at 100% -40%, rgba(251, 191, 36, .45), transparent 60%), linear-gradient(135deg, #0b1324 0%, #16233f 60%, #1d2d4f 100%); }
.ms-hero::after { content: ""; position: absolute; right: -4rem; top: -6rem; width: 16rem; height: 16rem; border-radius: 50%; background: radial-gradient(circle, rgba(253, 224, 71, .55), rgba(249, 115, 22, .12) 55%, transparent 70%); pointer-events: none; }
.ms-hero > * { position: relative; z-index: 1; }
.ms-hero-date { font-size: .8125rem; color: #fcd34d; font-weight: 600; letter-spacing: .02em; }
.ms-hero h1 { font-size: 1.875rem; line-height: 1.15; font-weight: 700; letter-spacing: -.025em; margin: .25rem 0 .5rem; }
.ms-hero-sub { color: #c7d2e6; max-width: 38rem; font-size: .9375rem; }
.ms-hero-sub strong { color: #fff; font-weight: 600; }
.ms-hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

.ms-btn { display: inline-flex; align-items: center; gap: .4rem; padding: .575rem .9rem; border-radius: .75rem; font-size: .875rem; font-weight: 600; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); backdrop-filter: blur(6px); transition: background .15s, transform .15s; }
.ms-btn:hover { background: rgba(255, 255, 255, .18); transform: translateY(-1px); }
.ms-btn-primary { background: linear-gradient(135deg, #fbbf24, #f97316); border-color: transparent; color: #1c1205; box-shadow: 0 10px 24px -10px rgba(249, 115, 22, .9); }
.ms-btn-primary:hover { background: linear-gradient(135deg, #fcd34d, #fb923c); }

/* Indicadores */
.ms-kpis { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ms-kpi { display: grid; gap: .2rem; transition: transform .15s, box-shadow .15s; }
.ms-kpi:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -18px rgba(15, 23, 42, .3); }
.ms-kpi-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; margin-bottom: .6rem; }
.ms-kpi-icon.is-amber { background: #fef3c7; color: #b45309; }
.ms-kpi-icon.is-rose { background: #ffe4e6; color: #be123c; }
.ms-kpi-icon.is-sky { background: #e0f2fe; color: #0369a1; }
.ms-kpi-icon.is-emerald { background: #d1fae5; color: #047857; }
.dark .ms-kpi-icon.is-amber { background: rgba(245, 158, 11, .16); color: #fbbf24; }
.dark .ms-kpi-icon.is-rose { background: rgba(244, 63, 94, .16); color: #fb7185; }
.dark .ms-kpi-icon.is-sky { background: rgba(14, 165, 233, .16); color: #38bdf8; }
.dark .ms-kpi-icon.is-emerald { background: rgba(16, 185, 129, .16); color: #34d399; }
.ms-kpi-label { font-size: .8125rem; color: var(--ms-muted); font-weight: 500; }
.ms-kpi-value { font-size: 1.75rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.ms-kpi-foot { font-size: .8125rem; color: var(--ms-muted); }
.ms-delta { font-weight: 700; }
.ms-delta.is-up { color: #059669; }
.ms-delta.is-down { color: #e11d48; }

/* Grillas */
.ms-grid { display: grid; gap: 1.25rem; }
.ms-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ms-grid-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }

.ms-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.ms-card-head h2 { font-size: 1rem; font-weight: 700; letter-spacing: -.01em; }
.ms-card-head p { font-size: .8125rem; color: var(--ms-muted); }
.ms-link { font-size: .8125rem; font-weight: 600; color: var(--ms-amber-deep); white-space: nowrap; }
.ms-link:hover { text-decoration: underline; }

/* Barras */
.ms-bars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: .75rem; height: 15rem; align-items: end; }
.ms-bar-col { display: grid; grid-template-rows: auto 1fr auto; gap: .35rem; height: 100%; text-align: center; }
.ms-bar-track { display: flex; align-items: flex-end; justify-content: center; border-radius: .625rem; background: repeating-linear-gradient(to top, transparent 0 calc(25% - 1px), var(--ms-border) calc(25% - 1px) 25%); }
.ms-bar { width: min(100%, 3.25rem); border-radius: .5rem .5rem .25rem .25rem; background: linear-gradient(180deg, #cbd5e1, #e2e8f0); transition: height .4s ease; }
.dark .ms-bar { background: linear-gradient(180deg, #334155, #1e293b); }
.ms-bar.is-current { background: linear-gradient(180deg, #fbbf24, #f97316); box-shadow: 0 10px 20px -10px rgba(249, 115, 22, .8); }
.ms-bar-value { font-size: .75rem; font-weight: 700; color: var(--ms-text); min-height: 1rem; }
.ms-bar-label { font-size: .75rem; color: var(--ms-muted); }

/* Embudo */
.ms-funnel { display: grid; gap: .9rem; }
.ms-funnel-row { display: flex; justify-content: space-between; font-size: .875rem; margin-bottom: .3rem; }
.ms-funnel-row span { color: var(--ms-muted); }
.ms-funnel-track { height: .5rem; border-radius: 1rem; background: var(--ms-bg); overflow: hidden; }
.ms-funnel-track div { height: 100%; border-radius: 1rem; background: linear-gradient(90deg, #fbbf24, #f97316); }

/* Listas */
.ms-list { display: grid; }
.ms-list li { display: flex; align-items: center; gap: .875rem; padding: .7rem 0; border-top: 1px solid var(--ms-border); }
.ms-list li:first-child { border-top: 0; padding-top: 0; }
.ms-list-main { display: grid; min-width: 0; flex: 1; }
.ms-list-main strong { font-size: .9rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-list-main small { font-size: .8rem; color: var(--ms-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
a.ms-list-main:hover strong { color: var(--ms-amber-deep); }
.ms-empty { color: var(--ms-muted); font-size: .875rem; padding: 1rem 0; }

.ms-datechip { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border-radius: .75rem; background: var(--ms-bg); border: 1px solid var(--ms-border); line-height: 1; }
.ms-datechip small { font-size: .5625rem; font-weight: 700; color: var(--ms-muted); letter-spacing: .06em; margin-top: .3rem; }
.ms-datechip b { font-size: 1.0625rem; margin-bottom: .3rem; }
.ms-datechip.is-today { background: linear-gradient(135deg, #fbbf24, #f97316); border-color: transparent; color: #1c1205; }
.ms-datechip.is-today small { color: #1c1205; }

.ms-avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: var(--ms-ink); color: #fcd34d; font-weight: 700; font-size: .9rem; }
.dark .ms-avatar { background: #1f2a40; }
.ms-amount { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.ms-iconbtn { display: grid; place-items: center; width: 2.125rem; height: 2.125rem; flex: none; border-radius: .625rem; color: #059669; background: #d1fae5; }
.ms-iconbtn:hover { background: #a7f3d0; }
.dark .ms-iconbtn { background: rgba(16, 185, 129, .16); color: #34d399; }
.ms-tag { font-weight: 600; }
.ms-tag.is-warn { color: #c2410c; }
.ms-dot { width: .625rem; height: .625rem; flex: none; border-radius: 50%; }
.ms-dot.is-danger { background: #f43f5e; box-shadow: 0 0 0 4px rgba(244, 63, 94, .15); }
.ms-dot.is-warn { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245, 158, 11, .15); }
.ms-dot.is-info { background: #0ea5e9; box-shadow: 0 0 0 4px rgba(14, 165, 233, .15); }

.ms-notes { display: grid; gap: .75rem; }
.ms-note { display: block; padding: .875rem 1rem; border-radius: .75rem; background: #fffbeb; border: 1px solid #fde68a; color: #422006; }
.ms-note strong { font-size: .9rem; }
.ms-note p { font-size: .8125rem; margin-top: .15rem; color: #713f12; }
.dark .ms-note { background: rgba(245, 158, 11, .08); border-color: rgba(245, 158, 11, .25); color: #fde68a; }
.dark .ms-note p { color: #e5c07b; }

/* ---------- Calendario ---------- */

.ms-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .8125rem; color: var(--ms-muted); }
.ms-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.ms-legend i { width: .625rem; height: .625rem; border-radius: 50%; }
.ms-calendar { --fc-border-color: var(--ms-border); --fc-today-bg-color: rgba(245, 158, 11, .08); --fc-page-bg-color: var(--ms-surface); --fc-neutral-bg-color: var(--ms-bg); --fc-list-event-hover-bg-color: var(--ms-bg); --fc-button-bg-color: var(--ms-ink); --fc-button-border-color: var(--ms-ink); --fc-button-hover-bg-color: #1d2d4f; --fc-button-hover-border-color: #1d2d4f; --fc-button-active-bg-color: var(--ms-amber-deep); --fc-button-active-border-color: var(--ms-amber-deep); }
.ms-calendar .fc-toolbar-title { font-size: 1.125rem; font-weight: 700; }
.ms-calendar .fc-toolbar-title::first-letter { text-transform: uppercase; }
.ms-calendar .fc-button { border-radius: .625rem; font-size: .8125rem; font-weight: 600; text-transform: capitalize; padding: .45rem .75rem; box-shadow: none !important; }
.ms-calendar .fc-col-header-cell-cushion { font-size: .75rem; font-weight: 600; color: var(--ms-muted); text-transform: uppercase; padding: .6rem 0; }
.ms-calendar .fc-daygrid-day-number { font-size: .8125rem; padding: .4rem .5rem; }
.ms-calendar .fc-event { border-radius: .4rem; padding: .1rem .3rem; font-size: .75rem; cursor: pointer; border: 0; }
.ms-calendar .fc-event.is-done { opacity: .55; text-decoration: line-through; }
.ms-calendar .fc-daygrid-day { cursor: pointer; }

/* ---------- Pantallas chicas ---------- */

@media (max-width: 1100px) {
    .ms-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ms-grid-2, .ms-grid-2-1 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .ms-hero { padding: 1.25rem; }
    .ms-hero h1 { font-size: 1.5rem; }
    .ms-hero-actions { width: 100%; }
    .ms-btn { flex: 1 1 calc(50% - .5rem); justify-content: center; }
    .ms-kpis { gap: .75rem; }
    .ms-kpi-value { font-size: 1.375rem; }
    .ms-card { padding: 1rem; }
    .ms-bars { height: 11rem; gap: .4rem; }
    .ms-calendar .fc-toolbar { flex-direction: column; gap: .5rem; }
}
