:root{color-scheme:dark;--ink:#111110;--panel:#191918;--paper:#f1efdf;--muted:#a5a397;--line:#343430;--red:#c81d28;--red2:#f0444c;--green:#68c497;--amber:#e4b85d;--danger:#f07b72;--shadow:0 18px 60px #0008}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--ink);color:var(--paper);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.login-screen{min-height:100vh;display:grid;place-items:center;padding:75px 20px 80px;background:radial-gradient(ellipse at 50% 45%,#24221c 0,#111110 65%)}.back-link{position:absolute;left:32px;top:27px;color:#bdb9ac;font-size:12px}.login-card{width:min(100%,440px);padding:36px;background:#191918;border:1px solid #ffffff20;box-shadow:var(--shadow)}.login-logo{width:74px;height:74px;object-fit:contain;margin-bottom:25px}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--red2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.eyebrow:before{content:'';width:22px;height:2px;background:var(--red)}h1,h2,p{margin-top:0}.login-card h1{margin:13px 0;font:800 48px/.95 'Barlow Condensed',sans-serif;text-transform:uppercase}.login-intro{color:#aaa89e;font-size:13px;line-height:1.7;margin-bottom:24px}.login-form{display:grid;gap:9px}.login-form label,.profile-select-wrap label{margin-top:8px;color:#d7d3c6;font-size:11px}.login-form input,.profile-select-wrap select{width:100%;min-height:45px;padding:0 12px;border:1px solid #ffffff20;background:#10100f;color:#f1efdf;outline:none}.login-form input:focus,.profile-select-wrap select:focus{border-color:var(--red2)}.button{display:inline-flex;min-height:43px;align-items:center;justify-content:center;padding:0 16px;border:0;background:var(--red);color:white;font-size:11px;font-weight:700;cursor:pointer;transition:.2s}.button:hover{background:#e22a35}.button:disabled{opacity:.55;cursor:wait}.button.full{width:100%;margin-top:10px}.button.ghost{border:1px solid #ffffff40;background:transparent;color:#e2dfd4}.form-message{min-height:16px;margin:0;color:var(--danger);font-size:11px;line-height:1.5}.privacy-note{margin:13px 0 0;color:#89877d;font-size:10px;line-height:1.5}.notice{display:grid;gap:5px;margin:15px 0;padding:13px;border-left:2px solid var(--amber);background:#e4b85d0d;color:#d4ccb6;font-size:11px}.notice strong{color:var(--paper)}.login-footer{position:absolute;right:30px;bottom:23px;left:30px;display:flex;justify-content:space-between;color:#77766e;font-size:9px;letter-spacing:.1em}.login-footer a{text-decoration:underline;text-underline-offset:3px}.portal{min-height:100vh}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,72px);border-bottom:1px solid #ffffff18;background:#131312}.brand{display:flex;align-items:center;gap:10px;font:800 17px 'Barlow Condensed',sans-serif;letter-spacing:.06em}.brand img{width:39px;height:39px;object-fit:contain}.brand small{display:block;margin-top:2px;color:var(--muted);font:600 9px 'DM Sans',sans-serif;letter-spacing:.18em}.topbar-user{display:flex;align-items:center;gap:16px;color:#bdb9ac;font-size:11px}.button.small{min-height:34px;padding:0 13px}.main-content{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:38px 0 60px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{margin:8px 0 5px;font:800 clamp(36px,5vw,54px)/.9 'Barlow Condensed',sans-serif;text-transform:uppercase}.page-heading p:not(.eyebrow){margin:0;color:var(--muted);font-size:12px}.back-site{color:#c7c3b7;font-size:11px;text-decoration:underline;text-underline-offset:4px}.portal-message{margin-bottom:16px;padding:13px 15px;border-left:2px solid var(--amber);background:#e4b85d0d;color:#d9d1bb;font-size:11px;line-height:1.5}.panel{background:var(--panel);border:1px solid #ffffff14}.profile-panel{padding:19px 21px;margin-bottom:14px}.profile-select-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.profile-select-wrap h2{margin:5px 0 0;font:700 26px 'Barlow Condensed',sans-serif;text-transform:uppercase}.profile-select-wrap label{display:block;width:min(100%,270px);margin:0;color:var(--muted)}.profile-select-wrap select{display:block;margin-top:6px}.kicker{color:var(--red2);font-size:9px;font-weight:700;letter-spacing:.17em}.profile-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.profile-meta span{padding:6px 8px;border:1px solid #ffffff16;color:#c3bfb2;font-size:10px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.metric{padding:18px 20px;background:var(--panel);border:1px solid #ffffff14}.metric-label{display:block;color:var(--muted);font-size:10px}.metric-value{display:block;margin-top:10px;font:800 34px/.95 'Barlow Condensed',sans-serif}.metric.accent .metric-value{color:var(--red2)}.metric-detail{display:block;margin-top:8px;color:#918e82;font-size:10px}.metric-value#attendanceCount{background:linear-gradient(90deg,var(--red2) var(--progress,0%),#ffffff18 var(--progress,0%)) no-repeat left bottom/100% 2px;padding-bottom:5px}.belt-value{font-size:26px}.content-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;align-items:start}.panel-head{padding:17px 19px;border-bottom:1px solid #ffffff13}.panel-head h2{margin:0;font:700 22px 'Barlow Condensed',sans-serif;text-transform:uppercase}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:12px 13px;border-bottom:1px solid #ffffff11;text-align:left}th{color:#89877d;font-size:9px;letter-spacing:.09em;text-transform:uppercase}td{color:#dedace;font-size:10px}tbody tr:last-child td{border-bottom:0}.month-cell{font-weight:700;color:#fff;text-transform:capitalize}.badge{display:inline-flex;padding:5px 7px;border:1px solid #ffffff18;font-size:9px}.badge:before{content:'';width:5px;height:5px;margin:auto 5px auto 0;border-radius:50%;background:currentColor}.badge.paid,.paid-note{color:var(--green)}.badge.pending{color:var(--amber)}.badge.due{color:var(--danger)}.paid-note{font-size:10px}.pay-button{min-height:31px;padding:0 10px;font-size:9px;white-space:nowrap}.panel-note{margin:0;padding:12px 18px;border-top:1px solid #ffffff10;color:#89877d;font-size:9px;line-height:1.6}.attendance-list{padding:2px 17px}.attendance-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #ffffff11}.attendance-row:last-child{border-bottom:0}.attendance-mark{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#68c49718;color:var(--green);font-size:12px}.attendance-row div{min-width:0;flex:1}.attendance-row strong,.attendance-row span{display:block}.attendance-row strong{font-size:10px}.attendance-row div span{margin-top:3px;color:#89877d;font-size:9px}.attendance-row>b{color:var(--green);font-size:8px;text-transform:uppercase;letter-spacing:.05em}.empty-state{padding:30px 14px!important;text-align:center;white-space:normal;color:#969388}.empty-state strong{display:block;margin-bottom:6px;color:#dedace;font-size:11px}.empty-state span{display:block;font-size:9px;line-height:1.55}.loading{margin:15px 0;color:var(--muted);font-size:11px}.portal-footer{display:flex;justify-content:space-between;gap:14px;padding:20px clamp(18px,5vw,72px);border-top:1px solid #ffffff12;color:#77766e;font-size:9px}.portal-footer a{text-decoration:underline;text-underline-offset:3px}.toast{position:fixed;right:20px;bottom:20px;z-index:5;max-width:min(420px,calc(100% - 40px));padding:12px 15px;border:1px solid #f07b7288;background:#242320;color:var(--paper);font-size:11px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{border-color:#f07b7288}
@media(max-width:780px){.main-content{width:min(100% - 28px,600px);padding-top:25px}.content-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.back-site{align-self:flex-end}.profile-panel{padding:15px}.profile-select-wrap{align-items:flex-start;flex-direction:column}.profile-select-wrap label{width:100%}.metric-grid{gap:8px}.metric{padding:13px}.metric-value{font-size:29px}.metric-detail{font-size:9px}.topbar{height:62px;padding:0 14px}.topbar-user{gap:8px}.topbar-user>span{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.portal-footer{flex-direction:column}.table-wrap{margin:0}}
@media(max-width:430px){.login-card{padding:27px 21px}.back-link{left:18px;top:17px}.login-footer{left:18px;right:18px;font-size:8px}.metric-grid{grid-template-columns:1fr 1fr}.metric:first-child{grid-column:span 2}.metric-value#attendanceCount{font-size:34px}.brand{font-size:14px}.brand img{width:34px;height:34px}.topbar-user>span{display:none}th,td{padding:10px 8px;font-size:9px}.pay-button{padding:0 7px;font-size:8px}}

.login-form select{width:100%;min-height:45px;padding:0 12px;border:1px solid #ffffff20;background:#10100f;color:#f1efdf;outline:none}.login-form select:focus{border-color:var(--red2)}.form-switch{display:block;margin:15px auto 0;padding:5px;border:0;background:transparent;color:#dedace;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.small-help{margin:2px 0;color:#a5a397;font-size:10px;line-height:1.5}
[hidden] { display: none !important; }

/* Portal do aluno */
#portal .page-heading{margin-bottom:18px}
#checkInPanel{margin:0 0 16px;border-left:3px solid var(--red)}
#checkInPanel .student-summary-body>p{margin:0 0 12px}
.checkin-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.checkin-controls label{display:grid;gap:6px;font-size:12px;color:#dedbd0}
.checkin-controls select{width:100%;min-width:0;min-height:46px;padding:0 10px;background:#10100f;color:#f1efdf;border:1px solid #ffffff35;font:inherit}
.checkin-controls .button{min-height:46px;font-size:13px}
#checkInPanel #checkInStatus{margin:10px 0 0}
#checkInStatus:empty{display:none}
.student-dashboard{grid-template-columns:1fr 1.25fr}
.dashboard-column{min-width:0;display:grid;gap:14px}
.dashboard-column .student-summary{margin:0}
#studentNotices{margin-top:16px}
.portal-footer-links{display:flex;flex-wrap:wrap;gap:8px 16px}
@media(max-width:760px){.student-dashboard,.checkin-controls{grid-template-columns:1fr}}

.progress-content{font-size:12px;line-height:1.6}.progress-content progress{display:block;width:100%;height:14px;margin:8px 0 16px;accent-color:var(--red2)}

.push-options { display: grid; gap: 12px; margin: 20px 0; padding: 16px; border: 1px solid var(--line, #333); }
.push-options label { display: flex; align-items: center; gap: 10px; }
.push-options input { width: 20px; height: 20px; flex: 0 0 auto; }
.push-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.checkin-entry { margin-top: 18px; display: grid; gap: 8px; justify-items: start; }
.checkin-entry p { margin: 0; }
@media (max-width: 430px) { .checkin-entry, .checkin-entry .button { width: 100%; } }

.signup-extra { border: 1px solid var(--line); margin: 18px 0; padding: 16px; min-width: 0; }
.signup-extra legend { font-size: 13px; padding: 0 6px; }
.signup-extra input { margin-bottom: 12px; }

.confirmation-help { margin-top: 18px; font-size: 12px; line-height: 1.5; }
.confirmation-help summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.confirmation-help form { margin-top: 14px; }

/* Trophy hall */
.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:15px}.achievement-card{position:relative;min-width:0;overflow:hidden;padding:18px;border:1px solid #ffffff1e;background:radial-gradient(ellipse at 50% 20%,#71634a22,transparent 65%),linear-gradient(145deg,#242320,#151514);border-radius:10px;box-shadow:0 9px 24px #0003}.achievement-card.is-current{border-color:#c3a36388;background:radial-gradient(ellipse at 50% 20%,#a88a4930,transparent 70%),linear-gradient(145deg,#27241c,#171714)}.achievement-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.achievement-number{font-size:8px;color:#a9a18e;letter-spacing:.15em}.achievement-current{font-size:9px;border:1px solid #c3a36366;border-radius:20px;color:#e5c886;padding:4px 8px}.achievement-emblem{width:100%;margin:16px 0 8px;display:grid;place-items:center}.achievement-belt{display:block;width:min(100%,184px);height:auto;filter:drop-shadow(0 7px 6px #0005)}.achievement-card h3{margin:0;color:var(--paper);font:700 26px/1.1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em}.achievement-date{margin:8px 0 13px;color:#aaa493;font-size:10px;line-height:1.5}.achievement-degree{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;font-size:10px;color:#d1cbbb}.achievement-marks{display:flex;gap:4px}.achievement-marks i{width:4px;height:14px;border:1px solid #ffffff24;background:#ffffff08;transform:skew(-8deg)}.achievement-marks i.earned{background:#e1dbc8;border-color:#e1dbc8}.achievement-dates{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff16}.achievement-dates li{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px;padding-top:10px;font-size:10px;color:#c7c1b2}.achievement-dates time{color:#9c9688;font-size:9px;font-variant-numeric:tabular-nums}.achievement-unknown,.achievement-empty{color:#aba491;font-size:11px;line-height:1.6}.achievement-footnote{margin:17px 0 0;color:#8d897e;font-size:10px;line-height:1.6}

.achievement-origin{display:block;margin-top:4px;color:#8f897c;font-size:8px;line-height:1.4}.achievement-remove{font-size:10px;color:#c5bba4;text-decoration:underline}.achievement-dates li>span{min-width:0;max-width:100%}#studentBeltHistoryDialog{width:min(440px,calc(100% - 32px));border:1px solid var(--line);background:var(--panel);color:var(--paper);padding:24px}#studentBeltHistoryDialog::backdrop{background:#000a}#studentBeltHistoryDialog h2{margin:0 0 12px;font:700 28px 'Barlow Condensed',sans-serif}#studentBeltHistoryDialog select{width:100%;min-height:44px;background:#111;color:var(--paper);border:1px solid var(--line);padding:0 10px}

/* Compact trophy shelf: two columns on phones, more columns when space allows. */
.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}.achievement-card{padding:12px;display:flex;flex-direction:column}.achievement-card-head{min-height:27px;align-items:flex-start;gap:5px}.achievement-number{font-size:7px;letter-spacing:.09em}.achievement-current{font-size:8px;padding:3px 6px}.achievement-emblem{margin:8px 0 5px}.achievement-belt{width:min(100%,138px)}.achievement-card h3{font-size:22px}.achievement-date{font-size:9px;margin:6px 0 10px}.achievement-degree{font-size:9px;margin-bottom:10px;gap:5px}.achievement-marks{gap:3px}.achievement-marks i{height:12px;width:3px}.achievement-records{margin-top:auto;min-width:0}.achievement-records summary{cursor:pointer;font-size:10px;color:#d0c2a4;padding:7px 0;border-top:1px solid #ffffff16}.achievement-dates li{font-size:9px}.achievement-dates time{font-size:9px}.achievement-unknown{font-size:9px}.achievement-remove{font-size:9px}@media(min-width:650px){.achievement-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:13px}.achievement-card{padding:16px}.achievement-belt{width:min(100%,160px)}.achievement-card h3{font-size:24px}}

.achievement-add-degree{align-self:flex-start;margin:0 0 10px;font-size:10px;color:#dac99f;text-decoration:underline}.achievement-provenance{font-size:8px;color:#aca085;margin:0 0 9px;line-height:1.4}

.achievement-card h3{overflow-wrap:anywhere}@media(max-width:360px){.achievement-card{padding:9px}.achievement-card h3{font-size:20px}.achievement-date{font-size:8px}}

/* Navigation panels keep asynchronous data loading inside the selected tab. */
.student-business-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.student-business-tabs .button{min-width:0;padding:12px 8px;font-size:12px;justify-content:center}.student-business-tabs [aria-selected=true]{box-shadow:inset 0 -3px 0 #fff3}.student-business-tabs [role=tab]:focus-visible{outline:2px solid #e5c886;outline-offset:3px}[data-student-panel]{min-width:0}[data-student-panel][hidden]{display:none!important}[data-student-panel]>.panel{margin-bottom:18px}.achievement-remove{align-self:flex-start;background:none;border:0;text-align:left;padding:5px 0;cursor:pointer}.checkin-entry{margin-bottom:18px}@media(min-width:760px){.student-business-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}}

.belt-editor-heading{font-size:13px;margin:12px 0 6px;color:var(--paper)}.belt-record-editor{border-top:1px solid var(--line);margin-top:14px;padding-top:8px;min-width:0}.belt-personal-record{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.belt-personal-record strong,.belt-personal-record span{display:block;font-size:11px}.belt-personal-record span{margin-top:4px;color:var(--muted)}#studentBeltHistoryDialog{max-height:calc(100dvh - 32px);overflow-y:auto}#studentBeltHistoryTitle{overflow-wrap:anywhere}

/* Monthly champions: 15 rows, four columns, names and positions only. */
#studentTabChampions{grid-column:1/-1}.champions-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.champions-heading h2{font-size:32px}.champions-heading #championsMonth{font-size:13px;text-transform:capitalize;color:#ddc992}.champions-intro{font-size:12px;color:var(--muted)}.champions-table{width:100%;table-layout:fixed;white-space:normal;border-collapse:separate;border-spacing:5px 6px}.champions-table th{font-size:10px;text-align:center;padding:8px 2px}.champions-table td{width:25%;vertical-align:middle;border:1px solid #ffffff12;border-radius:5px;padding:10px 8px;background:#111110}.champions-caption{text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#c8b68e;padding:12px 0}.champion-entry{display:flex;align-items:flex-start;gap:7px;min-height:24px}.champion-position{font-size:10px;color:#9a9589;font-variant-numeric:tabular-nums;flex-shrink:0;line-height:1.6}.champion-name{font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:#e2dfd2}.champion-crown{width:20px;height:18px;display:inline-block;vertical-align:-3px;margin-right:5px}.crown-ouro{color:#efc85b;filter:drop-shadow(0 1px 4px #d7a93744)}.crown-prata{color:#ccd4e2}.crown-bronze{color:#cf9464}.champions-table td.champion-top{background:linear-gradient(135deg,#a5883c24,#191918);border-color:#b6995544}.champion-top .champion-position{color:#dfc47c;font-weight:700}.champion-top .champion-name{font-weight:700}.champions-table td.champion-empty{color:#777569;text-align:center;height:46px}.champions-rules{margin-top:16px;line-height:1.6}#championsStatus{font-size:12px;line-height:1.6;color:var(--muted)}@media(max-width:600px){.champions-table{border-spacing:3px 5px}.champions-table td{padding:9px 4px}.champion-entry{display:block}.champion-position{display:block;font-size:9px}.champion-name{font-size:10px;line-height:1.5}.champion-crown{width:16px;height:15px;margin-right:3px}.champions-table th{font-size:8px}.champions-heading h2{font-size:28px}}@media(min-width:760px){.student-business-tabs{grid-template-columns:repeat(7,minmax(0,1fr))}#studentTabChampions{grid-column:auto}}
