:root{--ember: oklch(65% .21 38);--ember-hover: oklch(61% .21 38);--ink: oklch(24% .092 268);--page: oklch(98% .004 268);--surface: oklch(99.6% .0015 268);--divider: oklch(93% .006 268);--hover: oklch(96.5% .005 268);--pencil: oklch(60% .014 268);--ok: oklch(54% .13 150);--warn: oklch(63% .145 76);--risk: oklch(52% .17 27);--ok-bg: color-mix(in oklch, var(--ok) 12%, var(--surface));--warn-bg: color-mix(in oklch, var(--warn) 14%, var(--surface));--risk-bg: color-mix(in oklch, var(--risk) 12%, var(--surface));--c-students: #ff4800;--c-staff: #3d8bff;--c-activity: #f5b800;--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--shadow-lift: 0 2px 8px rgba(25, 38, 85, .08);--topbar-h: 56px;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:Sora,system-ui,sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-xs)}button,select,input{font:inherit;color:inherit}button{cursor:pointer}.topbar{position:sticky;top:0;z-index:10;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--divider)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.005em}.brand-mark{width:10px;height:10px;border-radius:50%;background:var(--ember)}.brand-sub{color:var(--pencil);font-weight:500}.container{max-width:1080px;margin:0 auto;padding:32px 24px 96px}.page-head{margin-bottom:22px}.page-title{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:0}.page-sub{color:var(--pencil);font-size:.9375rem;margin:4px 0 0}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--r-xs);font-size:.8125rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.chip-saudavel{color:var(--ok);background:var(--ok-bg)}.chip-atencao{color:var(--warn);background:var(--warn-bg)}.chip-risco{color:var(--risk);background:var(--risk-bg)}.summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.pill{display:inline-flex;align-items:baseline;gap:8px;padding:9px 14px;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface);transition:border-color .15s var(--ease)}.pill:hover{border-color:color-mix(in oklch,var(--ink) 22%,var(--divider))}.pill[aria-pressed=true]{border-color:var(--ink)}.pill-count{font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums}.pill-label{font-size:.8125rem;color:var(--pencil)}.pill-dot{width:8px;height:8px;border-radius:50%;align-self:center}.pill-dot.d-risco{background:var(--risk)}.pill-dot.d-atencao{background:var(--warn)}.pill-dot.d-saudavel{background:var(--ok)}.controls{display:flex;gap:12px;align-items:center;margin-bottom:6px}.search{flex:1;min-width:0}.search input,.select select{width:100%;background:var(--surface);border:1px solid var(--divider);border-radius:var(--r-md);padding:10px 14px;color:var(--ink)}.search input::placeholder{color:var(--pencil)}.search input:focus,.select select:focus{outline:none;border-color:var(--ink)}.select select{cursor:pointer;padding-right:28px}.col-head,.row{display:grid;grid-template-columns:minmax(0,2.3fr) 92px minmax(0,1.9fr) auto;gap:18px;align-items:center}.col-head{padding:14px 16px 8px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pencil)}.col-head .right{text-align:right}.register{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.row{position:relative;padding:13px 16px;border-top:1px solid var(--divider);transition:background .12s var(--ease)}.row:first-child{border-top:none}.row:hover{background:var(--hover)}.row-link{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.row>:not(.row-link){position:relative;z-index:1;pointer-events:none}.row .star{pointer-events:auto}.row-name-wrap{display:flex;align-items:center;gap:10px}.row-name-text{display:flex;flex-direction:column;min-width:0}.star{flex:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;font-size:1.05rem;line-height:1;color:var(--pencil);border-radius:var(--r-sm);transition:color .12s var(--ease),background .12s var(--ease)}.star:hover{background:var(--hover);color:var(--ink)}.star.is-on{color:var(--warn)}.star:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.pill-follow .star-ico{align-self:center;font-size:.95rem;color:var(--warn)}.row-name{font-weight:600;letter-spacing:-.003em}.row-meta{font-size:.8125rem;color:var(--pencil);margin-top:2px}.row-driver{font-size:.875rem;color:color-mix(in oklch,var(--ink) 78%,var(--surface))}.row-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.row-stat{font-size:.8125rem;color:var(--pencil);font-variant-numeric:tabular-nums}.spark{display:block}.note{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface);padding:40px 32px;text-align:center;max-width:520px;margin:40px auto}.note h2{font-size:1.125rem;font-weight:600;margin:0 0 6px}.note p{color:var(--pencil);margin:0}.note button{margin-top:18px;background:var(--ember);color:var(--surface);border:none;border-radius:var(--r-md);padding:10px 20px;font-weight:500;font-size:.8125rem;letter-spacing:.01em}.note button:hover{background:var(--ember-hover);box-shadow:0 2px 8px #ff48002e}.skeleton{background:linear-gradient(100deg,var(--divider) 30%,color-mix(in oklch,var(--divider) 55%,var(--surface)) 50%,var(--divider) 70%);background-size:220% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}.sk-row{height:18px;margin:18px 16px}@keyframes shimmer{0%{background-position:180% 0}to{background-position:-40% 0}}.back{display:inline-flex;align-items:center;gap:6px;color:var(--pencil);font-size:.875rem;margin-bottom:18px;transition:color .15s var(--ease)}.back:hover{color:var(--ink)}.detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px}.detail-title{font-size:1.625rem;font-weight:600;letter-spacing:-.01em;margin:0}.detail-summary{color:color-mix(in oklch,var(--ink) 80%,var(--surface));font-size:1rem;margin:2px 0 24px;max-width:64ch}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--divider);border:1px solid var(--divider);border-radius:var(--r-lg);overflow:hidden;margin-bottom:28px}.stat{background:var(--surface);padding:16px 18px}.stat-label{font-size:.75rem;letter-spacing:.03em;text-transform:uppercase;color:var(--pencil)}.stat-value{font-size:1.375rem;font-weight:600;font-variant-numeric:tabular-nums;margin-top:4px}.stat-delta{font-size:.8125rem;margin-left:8px;font-weight:500}.delta-up{color:var(--ok)}.delta-down{color:var(--risk)}.delta-flat{color:var(--pencil)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:30px 0 14px}.section-title{font-size:1.25rem;font-weight:600;margin:0}.range{display:inline-flex;border:1px solid var(--divider);border-radius:var(--r-md);overflow:hidden}.range button{background:var(--surface);border:none;padding:7px 14px;font-size:.8125rem;font-weight:500;color:var(--pencil)}.range button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.charts .panel:first-child{grid-column:1 / -1}.panel{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface);padding:18px 20px 16px}.panel-title{font-size:.9375rem;font-weight:600}.panel-value{font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums;margin:2px 0 12px}.chart svg{display:block;width:100%;height:120px}.chart-x{display:flex;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--pencil);font-variant-numeric:tabular-nums}.units{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.unit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:13px 18px;border-top:1px solid var(--divider)}.unit:first-child{border-top:none}.unit-name{font-weight:500}.unit-stat{font-size:.8125rem;color:var(--pencil);font-variant-numeric:tabular-nums}.highlights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.highlight{display:flex;gap:11px;align-items:baseline;font-size:.9375rem}.highlight .dot{width:8px;height:8px;border-radius:50%;flex:none;transform:translateY(-1px)}.dot.t-risco{background:var(--risk)}.dot.t-atencao{background:var(--warn)}.dot.t-saudavel{background:var(--ok)}.dot.t-neutral{background:var(--pencil)}@media(max-width:760px){.col-head{display:none}.row{grid-template-columns:1fr auto;grid-template-areas:"name right" "driver driver";gap:6px 16px}.row>a,.row-name-wrap{grid-area:name}.row .spark{display:none}.row-driver{grid-area:driver}.row-right{grid-area:right}.stats{grid-template-columns:repeat(2,1fr)}.charts{grid-template-columns:1fr}.charts .panel:first-child{grid-column:auto}}.login{display:flex;justify-content:center;padding:9vh 24px 0}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--r-lg);padding:28px 28px 24px}.login-title{font-size:1.375rem;font-weight:600;margin:0}.login-sub{color:var(--pencil);font-size:.9375rem;margin:4px 0 22px}.field{display:block;font-size:.8125rem;font-weight:500;color:var(--pencil);margin-bottom:14px}.field input{display:block;width:100%;margin-top:6px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--r-md);padding:10px 14px;color:var(--ink);font-size:1rem}.field input:focus{outline:none;border-color:var(--ink)}.login-err{color:var(--risk);font-size:.8125rem;min-height:1.2em;margin:2px 0 12px}.login-card button{width:100%;background:var(--ember);color:var(--surface);border:none;border-radius:var(--r-md);padding:11px;font-weight:600;font-size:.875rem;letter-spacing:.01em}.login-card button:hover{background:var(--ember-hover);box-shadow:0 2px 8px #ff48002e}.login-card button:disabled{opacity:.6;cursor:default}.logout{background:transparent;border:1px solid var(--divider);border-radius:var(--r-md);padding:6px 14px;font-size:.8125rem;font-weight:500;color:var(--pencil);transition:color .15s var(--ease),border-color .15s var(--ease)}.logout:hover{color:var(--ink);border-color:color-mix(in oklch,var(--ink) 22%,var(--divider))}
