.calendar-edit-button{margin-top:22px}.calendar-editor-backdrop{background:#1428409c}.calendar-editor-backdrop-dismiss{cursor:default;background:0 0;border:0;width:100%;height:100%;position:absolute;inset:0}.calendar-editor{z-index:1;color:#29354d;width:min(620px,100%);max-height:min(92vh,950px);position:relative}.calendar-editor:focus{outline:none}.calendar-editor-head{border-bottom:1px solid #e2e8f1;justify-content:space-between;gap:12px;padding:20px 22px 17px;display:flex}.calendar-editor-head .eyebrow{font-size:10px;font-weight:750}.calendar-editor-head h2{margin:6px 0;font-size:21px}.calendar-editor-head p:last-child{color:#79879e;margin:0;font-size:11px}.calendar-editor-close{color:#63758f;background:#f3f5f9;border:0;border-radius:8px;flex:none;width:31px;height:31px;font-size:20px}.modal.calendar-editor form{padding:0}.calendar-editor-content{padding:18px 22px 0}.calendar-editor-section{border-bottom:1px solid #eef1f6;margin-bottom:19px;padding-bottom:19px}.calendar-editor-section:last-of-type{border-bottom:0}.calendar-editor-section h3{align-items:center;gap:8px;margin:0 0 13px;font-size:12px;display:flex}.calendar-editor-section h3 b{width:24px;height:24px;color:var(--blue);background:#eaf2fb;border-radius:7px;place-items:center;font-size:10px;display:grid}.calendar-editor-cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.calendar-editor-section>label:not(.calendar-editor-frequency){margin-top:12px}.modal.calendar-editor label{color:#62728b;gap:7px;font-size:11px;font-weight:700}.modal.calendar-editor input:not([type=checkbox]),.modal.calendar-editor select,.modal.calendar-editor textarea{color:#2b394f;background:#fff;border:1px solid #dae3ee;border-radius:9px;width:100%;min-height:39px;padding:10px;font-size:12px}.modal.calendar-editor textarea{min-height:68px}.modal.calendar-editor input[type=number]{appearance:textfield}.modal.calendar-editor input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.modal.calendar-editor input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.modal.calendar-editor input:focus-visible,.modal.calendar-editor select:focus-visible,.modal.calendar-editor textarea:focus-visible,.calendar-editor button:focus-visible{outline-offset:2px;outline:2px solid #a8c2df}.calendar-editor-hint{color:#79879e;margin:9px 0;font-size:10px;line-height:1.6}.calendar-editor-class-head{color:#728099;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;display:flex}.calendar-editor-class-head button{width:auto;min-height:0;color:var(--blue);background:0 0;border:0;padding:0;font-size:10px;font-weight:750;line-height:1}.calendar-editor-classes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.calendar-editor .calendar-editor-classes label{color:#53657e;border:1px solid #dce4ef;border-radius:7px;align-items:center;gap:6px;padding:7px 8px;font-size:11px;display:flex}.calendar-editor-classes label:has(input:checked){color:var(--blue);background:#eaf2fb;border-color:#a5c0dd}.calendar-editor input[type=checkbox]{width:14px;height:14px;accent-color:var(--blue);flex:none;margin:0}.calendar-editor .calendar-editor-frequency{background:#f8fbfe;border:1px solid #e2e8f1;border-radius:11px;justify-content:space-between;align-items:center;gap:15px;padding:13px;display:flex}.calendar-editor-frequency strong{color:#29354d;font-size:12px}.calendar-editor-frequency small{color:#79879e;margin-top:5px;font-size:10px;line-height:1.6;display:block}.calendar-editor-frequency input{flex:none;width:20px;height:20px}.calendar-editor-explainer{background:#eef5fc;border:1px solid #d8e7f5;border-radius:10px;margin-bottom:12px;padding:12px}.calendar-editor-explainer strong{color:var(--blue);font-size:11px}.calendar-editor-explainer p{color:#516b87;margin:5px 0 0;font-size:11px;line-height:1.6}.calendar-editor-points{border:1px solid #dce8f5;border-radius:9px;align-items:center;gap:11px;margin-top:12px;padding:11px;display:flex}.calendar-editor-points strong{color:var(--blue);white-space:nowrap;font-size:19px}.calendar-editor-points span{color:#79879e;font-size:10px}.calendar-editor-input-hint{color:#79879e;font-size:10px;font-weight:500;line-height:1.5;display:block}.calendar-editor-footer{background:#fafbfe;border-top:1px solid #e2e8f1;justify-content:space-between;align-items:center;gap:10px;padding:14px 22px;display:flex}.calendar-editor-footer>span{color:#79879e;font-size:10px}.calendar-editor-footer>div{gap:8px;display:flex}@media (width<=480px){.calendar-editor-backdrop{padding:9px}.calendar-editor{max-height:96vh}.calendar-editor-head{padding:15px}.calendar-editor-content{padding:14px}.calendar-editor-cols{grid-template-columns:1fr}.calendar-editor-classes{grid-template-columns:1fr 1fr}.calendar-editor-footer{flex-wrap:wrap;padding:13px}.calendar-editor-footer>span{width:100%}.calendar-editor-footer>div,.calendar-editor-footer button{flex:1}}:root{--navy:#0b2f5a;--blue:#10427b;--blue-2:#1665b5;--ink:#142238;--muted:#65748a;--line:#e5eaf0;--canvas:#f5f7fa;--white:#fff;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;color:var(--ink);font-family:var(--font);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}body{background:var(--canvas);min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.loading-screen{min-height:100vh;color:var(--muted);place-items:center;display:grid}.login-page{background:linear-gradient(135deg, #eaf1fa, var(--canvas));place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--white);border:1px solid var(--line);border-radius:14px;width:min(100%,430px);padding:38px;box-shadow:0 20px 50px #1422381a}.login-public-link{text-align:center;margin:20px 0 0}.login-public-link a{color:var(--blue);font-size:14px;font-weight:750}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:-.03em;margin-bottom:10px;font-size:30px}h2{font-size:18px}.login-description,.page-header p:not(.eyebrow),.empty-panel p{color:var(--muted);line-height:1.55}form{gap:8px;margin-top:28px;display:grid}label{margin-top:8px;font-size:14px;font-weight:700}input{width:100%;min-height:44px;color:var(--ink);border:1px solid #ccd6e1;border-radius:8px;padding:10px 12px}input:focus{border-color:var(--blue-2);outline:3px solid #1665b538}.button{border:1px solid #0000;border-radius:8px;min-height:42px;padding:9px 16px;font-weight:750}.button-primary{color:#fff;background:var(--blue)}.button-primary:hover:not(:disabled){background:var(--blue-2)}button:disabled{cursor:not-allowed;opacity:.62}.form-error{color:#b74242;margin:8px 0 0;font-size:14px}.app-shell{grid-template-columns:246px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#e5effb;background:var(--navy);flex-direction:column;height:100vh;padding:24px 14px 16px;display:flex;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:10px;padding:4px 10px 28px;font-size:15px;font-weight:800;line-height:1.05;text-decoration:none;display:flex}.brand-mark{width:32px;height:32px;color:var(--navy);background:#fff;border-radius:9px;place-items:center;display:grid}.sidebar-nav{gap:4px;display:grid}.nav-item,.logout-button{color:#c7d7eb;text-align:left;background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:650;text-decoration:none}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff21}.sidebar-footer{border-top:1px solid #ffffff2e;gap:12px;margin-top:auto;padding:14px 8px 0;display:grid}.profile-summary{align-items:center;gap:9px;min-width:0;display:flex}.profile-summary span:last-child{gap:2px;min-width:0;display:grid}.profile-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.profile-summary small{color:#b9cbe1;font-size:12px}.avatar{width:32px;height:32px;color:var(--navy);background:#dbeafe;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.logout-button:hover:not(:disabled){color:#fff;background:#ffffff21}.app-content{width:min(100%,1440px);padding:38px}.public-ranking-page{color:#17263b;background:radial-gradient(at 10% 10%,#eee9ff,#0000 45%),radial-gradient(at 90% 20%,#e4f1ff,#0000 45%),linear-gradient(#fff 0%,#f6f8ff 100%);min-height:100vh}.public-ranking-header,.public-ranking-hero,.public-ranking-filters,.public-ranking-results,.public-ranking-footer{width:min(1120px,100% - 40px);margin-inline:auto}.public-ranking-header{border-bottom:1px solid #e9edf5;justify-content:space-between;align-items:center;padding:20px 0;display:flex}.public-brand{color:var(--navy);align-items:center;gap:10px;font-weight:850;text-decoration:none;display:inline-flex}.public-brand-mark{color:#fff;background:linear-gradient(135deg,#7a64ee,#a28aff);border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.public-ranking-label{color:#8491a5;letter-spacing:1.2px;font-size:10px;font-weight:800}.public-ranking-hero{text-align:center;padding:36px 0 26px}.public-ranking-hero h1{color:#243149;letter-spacing:-.04em;margin:8px 0;font-size:clamp(30px,5vw,42px);line-height:1.05}.public-ranking-hero p:not(.eyebrow){color:#78859a;margin:0;font-size:14px}.public-ranking-hero .eyebrow{color:#886ae9;letter-spacing:1.5px;font-size:10px;font-weight:800}.public-ranking-podium{grid-template-columns:1fr 1.12fr 1fr;align-items:end;gap:12px;width:min(680px,100%);margin:32px auto 0;display:grid}.public-podium-place{text-align:center;min-width:0}.public-podium-place.place-2{padding-top:38px}.public-podium-place.place-3{padding-top:70px}.public-podium-medal{opacity:0;justify-content:center;align-items:center;height:86px;margin-bottom:8px;animation:.52s cubic-bezier(.2,.75,.25,1) .48s forwards public-medal-rise;display:flex}.place-1 .public-podium-medal{animation-delay:.62s}.place-3 .public-podium-medal{animation-delay:.76s}.public-podium-medal img{object-fit:contain;filter:drop-shadow(0 6px 12px #3c465a14);width:68px;height:68px}.place-1 .public-podium-medal img{width:82px;height:82px}.public-podium-platform{transform-origin:bottom;border:1px solid;border-bottom:0;border-radius:14px 14px 0 0;flex-direction:column;justify-content:center;gap:8px;padding:14px 6px;animation:.72s cubic-bezier(.2,.75,.25,1) forwards public-podium-rise;display:flex;transform:scaleY(0)}.place-2 .public-podium-platform{animation-delay:.12s}.place-1 .public-podium-platform{animation-delay:.26s}.place-3 .public-podium-platform{animation-delay:.4s}.place-1 .public-podium-platform{background:linear-gradient(#fff8de,#f2d474);border-color:#dfbf59;height:162px}.place-2 .public-podium-platform{background:linear-gradient(#fafcff,#d9e1eb);border-color:#bcc8d6;height:132px}.place-3 .public-podium-platform{background:linear-gradient(#fff2e9,#d9ab86);border-color:#ca9872;height:110px}.public-podium-name{overflow-wrap:anywhere;font-size:clamp(11px,2.2vw,14px);font-weight:850}.public-podium-points{white-space:nowrap;font-size:clamp(16px,3vw,22px);font-weight:900}.public-podium-points small{color:#788398;font-size:10px;font-weight:600}.place-1 .public-podium-points{color:#9d7619}.place-2 .public-podium-points{color:#60748a}.place-3 .public-podium-points{color:#885535}.public-podium-step{border:1px solid;border-top:0;place-items:center;font-size:25px;font-weight:900;display:grid}.place-1 .public-podium-step{color:#8d6716;background:linear-gradient(#f3d268,#e5b947);border-color:#dfbf59;height:67px}.place-2 .public-podium-step{color:#53677c;background:linear-gradient(#e2e9f1,#ccd7e2);border-color:#bcc8d6;height:49px}.place-3 .public-podium-step{color:#7c4e31;background:linear-gradient(#dcb18c,#c99369);border-color:#ca9872;height:34px}.public-ranking-filter-heading h2{color:#28334a;margin:0 0 14px;font-size:16px}.public-ranking-filters .public-ranking-filter-heading+form{margin-top:0}.public-ranking-filters{background:#fff;border:1px solid #dce7f1;border-radius:16px;padding:22px;box-shadow:0 16px 40px #14365814}.public-ranking-filters form{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(220px,1.4fr) auto;align-items:end;gap:14px;margin-top:0;display:grid}.public-ranking-filters label{gap:7px;min-width:0;margin-top:0;display:grid}.public-ranking-filters select,.public-ranking-filters input{width:100%;min-width:0;min-height:46px;font:inherit;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:9px;padding:10px 12px}.public-ranking-filters select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.public-ranking-results{padding:32px 0 80px}.public-ranking-table-wrap{background:#fff;border:1px solid #dce7f1;border-radius:16px;overflow:hidden;box-shadow:0 16px 40px #1436580f}.public-ranking-result-head{justify-content:space-between;align-items:end;padding:24px 26px 16px;display:flex}.public-ranking-result-head h2{color:var(--navy);margin:0}.public-ranking-result-head>span{color:var(--muted);font-size:13px;font-weight:700}.public-ranking-table-wrap table{min-width:0}:where(.public-ranking-table-wrap th),:where(.public-ranking-table-wrap td){padding:17px 26px}.public-ranking-position{min-width:40px;min-height:34px;color:var(--blue);background:#eaf4fc;border-radius:9px;place-items:center;display:inline-grid}.public-ranking-state{color:var(--muted);text-align:center;background:#fff;border:1px dashed #c8d6e4;border-radius:16px;padding:52px 24px}.public-ranking-state h2{color:var(--navy)}.public-ranking-footer{color:var(--muted);text-align:center;padding-bottom:28px;font-size:12px}@media (width<=760px){.public-ranking-header,.public-ranking-hero,.public-ranking-filters,.public-ranking-results,.public-ranking-footer{width:min(100% - 28px,1120px)}.public-ranking-header{padding-top:18px}.public-ranking-hero{padding-top:28px}.public-ranking-filters form{grid-template-columns:1fr}.public-ranking-filters button{width:100%}.public-ranking-result-head{flex-direction:column;align-items:start;gap:8px}:where(.public-ranking-table-wrap th),:where(.public-ranking-table-wrap td){padding:14px 16px}}@media (width<=460px){.public-ranking-header{padding-block:14px}.public-ranking-label{display:none}.public-ranking-hero{padding-inline:0}.public-ranking-podium{gap:5px}.public-podium-medal{height:66px}.public-podium-medal img{width:52px;height:52px}.place-1 .public-podium-medal img{width:62px;height:62px}.place-1 .public-podium-platform{height:143px}.place-2 .public-podium-platform{height:118px}.place-3 .public-podium-platform{height:100px}.public-ranking-filters{padding:16px}:where(.public-ranking-table-wrap table){table-layout:fixed}:where(.public-ranking-table-wrap th),:where(.public-ranking-table-wrap td){padding:11px 8px;font-size:11px}:where(.public-ranking-table-wrap th:first-child),:where(.public-ranking-table-wrap td:first-child){width:60px}:where(.public-ranking-table-wrap th:nth-child(3)),:where(.public-ranking-table-wrap td:nth-child(3)){display:none}:where(.public-ranking-table-wrap .public-ranking-points-column){white-space:nowrap;width:88px}}@keyframes public-podium-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes public-medal-rise{0%{opacity:0;transform:translateY(24px)scale(.72)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.public-podium-platform,.public-podium-medal{opacity:1;animation:none;transform:none}}.page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px;display:flex}.page-header h1{margin-bottom:8px}.page-header>div>p:last-child{max-width:660px;margin-bottom:0}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric-card,.panel{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 8px #14223808}.metric-card{gap:8px;min-height:154px;padding:20px;display:grid}.metric-card p,.metric-card small{color:var(--muted);margin:0;font-size:13px}.metric-card strong{letter-spacing:-.04em;font-size:32px}.empty-panel{margin-top:22px;padding:24px}.empty-panel p{margin-bottom:0}.data-table-wrap{overflow-x:auto}.table-toolbar{border-bottom:1px solid var(--line);gap:7px;padding:18px;display:grid}.table-toolbar label{margin:0}.table-toolbar input{max-width:360px}.management-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:20px 18px;display:flex}.management-head h2{margin:2px 0 0;font-size:21px}.management-tabs{border-bottom:1px solid var(--line);gap:6px;padding:12px 18px 0;display:flex}.management-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px;font-weight:800}.management-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.management-filters{grid-template-columns:minmax(180px,1fr) minmax(180px,260px);align-items:end}.management-filters label{gap:7px;display:grid}.management-filters select{min-height:40px;padding:8px 16px}.management-filters input,.management-filters select{border-radius:999px}.row-actions{gap:12px;display:flex}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;font-size:13px;display:flex}.pager>div{align-items:center;gap:10px;display:flex}.pager-button{min-width:94px;color:var(--blue);background:#fff;border:1px solid #cfd9e4;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:700}.pager-button:not(:disabled):hover{color:#fff;border-color:var(--blue);background:var(--blue)}.student-enrollment-editor{border:1px solid var(--line);background:#f8fafc;border-radius:12px;gap:10px;padding:16px;display:grid}.student-enrollment-heading h3{margin:0;font-size:15px}.student-enrollment-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.student-enrollment-list{gap:8px;display:grid}.enrollment-row,.add-enrollment{grid-template-columns:minmax(100px,1fr) minmax(145px,1fr) auto;align-items:center;gap:8px;display:grid}.enrollment-row select,.add-enrollment select,.add-enrollment input{background:#fff;border:1px solid #ccd6e1;border-radius:8px;min-height:38px;padding:8px 10px}.add-enrollment{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1fr) 130px auto;padding-top:10px}.add-enrollment .button{white-space:nowrap;min-height:38px;padding:7px 10px}.delete-student-area{border-top:1px solid var(--line);padding-top:12px}.delete-student-confirmation{background:#fff4f2;border:1px solid #f3c7c2;border-radius:9px;flex-wrap:wrap;align-items:center;gap:9px;padding:12px;display:flex}.delete-student-confirmation p{color:#8d251e;width:100%;margin:0;font-size:13px}.danger-action,.danger-button{color:#b42318}.danger-button{background:#fff;border-color:#b42318}.danger-button:hover:not(:disabled){color:#fff;background:#b42318}.form-error{color:#b42318;margin:0;font-size:13px;font-weight:700}.table-empty{color:var(--muted);margin:0;padding:24px 18px}.status{border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;display:inline-block}.status.success{color:#19734b;background:#eaf7f0}.status.neutral{color:var(--muted);background:#eef2f6}table{border-collapse:collapse;width:100%;min-width:440px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:14px 18px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=900px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding-inline:10px}.brand{justify-content:center;padding-inline:0}.brand>span:last-child,.nav-item,.profile-summary span:last-child,.logout-button{font-size:0}.nav-item{place-items:center;min-height:42px;display:grid}.nav-item:first-letter,.logout-button:first-letter{font-size:16px}.profile-summary{justify-content:center}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-content{padding:28px 24px}}@media (width<=600px){.management-head,.pager{flex-direction:column;align-items:stretch}.management-head .button{width:100%}.management-filters{grid-template-columns:1fr}.pager>div{justify-content:space-between}.enrollment-row,.add-enrollment{grid-template-columns:1fr}.app-shell{display:block}.sidebar{height:auto;padding:12px;position:static}.brand{justify-content:flex-start;padding:4px 6px 12px}.brand>span:last-child{font-size:14px;display:inline}.sidebar-nav{display:flex;overflow:auto}.nav-item{min-width:max-content;font-size:13px}.nav-item:first-letter{font-size:13px}.sidebar-footer{display:none}.app-content{padding:24px 16px}.page-header{display:grid}.page-header .button{width:100%}.metric-grid{grid-template-columns:1fr}.login-card{padding:28px 22px}}.app-shell{display:block}.sidebar{z-index:20;width:246px;box-shadow:none;padding:28px 18px 20px;position:fixed;inset:0 auto 0 0}.brand{gap:12px;padding:0 10px 32px}.brand-mark{color:#fff;background:0 0;border:1px solid #ffffff73;width:38px;height:38px}.brand>span:last-child{gap:3px;font-size:0;display:grid}.brand strong{letter-spacing:.16em;font-size:18px}.brand small{color:#a9bdd2;letter-spacing:.12em;font-size:9px}.sidebar-nav{gap:2px}.nav-label{color:#8fa9c2;letter-spacing:.15em;margin:9px 0;padding:0 12px;font-size:10px;font-weight:800}.nav-item,.logout-button{align-items:center;gap:12px;margin:2px 0;padding:12px 14px;font-size:14px;display:flex}.nav-item.active{box-shadow:inset 3px 0 #32bdd6}.nav-icon{color:#9ec3e5;flex:0 0 18px;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.sidebar-footer{gap:14px;margin-top:auto;padding:20px 8px 0}.app-content{width:auto;min-height:100vh;margin-left:246px;padding:0}.topbar{z-index:10;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.context,.top-actions{color:var(--muted);letter-spacing:.08em;align-items:center;gap:9px;font-size:11px;font-weight:800;display:flex}.live-dot{background:#2bad69;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #e7f8ef}.menu-toggle{color:var(--blue);background:0 0;border:0;font-size:20px;display:none}.content{max-width:1510px;margin:auto;padding:34px 38px 60px}.page-header{align-items:flex-end;margin-bottom:28px}.page-header h1{letter-spacing:-.035em;font-size:30px}.button-primary{box-shadow:0 5px 15px #10427b24}.metric-grid{gap:16px;margin-bottom:18px}.metric-card{border-radius:14px;min-height:132px;padding:20px;position:relative;box-shadow:0 2px 8px #0f233a05}.metric-card:before{width:40px;height:40px;color:var(--blue);content:"◆";background:#edf3fa;border-radius:10px;place-items:center;margin-bottom:10px;display:grid}.metric-card p{letter-spacing:.09em;text-transform:uppercase;order:1;font-size:10px;font-weight:800}.metric-card strong{order:2;margin-top:-4px;font-size:27px}.panel{border-radius:14px;box-shadow:0 8px 30px #0b2f5a12}.cycle-settings-panel{gap:14px;margin-bottom:18px;padding:22px 24px;display:grid}.cycle-settings-panel h2{margin:0 0 6px}.cycle-settings-panel p:not(.eyebrow){max-width:720px;color:var(--muted);margin:0;font-size:13px;line-height:1.45}.cycle-settings-panel small{color:var(--muted);font-size:12px}.inline-form{flex-wrap:wrap;align-items:end;gap:10px;margin:0;display:flex}.inline-form label{color:var(--muted);gap:6px;margin:0;font-size:12px;display:grid}.inline-form input{width:130px;min-height:42px}.inline-form .button{min-height:42px}.cycle-settings-panel .form-feedback{color:#177245;font-size:13px;font-weight:700}.cycles-page{gap:18px;display:grid}.cycle-summary{gap:18px;padding:24px;display:grid}.cycle-summary-head,.cycle-section-heading,.cycle-progress-caption,.cycle-month-nav{justify-content:space-between;align-items:center;gap:16px;display:flex}.cycle-summary h2{letter-spacing:-.03em;margin:4px 0 6px;font-size:24px}.cycle-summary p:not(.eyebrow),.cycle-section-heading p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px}.cycle-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.cycle-metrics>div{background:#f8fafc;border:1px solid #edf1f5;border-radius:9px;gap:6px;padding:13px 14px;display:grid}.cycle-metrics small{color:var(--muted);font-size:11px}.cycle-metrics strong{font-size:15px}.cycle-progress{gap:8px;display:grid}.cycle-progress-caption{color:var(--muted);font-size:11px}.cycle-progress-caption strong{color:var(--blue)}.progress-track{background:#e5ecf4;border-radius:999px;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--blue);height:100%;transition:width .24s;display:block}.cycles-columns{grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);align-items:start;gap:18px;display:grid}.cycle-calendar-panel,.cycle-config-panel,.cycle-history-panel{padding:22px 24px}.cycle-section-heading{align-items:flex-start}.cycle-section-heading h3{margin:3px 0 7px;font-size:17px}.cycle-month-nav{margin:20px 0 12px}.cycle-month-nav strong{color:var(--ink);text-transform:capitalize;font-size:15px}.cycle-calendar-grid{grid-template-columns:repeat(7,minmax(32px,1fr));gap:5px;display:grid}.cycle-weekday{color:var(--muted);text-align:center;text-transform:uppercase;padding:8px 0;font-size:10px;font-weight:800}.cycle-day{min-height:40px;color:var(--muted);border:1px solid #0000;border-radius:8px;place-items:center;font-size:12px;display:grid}.cycle-day.inside{color:var(--blue);background:#e6f0fb}.cycle-day.start,.cycle-day.end{border-color:var(--blue);font-weight:800}.cycle-day.end{background:#c6dcf2}.cycle-calendar-legend{color:var(--muted);align-items:center;gap:7px;margin:15px 0 0;font-size:11px;display:flex}.cycle-calendar-legend span{background:#d6e6f8;border-radius:3px;width:10px;height:10px}.cycle-settings-form{gap:12px;margin:18px 0 0;display:grid}.cycle-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.cycle-settings-form input:disabled{color:var(--ink);opacity:1;background:#f5f8fb}.cycle-subheading{border-top:1px solid var(--line);margin:18px 0 0;padding-top:16px;font-size:13px}.cycle-subheading+.cycle-settings-form{margin-top:12px}.cycle-settings-form label,.cycle-modal label{color:var(--muted);gap:7px;margin:0;font-size:12px;font-weight:800;display:grid}.cycle-settings-form input,.cycle-modal input,.cycle-modal select,.cycle-modal textarea{min-height:42px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:9px 11px}.cycle-settings-form input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.cycle-settings-form input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.cycle-settings-form input[type=number]{appearance:textfield}.cycle-modal textarea{resize:none;min-height:110px;font:inherit}.cycle-info,.cycle-warning{color:var(--blue);background:#edf5fd;border:1px solid #dce9f7;border-radius:8px;margin:0;padding:11px 13px;font-size:12px;line-height:1.45}.cycle-warning{color:#946200;background:#fffaf0;border-color:#f0d9a5}.cycle-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:17px;padding-top:17px;display:flex}.cycle-actions .button:disabled{opacity:.58;cursor:not-allowed}.cycle-action-hint{color:var(--muted);border:1px solid var(--line);background:#f8fafc;border-radius:8px;margin:16px 0 0;padding:12px;font-size:12px;line-height:1.45}.button-danger{color:#fff;background:#b42318;border-color:#b42318}.button-danger:hover:not(:disabled){background:#8e1b13}.cycle-history-panel{gap:14px;display:grid}.cycle-count{color:var(--muted);font-size:12px}.cycle-history-list{border-top:1px solid var(--line);display:grid}.cycle-history-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:15px 2px;display:flex}.cycle-history-row>div{gap:4px;display:grid}.cycle-history-row strong{font-size:14px}.cycle-history-row span:not(.status),.cycle-history-row small{color:var(--muted);font-size:12px}.cycle-history-row.current{background:#f7faff;border-radius:8px;padding-left:12px;padding-right:12px}.cycle-modal{width:min(560px,100%)}.cycle-modal form{gap:16px;margin:0;padding:22px 24px 24px;display:grid}.cycle-modal .modal-actions{margin-top:4px}@media (width<=900px){.cycles-columns{grid-template-columns:1fr}}@media (width<=700px){.cycle-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-summary,.cycle-calendar-panel,.cycle-config-panel,.cycle-history-panel{padding:18px}}@media (width<=520px){.cycle-fields-grid{grid-template-columns:1fr}.cycle-summary-head,.cycle-section-heading,.cycle-history-row{flex-direction:column;align-items:flex-start}.cycle-history-row .status{align-self:flex-start}.cycle-metrics{grid-template-columns:1fr}.cycle-actions .button,.cycle-summary>.button{width:100%}}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex}.panel-head h2{margin:0 0 5px;font-size:16px}.panel-head p,.panel-head a{color:var(--muted);margin:0;font-size:12px}.panel-head a{color:var(--blue);font-weight:800;text-decoration:none}.score-filter-grid{grid-template-columns:minmax(190px,1.4fr) minmax(160px,1fr) 140px 140px auto;align-items:end;gap:12px;padding:18px 22px 20px;display:grid}.score-filter-grid label{gap:6px;margin:0;font-size:12px;display:grid}.score-filter-grid select,.score-filter-grid input{border-radius:8px;min-height:42px}.score-filter-actions{align-items:end;min-height:42px;display:flex}.table-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}@media (width<=900px){.score-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.score-filter-actions{grid-column:span 2}}@media (width<=600px){.score-filter-grid{grid-template-columns:1fr;padding-left:18px;padding-right:18px}.score-filter-actions{grid-column:auto}}.dashboard-grid{grid-template-columns:1.6fr 1fr;gap:18px;display:grid}.dashboard-shortcuts{margin-bottom:18px}.shortcut-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 20px 20px;display:grid}.shortcut-card{min-height:112px;color:var(--ink);border:1px solid var(--line);background:#f8fafc;border-radius:12px;flex-direction:column;gap:7px;padding:16px;text-decoration:none;transition:border-color .16s,transform .16s;display:flex}.shortcut-card:hover{border-color:var(--blue);transform:translateY(-2px)}.shortcut-card strong{color:var(--blue);font-size:14px}.shortcut-card span{color:var(--muted);font-size:12px;line-height:1.45}.shortcut-card small{color:var(--blue);margin-top:auto;font-size:11px;font-weight:800}.rank-list,.feed-list{margin:0;padding:0;list-style:none}.rank-list li{border-bottom:1px solid #edf0f3;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px 22px;display:grid}.rank-list b{color:var(--blue)}.rank-list strong{color:var(--ink);font-size:13px}.feed-list li{border-bottom:1px solid #edf0f3;grid-template-columns:32px 1fr;gap:11px;padding:13px 20px;display:grid}.feed-list li>span{width:32px;height:32px;color:var(--blue);background:#edf3fa;border-radius:8px;place-items:center;display:grid}.feed-list strong,.feed-list small{font-size:13px;display:block}.feed-list small{color:var(--muted);margin-top:3px;font-size:10px}.panel-empty{color:var(--muted);margin:0;padding:22px;font-size:13px}.alert-list{gap:8px;margin-top:18px;display:grid}.alert-list p{color:#a16608;background:#fff5df;border:1px solid #f5ddb1;border-radius:12px;margin:0;padding:14px 18px;font-size:13px}th{color:#778597;background:#fafbfc;padding:12px 18px;font-size:10px}td{padding:15px 18px;font-size:13px}tbody tr:hover{background:#fafcfe}.data-table-wrap{border-radius:14px}.calendar-toolbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:20px 22px;display:flex}.calendar-cycle-card{border-left:3px solid var(--blue);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;margin-bottom:18px;padding:16px 22px;display:grid}.calendar-cycle-card h2{margin:3px 0 5px;font-size:17px}.calendar-cycle-card p:not(.eyebrow){color:var(--muted);margin:0;font-size:12px}@media (width<=700px){.calendar-cycle-card{grid-template-columns:1fr;align-items:stretch;gap:10px;padding:16px 18px}.calendar-cycle-card .button{text-align:center;width:100%}}.calendar-toolbar h2{margin:3px 0 6px}.calendar-toolbar-description{color:var(--muted);margin:0;font-size:13px}.calendar-filters{border-bottom:1px solid var(--line)}.calendar-month-head{justify-content:space-between;align-items:center;gap:16px;padding:18px 22px 10px;display:flex}.calendar-month-info{text-align:center;gap:3px;display:grid}.calendar-month-head strong{text-transform:capitalize;font-size:18px}.calendar-month-meta{color:var(--muted);font-size:12px}.calendar-nav{width:36px;height:36px;color:var(--blue);font-size:24px;font-family:var(--font);background:#fff;border:1px solid #d4dfe9;border-radius:50%;justify-content:center;align-items:center;padding:0 0 2px;line-height:1;display:flex}.calendar-nav:hover{color:#fff;border-color:var(--blue);background:var(--blue)}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:14px;padding:0 22px 16px;font-size:11px;display:flex}.calendar-legend-entry{align-items:center;gap:6px;display:inline-flex}.calendar-key{background:#edf1f5;border-radius:50%;width:9px;height:9px}.calendar-key.attendance{background:#2bad69}.calendar-key.school-day{background:#4a90c9}.calendar-key.non-attendance{background:#e5a635}.calendar-layout{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 240px;display:grid}.calendar-grid{border-right:1px solid var(--line);grid-template-columns:repeat(7,minmax(72px,1fr));display:grid}.calendar-weekday{color:var(--muted);border-bottom:1px solid var(--line);letter-spacing:.06em;text-align:center;text-transform:uppercase;background:#fafbfc;padding:11px 8px;font-size:10px;font-weight:800}.calendar-day{min-height:104px;color:var(--ink);text-align:left;background:#fff;border:1px solid #edf0f3;border-top:0;border-left:0;flex-direction:column;align-items:flex-start;gap:8px;padding:11px;display:flex}.calendar-day:not(:disabled):hover{background:#f6faff}.calendar-day strong{border-radius:50%;place-items:center;width:25px;height:25px;font-size:12px;display:grid}.calendar-day-label{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.35;overflow:hidden}.calendar-day.non-attendance{background:linear-gradient(135deg,#fffaf0,#fff)}.calendar-day.non-attendance strong{color:#a76b08;background:#fff0ce}.calendar-day.school-day{background:linear-gradient(135deg,#edf6ff,#fff)}.calendar-day.school-day strong{color:#1f5f96;background:#d9edff}.calendar-day.school-day.attendance{box-shadow:inset 3px 0 #2e9b64}.calendar-day.school-day.attendance strong{color:#14764b;background:#dff5e8}.calendar-day.selected{z-index:1;box-shadow:inset 0 0 0 2px var(--blue);position:relative}.calendar-day.outside{cursor:default;background:#fafbfc}.calendar-detail{background:#fbfcfe;min-height:360px;padding:22px 18px}.calendar-detail h3{margin:2px 0 12px;font-size:16px}.calendar-detail-copy{color:var(--muted);font-size:13px;line-height:1.5}.calendar-detail dl{gap:14px;margin:20px 0 0;display:grid}.calendar-detail dl div{gap:4px;display:grid}.calendar-detail dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.calendar-detail dd{margin:0;font-size:13px;line-height:1.45}.calendar-import-modal{width:min(720px,100%)}.calendar-preview{gap:14px;padding:0 24px 24px;display:grid}.calendar-preview-summary{background:#edf3fa;border-radius:9px;justify-content:space-between;gap:12px;padding:13px;font-size:13px;display:flex}.calendar-preview-counts{color:var(--muted)}.attendance-toolbar{margin-bottom:18px;padding:18px}.correlation-panel{gap:16px;padding:22px 24px 8px;display:grid}.correlation-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.correlation-intro{min-width:0}.correlation-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.correlation-head h3{margin:0;font-size:17px}.correlation-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.correlation-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.correlation-controls select{background:#fff;border:1px solid #ccd6e1;border-radius:8px;min-height:40px;padding:8px 10px}.correlation-file-name{max-width:min(300px,28vw);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.correlation-controls>.correlation-file-name{display:none}@media (width<=700px){.correlation-head{flex-direction:column;align-items:stretch}.correlation-head-actions{justify-content:flex-start}.correlation-file-name{max-width:min(100%,240px)}}.correlation-frequency-select{background:#fff;border:1px solid #ccd6e1;border-radius:8px;min-width:190px;min-height:36px;padding:7px 9px}.correlation-actions{flex-wrap:wrap;gap:6px 12px;min-width:260px;display:flex}.attendance-import-bar{box-sizing:border-box;justify-content:space-between;align-items:center;gap:18px;min-height:116px;margin-bottom:18px;padding:22px 24px;display:flex}.attendance-import-bar h2{margin:4px 0 6px;font-size:18px;line-height:1.25}.attendance-import-bar p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px;line-height:1.45}.attendance-import-modal{width:min(760px,100%);max-height:min(820px,100vh - 32px)}.attendance-import-body{gap:18px;padding:22px 24px 24px;display:grid}.attendance-import-body label{gap:7px;font-size:12px;font-weight:800;display:grid}.attendance-import-body select,.attendance-import-body input[type=file]{background:#fff;border:1px solid #ccd6e1;border-radius:8px;width:100%;min-height:44px;padding:10px 12px}.attendance-file-field{gap:8px}.attendance-file-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.attendance-import-preview{gap:10px;padding-top:2px;display:grid}.attendance-import-preview ul{max-height:150px;color:var(--muted);margin:8px 0 0;padding-left:22px;font-size:13px;overflow:auto}.form-success{color:#177245;font-size:13px}.form-warning{color:#8a5700;font-size:13px}.attendance-import-preview .calendar-preview-summary{border:1px solid #dbe5ef;flex-wrap:wrap;align-items:center;padding:15px 16px}.attendance-summary-metrics{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.attendance-summary-metric{background:#f7f9fb;border-radius:6px;padding:6px 8px}.attendance-summary-metrics b{color:var(--ink)}.attendance-summary-metrics .metric-success{color:#177245;background:#edf8f1}.attendance-summary-metrics .metric-warning{color:#946200;background:#fff6df}.attendance-import-preview details{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;padding:11px 13px}.attendance-import-preview summary{color:var(--ink);cursor:pointer;font-size:12px;font-weight:800}.attendance-import-section-title{align-items:flex-start;gap:10px;display:flex}.attendance-import-section-title p{color:var(--muted);margin:3px 0 0;font-size:12px;font-weight:400}.import-step{color:#fff;background:var(--blue);border-radius:50%;flex:0 0 24px;place-items:center;width:24px;height:24px;font-size:12px;font-weight:900;display:inline-grid}.attendance-pending-association{background:#fffaf0;border:1px solid #f0d9a5;border-radius:9px;gap:9px;padding:15px;display:grid}.attendance-pending-association p{color:var(--muted);margin:0;font-size:12px}.pending-association-row{grid-template-columns:1fr minmax(190px,.8fr);align-items:center;gap:10px;font-size:13px;display:grid}.pending-association-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pending-association-row select{min-height:38px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:7px 9px}@media (width<=600px){.attendance-import-bar{flex-direction:column;align-items:stretch;min-height:0;padding:18px}.attendance-import-bar .button{width:100%}.attendance-import-modal{max-height:calc(100vh - 20px)}.attendance-import-body{padding:18px}.attendance-import-preview .calendar-preview-summary{flex-direction:column;align-items:flex-start}.pending-association-row{grid-template-columns:1fr}.pending-association-row select{width:100%}}.attendance-filter-error{margin:12px 0 0;padding:0 2px}.attendance-pager{border-top:1px solid var(--line)}.attendance-filter-grid{grid-template-columns:repeat(6,minmax(100px,1fr));align-items:end;gap:12px;display:grid}.filter-bar{padding:18px 22px 20px}.filter-bar-fields{grid-template-columns:minmax(190px,1.4fr) minmax(160px,1fr) 140px 140px auto;align-items:end;gap:12px;display:grid}.filter-bar-fields label{gap:6px;margin:0;font-size:12px;display:grid}.filter-bar-fields select,.filter-bar-fields input{box-sizing:border-box;width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:8px 10px}.filter-bar-action{align-items:end;min-height:42px;display:flex}@media (width<=900px){.filter-bar-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.filter-bar{padding-left:18px;padding-right:18px}.filter-bar-fields{grid-template-columns:1fr}}.attendance-filter-grid label{gap:6px;margin:0;font-size:12px;display:grid}.attendance-filter-grid select{min-height:42px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:8px 10px}.attendance-date-filter-input{width:150px}.attendance-date-controls{grid-column:span 2;align-items:end;gap:8px;display:flex}.attendance-order-control{min-height:42px;color:var(--muted);border:0;align-content:end;gap:6px;padding:0;font-size:12px;display:grid}.attendance-order-control legend{padding:0}@media (width<=1400px) and (width>=601px){.attendance-filter-grid{grid-template-columns:repeat(3,minmax(95px,1fr)) minmax(250px,1fr) auto;gap:8px}.attendance-date-controls{grid-column:auto;gap:6px}.attendance-date-filter-input{width:112px}.attendance-order-buttons button{width:28px;height:28px;font-size:16px}}.ranking-filters{margin-bottom:18px;padding:0}.ranking-filter-grid{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.ranking-filter-grid label{color:var(--muted);gap:6px;margin:0;font-size:12px;display:grid}.ranking-filter-grid select,.ranking-filter-grid input{min-width:160px;min-height:42px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:8px 10px}.ranking-podium{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:16px;margin-bottom:18px;display:grid}.podium-card{text-align:center;border:1px solid var(--line);background:#fff;border-radius:14px;align-content:center;justify-items:center;gap:7px;min-height:160px;padding:20px 14px;display:grid;box-shadow:0 8px 30px #0b2f5a12}.podium-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;overflow:hidden}.podium-card b{color:var(--blue);font-size:21px}.podium-card small{color:var(--muted);font-size:11px}.podium-medal{color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.podium-1{background:linear-gradient(160deg,#fffdf5,#fff);border-color:#e4bd55;min-height:184px}.podium-1 .podium-medal{color:#6f4b00;background:#f4d477}.podium-2 .podium-medal{background:#9aa9b8}.podium-3 .podium-medal{background:#b8794d}.attendance-order-buttons{gap:4px;display:flex}.attendance-order-buttons button{width:32px;height:32px;color:var(--muted);background:#fff;border:1px solid #ccd6e1;border-radius:7px;place-items:center;padding:0;font-size:18px;line-height:1;display:grid}.attendance-order-buttons button:hover,.attendance-order-buttons button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.attendance-table-panel{overflow-x:auto}.status.danger{color:#b42318;background:#fff0ee}.status.warning{color:#9a6700;background:#fff4d6}.textarea{resize:vertical;width:100%;color:var(--ink);font:inherit;border:1px solid #ccd6e1;border-radius:8px;padding:10px 12px}.textarea:focus{border-color:var(--blue-2);outline:3px solid #1665b538}.calendar-preview details{border:1px solid var(--line);border-radius:9px;padding:12px 13px}.calendar-preview summary{cursor:pointer;color:var(--blue);font-size:13px;font-weight:800}.calendar-preview ul{color:var(--muted);gap:6px;margin:12px 0 0;padding-left:20px;font-size:12px;display:grid}@media (width<=600px){.calendar-toolbar,.calendar-filters{flex-direction:column;align-items:stretch}.calendar-toolbar .button,.calendar-filters .button,.calendar-filters select{width:100%}.calendar-preview-summary{flex-direction:column;align-items:flex-start}.calendar-layout{grid-template-columns:1fr}.calendar-grid{border-right:0;overflow-x:auto}.calendar-detail{border-top:1px solid var(--line);min-height:auto}.attendance-filter-grid{grid-template-columns:1fr}.attendance-date-controls{flex-wrap:wrap;grid-column:auto}.attendance-date-filter-input{width:100%}.ranking-filter-grid{grid-template-columns:1fr;display:grid}.ranking-filter-grid select,.ranking-filter-grid input,.ranking-filter-grid .button{width:100%}.ranking-podium{grid-template-columns:1fr}.podium-card,.podium-1{min-height:130px}}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:28px 24px}}@media (width<=760px){.sidebar{width:100%;height:auto;position:static;transform:none}.app-content{margin-left:0}.menu-toggle{display:none}.topbar{padding:0 17px}.content{padding:24px 16px}.page-header{flex-direction:column;align-items:flex-start}.metric-grid,.shortcut-grid{grid-template-columns:1fr}.sidebar-nav{display:flex;overflow-x:auto}.sidebar-footer{display:none}.brand{padding-bottom:14px}}tbody tr:last-child td{border-bottom:0}.accesses-actions{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.accesses-actions p{color:var(--muted);margin:0;font-size:13px}.role-chip{color:var(--blue);background:#edf3fa;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.table-action{color:var(--blue);background:0 0;border:0;padding:5px 0;font-size:12px;font-weight:800}.table-action:hover{text-decoration:underline}.toast{z-index:60;color:#fff;border-radius:10px;align-items:center;gap:14px;max-width:min(420px,100vw - 48px);padding:13px 14px 13px 16px;font-size:13px;font-weight:700;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 14px 36px #0413243d}.toast-success{background:#19704b}.toast-error{background:#b42318}.toast button{color:inherit;background:0 0;border:0;padding:0;font-size:20px;line-height:1}.modal-backdrop{z-index:50;background:#08192d8a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 25px 80px #0413244d}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:22px 24px;display:flex}.modal-head h2{margin:3px 0 0;font-size:22px}.icon-button{width:auto;min-width:28px;height:auto;color:var(--muted);font:inherit;background:0 0;border:0;place-items:center;padding:2px;font-size:24px;line-height:1;display:grid}.icon-button:hover{color:var(--ink);background:0 0}.modal-close{color:var(--muted);background:0 0;border:0;font-size:26px;line-height:1}.modal form{margin:0;padding:24px}.modal label{gap:7px;margin:0;font-size:12px;font-weight:800;display:grid}.modal select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:10px 12px}.modal textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:112px;color:var(--ink);font:inherit;background:#fff;border:1px solid #ccd6e1;border-radius:8px;padding:10px 12px;line-height:1.4}.modal textarea:focus{border-color:var(--blue-2);outline:3px solid #1665b538}.audit-note{color:var(--muted);background:#f4f7fa;border-radius:8px;margin:0;padding:11px 13px;font-size:11px}.modal-actions{justify-content:flex-end;gap:9px;margin-top:4px;display:flex}.button-secondary{color:var(--blue);background:#fff;border-color:#cfd9e4}@media (width<=600px){.accesses-actions{flex-direction:column;align-items:stretch}.accesses-actions .button{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions .button{width:100%}}
