:root {
    --ink: #172638;
    --muted: #687789;
    --line: #e1e6ec;
    --paper: #f5f6f8;
    --surface: #ffffff;
    --forest: #0b315c;
    --forest-2: #164778;
    --mint: #b9d7f2;
    --mint-deep: #1c5f9f;
    --coral: #f17b62;
    --blue: #6a94e8;
    --violet: #9a86e8;
    --amber: #e6b45a;
    --radius: 18px;
    --shadow: 0 8px 30px rgba(17, 45, 75, .07);
    font-family: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--paper); color: var(--ink); }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; cursor: pointer; }
h1, h2, h3, strong { font-family: "Manrope", sans-serif; }

.demo-shell { display: grid; grid-template-columns: 262px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 262px; display: flex; flex-direction: column; padding: 26px 18px 18px; color: #edf5fc; background: var(--forest); z-index: 30; }
.brand-block { display: flex; align-items: center; gap: 12px; padding: 0 8px 25px; }
.brand-block strong { display: block; font-size: 15px; letter-spacing: -.2px; }
.brand-block small { display: block; margin-top: 2px; color: #9bb7d0; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.app-logo { width: 46px; height: 46px; flex: 0 0 46px; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 13px; background: #faf8f4; box-shadow: 0 7px 20px rgba(2,20,38,.28); }
.app-logo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand-mark { position: relative; width: 42px; height: 42px; flex: 0 0 42px; overflow: hidden; border-radius: 13px; color: var(--forest); background: var(--mint); box-shadow: inset -10px -10px 20px rgba(23, 109, 77, .12); }
.brand-mark::after { content: ""; position: absolute; width: 25px; height: 25px; right: -8px; bottom: -8px; border: 1px solid rgba(20, 40, 32, .35); border-radius: 50%; }
.brand-mark span, .brand-mark i { position: absolute; font-family: "Manrope"; font-size: 16px; font-style: normal; font-weight: 800; }
.brand-mark span { top: 7px; left: 8px; }.brand-mark i { right: 7px; bottom: 5px; }
.brand-mark.small { width: 48px; height: 48px; flex-basis: 48px; }

.workspace-switcher { position: relative; display: grid; grid-template-columns: 36px 1fr 24px; gap: 9px; align-items: center; margin-bottom: 24px; padding: 11px; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; background: rgba(255,255,255,.045); }
.workspace-switcher strong, .workspace-switcher small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace-switcher strong { font: 600 11px "DM Sans"; }.workspace-switcher small { color: #9ab2c9; font-size: 10px; margin-top: 3px; }
.icon-button { border: 0; color: inherit; background: transparent; }
.role-menu { position: absolute; top: calc(100% + 8px); left: 0; width: 270px; padding: 8px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 20px 50px rgba(0,0,0,.18); opacity: 0; visibility: hidden; transform: translateY(-5px); transition: .16s ease; z-index: 60; }
.role-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
.role-menu a { display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: 10px; }.role-menu a:hover { background: var(--paper); }
.role-menu a > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: #164f86; background: #e2effa; font-weight: 800; font-size: 11px; }
.role-menu strong, .role-menu small { display: block; }.role-menu strong { font-size: 12px; }.role-menu small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.avatar { display: inline-grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 11px; color: #163426; background: #d7ebdf; font: 700 11px "Manrope"; }.avatar.large { width: 48px; height: 48px; border-radius: 14px; font-size: 13px; }
.avatar.blue { background: #dce7fb; color: #315894; }.avatar.violet { background: #e7e1fb; color: #604fa5; }.avatar.amber { background: #f8e8c8; color: #84601d; }.avatar.mint { background: #d5efdf; color: #266a4c; }

.main-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-kicker { margin: 0 12px 9px; color: #7898b6; font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.main-nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #b7c9da; font-size: 12px; font-weight: 500; transition: .16s ease; }
.main-nav a:hover { color: #fff; background: rgba(255,255,255,.05); }.main-nav a.active { color: #f3f9ff; background: var(--forest-2); box-shadow: inset 3px 0 var(--mint); }
.main-nav svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.main-nav b { margin-left: auto; padding: 2px 7px; border-radius: 10px; color: var(--forest); background: var(--mint); font-size: 9px; }
.sidebar-foot { margin-top: auto; }
.demo-note { display: flex; align-items: center; gap: 9px; padding: 12px; margin-bottom: 8px; border-radius: 11px; background: rgba(255,255,255,.04); }
.demo-note > i { width: 8px; height: 8px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(169,227,194,.1); }
.demo-note strong, .demo-note small { display: block; }.demo-note strong { font: 600 10px "DM Sans"; }.demo-note small { color: #91abc3; font-size: 9px; margin-top: 2px; }
.reset-button { width: 100%; padding: 8px; border: 0; color: #91abc3; background: transparent; font-size: 9px; }.reset-button:hover { color: #fff; }

.main-area { grid-column: 2; min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 34px; border-bottom: 1px solid rgba(213,218,214,.8); background: rgba(245,246,242,.9); backdrop-filter: blur(18px); }
.breadcrumb { display: flex; align-items: center; gap: 9px; font-size: 11px; }.breadcrumb span { color: var(--muted); }.breadcrumb b { color: #bdc5c0; }.breadcrumb strong { font-size: 11px; }
.top-actions { display: flex; align-items: center; gap: 12px; }.search-trigger { display: flex; align-items: center; gap: 8px; width: 218px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; color: #8a938f; background: #fff; text-align: left; font-size: 10px; }.search-trigger kbd { margin-left: auto; padding: 2px 5px; border: 1px solid #e1e5e2; border-radius: 4px; color: #9aa19e; background: #f8f9f7; font-size: 8px; }
.notification-button { position: relative; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; }.notification-button i { position: absolute; width: 6px; height: 6px; top: 7px; right: 7px; border: 2px solid #fff; border-radius: 50%; background: var(--coral); }
.user-chip { display: flex; align-items: center; gap: 8px; padding-left: 11px; border-left: 1px solid var(--line); }.user-chip > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #164f86; background: var(--mint); font: 800 10px "Manrope"; }.user-chip strong,.user-chip small { display: block; }.user-chip strong { font-size: 10px; }.user-chip small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 22px; }
.mobile-context,.sidebar-close,.sidebar-backdrop { display: none; }

.page { max-width: 1500px; margin: 0 auto; padding: 36px 34px 56px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }.page-heading.compact { align-items: center; }
.page-heading h1 { margin: 5px 0 7px; font-size: clamp(25px, 2.4vw, 34px); line-height: 1.08; letter-spacing: -.045em; }.page-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.eyebrow { color: #55738f; font-size: 9px; font-weight: 700; letter-spacing: .15em; }
.heading-actions { display: flex; gap: 9px; }
.button { min-height: 38px; padding: 0 15px; border: 1px solid transparent; border-radius: 10px; font-size: 10px; font-weight: 700; }.button.primary { color: #fff; background: var(--forest); box-shadow: 0 5px 14px rgba(11,49,92,.18); }.button.primary:hover { background: #164778; }.button.secondary { border-color: var(--line); color: var(--ink); background: #fff; }.button.light { color: var(--forest); background: #fff; }.button.full { width: 100%; }

.metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }.metrics-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.metric-card { min-height: 151px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }.metric-card.dark { color: #fff; background: var(--forest); border-color: var(--forest); }
.metric-top { display: flex; align-items: center; justify-content: space-between; }.metric-icon { display: inline-grid; place-items: center; width: 35px; height: 35px; margin-bottom: 18px; border-radius: 10px; font-size: 15px; }.metric-icon.mint { color: #174f86; background: #e2effa; }.metric-icon.coral { color: #9d4736; background: #fde1db; }.metric-icon.blue { color: #365d9e; background: #e1e9fb; }.metric-icon.violet { color: #604da6; background: #e9e4fb; }.metric-icon.amber { color: #8b641c; background: #f8ebcf; }
.trend { padding: 4px 7px; border-radius: 8px; font-size: 8px; }.trend.up { color: #24724e; background: #e3f3e9; }.trend.neutral { color: #6e7773; background: #f1f3f0; }
.metric-card > strong { display: block; font-size: 25px; letter-spacing: -.04em; }.metric-card > p { margin: 3px 0; font-size: 11px; font-weight: 600; }.metric-card > small { color: #89928e; font-size: 9px; }

.dashboard-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 16px; margin-bottom: 16px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 20px 15px; }.panel-head h2 { margin: 4px 0 0; font-size: 16px; letter-spacing: -.025em; }.panel-head a { color: #4c6f60; font-size: 9px; font-weight: 700; }
.timeline { padding: 0 20px 16px; }.timeline-row { display: grid; grid-template-columns: 48px 20px 1fr; min-height: 72px; }.timeline-time { padding-top: 8px; text-align: right; }.timeline-time strong,.timeline-time small { display: block; }.timeline-time strong { font-size: 10px; }.timeline-time small { color: #9da5a1; font-size: 8px; margin-top: 2px; }
.timeline-line { position: relative; }.timeline-line::after { content: ""; position: absolute; left: 50%; top: 18px; bottom: -10px; width: 1px; background: #e5e9e6; }.timeline-row:last-child .timeline-line::after { display: none; }.timeline-line i { position: relative; z-index: 2; display: block; width: 9px; height: 9px; margin: 12px auto 0; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #d6ddd8; background: var(--blue); }.timeline-line i.red { background: var(--coral); }.timeline-line i.amber { background: var(--amber); }.timeline-line i.violet { background: var(--violet); }
.timeline-content { padding: 7px 0 11px 9px; border-bottom: 1px solid #f0f2ef; }.timeline-content > div { display: flex; gap: 8px; align-items: center; }.timeline-content strong { font-size: 11px; }.timeline-content p { margin: 3px 0; color: #44504b; font-size: 10px; }.timeline-content small { color: #949c98; font-size: 8px; }
.status { display: inline-flex; align-items: center; width: max-content; padding: 4px 7px; border-radius: 20px; color: #476258; background: #edf2ef; font-size: 8px; font-weight: 700; white-space: nowrap; }.status::before { content: ""; width: 4px; height: 4px; margin-right: 5px; border-radius: 50%; background: currentColor; }
.status.en-curso,.status.en-progreso,.status.en-camino,.status.activo,.status.pagada,.status.pagado,.status.confirmada,.status.cerrada,.status.completada { color: #24714e; background: #e5f4eb; }.status.pendiente,.status.programada,.status.prueba { color: #8e6421; background: #fbefd6; }.status.en-revision { color: #9e4937; background: #fce4de; }
.activity-list { padding: 0 20px 13px; }.activity { display: flex; gap: 10px; padding: 11px 0; border-bottom: 1px solid #f0f2ef; }.activity:last-child { border: 0; }.activity-symbol { display: inline-grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 10px; font-weight: 700; }.activity-symbol.mint { color: #277451; background: #e1f2e8; }.activity-symbol.amber { color: #9a6b17; background: #faedcf; }.activity-symbol.blue { color: #3e63a0; background: #e4ebfa; }.activity-symbol.violet { color: #6753ac; background: #ece7fb; }
.activity p { margin: 1px 0 4px; color: #53605a; font-size: 9px; line-height: 1.45; }.activity p strong { color: var(--ink); font-size: 9px; }.activity a { color: #18558d; font-weight: 700; }.activity small { color: #a0a7a4; font-size: 8px; }

.table-panel { overflow: hidden; }.table-wrap { width: 100%; overflow-x: auto; }.table-wrap table { width: 100%; border-collapse: collapse; white-space: nowrap; }.table-wrap th { padding: 11px 16px; color: #8b9490; background: #f9faf8; border-block: 1px solid #edf0ed; font-size: 8px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }.table-wrap td { padding: 13px 16px; border-bottom: 1px solid #eff1ef; color: #4f5a55; font-size: 9px; }.table-wrap tr:last-child td { border-bottom: 0; }.table-wrap td > strong,.table-wrap td > small { display: block; }.table-wrap td > strong { color: var(--ink); font: 600 10px "DM Sans"; }.table-wrap td > small { color: #969f9a; margin-top: 3px; font-size: 8px; }.table-id,.table-wrap td a { color: #18558d; font-weight: 700; }.priority { padding: 4px 7px; border-radius: 7px; font-size: 8px; font-weight: 700; }.priority.alta,.priority.critica { color: #a34734; background: #fce4de; }.priority.media { color: #8b641c; background: #f8ebcf; }.priority.baja { color: #42668e; background: #e6edf7; }
.identity { display: flex; align-items: center; gap: 9px; }.identity strong,.identity small { display: block; }.identity strong { color: var(--ink); font-size: 10px; }.identity small { color: #949d98; font-size: 8px; margin-top: 2px; }.row-menu { border: 0; color: #87918c; background: transparent; }.count-pill { display: inline-grid; place-items: center; min-width: 24px; height: 23px; padding: 0 6px; border-radius: 8px; color: #4d5a54; background: #f1f3f1; font-size: 9px; }.count-pill.attention { color: #9a4c3a; background: #fce5df; }
.toolbar { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }.filter-search { display: flex; align-items: center; gap: 7px; width: min(350px, 40vw); height: 38px; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }.filter-search input { width: 100%; border: 0; outline: 0; font-size: 10px; }.filter-button { min-height: 34px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; color: #59635f; background: #fff; font-size: 9px; }.toolbar-count { margin-left: auto; color: #89928e; font-size: 9px; }

.asset-summary { display: flex; gap: 24px; padding: 15px 18px; margin-bottom: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.asset-summary div { display: flex; align-items: baseline; gap: 7px; padding-right: 24px; border-right: 1px solid var(--line); }.asset-summary div:last-child { border: 0; }.asset-summary span { font: 700 16px "Manrope"; }.asset-summary small { color: var(--muted); font-size: 9px; }.asset-summary .warn span { color: #9b6d1e; }.asset-summary .danger span { color: #a54a37; }
.asset-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }.asset-card { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }.asset-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }.asset-type { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; color: #174f86; background: #e2effa; font-size: 20px; }.asset-card h3 { margin: 6px 0 3px; font-size: 14px; }.asset-card > p { margin: 0; color: var(--muted); font-size: 10px; }.asset-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 17px 0; }.asset-card dl div { padding: 9px 10px; border-radius: 9px; background: #f7f8f6; }.asset-card dt { color: #949c98; font-size: 8px; }.asset-card dd { margin: 3px 0 0; font-size: 9px; font-weight: 600; }.health > div { display: flex; justify-content: space-between; font-size: 9px; }.health progress { appearance: none; width: 100%; height: 5px; margin-top: 7px; border: 0; border-radius: 5px; overflow: hidden; }.health progress::-webkit-progress-bar { background: #edf0ed; }.health progress::-webkit-progress-value { background: var(--mint-deep); }.asset-card-foot { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; margin-top: 15px; border-top: 1px solid var(--line); font-size: 8px; }.asset-card-foot span { color: var(--muted); }.asset-card-foot strong { color: var(--ink); }.asset-card-foot button { border: 0; color: #18558d; background: transparent; font-size: 9px; font-weight: 700; }

.kanban-tabs { display: flex; gap: 3px; margin-bottom: 14px; padding: 4px; border: 1px solid var(--line); border-radius: 11px; background: #fff; width: max-content; }.kanban-tabs button { padding: 7px 10px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: 9px; }.kanban-tabs button.active { color: #fff; background: var(--forest); }.kanban-tabs b { margin-left: 4px; }
.orders-list { display: flex; flex-direction: column; gap: 10px; }.order-card { position: relative; display: grid; grid-template-columns: minmax(280px,1.3fr) .8fr auto; gap: 20px; align-items: center; overflow: hidden; padding: 17px 18px 17px 21px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow); }.order-accent { position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--amber); }.order-accent.en-progreso { background: var(--mint-deep); }.order-accent.completada,.order-accent.cerrada { background: var(--blue); }.order-title { display: flex; gap: 7px; align-items: center; }.order-title a { color: #18558d; font: 700 9px "Manrope"; }.order-main h3 { margin: 7px 0 3px; font-size: 13px; }.order-main p { margin: 0 0 5px; color: #59655f; font-size: 9px; }.order-main > small { color: #929b96; font-size: 8px; }.order-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.order-meta small,.order-meta strong,.order-meta span { display: block; }.order-meta small { color: #9aa29e; font-size: 7px; letter-spacing: .1em; }.order-meta strong { margin: 4px 0 2px; font-size: 9px; }.order-meta span { color: var(--muted); font-size: 8px; }.order-action button,.small-action { padding: 7px 10px; border: 1px solid #dbe5ee; border-radius: 8px; color: #18558d; background: #fff; font-size: 8px; font-weight: 700; }.order-action button:disabled { color: #a0a7a3; background: #f5f6f4; cursor: default; }

.calendar-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }.calendar-toolbar > div { display: flex; align-items: center; gap: 4px; }.calendar-toolbar button,.view-toggle button { min-width: 32px; height: 31px; border: 1px solid var(--line); color: var(--muted); background: #fff; font-size: 9px; }.calendar-toolbar strong { margin-left: 10px; font-size: 12px; }.view-toggle { padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.view-toggle button { border: 0; border-radius: 6px; }.view-toggle button.active { color: #fff; background: var(--forest); }
.calendar-nav,.view-toggle a{display:inline-grid;place-items:center;min-width:34px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:#fff;font-size:10px;text-decoration:none}.view-toggle a{border:0}.view-toggle a.active{color:#fff;background:var(--forest)}.agenda-date-groups{display:grid;gap:10px}.agenda-date{display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:12px;color:#fff;background:var(--forest)}.agenda-date span{font-size:9px;font-weight:800}.agenda-date strong{font-size:20px}.agenda-date small{color:#dbe9f7}.agenda-card{display:grid!important}.muted-copy{margin:0;color:var(--muted)}
.calendar-board { overflow: hidden; }.week-head { display: grid; grid-template-columns: 62px repeat(6,1fr); border-bottom: 1px solid var(--line); background: #fbfcfa; }.week-head div { padding: 10px; text-align: center; border-left: 1px solid var(--line); }.week-head small,.week-head b { display: block; }.week-head small { color: #8b9590; font-size: 7px; }.week-head b { margin-top: 3px; font-size: 13px; }.week-head .today b { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: var(--forest); }
.week-grid { position: relative; display: grid; grid-template-columns: 62px repeat(6,1fr); grid-template-rows: repeat(11, 49px); min-width: 750px; }.week-grid .hour { padding: 7px 10px; color: #929b97; border-right: 1px solid var(--line); font-size: 8px; text-align: right; }.week-grid > i { border-right: 1px solid #edf0ed; border-bottom: 1px solid #edf0ed; }.calendar-event { position: absolute; z-index: 3; left: calc(62px + (var(--day) - 1) * ((100% - 62px) / 6) + 4px); top: calc((var(--start) - 1) * 49px + 3px); width: calc((100% - 62px) / 6 - 8px); height: calc(var(--span) * 49px - 6px); padding: 7px; overflow: hidden; border-left: 3px solid #4f75bd; border-radius: 7px; color: #355488; background: #e9effc; }.calendar-event.amber { color: #7c591e; border-color: #c59337; background: #faf0dc; }.calendar-event.mint { color: #2d684d; border-color: #4a9770; background: #e3f2e9; }.calendar-event.violet { color: #5d4b94; border-color: #8371ca; background: #ece8fa; }.calendar-event small,.calendar-event strong,.calendar-event span,.calendar-event em { display: block; font-style: normal; }.calendar-event small { font-size: 6px; }.calendar-event strong { margin: 3px 0; font-size: 8px; }.calendar-event span,.calendar-event em { font-size: 7px; }.calendar-event em { margin-top: 3px; opacity: .7; }.now-line { position: absolute; z-index: 4; left: 62px; right: 0; top: calc((var(--start) - 1) * 49px); border-top: 1px solid var(--coral); }.now-line span { position: absolute; left: -36px; top: -7px; padding: 1px 4px; color: #fff; background: var(--coral); border-radius: 4px; font-size: 6px; }

.team-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }.team-card { padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }.team-head { display: flex; align-items: flex-start; justify-content: space-between; }.team-card h3 { margin: 13px 0 3px; font-size: 13px; }.team-card > p { margin: 0 0 11px; color: var(--muted); font-size: 8px; }.role-badge { display: inline-block; padding: 5px 8px; border-radius: 7px; color: #476156; background: #eef2ef; font-size: 8px; font-weight: 700; }.member-stats { display: flex; justify-content: space-between; margin: 15px 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 8px; }.member-stats b { color: var(--ink); }.presence i { display: inline-block; width: 5px; height: 5px; margin-right: 4px; border-radius: 50%; background: #48a879; }.card-link { width: 100%; padding-top: 10px; border: 0; border-top: 1px solid var(--line); color: #18558d; background: transparent; font-size: 8px; font-weight: 700; text-align: left; }.invite-card { display: flex; flex-direction: column; align-items: center; justify-content: center; border-style: dashed; text-align: center; }.invite-card > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #1b5a92; background: #e4eff9; font-size: 22px; }.invite-card p { max-width: 180px; line-height: 1.5; }.permissions-preview { padding-bottom: 10px; }.secure-note { color: #185f99; font-size: 8px; }.permission-row { display: grid; grid-template-columns: 1.2fr repeat(5,1fr); gap: 8px; align-items: center; padding: 11px 20px; border-top: 1px solid var(--line); font-size: 8px; }.permission-row span { color: #1d659f; }.permission-row span::before { content: "✓ "; }.permission-row del { color: #a2aaa6; text-decoration: none; }.permission-row del::before { content: "× "; }

.platform-grid { display: grid; grid-template-columns: 1.5fr .7fr; gap: 16px; margin-bottom: 16px; }.tenant-row { display: grid; grid-template-columns: 48px 1.6fr repeat(5,.75fr) 20px; gap: 12px; align-items: center; padding: 14px 20px; border-top: 1px solid var(--line); }.tenant-row small,.tenant-row strong { display: block; }.tenant-row small { color: #909995; font-size: 7px; }.tenant-row strong { margin-top: 3px; font-size: 9px; }.tenant-main > div { display: flex; align-items: center; gap: 8px; }.tenant-main > div strong { font-size: 10px; margin: 0; }.health-panel { padding-bottom: 13px; }.health-ok { color: #277351; font-size: 8px; }.health-row { display: flex; justify-content: space-between; padding: 11px 20px; border-top: 1px solid var(--line); font-size: 8px; }.health-row i { display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; }.health-row i.ok { background: #4aa977; }.health-row i.warn { background: var(--amber); }.mini-storage { height: 5px; margin: 4px 20px 11px; overflow: hidden; border-radius: 4px; background: #edf0ed; }.mini-storage i { display: block; height: 100%; background: var(--mint-deep); }.last-check { display: block; padding: 0 20px; color: #969e9a; font-size: 7px; }.audit-list { padding: 0 20px 12px; }.audit-list > div { display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }.audit-list p { margin: 0; color: #57625d; font-size: 8px; }.audit-list small { color: #9ba39f; font-size: 7px; }

.portal-page { min-height: calc(100vh - 72px); background: #f4f6f8; }.portal-hero { display: flex; align-items: flex-end; justify-content: space-between; padding: 38px clamp(25px,5vw,70px); color: #fff; background: radial-gradient(circle at 80% 20%, #245b8e 0, transparent 35%), var(--forest); }.portal-hero .eyebrow { color: var(--mint); }.portal-hero h1 { margin: 6px 0; font-size: 36px; letter-spacing: -.05em; }.portal-hero p { margin: 0; color: #bed0e1; font-size: 11px; }.portal-content { max-width: 1200px; margin: 0 auto; padding: 24px 34px 50px; }.portal-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; margin-top: -42px; position: relative; }.portal-summary article { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow); }.portal-summary .metric-icon { margin: 0; }.portal-summary strong { font-size: 18px; }.portal-summary p { margin: 2px 0 0; color: var(--muted); font-size: 8px; }.portal-summary a { margin-left: auto; color: #18558d; font-size: 8px; font-weight: 700; }.portal-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 14px; margin: 16px 0; }.next-visit { padding-bottom: 16px; }.visit-date { display: flex; align-items: center; gap: 15px; padding: 10px 20px 17px; }.visit-date > div:first-child { width: 52px; padding: 8px; border-radius: 12px; color: #fff; background: var(--forest); text-align: center; }.visit-date small,.visit-date strong { display: block; }.visit-date > div:first-child small { color: var(--mint); font-size: 7px; }.visit-date > div:first-child strong { font-size: 20px; }.visit-date h3 { margin: 0 0 4px; font-size: 13px; }.visit-date p { margin: 0 0 4px; font-size: 10px; }.visit-date > div:last-child small { color: var(--muted); font-size: 8px; }.visit-actions { display: flex; align-items: center; gap: 12px; padding: 0 20px; }.text-button { border: 0; color: #18558d; background: transparent; font-size: 8px; font-weight: 700; }.portal-contact { padding: 18px; }.provider { display: flex; align-items: center; gap: 11px; margin: 12px 0; }.provider h3 { margin: 0 0 3px; font-size: 12px; }.provider p { margin: 0; color: var(--muted); font-size: 8px; }.portal-contact dl { margin: 15px 0; }.portal-contact dl div { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 8px; }.portal-contact dt { color: var(--muted); }.portal-contact dd { margin: 0; font-weight: 600; }.portal-history { overflow: hidden; }.portal-document { display: grid; grid-template-columns: 38px 1fr auto auto; gap: 12px; align-items: center; padding: 13px 20px; border-top: 1px solid var(--line); }.document-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #315f87; background: #e5eef7; font-size: 8px; font-weight: 800; }.document-icon.invoice { color: #6958a1; background: #ebe7f8; }.portal-document strong,.portal-document small { display: block; }.portal-document strong { font-size: 9px; }.portal-document small { color: var(--muted); font-size: 8px; margin-top: 3px; }.portal-document button { border: 0; color: #18558d; background: transparent; font-size: 8px; font-weight: 700; }.published { color: #277552; font-size: 8px; }

.fiscal-notice { display: flex; align-items: center; gap: 11px; margin-bottom: 15px; padding: 12px 15px; border: 1px solid #cbdced; border-radius: 12px; color: #214d75; background: #edf5fc; }.fiscal-notice > span { display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; color: #fff; background: var(--forest); font: 800 11px "Manrope"; }.fiscal-notice strong { display: block; font-size: 10px; }.fiscal-notice p { margin: 2px 0 0; font-size: 9px; }.table-link { padding: 0; border: 0; color: #18558d; background: transparent; font-size: 9px; font-weight: 700; }.not-published { color: #8a938f; font-size: 8px; }.status.borrador { color: #687789; background: #edf1f5; }.status.enviada { color: #1b5a92; background: #e5eff9; }

.modal { width: min(620px, calc(100% - 28px)); padding: 0; border: 0; border-radius: 18px; color: var(--ink); background: #fff; box-shadow: 0 30px 90px rgba(7,28,51,.28); }.modal.wide { width: min(760px, calc(100% - 28px)); }.modal::backdrop { background: rgba(5,24,43,.58); backdrop-filter: blur(3px); }.modal form { padding: 23px; }.modal-head { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 21px; }.modal-head h2 { margin: 5px 0 4px; font-size: 21px; letter-spacing: -.04em; }.modal-head p { margin: 0; color: var(--muted); font-size: 9px; }.modal-head > button { width: 30px; height: 30px; border: 0; border-radius: 8px; color: var(--muted); background: #f2f4f1; font-size: 18px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.form-grid label { display: flex; flex-direction: column; gap: 6px; color: #55615b; font-size: 9px; font-weight: 700; }.form-grid .span-2 { grid-column: 1/-1; }.form-grid input,.form-grid select,.form-grid textarea { width: 100%; padding: 10px 11px; border: 1px solid #dfe4e0; border-radius: 9px; outline: 0; color: var(--ink); background: #fbfcfa; font-size: 10px; }.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color: #4b7eae; box-shadow: 0 0 0 3px rgba(36,91,142,.12); }.form-grid textarea { resize: vertical; }.modal-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 19px; margin-top: 20px; border-top: 1px solid var(--line); }

.invoice-builder-modal { width: min(1240px, calc(100% - 28px)); max-height: calc(100vh - 30px); }.invoice-builder-modal form { min-width: 0; }.invoice-builder-grid { display: grid; grid-template-columns: minmax(480px, 1fr) minmax(430px, .92fr); gap: 20px; }.invoice-editor { min-width: 0; }.editor-section-head,.section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 19px 0 9px; }.editor-section-head strong,.editor-section-head small { display: block; }.editor-section-head strong { font-size: 10px; }.editor-section-head small { margin-top: 2px; color: var(--muted); font-size: 8px; }.invoice-items { display: flex; flex-direction: column; gap: 8px; }.invoice-item-row { display: grid; grid-template-columns: minmax(145px,2fr) 60px minmax(95px,.8fr) 70px 26px; gap: 7px; align-items: end; }.invoice-item-row label { display: flex; flex-direction: column; gap: 5px; color: #55615b; font-size: 8px; font-weight: 700; }.invoice-item-row input,.invoice-item-row select,.custom-fields-editor input { width: 100%; min-width: 0; height: 35px; padding: 7px 8px; border: 1px solid #dfe4e0; border-radius: 8px; outline: 0; background: #fbfcfa; font-size: 9px; }.invoice-item-row input:focus,.invoice-item-row select:focus,.custom-fields-editor input:focus { border-color: #4b7eae; box-shadow: 0 0 0 3px rgba(36,91,142,.1); }.remove-line,.custom-fields-editor button { width: 26px; height: 35px; border: 0; border-radius: 8px; color: #a54a37; background: #fff0ec; }.invoice-extras { margin-top: 15px; }.custom-fields-editor { display: flex; flex-direction: column; gap: 7px; }.custom-fields-editor > div { display: grid; grid-template-columns: 1fr 1.5fr 26px; gap: 7px; }.preview-kicker { display: block; margin-bottom: 7px; color: #6e7e8f; font-size: 7px; font-weight: 800; letter-spacing: .13em; }.invoice-preview-wrap { min-width: 0; padding: 15px; border-radius: 13px; background: #e9edf2; }.invoice-sheet { min-height: 560px; padding: 24px; color: #223043; background: #fff; box-shadow: 0 8px 25px rgba(16,42,69,.12); }.invoice-sheet header { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 2px solid var(--forest); }.invoice-brand { display: flex; align-items: center; gap: 9px; }.invoice-brand img { width: 38px; height: 38px; border-radius: 10px; }.invoice-brand strong,.invoice-brand small,.invoice-title span,.invoice-title strong,.invoice-title small { display: block; }.invoice-brand strong { font-size: 11px; }.invoice-brand small { margin-top: 2px; color: var(--muted); font-size: 7px; text-transform: uppercase; }.invoice-title { max-width: 55%; text-align: right; }.invoice-title span { color: #52667a; font-size: 7px; text-transform: uppercase; }.invoice-title strong { margin: 3px 0; color: var(--forest); font-size: 16px; }.invoice-title small { color: #a24e3b; font-size: 6px; }.invoice-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 18px 0; }.invoice-parties small,.invoice-parties strong,.invoice-parties span { display: block; }.invoice-parties small { margin-bottom: 6px; color: #8290a0; font-size: 6px; letter-spacing: .1em; }.invoice-parties strong { margin-bottom: 4px; font-size: 9px; }.invoice-parties span { margin-top: 2px; color: #627184; font-size: 7px; }.invoice-meta { display: grid; grid-template-columns: repeat(3,1fr); margin-bottom: 16px; border: 1px solid #e3e8ed; border-radius: 8px; }.invoice-meta div { padding: 8px 10px; border-right: 1px solid #e3e8ed; }.invoice-meta div:last-child { border: 0; }.invoice-meta small,.invoice-meta strong { display: block; }.invoice-meta small { color: #8795a5; font-size: 6px; }.invoice-meta strong { margin-top: 3px; font-size: 7px; }.invoice-preview-table { width: 100%; border-collapse: collapse; table-layout: fixed; }.invoice-preview-table th { padding: 8px 5px; color: #fff; background: var(--forest); font-size: 6px; text-align: right; text-transform: uppercase; }.invoice-preview-table th:first-child,.invoice-preview-table td:first-child { width: 42%; text-align: left; }.invoice-preview-table td { padding: 9px 5px; border-bottom: 1px solid #e7ebef; color: #526173; font-size: 7px; text-align: right; overflow-wrap: anywhere; }.invoice-preview-footer { display: grid; grid-template-columns: 1fr 185px; gap: 20px; margin-top: 18px; }.invoice-preview-footer p { margin: 0 0 5px; color: #5e6c7c; font-size: 7px; line-height: 1.5; }.invoice-preview-footer small { color: #7b8897; font-size: 6px; }.invoice-preview-footer dl { margin: 0; }.invoice-preview-footer dl div { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid #e7ebef; font-size: 7px; }.invoice-preview-footer dd { margin: 0; font-weight: 700; }.invoice-preview-footer .grand-total { margin-top: 4px; padding: 9px; border: 0; border-radius: 7px; color: #fff; background: var(--forest); font-size: 9px; }.invoice-sheet footer { margin-top: 24px; padding-top: 9px; border-top: 1px solid #e7ebef; color: #8d98a5; font-size: 6px; text-align: center; }.invoice-view-modal { width: min(820px, calc(100% - 28px)); padding: 20px; }.invoice-sheet.persisted { min-height: 0; box-shadow: none; border: 1px solid var(--line); }.invoice-dialog-head,.invoice-dialog-actions { display: flex; justify-content: space-between; align-items: center; }.invoice-dialog-head { margin-bottom: 14px; }.invoice-dialog-head h2 { margin: 4px 0 0; }.invoice-dialog-head > button,.asset-life-head > button { width: 31px; height: 31px; border: 0; border-radius: 8px; color: var(--muted); background: #f0f3f6; font-size: 18px; }.invoice-dialog-actions { margin-top: 14px; }.invoice-dialog-actions > div { display: flex; gap: 8px; }

.asset-life-modal { width: min(1080px, calc(100% - 28px)); max-height: calc(100vh - 30px); padding: 0; }.asset-life-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px; border-bottom: 1px solid var(--line); }.asset-life-identity { display: flex; align-items: center; gap: 13px; }.asset-life-identity h2 { margin: 4px 0; font-size: 20px; }.asset-life-identity p { margin: 0; color: var(--muted); font-size: 9px; }.asset-life-body { display: grid; grid-template-columns: 315px 1fr; min-height: 570px; }.asset-profile { padding: 18px; border-right: 1px solid var(--line); background: #f8fafc; }.asset-profile section { padding: 16px 2px 3px; border-top: 1px solid var(--line); }.asset-health-large { padding: 14px; margin-bottom: 14px; border: 1px solid #dce6f0; border-radius: 12px; background: #fff; }.asset-health-large > div { display: flex; justify-content: space-between; align-items: center; font-size: 8px; }.asset-health-large > strong { display: block; margin: 10px 0 3px; color: var(--forest); font-size: 27px; }.asset-health-large progress { width: 100%; height: 6px; accent-color: var(--mint-deep); }.asset-health-large small { display: block; margin-top: 6px; color: var(--muted); font-size: 6px; }.asset-profile dl { margin: 8px 0 12px; }.asset-profile dl div { display: flex; justify-content: space-between; gap: 13px; padding: 6px 0; border-bottom: 1px solid #e8edf2; font-size: 7px; }.asset-profile dt { color: var(--muted); }.asset-profile dd { margin: 0; font-weight: 700; text-align: right; }.asset-documents { display: flex; flex-direction: column; gap: 5px; margin-top: 9px; }.asset-documents button { display: flex; align-items: center; gap: 8px; padding: 7px; border: 1px solid #dce5ed; border-radius: 8px; color: #36536e; background: #fff; font-size: 7px; text-align: left; }.asset-documents button span { padding: 4px; border-radius: 4px; color: #9d4937; background: #fce4de; font-size: 6px; font-weight: 800; }.asset-history-panel { min-width: 0; padding: 20px 22px; }.section-title { margin: 0 0 12px; }.section-title h3 { margin: 4px 0 0; font-size: 14px; }.asset-specs > div:last-child { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.asset-specs dl { margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fafbfd; }.asset-specs dt { color: var(--muted); font-size: 7px; }.asset-specs dd { margin: 4px 0 0; font-size: 8px; font-weight: 700; }.asset-history { margin-top: 24px; }.life-timeline article { display: grid; grid-template-columns: 18px 1fr; gap: 10px; min-height: 105px; }.life-marker { position: relative; }.life-marker::after { content: ""; position: absolute; top: 13px; bottom: -4px; left: 5px; width: 1px; background: #d9e2eb; }.life-timeline article:last-child .life-marker::after { display: none; }.life-marker i { position: relative; z-index: 1; display: block; width: 11px; height: 11px; margin-top: 3px; border: 3px solid #dcebf8; border-radius: 50%; background: var(--mint-deep); }.life-event-head { display: flex; align-items: center; justify-content: space-between; }.life-event-head > span:first-child { color: var(--muted); font-size: 7px; }.life-timeline h4 { margin: 4px 0; font-size: 10px; }.life-timeline p { margin: 0 0 5px; color: #556476; font-size: 8px; line-height: 1.5; }.life-timeline small { color: #8894a1; font-size: 7px; }.asset-life-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 15px 22px; border-top: 1px solid var(--line); }
.toast { position: fixed; z-index: 100; top: 86px; right: 24px; display: flex; align-items: center; gap: 9px; max-width: 370px; padding: 11px 13px; border: 1px solid #cfe5d7; border-radius: 12px; color: #276447; background: #eff9f3; box-shadow: 0 14px 40px rgba(18,54,39,.14); font-size: 10px; animation: toast-in .25s ease; }.toast > span { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: #fff; background: #3e9870; }.toast.error { color: #934735; border-color: #efd3cb; background: #fff2ef; }.toast.error > span { background: var(--coral); }.toast button { margin-left: auto; border: 0; color: inherit; background: transparent; font-size: 16px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } }
.command-overlay { position: fixed; inset: 0; z-index: 90; padding-top: 11vh; background: rgba(5,24,43,.6); backdrop-filter: blur(4px); }.command-box { width: min(590px,calc(100% - 28px)); margin: 0 auto; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 35px 100px rgba(0,0,0,.3); }.command-input { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--line); }.command-input input { flex: 1; border: 0; outline: 0; font-size: 13px; }.command-input button { border: 1px solid var(--line); border-radius: 5px; color: var(--muted); background: #f8f9f7; font-size: 7px; }.command-results { padding: 10px; }.command-results > small { display: block; padding: 5px 8px; color: #919a95; font-size: 7px; letter-spacing: .1em; }.command-results a { display: flex; align-items: center; gap: 10px; padding: 9px; border-radius: 9px; }.command-results a:hover { background: #f4f6f8; }.result-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 9px; font-size: 8px; font-weight: 800; }.result-icon.coral { color: #964937; background: #fbe2dc; }.result-icon.blue { color: #3e619c; background: #e4ebfa; }.result-icon.green { color: #2d6e50; background: #e0f0e6; }.command-results strong,.command-results small { display: block; }.command-results strong { font-size: 9px; }.command-results small { margin-top: 2px; color: var(--muted); font-size: 8px; }.command-results kbd { margin-left: auto; color: #9aa29e; font-size: 9px; }
.empty-page { min-height: calc(100vh - 72px); display: grid; place-content: center; justify-items: center; text-align: center; }.empty-icon { font: 800 50px "Manrope"; color: #d4dcd7; }.empty-page h1 { margin: 5px; }.empty-page p { color: var(--muted); font-size: 11px; }

.invoice-dialog-actions form { padding: 0; }
.mobile-agenda-list { display: none; }

@media print {
    body * { visibility: hidden !important; }
    dialog[open], dialog[open] .invoice-sheet, dialog[open] .invoice-sheet * { visibility: visible !important; }
    dialog[open] { position: absolute; inset: 0; width: 100%; max-width: none; max-height: none; padding: 0; border: 0; }
    dialog[open] .invoice-sheet { width: 100%; min-height: 100vh; padding: 28px; border: 0; box-shadow: none; }
    dialog[open] > :not(.invoice-sheet) { display: none !important; }
}

/* Phase 5: mobile technical execution and auditable work-order closure */
.work-order-detail { margin-top:22px; overflow:hidden; scroll-margin-top:88px; }
.service-request-board { margin:18px 0; }.service-request-list { padding:0 18px 12px; }.service-request-list>article { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(360px,.8fr); gap:14px; align-items:center; padding:14px 0; border-top:1px solid var(--line); }.service-request-list h3 { margin:4px 0; font-size:12px; }.service-request-list p { margin:0; color:#46596b; font-size:9px; }.service-request-list small { display:block; margin-top:5px; color:var(--muted); font-size:8px; }.request-convert-form { display:grid; grid-template-columns:1.2fr 1fr 90px auto; gap:6px; }.request-convert-form input,.request-convert-form select { min-width:0; min-height:38px; padding:7px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:8px; }
.work-order-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px; border-bottom:1px solid var(--line); }
.work-order-detail-head h2 { margin:5px 0; font-size:22px; }.work-order-detail-head p { margin:0; color:var(--muted); font-size:10px; }
.work-order-detail > .flow-note { margin:16px 22px 0; }
.work-order-mobile-meta { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); background:#f8fafc; }
.work-order-mobile-meta div { padding:13px 18px; border-right:1px solid var(--line); }.work-order-mobile-meta div:last-child { border:0; }.work-order-mobile-meta small,.work-order-mobile-meta strong { display:block; }.work-order-mobile-meta small { color:var(--muted); font-size:7px; text-transform:uppercase; }.work-order-mobile-meta strong { margin-top:4px; font-size:9px; }
.work-order-execution-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr); }
.work-order-execution-grid > main { min-width:0; padding:22px; border-right:1px solid var(--line); }.work-order-execution-grid > aside { display:flex; min-width:0; padding:18px; flex-direction:column; background:#f8fafc; }
.work-order-execution-grid > aside > .execution-side-card { order:4; }.work-order-execution-grid > aside > .execution-side-card:nth-of-type(2) { order:1; border-color:#b9d8ee; box-shadow:0 8px 22px rgba(19,70,111,.08); }.work-order-execution-grid > aside > .execution-side-card:last-of-type { order:2; border-color:#b9d8ee; }.work-order-execution-grid > aside > .execution-side-card:first-of-type { order:3; }
.technical-report-form { display:grid; grid-template-columns:1fr; gap:12px; }.technical-report-form .section-title,.technical-report-form label { grid-column:1/-1; }.technical-report-form label,.stack-form { display:grid; gap:6px; color:#586878; font-size:9px; font-weight:700; }.technical-report-form textarea,.technical-report-form input,.stack-form input,.stack-form select,.inline-create-form input,.signature-box input { width:100%; min-height:42px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:11px; }.technical-report-form textarea { resize:vertical; line-height:1.5; }.technical-report-form .button { min-height:42px; justify-self:end; }.technical-report-form [data-autosave-status] { display:block; margin-top:4px; color:#62788d; font-size:8px; font-weight:600; }.technical-report-form [data-autosave-status][data-state="saving"],.technical-report-form [data-autosave-status][data-state="pending"] { color:#8a671f; }.technical-report-form [data-autosave-status][data-state="saved"] { color:#28734e; }.technical-report-form [data-autosave-status][data-state="error"] { color:#a43d35; }
.execution-section { margin-top:26px; }.execution-list { display:grid; gap:7px; }.execution-list article { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:#fafbfd; }.execution-list strong,.execution-list small { display:block; }.execution-list strong { font-size:9px; }.execution-list small { margin-top:3px; color:var(--muted); font-size:7px; }.execution-list b { color:var(--forest); font-size:9px; white-space:nowrap; }
.material-form input:nth-last-of-type(-n+3) { flex:0 1 90px; }
.execution-side-card { padding:15px; margin-bottom:13px; border:1px solid var(--line); border-radius:12px; background:#fff; }.execution-side-card h3 { margin:5px 0 12px; font-size:13px; }
.checklist-row { border-top:1px solid #edf0f4; }.checklist-row label { display:flex; align-items:flex-start; gap:8px; padding:10px 2px; color:#3e4f61; font-size:9px; line-height:1.4; cursor:pointer; }.checklist-row input { width:17px; height:17px; flex:0 0 17px; margin-top:1px; accent-color:var(--forest); }.checklist-row.is-complete span,.checklist-row:has(input:checked) span { color:#6d7d89; text-decoration:line-through; }[data-checklist-status]:not(:empty){margin:8px 0;padding:7px 9px;border-radius:7px;color:#285d49;background:#edf8f2;font-size:8px;font-weight:700}
.inline-create-form,.stack-form,.signature-box form { display:grid; gap:8px; margin-top:10px; }.inline-create-form label { font-size:8px; }.evidence-list { display:grid; gap:6px; }.evidence-list span { display:grid; grid-template-columns:50px 1fr; gap:5px; padding:9px; border-radius:8px; background:#f1f7fb; font-size:8px; }.evidence-list b { color:#245b8e; text-transform:uppercase; }.evidence-list small { grid-column:2; color:var(--muted); }.execution-side-card input[type="file"] { padding:9px; border:1px dashed #6f9fc4; border-radius:9px; background:#f4f9fd; cursor:pointer; }
.signature-box { margin-top:8px; padding:9px; border:1px solid var(--line); border-radius:9px; }.signature-box summary { color:#244d73; font-size:9px; font-weight:800; cursor:pointer; }.signature-box canvas { width:100%; height:105px; border:1px dashed #92a7ba; border-radius:8px; background:#fff; touch-action:none; }.signature-box p { margin:10px 0 0; }.signature-box p strong,.signature-box p small { display:block; }.signature-box p small { margin-top:3px; color:var(--muted); font-size:8px; }
.version-list a { display:grid; gap:3px; padding:9px; border:1px solid #cfe0ef; border-radius:8px; background:#edf5fc; }.version-list strong { font-size:10px; }.version-list small { color:var(--muted); font-size:7px; overflow-wrap:anywhere; }.version-list b { margin-top:4px; color:#18558d; font-size:8px; }
.work-order-close-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 22px; border-top:1px solid var(--line); background:#fff; }.work-order-close-bar strong,.work-order-close-bar small { display:block; }.work-order-close-bar strong { font-size:11px; }.work-order-close-bar small { margin-top:3px; color:var(--muted); font-size:8px; }

@media(max-width:1000px){.service-request-list>article{grid-template-columns:1fr auto}.request-convert-form{grid-column:1/-1}}
@media(max-width:1100px){.work-order-execution-grid{grid-template-columns:1fr}.work-order-execution-grid>main{border-right:0;border-bottom:1px solid var(--line)}.work-order-mobile-meta{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:640px){.service-request-list{padding-inline:13px}.service-request-list>article{grid-template-columns:1fr}.service-request-list>article>.priority{justify-self:start}.request-convert-form{grid-template-columns:1fr 1fr}.request-convert-form select,.request-convert-form .button{grid-column:1/-1;min-height:44px;font-size:11px}.request-convert-form input{min-height:44px;font-size:14px}.work-order-detail-head{align-items:stretch;flex-direction:column;padding:16px}.work-order-detail-head .customer-detail-actions{grid-template-columns:1fr}.work-order-detail-head .customer-detail-actions .status{grid-column:auto}.work-order-mobile-meta{grid-template-columns:1fr}.work-order-mobile-meta div{padding:11px}.work-order-execution-grid>main,.work-order-execution-grid>aside{padding:13px}.technical-report-form{grid-template-columns:1fr}.technical-report-form>*{grid-column:auto!important}.technical-report-form .button{width:100%;justify-self:stretch}.technical-report-form textarea,.technical-report-form input,.stack-form input,.stack-form select,.inline-create-form input,.signature-box input{font-size:16px;min-height:46px}.execution-list article{align-items:flex-start}.work-order-close-bar{align-items:stretch;flex-direction:column;position:sticky;bottom:0;z-index:3}.work-order-close-bar .button{width:100%;min-height:46px}}

@media print{
    .work-order-detail,.work-order-detail *{visibility:visible!important}.work-order-detail{position:absolute;inset:0;margin:0;border:0;box-shadow:none}.work-order-detail-head .customer-detail-actions,.technical-report-form button,.inline-data-form,.inline-create-form,.stack-form,.signature-box form,.work-order-close-bar form{display:none!important}.work-order-execution-grid{grid-template-columns:1.35fr .65fr}.work-order-execution-grid>main{padding:14px}.work-order-execution-grid>aside{padding:10px}.work-order-close-bar{display:none}.technical-report-form textarea,.technical-report-form input{border:0;padding:4px;background:transparent}.technical-report-form{gap:5px}.execution-section{margin-top:12px}.execution-side-card{break-inside:avoid;margin-bottom:7px;padding:9px}
}

@media(max-width:640px){
    .material-form input:nth-last-of-type(-n+3){flex:none;min-height:46px;height:auto}
    .inline-create-form input[type="checkbox"]{width:auto;min-height:0;height:auto}
}

@media (max-width: 1120px) {
    .metrics-grid { grid-template-columns: repeat(2,1fr); }
    .team-grid { grid-template-columns: repeat(2,1fr); }
    .tenant-row { grid-template-columns: 48px 1.4fr repeat(3,.7fr) 20px; }.tenant-row > div:nth-of-type(4),.tenant-row > div:nth-of-type(5) { display:none; }
    .order-card { grid-template-columns: 1fr .8fr; }.order-action { grid-column: 1/-1; }.order-action button { width: 100%; }
    .invoice-builder-grid { grid-template-columns: 1fr; }.invoice-preview-wrap { max-width: 700px; width: 100%; margin: 0 auto; }
}
@media (max-width: 850px) {
    body.sidebar-open { overflow: hidden; }
    .demo-shell { display: block; }
    .sidebar { width: min(320px, 88vw); height: 100dvh; padding-top: max(26px, env(safe-area-inset-top)); padding-bottom: max(18px, env(safe-area-inset-bottom)); overflow-y: auto; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 20px 0 50px rgba(0,0,0,.22); }
    .sidebar.open { transform: translateX(0); }
    .sidebar-close { display: grid; place-items: center; width: 40px; height: 40px; margin-left: auto; border: 0; border-radius: 10px; color: #dceaf6; background: rgba(255,255,255,.08); font-size: 22px; }
    .sidebar-backdrop { position: fixed; inset: 0; z-index: 29; width: 100%; height: 100%; border: 0; background: rgba(5,24,43,.55); opacity: 0; visibility: hidden; transition: .2s ease; }
    body.sidebar-open .sidebar-backdrop { display: block; opacity: 1; visibility: visible; }
    .main-area { min-width: 0; }
    .topbar { height: calc(64px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left)); gap: 10px; }
    .mobile-menu { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 11px; color: var(--forest); background: #fff; box-shadow: var(--shadow); }
    .mobile-context { display: block; min-width: 0; margin-right: auto; }
    .mobile-context strong,.mobile-context small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .mobile-context strong { font-size: 12px; }.mobile-context small { margin-top: 2px; color: var(--muted); font-size: 9px; }
    .breadcrumb { display: none; }.top-actions { gap: 6px; }.search-trigger { width: 42px; height: 42px; font-size: 0; }.search-trigger kbd { display:none; }.search-trigger span { font-size: 18px; }.notification-button { width: 42px; height: 42px; }.user-chip { padding-left: 5px; border: 0; }.user-chip > span { width: 38px; height: 38px; }.user-chip div { display:none; }
    .page { padding: 27px 18px 45px; }.dashboard-grid,.platform-grid,.portal-grid { grid-template-columns: 1fr; }.asset-grid { grid-template-columns: 1fr; }
    .portal-content { padding-inline: 18px; }.portal-summary { grid-template-columns: 1fr; margin-top: -24px; }.portal-hero { padding-inline: 22px; }
    .asset-life-body { grid-template-columns: 1fr; }.asset-profile { border-right: 0; border-bottom: 1px solid var(--line); }.asset-specs > div:last-child { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px) {
    .page { padding: 22px 13px 38px; }.page-heading { align-items: flex-start; flex-direction: column; gap: 17px; margin-bottom: 21px; }.page-heading h1 { font-size: 27px; }.page-heading p { font-size: 13px; line-height: 1.5; }
    .heading-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }.heading-actions .button,.page-heading > .button { width: 100%; min-height: 46px; }
    .metrics-grid,.metrics-grid.three,.team-grid { grid-template-columns: 1fr; }.metric-card { min-height: 125px; padding: 17px; }.metric-card > p { font-size: 13px; }.metric-card > small { font-size: 11px; }
    .panel-head { align-items: flex-start; padding: 17px 15px 13px; }.panel-head h2 { font-size: 17px; }.panel-head a { max-width: 46%; font-size: 11px; text-align: right; }
    .timeline { padding-inline: 13px; }.timeline-row { grid-template-columns: 50px 18px 1fr; }.timeline-content { padding-left: 7px; }.timeline-content > div { align-items: flex-start; flex-direction: column; }.timeline-content strong { font-size: 13px; }.timeline-content p { font-size: 12px; }.timeline-content small { font-size: 10px; }
    .activity-list { padding-inline: 15px; }.activity p { font-size: 12px; }.activity p strong { font-size: 12px; }.activity small { font-size: 10px; }
    .toolbar { flex-wrap: wrap; }.filter-search { width: 100%; height: 46px; }.filter-search input { font-size: 16px; }.filter-button { flex: 1; min-height: 42px; font-size: 11px; }.toolbar-count { width: 100%; margin-left: 0; font-size: 11px; }
    .asset-summary { display:grid; grid-template-columns:1fr 1fr; gap:0; overflow:visible; padding:10px; }.asset-summary div { min-width:0; padding:10px; border-right:0; border-bottom:1px solid var(--line); }.asset-summary div:nth-child(odd) { border-right:1px solid var(--line); }.asset-summary div:nth-last-child(-n+2) { border-bottom:0; }.asset-summary small { line-height:1.35; }.asset-card { padding: 16px; }.asset-card h3 { font-size: 16px; }.asset-card > p { font-size: 12px; }.asset-card dl { grid-template-columns: 1fr; }.asset-card dt { font-size: 10px; }.asset-card dd { font-size: 12px; }.asset-card-foot { align-items: flex-start; gap: 12px; flex-direction: column; font-size: 10px; }.asset-card-foot button { width: 100%; min-height: 44px; border-radius: 9px; background: #edf5fc; font-size: 11px; }
    .kanban-tabs { width: 100%; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; }.kanban-tabs button { min-width: max-content; min-height: 40px; scroll-snap-align: start; font-size: 11px; }
    .order-card { grid-template-columns: 1fr; gap: 15px; padding: 17px 15px 17px 19px; }.order-title { align-items: flex-start; flex-wrap: wrap; }.order-title a { width: 100%; font-size: 11px; }.order-main h3 { font-size: 16px; }.order-main p { font-size: 12px; line-height: 1.4; }.order-main > small { font-size: 11px; line-height: 1.45; }.order-meta { padding-top: 13px; border-top: 1px solid var(--line); }.order-meta small { font-size: 9px; }.order-meta strong { font-size: 12px; }.order-meta span { font-size: 10px; }.order-action button { min-height: 46px; font-size: 11px; }
    .calendar-toolbar { align-items: stretch; gap: 10px; flex-direction: column; }.calendar-toolbar > div { justify-content: space-between; }.calendar-toolbar button,.view-toggle button { height: 42px; font-size: 11px; }.calendar-toolbar strong { margin-inline: 5px; }.calendar-board { display: none; }.mobile-agenda-list { display: flex; flex-direction: column; gap: 10px; }.mobile-day { display: flex; align-items: center; gap: 8px; padding: 13px 15px; border-radius: 13px; color: #fff; background: var(--forest); }.mobile-day span { font-size: 10px; font-weight: 800; }.mobile-day strong { font-size: 23px; }.mobile-day small { margin-left: auto; color: var(--mint); font-size: 11px; }.mobile-appointment { display: grid; grid-template-columns: 56px 1fr 36px; gap: 11px; align-items: center; padding: 15px 11px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }.mobile-appointment-time { padding-right: 9px; border-right: 1px solid var(--line); text-align: right; }.mobile-appointment-time strong,.mobile-appointment-time small { display: block; }.mobile-appointment-time strong { font-size: 13px; }.mobile-appointment-time small { margin-top: 4px; color: var(--muted); font-size: 10px; }.mobile-appointment > div:nth-child(2) > div { display: flex; align-items: flex-start; gap: 7px; flex-wrap: wrap; }.mobile-appointment > div:nth-child(2) strong { font-size: 13px; }.mobile-appointment p { margin: 4px 0; font-size: 11px; }.mobile-appointment > div:nth-child(2) > small { color: var(--muted); font-size: 10px; }.mobile-appointment > button { width: 36px; height: 44px; border: 0; border-radius: 9px; color: var(--forest); background: #edf5fc; font-size: 22px; }
    .mobile-card-table { overflow: visible; }.mobile-card-table table,.mobile-card-table tbody,.mobile-card-table tr,.mobile-card-table td { display: block; width: 100%; white-space: normal; }.mobile-card-table thead { display: none; }.mobile-card-table tbody { display: grid; gap: 11px; padding: 11px; }.mobile-card-table tr { padding: 6px 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 5px 17px rgba(17,45,75,.05); }.mobile-card-table td { display: grid; grid-template-columns: minmax(92px,.7fr) minmax(0,1.3fr); gap: 12px; align-items: center; min-height: 39px; padding: 8px 0; border-bottom: 1px solid #edf0f4; color: var(--ink); font-size: 12px; text-align: right; overflow-wrap: anywhere; }.mobile-card-table td:last-child { border-bottom: 0; }.mobile-card-table td::before { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-align: left; text-transform: uppercase; }.mobile-card-table td > * { justify-self: end; }.mobile-card-table .identity { max-width: 100%; justify-self: end; text-align: left; }.mobile-card-table td > small { font-size: 10px; }.orders-mobile-table td:nth-child(1)::before { content: "Orden"; }.orders-mobile-table td:nth-child(2)::before { content: "Cliente / servicio"; }.orders-mobile-table td:nth-child(3)::before { content: "Técnico"; }.orders-mobile-table td:nth-child(4)::before { content: "Fecha"; }.orders-mobile-table td:nth-child(5)::before { content: "Prioridad"; }.orders-mobile-table td:nth-child(6)::before { content: "Estado"; }.customers-mobile-table td:nth-child(1)::before { content: "Cliente"; }.customers-mobile-table td:nth-child(2)::before { content: "Identificación"; }.customers-mobile-table td:nth-child(3)::before { content: "Contacto"; }.customers-mobile-table td:nth-child(4)::before { content: "Ciudad"; }.customers-mobile-table td:nth-child(5)::before { content: "Equipos"; }.customers-mobile-table td:nth-child(6)::before { content: "OT abiertas"; }.customers-mobile-table td:nth-child(7)::before { content: "Estado"; }.customers-mobile-table td:nth-child(8)::before { content: "Acciones"; }.charges-mobile-table td:nth-child(1)::before { content: "Cobro"; }.charges-mobile-table td:nth-child(2)::before { content: "Empresa"; }.charges-mobile-table td:nth-child(3)::before { content: "Período"; }.charges-mobile-table td:nth-child(4)::before { content: "Detalle"; }.charges-mobile-table td:nth-child(5)::before { content: "Vencimiento"; }.charges-mobile-table td:nth-child(6)::before { content: "Total"; }.charges-mobile-table td:nth-child(7)::before { content: "Estado"; }.charges-mobile-table td:nth-child(8)::before { content: "Acción"; }.invoices-mobile-table td:nth-child(1)::before { content: "Documento"; }.invoices-mobile-table td:nth-child(2)::before { content: "Cliente"; }.invoices-mobile-table td:nth-child(3)::before { content: "Fecha"; }.invoices-mobile-table td:nth-child(4)::before { content: "Concepto"; }.invoices-mobile-table td:nth-child(5)::before { content: "Orden"; }.invoices-mobile-table td:nth-child(6)::before { content: "Total"; }.invoices-mobile-table td:nth-child(7)::before { content: "Estado"; }.invoices-mobile-table td:nth-child(8)::before { content: "Portal"; }.invoices-mobile-table td:nth-child(9)::before { content: "Acción"; }
    .tenant-row { grid-template-columns: 44px 1fr 40px; padding: 14px; }.tenant-row > div:not(.tenant-main) { display:none; }.tenant-main > div { flex-wrap: wrap; }.audit-list { padding-inline: 15px; }.audit-list > div { grid-template-columns: 34px 1fr; }.audit-list small { grid-column: 2; }.permissions-preview { overflow: visible; }.permission-row { grid-template-columns: 1fr; min-width: 0; gap: 7px; padding: 15px; }.permission-row strong { margin-bottom: 3px; font-size: 12px; }.permission-row span,.permission-row del { padding: 7px 9px; border-radius: 7px; background: #f6f8fa; font-size: 10px; }
    .portal-hero { align-items: flex-start; flex-direction: column; gap: 20px; padding: 28px 17px 48px; }.portal-hero h1 { font-size: 31px; }.portal-hero p { font-size: 12px; line-height: 1.5; }.portal-hero .button { width: 100%; min-height: 46px; }.portal-content { padding-inline: 13px; }.portal-summary article { min-height: 72px; }.portal-summary strong { font-size: 21px; }.portal-summary p { font-size: 10px; }.visit-date { align-items: flex-start; padding-inline: 15px; }.visit-actions { align-items: stretch; flex-direction: column; padding-inline: 15px; }.visit-actions .button,.visit-actions .text-button { min-height: 44px; width: 100%; }.portal-document { grid-template-columns: 40px 1fr auto; gap: 9px; padding: 14px 13px; }.portal-document button { grid-column: 2/-1; min-height: 42px; border-radius: 8px; background: #edf5fc; text-align: center; }.portal-document strong { font-size: 11px; line-height: 1.35; }.portal-document small { font-size: 9px; line-height: 1.4; }
    dialog.modal,dialog.modal.wide { inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }.modal form { padding: 16px; }.modal-head { position: sticky; top: -16px; z-index: 4; margin: -1px -1px 18px; padding: 4px 0 12px; background: #fff; }.modal-head h2 { font-size: 22px; }.modal-head p { font-size: 11px; line-height: 1.45; }.modal-head > button { width: 42px; height: 42px; flex: 0 0 42px; }.form-grid { grid-template-columns: 1fr; gap: 14px; }.form-grid .span-2 { grid-column: auto; }.form-grid label { font-size: 11px; }.form-grid input,.form-grid select,.form-grid textarea { min-height: 46px; font-size: 16px; }.modal-actions { position: sticky; bottom: -16px; z-index: 4; flex-wrap: wrap; margin: 20px -1px -1px; padding: 13px 0 4px; background: #fff; }.modal-actions .button { flex: 1 1 130px; min-height: 46px; }
    .invoice-builder-grid { display: block; }.invoice-editor { margin-bottom: 22px; }.invoice-item-row { grid-template-columns: 1fr 1fr 36px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; }.invoice-item-row label { font-size: 10px; }.invoice-item-row label:first-child { grid-column: 1/-1; }.invoice-item-row label:nth-child(2) { grid-column: 1; }.invoice-item-row label:nth-child(3) { grid-column: 2/4; }.invoice-item-row label:nth-child(4) { grid-column: 1/3; }.invoice-item-row .remove-line { grid-column: 3; }.invoice-item-row input,.invoice-item-row select,.custom-fields-editor input { height: 44px; font-size: 16px; }.remove-line,.custom-fields-editor button { width: 36px; height: 44px; }.custom-fields-editor > div { grid-template-columns: 1fr 36px; }.custom-fields-editor input:first-child { grid-column: 1; }.custom-fields-editor input:nth-child(2) { grid-column: 1; }.custom-fields-editor button { grid-column: 2; grid-row: 1/3; align-self: stretch; height: auto; }.invoice-preview-wrap { padding: 8px; }.invoice-sheet { min-height: 0; padding: 14px; }.invoice-sheet header { gap: 10px; }.invoice-brand img { width: 34px; height: 34px; }.invoice-title { max-width: 58%; }.invoice-title strong { font-size: 14px; }.invoice-parties,.invoice-preview-footer { grid-template-columns: 1fr; gap: 12px; }.invoice-parties strong { font-size: 10px; }.invoice-parties span,.invoice-meta strong,.invoice-preview-table td,.invoice-preview-footer p { font-size: 8px; }.invoice-preview-table { table-layout: auto; }.invoice-preview-table th { font-size: 7px; }.invoice-preview-footer dl { margin-top: 5px; }.invoice-dialog-head { position: sticky; top: 0; z-index: 3; padding: 14px; margin: 0; background: #fff; }.invoice-view-modal { padding: 0; }.invoice-sheet.persisted { margin: 0 10px; }.invoice-dialog-actions { align-items: stretch; flex-direction: column; padding: 13px; }.invoice-dialog-actions > div { display: grid; grid-template-columns: 1fr 1fr; }.invoice-dialog-actions .button { width: 100%; min-height: 46px; }
    .asset-register-modal { height: 100dvh; }.asset-life-modal { height: 100dvh; max-height: 100dvh; }.asset-life-head { position: sticky; top: 0; z-index: 4; padding: 14px; background: #fff; }.asset-life-identity { align-items: flex-start; }.asset-life-identity .asset-type { display: none; }.asset-life-identity h2 { font-size: 18px; }.asset-profile,.asset-history-panel { padding: 15px; }.asset-specs > div:last-child { grid-template-columns: 1fr; }.asset-specs dt { font-size: 9px; }.asset-specs dd { font-size: 11px; }.life-timeline h4 { font-size: 12px; }.life-timeline p { font-size: 10px; }.life-timeline small { font-size: 9px; }.asset-life-actions { position: sticky; bottom: 0; align-items: stretch; flex-direction: column; background: #fff; }.asset-life-actions .button { width: 100%; min-height: 46px; }
    .command-overlay { padding-top: 0; }.command-box { width: 100%; min-height: 100dvh; border-radius: 0; }.command-input { padding-top: max(16px, env(safe-area-inset-top)); }.command-input input { min-width: 0; font-size: 16px; }.command-results a { min-height: 58px; }.toast { top: 73px; left: 10px; right: 10px; max-width: none; font-size: 12px; }
    .fiscal-notice { align-items: flex-start; }.fiscal-notice strong { font-size: 11px; }.fiscal-notice p { font-size: 10px; line-height: 1.45; }
    .page { padding-left: max(13px, env(safe-area-inset-left)); padding-right: max(13px, env(safe-area-inset-right)); padding-bottom: max(38px, env(safe-area-inset-bottom)); }
}
@media (max-width: 380px) {
    .topbar { gap: 5px; padding-inline: 8px; }.mobile-context small { display: none; }.top-actions { gap: 3px; }.notification-button { display: none; }.page { padding-inline: 10px; }.heading-actions { grid-template-columns: 1fr; }.portal-document { grid-template-columns: 36px 1fr; }.portal-document .status { grid-column: 2; }.portal-document button { grid-column: 2; }.invoice-dialog-actions > div { grid-template-columns: 1fr; }
}
@media (hover: none) and (pointer: coarse) {
    button,a,.main-nav a { touch-action: manipulation; }.main-nav a { min-height: 46px; }.icon-button,.row-menu { min-width: 42px; min-height: 42px; }.status { min-height: 25px; }.text-button { min-height: 42px; }
}

/* Operational workflow, directories and tenant settings */
.contact-rule { display: block !important; padding: 10px 12px; border-radius: 9px; color: #315f88 !important; background: #edf5fc; font-weight: 600 !important; }
.directory-summary,.agenda-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 18px; }
.directory-summary article { display: flex; align-items: center; gap: 13px; min-height: 82px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.directory-summary article strong,.directory-summary article small { display: block; }.directory-summary article strong { font-size: 19px; }.directory-summary article small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.category-pill { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: #245b8e; background: #e8f2fb; font-size: 8px; font-weight: 800; }
.agenda-summary { grid-template-columns: repeat(4,1fr); }.agenda-summary article { padding: 13px 16px; border-left: 3px solid var(--forest); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }.agenda-summary strong,.agenda-summary span { display:block; }.agenda-summary strong { font-size: 21px; }.agenda-summary span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.agenda-control { margin-top: 18px; }.appointment-control-list { padding: 0 18px 12px; }.appointment-control-list > article { display: grid; grid-template-columns: 62px minmax(0,1fr) 90px 80px; gap: 13px; align-items: center; padding: 14px 0; border-top: 1px solid var(--line); }.appointment-clock { padding-right: 12px; border-right: 1px solid var(--line); text-align: right; }.appointment-clock strong,.appointment-clock small,.appointment-identity strong,.appointment-identity span,.appointment-identity small { display:block; }.appointment-clock strong { font-size: 13px; }.appointment-clock small,.appointment-identity small { margin-top: 3px; color: var(--muted); font-size: 8px; }.appointment-identity strong { font-size: 11px; }.appointment-identity span { margin-top: 3px; font-size: 9px; }.appointment-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.appointment-detail-grid > div { padding:12px; border-radius:10px; background:#f6f8fa; }.appointment-detail-grid small,.appointment-detail-grid strong { display:block; }.appointment-detail-grid small { margin-bottom:5px; color:var(--muted); font-size:8px; }.appointment-detail-grid strong { font-size:10px; }.status-selector { display:flex; flex-direction:column; gap:6px; margin-top:15px; color:#55615b; font-size:9px; font-weight:700; }.status-selector select { min-height:42px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; }.flow-note { margin-top:15px; padding:12px; border:1px solid #cfe0ef; border-radius:10px; background:#edf5fc; }.flow-note strong { font-size:10px; }.flow-note p { margin:4px 0 0; color:#4e657a; font-size:9px; line-height:1.5; }
.workflow-strip { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:17px; padding:15px 18px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }.workflow-strip div { display:grid; grid-template-columns:25px 1fr; column-gap:8px; align-items:center; }.workflow-strip b { grid-row:1/3; display:grid; place-items:center; width:25px; height:25px; border-radius:50%; color:#245b8e; background:#e4f0fa; font-size:9px; }.workflow-strip span,.workflow-strip small { display:block; }.workflow-strip span { font-size:9px; font-weight:800; }.workflow-strip small { color:var(--muted); font-size:7px; }.workflow-strip i { color:#aab5c0; font-style:normal; }.order-context { display:flex; flex-wrap:wrap; gap:5px; margin-top:11px; }.order-context span { padding:5px 7px; border-radius:6px; color:#4d6479; background:#f1f5f8; font-size:7px; font-weight:700; }
.settings-layout { display:grid; grid-template-columns:235px minmax(0,1fr); gap:18px; align-items:start; }.settings-index { position:sticky; top:87px; padding:9px; }.settings-index a { display:flex; gap:10px; align-items:center; padding:11px; border-radius:9px; color:var(--ink); }.settings-index a:hover,.settings-index a.active { color:#fff; background:var(--forest); }.settings-index b { display:grid; place-items:center; width:25px; height:25px; border-radius:7px; background:rgba(70,145,206,.16); font-size:8px; }.settings-index span,.settings-index small { display:block; }.settings-index span { font-size:9px; font-weight:800; }.settings-index small { margin-top:2px; color:var(--muted); font-size:7px; }.settings-index a:hover small,.settings-index a.active small { color:#cbdbea; }.settings-form { display:flex; flex-direction:column; gap:15px; }.settings-section { padding:20px; scroll-margin-top:90px; }.settings-section-head { display:flex; justify-content:space-between; gap:15px; margin-bottom:17px; padding-bottom:14px; border-bottom:1px solid var(--line); }.settings-section-head h2 { margin:4px 0 0; font-size:17px; }.settings-section-head p { margin:4px 0 0; color:var(--muted); font-size:8px; }.section-number { color:#d9e2eb; font:800 28px Manrope,sans-serif; }.brand-settings { display:grid; grid-template-columns:1.1fr 1fr; gap:20px; align-items:center; }.logo-uploader { display:flex; align-items:center; gap:15px; }.company-logo-preview { display:grid; place-items:center; width:82px; height:82px; flex:0 0 82px; overflow:hidden; border-radius:17px; color:#fff; background:var(--company-color); font:800 22px Manrope,sans-serif; }.company-logo-preview img { width:100%; height:100%; object-fit:contain; background:#fff; }.logo-uploader strong,.logo-uploader small { display:block; }.logo-uploader strong { font-size:11px; }.logo-uploader small { margin:4px 0 9px; color:var(--muted); font-size:8px; }.file-button { display:inline-flex; position:relative; overflow:hidden; cursor:pointer; }.file-button input { position:absolute; inline-size:1px; block-size:1px; opacity:0; }.notification-options { display:grid; gap:8px; margin-top:15px; }.notification-options label { display:flex; align-items:center; gap:9px; padding:10px 12px; border-radius:9px; background:#f6f8fa; font-size:9px; font-weight:700; }.notification-options input { accent-color:var(--forest); }.settings-save { position:sticky; bottom:12px; z-index:8; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:13px 16px; border:1px solid #cbd8e4; border-radius:13px; background:rgba(255,255,255,.96); box-shadow:0 12px 35px rgba(11,49,92,.16); backdrop-filter:blur(12px); }.settings-save strong,.settings-save small { display:block; }.settings-save strong { font-size:10px; }.settings-save small { margin-top:2px; color:var(--muted); font-size:8px; }
.portal-company-logo { width:48px; height:48px; overflow:hidden; border:1px solid var(--line); border-radius:13px; background:#fff; }.portal-company-logo img { width:100%; height:100%; object-fit:contain; }
.status.cancelada { color:#9e4937; background:#fce4de; }
.session-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:8px; }.session-actions button { width:100%; padding:7px 4px; border:1px solid rgba(255,255,255,.12); border-radius:7px; color:#cbd9e6; background:rgba(255,255,255,.05); font-size:7px; cursor:pointer; }

@media (max-width:850px) {
    .settings-layout { grid-template-columns:1fr; }.settings-index { position:static; display:flex; overflow-x:auto; }.settings-index a { min-width:max-content; }.brand-settings { grid-template-columns:1fr; }
}
@media (max-width:640px) {
    .directory-summary,.agenda-summary { grid-template-columns:1fr; gap:9px; }.directory-summary article { min-height:68px; }.agenda-summary { grid-template-columns:1fr 1fr; }.agenda-summary article { padding:11px 13px; }.agenda-control .panel-head { flex-direction:column; }.appointment-control-list { padding:0 12px 12px; }.appointment-control-list > article { grid-template-columns:50px minmax(0,1fr); }.appointment-control-list > article > .status,.appointment-control-list > article > button { grid-column:2; justify-self:start; }.appointment-control-list > article > button { width:100%; min-height:42px; }.appointment-detail-grid { grid-template-columns:1fr; }.status-selector { font-size:11px; }.status-selector select { font-size:16px; }.flow-note strong { font-size:11px; }.flow-note p { font-size:10px; }.workflow-strip { overflow-x:auto; justify-content:flex-start; }.workflow-strip div { min-width:145px; }.workflow-strip i { flex:0 0 auto; }.workflow-strip span { font-size:10px; }.workflow-strip small { font-size:8px; }.order-context span { font-size:9px; }.suppliers-mobile-table td:nth-child(1)::before { content:"Proveedor"; }.suppliers-mobile-table td:nth-child(2)::before { content:"Identificación"; }.suppliers-mobile-table td:nth-child(3)::before { content:"Categoría"; }.suppliers-mobile-table td:nth-child(4)::before { content:"Contacto"; }.suppliers-mobile-table td:nth-child(5)::before { content:"Ciudad"; }.suppliers-mobile-table td:nth-child(6)::before { content:"Condición"; }.suppliers-mobile-table td:nth-child(7)::before { content:"Estado"; }.suppliers-mobile-table td:nth-child(8)::before { content:"Detalle"; }.settings-page { padding-inline:10px; }.settings-index { margin-inline:3px; }.settings-section { padding:15px; }.settings-section-head h2 { font-size:16px; }.settings-section-head p { font-size:10px; line-height:1.45; }.logo-uploader { align-items:flex-start; flex-direction:column; }.settings-save { position:static; align-items:stretch; flex-direction:column; }.settings-save .button { width:100%; min-height:46px; }
}
.tenant-actions,.payment-confirm { position:relative; }.tenant-actions summary,.payment-confirm summary { list-style:none; cursor:pointer; }.tenant-actions summary::-webkit-details-marker,.payment-confirm summary::-webkit-details-marker { display:none; }.tenant-actions>div { position:absolute; z-index:12; right:0; top:30px; width:220px; padding:11px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 15px 35px rgba(11,49,92,.18); }.tenant-actions form,.payment-confirm form { display:grid; gap:7px; }.tenant-actions form+form { margin-top:9px; padding-top:9px; border-top:1px solid var(--line); }.tenant-actions label { display:grid; gap:3px; color:var(--muted); font-size:8px; }.tenant-actions input,.payment-confirm input { width:100%; min-height:33px; padding:6px 8px; border:1px solid var(--line); border-radius:7px; }.payment-confirm summary { color:#18558d; font-size:8px; font-weight:800; }.payment-confirm form { min-width:150px; margin-top:7px; }.catalog-pills { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }.catalog-pills span { padding:6px 8px; border-radius:999px; color:#245b8e; background:#e8f2fb; font-size:8px; font-weight:800; }
@media(max-width:640px){.tenant-actions>div{position:fixed;inset:auto 12px 12px;width:auto}.payment-confirm form{min-width:0}.catalog-pills span{font-size:10px}}
.form-grid .check-line{flex-direction:row;align-items:center}.form-grid .check-line input{width:auto;min-height:auto;margin:0}.form-section-title{padding-top:8px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:baseline}.form-section-title small{color:var(--muted)}.empty-table{padding:28px;text-align:center;display:grid;gap:5px}.empty-table small{color:var(--muted)}

/* Customer profile and tenant-scoped directory management */
.customer-detail { display:grid; gap:15px; margin-top:20px; scroll-margin-top:90px; }
.customer-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; }
.customer-detail-heading h2 { margin:3px 0; font-size:19px; }
.customer-detail-heading .avatar { width:46px; height:46px; font-size:13px; }
.customer-detail-actions { display:flex; align-items:center; gap:9px; }
.customer-detail-actions form { margin:0; }
.customer-detail-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:15px; align-items:start; }
.customer-form-panel,.related-panel { padding:19px; }
.customer-form-panel .panel-title,.related-panel .panel-title { padding:0 0 14px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.customer-form-panel .panel-title h2,.related-panel .panel-title h2 { margin:4px 0 0; font-size:15px; }
.form-grid .wide { grid-column:1/-1; }
.form-actions { display:flex; justify-content:flex-end; padding-top:4px; }
.customer-related { display:grid; gap:15px; }
.related-list { display:grid; gap:8px; }
.related-card { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:11px 12px; border:1px solid #e7ebef; border-radius:10px; background:#f9fafb; }
.related-card strong,.related-card small { display:block; }
.related-card strong { font-size:10px; }
.related-card small { margin-top:3px; color:var(--muted); font-size:8px; line-height:1.4; }
.related-card p { margin:5px 0 0; color:#52616d; font-size:8px; line-height:1.4; }
.related-card .status { flex:0 0 auto; }
.inline-create { margin-top:13px; border-top:1px solid var(--line); }
.inline-create summary { padding:13px 1px 0; color:#18558d; font-size:9px; font-weight:800; cursor:pointer; }
.inline-create[open] summary { margin-bottom:14px; }
.form-grid .check-row { flex-direction:row; align-items:center; min-height:38px; padding:8px 10px; border-radius:9px; background:#f6f8fa; }
.form-grid .check-row input { width:auto; margin:0; accent-color:var(--forest); }
.directory-filters { flex-wrap:wrap; }
.directory-filters select { max-width:190px; }
.pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:6px; padding:14px; border-top:1px solid var(--line); }
.tag-line { display:flex !important; flex-wrap:wrap; gap:4px; margin-top:5px !important; }
.tag-line .category-pill { padding:3px 6px; font-size:7px; }
.related-editor { display:block; }
.related-editor > summary { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; list-style:none; cursor:pointer; }
.related-editor > summary::-webkit-details-marker { display:none; }
.related-editor[open] > summary { padding-bottom:11px; margin-bottom:12px; border-bottom:1px solid var(--line); }
.compact-editor { margin-top:4px; }
.inline-status-form { display:flex; justify-content:flex-end; margin-top:8px; }
.asset-life-sheet { margin-top:20px; overflow:hidden; scroll-margin-top:90px; }
.asset-life-sheet .asset-life-head { position:static; }
.asset-life-sheet .asset-life-body { min-height:0; }
.asset-editor { margin-bottom:18px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#f8fafb; }
.asset-editor > summary { color:#18558d; font-size:10px; font-weight:800; cursor:pointer; }
.asset-editor[open] > summary { margin-bottom:14px; }
.status-change-form,.inline-data-form { display:flex; align-items:end; flex-wrap:wrap; gap:8px; margin-top:12px; }
.status-change-form select,.inline-data-form input,.inline-data-form select { min-height:38px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:9px; }
.inline-data-form input { flex:1 1 150px; }
.asset-documents span { display:block; padding:8px; border-bottom:1px solid var(--line); font-size:8px; }
.asset-auth-link { text-align:center; }
.qr-placeholder { display:grid; place-items:center; width:92px; height:92px; margin:10px auto; border:8px double var(--forest); color:var(--forest); background:repeating-linear-gradient(45deg,#fff 0 5px,#dbe8f3 5px 10px); font:900 20px Manrope,sans-serif; }
.asset-qr { display:block; width:150px; height:150px; margin:10px auto; }
.asset-auth-link small { overflow-wrap:anywhere; }
.asset-auth-link p { color:var(--muted); font-size:8px; line-height:1.45; }
.asset-alerts { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.asset-alerts span { padding:4px 7px; border-radius:7px; color:#8b5b14; background:#fff0cf; font-size:8px; font-weight:800; }

@media (max-width:1000px) {
    .customer-detail-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
    .customer-detail-heading { align-items:flex-start; flex-direction:column; padding:15px; }
    .customer-detail-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
    .customer-detail-actions .status { grid-column:1/-1; justify-self:start; }
    .customer-detail-actions form,.customer-detail-actions .button { width:100%; }
    .customer-detail-actions .button { min-height:44px; }
    .customer-form-panel,.related-panel { padding:15px; }
    .customer-edit-form .wide,.inline-create .wide { grid-column:auto; }
    .form-actions .button { width:100%; min-height:46px; }
    .related-card { flex-direction:column; }
    .related-card strong { font-size:12px; }.related-card small,.related-card p { font-size:10px; }
    .inline-create summary { min-height:44px; padding-top:15px; font-size:11px; }
    .directory-filters { display:grid; grid-template-columns:1fr 1fr; }
    .directory-filters .filter-search { grid-column:1/-1; width:100%; }
    .directory-filters select { max-width:none; width:100%; min-height:44px; font-size:12px; }
    .directory-filters .toolbar-count { grid-column:1/-1; margin-left:0; }
    .related-editor > summary { width:100%; }
    .inline-status-form .button { width:100%; min-height:42px; }
    .asset-life-sheet .asset-life-body { display:block; }
    .asset-life-sheet .asset-life-head { align-items:stretch; flex-direction:column; }
    .asset-life-sheet .customer-detail-actions { grid-template-columns:1fr; }
    .asset-life-sheet .customer-detail-actions .status { grid-column:auto; }
    .status-change-form,.inline-data-form { align-items:stretch; flex-direction:column; }
    .status-change-form > *,.inline-data-form > * { width:100%; }
    .inline-data-form input { flex:none; min-height:46px; height:auto; }
}

.modal-secondary-action { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.modal-secondary-action p { margin:0 0 8px; color:#6c7671; font-size:9.5px; line-height:1.5; }
.modal-secondary-action .button { width:100%; }

/* Fase 11 — rejilla horaria tipo agenda */
.week-grid { display:grid; grid-template-columns:52px repeat(7, minmax(0, 1fr)); gap:1px; margin-bottom:16px; border:1px solid var(--line); border-radius:12px; background:var(--line); overflow:hidden; }
.week-corner { background:#f7f9f7; }
.week-head { display:flex; flex-direction:column; align-items:center; gap:1px; padding:8px 4px; background:#f7f9f7; color:#59635f; text-decoration:none; }
.week-head span { font-size:8px; font-weight:700; letter-spacing:.08em; }
.week-head strong { color:#25302b; font-size:15px; }
.week-head.is-today { background:var(--forest); }
.week-head.is-today span, .week-head.is-today strong { color:#fff; }
.week-hours { display:grid; grid-template-rows:repeat(var(--filas), 1fr); background:#fff; }
.week-hour-label { padding:2px 6px 0 0; color:#a3aca8; font-size:8px; text-align:right; border-top:1px solid #f0f3f0; }
.week-day { position:relative; display:grid; grid-template-rows:repeat(var(--filas), minmax(38px, 1fr)); background:#fff; }
.week-day.is-today { background:#f4f9ff; }
.week-slot { border:0; border-top:1px solid #f0f3f0; background:transparent; cursor:pointer; }
.week-slot:hover { background:#eaf2ea; box-shadow:inset 0 0 0 1px var(--forest); }
.week-event { position:absolute; top:var(--top); left:3px; right:3px; height:var(--alto); min-height:26px; overflow:hidden; padding:3px 6px; border:0; border-left:3px solid #7c8b98; border-radius:5px; background:#eef2f5; color:#25302b; font-size:8.5px; text-align:left; cursor:pointer; }
.week-event b { display:block; font-size:8px; opacity:.75; }
.week-event span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.week-event small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:.7; }
.week-event.confirmada { border-left-color:#24714e; background:#e5f4eb; }
.week-event.pendiente { border-left-color:#a67c11; background:#fdf5e3; }
.week-event.en-curso { border-left-color:#1d5fa8; background:#e8f0fb; }
.week-event.completada { border-left-color:#24714e; background:#e5f4eb; }
.week-event.cancelada { border-left-color:#a0472f; background:#fdf1ee; text-decoration:line-through; }
.now-line { position:absolute; top:var(--pos); left:0; right:0; height:0; border-top:2px solid #d1543a; pointer-events:none; z-index:2; }
.now-line i { position:absolute; top:-4px; left:-3px; width:7px; height:7px; border-radius:50%; background:#d1543a; }

.cell-head { display:flex; align-items:center; justify-content:space-between; }
.cell-add { width:18px; height:18px; padding:0; border:0; border-radius:5px; background:transparent; color:#a3aca8; font-size:13px; line-height:1; cursor:pointer; opacity:0; }
.calendar-cell:hover .cell-add { opacity:1; }
.cell-add:hover { background:var(--forest); color:#fff; }
.hour-empty { width:100%; padding:6px; border:1px dashed var(--line); border-radius:7px; background:transparent; color:#b3bbb7; font-size:9px; text-align:left; cursor:pointer; }
.hour-empty:hover { border-color:var(--forest); color:var(--forest); }

@media (max-width:760px) {
    .week-grid { grid-template-columns:40px repeat(7, minmax(0, 1fr)); }
    .week-head strong { font-size:12px; }
    .week-day { grid-template-rows:repeat(var(--filas), minmax(30px, 1fr)); }
    .week-event { font-size:7px; padding:2px 3px; }
    .week-event b, .week-event small { display:none; }
    .cell-add { opacity:1; }
}

/* Fase 11 — pestañas de sección */
.section-tabs { display:flex; gap:4px; margin-bottom:16px; padding:4px; border:1px solid var(--line); border-radius:11px; background:#f7f9f7; overflow-x:auto; }
.section-tabs a { flex:none; padding:7px 14px; border-radius:8px; color:#6c7671; font-size:10px; font-weight:600; text-decoration:none; white-space:nowrap; }
.section-tabs a:hover { color:var(--forest); }
.section-tabs.inner { background:#fff; border-color:#eef1ee; }
.section-tabs.inner a.active { background:var(--forest); color:#fff; }
.section-tabs a.active { background:#fff; color:var(--forest); box-shadow:0 1px 2px rgba(16,24,20,.07); }
@media (max-width:640px) { .section-tabs a { flex:1; min-height:40px; display:grid; place-items:center; font-size:11px; } }

/* Fase 10 — calendario gráfico */
.calendar-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.calendar-nav-group { display:flex; align-items:center; gap:7px; }
.calendar-nav-group strong { margin-left:6px; color:#25302b; font-size:12px; text-transform:capitalize; }
.calendar-nav { display:grid; place-items:center; min-width:30px; height:30px; padding:0 9px; border:1px solid var(--line); border-radius:9px; background:#fff; color:#59635f; font-size:11px; text-decoration:none; }
.calendar-nav:hover { border-color:var(--forest); color:var(--forest); }
.calendar-nav.today { font-size:9px; font-weight:600; }

.calendar-grid { display:grid; gap:1px; margin-bottom:16px; border:1px solid var(--line); border-radius:12px; background:var(--line); overflow:hidden; }
.calendar-grid.month { grid-template-columns:repeat(7, minmax(0, 1fr)); }
.calendar-weekday { padding:8px 6px; background:#f7f9f7; color:#8b9490; font-size:8px; font-weight:700; letter-spacing:.08em; text-align:center; }
.calendar-cell { display:flex; flex-direction:column; gap:3px; min-height:96px; padding:6px; background:#fff; }
.calendar-cell.is-outside { background:#fbfcfb; }
.calendar-cell.is-outside .cell-day span { color:#c2c9c5; }
.calendar-cell.is-today { background:#eef5ff; box-shadow:inset 0 0 0 2px var(--forest); }
.cell-day { display:flex; align-items:center; justify-content:space-between; color:#59635f; font-size:11px; font-weight:600; text-decoration:none; }
.cell-day b { padding:1px 6px; border-radius:999px; background:var(--forest); color:#fff; font-size:7.5px; letter-spacing:.06em; text-transform:uppercase; }
.cell-event { display:block; width:100%; padding:4px 6px; border:0; border-left:3px solid #7c8b98; border-radius:5px; background:#eef2f5; color:#25302b; font-size:8.5px; text-align:left; cursor:pointer; }
.cell-event b { display:block; font-size:8px; opacity:.75; }
.cell-event span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.cell-event small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:.7; }
.cell-event:hover { filter:brightness(.97); }
.cell-event.confirmada { border-left-color:#24714e; background:#e5f4eb; }
.cell-event.pendiente { border-left-color:#a67c11; background:#fdf5e3; }
.cell-event.en-curso { border-left-color:#1d5fa8; background:#e8f0fb; }
.cell-event.completada { border-left-color:#24714e; background:#e5f4eb; }
.cell-event.cancelada { border-left-color:#a0472f; background:#fdf1ee; text-decoration:line-through; }
.cell-event.block { padding:7px 8px; margin-bottom:5px; font-size:9px; }
.cell-more { color:#59635f; font-size:8px; text-decoration:none; }

.calendar-grid.week { grid-template-columns:repeat(7, minmax(0, 1fr)); }
.calendar-column { display:flex; flex-direction:column; min-height:190px; background:#fff; }
.calendar-column.is-today { background:#eef5ff; box-shadow:inset 0 0 0 2px var(--forest); }
.column-head { display:flex; flex-direction:column; align-items:center; gap:1px; padding:8px 4px; border-bottom:1px solid var(--line); color:#59635f; text-decoration:none; }
.column-head span { font-size:8px; font-weight:700; letter-spacing:.08em; }
.column-head strong { color:#25302b; font-size:15px; }
.calendar-column.is-today .column-head strong { color:var(--forest); }
.column-events { flex:1; padding:6px; }
.column-empty { margin:0; color:#c2c9c5; font-size:11px; text-align:center; }

.day-view .day-hours { display:flex; flex-direction:column; }
.day-hour { display:grid; grid-template-columns:56px 1fr; gap:10px; min-height:42px; padding:5px 0; border-top:1px solid #f0f3f0; }
.day-hour.has-events { background:#fbfdfb; }
.hour-label { color:#a3aca8; font-size:9px; text-align:right; padding-top:3px; }
.hour-slot { min-width:0; }
.calendar-hint { margin:0; color:#89928e; font-size:10px; }

@media (max-width:760px) {
    .calendar-grid.month { grid-template-columns:repeat(7, minmax(0, 1fr)); }
    .calendar-cell { min-height:64px; padding:4px; gap:2px; }
    .cell-day { font-size:10px; }
    .cell-day b { display:none; }
    .calendar-cell.is-today .cell-day span { display:grid; place-items:center; width:19px; height:19px; border-radius:50%; background:var(--forest); color:#fff; }
    .cell-event { padding:2px 4px; font-size:7.5px; }
    .cell-event b { display:none; }
    .cell-event small { display:none; }
    .calendar-grid.week { grid-template-columns:1fr; }
    .calendar-column { min-height:0; }
    .column-head { flex-direction:row; justify-content:flex-start; gap:8px; }
    .cell-event.block { font-size:11px; padding:9px 10px; }
    .cell-event.block b, .cell-event.block small { display:block; }
    .calendar-nav { min-width:40px; height:40px; }
    .calendar-nav-group strong { width:100%; margin:6px 0 0; }
    .day-hour { grid-template-columns:44px 1fr; }
}

/* Fase 10 — aceptación y cartera */
.acceptance-box { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:12px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:#fafbfa; }
.acceptance-box > div { flex:1; min-width:180px; }
.acceptance-box strong { display:block; color:#25302b; font-size:12px; }
.acceptance-box small { display:block; color:#89928e; font-size:9px; }
@media (max-width:640px) { .acceptance-box { flex-direction:column; align-items:stretch; } }

/* Fase 10 — captura de equipo desde la orden */
[data-asset-new] { display:flex; flex-direction:column; gap:7px; margin:7px 0; }
.inline-select { display:flex; align-items:center; gap:7px; color:#6c7671; font-size:9px; }
.inline-select select { flex:1; }

/* Fase 10 — visor de PDF embebido */

/* Fase 10 — contador de evidencias */
.evidence-counter { display:inline-block; margin-left:6px; padding:2px 7px; border-radius:999px; background:#eef2ef; color:#59635f; font-size:8px; font-weight:600; vertical-align:middle; }
.evidence-counter.full { background:#fdf1ee; color:#a0472f; }

/* Fase 10 — formulario guiado por pasos */
.guided-step { display:flex; gap:12px; padding:14px 0; border-top:1px solid var(--line); }
.guided-step:first-of-type { border-top:0; padding-top:4px; }
.step-number { display:grid; place-items:center; width:24px; height:24px; flex:none; border-radius:50%; background:var(--forest); color:#fff; font-size:10px; font-weight:700; }
.step-body { flex:1; min-width:0; }
.step-body h3 { margin:0 0 10px; color:#25302b; font-size:12px; }
.step-body > label { display:block; margin-bottom:10px; }
.optional { color:#9aa39f; font-size:8.5px; font-weight:400; text-transform:none; letter-spacing:0; }
.inline-new-customer { margin:4px 0 10px; padding:12px; border:1px dashed var(--line); border-radius:11px; background:#fafbfa; }
.inline-new-customer .panel-note { margin-bottom:9px; }
.customer-picker { margin-bottom:10px; padding:10px; border:1px solid #dce5ef; border-radius:11px; background:#f7faff; }
.customer-picker label { display:block; margin-bottom:6px; color:#405873; font-size:9px; font-weight:700; }
.customer-picker input { width:100%; min-height:38px; padding:9px 11px; border:1px solid #cbd9e7; border-radius:8px; outline:0; color:var(--ink); background:#fff; font-size:11px; }
.customer-picker input:focus { border-color:#3e76a9; box-shadow:0 0 0 3px rgba(62,118,169,.13); }
.customer-picker .panel-note { margin:7px 0 0; }
.alternate-contact { margin-top:13px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fafcfd; }
.alternate-contact summary { cursor:pointer; color:#345673; font-size:10px; font-weight:700; }
.alternate-contact[open] summary { margin-bottom:11px; }

@media (max-width:640px) {
    .guided-step { gap:9px; }
    .step-body h3 { font-size:13px; }
    .optional { font-size:10px; }
    .customer-picker label,.alternate-contact summary { font-size:11px; }
    .customer-picker input { min-height:46px; font-size:16px; }
}

/* Fase 10 — inicio compacto */
.quick-stats { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.quick-stats span { display:inline-flex; align-items:baseline; gap:5px; padding:7px 11px; border:1px solid var(--line); border-radius:999px; background:#fff; color:#6c7671; font-size:9px; }
.quick-stats strong { color:#25302b; font-size:12px; }
.quick-stats .alert { border-color:#f0c9be; background:#fdf1ee; color:#a0472f; }
.quick-stats .alert strong { color:#a0472f; }

.home-grid { display:grid; grid-template-columns:1.25fr .95fr; gap:16px; margin-bottom:16px; align-items:start; }
.shortcut-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.shortcut { display:block; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fff; text-decoration:none; transition:border-color .15s, transform .15s; }
.shortcut:hover { border-color:var(--forest); transform:translateY(-1px); }
.shortcut span { display:block; margin-bottom:6px; font-size:17px; line-height:1; }
.shortcut strong { display:block; color:#25302b; font-size:11px; }
.shortcut small { display:block; margin-top:2px; color:#89928e; font-size:8.5px; line-height:1.45; }

.alert-list { display:flex; flex-direction:column; gap:8px; margin:0; padding:0; list-style:none; }
.alert-list li { display:flex; align-items:center; gap:10px; padding:9px 11px; border:1px solid var(--line); border-radius:10px; font-size:10px; }
.alert-list li strong { color:#25302b; }
.alert-list li > span:last-child { color:#6c7671; }
.schedule-panel .empty-table .button { margin-top:10px; }

@media (max-width:1000px) { .home-grid { grid-template-columns:1fr; } }
@media (max-width:640px) {
    .quick-stats span { flex:1 1 calc(50% - 4px); justify-content:center; font-size:10px; }
    .quick-stats strong { font-size:13px; }
    .shortcut { padding:14px; }
    .shortcut strong { font-size:12px; }
    .shortcut small { font-size:10px; }
    .alert-list li { flex-wrap:wrap; font-size:11px; }
}

/* Fase 10 — aviso de configuración no bloqueante */
.setup-notice { display:flex; align-items:center; gap:12px; margin-bottom:14px; padding:12px 14px; border:1px solid #f0dfae; border-radius:12px; background:#fdf8ec; }
.setup-notice > span[aria-hidden] { display:grid; place-items:center; width:30px; height:30px; flex:none; border-radius:9px; background:#f6e7bf; color:#8a6c1d; font-size:14px; }
.setup-notice div { flex:1; min-width:0; }
.setup-notice strong { display:block; color:#6f5613; font-size:11px; }
.setup-notice small { display:block; margin-top:2px; color:#8a7742; font-size:9px; line-height:1.5; }
.setup-notice .notice-dismiss { flex:none; width:26px; height:26px; border:0; border-radius:8px; background:transparent; color:#8a7742; font-size:15px; cursor:pointer; }
.setup-notice .notice-dismiss:hover { background:#f6e7bf; }

@media (max-width:640px) {
    .setup-notice { flex-wrap:wrap; }
    .setup-notice div { flex:1 1 100%; order:2; }
    .setup-notice .button { flex:1 1 100%; order:3; min-height:44px; }
    .setup-notice small { font-size:11px; }
}

/* Fase 8 — panel, reportes y exportaciones */
.filter-date { display:flex; align-items:center; gap:6px; min-height:38px; padding:0 11px; border:1px solid var(--line); border-radius:10px; background:#fff; color:#59635f; font-size:9px; }
.filter-date input { border:0; outline:0; font-size:10px; color:inherit; background:transparent; }
.panel-note { margin:0 0 12px; color:#6c7671; font-size:10px; line-height:1.6; }
.export-links { display:flex; flex-wrap:wrap; gap:8px; }
.export-links .button { min-height:36px; }
.trend.down { color:#b4442f; }

@media (max-width:640px) {
    .directory-filters .filter-date { grid-column:1/-1; }
    .filter-date { width:100%; min-height:46px; justify-content:space-between; font-size:11px; }
    .filter-date input { font-size:16px; }
    .export-links { display:grid; grid-template-columns:1fr; }
    .export-links .button { width:100%; min-height:44px; }
}

@media print {
    .sidebar,.topbar,.page-heading,.toolbar,.asset-summary,.asset-grid,.pagination,.flash,.customer-detail-actions,.asset-editor,.inline-data-form,.inline-create { display:none !important; }
    .asset-life-sheet,.asset-life-sheet * { visibility:visible !important; }
    .content,.page { margin:0 !important; padding:0 !important; }
    .asset-life-sheet { border:0; box-shadow:none; margin:0; }
    .asset-life-sheet .asset-life-body { display:grid; grid-template-columns:240px 1fr; }
}

/* Base de composición: evita que estilos históricos de módulos distintos compitan
   por el mismo componente visual. */
.workspace-tabs-shell { max-width:1500px; margin:0 auto; padding:16px 34px 0; }
.workspace-tabs { display:flex; gap:4px; width:max-content; max-width:100%; padding:4px; border:1px solid var(--line); border-radius:11px; background:#f7f9fb; overflow-x:auto; }
.workspace-tabs a { flex:none; min-height:34px; padding:8px 14px; border-radius:8px; color:#5d6c7a; font-size:12px; font-weight:700; white-space:nowrap; }
.workspace-tabs a:hover { color:var(--forest); background:#edf4fb; }
.workspace-tabs a.active { color:var(--forest); background:#fff; box-shadow:0 1px 3px rgba(17,45,75,.12); }

.main-area .page { padding-top:30px; }
.main-area .page-heading { margin-bottom:22px; }
.main-area .page-heading p { max-width:720px; font-size:13px; line-height:1.5; }
.main-area .eyebrow { font-size:10px; }
.main-area .button { min-height:40px; font-size:12px; }
.main-area .button.small { min-height:34px; font-size:11px; }
.main-area .panel-head h2 { font-size:18px; }
.main-area .panel-head a { font-size:11px; }
.main-area .metric-card > p { font-size:12px; }
.main-area .metric-card > small { font-size:10px; }
.main-area .table-wrap th { font-size:10px; }
.main-area .table-wrap td { font-size:12px; }
.main-area .table-wrap td > strong { font-size:12px; }
.main-area .table-wrap td > small { font-size:10px; }
.main-area .status,.main-area .priority,.main-area .small-action { font-size:10px; }
.main-area .small-action { display:inline-flex; align-items:center; justify-content:center; min-height:32px; }
.main-area .form-grid label { font-size:11px; }
.main-area .form-grid input,.main-area .form-grid select,.main-area .form-grid textarea { min-height:40px; font-size:13px; }
.main-area .form-grid textarea { min-height:88px; }
.main-area .panel-note { font-size:11px; }

/* Listados y tarjetas: las columnas nunca deben empujar ni recortar su contenido. */
.dashboard-grid,.home-grid,.portal-grid,.customer-detail-grid,.asset-grid,.team-grid { align-items:start; }
.order-card,.service-request-list > article,.portal-document { min-width:0; }
.order-card > *,.service-request-list > article > *,.portal-document > * { min-width:0; }
.order-main p,.service-request-list p,.portal-document small,.related-card small { overflow-wrap:anywhere; }
.customer-detail-heading,.asset-life-head,.work-order-detail-head { flex-wrap:wrap; }
.customer-detail-actions { flex-wrap:wrap; }

/* Rejilla semanal. Estas reglas reemplazan el calendario antiguo, que utilizaba
   las mismas clases y dejaba encabezados y franjas horarias descuadrados. */
.week-grid { position:static; display:grid; grid-template-columns:52px repeat(7, minmax(90px,1fr)); grid-template-rows:auto auto; gap:1px; min-width:0; margin-bottom:16px; overflow-x:auto; background:var(--line); }
.week-head { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:0; padding:10px 4px; border:0; background:#f7f9fb; }
.week-head div { padding:0; border:0; }
.week-hours { display:grid; grid-template-rows:repeat(var(--filas), minmax(42px,1fr)); min-width:0; }
.week-hour-label { display:block; min-height:42px; padding:5px 7px 0 0; font-size:10px; }
.week-day { display:grid; grid-template-rows:repeat(var(--filas), minmax(42px,1fr)); min-width:0; min-height:calc(var(--filas) * 42px); }
.week-slot { min-height:42px; }
.week-event { z-index:3; min-width:0; padding:5px 7px; font-size:10px; }
.week-event b { font-size:9px; }.week-event small { font-size:8px; }

@media (max-width:1000px) {
    .workspace-tabs-shell { padding-inline:18px; }
    .main-area .page { padding-inline:18px; }
    .customer-detail-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
    .workspace-tabs-shell { padding:10px 13px 0; }
    .workspace-tabs { width:100%; }
    .workspace-tabs a { flex:1; display:grid; place-items:center; min-height:40px; padding-inline:10px; font-size:11px; }
    .main-area .page { padding:22px 13px 38px; }
    .main-area .page-heading p { font-size:13px; }
    .main-area .panel-head h2 { font-size:17px; }
    .main-area .form-grid input,.main-area .form-grid select,.main-area .form-grid textarea { min-height:46px; font-size:16px; }
    .week-grid { grid-template-columns:42px repeat(7, minmax(78px,1fr)); border-radius:10px; }
    .week-head { min-height:50px; }.week-head strong { font-size:14px; }
    .week-hours { grid-template-rows:repeat(var(--filas), minmax(40px,1fr)); }
    .week-hour-label,.week-slot { min-height:40px; }
    .week-day { grid-template-rows:repeat(var(--filas), minmax(40px,1fr)); min-height:calc(var(--filas) * 40px); }
    .week-event { font-size:9px; }
}

/* Centro de trabajo: el inicio prioriza el ciclo del servicio, no una colección
   de tarjetas de navegación. */
.operations-heading { align-items:flex-end; }
.operations-heading p { margin-top:8px; }
.operations-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.operations-summary article { display:flex; align-items:center; gap:11px; min-width:0; padding:14px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.summary-icon { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:10px; font-size:11px; font-weight:800; }.summary-icon.blue { color:#275d91; background:#e2effa; }.summary-icon.navy { color:#fff; background:var(--forest); }.summary-icon.amber { color:#8a6117; background:#f8ebcf; }.summary-icon.mint { color:#23714d; background:#e2f3e9; }
.operations-summary strong,.operations-summary small { display:block; }.operations-summary strong { color:var(--ink); font-size:20px; line-height:1; }.operations-summary small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.25; }
.workflow-panel { margin-bottom:16px; overflow:hidden; }.workflow-help { color:var(--muted); font-size:10px; }
.workflow-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; padding:0 20px 20px; list-style:none; }.workflow-steps li { position:relative; display:flex; gap:10px; min-width:0; padding:12px 18px 12px 0; }.workflow-steps li:not(:last-child)::after { content:""; position:absolute; top:28px; right:0; width:18px; height:1px; background:#cdd9e4; }.workflow-steps>li>span { display:grid; place-items:center; width:26px; height:26px; flex:0 0 26px; border-radius:50%; color:#fff; background:var(--forest); font-size:10px; font-weight:800; }.workflow-steps strong,.workflow-steps p,.workflow-steps a { display:block; }.workflow-steps strong { font-size:12px; }.workflow-steps p { min-height:39px; margin:4px 0 7px; color:#617080; font-size:10px; line-height:1.42; }.workflow-steps a { color:#18558d; font-size:10px; font-weight:800; }
.operations-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr); gap:16px; margin-bottom:16px; align-items:start; }.operations-focus { overflow:hidden; }.focus-list { display:grid; }.focus-list>a { display:grid; grid-template-columns:32px minmax(0,1fr) 16px; gap:10px; align-items:center; padding:13px 17px; border-top:1px solid var(--line); transition:background .15s ease; }.focus-list>a:hover { background:#f7fafc; }.focus-list strong,.focus-list small { display:block; }.focus-list strong { font-size:11px; }.focus-list small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.35; }.focus-list>b { color:#6a8299; font-size:18px; font-weight:500; }.focus-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; font-size:12px; font-weight:800; }.focus-icon.danger { color:#a34c38; background:#fce5df; }.focus-icon.amber { color:#8d651c; background:#fbefd5; }.focus-icon.blue { color:#2c628f; background:#e4eff9; }.focus-empty { display:grid; justify-items:center; gap:5px; padding:29px 18px; text-align:center; }.focus-empty>span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#24714e; background:#e5f4eb; font-weight:800; }.focus-empty strong { font-size:12px; }.focus-empty small { color:var(--muted); font-size:10px; }
@media(max-width:1000px){.operations-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr));}.workflow-steps li:nth-child(2)::after{display:none}.operations-grid{grid-template-columns:1fr;}}
@media(max-width:640px){.operations-heading{align-items:flex-start}.operations-summary{gap:9px}.operations-summary article{padding:12px 10px}.summary-icon{width:32px;height:32px;flex-basis:32px}.operations-summary strong{font-size:18px}.operations-summary small{font-size:10px}.workflow-help{display:none}.workflow-steps{grid-template-columns:1fr;padding:0 15px 15px}.workflow-steps li{padding:11px 0}.workflow-steps li:not(:last-child)::after{top:auto;right:auto;bottom:0;left:13px;width:1px;height:10px}.workflow-steps p{min-height:0;font-size:11px}.workflow-steps a{font-size:11px}.operations-grid{gap:12px}.focus-list>a{padding:13px 15px}.focus-list strong{font-size:12px}.focus-list small{font-size:10px;}.operations-page .timeline-content strong{font-size:12px;}}

.onboarding-panel { margin-bottom:16px; }.onboarding-panel .panel-head>small { color:var(--muted); font-size:10px; }.onboarding-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0; padding:0 20px 20px; list-style:none; }.onboarding-steps li { display:grid; grid-template-columns:25px minmax(0,1fr); gap:8px; padding:11px; border:1px solid #e4ebf1; border-radius:11px; background:#fbfcfe; }.onboarding-steps li>span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#5f768b; background:#e7eef5; font-weight:800; }.onboarding-steps li.done>span { color:#24714e; background:#e5f4eb; }.onboarding-steps strong,.onboarding-steps small { display:block; }.onboarding-steps strong { font-size:11px; }.onboarding-steps small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.35; }.onboarding-steps a { grid-column:2; color:#18558d; font-size:9px; font-weight:800; }
.customer-operation-overview { overflow:hidden; }.customer-operation-overview .panel-head { align-items:center; }.next-visit-note { color:#516d86; font-size:10px; }.customer-operation-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.customer-operation-metrics a { padding:14px 16px; border-right:1px solid var(--line); transition:background .15s ease; }.customer-operation-metrics a:last-child { border:0; }.customer-operation-metrics a:hover { background:#f4f8fc; }.customer-operation-metrics strong,.customer-operation-metrics small { display:block; }.customer-operation-metrics strong { color:var(--forest); font-size:18px; }.customer-operation-metrics small { margin-top:3px; color:var(--muted); font-size:9px; }.customer-operation-actions { display:flex; flex-wrap:wrap; gap:8px; padding:13px 16px; }
@media(max-width:1000px){.onboarding-steps{grid-template-columns:repeat(2,minmax(0,1fr));}}@media(max-width:640px){.onboarding-panel .panel-head>small{display:none}.onboarding-steps{grid-template-columns:1fr;padding:0 15px 15px}.onboarding-steps li{grid-template-columns:28px minmax(0,1fr) auto;align-items:center}.onboarding-steps a{grid-column:3;grid-row:1;font-size:10px}.customer-operation-overview .panel-head{align-items:flex-start}.next-visit-note{font-size:9px}.customer-operation-metrics{grid-template-columns:1fr 1fr}.customer-operation-metrics a{border-bottom:1px solid var(--line)}.customer-operation-metrics a:nth-child(even){border-right:0}.customer-operation-actions{display:grid;grid-template-columns:1fr}.customer-operation-actions .button{width:100%;}}

/* Navegación de producto: color independiente del color comercial del tenant y accesos directos de operación. */
.sidebar { color:#e8f2fb; background:linear-gradient(165deg,#061d3a 0%,#082c55 55%,#0a4174 100%); box-shadow:10px 0 32px rgba(4,25,49,.12); }.brand-block{padding-bottom:22px}.brand-block small{color:#8eb6d8}.app-logo{border-color:rgba(140,198,235,.42);box-shadow:0 8px 22px rgba(0,10,28,.34)}.workspace-switcher{border-color:rgba(143,197,235,.18);background:rgba(255,255,255,.07)}.workspace-switcher small{color:#a8c8e2}.workspace-switcher:hover{background:rgba(255,255,255,.11)}
.main-nav{gap:5px}.nav-kicker{color:#78b8e5}.main-nav a{position:relative;min-height:42px;padding:11px 12px;color:#b9d2e7;border:1px solid transparent;font-size:12px}.main-nav a:hover{color:#fff;border-color:rgba(154,207,243,.16);background:rgba(133,194,234,.11)}.main-nav a.active{color:#fff;border-color:rgba(151,211,247,.22);background:linear-gradient(90deg,rgba(63,149,207,.48),rgba(60,132,190,.2));box-shadow:inset 3px 0 #80ccfa,0 4px 14px rgba(0,12,32,.16)}.main-nav a.active::after{content:"";position:absolute;top:50%;right:10px;width:5px;height:5px;border-radius:50%;background:#9edcff;transform:translateY(-50%)}.main-nav b{color:#062a52;background:#a5dcff}
.sidebar-quick-actions{display:grid;gap:7px;margin:22px 0 0;padding-top:17px;border-top:1px solid rgba(153,205,238,.16)}.sidebar-quick-actions :is(a,button){display:flex;align-items:center;gap:9px;min-height:37px;padding:8px 10px;border:1px solid rgba(154,208,242,.2);border-radius:9px;color:#dff1ff;background:rgba(4,24,47,.18);font-size:10px;font-weight:700;text-align:left}.sidebar-quick-actions :is(a,button):hover{border-color:#85cfff;background:rgba(113,188,235,.16)}.sidebar-quick-actions .quick-action-icon{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:6px;color:#062a52;background:#a5dcff;font-size:14px;line-height:1}.sidebar-quick-actions .quick-action-label{min-width:0}
.workspace-status{display:flex;align-items:center;gap:9px;padding:11px;margin-bottom:8px;border:1px solid rgba(151,208,244,.14);border-radius:10px;background:rgba(0,15,35,.17)}.workspace-status>i{width:7px;height:7px;border-radius:50%;background:#77d4ac;box-shadow:0 0 0 4px rgba(119,212,172,.12)}.workspace-status strong,.workspace-status small{display:block}.workspace-status strong{font:600 10px "DM Sans"}.workspace-status small{margin-top:2px;color:#a7c5de;font-size:9px}.session-actions button{min-height:34px;border-color:rgba(151,208,244,.2);color:#cde5f6;background:rgba(255,255,255,.06);font-size:9px}.session-actions button:hover{color:#fff;background:rgba(118,192,235,.16)}
@media(max-width:850px){.sidebar{background:linear-gradient(165deg,#061d3a 0%,#082c55 55%,#0a4174 100%)}.sidebar-quick-actions{margin-top:18px}.main-nav a{min-height:46px;font-size:13px}.sidebar-quick-actions :is(a,button){min-height:42px;font-size:11px}}

/* Barra superior fría y navegación lateral plegable para ganar espacio de trabajo. */
html { background:#f4f8fc; }.topbar { background:linear-gradient(180deg,rgba(250,252,255,.98),rgba(244,248,252,.95)); border-bottom-color:#dbe6f0; }.breadcrumb span { color:#62758a; }.breadcrumb b { color:#bfccd7; }.search-trigger { border-color:#d8e3ed; background:#fff; box-shadow:0 1px 2px rgba(14,48,80,.04); }.search-trigger kbd { border-color:#dce5ed; color:#728292; background:#f6f9fb; }.notification-button { border-color:#d8e3ed; background:#fff; }.user-chip { border-left-color:#d9e4ed; }.desktop-nav-toggle { display:grid; place-items:center; width:38px; height:38px; margin-right:4px; border:1px solid #d8e3ed; border-radius:10px; color:#174d7d; background:#fff; font-size:18px; line-height:1; box-shadow:0 1px 2px rgba(14,48,80,.04); }.desktop-nav-toggle:hover { border-color:#83bde4; color:#062a52; background:#eff7fd; }
body.nav-collapsed .demo-shell { grid-template-columns:76px minmax(0,1fr); }body.nav-collapsed .sidebar { width:76px; padding-inline:12px; }body.nav-collapsed .brand-block { justify-content:center; padding-inline:0; }body.nav-collapsed .brand-block>div:not(.app-logo),body.nav-collapsed .workspace-switcher>div,body.nav-collapsed .workspace-switcher>.icon-button,body.nav-collapsed .nav-kicker,body.nav-collapsed .main-nav a>span,body.nav-collapsed .workspace-status>div,body.nav-collapsed .session-actions { display:none; }body.nav-collapsed .workspace-switcher { display:flex; justify-content:center; padding:8px; border-radius:12px; }body.nav-collapsed .workspace-switcher>.avatar { display:grid; }body.nav-collapsed .main-nav { align-items:center; }body.nav-collapsed .main-nav a { justify-content:center; width:48px; padding:0; }body.nav-collapsed .main-nav a svg { width:19px; height:19px; }body.nav-collapsed .main-nav a.active::after { top:7px; right:7px; transform:none; }body.nav-collapsed .main-nav b { position:absolute; top:-5px; right:-5px; }body.nav-collapsed .sidebar-quick-actions { justify-items:center; }body.nav-collapsed .sidebar-quick-actions a { position:relative; justify-content:center; width:48px; min-height:48px; padding:0; }body.nav-collapsed .sidebar-quick-actions .quick-action-label { display:none; }body.nav-collapsed .sidebar-quick-actions .quick-action-icon { width:23px; height:23px; flex-basis:23px; }body.nav-collapsed .sidebar-quick-actions a::after { content:attr(aria-label); position:absolute; left:calc(100% + 10px); display:none; width:max-content; padding:7px 9px; border-radius:7px; color:#fff; background:#062a52; box-shadow:0 8px 20px rgba(2,24,48,.22); font-size:10px; white-space:nowrap; }body.nav-collapsed .sidebar-quick-actions a:hover::after,body.nav-collapsed .sidebar-quick-actions a:focus-visible::after { display:block; }body.nav-collapsed .workspace-status { justify-content:center; padding:11px 0; }
@media(max-width:850px){.desktop-nav-toggle{display:none}body.nav-collapsed .demo-shell{display:block}body.nav-collapsed .sidebar{width:min(320px,88vw);padding-inline:18px}body.nav-collapsed .brand-block{justify-content:initial;padding-inline:8px}body.nav-collapsed .brand-block>div:not(.app-logo),body.nav-collapsed .workspace-switcher>div,body.nav-collapsed .workspace-switcher>.icon-button,body.nav-collapsed .nav-kicker,body.nav-collapsed .main-nav a>span,body.nav-collapsed .workspace-status>div,body.nav-collapsed .session-actions{display:block}body.nav-collapsed .workspace-switcher{display:grid;justify-content:initial;padding:11px}body.nav-collapsed .main-nav{align-items:stretch}body.nav-collapsed .main-nav a{justify-content:flex-start;width:auto;padding:10px 12px}body.nav-collapsed .sidebar-quick-actions{justify-items:stretch}body.nav-collapsed .sidebar-quick-actions a{justify-content:flex-start;width:auto;min-height:42px;padding:8px 10px}body.nav-collapsed .sidebar-quick-actions .quick-action-label{display:inline}body.nav-collapsed .sidebar-quick-actions .quick-action-icon{width:20px;height:20px;flex-basis:20px}body.nav-collapsed .workspace-status{justify-content:flex-start;padding:11px}}

/* Auditoría responsive: acciones y navegación legibles desde tableta hasta móvil.
   Las acciones de Inicio son una decisión de trabajo, no dos textos comprimidos. */
.button { display:inline-flex; align-items:center; justify-content:center; text-align:center; line-height:1.2; white-space:normal; }
.operations-actions { align-items:stretch; }
.operations-actions .button { min-width:166px; min-height:44px; padding:0 17px; }

@media (max-width:850px) {
    .operations-heading { align-items:flex-start; flex-direction:column; gap:16px; }
    .operations-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,430px); }
    .operations-actions .button { width:100%; }
    .sidebar .main-nav { padding-bottom:6px; }
    .sidebar .main-nav a { min-width:0; }
    .sidebar-quick-actions { margin-top:14px; padding-top:14px; }
}

@media (max-width:640px) {
    .operations-heading { gap:14px; }
    .operations-heading > div:first-child { width:100%; }
    .operations-actions { grid-template-columns:1fr; max-width:none; gap:9px; }
    .operations-actions .button { min-height:48px; font-size:12px; }
    .sidebar { padding-inline:max(16px, env(safe-area-inset-left)); }
    .sidebar .main-nav { gap:6px; }
    .sidebar .main-nav a { min-height:48px; padding:12px; }
    .sidebar-quick-actions a { min-height:44px; }
}

@media (max-width:380px) {
    .operations-actions .button { min-height:50px; }
    .sidebar { width:min(312px,90vw); }
}

/* Los accesos globales son botones: plegados muestran solo el icono y en la
   navegación móvil recuperan su etiqueta sin cambiar de pantalla. */
body.nav-collapsed .sidebar-quick-actions button { position:relative; justify-content:center; width:48px; min-height:48px; padding:0; }
body.nav-collapsed .sidebar-quick-actions button::after { content:attr(aria-label); position:absolute; left:calc(100% + 10px); display:none; width:max-content; padding:7px 9px; border-radius:7px; color:#fff; background:#062a52; box-shadow:0 8px 20px rgba(2,24,48,.22); font-size:10px; white-space:nowrap; }
body.nav-collapsed .sidebar-quick-actions button:hover::after,body.nav-collapsed .sidebar-quick-actions button:focus-visible::after { display:block; }
body.nav-collapsed .sidebar-quick-actions button .quick-action-label { display:none; }
body.nav-collapsed .sidebar-quick-actions button .quick-action-icon { width:23px; height:23px; flex-basis:23px; }
@media(max-width:850px){body.nav-collapsed .sidebar-quick-actions button{justify-content:flex-start;width:auto;min-height:42px;padding:8px 10px}body.nav-collapsed .sidebar-quick-actions button .quick-action-label{display:inline}body.nav-collapsed .sidebar-quick-actions button .quick-action-icon{width:20px;height:20px;flex-basis:20px}}

/* Una sola puerta de entrada para todo el ciclo del servicio. Estas reglas son
   locales al modal para no alterar formularios, selects ni tarjetas existentes. */
#service-entry-modal { width:min(680px,calc(100% - 28px)); max-height:calc(100dvh - 28px); }
#service-entry-modal form { min-width:0; }
#service-entry-modal .form-grid label { color:#29445f; font-weight:750; }
#service-entry-modal .form-grid input,
#service-entry-modal .form-grid select,
#service-entry-modal .form-grid textarea { min-height:46px; border:1px solid #c7d6e3; border-radius:10px; color:#122d49; background:#fff; box-shadow:0 1px 2px rgba(8,42,73,.03); font-size:12px; transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease; }
#service-entry-modal .form-grid textarea { min-height:94px; line-height:1.5; }
#service-entry-modal .form-grid select { padding-right:38px; color:#153a5d; background-color:#f1f7fb; font-weight:700; cursor:pointer; }
#service-entry-modal .form-grid option { color:#18334e; background:#fff; font-weight:600; }
#service-entry-modal .form-grid input:hover,
#service-entry-modal .form-grid select:hover,
#service-entry-modal .form-grid textarea:hover { border-color:#9eb9cf; background-color:#fbfdff; }
#service-entry-modal .form-grid input:focus,
#service-entry-modal .form-grid select:focus,
#service-entry-modal .form-grid textarea:focus { border-color:#2f74aa; background:#fff; box-shadow:0 0 0 4px rgba(47,116,170,.13); }
#service-entry-modal .form-grid input::placeholder,
#service-entry-modal .form-grid textarea::placeholder { color:#8294a5; opacity:1; font-weight:500; }
#service-entry-modal input[name="new_document"] { color:#0b315c; background:#f8fbfe; font-weight:800; letter-spacing:.025em; }
#service-entry-modal input:-webkit-autofill { -webkit-text-fill-color:#122d49; box-shadow:0 0 0 1000px #fff inset; }
#service-entry-modal .form-grid label>small { color:#74869a; font-size:9px; font-weight:500; }
.service-customer-field { position:relative; }
.service-customer-combobox { position:relative; display:block; }
.service-customer-combobox>input[type="search"] { padding-right:38px; background:#fff; }
.service-customer-combobox::after { content:"⌕"; position:absolute; top:50%; right:13px; color:#668099; font-size:15px; transform:translateY(-50%); pointer-events:none; }
.service-customer-options { position:absolute; z-index:20; top:calc(100% + 6px); left:0; right:0; display:grid; max-height:260px; overflow:auto; padding:6px; border:1px solid #cad9e6; border-radius:11px; background:#fff; box-shadow:0 16px 34px rgba(8,39,70,.18); }
.service-customer-options button { display:block; width:100%; min-height:48px; padding:9px 11px; border:0; border-radius:8px; color:#21374d; background:#fff; text-align:left; }
.service-customer-options button:hover,.service-customer-options button:focus-visible { outline:0; background:#edf6fc; }
.service-customer-options button:first-child { color:#155b8f; border-bottom:1px solid #e3ebf2; border-radius:8px 8px 3px 3px; }
.service-customer-options strong,.service-customer-options small { display:block; }
.service-customer-options strong { font-size:10px; }
.service-customer-options small { margin-top:3px; color:#74869a; font-size:8px; font-weight:500; }
.service-new-customer { margin:0; padding:14px; border-style:solid; border-color:#cdddea; background:#f7fbfe; }
.service-new-customer-head { margin-bottom:12px; }
.service-new-customer-head strong,.service-new-customer-head small { display:block; }
.service-new-customer-head strong { color:#183d61; font-size:11px; }
.service-new-customer-head small { margin-top:3px; color:#6c7f92; font-size:9px; line-height:1.4; }
.service-new-customer .contact-rule { margin:11px 0 0; font-size:9px; }
.service-entry-decision { min-width:0; margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.service-entry-question { display:block; margin-bottom:9px; color:#29445f; font-size:10px; font-weight:800; }
.service-entry-choice { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; min-width:0; margin:0; padding:0; border:0; }
.service-entry-choice label { display:flex; align-items:flex-start; gap:9px; min-width:0; min-height:76px; height:100%; padding:12px; border:1px solid #d8e3ed; border-radius:11px; color:#25384d; background:#fbfdff; cursor:pointer; }
.service-entry-choice label:has(input:checked) { border-color:#4a85b8; background:#eef6fc; box-shadow:0 0 0 3px rgba(57,119,170,.09); }
.service-entry-choice input { width:16px; height:16px; flex:0 0 16px; margin:2px 0 0; accent-color:var(--forest); }
.service-entry-choice span,.service-entry-choice strong,.service-entry-choice small { display:block; min-width:0; }
.service-entry-choice strong { font-size:11px; }
.service-entry-choice small { margin-top:3px; color:#6d7f91; font-size:9px; line-height:1.4; }
.service-schedule-fields { margin-top:14px; padding:14px; border:1px solid #d8e5ef; border-radius:12px; background:#f6fafe; }
.service-entry-result { margin-top:13px; padding:10px 12px; border-radius:9px; color:#315978; background:#eaf4fb; font-size:10px; font-weight:700; line-height:1.4; }

@media(max-width:640px){#service-entry-modal{width:100%;max-height:100dvh}#service-entry-modal .form-grid input,#service-entry-modal .form-grid select,#service-entry-modal .form-grid textarea{min-height:48px;font-size:16px}.service-customer-options{max-height:45vh}.service-customer-options button{min-height:54px}.service-customer-options strong{font-size:13px}.service-customer-options small{font-size:11px}.service-entry-question{font-size:12px}.service-entry-choice{grid-template-columns:1fr}.service-entry-choice label{min-height:64px}.service-entry-choice strong{font-size:13px}.service-entry-choice small,#service-entry-modal .form-grid label>small,.service-entry-result,.service-new-customer-head small,.service-new-customer .contact-rule{font-size:11px}.service-new-customer{padding:12px}.service-new-customer-head strong{font-size:13px}.service-schedule-fields{padding:12px}}

/* Flujo de órdenes: cada control conserva el mismo lenguaje visual y cada
   estado explica la acción siguiente antes de permitir un cierre. */
.request-convert-form { grid-template-columns:minmax(135px,1.25fr) minmax(122px,1fr) minmax(90px,.7fr) auto; align-items:end; }
.request-convert-form label { display:grid; gap:5px; min-width:0; color:#617285; font-size:8px; font-weight:800; }
.request-convert-form label input,.request-convert-form label select { width:100%; }
.request-convert-form .button { min-height:38px; white-space:nowrap; }
.order-action { display:flex; align-items:center; justify-content:flex-end; }
.order-action form { width:100%; }
.order-action .button,.order-action form button { width:100%; min-height:38px; }
.service-progress { display:flex; gap:12px; padding:13px 22px; border-bottom:1px solid #dce7ef; color:#33546f; background:#f3f8fc; }
.service-progress::before { content:"→"; display:grid; place-items:center; width:26px; height:26px; flex:0 0 26px; border-radius:50%; color:#fff; background:#235f92; font-weight:800; }
.service-progress.needs-data { color:#76591f; background:#fff8e9; border-bottom-color:#f0dfb8; }
.service-progress.needs-data::before { content:"!"; color:#7c5b17; background:#f6df9e; }
.service-progress strong,.service-progress small { display:block; }.service-progress strong { font-size:11px; }.service-progress small { margin-top:3px; font-size:9px; line-height:1.4; }
.workflow-steps button { display:block; padding:0; border:0; color:#18558d; background:transparent; font:800 10px "DM Sans"; text-align:left; }

@media (max-width:640px) {
    .request-convert-form { grid-template-columns:1fr 1fr; gap:9px; }
    .request-convert-form label:first-of-type,.request-convert-form .button { grid-column:1/-1; }
    .request-convert-form label { font-size:10px; }.request-convert-form .button { min-height:46px; font-size:12px; }
    .service-progress { padding:13px 16px; }.service-progress strong { font-size:12px; }.service-progress small { font-size:10px; }
}

/* La programación de una solicitud ocupa su propia fila. Antes compartía la
   fila del resumen y los controles nativos de fecha/hora empujaban el botón
   fuera del panel en pantallas de escritorio intermedias. */
.service-request-list > article { grid-template-columns:minmax(0,1fr) auto; align-items:start; }
.service-request-list > article > .request-convert-form { grid-column:1/-1; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.8fr) minmax(158px,auto); width:100%; padding:12px; border:1px solid #dbe7f0; border-radius:11px; background:#f8fbfe; }
.request-convert-form label,.request-convert-form label input,.request-convert-form label select { min-width:0; }
.request-convert-form label input,.request-convert-form label select { min-height:40px; padding-inline:10px; font-size:10px; }
.request-convert-form .button { width:100%; min-width:0; min-height:40px; padding-inline:12px; }

@media (max-width:760px) {
    .service-request-list > article > .request-convert-form { grid-template-columns:1fr 1fr; }
    .service-request-list > article > .request-convert-form label:first-of-type,.service-request-list > article > .request-convert-form .button { grid-column:1/-1; }
}
