:root{--navy:#16243d;--navy-2:#243454;--blue:#3b82f6;--blue-2:#2563eb;--cyan:#1fa9d7;--green:#18a971;--orange:#f5a623;--red:#ef5b5b;--bg:#f4f7fb;--card:#fff;--line:#e6ebf2;--text:#20304a;--muted:#74839a;--shadow:0 12px 30px rgba(27,39,64,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);font-size:14px}.rdm-shell{min-height:100vh;display:flex}.rdm-sidebar{width:270px;background:linear-gradient(180deg,#1a2946 0%,#223657 100%);color:#e9f0ff;position:fixed;top:0;left:0;bottom:0;z-index:1100;overflow-y:auto;box-shadow:8px 0 25px rgba(20,35,60,.12)}.brand-panel{padding:18px 18px 14px;display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)}.brand-logo{width:52px;height:52px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}.brand-logo img{width:100%;height:100%;object-fit:contain}.brand-logo span{font-weight:900;color:#1976d2;letter-spacing:-1px}.brand-text{min-width:0}.brand-text strong{display:block;color:#fff;font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text small{display:block;color:#b7c5dd;font-size:10px;line-height:1.4;margin-top:4px}.period-chip{margin:14px 15px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.08);font-size:11px;color:#fff;display:flex;align-items:center;gap:8px}.period-dot{width:8px;height:8px;border-radius:50%;background:#f8d44e;box-shadow:0 0 0 4px rgba(248,212,78,.12)}.side-nav{padding:7px 11px 20px}.side-section-title{font-size:10px;font-weight:800;letter-spacing:.12em;color:#93a4c0;padding:13px 12px 8px}.side-link,.side-group-head{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#d8e2f5;text-decoration:none;padding:10px 12px;margin:2px 0;border-radius:10px;font-weight:600;font-size:13px;text-align:left;transition:.18s}.side-link:hover,.side-group-head:hover{color:#fff;background:rgba(255,255,255,.07)}.side-link.active{color:#fff;background:linear-gradient(90deg,rgba(68,112,244,.42),rgba(68,112,244,.16));box-shadow:inset 3px 0 0 #76a3ff}.side-group-head{justify-content:space-between;cursor:pointer}.side-group-head>span:first-child{display:flex;align-items:center;gap:12px}.side-group-head .chev{font-size:18px;color:#8ea0bc;transition:.2s}.side-group-head.open .chev{transform:rotate(90deg);color:#fff}.side-sub{display:none;padding:3px 0 5px 26px}.side-sub.open{display:block}.side-sub-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:#bdc9dc;font-size:12px;padding:8px 10px;border-radius:8px;margin:2px 0}.side-sub-link:hover{background:rgba(255,255,255,.05);color:#fff}.side-sub-link.active{color:#fff;background:rgba(59,130,246,.17);font-weight:700}.sub-dot{width:5px;height:5px;border-radius:50%;background:#7185a5;flex:none}.side-sub-link.active .sub-dot{background:#73a2ff}.side-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;position:relative;flex:none;color:currentColor}.side-icon:before{font-size:14px;line-height:1}.i-dashboard:before{content:'▦'}.i-school:before{content:'▥'}.i-building:before{content:'▤'}.i-user:before{content:'◉'}.i-users:before{content:'♧'}.i-layers:before{content:'◈'}.i-file:before{content:'▣'}.i-upload:before{content:'⇧'}.i-settings:before{content:'⚙'}.i-database:before{content:'◫'}.i-book:before{content:'▤'}.i-edit:before{content:'✎'}.i-calendar:before{content:'◷'}.i-grid:before{content:'▦'}.i-check:before{content:'✓'}.i-note:before{content:'▢'}.i-chart:before{content:'◒'}.i-logout:before{content:'↪'}.side-badge{margin-left:auto;background:#fff;color:#234;font-size:10px;padding:3px 7px;border-radius:20px}.logout-form{margin:0}.side-logout{cursor:pointer}.rdm-main{margin-left:270px;min-width:0;display:flex;flex-direction:column;min-height:100vh;width:calc(100% - 270px)}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 25px;position:sticky;top:0;z-index:1000;box-shadow:0 2px 12px rgba(20,35,60,.03)}.topbar-toggle{border:0;background:#eef4ff;color:#2b60ca;width:40px;height:40px;border-radius:11px;display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px}.topbar-toggle span{display:block;width:16px;height:2px;background:#2b60ca;border-radius:2px}.topbar-title{display:flex;gap:10px;align-items:center;font-size:13px}.crumb{color:#8b9ab0}.crumb-sep{color:#b3bdcb}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:15px}.top-period{padding:7px 10px;background:#eef6ff;color:#2d65c7;border-radius:9px;font-size:11px;font-weight:700}.top-school{font-size:12px;color:#55657f;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#2f80ed,#1f5cc1);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.page-wrap{padding:24px 26px;flex:1}.footer-bar{padding:15px 26px;border-top:1px solid var(--line);background:#fff;color:#90a0b4;font-size:11px;display:flex;justify-content:space-between}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{font-size:10px;font-weight:800;color:#7d8da3;letter-spacing:.15em}.page-heading h1{font-size:27px;margin:4px 0 5px;color:#1f2f49;font-weight:800;letter-spacing:-.02em}.page-heading p{margin:0;color:#7c8aa0;font-size:13px}.card{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;background:#fff}.card-body{padding:20px}.btn{border-radius:10px;font-weight:700;font-size:13px}.btn-primary{background:linear-gradient(135deg,#3e8af7,#2563eb);border-color:#2563eb}.btn-outline-primary{border-color:#c8d8f5;color:#2d68d2}.form-control,.form-select{border-radius:10px;border-color:#dbe3ee;padding:.65rem .75rem;font-size:13px}.form-control:focus,.form-select:focus{border-color:#6fa1ff;box-shadow:0 0 0 .2rem rgba(59,130,246,.12)}.form-label{font-size:12px;color:#62738f;font-weight:700}.metric-card{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}.metric-card .label{font-size:11px;color:#8594aa;margin-bottom:5px}.metric-card .value{font-size:22px;font-weight:800;color:#1f3150}.alert-modern{border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:15px;background:#fff;display:flex;gap:10px;align-items:center;font-size:12px;box-shadow:var(--shadow)}.alert-modern.success{border-color:#cfeedd;background:#f3fff7;color:#14663f}.alert-modern.danger{border-color:#f2d0d0;background:#fff7f7;color:#9d3333}.alert-modern.warning{border-color:#f5e0af;background:#fffaf0;color:#8a610d}.alert-modern.info{border-color:#d3e6ff;background:#f4f9ff;color:#245f9d}.alert-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}.soft-box{border:1px dashed #d7e0ec;border-radius:14px;background:#fafcff;padding:16px;color:#73839a;font-size:12px}.class-pill,.badge-soft{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#edf4ff;color:#2c68d4;font-size:11px;font-weight:800}.score-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.materi-box{padding:16px;border:1px solid #d8e5fa;border-radius:14px;background:linear-gradient(180deg,#f6faff,#fbfdff)}.score-table{font-size:12px}.score-table thead th{background:#f4f7fb;border-color:#e3e9f1;color:#677892;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.score-table td{border-color:#e8edf4}.score-table tbody tr:hover{background:#fbfdff}.nilai-input{font-weight:800;text-align:center}.empty-state{background:#fff;border:1px dashed #cfd9e7;border-radius:18px;padding:50px 24px;text-align:center;color:#6d7d95}.empty-icon{width:58px;height:58px;margin:0 auto 15px;border-radius:18px;background:#eef5ff;color:#3a74e2;display:flex;align-items:center;justify-content:center;font-size:30px}.import-card{padding:19px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.import-card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(23,45,78,.09)}.avatar{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#e9f2ff,#d7e7ff);color:#3172df;display:flex;align-items:center;justify-content:center;font-weight:900}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:8px;color:#687993}.rdm-mobile-overlay{display:none}.print-page{width:190mm;min-height:277mm;margin:0 auto;background:#fff;padding:8mm 7mm;color:#111;font-family:Arial,sans-serif}.print-header{padding-bottom:4mm;border-bottom:1px solid #111}.logo-preview{max-width:75px;max-height:75px;object-fit:contain}.print-table{width:100%;border-collapse:collapse;font-size:10px}.print-table th,.print-table td{border:1px solid #111;padding:4px 5px;vertical-align:top}.print-table th{background:#f4f4f4;text-align:center}.soft-box.print-soft{border:1px solid #111;border-radius:0;background:#fff}.print-sign{margin-top:7mm;display:flex;justify-content:flex-end}.table-sticky{max-height:66vh;overflow:auto}.table-sticky thead th{position:sticky;top:0;z-index:3}.admin-kpi{height:100%;padding:18px;border-radius:16px;color:#fff;position:relative;overflow:hidden}.admin-kpi .num{font-size:27px;font-weight:900}.admin-kpi .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.kpi-blue{background:linear-gradient(135deg,#4a98ff,#2c73de)}.kpi-green{background:linear-gradient(135deg,#32be83,#18a56d)}.kpi-orange{background:linear-gradient(135deg,#ffbe45,#f19a12)}.kpi-red{background:linear-gradient(135deg,#f36e6e,#df4a4a)}.progress-modern{height:8px;border-radius:99px;background:#edf1f7;overflow:hidden}.progress-modern span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#58a0ff,#2369d7)}.status-ok{color:#128257;font-weight:800}.status-no{color:#c44b4b;font-weight:800}
@media(max-width:1100px){.rdm-sidebar{width:240px}.rdm-main{margin-left:240px;width:calc(100% - 240px)}.top-school{display:none}.page-wrap{padding:20px}.page-heading h1{font-size:24px}}
@media(max-width:880px){.rdm-sidebar{transform:translateX(-100%);transition:.2s;width:270px}.rdm-sidebar.open{transform:translateX(0)}.rdm-main{margin-left:0;width:100%}.topbar-toggle{display:flex}.topbar{padding:0 16px}.topbar-title{margin-left:12px}.top-period{display:none}.rdm-mobile-overlay{position:fixed;inset:0;background:rgba(12,22,40,.5);z-index:1050;display:none}.rdm-mobile-overlay.open{display:block}.page-wrap{padding:18px 14px}.page-heading{align-items:flex-start;flex-direction:column}.footer-bar{padding:13px 14px}.topbar-right{gap:8px}.top-avatar{width:32px;height:32px}.brand-panel{padding-top:20px}}
@media(max-width:640px){.card-body{padding:16px}.page-heading h1{font-size:22px}.topbar{height:64px}.topbar-title{font-size:12px}.score-toolbar{align-items:flex-start;flex-direction:column}.topbar-right .top-school{display:none}.table-responsive{border-radius:10px}.print-page{width:190mm;margin:0;padding:5mm}.print-table{font-size:8px}}
@media print{body{background:#fff}.rdm-shell,.topbar,.footer-bar,.no-print,.rdm-sidebar{display:none!important}.rdm-main{margin-left:0;width:100%}.page-wrap{padding:0}.print-page{display:block!important;width:190mm;min-height:277mm;box-shadow:none;margin:0;padding:5mm}.print-table th,.print-table td{border:1px solid #111}.print-page + .print-page{page-break-before:always}}
.print-wrap{background:#e9eef5;padding:20px}.print-head{display:grid;grid-template-columns:70px 1fr 70px;align-items:center;gap:10px;text-align:center}.print-logo{height:65px;display:flex;align-items:center;justify-content:center}.print-logo img{max-width:62px;max-height:62px;object-fit:contain}.print-school{font-size:9px;line-height:1.35}.print-school .p-bold{font-weight:800}.print-school .p-title{font-size:14px;font-weight:800}.print-line{height:1px;background:#111;margin:7px 0 9px}.student-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;font-size:9px;line-height:1.65}.student-grid b{display:inline-block;min-width:88px}.print-title{text-align:center;font-size:14px;font-weight:800;margin:12px 0}.repot-table{width:100%;border-collapse:collapse;font-size:8.3px;line-height:1.28}.repot-table th,.repot-table td{border:1px solid #111;padding:4px 5px;vertical-align:top}.repot-table th{font-weight:800;text-align:center;background:#f4f5f7}.repot-table .group-row td{font-weight:800;background:#fafafa}.repot-table .total-row td{font-weight:800}.center{text-align:center}.page-two h3{font-size:10px;margin:8px 0 4px}.print-box{border:1px solid #111;padding:5px;font-size:8px;line-height:1.4;min-height:33px}.note-box{min-height:41px}.small-table{width:55%}.print-inline{border:1px solid #111;padding:5px;font-size:8px;margin-top:8px}.sign-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;font-size:8px;margin-top:12px}.sign-space{height:48px}.head-sign{text-align:center}.print-footer{display:flex;justify-content:space-between;font-size:7px;margin-top:9px}.print-actions{max-width:190mm;margin:15px auto;display:flex;gap:8px;justify-content:flex-end}
@media print{.print-wrap{background:#fff;padding:0}.print-page{position:relative}.print-actions{display:none!important}.page-two{page-break-before:always}.print-page{min-height:277mm;height:277mm;overflow:hidden}}

/* v7 modern login + settings */
.login-modern{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);background:#f6f9fd}.login-visual{position:relative;min-height:100vh;background-image:var(--school-cover);background-size:cover;background-position:center}.login-visual-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(7,27,51,.86),rgba(18,84,161,.62))}.login-visual-content{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:10vh 8%;color:#fff}.login-school-logo,.login-school-logo-fallback{width:88px;height:88px;border-radius:24px;object-fit:contain;background:rgba(255,255,255,.96);padding:12px;box-shadow:0 18px 50px rgba(0,0,0,.22);margin-bottom:28px}.login-school-logo-fallback{display:flex;align-items:center;justify-content:center;color:#1d5ecb;font-weight:900;font-size:30px}.login-kicker{font-size:12px;font-weight:800;letter-spacing:.12em;opacity:.8}.login-visual-content h2{font-size:42px;line-height:1.08;margin:12px 0 18px;font-weight:900}.login-visual-content p{max-width:560px;font-size:16px;line-height:1.7;color:rgba(255,255,255,.82)}.login-visual-badges{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.login-visual-badges span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);font-size:11px;font-weight:800}.login-panel{display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(180deg,#f8fbff,#eef4fb)}.login-panel-inner{width:min(460px,100%);background:#fff;border:1px solid #e5ecf5;border-radius:26px;padding:34px;box-shadow:0 24px 70px rgba(25,52,90,.12)}.login-mini-logo{width:54px;height:54px;border-radius:16px;object-fit:contain;background:#f4f8ff;padding:8px}.input-icon-wrap{position:relative}.input-leading{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:900;color:#93a3ba;z-index:2}.input-icon-wrap .form-control{padding-left:48px}.login-demo{padding:14px;border-radius:16px;background:#f7faff;border:1px solid #e0eaf7}.login-demo .col-6{display:flex;flex-direction:column;gap:3px}.login-demo span{font-size:10px;color:#8897ab;text-transform:uppercase;letter-spacing:.06em}.login-demo code{font-size:12px;color:#244d8f}.login-footer{margin-top:22px;text-align:center;color:#93a1b4;font-size:12px}.school-image-setting{width:100%;height:170px;object-fit:cover;border-radius:14px;border:1px solid #dbe5f0}.login-mini-preview{position:relative;min-height:300px;border-radius:18px;overflow:hidden;background-image:var(--school-cover);background-size:cover;background-position:center;color:#fff;padding:28px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}.login-mini-preview-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,23,42,.05),rgba(6,31,61,.82))}.login-mini-preview > *{position:relative;z-index:1}.login-mini-preview-logo{width:56px;height:56px;border-radius:16px;background:#fff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-weight:900;margin-bottom:18px;overflow:hidden}.login-mini-preview-logo img{width:100%;height:100%;object-fit:contain;padding:7px}.excel-import-panel{padding:15px;border:1px dashed #c9d9ee;border-radius:14px;background:#f8fbff}.score-desc{color:#65748c;line-height:1.55}.side-link,.side-sub-link{white-space:nowrap}.side-label{overflow:hidden;text-overflow:ellipsis}.side-nav{padding-bottom:14px}.rdm-sidebar{overflow-y:auto;overscroll-behavior:contain}.side-group-head{min-height:44px}.side-sub-link{min-height:38px;display:flex;align-items:center}.upload-panel{background:#f8fbff;border:1px solid #e3ebf5;border-radius:16px;padding:16px}.table-sticky{max-width:100%;overflow:auto}.table-sticky table{min-width:max-content}.print-page{box-shadow:0 8px 30px rgba(16,35,62,.08)}
@media(max-width:900px){.login-modern{grid-template-columns:1fr}.login-visual{min-height:280px}.login-visual-content{padding:42px 28px}.login-visual-content h2{font-size:28px}.login-panel{padding:18px}.login-panel-inner{padding:24px}.login-modern .login-visual-badges{display:none}}

/* v8 refinement: login, score entry, promotion */
.login-v8{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr);background:#eef4fa;overflow:hidden}
.login-v8-visual{position:relative;min-height:100vh;overflow:hidden;background:#0f2745;color:#fff}
.login-v8-cover{position:absolute;inset:0;background-image:var(--login-cover);background-size:cover;background-position:center}
.login-v8-shade{position:absolute;inset:0;background:linear-gradient(135deg,rgba(7,25,47,.92) 0%,rgba(15,61,111,.72) 58%,rgba(13,31,54,.86) 100%)}
.login-v8-visual-content{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:46px clamp(30px,6vw,88px) 34px}
.login-v8-brand{display:flex;align-items:center;gap:14px}
.login-v8-brand img,.login-v8-brand-fallback{width:62px;height:62px;border-radius:18px;background:#fff;padding:9px;object-fit:contain;box-shadow:0 18px 40px rgba(0,0,0,.22)}
.login-v8-brand-fallback{display:flex;align-items:center;justify-content:center;color:#2164cb;font-weight:900;font-size:20px}
.login-v8-brand span{display:block;font-size:10px;letter-spacing:.12em;opacity:.72;font-weight:800}
.login-v8-brand strong{display:block;font-size:17px;margin-top:3px}
.login-v8-copy{max-width:700px;margin-top:10vh}
.login-v8-kicker{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);font-size:10px;letter-spacing:.1em;font-weight:800}
.login-v8-copy h1{font-size:clamp(32px,4.3vw,56px);line-height:1.04;letter-spacing:-.04em;margin:18px 0 16px;font-weight:900}
.login-v8-copy p{max-width:620px;margin:0;color:rgba(255,255,255,.82);font-size:15px;line-height:1.8}
.login-v8-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:760px;margin-top:30px}
.login-v8-features span{padding:14px;border-radius:15px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);font-size:11px;line-height:1.45;color:rgba(255,255,255,.82)}
.login-v8-features b{display:block;font-size:9px;letter-spacing:.12em;color:#b8d7ff;margin-bottom:5px}
.login-v8-photo-label{font-size:10px;color:rgba(255,255,255,.62);max-width:600px}
.login-v8-panel{display:flex;align-items:center;justify-content:center;padding:44px 34px;background:linear-gradient(180deg,#f8fbff 0%,#eef4fa 100%)}
.login-v8-card{width:min(480px,100%);padding:34px;background:#fff;border:1px solid #dfe8f3;border-radius:28px;box-shadow:0 28px 80px rgba(28,52,84,.14)}
.login-v8-card-head{display:flex;align-items:center;gap:14px;margin-bottom:25px}
.login-v8-mini-logo,.login-v8-mini-fallback{width:58px;height:58px;border-radius:18px;object-fit:contain;background:#f3f7fc;padding:8px;border:1px solid #e2eaf4;flex:0 0 auto}
.login-v8-mini-fallback{display:flex;align-items:center;justify-content:center;font-weight:900;font-size:24px;color:#2563eb}
.login-v8-card-head h2{margin:3px 0;font-size:27px;line-height:1.15;font-weight:900;color:#1c2d46}
.login-v8-card-head p{margin:0;color:#8090a6;font-size:12px}
.login-v8-alert{padding:12px 14px;border-radius:12px;margin-bottom:16px;background:#fff3f3;border:1px solid #f3d3d3;color:#a23e3e;font-size:12px}
.login-v8-form{display:grid;gap:16px}
.login-v8-field label{display:block;font-size:12px;font-weight:800;color:#5f7088;margin-bottom:7px}
.login-v8-input-wrap{position:relative}
.login-v8-input-wrap input{width:100%;height:50px;border:1px solid #d9e3ef;border-radius:13px;outline:0;padding:0 52px 0 46px;font-size:14px;color:#21334d;background:#fbfdff;transition:border-color .18s,box-shadow .18s,background .18s}
.login-v8-input-wrap input:focus{border-color:#79a9f9;background:#fff;box-shadow:0 0 0 4px rgba(59,130,246,.1)}
.login-v8-input-icon{position:absolute;z-index:2;left:15px;top:50%;transform:translateY(-50%);color:#8191a9;font-size:12px;font-weight:900}
.login-v8-password-toggle{position:absolute;right:9px;top:50%;transform:translateY(-50%);border:0;background:#eef4ff;color:#2d68d1;border-radius:9px;padding:6px 9px;font-size:10px;font-weight:800;cursor:pointer}
.login-v8-submit{height:52px;border:0;border-radius:14px;background:linear-gradient(135deg,#3e8af7,#2367d8);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 18px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 12px 25px rgba(39,103,214,.22);transition:transform .18s,box-shadow .18s}
.login-v8-submit:hover{transform:translateY(-1px);box-shadow:0 16px 30px rgba(39,103,214,.28)}
.login-v8-submit b{font-size:18px;font-weight:500}
.login-v8-footer{text-align:center;color:#97a4b6;font-size:11px;margin-top:21px}
.promotion-filter-card{overflow:visible}
.promotion-filter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 190px;gap:14px;align-items:end}
.promotion-filter-action{padding-top:2px}
.promotion-list-card .card-body{padding:22px}
.promotion-summary{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:18px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.promotion-summary h3{margin:4px 0 2px;font-size:18px;color:#1f3049}
.promotion-summary p{margin:0;color:#8290a4;font-size:12px}
.promotion-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.promotion-table-wrap{border:1px solid #e4eaf2;border-radius:14px;overflow:auto}
.promotion-table{margin:0;min-width:820px;font-size:12px}
.promotion-table thead th{background:#f5f8fc;color:#64758f;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #e3e9f1}
.promotion-table tbody td{border-color:#e8edf4;padding:11px 10px}
.promotion-table tbody tr:hover{background:#fbfdff}
.promotion-footnote{margin-top:13px;color:#8491a5;font-size:11px}

/* Cleaner score-entry workspace */
.score-entry-shell{display:grid;gap:16px}
.score-filter-card,.score-material-card,.score-table-card{border:1px solid var(--line);background:#fff;border-radius:18px;box-shadow:var(--shadow)}
.score-filter-card .card-body,.score-material-card .card-body,.score-table-card .card-body{padding:18px}
.score-filter-grid{display:grid;grid-template-columns:1.1fr 1.6fr .9fr .9fr auto;gap:12px;align-items:end}
.score-filter-action{display:flex;gap:8px}
.score-filter-action .btn{white-space:nowrap}
.score-headline{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.score-headline-title{display:flex;align-items:center;gap:12px}
.score-headline-icon{width:42px;height:42px;border-radius:13px;background:#eef5ff;color:#2f6fd5;display:flex;align-items:center;justify-content:center;font-weight:900}
.score-headline h3{margin:0;font-size:17px;color:#223451}
.score-headline p{margin:3px 0 0;color:#8090a5;font-size:11px}
.score-toolbar-v8{display:flex;gap:8px;flex-wrap:wrap}
.material-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:15px;align-items:stretch}
.material-field{padding:16px;border-radius:15px;border:1px solid #d9e6f8;background:linear-gradient(180deg,#f6faff,#fbfdff)}
.material-field .form-control{height:48px;font-size:14px;font-weight:700}
.material-meta{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:15px;background:#f7f9fc;border:1px solid #e3eaf3;text-align:center;padding:14px}
.material-meta .small{color:#8492a8;font-size:10px}
.material-meta strong{font-size:28px;color:#223451;line-height:1}
.score-table-card .card-body{padding:0}
.score-table-top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);gap:12px}
.score-table-top .hint{font-size:11px;color:#7d8ca2}
.score-table-wrap{max-height:62vh;overflow:auto}
.score-table-v8{width:100%;min-width:1100px;margin:0;font-size:12px}
.score-table-v8 thead th{position:sticky;top:0;z-index:4;background:#f4f7fb;border-bottom:1px solid #dde5ef;color:#65758e;font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:12px 10px;white-space:nowrap}
.score-table-v8 tbody td{padding:10px;border-color:#e8edf4;vertical-align:middle}
.score-table-v8 tbody tr:nth-child(even){background:#fbfcfe}
.score-table-v8 tbody tr:hover{background:#f6faff}
.score-table-v8 th:first-child,.score-table-v8 td:first-child{width:48px;text-align:center}
.score-table-v8 th:nth-child(2),.score-table-v8 td:nth-child(2){width:105px}
.score-table-v8 th:nth-child(4),.score-table-v8 td:nth-child(4){width:145px}
.score-table-v8 th:nth-child(5),.score-table-v8 td:nth-child(5){width:105px;text-align:center}
.score-table-v8 th:last-child,.score-table-v8 td:last-child{min-width:360px}
.score-number-wrap{position:relative;max-width:120px}
.score-number-wrap .nilai-input{height:42px;text-align:center;font-size:14px;font-weight:900;padding-right:10px}
.score-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}
.score-status-badge.pending{background:#fff7e9;color:#966411}
.score-status-badge.done{background:#ecfbf4;color:#19744d}
.score-desc-text{color:#5f6f87;line-height:1.5;font-size:11px}
.score-savebar{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.score-savebar .save-note{font-size:11px;color:#7e8da2}
.score-savebar .btn{min-width:220px}
@media(max-width:1100px){.login-v8{grid-template-columns:1fr}.login-v8-visual{min-height:430px}.login-v8-visual-content{min-height:430px}.login-v8-copy{margin-top:32px}.login-v8-panel{padding:25px 18px}.score-filter-grid{grid-template-columns:1fr 1fr}.score-filter-action{grid-column:1/-1}}
@media(max-width:860px){.promotion-filter{grid-template-columns:1fr 1fr}.promotion-filter-action{grid-column:1/-1}.promotion-summary{align-items:flex-start;flex-direction:column}.promotion-actions{width:100%;justify-content:flex-start}.login-v8-features{grid-template-columns:1fr}.login-v8-copy h1{font-size:36px}.material-grid{grid-template-columns:1fr}.material-meta{align-items:flex-start;text-align:left;display:block}.score-filter-grid{grid-template-columns:1fr}.score-filter-action{grid-column:auto}.score-savebar{align-items:flex-start;flex-direction:column}.score-savebar .btn{width:100%}}
@media(max-width:560px){.login-v8-visual{min-height:360px}.login-v8-visual-content{min-height:360px;padding:24px 18px}.login-v8-cover{background-position:center}.login-v8-brand img,.login-v8-brand-fallback{width:52px;height:52px}.login-v8-copy{margin-top:24px}.login-v8-copy h1{font-size:30px}.login-v8-copy p{font-size:13px;line-height:1.65}.login-v8-photo-label{display:none}.login-v8-panel{padding:14px}.login-v8-card{padding:22px;border-radius:22px}.login-v8-card-head h2{font-size:23px}}
/* v8 auth layout reset - ensures login is styled even without the dashboard layout */
html,body.rdm-auth-body{margin:0;min-height:100%;background:#eef4fa}
body.rdm-auth-body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.login-v8,.login-v8 *{box-sizing:border-box}
.login-v8{min-height:100vh;width:100%;}

/* v10 academic period switcher */
.period-switcher{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.96);border:1px solid #dfe7f0;border-radius:12px;padding:5px 8px;box-shadow:0 6px 18px rgba(24,48,82,.08)}
.period-switcher select{border:0;background:transparent;outline:0;font-size:11px;font-weight:800;color:#30445f;min-width:175px;cursor:pointer}
.period-switcher-icon{font-size:13px;color:#3e79cf;font-weight:900}
.top-period{display:inline-flex;align-items:center;gap:7px;border:1px solid #dce6f1;background:#f7faff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;color:#43607e}
.period-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3ab77a;box-shadow:0 0 0 4px rgba(58,183,122,.11)}
.period-chip{display:flex;align-items:center;gap:8px;margin:0 14px 14px;padding:9px 10px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(255,255,255,.05);font-size:10px;font-weight:800;color:#dce7f5}
.period-chip .period-edit{margin-left:auto;text-decoration:none;color:#b8cae0;font-size:13px}
.period-chip .period-edit:hover{color:#fff}
#periode,#profil{scroll-margin-top:90px}
@media(max-width:700px){.period-switcher{width:100%;max-width:235px}.period-switcher select{min-width:0;width:100%}.top-school{display:none}}

/* v11 - rapor signature cleanup */
.signatures-v11{position:relative;margin-top:12px;font-size:8px;min-height:170px}
.signature-top{display:grid;grid-template-columns:1fr 1fr;gap:55px}
.signature-block{min-height:84px}
.parent-sign{padding-left:8px}
.teacher-sign{padding-left:8px}
.principal-sign{text-align:center;margin-top:2px}
.principal-space{height:42px}
.signatures-v11 .sign-space{height:46px}
@media(max-width:760px){.signature-top{grid-template-columns:1fr;gap:12px}.principal-sign{margin-top:0}}

/* v13 - rapor biodata and grouped subjects refinement */
.print-head{display:grid;grid-template-columns:78px 1fr 78px;align-items:center;gap:10px;text-align:center}
.print-school{text-align:center;line-height:1.35}
.print-logo{width:58px;height:58px;margin:0 auto;display:flex;align-items:center;justify-content:center}.print-logo img{max-width:100%;max-height:100%;object-fit:contain}
.student-grid-v13{display:grid!important;grid-template-columns:1fr 1fr!important;border:1px solid #111;margin:5mm 0 4mm!important}
.student-grid-v13 .bio-cell{display:grid;grid-template-columns:58px 1fr;align-items:center;min-height:18px;border-bottom:1px solid #111;font-size:9px;line-height:1.25;padding:2px 4px}
.student-grid-v13 .bio-cell:nth-last-child(-n+2){border-bottom:0}.student-grid-v13 .bio-cell:nth-child(odd){border-right:1px solid #111}
.student-grid-v13 .bio-cell b{font-size:8px}.student-grid-v13 .bio-cell span{padding-left:4px}
.print-title{text-align:center;font-weight:800;font-size:15px;line-height:1.25;margin-top:3mm;letter-spacing:.03em}
.print-subtitle{text-align:center;font-weight:800;font-size:11px;margin:1mm 0 3mm;letter-spacing:.02em}
.report-v13-table th,.report-v13-table td{vertical-align:middle!important}.report-v13-table th{text-align:center!important}.report-v13-table td:nth-child(1),.report-v13-table td:nth-child(3){text-align:center!important}.report-v13-table td:nth-child(4){text-align:left!important;line-height:1.35}
.report-v13-table .group-row td{text-align:left!important;font-weight:700;background:#f6f6f6}
/* RDM ASTS v14 - print polish */
.student-bio-plain{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin:5mm 2mm 4mm;font-size:9px;line-height:1.8}
.student-bio-plain .bio-col>div{display:grid;grid-template-columns:82px 1fr;min-height:18px;align-items:center}
.student-bio-plain b{font-size:8px;letter-spacing:.02em}
.student-bio-plain span{white-space:normal}
.print-title-box{width:100%;margin:1mm 0 1.5mm;border:0;text-align:center;padding:0}
.print-title-box .print-title{margin:0;font-size:14px;letter-spacing:.03em;text-align:center}
.print-subtitle{text-align:center;font-size:9px;font-weight:800;letter-spacing:.02em;margin:0 0 3mm;width:100%}
@media print{.student-bio-plain{margin-top:4mm;margin-bottom:3mm}.print-title-box{margin-top:1mm;margin-bottom:1.5mm}}

/* v26 print signature spacing */
.signatures-v26 .signature-block,.signatures-v26 .principal-sign{min-height:170px}
.signatures-v26 .sign-space-lg{height:72px}
.signatures-v26 .signature-nip{margin-top:4px;font-size:10px}
.signatures-v26 .principal-sign-v26{min-height:185px}

/* v29.5 - identitas guru pada dashboard */
.dashboard-guru-profile{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid rgba(23,51,93,.10);background:linear-gradient(135deg,rgba(23,51,93,.05),rgba(255,255,255,.95));border-radius:14px;box-shadow:0 8px 20px rgba(16,32,64,.05);min-width:280px;}
.guru-profile-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;background:#17335d;color:#fff;flex:0 0 auto;}
@media(max-width:768px){.dashboard-guru-profile{min-width:0;width:100%;}.page-heading.align-items-start{align-items:stretch!important;}}

/* v31 - Tema identitas logo Assa'idiyyah: hijau + toska + cyan */
:root{
  --brand-green:#078a46;
  --brand-dark:#006c49;
  --brand-deep:#00563b;
  --brand-teal:#37aebb;
  --brand-cyan:#58c7d2;
  --brand-soft:#eaf8f6;
  --brand-pale:#f3fbfa;
  --brand-ink:#163b35;
  --brand-line:#d9ece8;
  --brand-shadow:0 14px 34px rgba(4,93,72,.09);
  --bg:#f4fbfa;
  --line:#dfece9;
  --text:#183831;
  --muted:#708b84;
}
body{background:linear-gradient(180deg,#f6fcfb 0%,#eef8f6 100%);color:var(--brand-ink)}
.rdm-sidebar{background:linear-gradient(180deg,#045a3d 0%,#006b4b 42%,#0b7f6f 100%);box-shadow:8px 0 25px rgba(1,75,57,.18)}
.brand-panel{border-bottom-color:rgba(255,255,255,.13)}
.brand-logo{box-shadow:0 8px 20px rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.35)}
.brand-logo span{color:var(--brand-green)}
.brand-text small{color:#c8efea}
.period-chip{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.15)}
.period-chip .period-edit{color:#d6fff8}
.period-dot{background:#70d4df;box-shadow:0 0 0 4px rgba(112,212,223,.14)}
.side-section-title{color:#aee2d8}
.side-link,.side-group-head{color:#e8fffb}
.side-link:hover,.side-group-head:hover{background:rgba(255,255,255,.10)}
.side-link.active{background:linear-gradient(90deg,rgba(88,199,210,.42),rgba(4,95,69,.16));box-shadow:inset 3px 0 0 #70d4df}
.side-sub-link{color:#c8ebe5}
.side-sub-link:hover{background:rgba(255,255,255,.07);color:#fff}
.side-sub-link.active{background:rgba(88,199,210,.16);color:#fff}
.sub-dot,.side-sub-link.active .sub-dot{background:#73d7dd}
.side-badge{color:var(--brand-dark)}
.rdm-main{background:transparent}
.topbar{border-bottom-color:var(--brand-line);box-shadow:0 2px 14px rgba(2,74,57,.05)}
.topbar-toggle{background:var(--brand-soft);color:var(--brand-dark)}
.topbar-toggle span{background:var(--brand-dark)}
.crumb{color:#7b978f}.crumb-sep{color:#a6bdb7}
.top-period{background:var(--brand-soft);border-color:#cde6e1;color:var(--brand-dark)}
.period-switcher{border-color:#d3e7e2;box-shadow:0 6px 18px rgba(9,96,74,.08)}
.period-switcher-icon{color:var(--brand-green)}
.period-switcher select{color:var(--brand-ink)}
.top-avatar{background:linear-gradient(135deg,var(--brand-teal),var(--brand-green))}
.page-heading h1{color:var(--brand-ink)}
.eyebrow{color:#5c837a}
.card{border-color:var(--brand-line);box-shadow:var(--brand-shadow)}
.btn-primary{background:linear-gradient(135deg,var(--brand-teal),var(--brand-green));border-color:var(--brand-green);box-shadow:0 8px 18px rgba(0,110,77,.16)}
.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,#2fa2af,#067a3e);border-color:#06733c}
.btn-outline-primary{border-color:#9ed8cf;color:var(--brand-green);background:#fff}
.btn-outline-primary:hover{background:var(--brand-soft);border-color:#73c6bb;color:var(--brand-dark)}
.btn-outline-secondary:hover{background:var(--brand-pale)}
.form-control,.form-select{border-color:#cfe2de;background:#fff}
.form-control:focus,.form-select:focus{border-color:var(--brand-teal);box-shadow:0 0 0 .2rem rgba(55,174,187,.14)}
.form-label{color:#58766f}
.metric-card{border-color:var(--brand-line)}
.metric-card .value{color:var(--brand-dark)}
.class-pill,.badge-soft{background:var(--brand-soft);color:var(--brand-dark)}
.soft-box{border-color:#cfe5e0;background:var(--brand-pale);color:#66817a}
.empty-state{border-color:#c6dfda;background:rgba(255,255,255,.8)}
.empty-icon{background:var(--brand-soft);color:var(--brand-green)}
.import-card:hover{box-shadow:0 16px 30px rgba(0,98,73,.11)}
.avatar{background:linear-gradient(135deg,#e6f8f6,#d8f1ed);color:var(--brand-green)}
.code{background:#f6fbfa;border-color:var(--brand-line);color:#55736b}
.materi-box,.material-field{border-color:#cfe5e0;background:linear-gradient(180deg,#f1fbfa,#fbfefe)}
.material-meta{background:#f5fbfa;border-color:#dbeae7}
.material-meta strong{color:var(--brand-dark)}
.score-table thead th,.score-table-v8 thead th{background:#eef8f6;border-color:#d8e9e5;color:#4f7169}
.score-table tbody tr:hover,.score-table-v8 tbody tr:hover{background:#f2fbf9}
.score-table-v8 tbody tr:nth-child(even){background:#fbfdfc}
.score-headline-icon{background:var(--brand-soft);color:var(--brand-green)}
.score-status-badge.done{background:#e7f8f2;color:#0d7048}
.progress-modern span,.progress-thin span{background:linear-gradient(90deg,var(--brand-teal),var(--brand-green))}
.progress-modern{background:#e8f1ef}
.admin-kpi{box-shadow:0 10px 26px rgba(0,95,71,.10)}
.kpi-blue{background:linear-gradient(135deg,var(--brand-teal),#2196a4)}
.kpi-green{background:linear-gradient(135deg,#18a66b,var(--brand-green))}
.kpi-orange{background:linear-gradient(135deg,#60c8cb,#149b81)}
.kpi-red{background:linear-gradient(135deg,#61b9c5,#0a7c66)}
.stat-card .avatar{background:linear-gradient(135deg,#e7f8f5,#d7efea);color:var(--brand-green)}
.status-ok{color:#087d48!important}
.upload-panel{background:#f3fbfa;border-color:#d4e9e5}
.footer-bar{border-top-color:var(--brand-line);background:rgba(255,255,255,.88);color:#759087}
.login-v8{background:#eaf6f4}
.login-v8-visual{background:linear-gradient(135deg,#034f39,#00725a 48%,#1e9299)}
.login-v8-shade{background:linear-gradient(135deg,rgba(0,71,53,.92),rgba(0,101,83,.72) 55%,rgba(14,120,125,.80) 100%)}
.login-v8-kicker{background:rgba(88,199,210,.17);border-color:rgba(130,228,231,.32)}
.login-v8-features span{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13)}
.login-v8-features b{color:#b8f0ed}
.login-v8-panel{background:linear-gradient(180deg,#f7fcfb 0%,#edf7f5 100%)}
.login-v8-card{border-color:#d7ebe7;box-shadow:0 28px 80px rgba(0,84,64,.15)}
.login-v8-mini-fallback{color:var(--brand-green)}
.login-v8-card-head h2{color:var(--brand-ink)}
.login-v8-input-wrap input:focus{border-color:var(--brand-teal);box-shadow:0 0 0 4px rgba(55,174,187,.10)}
.login-v8-password-toggle{background:var(--brand-soft);color:var(--brand-dark)}
.login-v8-submit{background:linear-gradient(135deg,var(--brand-teal),var(--brand-green));box-shadow:0 12px 25px rgba(5,126,91,.22)}
.login-v8-submit:hover{box-shadow:0 16px 30px rgba(5,126,91,.28)}
.dashboard-guru-profile{border-color:#d2e7e3;background:linear-gradient(135deg,rgba(55,174,187,.08),rgba(255,255,255,.96));box-shadow:0 8px 20px rgba(2,98,76,.06)}
.guru-profile-icon{background:linear-gradient(135deg,var(--brand-teal),var(--brand-green))}
.admin-kpi .lbl{color:rgba(255,255,255,.92)}
.card-header.bg-white{background:#fff!important}
.text-primary{color:var(--brand-green)!important}
.bg-primary{background:var(--brand-green)!important}
.border-primary{border-color:var(--brand-green)!important}
.table thead th{color:#4d6b64}
.table-hover tbody tr:hover{background:#f3fbf9}
.badge.text-bg-success{background-color:var(--brand-green)!important}
.badge.text-bg-warning{background-color:#59bdbb!important;color:#fff!important}

/* MA PDF/browser print preview - mengikuti contoh 3 halaman */
.ma-print-wrap{font-family:Arial,sans-serif;color:#111}
.ma-print-page{width:190mm;min-height:277mm;margin:0 auto;background:#fff;padding:8mm 7mm;position:relative}
.ma-print-page.page-continue{padding-top:10mm}
.ma-head{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:16px;padding-bottom:2.8mm;border-bottom:2px solid #555}
.ma-head-logo{width:48px;height:58px;display:flex;align-items:center;justify-content:center}.ma-head-logo img{max-width:100%;max-height:100%;object-fit:contain}
.ma-head-text{text-align:center;line-height:1.2}.ma-head-text .inst{font-size:11pt;font-weight:800}.ma-head-text .school{font-size:14pt;font-weight:800;font-family:Georgia,serif;margin-top:1px}.ma-head-text .addr{font-size:9pt;font-style:italic;margin-top:2px}
.ma-bio{display:grid;grid-template-columns:1fr 1fr;column-gap:34px;border-top:1px solid #555;border-bottom:2px solid #555;padding:3px 4px;margin-bottom:6mm;font-size:9pt;line-height:1.55}
.ma-bio .bio-col>div{display:grid;grid-template-columns:64px 1fr}.ma-bio b{font-weight:700}
.ma-title{text-align:center;font-size:14pt;font-weight:800;margin:2mm 0 5mm}
.ma-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.2pt;line-height:1.18}
.ma-table th,.ma-table td{border:1px solid #333;padding:4px 5px;vertical-align:top}
.ma-table th{text-align:center;font-weight:800;background:#fff}
.ma-table .no{width:6%}.ma-table .subject{width:31%}.ma-table .score{width:11%}.ma-table .comp{width:52%}
.ma-table .group td{font-weight:800;background:#fff}.ma-table .group td[colspan]{padding:5px}
.ma-table .center{text-align:center;vertical-align:middle}
.ma-table .sum td{font-weight:800}
.ma-footer{position:absolute;left:7mm;right:7mm;bottom:7mm;display:flex;justify-content:space-between;font-size:8pt}
.ma-section-title{font-size:12pt;font-weight:800;margin:0 0 2px}.ma-box{border:1px solid #333;padding:5px 6px;font-size:8pt;line-height:1.25;margin-bottom:3mm;min-height:15mm}.ma-box.parent-response{min-height:16mm}
.ma-table.small{font-size:8pt}.ma-table.small th,.ma-table.small td{padding:4px 5px}
.ma-signatures{display:grid;grid-template-columns:1fr 1fr;column-gap:40px;margin-top:5mm;font-size:8pt}.ma-signatures .signature{text-align:center}.ma-signature-space{height:29mm}.ma-signatures .principal{grid-column:1 / -1;margin:2mm auto 0;width:44%;}
.ma-sign-line{border-bottom:1px solid #222;height:1px;margin:0 28px}.ma-strong{font-weight:800}
.ma-qr-placeholder{display:none}
@media print{
  .ma-print-page{box-shadow:none;margin:0;padding:8mm 7mm;min-height:277mm}
  .ma-print-page.page-continue{page-break-before:always}
}
.ma-section-gap{margin-top:3.2mm}
.ma-promotion{border:1px solid #333;padding:4px 6px;font-size:8pt;line-height:1.25;margin-top:3mm}
@media print{.ma-print-page{page-break-after:always}.ma-print-page:last-child{page-break-after:auto}.ma-print-wrap{margin:0}}
.period-meta-divider{opacity:.45;margin:0 3px}
@media(max-width:700px){.period-meta-divider{display:none}}


/* V31.3 FINAL - BRAND ASSA'IDIYYAH + MOBILE */
:root{--brand-green:#078a46;--brand-dark:#006c49;--brand-deep:#00563b;--brand-teal:#37aebb;--brand-cyan:#58c7d2;--brand-soft:#eaf8f6;--brand-pale:#f3fbfa;--brand-ink:#163b35;--brand-line:#d9ece8;--brand-shadow:0 14px 34px rgba(4,93,72,.09)}
html,body{background:#f3fbfa!important;color:var(--brand-ink)!important}
.rdm-sidebar{background:linear-gradient(180deg,#045a3d 0%,#006b4b 45%,#0b7f6f 100%)!important}
.side-link.active{background:linear-gradient(90deg,rgba(88,199,210,.45),rgba(4,95,69,.18))!important;box-shadow:inset 3px 0 0 #70d4df!important}
.side-sub-link.active{background:rgba(88,199,210,.18)!important;color:#fff!important}
.topbar-toggle{background:#eaf8f6!important;color:#006c49!important}.topbar-toggle span{background:#006c49!important}
.top-period{background:#eaf8f6!important;color:#006c49!important;border-color:#cde6e1!important}.top-avatar{background:linear-gradient(135deg,#37aebb,#078a46)!important}
.btn-primary,.btn-primary:active,.btn-primary:focus{background:linear-gradient(135deg,#37aebb,#078a46)!important;background-color:#078a46!important;border-color:#078a46!important;color:#fff!important}
.btn-outline-primary{color:#078a46!important;border-color:#9ed8cf!important;background:#fff!important}
.text-primary{color:#078a46!important}.bg-primary{background-color:#078a46!important}.border-primary{border-color:#078a46!important}
.form-control:focus,.form-select:focus{border-color:#37aebb!important;box-shadow:0 0 0 .2rem rgba(55,174,187,.14)!important}
.class-pill,.badge-soft{background:#eaf8f6!important;color:#006c49!important}.empty-icon{background:#eaf8f6!important;color:#078a46!important}
.progress-modern span,.progress-thin span{background:linear-gradient(90deg,#58c7d2,#078a46)!important}
.kpi-blue,.kpi-green,.kpi-orange,.kpi-red{background:linear-gradient(135deg,#37aebb,#078a46)!important}
.login-v8{background:#eaf8f6!important}.login-v8-visual{background:linear-gradient(135deg,#034f39,#00725a 48%,#1e9299)!important}
.login-v8-shade{background:linear-gradient(135deg,rgba(0,71,53,.92),rgba(0,101,83,.72) 55%,rgba(14,120,125,.80) 100%)!important}
.login-v8-panel{background:linear-gradient(180deg,#f7fcfb 0%,#edf7f5 100%)!important}.login-v8-card{border-color:#d7ebe7!important}
.login-v8-mini-fallback{color:#078a46!important}.login-v8-input-wrap input:focus{border-color:#37aebb!important;box-shadow:0 0 0 4px rgba(55,174,187,.10)!important}
.login-v8-password-toggle{background:#eaf8f6!important;color:#006c49!important}.login-v8-submit{background:linear-gradient(135deg,#37aebb,#078a46)!important;color:#fff!important}
@media(max-width:880px){
 .rdm-sidebar{transform:translateX(-102%);transition:transform .22s ease;box-shadow:10px 0 35px rgba(1,75,57,.25)!important}.rdm-sidebar.open{transform:translateX(0)}
 .rdm-main{margin-left:0!important;width:100%!important}.topbar{padding:0 14px!important}.topbar-toggle{display:flex!important;flex:0 0 auto}.topbar-right{gap:8px!important}.top-school{display:none!important}.page-wrap{padding:16px 14px!important}.footer-bar{padding:12px 14px!important}
 .rdm-mobile-overlay{display:none;position:fixed;inset:0;background:rgba(2,52,39,.35);z-index:1090}.rdm-mobile-overlay.open{display:block}.topbar{z-index:1080}
}
@media(max-width:700px){
 .login-v8{display:block!important;min-height:100dvh;width:100%;overflow:auto;background:#eaf8f6!important}.login-v8-visual{display:none!important}
 .login-v8-panel{display:flex!important;align-items:flex-start!important;justify-content:center!important;min-height:100dvh!important;padding:18px 14px 28px!important;background:linear-gradient(180deg,#f7fcfb 0%,#edf7f5 100%)!important}
 .login-v8-card{width:100%!important;max-width:430px!important;margin:0 auto!important;padding:24px 20px!important;border-radius:20px!important;border:1px solid #d7ebe7!important;box-shadow:0 16px 45px rgba(0,84,64,.14)!important}
 .login-v8-input-wrap input{height:52px!important;min-height:52px!important;font-size:16px!important;padding-right:68px!important;-webkit-appearance:none}.login-v8-password-toggle{right:8px!important;min-width:52px!important;min-height:38px!important;padding:8px 10px!important;background:#eaf8f6!important;color:#006c49!important}
 .login-v8-submit{width:100%!important;height:54px!important;min-height:54px!important;background:linear-gradient(135deg,#37aebb,#078a46)!important;color:#fff!important}
}
