/* Palette and Bootstrap components are defined in theme.css. */
body { background: var(--brand-paper); color: var(--ink); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.site-header { background: #fff; }
.brand { color: var(--ink); font-weight: 700; }
.brand-mark { display: grid; place-items: center; background: var(--ink); color: #fff; width: 36px; height: 36px; border-radius: 10px; }
.phase-label { font-size: .75rem; color: var(--muted); }
.hero-panel { background: var(--brand-tint); border: 1px solid var(--brand-border); border-radius: 20px; }
.hero-panel h1 { max-width: 850px; letter-spacing: -.045em; }
.hero-panel .lead { max-width: 620px; color: var(--muted); }
.eyebrow { color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.card { border-color: var(--brand-border); border-radius: 14px; }
.status-note { background: #fff; border-radius: 8px; padding: 10px 14px; font-size: .85rem; }
.status-dot { width: 8px; height: 8px; background: var(--accent); border-radius: 50%; }
.skip-link:focus { display: block; padding: 12px; }
.auth-card { max-width: 520px; }
.form-wide { max-width: 900px; }
.app-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); }
.app-shell > main { max-width: 1200px; padding-left: 24px; padding-right: 24px; }
.app-sidebar { background: var(--brand-tint); border-right: 1px solid var(--brand-border); }
.app-sidebar .nav-link { color: var(--ink); padding: 10px 12px; border-radius: 8px; }
.app-sidebar .nav-link:hover, .app-sidebar .nav-link:focus { background: #fff; }
.audit-details { overflow-wrap: anywhere; margin-top: 12px; }
.dashboard-kpi { display: grid; grid-template-rows: minmax(3rem,auto) auto auto; align-content: start; gap: .35rem; }
.dashboard-kpi .display-6 { margin: 0; line-height: 1.2; font-variant-numeric: tabular-nums; }
.asset-count { display: inline-flex; align-items: center; gap: .6rem; color: var(--ink); }
.asset-count strong { font-size: 1.75rem; font-variant-numeric: tabular-nums; }
.plan-catalog { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.plan-catalog .card { margin-bottom: 0 !important; }
@media(max-width:767px) { .plan-catalog { grid-template-columns: 1fr; } }
fieldset { min-width: 0; }
.asset-tree, .asset-tree ul { list-style: none; margin: 0; padding: 0; }
.asset-tree ul { margin-left: .65rem; padding-left: 1rem; border-left: 1px solid var(--brand-border); }
.asset-tree summary, .tree-leaf { padding: .65rem .2rem; }
.asset-tree summary { cursor: pointer; }
.asset-tree-link { color: var(--ink); text-decoration: none; }
.asset-tree-link:hover { text-decoration: underline; }
.asset-code { font-size: .8rem; font-weight: 700; color: var(--accent); }
.asset-notes { white-space: pre-wrap; overflow-wrap: anywhere; }
.asset-breadcrumb { overflow-wrap: anywhere; }
@media (max-width: 767px) { .app-shell { display: block; } .app-sidebar { border-right: 0; border-bottom: 1px solid var(--brand-border); } .app-sidebar .nav { flex-direction: row !important; flex-wrap: wrap; } }
@media (max-width: 575px) { .brand { font-size: .9rem; } .phase-label { max-width: 90px; text-align: right; } }
/* Keep multi-selection usable with large equipment lists. */
.company-logo { width: auto; height: auto; max-width: 160px; max-height: 96px; object-fit: contain; object-position: left; }
.plan-asset-picker { max-height: 24rem; overflow-y: auto; }
.schedule-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; }
.schedule-day { min-width: 0; min-height: 7rem; background: white; border: 1px solid var(--brand-border); border-radius: .5rem; padding: .6rem; }
.schedule-outside { background: var(--brand-paper); color: var(--muted); }
.schedule-event { border-left: 3px solid var(--accent); background: var(--brand-tint); margin-top: .4rem; overflow-wrap: anywhere; }
.schedule-vencida { border-left-color: #b64040; background: #fff3f3; }
.schedule-proxima { border-left-color: #bc8c19; background: #fff9e8; }
.schedule-revisar, .schedule-inativa { border-left-color: #737d78; background: #f0f1f1; }
.schedule-meter { width: 100%; height: 1rem; }
@media (max-width: 1100px) { .schedule-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .schedule-outside { display: none; } }
@media (max-width: 575px) { .schedule-calendar { grid-template-columns: minmax(0, 1fr); } }

@media print { .site-header, .app-sidebar, .report-controls, footer { display: none !important; } .app-shell { display: block !important; } .report-item { break-inside: avoid; } }

.contact-message { white-space: pre-wrap; }
