:root{--primary-color: #004d40;--secondary-color: #00695c;--text-color: #333;--bg-color: #f9f9f9;--white: #fff}*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Arial,sans-serif}body{background-color:var(--bg-color);color:var(--text-color)}.container{max-width:1180px;margin:0 auto;padding:0 20px;box-sizing:border-box}.page{padding:20px 0 40px}.app-header{background:#0d4a46;color:#fff;position:sticky;top:0;z-index:1000;width:100%;border-bottom:1px solid rgba(255,255,255,.08);min-height:92px;display:block;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));box-shadow:0 2px 16px #02061714}.hdr-inner{max-width:1180px;margin:0 auto;display:grid;align-items:center;gap:12px;grid-template-columns:56px 1fr auto auto;padding:12px 16px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:0;justify-self:center;text-align:center;text-decoration:none;color:inherit;position:relative;z-index:1}.brand .logo{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-text strong{font-weight:800;letter-spacing:.2px;white-space:nowrap}.brand-text .subtitle{font-size:12px;opacity:.95}.hdr__user{justify-self:end;display:flex;align-items:center;gap:10px}.hdr__user .user-email{max-width:38vw;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;opacity:.9}.main-nav{display:flex;align-items:center;gap:12px}.app-header a{color:#dbe8e7;text-decoration:none;padding:6px 8px;border-radius:8px;font-weight:600}.app-header a:hover{color:#fff;background:#ffffff14}.app-header a.active{color:#fff;background:#ffffff24}.btn{border:1px solid transparent;background:#116b64;color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}.btn:hover{filter:brightness(1.08)}.btn-light{background:#fff;color:#0d4a46;border-color:#e8eeed}.btn-outline{background:transparent;color:#fff;border-color:#ffffff59}.app-header a:focus-visible,.btn:focus-visible,.drawer a:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:2px}.student-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:10px;background:#fff;box-shadow:0 1px #0000000f}.notice{padding:10px 12px;border-radius:8px;background:#eaf6f4;border:1px solid #cbe7e3;color:#0d4a46;margin:10px 0 12px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.select,.input{background:#fff;color:#0d4a46;border:1px solid #d9e7e5;border-radius:10px;padding:10px 12px;min-width:180px;outline:none}.select:focus,.input:focus{border-color:#0d4a46;box-shadow:0 0 0 3px #0d4a461f}.card{background:#fff;border:1px solid #e8eeed;border-radius:14px;padding:16px;box-shadow:0 10px 30px #0000000a}.pill{padding:8px 14px;border-radius:999px;font-weight:700;border:1px solid rgba(0,0,0,.08)}.pill-ok{background:#e5f6f1;color:#0d4a46}.pill-warn{background:#fff6e0;color:#8a5a00}.pill-error{background:#ffe8eb;color:#a10e24}@media (min-width: 1200px){.brand .logo{width:86px;height:86px}}@media (max-width: 920px){.main-nav{display:none}.hdr__user .user-email{max-width:48vw}}.hdr__menu-btn{display:none;width:44px;height:44px;border:0;background:transparent;color:#fff;font-size:22px;border-radius:8px;cursor:pointer;position:relative;z-index:3}.hdr__menu-btn:hover{background:#ffffff14}@media (max-width: 920px){.hdr__menu-btn{display:inline-flex;align-items:center;justify-content:center}}.drawer{display:none;padding:10px 16px 14px;background:#0d4a46;border-top:1px solid rgba(255,255,255,.08);gap:8px}.drawer a{display:inline-block;color:#dbe8e7;text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:700}.drawer a.active{background:#ffffff24;color:#fff}.drawer a:hover{background:#ffffff14;color:#fff}.drawer.open{display:flex;flex-wrap:wrap}@media (min-width: 921px){.drawer{display:none!important}}@media (max-width: 640px){.container{padding:0 14px}.brand .logo{width:60px;height:60px}}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 768px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1280px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}}.clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;table-layout:fixed}.table th,.table td{padding:8px 10px;border-bottom:1px solid #e8eeed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table th{text-align:left;font-weight:700;color:#0d4a46}.kpi{display:flex;flex-direction:column;gap:6px}.kpi .kpi-value{font-size:clamp(22px,2.5vw,32px);font-weight:800;color:#0d4a46}.kpi .kpi-label{font-size:13px;opacity:.8}.btn-presenca-group{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (min-width: 768px){.btn-presenca-group{grid-template-columns:repeat(4,minmax(110px,1fr))}}@media (max-width: 640px){.presenca-item{display:grid!important;grid-template-columns:1fr;gap:8px;align-items:start}}@media (max-width: 920px){.hdr-inner{grid-template-columns:1fr 1fr;grid-template-areas:"hamb user" "brand brand";row-gap:8px}.hdr__menu-btn{grid-area:hamb;justify-self:start}.hdr__user{grid-area:user;justify-self:end}.brand{grid-area:brand;justify-self:center}.brand{flex-direction:column;align-items:center;text-align:center;gap:6px}.brand .logo{width:66px;height:66px}.brand-text strong{font-size:clamp(14px,4.2vw,18px);white-space:normal}.brand-text .subtitle{font-size:clamp(11px,3.6vw,13px)}.hdr__user .user-email{max-width:48vw;font-size:13px}.app-header{min-height:100px}}@media (max-width: 360px){.brand .logo{width:56px;height:56px}}@media (min-width: 921px){.hdr-inner{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:16px;row-gap:8px;align-items:center}.brand{grid-column:1 / -1;grid-row:1;justify-self:center;text-align:center}.main-nav{grid-column:1 / 2;grid-row:2;display:flex;gap:12px}.hdr__user{grid-column:2 / 3;grid-row:2;justify-self:end}.hdr__menu-btn{display:none!important}}@media (max-width: 768px){.table th,.table td{white-space:normal!important;word-break:break-word;text-overflow:clip}}@media (max-width: 640px){.select,.input{min-width:140px}}@media (max-width: 768px){body{overflow-x:hidden}}
