#dir-portal .dir-ops-page { color:#172033; }
#dir-portal .dir-ops-hero { min-height:146px; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:18px; padding:26px 28px; border-radius:22px; overflow:hidden; position:relative; color:#fff; box-shadow:0 18px 40px rgba(15,39,78,.13); }
#dir-portal .dir-ops-hero::after { content:""; position:absolute; width:210px; height:210px; right:-54px; top:-82px; border:34px solid rgba(255,255,255,.09); border-radius:50%; }
#dir-portal .dir-ops-hero > * { position:relative; z-index:1; }
#dir-portal .dir-ops-hero-schedule { background:linear-gradient(125deg,#0d4c35,#107a4a); }
#dir-portal .dir-ops-hero-stats { background:linear-gradient(125deg,#162b53,#315bb4); }
#dir-portal .dir-ops-hero-export { background:linear-gradient(125deg,#3e246d,#7552bc); }
#dir-portal .dir-ops-hero-faults { background:linear-gradient(125deg,#12375a,#246d91); }
#dir-portal .dir-ops-eyebrow { display:block; margin-bottom:5px; font-size:10px; font-weight:900; letter-spacing:1.5px; opacity:.74; }
#dir-portal .dir-ops-hero h2 { margin:0; font:800 27px/1.15 'Fraunces',serif; }
#dir-portal .dir-ops-hero p { max-width:670px; margin:7px 0 0; font-size:13px; line-height:1.55; opacity:.84; }
#dir-portal .dir-ops-btn { appearance:none; padding:10px 17px; border-radius:10px; border:1px solid transparent; font:800 12px 'Sora',sans-serif; cursor:pointer; white-space:nowrap; }
#dir-portal .dir-ops-btn:disabled { opacity:.58; cursor:not-allowed; }
#dir-portal .dir-ops-btn-light { color:#fff; border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.12); backdrop-filter:blur(8px); }
#dir-portal .dir-ops-btn-primary { color:#fff; background:#2767e8; box-shadow:0 8px 20px rgba(39,103,232,.24); }
#dir-portal .dir-ops-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
#dir-portal .dir-ops-kpi { display:flex; align-items:center; gap:12px; min-height:76px; padding:14px 16px; background:#fff; border:1px solid #e4eaf2; border-radius:15px; box-shadow:0 8px 24px rgba(15,23,42,.045); }
#dir-portal .dir-ops-kpi > span { width:39px; height:39px; display:grid; place-items:center; flex:0 0 auto; border-radius:12px; background:#eef4ff; font-size:18px; }
#dir-portal .dir-ops-kpi.green > span { background:#e6f8ed; }
#dir-portal .dir-ops-kpi.violet > span { background:#f2edff; }
#dir-portal .dir-ops-kpi.amber > span { background:#fff5d9; }
#dir-portal .dir-ops-kpi.red > span { background:#ffebea; }
#dir-portal .dir-ops-kpi b { display:block; color:#111b2d; font:850 23px/1 'Fraunces',serif; }
#dir-portal .dir-ops-kpi small { display:block; margin-top:5px; color:#718096; font-size:10.5px; font-weight:650; }
#dir-portal .dir-ops-tabs { display:flex; gap:6px; margin:0 0 13px; padding:5px; width:max-content; max-width:100%; overflow:auto; background:#e9eef6; border-radius:12px; }
#dir-portal .dir-ops-tabs button { appearance:none; padding:8px 15px; border:0; border-radius:8px; background:transparent; color:#64748b; font:750 11.5px 'Sora',sans-serif; cursor:pointer; white-space:nowrap; }
#dir-portal .dir-ops-tabs button.active { background:#fff; color:#172033; box-shadow:0 3px 10px rgba(15,23,42,.10); }
#dir-portal .dir-ops-card { padding:16px; background:#fff; border:1px solid #e2e8f0; border-radius:17px; box-shadow:0 8px 25px rgba(15,23,42,.04); }
#dir-portal .dir-ops-split { display:grid; grid-template-columns:300px minmax(0,1fr); gap:14px; align-items:start; }
#dir-portal .dir-horarios-aside { position:sticky; top:80px; }
#dir-portal .dir-horarios-view { min-height:430px; overflow:auto; }
#dir-portal .dir-ops-search { height:41px; display:flex; align-items:center; gap:8px; padding:0 12px; margin-bottom:12px; background:#f8fafc; border:1px solid #dce4ee; border-radius:10px; color:#94a3b8; }
#dir-portal .dir-ops-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#334155; font:500 12px 'Sora',sans-serif; }
#dir-portal .dir-horarios-selector { display:flex; flex-direction:column; gap:8px; max-height:600px; overflow:auto; padding-right:3px; }
#dir-portal .dir-schedule-item { appearance:none; width:100%; min-height:69px; display:flex; align-items:center; gap:10px; padding:10px; border:1px solid #e4e9f0; border-radius:12px; background:#fff; text-align:left; cursor:pointer; transition:.17s ease; }
#dir-portal .dir-schedule-item:hover,#dir-portal .dir-schedule-item.active { border-color:#5a8ded; background:#f5f8ff; transform:translateY(-1px); box-shadow:0 6px 18px rgba(30,64,175,.08); }
#dir-portal .dir-schedule-room,#dir-portal .dir-schedule-person { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:11px; background:#e9f7ee; color:#11703e; font:900 17px/1 'Sora',sans-serif; }
#dir-portal .dir-schedule-room small { display:block; margin-top:-10px; font-size:9px; }
#dir-portal .dir-schedule-person { background:#eef3ff; color:#315bb4; font-size:12px; }
#dir-portal .dir-schedule-item p { flex:1; min-width:0; margin:0; }
#dir-portal .dir-schedule-item p b,#dir-portal .dir-schedule-item p small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#dir-portal .dir-schedule-item p b { color:#1e293b; font-size:12px; }
#dir-portal .dir-schedule-item p small { margin-top:4px; color:#8793a6; font-size:9.5px; }
#dir-portal .dir-schedule-item > em { padding:3px 7px; border-radius:99px; background:#f1f5f9; color:#8b97a8; font-size:8.5px; font-style:normal; font-weight:850; }
#dir-portal .dir-schedule-item > em.ready { background:#e5f7eb; color:#167242; }
#dir-portal .dir-ops-loading,#dir-portal .dir-ops-error { grid-column:1/-1; padding:38px; text-align:center; color:#8b97a8; font-size:12px; }
#dir-portal .dir-ops-error { color:#b42318; background:#fff1f0; border:1px solid #ffd0cc; border-radius:13px; }
#dir-portal .dir-ops-empty { min-height:330px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#8793a6; }
#dir-portal .dir-ops-empty.compact { min-height:150px; }
#dir-portal .dir-ops-empty span { font-size:40px; margin-bottom:10px; }
#dir-portal .dir-ops-empty strong { color:#243047; font-size:14px; }
#dir-portal .dir-ops-empty p { max-width:320px; margin:5px 0 0; font-size:11px; line-height:1.5; }
#dir-portal .dir-stats-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#dir-portal .dir-stats-card { min-height:280px; padding:19px; background:#fff; border:1px solid #e2e8f0; border-radius:18px; box-shadow:0 10px 30px rgba(15,23,42,.045); }
#dir-portal .dir-stats-card.wide { grid-column:1/-1; }
#dir-portal .dir-stats-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; }
#dir-portal .dir-stats-card > header span { display:block; color:#7b8aa0; font-size:8.5px; letter-spacing:1.2px; font-weight:900; }
#dir-portal .dir-stats-card > header h3 { margin:4px 0 0; color:#172033; font-size:14px; }
#dir-portal .dir-stats-card > header > b { color:#64748b; font-size:10px; }
#dir-portal .dir-donut-layout { min-height:205px; display:flex; align-items:center; justify-content:center; gap:28px; }
#dir-portal .dir-donut { width:142px; height:142px; display:flex; flex-direction:column; align-items:center; justify-content:center; flex:0 0 auto; position:relative; border-radius:50%; background:conic-gradient(#21a469 0 var(--a),#4c76db var(--a) var(--b),#e45858 var(--b) var(--c),#dbe2ea var(--c) 100%); }
#dir-portal .dir-donut::after { content:""; position:absolute; inset:17px; border-radius:50%; background:#fff; }
#dir-portal .dir-donut strong,#dir-portal .dir-donut small { position:relative; z-index:1; }
#dir-portal .dir-donut strong { color:#172033; font:900 29px 'Fraunces',serif; }
#dir-portal .dir-donut small { color:#8793a6; font-size:9px; }
#dir-portal .dir-donut-legend p { display:grid; grid-template-columns:9px 24px 1fr; gap:7px; align-items:center; margin:8px 0; color:#64748b; font-size:10px; }
#dir-portal .dir-donut-legend i { width:8px; height:8px; border-radius:50%; background:#dbe2ea; }
#dir-portal .dir-donut-legend i.great { background:#21a469; } #dir-portal .dir-donut-legend i.process { background:#4c76db; } #dir-portal .dir-donut-legend i.risk { background:#e45858; }
#dir-portal .dir-chart-list { display:flex; flex-direction:column; gap:13px; }
#dir-portal .dir-chart-list.large { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; }
#dir-portal .dir-chart-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(90px,1.3fr) 34px; gap:10px; align-items:center; }
#dir-portal .dir-chart-row div b,#dir-portal .dir-chart-row div small { display:block; }
#dir-portal .dir-chart-row div b { color:#344054; font-size:10.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#dir-portal .dir-chart-row div small { margin-top:3px; color:#98a2b3; font-size:8.5px; }
#dir-portal .dir-chart-row > span { height:8px; overflow:hidden; border-radius:99px; background:#edf1f5; }
#dir-portal .dir-chart-row > span i { display:block; height:100%; border-radius:99px; background:#557dde; }
#dir-portal .dir-chart-row > span i.great { background:#22a66a; } #dir-portal .dir-chart-row > span i.process { background:#557dde; } #dir-portal .dir-chart-row > span i.risk { background:#e45858; } #dir-portal .dir-chart-row > span i.none { background:#aab4c2; } #dir-portal .dir-chart-row > span i.violet { background:#8b68d5; } #dir-portal .dir-chart-row > span i.green { background:#27a069; }
#dir-portal .dir-chart-row > strong { color:#344054; font-size:10px; text-align:right; }
#dir-portal .dir-status-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
#dir-portal .dir-status-grid div { min-height:84px; padding:13px; border-radius:13px; background:#f8fafc; }
#dir-portal .dir-status-grid span,#dir-portal .dir-status-grid b,#dir-portal .dir-status-grid small { display:block; }
#dir-portal .dir-status-grid b { margin:5px 0 2px; color:#172033; font:850 20px 'Fraunces',serif; }
#dir-portal .dir-status-grid small { color:#7b8aa0; font-size:9px; }
#dir-portal .dir-group-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#dir-portal .dir-group-stat-grid article { padding:14px; border:1px solid #e5eaf0; border-radius:14px; background:linear-gradient(145deg,#fff,#f8fafc); }
#dir-portal .dir-group-stat-top { display:flex; align-items:center; gap:9px; }
#dir-portal .dir-group-stat-top > span { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; background:#e9f7ee; color:#107443; font-weight:900; }
#dir-portal .dir-group-stat-top > div { flex:1; min-width:0; } #dir-portal .dir-group-stat-top > div b,#dir-portal .dir-group-stat-top > div small { display:block; }
#dir-portal .dir-group-stat-top > div b { color:#263248; font-size:11px; } #dir-portal .dir-group-stat-top > div small { margin-top:3px; color:#8b97a8; font-size:9px; }
#dir-portal .dir-group-stat-top > strong { color:#64748b; font:900 20px 'Fraunces',serif; } #dir-portal .dir-group-stat-top > strong.great { color:#17814d; } #dir-portal .dir-group-stat-top > strong.process { color:#315bb4; } #dir-portal .dir-group-stat-top > strong.risk { color:#c33d3d; }
#dir-portal .dir-group-stat-meta { display:flex; justify-content:space-between; gap:6px; margin-top:12px; padding-top:10px; border-top:1px solid #edf1f5; color:#7b8aa0; font-size:8.5px; }
#dir-portal .dir-big-bars { display:flex; flex-direction:column; gap:22px; padding:10px; }
#dir-portal .dir-monthly-analysis { margin-top:15px; padding:21px; border:1px solid #cbd9ff; border-radius:18px; background:linear-gradient(135deg,#f4f7ff,#fbf9ff); box-shadow:0 10px 30px rgba(49,91,180,.06); }
#dir-portal .dir-monthly-analysis:not(:has(.dir-monthly-grid)) { display:flex; align-items:center; justify-content:space-between; gap:22px; }
#dir-portal .dir-monthly-copy span,#dir-portal .dir-monthly-head span { color:#315bb4; font-size:9px; font-weight:900; letter-spacing:1.2px; }
#dir-portal .dir-monthly-copy h3,#dir-portal .dir-monthly-head h3 { margin:5px 0; color:#172033; font-size:16px; }
#dir-portal .dir-monthly-copy p,#dir-portal .dir-monthly-head p { max-width:720px; margin:0; color:#65738a; font-size:10.5px; line-height:1.55; }
#dir-portal .dir-monthly-head { display:flex; justify-content:space-between; gap:18px; }
#dir-portal .dir-monthly-head > em { height:max-content; padding:6px 10px; border-radius:99px; background:#e3f7ea; color:#187748; font-size:9px; font-style:normal; font-weight:850; }
#dir-portal .dir-monthly-grid { display:grid; grid-template-columns:.85fr 1.4fr; gap:18px; margin-top:18px; }
#dir-portal .dir-monthly-grid section { padding:15px; border-radius:13px; background:rgba(255,255,255,.78); border:1px solid #e4e9f5; }
#dir-portal .dir-monthly-grid h4 { margin:0 0 11px; font-size:12px; }
#dir-portal .dir-monthly-grid section > p { display:flex; gap:8px; margin:9px 0; color:#526078; font-size:10px; line-height:1.55; }
#dir-portal .dir-monthly-grid section > p span { color:#315bb4; font-weight:900; }
#dir-portal .dir-monthly-grid article { display:flex; gap:9px; padding:10px 0; border-bottom:1px solid #edf0f6; }
#dir-portal .dir-monthly-grid article:last-child { border-bottom:0; }
#dir-portal .dir-monthly-grid article > em { height:max-content; padding:3px 6px; border-radius:6px; color:#87590d; background:#fff1c7; font-size:7.5px; font-style:normal; font-weight:900; text-transform:uppercase; }
#dir-portal .dir-monthly-grid article > em.alta { color:#a92f2f; background:#ffe7e5; }
#dir-portal .dir-monthly-grid article b { color:#29364b; font-size:10.5px; } #dir-portal .dir-monthly-grid article p { margin:3px 0; color:#5f6e85; font-size:9.5px; line-height:1.45; } #dir-portal .dir-monthly-grid article small { color:#315bb4; font-size:8.5px; }
#dir-portal .dir-export-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
#dir-portal .dir-export-card { min-height:175px; display:flex; flex-direction:column; align-items:flex-start; padding:18px; background:#fff; border:1px solid #e2e8f0; border-radius:17px; box-shadow:0 8px 25px rgba(15,23,42,.045); }
#dir-portal .dir-export-card.featured { grid-column:span 2; color:#fff; background:linear-gradient(125deg,#153e2b,#118253); border-color:transparent; }
#dir-portal .dir-export-card > span { font-size:27px; } #dir-portal .dir-export-card > div { flex:1; }
#dir-portal .dir-export-card em { display:block; margin-top:9px; color:#718096; font-size:8px; font-style:normal; font-weight:900; letter-spacing:1px; } #dir-portal .dir-export-card.featured em { color:rgba(255,255,255,.68); }
#dir-portal .dir-export-card h3 { margin:4px 0; font-size:13px; } #dir-portal .dir-export-card p { margin:0; color:#7b8aa0; font-size:9.5px; line-height:1.45; } #dir-portal .dir-export-card.featured p { color:rgba(255,255,255,.76); }
#dir-portal .dir-export-card button { margin-top:13px; padding:7px 11px; border:1px solid #cfd8e5; border-radius:8px; background:#f8fafc; color:#344054; font:800 9.5px 'Sora',sans-serif; cursor:pointer; } #dir-portal .dir-export-card.featured button { color:#12693f; border:0; background:#fff; }
#dir-portal .dir-ops-select { min-height:37px; padding:7px 11px; border:1px solid #dce3eb; border-radius:9px; background:#fff; color:#475569; font:650 11px 'Sora',sans-serif; }
#dir-portal .dir-fault-categories-wrap { margin-bottom:14px; padding:18px; border:1px solid #e1e8f0; border-radius:18px; background:#fff; box-shadow:0 8px 26px rgba(15,23,42,.04); }
#dir-portal .dir-fault-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:14px; }
#dir-portal .dir-fault-section-head span { color:#7a8a9f; font-size:8.5px; font-weight:900; letter-spacing:1.3px; }
#dir-portal .dir-fault-section-head h3 { margin:4px 0 0; color:#182337; font-size:15px; }
#dir-portal .dir-fault-section-head small { color:#8b97a8; font-size:9.5px; }
#dir-portal .dir-fault-categories { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
#dir-portal .dir-fault-category { appearance:none; min-height:70px; display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid #e2e8f0; border-radius:13px; background:#fbfcfe; text-align:left; cursor:pointer; transition:.18s ease; }
#dir-portal .dir-fault-category:hover,#dir-portal .dir-fault-category.active { border-color:#7196d9; background:#f3f7ff; transform:translateY(-1px); box-shadow:0 7px 18px rgba(30,64,175,.08); }
#dir-portal .dir-fault-category > span { width:39px; height:39px; display:grid; place-items:center; flex:0 0 auto; border-radius:11px; background:#e9f1ff; font-size:18px; }
#dir-portal .dir-fault-category.violet > span { background:#f0eaff; } #dir-portal .dir-fault-category.amber > span { background:#fff1d8; } #dir-portal .dir-fault-category.green > span { background:#e4f7eb; } #dir-portal .dir-fault-category.cyan > span { background:#e4f7f8; } #dir-portal .dir-fault-category.red > span { background:#ffe9e7; }
#dir-portal .dir-fault-category > div { flex:1; min-width:0; } #dir-portal .dir-fault-category b,#dir-portal .dir-fault-category small { display:block; }
#dir-portal .dir-fault-category b { color:#243047; font-size:10.5px; } #dir-portal .dir-fault-category small { margin-top:4px; color:#8995a7; font-size:8.5px; }
#dir-portal .dir-fault-category > em { min-width:24px; height:24px; display:grid; place-items:center; border-radius:99px; background:#fff; color:#617089; font-size:9px; font-style:normal; font-weight:900; box-shadow:0 2px 7px rgba(15,23,42,.07); }
#dir-portal .dir-fault-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) auto auto auto; gap:9px; align-items:center; margin-bottom:14px; padding:12px; }
#dir-portal .dir-fault-toolbar .dir-ops-search { margin:0; }
#dir-portal .dir-fault-count { padding:0 5px; color:#738197; font-size:9.5px; font-weight:800; white-space:nowrap; }
#dir-portal .dir-fault-locations { display:flex; flex-direction:column; gap:13px; }
#dir-portal .dir-fault-location { overflow:hidden; border:1px solid #e1e7ef; border-radius:17px; background:#fff; box-shadow:0 9px 28px rgba(15,23,42,.04); }
#dir-portal .dir-fault-location > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 16px; border-bottom:1px solid #e8edf3; background:linear-gradient(90deg,#f6faf8,#f8faff); }
#dir-portal .dir-fault-location > header > div { display:flex; align-items:center; gap:9px; } #dir-portal .dir-fault-location > header > div > span { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; background:#e6f4eb; }
#dir-portal .dir-fault-location header strong,#dir-portal .dir-fault-location header small { display:block; } #dir-portal .dir-fault-location header strong { color:#183929; font-size:11.5px; } #dir-portal .dir-fault-location header small { margin-top:3px; color:#829087; font-size:8.5px; }
#dir-portal .dir-fault-location > header > em { color:#718096; font-size:9px; font-style:normal; font-weight:850; }
#dir-portal .dir-fault-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; padding:13px; }
#dir-portal .dir-fault-ticket { min-width:0; padding:14px; border:1px solid #e4e9ef; border-left:4px solid var(--priority,#64748b); border-radius:12px; background:#fff; }
#dir-portal .dir-fault-ticket-head { display:flex; justify-content:space-between; align-items:flex-start; gap:9px; }
#dir-portal .dir-fault-ticket-head > div > small { display:block; margin-top:5px; color:#929dad; font-size:8px; }
#dir-portal .dir-fault-ticket-head > span { padding:4px 8px; border-radius:99px; font-size:8.5px; font-weight:850; white-space:nowrap; }
#dir-portal .dir-fault-kind { display:inline-block; padding:4px 7px; border-radius:7px; background:#edf3ff; color:#315a9f; font-size:8.5px; font-weight:850; }
#dir-portal .dir-fault-kind.violet { background:#f1ebff; color:#6c4cad; } #dir-portal .dir-fault-kind.amber { background:#fff0d8; color:#9a6413; } #dir-portal .dir-fault-kind.green { background:#e7f7ed; color:#167748; } #dir-portal .dir-fault-kind.cyan { background:#e3f6f8; color:#19717a; } #dir-portal .dir-fault-kind.red { background:#ffe9e7; color:#a83c35; }
#dir-portal .dir-fault-ticket h4 { margin:12px 0 4px; color:#1d2939; font-size:12px; }
#dir-portal .dir-fault-ticket > p { min-height:38px; margin:0 0 12px; color:#536176; font-size:10.5px; line-height:1.55; overflow-wrap:anywhere; }
#dir-portal .dir-fault-ticket-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; border-radius:10px; background:#f8fafc; }
#dir-portal .dir-fault-ticket-meta span { min-width:0; color:#526078; font-size:8.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } #dir-portal .dir-fault-ticket-meta b { display:block; margin-bottom:2px; color:#9aa4b2; font-size:7px; text-transform:uppercase; letter-spacing:.45px; }
#dir-portal .dir-fault-followup { margin-top:9px; padding:9px 10px; border-left:3px solid #6d8bc8; border-radius:7px; background:#f3f6fb; color:#58667b; font-size:9px; line-height:1.45; } #dir-portal .dir-fault-followup b { display:block; margin-bottom:3px; color:#324d7d; }
#dir-portal .dir-fault-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
#dir-portal .dir-fault-actions button { appearance:none; padding:6px 8px; border:1px solid #d8e0ea; border-radius:7px; background:#fff; color:#56657a; font:750 8.5px 'Sora',sans-serif; cursor:pointer; }
#dir-portal .dir-fault-actions button.primary { margin-left:auto; border-color:#aac2ee; background:#eef4ff; color:#2859aa; } #dir-portal .dir-fault-actions button.success { border-color:#a9dfbe; background:#edf9f1; color:#177144; }
#dir-portal .dir-fault-empty { min-height:250px; border:1px dashed #cfd8e4; border-radius:17px; background:#fff; }
.rep-aula-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.rep-aula-form-grid .full { grid-column:1/-1; } .rep-aula-form-grid label { display:block; margin-bottom:5px; color:#475569; font:750 11px 'Sora',sans-serif; }
.rep-aula-form-grid input,.rep-aula-form-grid select,.rep-aula-form-grid textarea { width:100%; box-sizing:border-box; padding:9px 11px; border:1.5px solid #dce3eb; border-radius:9px; background:#fff; color:#334155; font:500 12px 'Sora',sans-serif; outline:none; }
.rep-aula-form-grid input:focus,.rep-aula-form-grid select:focus,.rep-aula-form-grid textarea:focus { border-color:#5784d5; box-shadow:0 0 0 3px rgba(87,132,213,.11); } .rep-aula-form-grid textarea { resize:vertical; line-height:1.5; }
.rep-aula-form-note { margin:0; padding:9px 10px; border-radius:8px; background:#f4f7fb; color:#6b7789; font-size:9.5px; line-height:1.5; }
.rep-aula-history { display:flex; flex-direction:column; gap:0; } .rep-aula-history-item { display:flex; gap:10px; padding:11px 0; border-bottom:1px solid #edf1f5; } .rep-aula-history-item:last-child { border-bottom:0; }
.rep-aula-history-item > span { height:max-content; padding:4px 7px; border-radius:99px; font-size:8px; font-weight:850; } .rep-aula-history-item div { flex:1; } .rep-aula-history-item b,.rep-aula-history-item small { display:block; } .rep-aula-history-item b { color:#344054; font-size:10px; } .rep-aula-history-item small { margin-top:3px; color:#98a2b3; font-size:8px; } .rep-aula-history-item p { margin:6px 0 0; color:#5d6a7e; font-size:9.5px; line-height:1.45; }
#dir-portal .dir-sep-radar { display:grid; grid-template-columns:.9fr 1.1fr; gap:18px; margin-bottom:18px; padding:20px; border:1px solid #bfe3ce; border-radius:17px; background:linear-gradient(135deg,#edf9f2,#fff); }
#dir-portal .dir-sep-radar-copy > span { color:#16804c; font-size:8.5px; font-weight:900; letter-spacing:1.2px; } #dir-portal .dir-sep-radar-copy h3 { margin:5px 0; color:#173b2a; font-size:16px; } #dir-portal .dir-sep-radar-copy p { margin:0; color:#607568; font-size:10px; line-height:1.55; }
#dir-portal .dir-sep-sources { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; } #dir-portal .dir-sep-sources a,#dir-portal .dir-sep-sources div { display:flex; flex-direction:column; justify-content:center; min-height:73px; padding:10px; border:1px solid #d9eadf; border-radius:11px; background:#fff; color:#1f5137; text-decoration:none; } #dir-portal .dir-sep-sources b { font-size:9.5px; } #dir-portal .dir-sep-sources small { margin-top:4px; color:#789083; font-size:8px; line-height:1.35; }

@media (max-width:1100px) {
  #dir-portal .dir-ops-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #dir-portal .dir-ops-split { grid-template-columns:260px minmax(0,1fr); }
  #dir-portal .dir-group-stat-grid,#dir-portal .dir-export-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #dir-portal .dir-fault-categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #dir-portal .dir-fault-list { grid-template-columns:1fr; }
  #dir-portal .dir-sep-radar { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  #dir-portal .dir-ops-hero { min-height:auto; align-items:flex-start; padding:20px; }
  #dir-portal .dir-ops-hero h2 { font-size:22px; }
  #dir-portal .dir-ops-split,#dir-portal .dir-stats-grid,#dir-portal .dir-monthly-grid { grid-template-columns:1fr; }
  #dir-portal .dir-horarios-aside { position:static; }
  #dir-portal .dir-horarios-selector { max-height:280px; }
  #dir-portal .dir-chart-list.large,#dir-portal .dir-group-stat-grid { grid-template-columns:1fr; }
  #dir-portal .dir-export-card.featured { grid-column:span 1; }
  #dir-portal .dir-sep-sources { grid-template-columns:1fr; }
  #dir-portal .dir-fault-toolbar { grid-template-columns:1fr 1fr; }
}
@media (max-width:520px) {
  #dir-portal .dir-ops-hero { flex-direction:column; }
  #dir-portal .dir-ops-kpis,#dir-portal .dir-export-grid { grid-template-columns:1fr; }
  #dir-portal .dir-donut-layout { flex-direction:column; }
  #dir-portal .dir-monthly-analysis:not(:has(.dir-monthly-grid)),#dir-portal .dir-monthly-head { flex-direction:column; align-items:flex-start; }
  #dir-portal .dir-fault-categories,#dir-portal .dir-fault-toolbar,.rep-aula-form-grid { grid-template-columns:1fr; }
  .rep-aula-form-grid .full { grid-column:auto; }
}

/* Keep the full week in a bounded, keyboard-accessible scroller. */
#dir-portal .dir-horarios-view{min-width:0;max-width:100%;overflow:visible}
#dir-horarios-viewer,#dir-horarios-viewer-tabla{display:block;min-width:0;width:100%;max-width:100%;text-align:left}
#dir-horarios-viewer-tabla>div{width:100%;max-width:100%;overflow-x:auto!important;overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:#64748b #e2e8f0;padding-bottom:12px}
#dir-horarios-viewer table{min-width:860px!important;table-layout:fixed}
#dir-horarios-viewer th:first-child,#dir-horarios-viewer td:first-child{width:100px!important}
#dir-horarios-viewer td div{white-space:normal!important;overflow-wrap:anywhere}
#dir-portal .dir-schedule-scroll-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:12px;color:#64748b;flex-wrap:wrap}
#dir-portal .dir-schedule-scroll-controls button{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:white;color:#334155;cursor:pointer}
