:root {
  color-scheme: light;
  --navy: #102b44;
  --navy-2: #183b59;
  --blue: #1769aa;
  --blue-bright: #2495df;
  --blue-soft: #e8f3fc;
  --ink: #172b3c;
  --muted: #718294;
  --line: #e2e9ef;
  --canvas: #f3f6f9;
  --white: #fff;
  --brand-primary: #238252;
  --brand-deep: #153a2a;
  --brand-soft: #edf6ea;
  --green: #2b9b6b;
  --green-dark: #14734c;
  --yellow: #e1aa2e;
  --orange: #ee8b2d;
  --red: #d74a4a;
  --red-dark: #b92735;
  --shadow: 0 8px 28px rgba(22, 49, 72, .065);
  font-family: "Segoe UI", "Aptos", Arial, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--canvas); color: var(--ink); min-width: 320px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; }

.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 10; display: flex; flex-direction: column;
  width: 248px; padding: 25px 16px 20px; color: #eaf3fa;
  background: linear-gradient(168deg, #102b44 0%, #0d2439 72%, #0a1d2f 100%);
}
.brand { display: flex; align-items: center; gap: 11px; min-height: 50px; padding: 0 9px; color: inherit; text-decoration: none; }
.brand img { width: 38px; height: 38px; }
.brand strong { display: block; font-size: 13px; letter-spacing: .105em; }
.brand strong span { color: #57b4ed; }
.brand small { display: block; margin-top: 5px; color: #91a8bb; font-size: 9px; letter-spacing: .14em; }
.nav-caption { margin: 44px 10px 12px; color: #7890a4; font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.main-nav { display: grid; gap: 6px; }
.nav-item { display: flex; align-items: center; gap: 12px; width: 100%; border: 0; border-radius: 8px; padding: 12px 11px; text-align: left; color: #b7c7d5; background: transparent; font-size: 12px; transition: color .18s ease, background .18s ease, transform .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.075); }
.nav-item.is-active { color: #fff; background: linear-gradient(90deg, #1765a0, #1b7bbd); box-shadow: 0 6px 16px rgba(7, 103, 168, .22); }
.nav-icon { width: 17px; color: #86b8d8; font-size: 17px; line-height: 1; text-align: center; }
.nav-item.is-active .nav-icon { color: #fff; }
.nav-count { margin-left: auto; min-width: 22px; border-radius: 20px; padding: 3px 6px; color: #c8e9ff; background: rgba(255,255,255,.13); text-align: center; font-size: 10px; }
.sidebar-bottom { margin-top: auto; }
.sidebar-status { display: flex; align-items: center; gap: 10px; margin: 0 5px 22px; border: 1px solid rgba(174,206,228,.14); border-radius: 9px; padding: 12px 10px; background: rgba(255,255,255,.035); }
.sidebar-status strong, .sidebar-status small { display: block; }
.sidebar-status strong { font-size: 9px; letter-spacing: .12em; }
.sidebar-status small { margin-top: 5px; color: #9fb2c2; font-size: 10px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #58d09a; box-shadow: 0 0 0 4px rgba(88,208,154,.13); }
.sidebar-foot { padding: 13px 7px 0; border-top: 1px solid rgba(255,255,255,.1); color: #89a0b2; font-size: 8px; line-height: 1.8; letter-spacing: .14em; }
.sidebar-foot span { color: #c1d0db; font-size: 9px; letter-spacing: 0; }

.workspace { min-height: 100vh; margin-left: 248px; transition: margin-left .24s ease; }
.topbar { display: flex; align-items: center; justify-content: space-between; min-height: 96px; padding: 19px 36px; border-bottom: 1px solid #e8edf1; background: #fff; }
.topbar-heading { display: flex; align-items: center; gap: 13px; }
.topbar-title-group { min-width: 0; }
.eyebrow { color: #8495a4; font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.topbar h1 { margin: 6px 0 0; color: var(--navy); font-size: 23px; font-weight: 650; letter-spacing: -.035em; }
.sidebar-toggle { position: fixed; top: 50%; left: 248px; z-index: 12; display: grid; width: 25px; height: 56px; place-items: center; transform: translateY(-50%); border: 1px solid rgba(198,225,192,.42); border-left: 0; border-radius: 0 9px 9px 0; color: #edf8e5; background: #267448; box-shadow: 4px 5px 14px rgba(18,54,34,.2); transition: left .24s ease,background .18s ease,box-shadow .18s ease; }
.sidebar-toggle:hover { background: #328d56; box-shadow: 5px 6px 17px rgba(18,54,34,.28); }
.sidebar-toggle:focus-visible { outline: 3px solid #b3e66a; outline-offset: 2px; }
.sidebar-toggle-icon { font-size: 27px; font-weight: 350; line-height: 1; }
.app-shell.sidebar-collapsed .sidebar-toggle { left: 0; }
.sidebar { transition: transform .24s ease; }
.app-shell.sidebar-collapsed .sidebar { transform: translateX(-100%); }
.app-shell.sidebar-collapsed .workspace { margin-left: 0; }
.topbar-tools { display: flex; align-items: center; gap: 13px; }
.year-control, .filter-control { display: grid; gap: 4px; }
.year-control span, .filter-control span { color: #8998a6; font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.year-control select, .filter-control select { max-width: 180px; border: 0; outline: none; color: var(--navy); background: transparent; font-size: 12px; font-weight: 650; }
.year-control { border-right: 1px solid var(--line); padding-right: 16px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid transparent; border-radius: 7px; padding: 9px 12px; font-size: 11px; font-weight: 650; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-quiet { border-color: #dce7ef; color: #34536c; background: #f8fbfd; }
.button-primary { color: #fff; background: var(--blue); }
.button-primary:hover { background: #105b97; }
.button-outline { border-color: #cfdae3; color: #42596d; background: #fff; }
.avatar { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #1a5d8b; font-size: 12px; font-weight: 700; }
.topbar-user { display: flex; align-items: center; gap: 9px; }
.topbar-user > span { max-width: 175px; overflow: hidden; color: #667c8e; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.logout-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 31px; border: 1px solid #e0e8ed; border-radius: 7px; padding: 0 9px; color: #516d81; background: #fff; font-size: 9px; font-weight: 650; white-space: nowrap; transition: .18s ease; }
.logout-button:hover { border-color: #b6d4e6; color: var(--blue); background: #f1f8fc; }
.logout-button span:first-child { font-size: 14px; }
.filterbar { display: flex; align-items: center; gap: 15px; min-height: 61px; padding: 10px 36px; border-bottom: 1px solid #e6edf2; background: #fff; }
.search-box { display: flex; align-items: center; gap: 8px; flex: 1 1 280px; min-width: 190px; max-width: 420px; color: #8998a5; }
.search-box > span { font-size: 22px; line-height: .7; }
.search-box input { width: 100%; min-width: 80px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 11px; }
.search-box input::placeholder { color: #99a6b0; }
.search-box kbd { flex: 0 0 auto; border: 1px solid #e5ebef; border-radius: 4px; padding: 3px 5px; color: #94a2ad; font: 8px "Segoe UI", sans-serif; }
.filter-control { min-width: 85px; padding-left: 12px; border-left: 1px solid #edf1f4; }
.filter-control select { width: 100%; max-width: 154px; color: #546778; font-size: 10px; font-weight: 550; }
.activity-filter { min-width: 120px; }
.content { padding: 25px 36px 27px; animation: fade-in .22s ease; }
@keyframes fade-in { from { opacity: .55; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
.page-footer { display: flex; justify-content: space-between; padding: 0 36px 17px; color: #9aa8b3; font-size: 8px; font-weight: 700; letter-spacing: .12em; }

.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 3px 0 18px; }
.section-heading h2 { margin: 0; color: var(--navy); font-size: 16px; letter-spacing: -.02em; }
.section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.section-heading .heading-actions { display: flex; gap: 8px; }
.eyebrow-blue { margin-bottom: 6px; color: var(--blue); font-size: 8px; font-weight: 750; letter-spacing: .14em; }
.panel { border: 1px solid #e7edf2; border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; }
.panel-head h3 { margin: 0; color: var(--navy); font-size: 12px; }
.panel-head p { margin: 5px 0 0; color: #8b99a5; font-size: 9px; }
.panel-link { border: 0; color: var(--blue); background: none; font-size: 10px; font-weight: 700; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kpi-card { position: relative; overflow: hidden; min-height: 103px; border: 1px solid #e7edf2; border-radius: 10px; padding: 15px 15px 13px; background: #fff; box-shadow: var(--shadow); }
.kpi-card::after { position: absolute; right: -17px; bottom: -27px; width: 82px; height: 82px; border: 15px solid rgba(31,124,186,.055); border-radius: 50%; content: ""; }
.kpi-top { display: flex; align-items: center; justify-content: space-between; color: #7d8e9c; font-size: 9px; font-weight: 650; }
.kpi-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; color: var(--blue); background: #eaf4fb; font-size: 13px; }
.kpi-value { margin-top: 12px; color: var(--navy); font-size: 25px; font-weight: 700; letter-spacing: -.045em; }
.kpi-note { margin-top: 2px; color: #96a3ad; font-size: 9px; }
.kpi-card.alert .kpi-icon { color: var(--red); background: #fff0ef; }
.kpi-card.warning .kpi-icon { color: #b17b15; background: #fff7df; }
.kpi-card.good .kpi-icon { color: var(--green); background: #e7f7ef; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(270px, .8fr); gap: 14px; margin-top: 14px; }
.chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.chart-panel { min-height: 225px; }
.chart-box { min-height: 150px; padding: 4px 15px 15px; }
.chart-box svg { display: block; width: 100%; height: 150px; overflow: visible; }
.chart-empty { display: grid; min-height: 150px; place-items: center; color: #9ba8b2; font-size: 10px; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 18px 13px; color: #738493; font-size: 9px; }
.legend-item { display: inline-flex; align-items: center; gap: 5px; }
.legend-dot { width: 7px; height: 7px; border-radius: 2px; background: var(--blue); }
.compliance-card { display: grid; grid-template-columns: 130px 1fr; align-items: center; min-height: 166px; padding: 10px 18px 17px; }
.donut-wrap { position: relative; display: grid; width: 112px; height: 112px; place-items: center; }
.donut-wrap svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.donut-center { text-align: center; }
.donut-center strong { display: block; color: var(--navy); font-size: 21px; }
.donut-center span { color: #8b99a5; font-size: 8px; }
.compliance-copy strong { display: block; color: var(--navy); font-size: 12px; }
.compliance-copy p { color: var(--muted); font-size: 9px; line-height: 1.55; }
.compliance-key { display: grid; gap: 7px; margin-top: 13px; color: #687d8d; font-size: 9px; }
.compliance-key span { display: flex; justify-content: space-between; gap: 14px; }
.compliance-key b { color: var(--navy); }
.activity-list { display: grid; gap: 0; padding: 0 17px 7px; }
.activity-item { display: grid; grid-template-columns: 41px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 54px; border-top: 1px solid #eff3f6; }
.date-chip { display: grid; width: 38px; height: 38px; align-content: center; border-radius: 7px; color: var(--blue); background: #ecf5fb; text-align: center; }
.date-chip strong { font-size: 13px; line-height: 1; }
.date-chip span { margin-top: 3px; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.activity-main { overflow: hidden; }
.activity-main strong, .activity-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-main strong { color: #31495d; font-size: 9px; }
.activity-main small { margin-top: 4px; color: #8e9ba6; font-size: 8px; }
.empty-state { padding: 25px 14px; color: #8d9aa5; text-align: center; font-size: 10px; }
.state-pill { display: inline-flex; align-items: center; gap: 5px; border-radius: 99px; padding: 5px 8px; color: #687a88; background: #f0f3f5; font-size: 8px; font-weight: 750; letter-spacing: .03em; white-space: nowrap; }
.state-pill::before { width: 6px; height: 6px; border-radius: 50%; background: #9caab5; content: ""; }
.state-pill.state-done { color: #26714f; background: #e7f5ee; }
.state-pill.state-done::before { background: var(--green); }
.state-pill.state-overdue { color: #a92f3c; background: #fdebec; }
.state-pill.state-overdue::before { background: var(--red-dark); }
.state-pill.state-soon { color: #9a711c; background: #fff5d7; }
.state-pill.state-soon::before { background: var(--yellow); }
.state-pill.state-ok { color: #26714f; background: #e7f5ee; }
.state-pill.state-ok::before { background: var(--green); }
.state-pill.state-replace { color: #a92f3c; background: #fdebec; }
.state-pill.state-replace::before { background: var(--red-dark); }
.state-pill.state-unconfigured { color: #737f88; background: #eff2f4; }
.state-pill.state-unconfigured::before { background: #a3adb5; }

.table-panel { overflow: hidden; }
.table-scroll { overflow: auto; max-height: calc(100vh - 278px); }
.data-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.data-table th { position: sticky; top: 0; z-index: 1; padding: 11px 12px; color: #82919e; background: #f8fafb; text-align: left; font-size: 8px; letter-spacing: .1em; white-space: nowrap; }
.data-table td { padding: 10px 12px; border-top: 1px solid #edf1f4; color: #455b6c; vertical-align: middle; }
.data-table tbody tr:hover { background: #f8fbfd; }
.data-table td strong { display: block; color: #253d51; font-size: 10px; font-weight: 650; }
.data-table td small { display: block; margin-top: 3px; color: #8a98a3; font-size: 8px; }
.machine-cell { min-width: 195px; max-width: 265px; }
.point-cell { min-width: 170px; max-width: 245px; }
.wrap-cell { max-width: 220px; line-height: 1.4; }
.table-footer { padding: 11px 15px; border-top: 1px solid #edf1f4; color: #84939f; font-size: 9px; }
.row-action { border: 1px solid #dfe8ee; border-radius: 5px; padding: 5px 8px; color: #506678; background: #fff; font-size: 8px; font-weight: 700; white-space: nowrap; }
.row-action.is-done { border-color: #c8e8d7; color: #26714f; background: #edf8f1; }
.frequency-tag { display: inline-block; border-radius: 4px; padding: 4px 6px; color: #5c7080; background: #edf2f5; font-size: 8px; font-weight: 700; white-space: nowrap; }
.frequency-tag.freq-mensual { color: #287951; background: #e7f5ec; }
.frequency-tag.freq-bimestral { color: #17649e; background: #e7f2fb; }
.frequency-tag.freq-trimestral { color: #987018; background: #fff5d8; }
.frequency-tag.freq-semestral { color: #a6601d; background: #fff0e1; }
.frequency-tag.freq-system24 { color: #ae3742; background: #fdecee; }
.frequency-tag.freq-anual { color: #6553a0; background: #f0edfa; }
.toolbar-note { color: #8b99a5; font-size: 9px; }
.inventory-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-bottom: 14px; }
.inventory-kpi { display: grid; gap: 7px; border: 1px solid #e7edf2; border-radius: 9px; padding: 14px; background: #fff; box-shadow: var(--shadow); }
.inventory-kpi span { color: #718493; font-size: 9px; font-weight: 650; }
.inventory-kpi strong { color: var(--navy); font-size: 23px; line-height: 1; }
.inventory-kpi small { color: #93a0a9; font-size: 8px; }
.inventory-breakdowns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.inventory-breakdown { display: grid; padding: 0 16px 13px; }
.inventory-breakdown-row { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #edf1f4; padding: 9px 2px; color: #607688; font-size: 9px; }
.inventory-breakdown-row strong { color: #28583b; }
.association-cell { min-width: 250px; }
.association-cell select { width: 100%; min-height: 32px; border: 1px solid #dfe7e2; border-radius: 6px; padding: 5px 7px; color: #375344; background: #fff; font-size: 9px; }
.association-cell small { display: block; margin-top: 5px; font-size: 8px; line-height: 1.4; }
.association-linked { color: #35724d; }
.association-pending { color: #a25a2e; }
.import-dialog { width: min(920px,calc(100vw - 28px)); max-height: min(88vh,850px); overflow: hidden; border: 1px solid #dfe9df; border-radius: 13px; padding: 0; color: var(--ink); background: #fdfefd; box-shadow: 0 22px 80px rgba(15,40,27,.28); }
.import-dialog::backdrop { background: rgba(9,24,17,.57); backdrop-filter: blur(3px); }
.import-dialog-form { display: flex; max-height: min(88vh,850px); flex-direction: column; }
.import-dialog-heading { display: flex; justify-content: space-between; gap: 18px; padding: 20px 22px 15px; border-bottom: 1px solid #e9efea; }
.import-dialog-heading h2 { margin: 0; color: #1a3e2d; font-size: 18px; }
.import-dialog-heading p { margin: 6px 0 0; color: #7c8c80; font-size: 10px; }
.import-close { width: 30px; height: 30px; border: 1px solid #e0e8df; border-radius: 7px; color: #58715d; background: #fff; font-size: 19px; }
.import-controls { display: flex; gap: 12px; padding: 14px 22px 0; }
.import-controls label, .mapping-field { display: grid; flex: 1; gap: 6px; color: #5e7462; font-size: 9px; font-weight: 700; }
.import-controls select, .mapping-field select { width: 100%; min-height: 34px; border: 1px solid #dce6dc; border-radius: 6px; padding: 6px 8px; color: #385240; background: #fff; font-size: 10px; }
.import-controls label[hidden] { display: none; }
.import-mapping { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 15px 22px; }
.mapping-field.is-required > span::after { color: #cc7044; }
.import-validation { margin: 0 22px; border: 1px solid #d5e8d3; border-radius: 7px; padding: 9px 11px; color: #386741; background: #f0f7ed; font-size: 9px; line-height: 1.5; }
.import-validation.has-errors { border-color: #f0d5ca; color: #994a34; background: #fff5f1; }
.import-preview-wrap { min-height: 102px; overflow: auto; padding: 12px 22px; }
.import-preview-title { margin-bottom: 7px; color: #6e8172; font-size: 9px; font-weight: 700; }
.import-preview-wrap .table-scroll { max-height: 240px; border: 1px solid #edf1ed; border-radius: 6px; }
.import-preview-wrap .data-table { font-size: 9px; }
.import-preview-wrap .data-table th { position: sticky; top: 0; }
.import-preview-wrap p { margin: 7px 0 0; color: #88968c; font-size: 8px; }
.import-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #e9efea; padding: 13px 22px; background: #fff; }
.import-footer > span { max-width: 55%; color: #819084; font-size: 8px; line-height: 1.5; }
.import-footer > div { display: flex; flex: 0 0 auto; gap: 8px; }
.import-footer .button { white-space: nowrap; }
.import-footer .button:disabled { cursor: not-allowed; opacity: .45; }

.calendar-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(245px, .72fr); gap: 14px; }
.calendar-panel { overflow: hidden; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; }
.calendar-toolbar h3 { margin: 0; color: var(--navy); font-size: 13px; }
.calendar-controls { display: flex; align-items: center; gap: 8px; }
.calendar-controls button { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #e2e9ee; border-radius: 6px; color: #536b7e; background: #fff; }
.calendar-controls span { min-width: 120px; color: #667b8d; text-align: center; font-size: 9px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border-top: 1px solid #edf1f4; border-left: 1px solid #edf1f4; }
.calendar-weekday { padding: 9px 3px; color: #8998a5; background: #f8fafb; text-align: center; font-size: 8px; font-weight: 750; letter-spacing: .08em; }
.calendar-day { min-height: 81px; border-top: 1px solid #edf1f4; border-right: 1px solid #edf1f4; padding: 7px 6px; background: #fff; cursor: pointer; }
.calendar-day:hover { background: #f8fbfd; }
.calendar-day.is-outside { color: #c1cbd2; background: #fafcfd; }
.calendar-day.is-selected { outline: 2px solid #2588c2; outline-offset: -2px; background: #f0f8fd; }
.calendar-day.is-today .day-number { color: #fff; background: var(--blue); }
.day-number { display: inline-grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; color: #607486; font-size: 9px; }
.day-events { display: grid; gap: 3px; margin-top: 4px; }
.day-event { overflow: hidden; border-left: 2px solid var(--blue); border-radius: 2px; padding: 3px 3px; color: #526b7e; background: #edf5fb; text-overflow: ellipsis; white-space: nowrap; font-size: 7px; }
.day-event.tone-system24 { border-color: var(--red); color: #9c4147; background: #fdf0f0; }
.day-event.tone-overdue { border-color: var(--red-dark); background: #fde5e7; }
.day-event.tone-soon { border-color: var(--yellow); color: #856417; background: #fff7df; }
.day-event.tone-mensual { border-color: var(--green); }
.day-event.tone-bimestral { border-color: var(--blue); }
.day-event.tone-trimestral { border-color: var(--yellow); }
.day-event.tone-semestral { border-color: var(--orange); }
.day-more { color: #7e8c98; font-size: 7px; }
.day-detail-list { display: grid; gap: 8px; padding: 0 14px 14px; }
.day-detail { border: 1px solid #edf1f4; border-radius: 7px; padding: 9px; }
.day-detail strong { display: block; color: #344c60; font-size: 9px; line-height: 1.4; }
.day-detail small { display: block; margin-top: 4px; color: #8997a2; font-size: 8px; }

.gantt-panel { overflow: hidden; }
.gantt-scroll { overflow: auto; max-height: calc(100vh - 285px); }
.gantt-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 9px; }
.gantt-table th { position: sticky; top: 0; z-index: 3; height: 37px; border-bottom: 1px solid #dfe7ed; padding: 8px; color: #758695; background: #f8fafb; text-align: center; font-size: 8px; letter-spacing: .08em; }
.gantt-table th:first-child, .gantt-table th:nth-child(2) { z-index: 4; text-align: left; }
.gantt-table td { height: 35px; border-bottom: 1px solid #edf1f4; border-right: 1px solid #f0f3f5; padding: 5px 7px; background: #fff; }
.gantt-table tr:hover td { background: #f9fbfc; }
.gantt-table .gantt-machine { position: sticky; left: 0; z-index: 2; width: 210px; min-width: 210px; max-width: 210px; }
.gantt-table .gantt-activity { position: sticky; left: 210px; z-index: 2; width: 145px; min-width: 145px; max-width: 145px; }
.gantt-table th.gantt-machine, .gantt-table th.gantt-activity { z-index: 5; background: #f8fafb; }
.gantt-machine strong, .gantt-machine small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gantt-machine strong { color: #344d60; font-size: 8px; }
.gantt-machine small { margin-top: 3px; color: #8997a2; font-size: 7px; }
.gantt-activity { color: #687d8d; }
.gantt-month { position: relative; width: var(--gantt-month-width, 100px); min-width: var(--gantt-month-width, 100px); max-width: var(--gantt-month-width, 100px); padding: 0 !important; }
.gantt-month::before { position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px dashed #edf0f3; content: ""; }
.gantt-mark { position: absolute; top: 50%; z-index: 1; display: grid; min-width: 18px; height: 18px; place-items: center; transform: translate(-50%,-50%); border: 0; border-radius: 5px; padding: 0 3px; color: #fff; font-size: 7px; font-weight: 800; box-shadow: 0 1px 3px rgba(21,50,72,.17); }
.gantt-mark.tone-mensual { background: var(--green); }
.gantt-mark.tone-bimestral { background: var(--blue); }
.gantt-mark.tone-trimestral { color: #5e4a0b; background: #ebc04e; }
.gantt-mark.tone-semestral { background: var(--orange); }
.gantt-mark.tone-anual { background: #7865b4; }
.gantt-mark.tone-system24 { background: #c94a4e; }
.gantt-mark.tone-soon { color: #5e4a0b; background: var(--yellow); }
.gantt-mark.tone-overdue { background: var(--red-dark); }
.gantt-mark.tone-done { background: var(--green-dark); }
.gantt-zoom { display: inline-flex; overflow: hidden; border: 1px solid #e0e8ee; border-radius: 6px; }
.gantt-zoom button { width: 29px; height: 27px; border: 0; color: #536b7d; background: #fff; font-size: 13px; }
.gantt-zoom button + button { border-left: 1px solid #e0e8ee; }
.gantt-legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 12px 16px; border-top: 1px solid #edf1f4; }

.system-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.system-summary-card { display: flex; align-items: center; gap: 12px; border: 1px solid #e7edf2; border-radius: 9px; padding: 13px; background: #fff; box-shadow: var(--shadow); }
.system-summary-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; color: #a63440; background: #fdecee; font-size: 16px; }
.system-summary-card strong { display: block; color: var(--navy); font-size: 16px; }
.system-summary-card small { display: block; margin-top: 3px; color: #8695a0; font-size: 8px; }
.system-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.system-card { border: 1px solid #e7edf2; border-radius: 10px; padding: 14px 15px; background: #fff; box-shadow: var(--shadow); }
.system-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.system-card h3 { margin: 0; color: #294256; font-size: 10px; line-height: 1.45; }
.system-card .system-point { margin-top: 4px; color: #778995; font-size: 9px; }
.system-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 15px; margin-top: 14px; }
.system-detail span { display: block; color: #8c9aa5; font-size: 8px; }
.system-detail strong { display: block; overflow: hidden; margin-top: 4px; color: #40586c; font-size: 9px; font-weight: 650; text-overflow: ellipsis; }
.system-date-control { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding-top: 11px; border-top: 1px solid #edf1f4; }
.system-date-control label { flex: 1; color: #758895; font-size: 8px; }
.system-date-control input { display: block; width: 100%; margin-top: 4px; border: 1px solid #dfe8ee; border-radius: 5px; padding: 6px; color: #40586c; background: #fff; font-size: 9px; }
.countdown { margin-top: 12px; color: #778995; font-size: 8px; }
.countdown strong { color: #3b5468; }
.notice { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 13px; border: 1px solid #d9e8f2; border-radius: 7px; padding: 10px 12px; color: #557186; background: #f3f9fc; font-size: 9px; line-height: 1.5; }
.notice strong { color: #355a75; }
.toast-region { position: fixed; right: 22px; bottom: 20px; z-index: 30; display: grid; gap: 8px; }
.toast { max-width: min(400px,calc(100vw - 32px)); border: 1px solid #d6e4ec; border-radius: 8px; padding: 11px 14px; color: #26445c; background: #fff; box-shadow: 0 8px 24px rgba(21,47,66,.16); font-size: 10px; animation: toast-in .2s ease; }
.toast.toast-error { border-color: #efc8ca; color: #8c2e37; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.app-shell[hidden], .login-screen[hidden] { display: none !important; }
.login-screen { position: relative; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(380px,.9fr); min-height: 100vh; padding: 24px; overflow: hidden; background: #eaf0f5; }
.login-atmosphere { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.login-showcase, .login-panel-wrap { z-index: 1; }
.login-showcase { position: relative; isolation: isolate; display: flex; min-height: calc(100vh - 48px); flex-direction: column; overflow: hidden; border-radius: 19px 0 0 19px; padding: 36px 43px 25px; color: #eff8fd; background: radial-gradient(ellipse at 78% 72%,rgba(22,122,178,.35),transparent 31%), radial-gradient(ellipse at 11% 7%,rgba(43,114,160,.2),transparent 36%), linear-gradient(145deg,#153a57 0%,#0e2a43 52%,#0a2035 100%); }
.login-showcase::before { position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(rgba(200,226,242,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(200,226,242,.035) 1px,transparent 1px); background-size: 43px 43px; mask-image: linear-gradient(150deg,black,transparent 83%); content: ""; }
.login-showcase::after { position: absolute; top: 31%; left: -12%; z-index: -1; width: 88%; height: 52%; border: 1px solid rgba(103,173,214,.08); border-radius: 50%; transform: rotate(-23deg); content: ""; }
.login-brand { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 12px; width: max-content; color: #f5fbff; text-decoration: none; }
.login-brand img { width: 46px; height: 46px; filter: drop-shadow(0 5px 15px rgba(70,172,223,.2)); }
.login-brand strong { display: block; font-size: 12px; line-height: 1.23; letter-spacing: .105em; }
.login-brand small { display: block; margin-top: 6px; color: #8eafc4; font-size: 8px; letter-spacing: .14em; }
.showcase-copy { position: relative; z-index: 2; max-width: 490px; margin-top: clamp(67px,12vh,133px); animation: lift-in .75s both; }
.showcase-kicker { display: inline-flex; align-items: center; gap: 8px; color: #a4c8de; font-size: 8px; font-weight: 750; letter-spacing: .16em; }
.showcase-kicker i { width: 7px; height: 7px; border-radius: 50%; background: #65d4a1; box-shadow: 0 0 14px rgba(101,212,161,.8); }
.showcase-copy h1 { margin: 19px 0 13px; color: #f4faff; font-size: clamp(38px,4.3vw,60px); font-weight: 600; line-height: 1.055; letter-spacing: -.055em; }
.showcase-copy h1 span { color: #79c4ed; }
.showcase-copy p { max-width: 360px; margin: 0; color: #afc4d3; font-size: 12px; line-height: 1.8; }
.showcase-orbit { position: absolute; right: 7%; bottom: 9%; z-index: 1; display: grid; width: clamp(210px,27vw,325px); aspect-ratio: 1; place-items: center; opacity: .92; }
.orbit-ring { position: absolute; border: 1px solid rgba(127,191,227,.22); border-radius: 50%; }
.ring-outer { inset: 1%; animation: orbit-rotate 40s linear infinite; }
.ring-outer::before, .ring-outer::after { position: absolute; top: 17%; width: 7px; height: 7px; border: 2px solid #83d2f3; border-radius: 50%; background: #153b56; box-shadow: 0 0 13px rgba(96,196,240,.65); content: ""; }
.ring-outer::before { left: 18%; }
.ring-outer::after { right: 11%; top: 61%; width: 5px; height: 5px; }
.ring-inner { inset: 16%; border-color: rgba(146,213,243,.31); border-style: dashed; animation: orbit-rotate 28s linear infinite reverse; }
.orbit-core { display: grid; width: 38%; aspect-ratio: 1; align-content: center; justify-items: center; gap: 2px; border: 1px solid rgba(135,205,241,.32); border-radius: 50%; color: #b7eaff; background: radial-gradient(circle at 36% 28%,rgba(70,157,205,.42),rgba(16,58,86,.94) 71%); box-shadow: 0 0 55px rgba(47,139,188,.24),inset 0 0 24px rgba(101,184,220,.11); animation: core-pulse 5s ease-in-out infinite; }
.core-drop { color: #a3e4ff; font-size: 30px; }
.orbit-core > span:last-child { color: #b9d7e7; font-size: 7px; font-weight: 750; letter-spacing: .22em; }
.orbit-node { position: absolute; display: flex; align-items: center; gap: 6px; border: 1px solid rgba(170,211,234,.2); border-radius: 5px; padding: 6px 7px; color: #93c9e8; background: rgba(9,34,53,.77); font-size: 7px; letter-spacing: .08em; animation: node-float 5s ease-in-out infinite; }
.orbit-node b { color: #e1f3fc; font-size: 6px; font-weight: 650; }
.node-top { top: 10%; left: 0; }
.node-right { top: 48%; right: -2%; animation-delay: -2s; }
.node-bottom { bottom: 9%; left: 16%; animation-delay: -3s; }
.light-beam { position: absolute; top: -25%; left: 27%; z-index: 0; width: 120px; height: 145%; transform: rotate(30deg); background: linear-gradient(90deg,transparent,rgba(126,199,231,.045),transparent); filter: blur(9px); animation: beam-sweep 10s ease-in-out infinite; }
.ambient-dot { position: absolute; z-index: 0; width: 3px; height: 3px; border-radius: 50%; background: #99e2ff; box-shadow: 0 0 11px #77c8f1; animation: ambient-drift 8s ease-in-out infinite; }
.dot-one { top: 29%; left: 67%; }
.dot-two { top: 65%; left: 48%; animation-delay: -3s; }
.dot-three { top: 43%; right: 8%; animation-delay: -5s; }
.showcase-footer { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 10px; margin-top: auto; border-top: 1px solid rgba(211,234,248,.13); padding-top: 16px; color: #809fb3; font-size: 7px; font-weight: 700; letter-spacing: .14em; }
.showcase-footer span:last-child { color: #a7bfd0; }
.showcase-footer i { margin-left: 5px; color: #77c8ed; font-size: 11px; font-style: normal; }
.login-panel-wrap { position: relative; display: flex; min-height: calc(100vh - 48px); flex-direction: column; align-items: center; justify-content: center; border-radius: 0 19px 19px 0; padding: 38px 32px 22px; background: #fff; }
.login-card { width: min(100%,365px); margin: auto; animation: lift-in .65s .08s both; }
.login-mobile-brand { display: none; align-items: center; gap: 8px; margin-bottom: 35px; color: var(--navy); font-size: 10px; font-weight: 800; letter-spacing: .07em; }
.login-mobile-brand img { width: 36px; height: 36px; }
.login-card-icon { display: grid; width: 37px; height: 37px; place-items: center; border: 1px solid #daebf5; border-radius: 10px; color: #1c79ae; background: #eff8fd; box-shadow: 0 4px 11px rgba(36,117,164,.08); font-size: 17px; }
.login-overline { margin-top: 22px; color: #7490a2; font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.login-card h2 { margin: 8px 0 0; color: #152f44; font-size: 31px; font-weight: 650; letter-spacing: -.055em; }
.login-subtitle { margin: 8px 0 27px; color: #7d8f9c; font-size: 11px; line-height: 1.6; }
.login-label { display: block; margin: 17px 0 8px; color: #5c7181; font-size: 8px; font-weight: 800; letter-spacing: .1em; }
.password-label { display: flex; justify-content: space-between; gap: 8px; }
.password-label span { color: #9aa8b2; font-size: 7px; letter-spacing: .07em; }
.login-input-wrap { display: flex; align-items: center; gap: 10px; min-height: 46px; border: 1px solid #dfe7ec; border-radius: 7px; padding: 0 12px; color: #91a2ae; background: #fff; transition: border-color .2s ease,box-shadow .2s ease; }
.login-input-wrap:focus-within { border-color: #4599c5; box-shadow: 0 0 0 3px rgba(42,139,188,.1); }
.login-input-wrap > span { font-size: 15px; }
.login-input-wrap input { flex: 1; min-width: 0; height: 43px; border: 0; outline: 0; color: #283f52; background: transparent; font-size: 11px; }
.login-input-wrap input::placeholder { color: #a9b5bd; }
.password-toggle { border: 0; padding: 4px; color: #8c9da9; background: transparent; font-size: 13px; }
.password-toggle:hover { color: var(--blue); }
.login-error { margin-top: 12px; border: 1px solid #f0d0d0; border-radius: 6px; padding: 9px 10px; color: #9b3740; background: #fff6f6; font-size: 9px; line-height: 1.45; }
.login-error.success { border-color: #d2e8d6; color: #286b43; background: #f4fbf3; }
.login-error[hidden] { display: none; }
.login-submit { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: 22px; border: 0; border-radius: 7px; color: #fff; background: linear-gradient(110deg,#17699f,#1984be 70%,#2397ca); box-shadow: 0 7px 16px rgba(26,115,166,.2); font-size: 10px; font-weight: 750; letter-spacing: .03em; transition: transform .2s ease,box-shadow .2s ease; }
.login-submit b { position: absolute; right: 14px; font-size: 16px; font-weight: 400; }
.login-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(26,115,166,.29); }
.login-submit:disabled { cursor: wait; opacity: .7; transform: none; }
.login-link { display: block; margin: 12px auto 0; border: 0; padding: 4px; color: #287c51; background: transparent; font-size: 10px; cursor: pointer; }
.login-link:hover { text-decoration: underline; }
.login-security { display: flex; align-items: center; gap: 9px; margin-top: 21px; border-top: 1px solid #edf1f4; padding-top: 16px; }
.security-shield { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; color: #3482aa; background: #edf6fa; font-size: 13px; }
.login-security strong, .login-security small { display: block; }
.login-security strong { color: #6c8190; font-size: 7px; letter-spacing: .09em; }
.login-security small { margin-top: 4px; color: #99a6af; font-size: 8px; }
.login-panel-footer { width: min(100%,365px); color: #9ba8b1; text-align: center; font-size: 7px; letter-spacing: .08em; }
.login-panel-footer span { padding: 0 4px; color: #c1cbd2; }
@keyframes lift-in { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: translateY(0); } }
@keyframes orbit-rotate { to { transform: rotate(360deg); } }
@keyframes core-pulse { 50% { transform: scale(1.055); box-shadow: 0 0 72px rgba(47,139,188,.34),inset 0 0 26px rgba(101,184,220,.16); } }
@keyframes node-float { 50% { transform: translateY(-6px); } }
@keyframes ambient-drift { 50% { transform: translate(13px,-14px); opacity: .45; } }
@keyframes beam-sweep { 0%,100% { opacity: .35; transform: translateX(-40px) rotate(30deg); } 50% { opacity: 1; transform: translateX(175px) rotate(30deg); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 1180px) {
  .sidebar { width: 215px; }
  .workspace { margin-left: 215px; }
  .filterbar { flex-wrap: wrap; padding: 11px 24px; }
  .search-box { max-width: none; }
  .content { padding-right: 24px; padding-left: 24px; }
  .topbar { padding-right: 24px; padding-left: 24px; }
  .page-footer { padding-right: 24px; padding-left: 24px; }
  .kpi-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .inventory-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .login-screen { grid-template-columns: minmax(0,1fr) minmax(335px,.9fr); padding: 15px; }
  .login-showcase, .login-panel-wrap { min-height: calc(100vh - 30px); }
  .login-showcase { padding: 28px 26px 20px; }
  .showcase-copy { margin-top: 95px; }
  .showcase-copy h1 { font-size: clamp(34px,5vw,48px); }
  .showcase-orbit { right: 0; bottom: 12%; width: 235px; opacity: .7; }
  .login-panel-wrap { padding-right: 22px; padding-left: 22px; }
  .sidebar { position: sticky; top: 0; right: 0; bottom: auto; width: 100%; height: auto; min-height: 62px; flex-direction: row; align-items: center; padding: 8px 13px; transform: none !important; }
  .app-shell.sidebar-collapsed .sidebar { display: none; }
  .brand { min-width: 177px; }
  .brand img { width: 33px; height: 33px; }
  .nav-caption, .sidebar-bottom { display: none; }
  .main-nav { display: flex; flex: 1; justify-content: flex-end; gap: 3px; }
  .nav-item { justify-content: center; width: auto; padding: 9px 10px; font-size: 0; }
  .nav-item .nav-icon { font-size: 16px; }
  .nav-count { margin-left: 0; min-width: 17px; padding: 2px 4px; font-size: 8px; }
  .workspace { margin-left: 0; }
  .topbar { min-height: 76px; padding: 14px 20px; }
  .topbar h1 { font-size: 19px; }
  .filterbar { padding: 10px 20px; }
  .content { padding: 20px; }
  .page-footer { padding-right: 20px; padding-left: 20px; }
  .dashboard-grid, .calendar-layout { grid-template-columns: 1fr; }
  .inventory-breakdowns { grid-template-columns: 1fr; }
  .table-scroll, .gantt-scroll { max-height: 70vh; }
}
@media (max-width: 560px) {
  .login-screen { display: flex; min-height: 100svh; flex-direction: column; justify-content: center; padding: 0; background: #fff; }
  .login-showcase { display: none; }
  .login-panel-wrap { min-height: 100svh; border-radius: 0; padding: 28px 26px 18px; }
  .login-mobile-brand { display: flex; }
  .login-card-icon { width: 34px; height: 34px; }
  .login-card h2 { font-size: 29px; }
  .login-panel-footer { padding-top: 20px; }
  .sidebar { overflow-x: auto; }
  .brand { min-width: 150px; gap: 7px; padding: 0 3px; }
  .brand strong { font-size: 10px; }
  .brand small { font-size: 7px; }
  .nav-item { padding: 8px 7px; }
  .nav-item .nav-icon { font-size: 14px; }
  .nav-count { display: none; }
  .topbar { align-items: flex-start; padding: 13px 14px; }
  .topbar-heading { gap: 7px; }
  .sidebar-toggle { top: 68px; left: auto; right: 8px; width: 36px; height: 36px; transform: none; border: 1px solid rgba(198,225,192,.42); border-radius: 10px; }
  .app-shell.sidebar-collapsed .sidebar-toggle { left: auto; right: 8px; }
  .topbar-tools { gap: 7px; }
  .button-quiet { padding: 8px; font-size: 0; }
  .button-quiet:first-letter { font-size: 14px; }
  .year-control { padding-right: 8px; }
  .year-control span { font-size: 7px; }
  .year-control select { max-width: 67px; font-size: 10px; }
  .avatar { width: 29px; height: 29px; }
  .topbar-user { gap: 6px; }
  .topbar-user > span { display: none; }
  .logout-button { min-height: 29px; padding: 0 7px; font-size: 8px; }
  .logout-button span:first-child { font-size: 12px; }
  .filterbar { gap: 10px; padding: 10px 14px; }
  .search-box { flex-basis: 100%; max-width: none; }
  .filter-control { flex: 1 1 28%; min-width: 80px; padding-left: 7px; }
  .filter-control select { max-width: 100%; font-size: 9px; }
  .activity-filter { display: none; }
  .content { padding: 16px 13px; }
  .page-footer { padding: 0 14px 14px; font-size: 7px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .section-heading .heading-actions { flex-wrap: wrap; }
  .kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .kpi-card { min-height: 93px; padding: 11px; }
  .kpi-value { font-size: 21px; }
  .kpi-top { font-size: 8px; }
  .chart-grid { grid-template-columns: 1fr; }
  .compliance-card { grid-template-columns: 105px 1fr; padding-right: 11px; padding-left: 11px; }
  .donut-wrap { width: 96px; height: 96px; }
  .system-summary { grid-template-columns: 1fr; gap: 8px; }
  .system-grid { grid-template-columns: 1fr; }
  .import-dialog { width: calc(100vw - 16px); max-height: 94vh; border-radius: 10px; }
  .import-dialog-form { max-height: 94vh; }
  .import-dialog-heading, .import-controls, .import-mapping, .import-preview-wrap { padding-right: 13px; padding-left: 13px; }
  .import-dialog-heading h2 { font-size: 15px; }
  .import-controls { flex-direction: column; }
  .import-mapping { grid-template-columns: 1fr 1fr; gap: 8px; }
  .import-validation { margin-right: 13px; margin-left: 13px; }
  .import-footer { align-items: stretch; flex-direction: column; padding: 11px 13px; }
  .import-footer > span { max-width: none; }
  .import-footer > div { justify-content: flex-end; }
  .import-footer .button { padding: 8px 9px; font-size: 9px; }
  .calendar-day { min-height: 61px; padding: 4px 3px; }
  .day-number { width: 18px; height: 18px; font-size: 8px; }
  .day-event { padding: 2px; font-size: 6px; }
  .calendar-weekday { font-size: 7px; }
}

.login-screen { background: #eaf1eb; }
.login-showcase {
  background: radial-gradient(ellipse at 78% 72%,rgba(67,171,118,.28),transparent 32%),radial-gradient(ellipse at 11% 7%,rgba(88,164,121,.18),transparent 36%),linear-gradient(145deg,#1a352b 0%,#122b23 52%,#0e211d 100%);
}
.login-showcase::before { background-image: linear-gradient(rgba(204,235,214,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(204,235,214,.045) 1px,transparent 1px); }
.login-showcase::after { border-color: rgba(127,209,157,.12); }
.login-brand img { filter: drop-shadow(0 5px 15px rgba(110,226,157,.22)); }
.login-brand small { color: #9bc0a5; }
.showcase-kicker { color: #bdd7c1; }
.showcase-kicker i { background: #b0e65f; box-shadow: 0 0 14px rgba(176,230,95,.8); }
.showcase-copy p { color: #c0d0c3; }
.ring-outer { border-color: rgba(151,213,167,.28); }
.ring-outer::before, .ring-outer::after { border-color: #a9e36e; background: #1c4633; box-shadow: 0 0 14px rgba(171,228,103,.64); }
.ring-inner { border-color: rgba(143,215,163,.38); }
.orbit-core { border-color: rgba(155,223,159,.4); color: #ddf5bd; background: radial-gradient(circle at 36% 28%,rgba(100,169,112,.48),rgba(20,63,44,.96) 71%); box-shadow: 0 0 55px rgba(81,173,104,.24),inset 0 0 24px rgba(135,207,145,.12); }
.core-drop { color: #d6f390; }
.orbit-node { border-color: rgba(190,226,180,.25); color: #c5e496; background: rgba(14,38,29,.82); }
.orbit-node b { color: #e7f1d9; }
.showcase-footer { border-color: rgba(214,239,214,.17); color: #a5baa7; }
.showcase-footer span:last-child { color: #cfdfca; }
.showcase-footer i { color: #c5e878; }
.light-beam { background: linear-gradient(90deg,transparent,rgba(181,226,147,.06),transparent); }
.ambient-dot { background: #cbf596; box-shadow: 0 0 11px #b1e376; }
.login-panel-wrap { background: linear-gradient(145deg,#fff 0%,#fcfefa 100%); }
.login-mobile-brand { color: #183a2d; }
.login-card-icon { border-color: #d8ead8; color: #26744f; background: #eff7eb; box-shadow: 0 4px 11px rgba(44,118,75,.09); }
.login-overline { color: #6d8e72; }
.login-card h2 { color: #193629; }
.login-subtitle { color: #768b7b; }
.login-label { color: #58725f; }
.login-label span { color: #879b8c; }
.login-input-wrap { border-color: #dce7da; color: #7f9983; background: rgba(255,255,255,.87); }
.login-input-wrap:focus-within { border-color: #51a775; box-shadow: 0 0 0 3px rgba(59,150,99,.12); }
.login-input-wrap input { color: #263d2c; }
.login-input-wrap input::placeholder { color: #9fac9e; }
.password-toggle:hover { color: #287c51; }
.login-submit { color: #fff; background: linear-gradient(110deg,#175b42,#13845e 70%,#28a66a); box-shadow: 0 7px 17px rgba(28,118,74,.22); }
.login-submit:hover { box-shadow: 0 10px 22px rgba(28,118,74,.31); }
.login-security { border-color: #e7eee4; }
.security-shield { color: #347d50; background: #eff6e9; }
.login-security strong { color: #667d68; }
.login-security small { color: #8b9b8e; }
.login-panel-footer { color: #89988b; }
.login-panel-footer span { color: #b0bdb1; }

.app-shell { --navy: #18362b; --navy-2: #204736; --canvas: #f3f6f2; }
.sidebar { background: linear-gradient(168deg,#1a352b 0%,#122b23 72%,#0e211d 100%); }
.nav-item:hover { background: rgba(177,222,175,.09); }
.nav-item.is-active { background: linear-gradient(100deg,#267448,#258354); box-shadow: 0 6px 16px rgba(18,100,58,.23); }
.nav-icon { color: #a0c7a4; }
.nav-item.is-active .nav-icon { color: #eaffd0; }
.nav-count { color: #dff4ce; background: rgba(196,238,174,.16); }
.sidebar-status { border-color: rgba(190,222,183,.17); background: rgba(213,237,200,.045); }
.sidebar-foot { border-top-color: rgba(214,239,214,.14); }
.app-shell .eyebrow-blue { color: var(--brand-primary); }
.button-primary { background: var(--brand-primary); }
.button-primary:hover { background: #196d41; }
.button-quiet:hover, .button-outline:hover { border-color: #b9d7bd; color: #286b43; background: #f2f8ef; }
.avatar { background: #287747; }
.logout-button:hover { border-color: #b9d7bd; color: #286b43; background: #f2f8ef; }
.kpi-icon { color: var(--brand-primary); background: var(--brand-soft); }
.kpi-card.good .kpi-icon { color: var(--green); background: #e7f7ef; }
.panel-link { color: var(--brand-primary); }
.date-chip { color: var(--brand-primary); background: var(--brand-soft); }
.calendar-controls button:hover { border-color: #bdd8bf; color: #267047; background: #f3f8f0; }
.calendar-day.is-selected { outline-color: var(--brand-primary); background: #f2f8ef; }
.calendar-day.is-today .day-number { background: var(--brand-primary); }
.day-event:not(.tone-system24):not(.tone-overdue):not(.tone-soon):not(.tone-mensual):not(.tone-bimestral):not(.tone-trimestral):not(.tone-semestral) { border-color: var(--brand-primary); background: var(--brand-soft); }

@media print {
  body { background: #fff; }
  .login-screen { display: none !important; }
  .sidebar, .topbar-tools, .filterbar, .page-footer, .heading-actions, .panel-link, .row-action, .gantt-zoom, .toast-region, .system-date-control { display: none !important; }
  .workspace { margin: 0; }
  .topbar { min-height: auto; padding: 0 0 15px; border: 0; }
  .content { padding: 0; }
  .panel, .kpi-card, .system-card { box-shadow: none; break-inside: avoid; }
  .table-scroll, .gantt-scroll { max-height: none; overflow: visible; }
  .data-table th, .gantt-table th { position: static; }
  .gantt-table .gantt-machine, .gantt-table .gantt-activity { position: static; }
}
