: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; }
