@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700;800&display=swap');

:root{color-scheme:light;--bg:#f5f7fb;--panel:#fff;--panel-2:#f8f9fc;--line:#e1e6ef;--text:#182447;--muted:#65728a;--blue:#1939a4;--blue-light:#e8efff;--red:#ff222b;--orange:#ff4e05;--orange-2:#ff8800;--yellow:#ffc023;--green:#16864a;--radius:12px}
*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:14px;line-height:1.4}.dashboard{max-width:1600px;margin:0 auto;padding:24px 22px 30px}.page-header{margin-bottom:0}.eyebrow,.section-title,.filters label>span{font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}.eyebrow{margin-bottom:7px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:24px}.title-copy{min-width:0}h1{font-size:28px;line-height:1.12;letter-spacing:-.035em;margin:0 0 7px;font-weight:800;color:var(--blue)}.base-meta{color:var(--muted);margin:0;font-size:13px}.base-meta strong{color:var(--text);font-weight:700}.brand-logo{width:160px;height:auto;max-height:54px;object-fit:contain;flex:none}.upload-button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:11px 17px;border-radius:9px;background:var(--blue);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:filter .15s}.upload-button:hover{filter:brightness(1.1)}.upload-icon{font-size:19px;line-height:12px}.filters{position:sticky;top:0;z-index:30;margin-top:12px;padding:12px 14px;display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;align-items:end;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 3px 14px #172b4d08}.filters label,.filters .filter-field{display:grid;gap:6px;min-width:0}.filters label>span,.filters .filter-field>span{font-size:10px;letter-spacing:.09em}.filters .filter-field>span{font-weight:700;text-transform:uppercase;color:var(--blue)}.multi-select{position:relative;min-width:0}.multi-select summary{list-style:none;position:relative;display:block;width:100%;height:36px;padding:8px 30px 7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);background:#fff;border:1px solid #d5dce8;border-radius:7px;font:500 13px 'DM Sans',sans-serif;cursor:pointer}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary:after{content:"▾";position:absolute;right:10px;top:7px;color:var(--muted)}.multi-select[open]{z-index:60}.multi-options{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:250px;overflow:auto;padding:5px;background:#fff;border:1px solid #d5dce8;border-radius:8px;box-shadow:0 10px 24px #172b4d24}.multi-select[open] .multi-options{display:grid;gap:1px}.multi-options label{display:flex;align-items:center;gap:9px;min-height:34px;padding:5px 7px;border-radius:5px;cursor:pointer}.multi-options label:hover{background:#f1f4fb}.multi-options label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.multi-options input[type=checkbox]{width:15px;height:15px;margin:0;padding:0;accent-color:var(--blue);flex:none}.multi-empty{padding:9px;color:var(--muted);font-size:12px}.filters select,.filters input[type=date]{width:100%;min-width:0;height:36px;padding:0 10px;color:var(--text);background:#fff;border:1px solid #d5dce8;border-radius:7px;font:500 13px 'DM Sans',sans-serif}.clear-button,.download-button{height:36px;padding:0 13px;border-radius:7px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.clear-button{background:#fff;color:var(--blue);border:1px solid #cbd5e7}.clear-button:hover{background:#f1f4fb}.download-button{background:var(--blue);color:#fff;border:1px solid var(--blue)}.download-button:hover:not(:disabled){filter:brightness(1.1)}.download-button:disabled{opacity:.48;cursor:not-allowed}.message{min-height:0;margin-top:0;color:var(--blue);font-size:12px}.message:not(:empty){padding:8px 10px;margin-top:9px;border-radius:7px;background:#eaf0fc}.message.error{color:#ba1e27;background:#fff0f0}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 24px}.kpi{min-width:0;min-height:104px;padding:13px 15px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);display:flex;flex-direction:column;box-shadow:0 4px 16px #172b4d07}.kpi>span{color:#34415c;font-size:12px;font-weight:600}.kpi strong{font-size:29px;line-height:1.12;letter-spacing:-.035em;margin:5px 0 3px;font-variant-numeric:tabular-nums;color:var(--blue)}.kpi small{color:var(--muted);font-size:11px}.kpi-primary{background:var(--blue);border-color:var(--blue);color:#fff}.kpi-primary>span,.kpi-primary small,.kpi-primary strong{color:#fff}.section-block{margin:0 0 20px}.section-title{margin:0 0 10px}.composition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.composition-card{min-width:0;padding:13px 14px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 16px #172b4d07}.composition-card h3{font-size:13px;line-height:1.3;margin:0 0 4px;color:var(--text)}.field-hint{margin:0;color:var(--muted);font:11px 'DM Mono',monospace}.composition-values{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:9px 0 8px}.composition-item{min-width:0}.composition-label{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#44516a;font-size:11px}.dot{width:9px;height:9px;border-radius:3px;background:var(--blue);flex:none}.dot.warm{background:var(--orange)}.composition-item strong{display:block;font-size:23px;line-height:1.18;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--text)}.composition-item small{display:block;color:var(--muted);font-size:11px;white-space:nowrap}.stacked{height:9px;display:flex;overflow:hidden;border-radius:99px;background:#edf0f5}.stacked span{display:block;height:100%;background:var(--blue)}.stacked span+span{background:var(--orange)}
.main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.panel{min-width:0;padding:17px 17px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel);overflow:hidden;box-shadow:0 4px 16px #172b4d07}.panel-wide{grid-column:1/-1}.admission-table-wrap{max-height:330px;overflow:auto}.admission-table{width:100%;border-collapse:collapse;font-size:12px}.admission-table th,.admission-table td{padding:8px 7px;border-bottom:1px solid #edf0f5}.admission-table thead th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.admission-table thead th:first-child{text-align:left}.admission-table thead th:last-child,.admission-table td{text-align:right}.admission-table tbody th{text-align:left;font-weight:600}.admission-year{background:#f8f9fc}.admission-year th,.admission-year td{color:var(--blue);font-weight:800}.tree-toggle{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}.tree-toggle:hover span:last-child{text-decoration:underline}.tree-chevron{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;transition:transform .15s}.tree-toggle[aria-expanded="true"] .tree-chevron{transform:rotate(90deg)}.admission-month th{padding-left:25px;color:#34415c}.admission-day th{padding-left:51px;color:var(--muted);font-weight:500}.admission-missing{margin:9px 2px 0;color:var(--muted);font-size:11px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:12px}.panel-heading h2{font-size:15px;line-height:1.25;letter-spacing:-.015em;margin:0 0 4px;color:var(--text)}.panel-heading p:not(.field-hint){color:var(--muted);font-size:11px;margin:0}.bar-list{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(90px,1.2fr) minmax(88px,auto);gap:10px;align-items:center;min-width:0}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34415c;font-size:12px}.bar-track{height:12px;border-radius:4px;background:#edf0f5;overflow:hidden}.bar-fill{height:100%;min-width:2px;border-radius:4px;background:var(--blue)}.warm-bars .bar-fill{background:var(--orange)}.bar-value{text-align:right;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums;color:#34415c}.bar-value strong{font-size:13px;color:var(--text)}.bar-value span{color:var(--muted)}.bar-more{color:var(--muted);font-size:11px;margin-top:3px}.table-wrap{overflow:auto;scrollbar-color:#adb7c7 #f1f3f7}.data-table{width:100%;border-collapse:collapse;min-width:510px;font-size:12px}.data-table th{text-align:right;padding:8px 7px;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line);white-space:nowrap}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table td{text-align:right;padding:9px 7px;border-bottom:1px solid #edf0f5;white-space:nowrap;font-variant-numeric:tabular-nums}.data-table td:first-child{font-weight:600;color:#263554}.data-table tr:last-child td{border-bottom:0}.data-table .total-row td{font-weight:800;border-top:1px solid var(--line);color:var(--text)}.data-table .today-row td:first-child:after{content:' hoje';color:var(--green);font-size:10px}.subtle{color:var(--muted);font-size:10px;font-weight:400}.empty{color:var(--muted);font-size:12px;padding:12px 0}.hourly-chart{height:205px;display:grid;grid-template-columns:repeat(24,minmax(8px,1fr));gap:5px;align-items:end;padding:16px 5px 22px;border-bottom:1px solid var(--line)}.hour-column{height:100%;display:flex;min-width:0;flex-direction:column;justify-content:flex-end;align-items:stretch;position:relative}.hour-value{height:15px;margin-bottom:4px;text-align:center;color:var(--blue);font:10px 'DM Mono',monospace;white-space:nowrap}.hour-bar{min-height:2px;border-radius:3px 3px 0 0;background:var(--blue);transition:height .2s}.hour-column.peak .hour-bar{background:var(--orange)}.hour-label{position:absolute;top:calc(100% + 5px);width:100%;text-align:center;color:var(--muted);font:9px 'DM Mono',monospace}.audit-list{display:grid}.audit-row{min-height:39px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #edf0f5;font-size:12px}.audit-row:last-child{border-bottom:0}.audit-label{color:#34415c}.audit-detail{display:block;color:var(--muted);font-size:10px;margin-top:2px}.badge{display:inline-flex;align-items:center;gap:4px;flex:none;padding:3px 9px;border-radius:99px;background:#e4f5eb;color:#167a43;font-size:11px;font-weight:700}.badge.warn{background:#fff2d4;color:#985b00}.badge.neutral{background:#eef1f6;color:#55647a}.privacy-note{display:flex;align-items:center;gap:8px;margin-top:20px;padding:11px 13px;border:1px solid #d7e2f4;border-radius:8px;background:#fff;color:#56657d;font-size:11px}.privacy-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
@media(max-width:1000px){.dashboard{padding:20px 16px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.composition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.clear-button,.download-button{width:100%}.bar-row{grid-template-columns:minmax(110px,1fr) minmax(70px,1fr) minmax(78px,auto);gap:8px}}
@media(max-width:680px){.dashboard{padding:16px 12px 24px}.title-row{align-items:flex-start;flex-wrap:wrap}.brand-logo{width:120px}.title-copy{order:0;width:calc(100% - 140px)}.upload-button{order:1}.eyebrow{font-size:9px}h1{font-size:23px}.base-meta{font-size:11px}.filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px}.filters label>span,.filters .filter-field>span{font-size:9px}.filters select,.filters input[type=date]{height:38px;font-size:12px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 20px}.kpi{min-height:96px;padding:11px}.kpi strong{font-size:25px}.kpi-primary{grid-column:span 2}.composition-grid{gap:9px}.composition-card{padding:11px}.composition-item strong{font-size:20px}.main-grid{grid-template-columns:1fr;gap:10px}.panel{padding:14px 12px}.panel-wide{grid-column:auto}.bar-row{grid-template-columns:minmax(105px,1fr) minmax(60px,.8fr) minmax(76px,auto);gap:7px}.bar-label,.bar-value{font-size:11px}.hourly-chart{gap:2px;height:175px;padding-left:0;padding-right:0}.hour-value{font-size:8px}.hour-label{font-size:8px}.hour-value:not(.show){visibility:hidden}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

