:root{--navy:#092b4c;--navy2:#0d3b66;--blue:#1677ff;--cyan:#16b8c6;--gold:#f4b740;--bg:#f3f7fb;--line:#dfe8f1;--ink:#142437;--muted:#64748b;--white:#fff;--danger:#b42318;--success:#067647;--shadow:0 14px 40px rgba(15,43,73,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px}button,input,select{font:inherit}.app{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(175deg,var(--navy),#071d34);color:#d9e8f5;padding:22px 14px;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:2px 8px 24px}.brand strong{display:block;color:white;font-size:17px}.brand small{display:block;color:#9fc1dc;margin-top:2px}.mark{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--cyan),var(--blue));color:white;font-weight:900;box-shadow:0 8px 22px #0003}.sidebar nav{display:grid;gap:5px}.sidebar a,.sidebar summary{display:block;color:#cce0f0;text-decoration:none;padding:10px 13px;border-radius:9px;cursor:pointer}.sidebar a:hover,.sidebar summary:hover{background:#ffffff12;color:white}.sidebar details a{padding-left:29px;font-size:13px}.sidebar summary{font-weight:750;list-style:none}.sidebar summary::-webkit-details-marker{display:none}.workspace{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar>div:first-of-type strong{display:block}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:10px;color:var(--blue);margin:0}.user{display:flex;gap:16px;align-items:center;text-align:right}.user span{display:grid}.user small{color:var(--muted)}.user a{color:var(--danger);font-weight:800;text-decoration:none}.menu{display:none;border:0;background:none;font-size:24px}main{padding:28px;max-width:1500px;margin:auto}.pagehead{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.pagehead h1{font-size:28px;margin:4px 0}.hero{background:linear-gradient(115deg,var(--navy2),#075c85);border-radius:20px;padding:28px;color:white;display:grid;grid-template-columns:1fr 360px;gap:24px;box-shadow:var(--shadow)}.hero h2{font-size:27px;max-width:680px;margin:15px 0 8px}.hero p{color:#d6e9f6;max-width:700px;line-height:1.6}.badge{background:#ffffff18;border:1px solid #ffffff30;padding:7px 11px;border-radius:30px;font-size:12px;font-weight:800}.hero-check{background:#fff;color:var(--ink);padding:18px 20px;border-radius:14px}.hero-check ol{padding-left:20px;line-height:1.9;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat,.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 5px 18px #17324b0a}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:30px;margin:8px 0;color:var(--navy2)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1fr 1fr}.panel h2,.panel h3{margin:0 0 14px}.panel p{color:var(--muted);line-height:1.55}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.toolbar h3,.toolbar p{margin:0}.primary,button{border:1px solid var(--line);background:white;color:var(--ink);padding:10px 15px;border-radius:9px;font-weight:750;cursor:pointer}.primary{border-color:var(--blue);background:var(--blue);color:white;box-shadow:0 5px 14px #1677ff33}.primary:disabled{opacity:.45;cursor:not-allowed}.filters{display:flex;gap:12px;align-items:end;padding:18px 0}.filters label{flex:1}.filters input,.filters select{min-width:180px}label{display:grid;gap:7px;font-weight:700;color:#34475b;margin-bottom:15px}input,select{width:100%;padding:11px 12px;border:1px solid #cbd8e5;border-radius:9px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1677ff18}.empty{text-align:center;padding:35px;color:var(--muted);border:1px dashed #cbd8e5;border-radius:12px;background:#f9fbfd}.empty b{display:block;color:var(--ink);font-size:16px}.empty p{margin-bottom:0}.empty-icon{font-size:30px;color:var(--blue)}.login-card{width:min(430px,calc(100% - 32px));margin:7vh auto;background:white;border-radius:20px;padding:30px;box-shadow:var(--shadow);border:1px solid var(--line)}.login-brand{text-align:center;margin-bottom:24px}.login-brand .mark{margin-bottom:12px}.login-brand h2{font-size:26px;margin:7px}.login-brand p{color:var(--muted)}.login-card .primary{width:100%;padding:12px}.alert,.notice{padding:12px 14px;border-radius:10px;margin:12px 0}.danger,.notice.error{background:#fef3f2;color:var(--danger);border:1px solid #fecdca}.notice.success{background:#ecfdf3;color:var(--success);border:1px solid #abefc6}.install{background:linear-gradient(140deg,#eef6ff,#f7fbff)}.installer{max-width:1050px;margin:35px auto;padding:20px}.installer>header{display:flex;align-items:center;gap:15px;margin-bottom:24px}.installer h1{margin:3px 0}.installer header p:last-child{color:var(--muted);margin:3px 0}.install-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.checks{list-style:none;padding:0;margin:0;display:grid;gap:8px}.checks li{display:flex;gap:10px;padding:10px;border-radius:8px;background:var(--bg)}.checks li span{font-weight:900}.checks .ok{color:var(--success)}.checks .bad{color:var(--danger)}.hint{background:#fff8e8;padding:12px;border-radius:9px}.install code{background:#eaf1f7;padding:2px 5px;border-radius:4px}@media(max-width:1000px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;transform:translateX(-100%);transition:.2s;width:270px}.sidebar.open{transform:none}.menu{display:block}.hero{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.grid.two{grid-template-columns:1fr}}@media(max-width:620px){main,.topbar{padding-left:16px;padding-right:16px}.topbar>div:first-of-type{display:none}.user small{display:none}.hero{padding:20px}.hero h2{font-size:22px}.stats,.install-grid{grid-template-columns:1fr}.filters,.toolbar{align-items:stretch;flex-direction:column}.filters input,.filters select{min-width:0}.installer{margin:10px auto;padding:14px}}
.form-row{display:grid;grid-template-columns:120px 1fr;gap:12px}
.table-wrap{overflow:auto;margin-top:6px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f8fafc}tbody tr:hover{background:#f8fbfe}.actions{display:flex;gap:7px}.actions form{margin:0}.danger-button{color:var(--danger);border-color:#fecaca}.pagination{display:flex;justify-content:flex-end;color:var(--muted);padding-top:15px}.modal{width:min(820px,calc(100% - 24px));border:0;border-radius:18px;padding:0;box-shadow:0 25px 80px #071d3466}.modal::backdrop{background:#071d3499;backdrop-filter:blur(3px)}.modal>form{padding:22px}.modal-head,.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.modal-head h3{margin:0}.modal-head button{border:0;font-size:24px}.modal-actions{border-top:1px solid var(--line);padding-top:16px;margin-top:6px;justify-content:flex-end}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid textarea{min-height:90px;resize:vertical;padding:11px;border:1px solid #cbd8e5;border-radius:9px}.notice a{font-weight:800;color:inherit}@media(max-width:620px){.form-grid,.form-row{grid-template-columns:1fr}}
.section-pad{padding:20px 0}.span-2{grid-column:span 2}
.button{display:inline-block;border:1px solid var(--line);background:white;color:var(--ink);padding:10px 15px;border-radius:9px;font-weight:750;text-decoration:none}.order-input{width:74px;padding:7px}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:8px}.check input{width:auto}.form-grid fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 15px;padding:14px}.form-grid legend{font-weight:800;padding:0 7px}
.grade-table table{min-width:1050px}.grade-table th{position:sticky;top:0;z-index:1}.grade-input{min-width:78px;padding:8px}.grade-table textarea{min-width:280px;min-height:68px;padding:8px;border:1px solid #cbd8e5;border-radius:8px;resize:vertical}.final-score{font-weight:900;color:var(--navy2)}.grade-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding-top:18px}.badge-lock{padding:8px 12px;border-radius:20px;background:#ecfdf3;color:var(--success);font-weight:800}
.progress{width:130px;height:8px;background:#e7eef5;border-radius:8px;overflow:hidden;display:inline-block;margin-right:7px}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue))}.status{display:inline-block;padding:5px 8px;border-radius:20px;font-size:11px;font-weight:900}.status.success{background:#ecfdf3;color:var(--success)}.status.warning{background:#fffaeb;color:#b54708}.status.danger{background:#fef3f2;color:var(--danger)}
.password-panel{max-width:560px}.password-panel form{margin-top:20px}
.template-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.template-pair{display:inline-flex;gap:3px}.template-pair .button-link{border-radius:9px 0 0 9px}.template-pair .button-link.secondary{border-radius:0 9px 9px 0;background:#f8fafc;color:#475569}
.button-link{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid #cbd5e1;border-radius:9px;color:#0f4c81;background:#fff;text-decoration:none;font-size:.88rem;font-weight:750}
.button-link:hover{background:#eff6ff;border-color:#93c5fd}.row-error{background:#fff1f2}.row-warning{background:#fffbea}button:disabled{opacity:.48;cursor:not-allowed}
.report-actions{display:flex;justify-content:flex-end;gap:10px;margin:16px 0}.report-actions form{margin:0}.report-sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:16mm 15mm;color:#111;box-shadow:0 8px 30px #0f172a1a;font-family:Arial,sans-serif}.report-head{display:flex;align-items:center;justify-content:center;gap:16px;text-align:center;border-bottom:3px double #111;padding-bottom:10px}.report-head img{width:72px;height:72px;object-fit:contain}.report-head h2,.report-head h3,.report-head p{margin:3px 0}.report-head h2{font-size:17px}.report-head h3{font-size:16px}.report-head p{font-size:11px;color:#111}.report-identity{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:14px 0}.report-identity dl{display:grid;grid-template-columns:125px 1fr;margin:0;font-size:11px}.report-identity dt,.report-identity dd{margin:0;padding:2px}.report-sheet h4{margin:13px 0 6px;font-size:12px}.report-table{min-width:0;font-size:10.5px}.report-table th,.report-table td{border:1px solid #222;padding:6px}.report-table th{color:#111;background:#f2f2f2;text-align:center}.report-table .num{text-align:center;font-weight:700;width:70px}.report-table.compact td:first-child{width:150px}.report-bottom{display:grid;grid-template-columns:1fr 1.5fr;gap:14px}.report-note{border:1px solid #222;min-height:75px;padding:8px;font-size:11px}.signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:center;margin-top:22px;font-size:11px}.signatures div{display:flex;flex-direction:column;min-height:115px}.signatures strong{margin-top:auto}.signatures small{display:block;margin-top:4px}.report-sheet footer{display:flex;justify-content:space-between;border-top:1px solid #777;margin-top:16px;padding-top:6px;font-size:9px}
@media(max-width:900px){.report-sheet{width:100%;min-height:0;padding:18px}.report-identity,.report-bottom{grid-template-columns:1fr}.signatures{grid-template-columns:1fr}.signatures div{min-height:95px}}
@media print{@page{size:A4 portrait;margin:0}.sidebar,.topbar,.pagehead,.no-print{display:none!important}.app,.workspace,main{display:block!important;margin:0!important;padding:0!important;max-width:none!important;background:#fff}.report-sheet{width:210mm;min-height:297mm;margin:0;box-shadow:none;padding:13mm 14mm;page-break-after:always}.report-table{page-break-inside:auto}.report-table tr{page-break-inside:avoid}.report-head{break-inside:avoid}}

/* Authentication layout: must not inherit the 270px application sidebar column. */
.auth-app{display:block;min-height:100vh;background:linear-gradient(135deg,#eef6ff 0%,#f8fbff 48%,#e8f4fa 100%)}
.auth-app .workspace{min-height:100vh}.auth-main{padding:0;max-width:none;min-height:100vh}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(430px,.92fr)}
.login-intro{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(42px,7vw,96px);color:#fff;background:linear-gradient(145deg,#082d50 0%,#0a527d 58%,#087f9d 100%)}
.login-intro:before,.login-intro:after{content:"";position:absolute;border-radius:50%;background:#fff;opacity:.07}.login-intro:before{width:420px;height:420px;right:-170px;top:-130px}.login-intro:after{width:300px;height:300px;left:-110px;bottom:-130px}
.login-intro>div,.login-intro>small{position:relative;z-index:1}.login-kicker{display:inline-flex;padding:8px 12px;border:1px solid #ffffff42;border-radius:999px;background:#ffffff12;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.login-intro h1{max-width:650px;margin:24px 0 16px;font-size:clamp(36px,4.5vw,66px);line-height:1.08;letter-spacing:-.035em}.login-intro p{max-width:610px;color:#d9edf8;font-size:17px;line-height:1.75}.login-intro ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:18px 0 0;margin:0}.login-intro li{padding:9px 13px;border-radius:10px;background:#ffffff12;border:1px solid #ffffff24;font-weight:750}.login-intro small{color:#bcd9e9;font-weight:700;letter-spacing:.04em}
.login-area{display:grid;place-items:center;padding:40px}.login-area .login-card{width:min(460px,100%);margin:0;background:#fff;border-radius:24px;padding:clamp(28px,4vw,44px);box-shadow:0 24px 70px rgba(15,43,73,.15);border:1px solid var(--line)}
.login-area .login-brand{display:flex;align-items:flex-start;gap:16px;text-align:left;margin-bottom:28px}.login-area .login-brand .mark{flex:0 0 auto;margin:0}.login-area .login-brand h2{font-size:28px;margin:3px 0 5px;letter-spacing:-.02em}.login-area .login-brand p{color:var(--muted);margin:0;line-height:1.55}.login-area .login-brand .eyebrow{margin-bottom:2px}
.login-area label{margin-bottom:18px}.password-field{position:relative}.password-field input{padding-right:76px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;padding:7px 9px;background:transparent;color:var(--blue);font-size:12px;box-shadow:none}.login-submit{width:100%;padding:13px;margin-top:2px;font-size:15px}.login-help{text-align:center;color:var(--muted);font-size:12px;margin:18px 0 0}
@media(max-width:820px){.login-shell{grid-template-columns:1fr}.login-intro{min-height:290px;padding:36px 28px}.login-intro h1{font-size:36px;margin:18px 0 10px}.login-intro p{font-size:15px;margin:0}.login-intro small{display:none}.login-area{padding:28px 18px 42px}.login-area .login-card{margin-top:-62px;position:relative;z-index:2}}
@media(max-width:480px){.login-intro{min-height:260px;padding:28px 20px}.login-intro h1{font-size:29px}.login-intro ul{display:none}.login-area .login-card{padding:25px 20px;border-radius:18px}.login-area .login-brand{gap:12px}.login-area .login-brand h2{font-size:24px}}
.connection-badge,.status-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850}.connection-badge.ready,.status-pill.ok{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.connection-badge.off,.status-pill.bad{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.switch-row{display:flex;grid-column:1/-1;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfd}.switch-row input{width:auto;margin:0}.inline-test{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.inline-test button:disabled{opacity:.45;cursor:not-allowed}.fallback-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.fallback-actions a:not(.primary),.source-grid a:not(.primary){display:inline-flex;padding:10px 15px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--ink);font-weight:750}.checks.compact{margin-top:18px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:20px}.source-grid article{border:1px solid var(--line);border-radius:14px;padding:20px;background:#f9fbfd}.source-grid h3{margin:13px 0 7px}.source-grid p{min-height:68px}.source-icon{display:inline-grid;place-items:center;min-width:46px;height:42px;padding:0 10px;border-radius:11px;background:#eaf3ff;color:var(--blue);font-size:12px;font-weight:900}
@media(max-width:900px){.dapodik-grid,.source-grid{grid-template-columns:1fr}.source-grid p{min-height:0}}

/* =========================================================
   NTT-RAPORT MODERN PROFESSIONAL UI V2
   Lightweight: system fonts + inline SVG, no external assets.
   ========================================================= */
:root{
 --navy:#073563;--navy-deep:#05294f;--navy-soft:#0a4378;--blue:#1677ff;--blue-2:#2397f3;
 --sky:#eaf4ff;--bg:#f5f9fd;--surface:#fff;--line:#e3ebf4;--ink:#102544;--muted:#7186a3;
 --success:#14b86f;--purple:#7c4dff;--orange:#ff8a00;--shadow-sm:0 6px 20px rgba(24,61,104,.06);
 --shadow-md:0 14px 35px rgba(24,61,104,.09);--radius:16px;
}
body{background:linear-gradient(180deg,#f7fbff 0,#f4f8fc 100%);color:var(--ink);font-size:13px;overflow-x:hidden}
.ui-icon{width:20px;height:20px;display:block;flex:0 0 auto}
.app:not(.auth-app){grid-template-columns:248px minmax(0,1fr)}
.workspace{min-width:0;min-height:100vh}

/* Sidebar */
.sidebar{width:248px;padding:18px 12px 14px;background:linear-gradient(180deg,#073765 0%,#052b52 55%,#042442 100%);border-right:1px solid rgba(255,255,255,.06);box-shadow:12px 0 32px rgba(7,39,72,.08);scrollbar-width:thin;scrollbar-color:#ffffff2a transparent}
.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:10px}
.brand{position:sticky;top:-18px;z-index:3;margin:-18px -12px 8px;padding:20px 16px 16px;background:linear-gradient(180deg,#073765 82%,rgba(7,55,101,.92));gap:11px}
.brand .mark{width:42px;height:42px;border-radius:12px;box-shadow:none;background:linear-gradient(145deg,#28b6f6,#0b77ef);border:1px solid rgba(255,255,255,.22)}
.brand .mark .ui-icon{width:22px;height:22px}
.brand-copy{min-width:0;flex:1}.brand strong{font-size:15px;letter-spacing:.01em}.brand small{font-size:10.5px;color:#abc8e3;margin-top:2px}
.sidebar-collapse{width:28px;height:28px;padding:0;border:1px solid #ffffff20;border-radius:50%;display:grid;place-items:center;background:#ffffff10;color:#dcecff;font-size:22px;line-height:1;box-shadow:none}
.sidebar-collapse:hover{background:#ffffff1d}
.nav-scroll{display:block}.sidebar nav{gap:0}
.nav-item{display:flex!important;align-items:center;gap:12px;min-height:42px;margin:2px 0;padding:10px 12px!important;border-radius:10px!important;color:#d6e7f7!important;font-weight:580;transition:background .16s ease,color .16s ease,transform .16s ease;position:relative}
.nav-item .ui-icon{width:18px;height:18px;color:#c9dff2;stroke-width:1.8}.nav-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-item:hover{background:rgba(255,255,255,.075)!important;color:#fff!important;transform:translateX(1px)}
.nav-item.active{background:linear-gradient(90deg,#187cff,#1e8cff)!important;color:#fff!important;box-shadow:0 7px 20px rgba(0,105,255,.26)}
.nav-item.active .ui-icon{color:#fff}.nav-item.active:before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:0 4px 4px 0;background:#fff;opacity:.9}
.nav-section{margin-top:17px}.nav-section-title{padding:0 12px 7px;color:#86a9c9;font-size:10.5px;font-weight:800;letter-spacing:.025em;text-transform:none}
.nav-section+.nav-section{border-top:1px solid rgba(255,255,255,.07);padding-top:15px}
.sidebar-foot{display:flex;align-items:center;gap:10px;margin-top:18px;padding:13px 12px 4px;border-top:1px solid rgba(255,255,255,.08);color:#bad1e6}.sidebar-foot-dot{width:8px;height:8px;border-radius:50%;background:#19cc7b;box-shadow:0 0 0 4px rgba(25,204,123,.12)}.sidebar-foot b,.sidebar-foot small{display:block}.sidebar-foot b{font-size:10px;color:#eaf6ff}.sidebar-foot small{font-size:9.5px;margin-top:2px}

/* Topbar */
.topbar{height:72px;padding:0 24px;background:rgba(255,255,255,.96);border-bottom:1px solid #e6edf5;box-shadow:0 3px 14px rgba(30,65,105,.035);backdrop-filter:saturate(130%) blur(7px)}
.topbar-brand{display:flex!important;align-items:center;gap:12px}.topbar-brand>div{display:grid}.topbar-brand strong{color:#0d5bb8;font-size:14px;line-height:1.25}.topbar-brand small{color:#8497ae;font-size:10.5px;margin-top:2px}
.topbar-actions{display:flex;align-items:center;gap:11px;margin-left:auto}.menu{width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;place-items:center}.menu .ui-icon{width:21px;height:21px}
.global-search{position:relative;width:min(315px,24vw);height:40px;border:1px solid #e2eaf4;background:#f9fbfe;border-radius:11px;display:flex;align-items:center;gap:9px;padding:0 9px 0 12px;color:#7085a0;transition:.18s ease}.global-search:focus-within{border-color:#8bc2ff;background:#fff;box-shadow:0 0 0 3px #147cff12}.global-search>.ui-icon{width:17px;height:17px}.global-search input{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;min-width:0;font-size:11.5px}.global-search kbd{white-space:nowrap;border:1px solid #dfe8f3;background:#fff;border-radius:7px;padding:4px 7px;color:#8294aa;font:600 9px ui-sans-serif,system-ui}
.search-popover{display:none;position:absolute;top:47px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px rgba(22,52,90,.16);padding:6px;z-index:40}.search-popover.open{display:block}.search-popover a{display:flex;padding:9px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:11.5px}.search-popover a:hover,.search-popover a.focused{background:#edf6ff;color:#0967cf}.search-empty{padding:11px;color:var(--muted);font-size:11px}
.year-chip{min-height:40px;min-width:124px;padding:7px 11px;border:1px solid #dce8f5;border-radius:11px;background:#f5f9ff;display:grid;align-content:center}.year-chip span{font-size:8px;font-weight:900;letter-spacing:.08em;color:#4b79ad}.year-chip b{font-size:10px;color:#183c65;margin-top:1px;white-space:nowrap}
.icon-button{width:38px;height:38px;padding:0;display:grid;place-items:center;border:0;background:transparent;box-shadow:none;color:#194a7c;position:relative}.icon-button .ui-icon{width:20px;height:20px}.notification i{position:absolute;right:7px;top:5px;width:7px;height:7px;border-radius:50%;background:#ff3434;border:2px solid #fff}
.user{gap:9px;text-align:left}.avatar{width:38px;height:38px;border-radius:50%;display:grid!important;place-items:center;background:linear-gradient(145deg,#0879f6,#146ee0);color:#fff;font-size:10px;font-weight:900}.user-copy{display:grid!important;min-width:140px}.user-copy b{font-size:10.5px;color:#163654}.user-copy small{font-size:9.5px;color:#8394aa;margin-top:2px}.logout{display:inline-flex;align-items:center;gap:5px;padding:8px 10px!important;border:1px solid #ffcdc9;border-radius:9px;color:#cf332d!important;font-size:10px;background:#fff7f6}.logout .ui-icon{width:14px;height:14px}.logout:hover{background:#fff0ef}

/* Main shell */
main{max-width:1380px;padding:24px 28px 18px}.pagehead{margin-bottom:20px;align-items:start}.pagehead h1{font-size:30px;line-height:1.1;letter-spacing:-.035em;color:#102642;margin:4px 0 6px}.pagehead .eyebrow{color:#5d7796;font-size:9.5px;letter-spacing:.12em}.page-subtitle{margin:0;color:#7186a3;font-size:12px;line-height:1.55}
.panel{border-color:#e3ebf4;border-radius:15px;box-shadow:var(--shadow-sm);padding:18px}
.toolbar{gap:16px}.toolbar p{font-size:12px}.primary,button,.button,.button-link{border-radius:9px}

/* Dashboard */
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(310px,.95fr);gap:18px;align-items:stretch}
.dashboard-hero{min-height:255px;position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(120deg,#084b91 0%,#0a68c3 58%,#1da8eb 100%);color:#fff;box-shadow:0 16px 38px rgba(13,94,171,.18);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)}
.dashboard-hero:after{content:"";position:absolute;inset:auto -120px -190px auto;width:390px;height:390px;border-radius:50%;background:rgba(255,255,255,.055)}
.hero-content{padding:28px 18px 24px 31px;position:relative;z-index:2}.badge-live{display:inline-flex;align-items:center;gap:6px;background:rgba(5,67,125,.28);border:1px solid rgba(255,255,255,.22);padding:6px 10px;font-size:9.5px}.badge-live i{width:7px;height:7px;border-radius:50%;background:#23dd7f;box-shadow:0 0 0 4px rgba(35,221,127,.15)}.badge-live .ui-icon{width:13px;height:13px}.dashboard-hero h2{font-size:26px;line-height:1.18;letter-spacing:-.025em;margin:18px 0 10px;max-width:570px}.dashboard-hero p{font-size:11.5px;line-height:1.7;color:#e2f1ff;max-width:600px;margin:0 0 20px}.hero-action{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;background:#fff;color:#173b65;text-decoration:none;border-radius:10px;font-size:11px;font-weight:850;box-shadow:0 8px 20px rgba(0,46,96,.17)}.round-arrow{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#197cff;color:#fff}.round-arrow .ui-icon{width:14px;height:14px}
.hero-art{position:relative;min-width:0;z-index:1}.art-orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.12)}.orb-a{width:155px;height:155px;left:18px;top:38px}.orb-b{width:90px;height:90px;right:6px;bottom:25px;background:rgba(15,86,158,.18)}.report-paper{position:absolute;left:52px;top:53px;width:114px;height:143px;background:linear-gradient(145deg,#fff,#e6f2ff);border-radius:7px;transform:rotate(3deg);box-shadow:0 16px 32px rgba(1,45,93,.24);color:#0e5dae;padding:24px 16px 12px}.report-paper:before{content:"";position:absolute;inset:8px -9px -8px 8px;background:rgba(255,255,255,.62);border-radius:7px;z-index:-1;transform:rotate(-5deg)}.report-cap{text-align:center;font-size:18px;margin-bottom:3px}.report-paper>b{display:block;text-align:center;font-size:12px;margin-bottom:12px}.report-paper span{color:#1bb977;font-weight:900;display:inline-block;width:17px}.report-paper i{display:inline-block;width:53px;height:4px;border-radius:5px;background:#c9def5;vertical-align:middle}.mini-chart{position:absolute;left:148px;top:144px;width:64px;height:54px;padding:10px;display:flex;align-items:end;gap:5px;background:rgba(255,255,255,.9);border-radius:9px;box-shadow:0 8px 18px rgba(0,42,89,.14)}.mini-chart i{width:8px;border-radius:3px 3px 0 0;background:linear-gradient(#8767ff,#2b88ff)}.hero-note{position:absolute;right:9px;top:71px;color:#fff;font-size:14px;line-height:1.3;font-style:italic;transform:rotate(-3deg);text-shadow:0 2px 6px rgba(0,52,109,.15)}.hero-note b{font-size:10px;font-weight:600}
.semester-card{background:#fff;border:1px solid #e1eaf4;border-radius:17px;padding:17px;box-shadow:var(--shadow-sm)}.card-title{display:flex;align-items:center;gap:9px;margin-bottom:13px}.title-icon{width:31px;height:31px;border-radius:9px;background:#edf6ff;color:#1578e8;display:grid;place-items:center}.title-icon .ui-icon{width:17px;height:17px}.card-title h3{font-size:14px;margin:0;flex:1}.card-title>a{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:8px;background:#eef6ff;color:#1476e5;text-decoration:none;font-size:9.5px;font-weight:800}.semester-steps{display:grid;gap:7px}.semester-steps>a{min-height:42px;display:grid;grid-template-columns:27px 1fr 12px;align-items:center;gap:9px;padding:6px 10px;border:1px solid #e5edf6;background:#f9fbfe;border-radius:10px;text-decoration:none;color:#193752;transition:.15s ease}.semester-steps>a:hover{border-color:#bdd9f8;background:#f2f8ff;transform:translateX(1px)}.semester-steps span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e7eff8;color:#54708d;font-size:9px;font-weight:900}.semester-steps>a:first-child span{background:#1677f2;color:#fff}.semester-steps b{font-size:10.5px}.semester-steps i{font-style:normal;color:#91a6bd;font-size:16px}
.stats{gap:14px;margin:16px 0}.stat{min-height:92px;display:grid;grid-template-columns:51px 1fr 18px;align-items:center;gap:10px;padding:13px 15px!important;text-decoration:none;color:var(--ink);border-radius:14px;transition:.18s ease}.stat:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(26,65,105,.10);border-color:#cdddec}.stat-icon{width:48px;height:48px;border-radius:12px;display:grid!important;place-items:center}.stat-icon .ui-icon{width:24px;height:24px}.stat-copy{display:grid!important;align-content:center}.stat-copy b{font-size:10px;color:#35516f}.stat-copy strong{font-size:22px!important;line-height:1;margin:5px 0!important;color:#102b49}.stat-copy small{font-size:9.5px}.stat-arrow{font-size:21px;color:#6f8baa}.stat-blue .stat-icon{background:#e7f2ff;color:#1478f4}.stat-green .stat-icon{background:#e5f8ee;color:#0db568}.stat-purple .stat-icon{background:#f0e9ff;color:#7c4dff}.stat-orange .stat-icon{background:#fff0df;color:#f57c00}
.dashboard-lower{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-panel{padding:14px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.panel-title-row h3{display:flex;align-items:center;gap:9px;font-size:13.5px;margin:0}.panel-title-icon{color:#1677f2}.panel-title-icon .ui-icon{width:18px;height:18px}.soft-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #e0e9f3;background:#fff;border-radius:9px;padding:7px 10px;color:#42617f;text-decoration:none;font-size:9.5px;font-weight:750}.soft-button .ui-icon{width:13px;height:13px}.modern-empty{min-height:170px;padding:22px 14px;border-color:#d8e5f2;background:#fbfdff;display:grid;place-items:center;align-content:center}.empty-orb{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#eef3f9;color:#607b99;margin-bottom:8px}.empty-orb .ui-icon{width:22px;height:22px}.modern-empty b{font-size:11.5px}.modern-empty p{font-size:9.8px;margin:5px 0 11px!important}.small-primary{font-size:9.5px;padding:7px 10px;text-decoration:none;border-radius:8px}.ghost-primary{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:8px;background:#edf6ff;color:#1674df;text-decoration:none;font-size:9.5px;font-weight:800}.ghost-primary .ui-icon{width:13px;height:13px}.dashboard-footer{display:flex;justify-content:space-between;gap:20px;padding:16px 2px 3px;color:#8092a8;font-size:9.5px}

/* Global tables/forms refinement */
.table-wrap{border:1px solid #e5edf5;border-radius:12px;overflow:auto;background:#fff}th{background:#f7faff;color:#60758e}th,td{padding:11px 12px}tbody tr:hover{background:#f8fbff}.filters{padding:14px 0}.filters label,label{font-size:11.5px}.filters input,.filters select,input,select{border-color:#d8e3ee;border-radius:9px;background:#fff}.empty{border-color:#d8e4ef;background:#fbfdff}.toolbar h3{font-size:15px}

/* Collapsed desktop sidebar */
body.sidebar-collapsed .app:not(.auth-app){grid-template-columns:78px minmax(0,1fr)}body.sidebar-collapsed .sidebar{width:78px;padding-left:9px;padding-right:9px}body.sidebar-collapsed .brand{padding-left:17px;padding-right:9px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-item span,body.sidebar-collapsed .nav-section-title,body.sidebar-collapsed .sidebar-foot div{display:none}body.sidebar-collapsed .brand .mark{width:42px;flex:0 0 42px}body.sidebar-collapsed .sidebar-collapse{position:absolute;right:5px;top:29px;width:22px;height:22px;font-size:16px}body.sidebar-collapsed .nav-item{justify-content:center;padding:11px!important}body.sidebar-collapsed .nav-item .ui-icon{width:19px;height:19px}body.sidebar-collapsed .nav-section{margin-top:10px}body.sidebar-collapsed .nav-section+.nav-section{padding-top:9px}body.sidebar-collapsed .sidebar-foot{justify-content:center}

@media(max-width:1180px){.global-search{width:220px}.user-copy{display:none!important}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(285px,.9fr)}.hero-note{display:none}.dashboard-hero{grid-template-columns:1.35fr .65fr}.report-paper{left:35px}.mini-chart{left:125px}}
@media(max-width:1000px){.app:not(.auth-app){grid-template-columns:1fr}.sidebar{position:fixed;width:248px;transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}body.sidebar-collapsed .app:not(.auth-app){grid-template-columns:1fr}body.sidebar-collapsed .sidebar{width:248px;padding:18px 12px 14px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-item span,body.sidebar-collapsed .nav-section-title,body.sidebar-collapsed .sidebar-foot div{display:block}body.sidebar-collapsed .nav-item{justify-content:flex-start;padding:10px 12px!important}.sidebar-collapse{display:none}.menu{display:grid}.topbar-brand>div{display:none}.global-search{width:min(330px,35vw)}.dashboard-grid{grid-template-columns:1fr}.dashboard-hero{min-height:245px}.semester-card{min-height:0}.dashboard-lower{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.topbar{padding:0 14px;height:64px}.global-search{display:none}.year-chip{display:none}.logout span{display:none}.logout{padding:8px!important}.user{gap:5px}.pagehead h1{font-size:26px}main{padding:19px 15px}.dashboard-hero{grid-template-columns:1fr;min-height:340px}.hero-content{padding:24px 22px}.dashboard-hero h2{font-size:24px}.hero-art{position:absolute;right:5px;bottom:0;width:220px;height:180px;opacity:.55}.report-paper{left:35px;top:20px}.mini-chart{left:125px;top:108px}.stats{grid-template-columns:1fr 1fr}.dashboard-footer{flex-direction:column;gap:5px}.page-subtitle{font-size:11px}}
@media(max-width:470px){.stats{grid-template-columns:1fr}.dashboard-hero{min-height:365px}.hero-art{opacity:.32}.semester-card{padding:14px}.topbar .avatar{width:34px;height:34px}.notification{display:none}.dashboard-footer span:last-child{display:none}}
@media print{.dashboard-footer{display:none}}

/* Dapodik Enterprise Sync */
.dapodik-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#0b3a6f,#0b67b2);color:#fff;overflow:hidden;position:relative}.dapodik-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-80px;top:-120px;background:rgba(255,255,255,.08)}.dapodik-hero h2{margin:.2rem 0 .35rem;font-size:1.55rem}.dapodik-hero p{margin:0;color:#d8eafe;max-width:760px}.dapodik-hero .eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#9ed3ff}.dapodik-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.dapodik-flow>div{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--border,#dbe6f2);border-radius:12px;background:#f8fbff;font-weight:700;color:#24435f}.dapodik-flow b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:9px;background:#1877f2;color:#fff}.dapodik-flow.compact{min-width:480px;margin:0;position:relative;z-index:1}.dapodik-flow.compact>div{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff;padding:9px}.dapodik-flow.compact b{background:#fff;color:#1768c4}.password-field{display:grid;grid-template-columns:1fr auto;gap:8px}.password-field button{white-space:nowrap}.advanced-ws{border:1px solid #dbe6f2;border-radius:13px;padding:11px 13px;background:#f8fbff}.advanced-ws summary{cursor:pointer;font-weight:800;color:#24435f}.advanced-ws[open] summary{margin-bottom:12px}.sync-actions{display:flex;flex-direction:column;gap:12px;margin-top:18px}.sync-actions form{margin:0}.sync-actions button{width:100%}.semester-preview-form{padding-top:8px;border-top:1px solid #e7eef6}.semester-preview-form label{display:block;margin-bottom:10px}.safe-sync-note{margin-top:16px;padding:14px;border-radius:12px;background:#effaf4;border:1px solid #ccebd9;color:#1d5b3a}.safe-sync-note p{margin:.25rem 0 0}.preview-counts,.sync-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.preview-count,.sync-stat{padding:15px;border:1px solid #e0e9f3;border-radius:13px;background:#fbfdff}.preview-count span,.sync-stat span{display:block;color:#5d748b;font-size:.78rem;font-weight:700}.preview-count strong,.sync-stat strong{display:block;font-size:1.45rem;margin-top:5px;color:#102a43}.sync-stat small{color:#7b8fa3}.sync-preview .modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.sync-preview .modal-actions form{margin:0}
@media(max-width:1100px){.dapodik-hero{align-items:flex-start;flex-direction:column}.dapodik-flow.compact{min-width:0;width:100%}.preview-counts,.sync-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.dapodik-flow,.dapodik-flow.compact{grid-template-columns:1fr}.preview-counts,.sync-stats{grid-template-columns:1fr}.sync-preview .modal-actions{flex-direction:column}.sync-preview .modal-actions button{width:100%}}

/* V1.4.2 Reporting: multi-page rapor + leger Excel */
.report-book{display:grid;gap:24px}.report-page{break-after:page;page-break-after:always}.report-page:last-child{break-after:auto;page-break-after:auto}
.report-cover{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;padding-top:30mm;background:#fff}
.cover-brand img{width:105px;height:105px;object-fit:contain}.cover-logo-placeholder{width:96px;height:96px;border:2px solid #0d5bb8;border-radius:20px;display:grid;place-items:center;font-size:30px;font-weight:900;color:#0d5bb8}
.cover-title{margin-top:25mm}.cover-title p{font-size:18px;letter-spacing:.08em;margin:0 0 7px;font-weight:700}.cover-title h1{font-size:26px;letter-spacing:.04em;margin:0 0 8px}.cover-title h2{font-size:22px;margin:0;color:#1f2937}
.cover-student{margin-top:24mm;width:78%;border:1px solid #111;padding:15px 18px;display:grid;grid-template-columns:155px 1fr;text-align:left;gap:8px 12px;font-size:13px}.cover-student strong{font-size:14px}
.cover-school{margin-top:auto;padding-bottom:12mm}.cover-school h3{font-size:18px;margin:0 0 8px}.cover-school p{margin:3px 0;font-size:12px}
.report-head.simple{justify-content:flex-start;text-align:left}.bio-table{width:100%;border-collapse:collapse;margin-top:22px;font-size:11.5px}.bio-table td{padding:5px 7px;vertical-align:top}.bio-table td:first-child{width:25px;text-align:right}.bio-table td:nth-child(2){width:180px}.bio-table td:nth-child(3){width:8px}.bio-note{margin-top:22px;border-top:1px solid #bbb;padding-top:8px;font-size:9.5px;color:#555}
.attendance-note{border:1px solid #222;padding:8px;margin-top:8px;min-height:45px;font-size:10.5px}.ledger-title{text-align:center;margin-bottom:12px}.ledger-title h2,.ledger-title p{margin:3px}.ledger-table{white-space:nowrap}.ledger-table .student-name{min-width:180px;white-space:normal}.ledger-legend{font-size:10px;margin-top:8px;color:#475569}.excel-action{background:#12834a!important;border-color:#12834a!important;color:#fff!important;font-weight:800}.excel-action:hover{background:#0f6e3f!important}
@media(max-width:900px){.report-book{gap:14px}.cover-student{width:100%;grid-template-columns:1fr}.report-cover{padding-top:22px}.cover-title{margin-top:35px}.cover-school{margin-top:50px}}
@media print{
 .report-book{display:block}.report-page{box-shadow:none!important;margin:0!important;width:210mm!important;min-height:297mm!important;padding:13mm 14mm!important;break-after:page!important;page-break-after:always!important}.report-page:last-child{break-after:auto!important;page-break-after:auto!important}
 .report-cover{padding-top:30mm!important}.cover-school{padding-bottom:12mm}.ledger-sheet{box-shadow:none;border:0;padding:8mm!important}.ledger-table{font-size:8px}.ledger-table th,.ledger-table td{padding:4px}
}

.inline-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.inline-actions form{margin:0}.activity-list{padding:4px 2px}.activity-line{display:flex;gap:12px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid #edf2f7}.activity-line:last-child{border-bottom:0}.activity-line b{display:block;font-size:.9rem;color:#10233e}.activity-line small{display:block;color:#6b7d96;margin-top:3px}.activity-dot{width:9px;height:9px;border-radius:50%;background:#1877f2;margin-top:5px;box-shadow:0 0 0 5px #eaf3ff}.report-sheet{background:#fff;border:1px solid #dbe4ef;border-radius:16px;padding:28px;box-shadow:0 10px 30px rgba(23,44,76,.06);margin-top:18px}.report-header{text-align:center;border-bottom:2px solid #172f52;padding-bottom:16px;margin-bottom:18px}.report-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-bottom:20px}.report-identity div{display:grid;grid-template-columns:150px 1fr;gap:10px}.report-identity span{color:#60728b}.report-note{margin-top:18px;padding:14px;border:1px solid #dbe4ef;border-radius:12px}.muted{color:#8a99ad}.no-print{display:block}@media print{.sidebar,.topbar,.pagehead,.no-print,.dashboard-footer{display:none!important}.workspace,main{margin:0!important;padding:0!important;background:#fff!important}.report-sheet{box-shadow:none;border:0;border-radius:0;padding:0;margin:0}.report-sheet table{font-size:10pt}body{background:#fff!important}}
.notification{position:relative}.notification-count{position:absolute;right:-5px;top:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e5484d;color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}.notification-list{display:grid;gap:10px}.notification-row{display:flex;justify-content:space-between;gap:20px;padding:16px;border:1px solid #e3eaf2;border-radius:14px;background:#fff}.notification-row.unread{border-color:#b9d8ff;background:#f7fbff;box-shadow:inset 3px 0 0 #1877f2}.notification-row p{margin:.35rem 0;color:#596d87}.notification-row small{color:#8493a7}

/* V1.6.2 - Full-screen no-crop authentication layout
   The 1672x941 hero is rendered across the entire browser canvas with no clipping.
   The login card floats on the right; there is no separate pale column or wide overlay. */
html.auth-page,html.auth-page body{width:100%;min-height:100%;margin:0}
html.auth-page body{background:#eef6fd;overflow:hidden}
.auth-app,.auth-app .workspace,.auth-main{width:100%;min-width:0;min-height:100dvh!important;background:transparent!important}
.auth-main{padding:0!important;max-width:none!important;margin:0!important}

.erapor-login{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden;background:#dcecf9;isolation:isolate}
.erapor-visual{position:absolute;inset:0;z-index:0;overflow:hidden;background:#dcecf9}
.erapor-visual::before,.erapor-visual::after{display:none!important}
.erapor-visual>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:fill;object-position:center center;user-select:none;-webkit-user-drag:none}

.erapor-auth{position:absolute;z-index:2;top:50%;right:clamp(28px,4vw,72px);transform:translateY(-50%);width:min(620px,42vw);min-width:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;background:transparent}
.erapor-card{width:100%;background:rgba(255,255,255,.97);border:1px solid rgba(211,225,239,.95);border-radius:28px;padding:clamp(24px,2.7vh,34px) clamp(28px,2.1vw,38px);box-shadow:0 28px 74px rgba(15,54,94,.20);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.login-heading{display:flex;gap:14px;align-items:center;margin-bottom:16px}.login-heading-single .mark{width:52px;height:52px;flex:0 0 52px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#14b8d4,#1475ef);color:white;font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(19,115,209,.23)}
.login-heading .eyebrow{margin:0 0 2px;font-size:10px;letter-spacing:.14em;font-weight:900;color:#607b9b}.login-heading h1{margin:0;color:#0e2a4b;font-size:clamp(26px,1.75vw,33px);line-height:1.08}.login-heading p:last-child{margin:5px 0 0;color:#6f85a0;font-size:12px}
.app-identity{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:16px;border:1px solid #d4e2ef;border-radius:14px;background:#f7fbff}.app-identity b{display:block;color:#113151;font-size:14px}.app-identity small{display:block;color:#7187a0;font-size:10.5px;margin-top:2px}.app-identity>span{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#eaf4ff;color:#0d69dd;font-size:9.5px;font-weight:900}
.erapor-form label{display:block;font-size:12.5px;font-weight:800;color:#17314f;margin-bottom:12px}.field-icon{position:relative;display:flex;align-items:center}.field-icon>.ui-icon{position:absolute;left:14px;width:19px;height:19px;color:#7690ad;z-index:2}.field-icon input{width:100%;height:50px;padding:0 15px 0 45px;border-radius:12px;background:#f7faff;border:1px solid #cfdded;font-weight:650}.field-icon input:focus{background:#fff}.field-icon.password-field input{padding-right:88px}.erapor-form .password-toggle{position:absolute;right:8px;border:0;background:transparent;color:#0871e8;font-weight:850;cursor:pointer}.caps-warning{color:#b54708!important;margin-top:5px;font-size:11px}
.period-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.period-grid select{width:100%;height:48px;border:1px solid #cfdded;border-radius:12px;background:#f7faff;padding:0 38px 0 14px;font-weight:700;color:#17314f}.selected-period{display:flex;align-items:center;gap:8px;padding:8px 10px;margin:0 0 10px;border-radius:11px;background:#f3f8fd;border:1px solid #dce8f3;color:#294d72}.selected-period span{text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:900;color:#7187a0}.selected-period b{font-size:11px}.selected-period small{font-size:10px;color:#6f85a0}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 10px;color:#67809a;font-size:10px}.login-options .check-line{display:flex;align-items:center;gap:7px;margin:0;font-size:10px;font-weight:600}.login-options>span{display:flex;align-items:center;gap:5px}.login-options .ui-icon{width:15px;height:15px;color:#0ca66b}
.erapor-form .login-submit{width:100%;height:52px;border-radius:13px;font-size:16px;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#1684ff,#075fe5);box-shadow:0 12px 28px rgba(13,110,235,.28)}.erapor-form .login-submit:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 15px 30px rgba(13,110,235,.34)}.erapor-form .login-submit .ui-icon{width:18px;height:18px}.erapor-form .login-submit[disabled]{filter:grayscale(.25);opacity:.55;box-shadow:none}
.login-error{margin:0 0 15px;border-radius:12px}.login-security{margin-top:13px;border-top:1px solid #e5edf6;padding-top:13px;display:flex;align-items:center;gap:8px;color:#667d97;font-size:10.5px}.login-security .ui-icon{width:17px;height:17px;color:#08a66b}.erapor-card .login-help{line-height:1.45;margin:7px auto 0;max-width:500px;text-align:center;color:#758ba4;font-size:10.5px}.login-footer{margin-top:10px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.78);box-shadow:0 6px 20px rgba(26,69,110,.08);display:flex;gap:9px;align-items:center;justify-content:center;flex-wrap:wrap;color:#6f86a0;font-size:10px}.login-footer b{color:#2d527a}

@media(min-width:1900px){.erapor-auth{right:4.3vw;width:min(650px,40vw)}.erapor-card{padding-left:40px;padding-right:40px}}
@media(max-width:1500px) and (min-width:1101px){.erapor-auth{right:28px;width:min(590px,43vw);min-width:500px}.erapor-card{padding:24px 30px}}
@media(min-width:1101px) and (max-height:820px){.erapor-auth{width:min(570px,42vw)}.erapor-card{padding:18px 24px;border-radius:21px}.login-heading{margin-bottom:10px;gap:12px}.login-heading-single .mark{width:44px;height:44px;flex-basis:44px;border-radius:12px}.login-heading h1{font-size:24px}.login-heading p:last-child{margin-top:3px;font-size:10px}.app-identity{padding:8px 10px;margin-bottom:9px}.erapor-form label{margin-bottom:7px}.field-icon input,.period-grid select{height:39px}.selected-period{padding:6px 8px;margin-bottom:7px}.login-options{margin-bottom:7px}.erapor-form .login-submit{height:42px;font-size:14px}.login-security{margin-top:7px;padding-top:7px}.erapor-card .login-help{margin-top:5px;font-size:9.5px}.login-footer{margin-top:5px}}

@media(max-width:1100px){html.auth-page body{overflow:auto}.erapor-login{display:flex;flex-direction:column;width:100%;height:auto;min-height:100dvh;overflow:visible;background:#eef6fd}.erapor-visual{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1672/941;flex:0 0 auto;background:#dcecf9}.erapor-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center center}.erapor-auth{position:relative;top:auto;right:auto;transform:none;width:100%;min-width:0;padding:28px 18px 38px;background:linear-gradient(180deg,#f8fcff,#eef6fd)}.erapor-card{width:min(720px,100%);padding:28px 26px}.login-footer{background:transparent;box-shadow:none}}
@media(max-width:640px){.erapor-visual{aspect-ratio:16/9}.erapor-auth{padding:16px 12px 24px}.erapor-card{width:100%;padding:21px 16px;border-radius:19px}.login-heading{gap:10px;margin-bottom:14px}.login-heading-single .mark{width:46px;height:46px;flex-basis:46px;border-radius:13px}.login-heading h1{font-size:24px}.login-heading p:last-child{font-size:11px}.app-identity{padding:11px 12px;margin-bottom:14px;align-items:flex-start}.app-identity>span{font-size:9px}.period-grid{grid-template-columns:1fr}.selected-period{flex-wrap:wrap}.selected-period small{margin-left:0}.login-options{align-items:flex-start;flex-direction:column}.erapor-form .login-submit{height:50px}}
@media(max-width:420px){.erapor-card{padding:18px 14px}.app-identity>span{display:none}}
@media(prefers-reduced-motion:reduce){.erapor-visual>img,.erapor-form .login-submit{animation:none!important;transition:none!important;transform:none!important}}


/* V1.6.4 — Professional academic-year manager */
.toolbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.year-smart-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.year-smart-info>div{border:1px solid #dbe7f5;background:linear-gradient(180deg,#fbfdff,#f6faff);border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:5px;min-height:86px}
.year-smart-info b{font-size:13px;color:#0f315d}.year-smart-info span{font-size:12px;line-height:1.45;color:#647895}
.auto-date-preview,.form-hint{margin-top:14px;padding:13px 15px;border-radius:12px;border:1px solid #d8e7f8;background:#f7fbff;color:#536b89;font-size:12px;line-height:1.55;display:flex;gap:8px;flex-direction:column}
.auto-date-preview b,.form-hint b{color:#123a6b}
.form-grid label small{display:block;margin-top:5px;color:#7a8ea8;font-size:11px;font-weight:500;line-height:1.35}
.academic-year-manager .status.success{background:#eafaf2;color:#0c8756;border-color:#bfead7}
@media(max-width:900px){.year-smart-info{grid-template-columns:1fr}.toolbar-actions{width:100%}.toolbar-actions>*{flex:1}}

/* V1.7.0 Professional Form & Academic History System */
.field-help{display:block;margin-top:5px;color:#7b8da5;font-size:10px;line-height:1.45;font-weight:500}
label.is-required{position:relative}label.is-required>.required-mark{color:#e14848;margin-left:4px;font-weight:900}
.char-counter{display:block;text-align:right;margin-top:4px;color:#91a1b4;font-size:9.5px}.char-counter.near-limit{color:#d97706}.char-counter.at-limit{color:#c62828;font-weight:800}
.form-submitting{pointer-events:none;opacity:.82}.form-submitting button[type="submit"]{position:relative}.form-submitting button[type="submit"]:after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ntt-spin .7s linear infinite;vertical-align:-2px}@keyframes ntt-spin{to{transform:rotate(360deg)}}
.history-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 18px}.history-banner>div{padding:14px;border:1px solid #dfeaf6;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#f3f8fe)}.history-banner b,.history-banner span{display:block}.history-banner b{font-size:11px;color:#17395e;margin-bottom:5px}.history-banner span{font-size:10px;line-height:1.5;color:#6e84a1}
.history-profile{margin-bottom:16px}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.history-summary>div{padding:14px;border:1px solid #e1eaf4;border-radius:12px;background:#f9fbfe}.history-summary small,.history-summary b,.history-summary span{display:block}.history-summary small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#7890ab;font-weight:800}.history-summary b{font-size:19px;color:#153a65;margin:5px 0 3px}.history-summary span{font-size:9.5px;color:#8091a6;line-height:1.4}
.history-semester{margin-bottom:14px}.history-semester-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.history-semester-head span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#1478e8}.history-semester-head h3{margin:3px 0 2px;font-size:15px;color:#173653}.history-semester-head p{margin:0;color:#8092a8;font-size:10px}.history-average{min-width:100px;padding:10px 12px;border-radius:11px;background:#edf6ff;text-align:center}.history-average small,.history-average b{display:block}.history-average small{font-size:8.5px;color:#5f7c9e}.history-average b{font-size:18px;color:#0b6fdd;margin-top:2px}.history-meta{display:grid;gap:5px;margin-top:10px;padding:11px 12px;border-radius:10px;background:#f8fafc;color:#60758e;font-size:10px;line-height:1.45}
.alumni-panel .status.success{background:#e9f9f0;color:#12824b;border-color:#c7efd9}
@media(max-width:900px){.history-banner,.history-summary{grid-template-columns:1fr}.history-semester-head{align-items:flex-start}.history-average{min-width:88px}}

/* V1.8.0 — Guru/Wali e-Rapor workflow alignment */
.two-col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px;align-items:start}
.form-card{display:grid;gap:12px;padding:18px;border:1px solid #dfe8f2;border-radius:14px;background:#fbfdff}.form-card h4{margin:0;color:#16395f}.form-card .help-text{margin:0 0 4px;color:#70849b;font-size:11px;line-height:1.5}.form-card label{display:grid;gap:6px;font-size:12px;font-weight:750;color:#203b59}.form-card input,.form-card select,.form-card textarea{width:100%}
.detail-table th{width:170px;color:#516a85;text-align:left;background:#f8fbff}.detail-table th,.detail-table td{padding:10px 12px;border-bottom:1px solid #e8eef5}
.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.history-semester{margin:0}.history-desc{display:block;margin-top:5px;color:#6f839a;white-space:normal;max-width:260px;line-height:1.35}.history-semester td{vertical-align:top}
.role-dashboard-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.role-dashboard-actions .button,.role-dashboard-actions .primary{display:inline-flex;align-items:center;justify-content:center;min-height:40px;text-decoration:none}.role-hero{min-height:250px}.role-hero .hero-content{max-width:900px}
@media(max-width:980px){.two-col,.history-grid{grid-template-columns:1fr}.detail-table th{width:140px}}
@media(max-width:640px){.role-dashboard-actions{flex-direction:column}.role-dashboard-actions>*{width:100%}}
/* V1.9.0 Admin e-Rapor professional modules */
.admin-readiness .toolbar{align-items:flex-start}.readiness-score{min-width:110px;text-align:right}.readiness-score b{display:block;font-size:28px;color:#0b67d9}.readiness-score span{font-size:11px;color:#71849b}.readiness-progress{height:8px;background:#e9f0f8;border-radius:999px;overflow:hidden;margin:10px 0 18px}.readiness-progress i{display:block;height:100%;background:linear-gradient(90deg,#1484ff,#19b7a0);border-radius:999px}.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.readiness-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid #dce8f5;border-radius:12px;background:#fbfdff;text-decoration:none;color:#163252}.readiness-card:hover{border-color:#9dc6f8;box-shadow:0 5px 18px rgba(20,76,140,.08)}.readiness-card small{display:block;color:#7c8da2;margin-top:2px}.readiness-card strong{font-size:9px;letter-spacing:.04em}.readiness-card.is-ready strong{color:#0a9a69}.readiness-card.is-pending strong{color:#d27a16}.readiness-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:900}.is-ready .readiness-icon{background:#e7f8f1;color:#0a9a69}.is-pending .readiness-icon{background:#fff4e7;color:#d27a16}.mapping-guide{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 10px;align-items:center;margin:0 0 14px;padding:10px 12px;border:1px solid #dce8f5;border-radius:10px;background:#f8fbff;font-size:11px}.file-ready,.file-empty{display:inline-block;margin-left:5px;font-size:9px;font-weight:800;border-radius:999px;padding:2px 7px}.file-ready{background:#e8f8ef;color:#0a9a69}.file-empty{background:#f1f4f8;color:#7c8da2}@media(max-width:780px){.readiness-grid{grid-template-columns:1fr}.readiness-card{grid-template-columns:34px 1fr}.readiness-card strong{grid-column:2}.mapping-guide{grid-template-columns:1fr}}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.user-copy{text-decoration:none;color:inherit}.profile-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start;padding-top:18px}.profile-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px;border:1px solid #dbe7f5;border-radius:18px;background:#f8fbff}.profile-photo{width:110px;height:110px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 10px 28px rgba(18,64,118,.12)}.profile-photo.placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#13b8d4,#0877f9);color:#fff;font-size:36px;font-weight:800}.profile-card small{color:#6b7f99}@media(max-width:760px){.profile-layout{grid-template-columns:1fr}.profile-card{max-width:320px;margin:auto;width:100%}}
.login-help-row{display:flex;justify-content:flex-end;margin-top:-4px}.login-help-row a{font-size:12px;font-weight:700;color:#0877f9;text-decoration:none}.login-help-row a:hover{text-decoration:underline}.recovery-card{max-width:540px;margin:auto}.recovery-card form{display:grid;gap:14px}.recovery-card .button{text-align:center;text-decoration:none}
.subject-group-row td{background:#eef5ff!important;color:#174b87;font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:11px}
.progress-dashboard{padding:18px 8px}.progress-summary{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-bottom:14px}.progress-summary b{font-size:14px}.progress-summary p{margin:4px 0 0;color:#6b7f99}.progress-summary strong{font-size:24px;color:#0b69dc}.progress-dashboard .inline-actions{margin-top:14px}@media(max-width:600px){.progress-summary{grid-template-columns:auto 1fr}.progress-summary strong{grid-column:1/-1;text-align:right}}
/* V1.10.0 competency engine */
.mastery{display:block;margin-top:6px;font-size:10px;font-weight:900;line-height:1.2;text-align:center;border-radius:999px;padding:4px 7px;white-space:nowrap}
.mastery.success{background:#ecfdf3;color:#087443;border:1px solid #b7ebcf}
.mastery.warning{background:#fff7e8;color:#a55300;border:1px solid #f6d39a}
.grade-table td small{display:block;margin-top:5px;color:#667085;line-height:1.35}

/* V1.10.2 — Modern balanced dashboards + structured accordion navigation + live refresh */
:root{--dash-card-radius:18px;--dash-soft:#f7faff;--dash-border:#e3ebf4;--dash-deep:#0b3765;--dash-accent:#147df5}
.app:not(.auth-app){grid-template-columns:258px minmax(0,1fr)}
.sidebar{padding:16px 10px 12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:12px 0 34px rgba(5,30,55,.06);z-index:30}
.brand{padding:4px 10px 14px;min-height:62px;flex:0 0 auto}.brand .mark{width:40px;height:40px;border-radius:12px}.brand strong{font-size:15px}.brand small{font-size:10px}.nav-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding:3px 2px 10px;scrollbar-width:thin;scrollbar-color:rgba(158,195,226,.35) transparent}.nav-scroll::-webkit-scrollbar{width:5px}.nav-scroll::-webkit-scrollbar-thumb{background:rgba(158,195,226,.28);border-radius:999px}.sidebar-foot{flex:0 0 auto;margin-top:6px;padding:10px 10px 2px}
.nav-item{min-height:38px;padding:9px 11px!important;border-radius:10px!important;gap:10px!important;font-size:11px!important;transition:background .16s ease,color .16s ease,transform .16s ease}.nav-item .ui-icon{width:16px!important;height:16px!important;flex:0 0 auto}.nav-item:hover{transform:translateX(2px)}
.nav-section{margin-top:7px!important;padding:0!important;border-top:0!important}.nav-section+.nav-section{padding-top:0!important;border-top:0!important}.nav-section-title{width:100%;display:flex!important;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:8px 10px!important;border:0!important;background:transparent!important;color:#82a7c7!important;border-radius:9px!important;box-shadow:none!important;font-size:9.5px!important;font-weight:850!important;letter-spacing:.035em;text-transform:uppercase!important;text-align:left}.nav-section-title:hover{background:rgba(255,255,255,.055)!important;color:#dcecff!important}.nav-section-chevron{font-size:15px;line-height:1;transition:transform .18s ease;color:#86abc9}.nav-section.is-open .nav-section-chevron{transform:rotate(180deg)}.nav-section-items{display:grid;gap:3px;max-height:0;overflow:hidden;opacity:.15;transition:max-height .22s ease,opacity .18s ease}.nav-section.is-open .nav-section-items{max-height:900px;opacity:1;padding-bottom:4px}.nav-section.is-open>.nav-section-title{color:#d7ecff!important}.nav-section:has(.nav-item.active)>.nav-section-title{color:#fff!important}
body.sidebar-collapsed .nav-section-items{max-height:900px!important;opacity:1!important}body.sidebar-collapsed .nav-section{margin-top:5px!important}
.workspace{min-width:0;background:linear-gradient(180deg,#f7faff 0,#f3f7fb 230px,#f3f7fb 100%)}.topbar{height:68px;padding:0 22px;box-shadow:0 1px 0 rgba(21,58,92,.04)}main{max-width:1480px;padding:22px 26px 30px}.pagehead{margin-bottom:16px}.pagehead h1{font-size:25px;letter-spacing:-.025em;margin:2px 0}.page-subtitle{margin-top:4px!important;color:#75889e!important;font-size:10.8px!important}.global-search{height:38px}.year-chip{min-height:38px}.avatar{width:34px!important;height:34px!important}
.dashboard-live-shell{display:grid;gap:14px}.admin-live-strip{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;border:1px solid #dce8f5;border-radius:12px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);font-size:10px;color:#54708d}.admin-live-strip span{display:flex;align-items:center;gap:7px;font-weight:800}.admin-live-strip small{color:#8295aa}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#18c777;box-shadow:0 0 0 4px rgba(24,199,119,.12)}
.dashboard-grid{grid-template-columns:minmax(0,1.72fr) minmax(292px,.82fr);gap:14px}.dashboard-hero{min-height:222px;border-radius:20px;box-shadow:0 16px 34px rgba(10,92,169,.14)}.hero-content{padding:23px 26px}.dashboard-hero h2{font-size:24px;margin:13px 0 7px}.dashboard-hero p{font-size:10.8px;line-height:1.6;margin-bottom:15px}.hero-action{font-size:10.5px}.semester-card{border-radius:18px!important;padding:16px!important}.semester-steps a{min-height:42px!important}.stats{gap:12px;margin:0}.stat{min-height:96px;padding:15px 16px!important;border-radius:16px!important;box-shadow:0 6px 20px rgba(22,50,80,.045)!important}.stat strong{font-size:24px!important;margin:3px 0!important}.stat-copy b{font-size:10.5px!important}.stat-copy small{font-size:9.2px!important}.stat-icon{width:38px!important;height:38px!important}.dashboard-lower{gap:14px}.dashboard-panel{padding:15px!important;border-radius:17px!important}.activity-line{padding:9px 3px}.modern-empty{min-height:130px}

.role-dashboard-top{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:14px;align-items:stretch}.role-welcome,.role-shortcut-panel{border:1px solid var(--dash-border);border-radius:20px;box-shadow:0 10px 28px rgba(25,61,101,.06)}.role-welcome{padding:24px 26px;background:linear-gradient(125deg,#0a4e94,#0c70c7 60%,#1a9fe0);color:#fff;position:relative;overflow:hidden}.role-welcome:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-95px;bottom:-145px;background:rgba(255,255,255,.07)}.role-welcome h2{position:relative;z-index:1;margin:14px 0 8px;font-size:25px;line-height:1.16;letter-spacing:-.03em}.role-welcome>p{position:relative;z-index:1;max-width:680px;margin:0;color:#dceeff;font-size:11px;line-height:1.65}.live-indicator{display:flex;align-items:center;gap:8px;position:relative;z-index:1;margin-top:16px;font-size:10px;font-weight:800;color:#eff8ff}.live-indicator small{font-weight:600;color:#c5e2f8}.role-shortcut-panel{padding:16px;background:#fff}.panel-kicker{font-size:9px;font-weight:900;letter-spacing:.1em;color:#7990a8;margin-bottom:10px}.workspace-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workspace-shortcut{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:62px;padding:10px;border:1px solid #e3ebf4;border-radius:13px;background:#fbfdff;color:#153552;text-decoration:none;transition:.16s ease}.workspace-shortcut:hover{transform:translateY(-1px);border-color:#b9d7f8;box-shadow:0 8px 18px rgba(22,94,167,.07)}.workspace-shortcut>.ui-icon{width:18px;height:18px;padding:8px;box-sizing:content-box;border-radius:10px;background:#edf6ff;color:#1479ec}.workspace-shortcut b,.workspace-shortcut small{display:block}.workspace-shortcut b{font-size:10.5px}.workspace-shortcut small{margin-top:2px;font-size:9px;color:#7a8da3}.workspace-shortcut.primary{background:linear-gradient(135deg,#0c6ee6,#168ff4);border-color:transparent;color:#fff;box-shadow:none}.workspace-shortcut.primary>.ui-icon{background:rgba(255,255,255,.16);color:#fff}.workspace-shortcut.primary small{color:#dceeff}.modern-role-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workflow-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;padding:15px 16px;border:1px solid #e2eaf3;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(22,50,80,.04)}.workflow-icon{width:42px;height:42px;border-radius:12px;background:#edf6ff;color:#1478e8;display:grid;place-items:center}.workflow-icon .ui-icon{width:19px;height:19px}.workflow-card b{font-size:11px;color:#173756}.workflow-card p{margin:4px 0 0;font-size:9.8px;line-height:1.55;color:#73869b}

[data-live-stat].live-pulse{animation:livePulse .5s ease}@keyframes livePulse{0%{transform:scale(1);opacity:.55}50%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}

@media(max-width:1180px){.app:not(.auth-app){grid-template-columns:238px minmax(0,1fr)}.role-dashboard-top{grid-template-columns:1fr}.workspace-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.modern-role-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.sidebar{width:258px!important;height:100dvh}.nav-scroll{overflow-y:auto}.role-dashboard-top{grid-template-columns:1fr}.workspace-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){main{padding:16px 13px 24px}.topbar{height:60px;padding:0 12px}.pagehead{margin-bottom:12px}.role-welcome{padding:20px}.role-welcome h2{font-size:22px}.role-shortcut-panel{padding:13px}.modern-role-stats{grid-template-columns:1fr 1fr}.workflow-grid{grid-template-columns:1fr}.admin-live-strip{align-items:flex-start;flex-direction:column}.dashboard-grid{gap:10px}.dashboard-live-shell{gap:10px}}
@media(max-width:500px){.workspace-shortcuts,.modern-role-stats{grid-template-columns:1fr}.role-welcome h2{font-size:21px}.role-shortcut-panel{border-radius:16px}.workflow-card{grid-template-columns:36px minmax(0,1fr)}.workflow-icon{width:36px;height:36px}.stat{min-height:88px}}

/* V1.11.0 — Professional Role Workspace */
.workqueue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.workqueue-card{background:#fff;border:1px solid #e4ebf4;border-radius:18px;box-shadow:0 10px 28px rgba(30,72,120,.07);overflow:hidden}
.workqueue-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #edf2f7;background:linear-gradient(180deg,#fff,#fbfdff)}
.workqueue-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#edf6ff;color:#1976d2;flex:0 0 auto}
.workqueue-head svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8}
.workqueue-head div{min-width:0;flex:1}.workqueue-head b{display:block;font-size:14px;color:#19324d}.workqueue-head small{display:block;margin-top:2px;color:#7d90a6;font-size:11px}
.workqueue-head>a{font-size:11px;font-weight:800;color:#1476d4;text-decoration:none;background:#eef7ff;border-radius:999px;padding:7px 10px;white-space:nowrap}
.workqueue-list{display:grid}.workqueue-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;border-bottom:1px solid #f0f3f7;text-decoration:none;color:#425b73;transition:.16s ease}
.workqueue-list a:last-child{border-bottom:0}.workqueue-list a:hover{background:#f8fbff;color:#1476d4}.workqueue-list span{font-size:12px;font-weight:700}.workqueue-list strong{min-width:32px;text-align:center;padding:5px 8px;border-radius:9px;background:#f0f5fa;color:#173a5e;font-size:13px}
.role-dashboard-top{min-height:220px}.role-shortcut-panel{align-self:stretch}.workspace-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.workqueue-grid{grid-template-columns:1fr}.role-dashboard-top{min-height:auto}}
@media(max-width:620px){.workspace-shortcuts{grid-template-columns:1fr}.workqueue-head{align-items:flex-start}.workqueue-head>a{display:none}}

/* V1.12.0 — Professional Academic Control Center */
.control-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;margin-bottom:18px;border:1px solid #dbe7f5;border-radius:22px;background:linear-gradient(135deg,#f8fbff,#eef7ff);box-shadow:0 12px 34px rgba(25,72,120,.07)}
.control-hero h2{margin:9px 0 6px;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.16}.control-hero p{margin:0;color:#64748b;max-width:760px}.leadership-hero{background:linear-gradient(135deg,#0d4f8f,#1676c9);color:#fff;border-color:transparent}.leadership-hero p{color:#dcefff}.leadership-hero .button{background:#fff;color:#0d4f8f;border-color:#fff}
.task-center-grid,.print-center-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.task-center-card,.print-center-card{display:flex;align-items:center;gap:14px;min-height:118px;padding:18px;border:1px solid #e0e8f2;border-radius:18px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(24,59,92,.05);transition:.18s ease}.task-center-card:hover,.print-center-card:hover{transform:translateY(-2px);border-color:#b9d5f2;box-shadow:0 14px 32px rgba(24,59,92,.1)}.task-center-card.warning{border-color:#f5d7a3;background:linear-gradient(180deg,#fffdfa,#fff8eb)}.task-center-card>strong{margin-left:auto;min-width:42px;height:42px;padding:0 10px;border-radius:13px;display:grid;place-items:center;background:#eef6ff;color:#0e67b7;font-size:1.05rem}.task-center-card.warning>strong{background:#fff0d2;color:#a15b00}.task-center-icon,.print-center-card>span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#edf6ff;color:#0d6fc7;flex:0 0 auto}.task-center-card b,.print-center-card b{display:block;margin-bottom:5px}.task-center-card p,.print-center-card p{margin:0;color:#6b7b8c;font-size:.88rem;line-height:1.45}.print-center-card i{margin-left:auto;font-style:normal;font-size:1.35rem;color:#6f8499}
.readiness-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.readiness-summary article{padding:18px 20px;border:1px solid #e1e9f2;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(24,59,92,.045)}.readiness-summary small{display:block;color:#718096;margin-bottom:7px}.readiness-summary strong{font-size:1.7rem;color:#153b61}.mini-progress{width:120px;max-width:100%;height:8px;border-radius:999px;background:#e7eef6;overflow:hidden;margin-bottom:5px}.mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1581dd,#3db4e8)}
.notification-tabs{display:flex;gap:8px;flex-wrap:wrap}.notification-tabs a{padding:9px 13px;border-radius:12px;border:1px solid #d7e3ef;background:#fff;text-decoration:none;color:#536779}.notification-tabs a.active{background:#126fc2;color:#fff;border-color:#126fc2}.notification-tabs b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.2);font-size:.75rem}
.health-summary article:nth-child(2) strong{color:#17845a}.health-summary article:nth-child(3) strong{color:#b96b00}
@media(max-width:1100px){.task-center-grid,.print-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.control-hero{align-items:flex-start;flex-direction:column;padding:20px}.task-center-grid,.print-center-grid,.readiness-summary{grid-template-columns:1fr}.task-center-card,.print-center-card{min-height:96px}.notification-tabs{width:100%}}

.logout-form{margin:0}.logout-form button.logout{font:inherit;cursor:pointer}

/* V1.13.0 — Full Final Hardening: mempertahankan UI V1.12, fokus pada integritas, keamanan, dan konsistensi workflow. */

/* V1.13.1 — Dashboard Admin Elegant Rapor Edition
   UI-only enhancement. Tidak mengubah query, permission, workflow, atau endpoint realtime. */
.dashboard-live-shell{
  --dash-blue:#1769e0;
  --dash-blue-dark:#0b3e82;
  --dash-cyan:#27b6e8;
  --dash-green:#18a76f;
  --dash-purple:#7757e8;
  --dash-orange:#f59b35;
  --dash-ink:#102a47;
  --dash-muted:#69809a;
  --dash-line:#e2ebf4;
  gap:16px;
}
.dashboard-live-shell + *{scroll-margin-top:90px}
.pagehead:has(+ .dashboard-live-shell){margin-bottom:15px}
.pagehead:has(+ .dashboard-live-shell) h1{font-size:31px;line-height:1.08;letter-spacing:-.035em;color:#102a47;margin:4px 0 5px}
.pagehead:has(+ .dashboard-live-shell) .page-subtitle{font-size:12px;line-height:1.55;color:#72869d;margin-top:0}

.admin-live-strip{
  min-height:38px;
  padding:9px 14px;
  border:1px solid #d8e9e3;
  background:linear-gradient(90deg,#f4fffb 0%,#ffffff 58%,#f4f9ff 100%);
  border-radius:13px;
  box-shadow:0 4px 16px rgba(23,77,125,.035);
  color:#527188;
  font-size:10.5px;
}
.admin-live-strip span{color:#176a53;font-size:10.5px}
.admin-live-strip small{font-size:9.5px;color:#7f94aa}

.dashboard-grid{grid-template-columns:minmax(0,1.78fr) minmax(300px,.82fr);gap:15px}
.dashboard-hero{
  min-height:238px;
  border-radius:21px;
  background:
    radial-gradient(circle at 78% 22%,rgba(255,255,255,.18),transparent 24%),
    radial-gradient(circle at 94% 88%,rgba(18,214,224,.16),transparent 28%),
    linear-gradient(120deg,#0a3e82 0%,#0b62bf 52%,#20a8e6 100%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 42px rgba(8,74,145,.17);
  grid-template-columns:minmax(0,1.28fr) minmax(245px,.72fr);
}
.dashboard-hero:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(255,255,255,.03));
}
.dashboard-hero:after{width:420px;height:420px;right:-150px;bottom:-250px;background:rgba(255,255,255,.07)}
.hero-content{padding:27px 30px 25px}
.badge-live{font-size:10px;padding:6px 10px;background:rgba(4,45,99,.28);border-color:rgba(255,255,255,.24)}
.dashboard-hero h2{font-size:27px;line-height:1.18;letter-spacing:-.03em;margin:15px 0 9px;max-width:560px}
.dashboard-hero p{font-size:11.5px;line-height:1.65;max-width:590px;margin-bottom:18px;color:#e5f3ff}
.hero-action{font-size:10.8px;padding:8px 14px 8px 8px;border-radius:11px;box-shadow:0 9px 22px rgba(0,39,92,.18);transition:.18s ease}
.hero-action:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,39,92,.23)}
.round-arrow{width:29px;height:29px}

.hero-art{position:relative;min-height:100%;overflow:hidden}
.art-orb{position:absolute;border-radius:999px;filter:none}
.orb-a{width:145px;height:145px;left:22px;top:22px;background:rgba(255,255,255,.11)}
.orb-b{width:82px;height:82px;right:6px;bottom:18px;background:rgba(0,74,145,.17)}
.report-paper{
  width:122px;height:145px;left:52px;top:37px;
  border-radius:12px;
  box-shadow:0 15px 30px rgba(0,50,105,.22);
  transform:rotate(4deg);
  border:1px solid rgba(255,255,255,.7);
}
.report-paper:before{content:"RAPOR DIGITAL";display:block;font-size:6.5px;font-weight:900;letter-spacing:.08em;color:#7e95ae;margin:0 0 7px}
.report-paper b{font-size:13px;letter-spacing:.03em;color:#1265c8}
.report-paper span{font-size:13px;color:#16b36d}
.report-paper i{height:5px;background:#d9e7f4;border-radius:6px}
.report-cap{color:#176edf!important;font-size:16px!important}
.mini-chart{left:148px;top:126px;width:68px;height:52px;border-radius:11px;box-shadow:0 11px 24px rgba(0,50,105,.18)}
.mini-chart i{width:9px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#4d63f7,#3a94ff)}
.hero-note{right:13px;top:63px;font-size:10px;line-height:1.55;color:#eef8ff;transform:rotate(-2deg);text-shadow:0 2px 10px rgba(0,39,92,.22)}
.hero-note b{font-weight:800;color:#fff}

.semester-card{border-radius:20px!important;padding:17px!important;border:1px solid #e3ecf5;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 10px 28px rgba(21,60,99,.065)!important}
.card-title{margin-bottom:14px}.title-icon{width:34px;height:34px;border-radius:10px;background:#edf6ff}.card-title h3{font-size:14.5px;color:#173657;letter-spacing:-.01em}.card-title>a{font-size:9.8px;padding:7px 10px;border-radius:9px}
.semester-steps{gap:8px}.semester-steps>a{min-height:43px!important;border-radius:11px;padding:7px 10px;background:#fbfdff}.semester-steps>a:hover{transform:translateX(2px);box-shadow:0 6px 15px rgba(20,73,124,.05)}.semester-steps b{font-size:10.7px}.semester-steps span{width:25px;height:25px;font-size:9.5px}

.dashboard-live-shell .stats{gap:13px;margin:0}
.dashboard-live-shell .stat{
  min-height:98px;
  padding:15px 16px!important;
  border:1px solid var(--dash-line)!important;
  border-radius:17px!important;
  background:#fff;
  box-shadow:0 7px 22px rgba(22,50,80,.045)!important;
  overflow:hidden;
}
.dashboard-live-shell .stat:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:4px;background:currentColor;opacity:.75}
.dashboard-live-shell .stat{position:relative}
.dashboard-live-shell .stat:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(26,65,105,.085)!important}
.dashboard-live-shell .stat-icon{width:42px!important;height:42px!important;border-radius:12px!important}
.dashboard-live-shell .stat-copy b{font-size:10.8px!important;color:#3b5873}.dashboard-live-shell .stat-copy strong{font-size:25px!important;letter-spacing:-.03em;color:#102c4b}.dashboard-live-shell .stat-copy small{font-size:9.5px!important;color:#8193a6}.dashboard-live-shell .stat-arrow{font-size:19px}
.stat-blue{color:#1a7df0!important;background:linear-gradient(135deg,#fff,#f5faff)!important}.stat-green{color:#14a56b!important;background:linear-gradient(135deg,#fff,#f5fcf8)!important}.stat-purple{color:#7655e5!important;background:linear-gradient(135deg,#fff,#faf7ff)!important}.stat-orange{color:#ef8a25!important;background:linear-gradient(135deg,#fff,#fff8f1)!important}

.dashboard-lower{gap:15px}.dashboard-panel{border:1px solid #e3ebf4!important;border-radius:18px!important;padding:16px!important;box-shadow:0 8px 25px rgba(22,50,80,.045)!important}.panel-title-row{margin-bottom:13px}.panel-title-row h3{font-size:14px;color:#163555}.panel-title-icon{width:30px;height:30px;border-radius:9px;background:#eef6ff;display:grid;place-items:center}.panel-title-icon .ui-icon{width:16px;height:16px}.soft-button{font-size:9.8px;padding:7px 10px;border-radius:9px}
.progress-summary{gap:12px}.progress-summary .empty-orb{width:50px;height:50px;margin:0}.progress-summary b{font-size:11.5px}.progress-summary p{font-size:9.8px!important;color:#8091a5}.progress-summary>strong{font-size:22px!important;color:#1769e0}.readiness-progress{height:7px;background:#e9f0f7;border-radius:999px;overflow:hidden}.readiness-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1a76f2,#28b8e9)}
.inline-actions{gap:8px}.small-primary{font-size:9.8px;padding:8px 11px}.inline-actions .button{font-size:9.8px;padding:8px 11px}
.activity-line{min-height:47px;padding:9px 4px;border-bottom:1px solid #edf2f7}.activity-line:last-child{border-bottom:0}.activity-line b{font-size:10.7px;color:#183858}.activity-line small{font-size:9.3px;color:#8092a6}.activity-dot{width:8px;height:8px;box-shadow:0 0 0 4px #eaf3ff}
.dashboard-footer{font-size:9.3px;color:#8a9aab;padding-top:8px}

@media(max-width:1180px){.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(285px,.9fr)}.hero-note{display:none}.dashboard-hero{grid-template-columns:1.35fr .65fr}.report-paper{left:34px}.mini-chart{left:128px}}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.dashboard-hero{min-height:235px}.dashboard-lower{grid-template-columns:1fr}.dashboard-live-shell .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pagehead:has(+ .dashboard-live-shell) h1{font-size:27px}.pagehead:has(+ .dashboard-live-shell) .page-subtitle{font-size:11px}.admin-live-strip{gap:5px}.dashboard-hero{min-height:330px;grid-template-columns:1fr}.hero-content{padding:23px 21px}.dashboard-hero h2{font-size:24px}.dashboard-hero p{font-size:11px}.hero-art{position:absolute;right:0;bottom:0;width:220px;height:170px;min-height:0;opacity:.5}.report-paper{left:35px;top:20px}.mini-chart{left:125px;top:108px}.dashboard-live-shell .stats{grid-template-columns:1fr 1fr}}
@media(max-width:470px){.dashboard-live-shell .stats{grid-template-columns:1fr}.dashboard-hero{min-height:355px}.hero-art{opacity:.3}.semester-card{padding:14px!important}}

/* V1.13.2 — Admin Dashboard Visual Refresh
   Perubahan visual tegas agar mudah dibedakan dari versi sebelumnya. */
body{background:#f5f8fc}
.pagehead:has(+ .dashboard-live-shell){position:relative;padding:8px 4px 2px}
.pagehead:has(+ .dashboard-live-shell):after{content:"Rapor Digital • Akademik • Penilaian";position:absolute;right:4px;top:12px;padding:7px 11px;border:1px solid #d9e8f8;border-radius:999px;background:#fff;color:#55728f;font-size:9px;font-weight:800;letter-spacing:.02em;box-shadow:0 6px 20px rgba(26,70,115,.05)}

.dashboard-live-shell{gap:18px}
.admin-live-strip{min-height:42px;border-color:#caeadc;background:linear-gradient(90deg,#effcf6,#ffffff 55%,#f1f8ff);box-shadow:0 7px 22px rgba(31,84,128,.05)}

.dashboard-grid{grid-template-columns:minmax(0,1.72fr) minmax(320px,.86fr);gap:18px}
.dashboard-hero{min-height:255px;border-radius:24px;background:linear-gradient(128deg,#0b3470 0%,#0a61c8 48%,#00a8df 100%);box-shadow:0 22px 54px rgba(7,74,149,.22);border:0}
.dashboard-hero:before{background:radial-gradient(circle at 72% 22%,rgba(255,255,255,.23),transparent 20%),linear-gradient(135deg,rgba(255,255,255,.08),transparent 48%)}
.dashboard-hero:after{width:520px;height:520px;right:-190px;bottom:-340px;background:rgba(255,255,255,.08)}
.hero-content{padding:31px 34px}
.badge-live{background:rgba(7,42,91,.38);border-color:rgba(255,255,255,.22);font-size:10.5px}
.dashboard-hero h2{font-size:31px;line-height:1.12;max-width:600px;margin:17px 0 10px}
.dashboard-hero p{font-size:12px;max-width:650px;line-height:1.7;color:#eaf6ff}
.hero-action{padding:9px 16px 9px 9px;font-size:11px;border-radius:12px}
.round-arrow{width:31px;height:31px;background:linear-gradient(135deg,#1d83ff,#0067de)}

.hero-art{overflow:visible}
.orb-a{width:170px;height:170px;left:18px;top:22px;background:rgba(255,255,255,.12)}
.orb-b{width:96px;height:96px;right:8px;bottom:14px;background:rgba(0,67,139,.20)}
.report-paper{width:136px;height:162px;left:52px;top:37px;border-radius:15px;box-shadow:0 20px 38px rgba(0,46,99,.25);transform:rotate(4deg)}
.report-paper:before{content:"RAPOR SISWA";font-size:7px}
.report-paper b{font-size:14px}.report-paper span{font-size:14px}.report-paper i{height:6px}
.mini-chart{left:164px;top:137px;width:76px;height:58px;border-radius:12px}
.hero-note{right:15px;top:62px;font-size:10.5px}

.semester-card{border-radius:22px!important;padding:18px!important;background:linear-gradient(180deg,#ffffff,#f9fcff);box-shadow:0 14px 36px rgba(22,62,105,.08)!important}
.card-title h3{font-size:15px}.title-icon{width:36px;height:36px}
.semester-steps>a{min-height:45px!important;border-color:#e1eaf4;background:#fff}
.semester-steps>a:first-child{border-color:#cfe2ff;background:linear-gradient(90deg,#f4f9ff,#fff)}

.dashboard-live-shell .stats{gap:15px}
.dashboard-live-shell .stat{min-height:106px;border:0!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(22,50,80,.075)!important;overflow:hidden}
.dashboard-live-shell .stat:before{width:5px;opacity:1}
.dashboard-live-shell .stat-icon{width:48px!important;height:48px!important;border-radius:14px!important}
.dashboard-live-shell .stat-copy b{font-size:11px!important}.dashboard-live-shell .stat-copy strong{font-size:29px!important}.dashboard-live-shell .stat-copy small{font-size:9.8px!important}
.stat-blue{background:linear-gradient(135deg,#ffffff 0%,#eef7ff 100%)!important}.stat-green{background:linear-gradient(135deg,#ffffff 0%,#edfbf4 100%)!important}.stat-purple{background:linear-gradient(135deg,#ffffff 0%,#f4efff 100%)!important}.stat-orange{background:linear-gradient(135deg,#ffffff 0%,#fff2e5 100%)!important}
.stat-blue .stat-icon{background:linear-gradient(135deg,#dceeff,#edf6ff)!important}.stat-green .stat-icon{background:linear-gradient(135deg,#d9f8e9,#eefcf5)!important}.stat-purple .stat-icon{background:linear-gradient(135deg,#e8ddff,#f4efff)!important}.stat-orange .stat-icon{background:linear-gradient(135deg,#ffe4c7,#fff2e4)!important}

.dashboard-lower{gap:18px}
.dashboard-panel{border:0!important;border-radius:21px!important;padding:18px!important;box-shadow:0 12px 34px rgba(22,50,80,.065)!important}
.panel-title-row h3{font-size:15px}.panel-title-icon{width:34px;height:34px;border-radius:10px}
.progress-summary{padding:8px 4px}.progress-summary .empty-orb{width:56px;height:56px}.progress-summary b{font-size:12px}.progress-summary>strong{font-size:25px!important}
.readiness-progress{height:8px}.activity-line{min-height:50px}.activity-line b{font-size:11px}

@media(max-width:1180px){.pagehead:has(+ .dashboard-live-shell):after{display:none}.dashboard-grid{grid-template-columns:1fr}.dashboard-hero{min-height:245px}}
@media(max-width:720px){.dashboard-hero{min-height:350px;border-radius:20px}.dashboard-hero h2{font-size:27px}.hero-content{padding:25px 22px}.dashboard-live-shell .stat{min-height:96px}.dashboard-live-shell .stat-copy strong{font-size:25px!important}}

/* V1.13.2 — Admin Dashboard Visual Refresh
   Perubahan visual tegas agar mudah dibedakan dari versi sebelumnya. */
body{background:#f5f8fc}
.pagehead:has(+ .dashboard-live-shell){position:relative;padding:8px 4px 2px}
.pagehead:has(+ .dashboard-live-shell):after{content:"Rapor Digital • Akademik • Penilaian";position:absolute;right:4px;top:12px;padding:7px 11px;border:1px solid #d9e8f8;border-radius:999px;background:#fff;color:#55728f;font-size:9px;font-weight:800;letter-spacing:.02em;box-shadow:0 6px 20px rgba(26,70,115,.05)}
.dashboard-live-shell{gap:18px}
.admin-live-strip{min-height:42px;border-color:#caeadc;background:linear-gradient(90deg,#effcf6,#ffffff 55%,#f1f8ff);box-shadow:0 7px 22px rgba(31,84,128,.05)}
.dashboard-grid{grid-template-columns:minmax(0,1.72fr) minmax(320px,.86fr);gap:18px}
.dashboard-hero{min-height:255px;border-radius:24px;background:linear-gradient(128deg,#0b3470 0%,#0a61c8 48%,#00a8df 100%);box-shadow:0 22px 54px rgba(7,74,149,.22);border:0}
.dashboard-hero:before{background:radial-gradient(circle at 72% 22%,rgba(255,255,255,.23),transparent 20%),linear-gradient(135deg,rgba(255,255,255,.08),transparent 48%)}
.dashboard-hero:after{width:520px;height:520px;right:-190px;bottom:-340px;background:rgba(255,255,255,.08)}
.hero-content{padding:31px 34px}
.badge-live{background:rgba(7,42,91,.38);border-color:rgba(255,255,255,.22);font-size:10.5px}
.dashboard-hero h2{font-size:31px;line-height:1.12;max-width:600px;margin:17px 0 10px}
.dashboard-hero p{font-size:12px;max-width:650px;line-height:1.7;color:#eaf6ff}
.hero-action{padding:9px 16px 9px 9px;font-size:11px;border-radius:12px}
.round-arrow{width:31px;height:31px;background:linear-gradient(135deg,#1d83ff,#0067de)}
.hero-art{overflow:visible}
.orb-a{width:170px;height:170px;left:18px;top:22px;background:rgba(255,255,255,.12)}
.orb-b{width:96px;height:96px;right:8px;bottom:14px;background:rgba(0,67,139,.20)}
.report-paper{width:136px;height:162px;left:52px;top:37px;border-radius:15px;box-shadow:0 20px 38px rgba(0,46,99,.25);transform:rotate(4deg)}
.report-paper:before{content:"RAPOR SISWA";font-size:7px}
.report-paper b{font-size:14px}.report-paper span{font-size:14px}.report-paper i{height:6px}
.mini-chart{left:164px;top:137px;width:76px;height:58px;border-radius:12px}
.hero-note{right:15px;top:62px;font-size:10.5px}
.semester-card{border-radius:22px!important;padding:18px!important;background:linear-gradient(180deg,#ffffff,#f9fcff);box-shadow:0 14px 36px rgba(22,62,105,.08)!important}
.card-title h3{font-size:15px}.title-icon{width:36px;height:36px}
.semester-steps>a{min-height:45px!important;border-color:#e1eaf4;background:#fff}
.semester-steps>a:first-child{border-color:#cfe2ff;background:linear-gradient(90deg,#f4f9ff,#fff)}
.dashboard-live-shell .stats{gap:15px}
.dashboard-live-shell .stat{min-height:106px;border:0!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(22,50,80,.075)!important;overflow:hidden}
.dashboard-live-shell .stat:before{width:5px;opacity:1}
.dashboard-live-shell .stat-icon{width:48px!important;height:48px!important;border-radius:14px!important}
.dashboard-live-shell .stat-copy b{font-size:11px!important}.dashboard-live-shell .stat-copy strong{font-size:29px!important}.dashboard-live-shell .stat-copy small{font-size:9.8px!important}
.stat-blue{background:linear-gradient(135deg,#ffffff 0%,#eef7ff 100%)!important}.stat-green{background:linear-gradient(135deg,#ffffff 0%,#edfbf4 100%)!important}.stat-purple{background:linear-gradient(135deg,#ffffff 0%,#f4efff 100%)!important}.stat-orange{background:linear-gradient(135deg,#ffffff 0%,#fff2e5 100%)!important}
.stat-blue .stat-icon{background:linear-gradient(135deg,#dceeff,#edf6ff)!important}.stat-green .stat-icon{background:linear-gradient(135deg,#d9f8e9,#eefcf5)!important}.stat-purple .stat-icon{background:linear-gradient(135deg,#e8ddff,#f4efff)!important}.stat-orange .stat-icon{background:linear-gradient(135deg,#ffe4c7,#fff2e4)!important}
.dashboard-lower{gap:18px}
.dashboard-panel{border:0!important;border-radius:21px!important;padding:18px!important;box-shadow:0 12px 34px rgba(22,50,80,.065)!important}
.panel-title-row h3{font-size:15px}.panel-title-icon{width:34px;height:34px;border-radius:10px}
.progress-summary{padding:8px 4px}.progress-summary .empty-orb{width:56px;height:56px}.progress-summary b{font-size:12px}.progress-summary>strong{font-size:25px!important}
.readiness-progress{height:8px}.activity-line{min-height:50px}.activity-line b{font-size:11px}
@media(max-width:1180px){.pagehead:has(+ .dashboard-live-shell):after{display:none}.dashboard-grid{grid-template-columns:1fr}.dashboard-hero{min-height:245px}}
@media(max-width:720px){.dashboard-hero{min-height:350px;border-radius:20px}.dashboard-hero h2{font-size:27px}.hero-content{padding:25px 22px}.dashboard-live-shell .stat{min-height:96px}.dashboard-live-shell .stat-copy strong{font-size:25px!important}}

/* V1.13.4 - Data Peserta Didik: nomor urut otomatis & ringkasan */
.student-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:14px 0 18px;
}
.student-summary-card{
  border:1px solid #dbe7f4;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border-radius:14px;
  padding:14px 16px;
  box-shadow:0 6px 18px rgba(15,76,129,.05);
}
.student-summary-card span{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.01em;
  color:#60758f;
  margin-bottom:4px;
}
.student-summary-card strong{
  display:block;
  font-size:25px;
  line-height:1.1;
  color:#0f2f54;
  font-variant-numeric:tabular-nums;
}
.student-summary-card small{
  display:block;
  margin-top:5px;
  color:#7c8da1;
}
.student-no-col,
.student-no-cell{
  width:64px;
  min-width:64px;
  text-align:center !important;
}
.student-row-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  height:32px;
  padding:0 8px;
  border-radius:10px;
  background:#eef6ff;
  color:#0d5fb8;
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
@media (max-width:900px){
  .student-summary-grid{grid-template-columns:1fr;}
}

/* NTT-RAPORT V1.16.0 - simplified academic import flow */
.import-flow-panel{overflow:hidden}.import-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0 18px}.import-step{position:relative;display:flex;flex-direction:column;gap:3px;min-height:92px;padding:14px 12px 12px 46px;border:1px solid #d9e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.import-step>span{position:absolute;left:12px;top:14px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#eaf3ff;color:#0b62c9;font-weight:800}.import-step b{font-size:13px;color:#16365c}.import-step small{font-size:11px;color:#6a809b;line-height:1.35}.import-step.is-core{border-color:#9fc9ff;background:linear-gradient(180deg,#f7fbff,#edf6ff);box-shadow:0 5px 16px rgba(28,120,235,.08)}.import-main-form{padding-top:4px}.import-file-field{grid-column:span 2}.template-stage{margin-top:14px;padding:14px 16px;border:1px solid #dce7f4;border-radius:14px;background:#fbfdff}.template-stage-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.template-stage-head>div{display:flex;flex-direction:column;gap:3px}.template-stage-head b{color:#153b67}.template-stage-head small{color:#6b819b}.stage-no{min-width:42px;padding:5px 8px;border-radius:9px;background:#e9f3ff;color:#0d67cb;text-align:center;font-weight:800}.advanced-import{margin-top:14px;padding:12px 14px;border:1px dashed #c9d7e8;border-radius:12px;background:#fafcff}.advanced-import summary{cursor:pointer;font-weight:700;color:#2a496d}.advanced-import p{margin:8px 0 10px;color:#71849b}.template-links{display:flex;flex-wrap:wrap;gap:8px}.template-pair{display:inline-flex;gap:3px}.template-pair .button-link{white-space:nowrap}
@media(max-width:1200px){.import-stepper{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.import-stepper{grid-template-columns:1fr 1fr}.import-file-field{grid-column:auto}}@media(max-width:520px){.import-stepper{grid-template-columns:1fr}.template-pair{width:100%}.template-pair .button-link:first-child{flex:1}}

/* V1.24.1 - Data Peserta Didik bulk selection & safe deletion */
.student-select-col,.student-select-cell{width:46px;min-width:46px;text-align:center!important}
.student-select-col input,.student-select-cell input{width:18px!important;height:18px!important;min-width:18px;margin:0;accent-color:#1d7df0;cursor:pointer}
.student-bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 10px;padding:12px 14px;border:1px solid #dbe7f4;border-radius:14px;background:linear-gradient(180deg,#f9fcff,#f4f9ff)}
.student-bulk-info{display:flex;flex-direction:column;gap:3px;min-width:220px}.student-bulk-info b{color:#173657;font-size:13px}.student-bulk-info small{color:#6e8299;font-size:11px}
.student-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.student-bulk-actions button{white-space:nowrap}
.student-bulk-actions button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.student-bulk-help{margin:0 0 13px;padding:9px 12px;border-left:3px solid #7aaef0;border-radius:8px;background:#f8fbff;color:#5f738b;font-size:11px;line-height:1.5}.student-bulk-help b{color:#264f7d}
@media(max-width:760px){.student-bulk-toolbar{align-items:stretch;flex-direction:column}.student-bulk-actions{justify-content:flex-start}.student-bulk-actions button{flex:1 1 auto}}

/* V1.29.0 - akun guru otomatis + reset password icon */
.teacher-account-actions{align-items:center;flex-wrap:wrap;gap:8px}.teacher-account-actions form{display:inline-flex;margin:0}.teacher-icon-action{width:38px;height:38px;padding:0!important;border-radius:10px!important;display:inline-grid!important;place-items:center;background:#fff!important;border:1px solid #d8e5f2!important;box-shadow:none!important;transition:.16s ease;color:#176fc7!important}.teacher-icon-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.teacher-icon-action:hover{transform:translateY(-1px);border-color:#9dc9f3!important;background:#f2f8ff!important;box-shadow:0 6px 14px rgba(23,111,199,.10)!important}.teacher-icon-action.reset{color:#7a56d8!important;background:#faf8ff!important;border-color:#ded4fb!important}.teacher-icon-action.reset:hover{border-color:#b8a4f0!important;background:#f5f0ff!important}.teacher-icon-action.create{color:#138a5b!important;background:#f5fff9!important;border-color:#c9eadc!important}.teacher-icon-action.create:hover{border-color:#91d3b5!important;background:#ecfbf4!important}
@media(max-width:720px){.teacher-account-actions{min-width:210px}.teacher-icon-action{width:36px;height:36px}}

/* V1.30.1 - Guru & Account Manager: clearer, modern, responsive UI */
.teacher-manager{padding:0!important;overflow:hidden;border:1px solid #dfe9f4!important;border-radius:22px!important;background:#fff!important;box-shadow:0 14px 38px rgba(28,61,95,.07)!important}
.teacher-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 26px 20px;border-bottom:1px solid #e7eef6;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.teacher-manager-head h3{margin:4px 0 7px;font-size:22px;line-height:1.15;color:#133456;letter-spacing:-.02em}.teacher-manager-head p{max-width:760px;margin:0;color:#687f98;font-size:12px;line-height:1.65}.teacher-kicker{display:block;color:#5e7fa4;font-size:9px;font-weight:900;letter-spacing:.12em}.teacher-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.teacher-head-actions form{margin:0}.teacher-head-actions button{min-height:40px}.teacher-sync-all{display:inline-flex!important;align-items:center;gap:7px;background:#fff!important;color:#1769cb!important;border:1px solid #cfe0f2!important}.teacher-sync-all:hover{background:#f5f9ff!important;border-color:#a9caf0!important}.teacher-sync-all span{font-size:17px;line-height:1}
.teacher-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 26px 8px}.teacher-summary-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;min-height:102px;padding:15px 16px;border:1px solid #e3ebf5;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(25,59,94,.035)}.teacher-summary-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eef6ff;font-size:18px}.teacher-summary-card span,.teacher-summary-card small{display:block}.teacher-summary-card span{font-size:10px;font-weight:800;color:#627a96}.teacher-summary-card strong{display:block;margin:2px 0 1px;font-size:25px;line-height:1;color:#153b61}.teacher-summary-card small{font-size:9.5px;line-height:1.4;color:#8698ab}.teacher-summary-card.good .teacher-summary-icon{background:#ecfbf4}.teacher-summary-card.good strong{color:#17845a}.teacher-summary-card.warning .teacher-summary-icon{background:#fff7e8}.teacher-summary-card.warning strong{color:#b56b00}.teacher-summary-card.info .teacher-summary-icon{background:#f3efff}.teacher-summary-card.info strong{color:#7454ca}.teacher-summary-card.danger .teacher-summary-icon{background:#fff0f0}.teacher-summary-card.danger strong{color:#c23f3f}
.teacher-flow-help{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:8px 26px 18px;padding:10px 12px;border:1px solid #e3ecf6;border-radius:13px;background:#f8fbff;color:#637d98;font-size:10px}.teacher-flow-help>b{margin-right:4px;color:#244867}.teacher-flow-help span{display:inline-flex;align-items:center;gap:6px}.teacher-flow-help i{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#e6f1ff;color:#166ed3;font-style:normal;font-size:9px;font-weight:900}
.teacher-filters{margin:0 26px 16px;padding:12px 13px;border:1px solid #e0eaf5;border-radius:14px;background:#fbfdff}.teacher-filters label{min-width:280px;flex:1}.teacher-filters input[type="search"]{min-height:40px}.teacher-clear-search{align-self:flex-end;text-decoration:none!important}
.teacher-table-wrap{margin:0 26px;border:1px solid #e2eaf4;border-radius:15px;overflow:auto;box-shadow:none}.teacher-table{min-width:1180px}.teacher-table thead th{position:sticky;top:0;z-index:2;background:#f7faff;color:#5d738d;font-size:9px;letter-spacing:.035em;text-transform:uppercase}.teacher-table tbody td{vertical-align:middle}.teacher-table tbody tr:hover{background:#fbfdff}.teacher-username-cell{max-width:220px;overflow-wrap:anywhere}.teacher-muted{color:#9aaabd;font-size:10px}.teacher-role-list{display:flex;gap:5px;flex-wrap:wrap;max-width:250px}.teacher-role-chip{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border:1px solid #d6e6f7;border-radius:999px;background:#f3f8ff;color:#2c6daa;font-size:9px;font-weight:700;white-space:nowrap}.teacher-status-badge{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 9px;border-radius:999px;background:#f1f5f9;color:#5d7085;font-size:9px;font-weight:800;white-space:nowrap}.teacher-status-badge i{width:6px;height:6px;border-radius:50%;background:#95a6b7}.teacher-status-badge.status-aktif,.teacher-status-badge.status-active{background:#ecfaf3;color:#16794f}.teacher-status-badge.status-aktif i,.teacher-status-badge.status-active i{background:#24ae74}.teacher-status-badge.status-terkunci{background:#fff1f1;color:#b53f3f}.teacher-status-badge.status-terkunci i{background:#e45c5c}.teacher-status-badge.status-belum_ada{background:#fff7e9;color:#a66a11}.teacher-status-badge.status-belum_ada i{background:#e9a735}.teacher-master-status{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:4px 8px;border-radius:8px;font-size:9px;font-weight:800}.teacher-master-status.is-active{background:#edf9f4;color:#177a53}.teacher-master-status.is-inactive{background:#f3f5f7;color:#748292}
.teacher-account-actions>button[data-edit]{min-height:38px;padding:0 13px;border-radius:10px}.teacher-account-actions .danger-button{min-height:38px;padding:0 12px;border-radius:10px}.teacher-manager>.pagination{padding:13px 26px 18px}
.teacher-credential-card{margin:0 0 16px;border:1px solid #cae8d8;border-radius:18px;background:linear-gradient(180deg,#f6fffa,#f2fbf7);box-shadow:0 8px 24px rgba(25,111,73,.06);overflow:hidden}.teacher-credential-head{display:flex;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid #dbeee4}.teacher-credential-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e5f8ee;font-size:18px}.teacher-credential-head>div:nth-child(2){min-width:0;flex:1}.teacher-credential-head b{display:block;color:#155c41;font-size:12px}.teacher-credential-head p{margin:3px 0 0;color:#698677;font-size:10px}.teacher-one-time-badge{padding:5px 9px;border-radius:999px;background:#fff;color:#347157;border:1px solid #cbe5d7;font-size:9px;font-weight:900}.teacher-credential-list{display:grid;gap:8px;padding:12px 17px}.teacher-credential-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.teacher-credential-row>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:10px 12px;border:1px solid #dcece4;border-radius:12px;background:#fff}.teacher-credential-row span{grid-column:1/-1;color:#7a9386;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.teacher-credential-row strong,.teacher-credential-row code{min-width:0;overflow-wrap:anywhere;color:#193c2f;font-size:10.5px}.teacher-copy-button{min-height:30px!important;padding:0 10px!important;border-radius:8px!important;background:#f4fbf7!important;color:#216c4c!important;border:1px solid #cee7d8!important;font-size:9px!important}.teacher-copy-button.is-copied{background:#e7f8ef!important;color:#157349!important}.teacher-credential-note{padding:9px 17px 12px;color:#6d887a;font-size:9px}
@media(max-width:1150px){.teacher-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-manager-head{align-items:stretch;flex-direction:column}.teacher-head-actions{justify-content:flex-start}}
@media(max-width:720px){.teacher-manager{border-radius:17px!important}.teacher-manager-head{padding:18px 15px 15px}.teacher-manager-head h3{font-size:20px}.teacher-head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.teacher-head-actions form,.teacher-head-actions button{width:100%}.teacher-summary-grid{grid-template-columns:1fr 1fr;padding:13px 15px 6px;gap:8px}.teacher-summary-card{grid-template-columns:34px minmax(0,1fr);min-height:88px;padding:12px}.teacher-summary-icon{width:34px;height:34px;border-radius:10px;font-size:15px}.teacher-summary-card strong{font-size:21px}.teacher-flow-help{margin:7px 15px 13px;align-items:flex-start}.teacher-flow-help>b{width:100%}.teacher-filters{margin:0 15px 13px;align-items:stretch}.teacher-filters label{min-width:0;width:100%}.teacher-filters button,.teacher-filters .button{flex:1}.teacher-table-wrap{margin:0 15px;border-radius:12px}.teacher-manager>.pagination{padding:12px 15px 16px}.teacher-credential-row{grid-template-columns:1fr}.teacher-credential-head{align-items:flex-start}.teacher-one-time-badge{white-space:nowrap}}
@media(max-width:460px){.teacher-head-actions,.teacher-summary-grid{grid-template-columns:1fr}.teacher-summary-card{min-height:auto}.teacher-credential-head{flex-wrap:wrap}.teacher-one-time-badge{margin-left:50px}.teacher-account-actions{min-width:250px}}

/* V1.30.2 - searchable teacher combobox */
.search-combobox{position:relative;width:100%;min-width:0}.search-combobox-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important}.search-combobox-control{position:relative;display:flex;align-items:center;width:100%}.search-combobox-input{width:100%!important;min-width:0;min-height:42px!important;padding-right:42px!important;background:#fff!important;border:1px solid #cfdeee!important;border-radius:10px!important;color:#173451!important;font-size:11px!important;font-weight:600;box-shadow:0 1px 2px rgba(20,50,80,.02);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.search-combobox-input::placeholder{color:#8b9daf;font-weight:500}.search-combobox-input:focus{outline:none!important;border-color:#2784f5!important;box-shadow:0 0 0 3px rgba(39,132,245,.12)!important;background:#fff!important}.search-combobox-toggle{position:absolute!important;right:5px;top:50%;transform:translateY(-50%);display:grid!important;place-items:center;width:32px!important;height:32px!important;min-height:0!important;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#6f849a!important;box-shadow:none!important;font-size:19px!important}.search-combobox-toggle:hover{background:#f0f6fc!important;color:#176dce!important}.search-combobox.is-open .search-combobox-toggle span{transform:rotate(180deg)}.search-combobox-toggle span{display:block;transition:transform .15s ease}.search-combobox-list{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 6px);max-height:300px;overflow-y:auto;padding:6px;border:1px solid #d8e5f1;border-radius:12px;background:#fff;box-shadow:0 16px 38px rgba(24,55,88,.16)}.search-combobox-option{position:relative!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center!important;width:100%!important;min-height:47px!important;padding:8px 40px 8px 10px!important;border:0!important;border-radius:9px!important;background:#fff!important;color:#173451!important;text-align:left!important;box-shadow:none!important;white-space:normal!important}.search-combobox-option:hover,.search-combobox-option.is-active{background:#eef6ff!important;color:#0f63c3!important}.search-combobox-option strong{font-size:11px;line-height:1.3}.search-combobox-option small{margin-top:3px;color:#7890a7;font-size:9.5px;line-height:1.25}.search-combobox-option[aria-selected="true"]{background:#f2f8ff!important}.search-combobox-check{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#2180ee;color:#fff;font-size:11px;font-weight:900}.search-combobox-empty{padding:18px 12px;text-align:center;color:#788da3;font-size:10px;line-height:1.5}.search-combobox.is-invalid .search-combobox-input{border-color:#e04e4e!important;box-shadow:0 0 0 3px rgba(224,78,78,.1)!important}.search-combobox.has-value .search-combobox-input{color:#153d63}.learning-step .search-combobox{margin-top:0}
@media(max-width:720px){.search-combobox-input{min-height:46px!important;font-size:12px!important}.search-combobox-list{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:min(58vh,420px);z-index:300;border-radius:16px;padding:8px;box-shadow:0 22px 56px rgba(20,43,67,.28)}.search-combobox-option{min-height:52px!important;padding:10px 42px 10px 12px!important}.search-combobox-option strong{font-size:12px}.search-combobox-option small{font-size:10px}}

/* =========================================================
   V1.31.0 — Unified Modern Responsive Theme
   Global UI-only layer. Menjaga endpoint, permission, query,
   source-of-truth, dan workflow existing tetap utuh.
   ========================================================= */
:root{
  --ui-blue:#1378f2;--ui-blue-2:#0a67dc;--ui-navy:#07345f;--ui-navy-deep:#042542;
  --ui-cyan:#26aee8;--ui-bg:#f4f8fc;--ui-surface:#ffffff;--ui-soft:#f8fbff;
  --ui-line:#dfe8f2;--ui-line-strong:#cbd9e8;--ui-text:#102743;--ui-muted:#6f829a;
  --ui-success:#12a66a;--ui-warning:#d97706;--ui-danger:#d92d20;
  --ui-radius-sm:10px;--ui-radius:15px;--ui-radius-lg:20px;
  --ui-shadow:0 10px 30px rgba(24,60,102,.065);--ui-shadow-hover:0 16px 36px rgba(24,60,102,.10)
}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f8fbff 0,#f3f7fb 100%);color:var(--ui-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.app:not(.auth-app){grid-template-columns:260px minmax(0,1fr)}
.workspace{background:transparent}

/* sidebar: hirarki menu lebih mudah dipindai */
.sidebar{width:260px;padding:16px 12px 13px;background:linear-gradient(180deg,#073b6c 0%,#052e57 55%,#042541 100%);box-shadow:12px 0 34px rgba(8,45,80,.09)}
.brand{margin:-16px -12px 9px;top:-16px;padding:18px 15px 15px;background:linear-gradient(180deg,#073b6c 84%,rgba(7,59,108,.96))}
.brand .mark{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#29b9f5,#1178f1)}
.brand strong{font-size:15.5px}.brand small{font-size:10px}
.nav-scroll{padding-bottom:8px}
.nav-section{margin-top:8px!important}
.nav-section-title{min-height:31px;padding:7px 10px!important;font-size:9.4px!important;letter-spacing:.065em!important;color:#8eb0ce!important}
.nav-section.is-open>.nav-section-title,.nav-section:has(.nav-item.active)>.nav-section-title{color:#e8f5ff!important}
.nav-section-items{gap:2px!important}
.nav-item{min-height:40px!important;padding:9px 11px!important;margin:1px 0!important;border-radius:10px!important;font-size:11.2px!important;font-weight:650!important;color:#d7e7f5!important}
.nav-item .ui-icon{width:17px!important;height:17px!important;color:#bfd9ee!important}
.nav-item:hover{background:rgba(255,255,255,.075)!important;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(92deg,#1682ff,#237cf2)!important;box-shadow:0 8px 20px rgba(0,103,238,.28)}
.nav-item.active:before{top:10px;bottom:10px;width:3px}
.sidebar-foot{position:sticky;bottom:0;margin:9px -2px -2px;padding:11px 10px 8px;background:linear-gradient(180deg,rgba(4,37,65,.15),#042541 34%);border-radius:10px}

/* topbar */
.topbar{height:74px;padding:0 26px;background:rgba(255,255,255,.97);border-color:#e4ebf3;box-shadow:0 4px 16px rgba(31,63,99,.035)}
.topbar-brand strong{font-size:15px}.topbar-brand small{font-size:10.5px}
.global-search{width:min(390px,29vw);height:42px;border-radius:12px;background:#f8fbff}
.global-search input{font-size:11.7px!important}
.year-chip{min-height:42px;border-radius:12px;background:#f3f8ff}
.avatar{width:40px;height:40px}.logout{min-height:38px;border-radius:10px!important}

/* main page rhythm */
main{width:100%;max-width:1540px;padding:24px 30px 28px}
.pagehead{margin-bottom:18px;min-height:52px;align-items:center}
.pagehead h1{font-size:clamp(24px,2vw,31px);letter-spacing:-.035em;margin:3px 0 5px}
.pagehead .eyebrow{font-size:9px;color:#577594;font-weight:900}
.page-subtitle{max-width:850px}

/* universal surfaces */
.panel,.stat,.control-hero,.workqueue-card,.task-center-card,.print-center-card,.report-sheet{
  border-color:var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:var(--ui-shadow)!important;background:var(--ui-surface)
}
.panel{padding:19px}
.panel:hover{border-color:#d5e2ef}
.toolbar{gap:14px;padding-bottom:15px}
.toolbar h2,.toolbar h3{letter-spacing:-.015em}
.toolbar p{color:var(--ui-muted)}

/* forms */
label{color:#29435e;font-size:11.5px;font-weight:750;gap:6px;margin-bottom:13px}
input,select,textarea{min-height:42px;border-color:var(--ui-line-strong)!important;border-radius:10px!important;background:#fff!important;color:var(--ui-text)!important;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
textarea{padding:11px 12px}
input:hover,select:hover,textarea:hover{border-color:#aebfd1!important}
input:focus,select:focus,textarea:focus{border-color:#61a8fa!important;box-shadow:0 0 0 3px rgba(19,120,242,.11)!important}
input::placeholder,textarea::placeholder{color:#93a3b7}
.primary,.button,button,.button-link{min-height:40px;border-radius:10px!important;font-weight:780;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}
.primary{background:linear-gradient(180deg,#2086fb,#1376ef)!important;border-color:#1376ef!important;box-shadow:0 7px 17px rgba(19,118,239,.19)!important}
.primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(19,118,239,.24)!important}
.button:hover,button:hover{border-color:#b9cbe0}
.danger-button{background:#fffafa!important}

/* stats, alerts, progress */
.stats{gap:14px}.stat{padding:18px;min-height:112px}.stat strong{font-size:27px;letter-spacing:-.03em}.stat span,.stat small{font-size:11px}
.notice,.alert{border-radius:12px;padding:12px 14px;line-height:1.5}
.empty{padding:40px 20px;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f8fbfe);border-color:#ccdae8}
.empty b{font-size:15px}.empty p{font-size:11.5px}

/* table system */
.table-wrap{border:1px solid var(--ui-line);border-radius:13px;background:#fff;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.table-wrap>table{margin:0}
table{border-collapse:separate;border-spacing:0}
th{background:#f6f9fd!important;color:#617891!important;font-size:10.4px!important;font-weight:850!important;letter-spacing:.055em!important;padding:11px 12px!important}
td{padding:12px!important;color:#294159}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:#f8fbff!important}
.table-wrap th:first-child{border-top-left-radius:12px}.table-wrap th:last-child{border-top-right-radius:12px}
.actions{gap:6px;flex-wrap:wrap}.actions button,.actions .button,.actions .button-link{min-height:35px;padding:7px 10px;font-size:10.5px}
.pagination{font-size:11px}

/* modal */
.modal{border-radius:19px!important;box-shadow:0 28px 90px rgba(4,33,62,.28)!important}
.modal::backdrop{background:rgba(4,34,63,.52);backdrop-filter:blur(4px)}
.modal-head{padding-bottom:15px}.modal-actions{padding-top:15px}

/* smarter responsive layout */
@media(max-width:1220px){
  .app:not(.auth-app){grid-template-columns:238px minmax(0,1fr)}.sidebar{width:238px}
  main{padding:22px}.global-search{width:min(300px,25vw)}
  .form-grid{gap:0 12px}
}
@media(max-width:1000px){
  .app:not(.auth-app){grid-template-columns:1fr}.sidebar{width:274px!important;height:100dvh;padding:16px 12px;z-index:80;box-shadow:18px 0 50px rgba(4,37,65,.22)}
  .sidebar.open{transform:none}.topbar{padding:0 16px}.global-search{width:min(360px,42vw)}main{padding:20px 17px 26px}
  body.sidebar-collapsed .sidebar{width:274px!important;padding:16px 12px}
}
@media(max-width:760px){
  .topbar{height:64px;padding:0 12px}.global-search,.year-chip{display:none}.user-copy{display:none!important}.logout span{display:none}.logout{width:38px;padding:0!important;justify-content:center}
  main{padding:17px 12px 24px}.pagehead{margin-bottom:13px;min-height:auto}.pagehead h1{font-size:25px}.pagehead .eyebrow{font-size:8.5px}
  .panel{padding:15px}.toolbar{align-items:stretch;flex-direction:column}.toolbar>.actions,.toolbar>.inline-actions{width:100%}.toolbar .primary,.toolbar .button{justify-content:center}
  .filters{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:13px 0!important}.filters label{margin:0}.filters input,.filters select{min-width:0!important}
  .form-grid,.grid.two{grid-template-columns:1fr!important}.span-2{grid-column:auto!important}
  .modal{width:calc(100% - 16px);max-height:94dvh}.modal>form{padding:17px}
  .table-wrap{margin-left:-2px;margin-right:-2px;border-radius:11px}.actions{min-width:max-content}
}
@media(max-width:480px){
  .topbar-brand strong{font-size:13px}.topbar .avatar{width:35px;height:35px}.notification{display:none}
  main{padding-left:10px;padding-right:10px}.pagehead h1{font-size:23px}.panel{padding:13px;border-radius:13px!important}
  .primary,.button,button,.button-link{min-height:42px}.actions button,.actions .button,.actions .button-link{min-height:38px}
}

/* print tetap bersih dan tidak membawa chrome aplikasi */
@media print{.sidebar,.topbar,.pagehead{display:none!important}.workspace,main{max-width:none!important;width:100%!important;padding:0!important;margin:0!important}.panel,.report-sheet{box-shadow:none!important}}

/* V1.32.0 — Enterprise Commercial Readiness & Control Center */
.commercial-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;margin-bottom:18px;padding:28px;border:1px solid #dfe9f5;border-radius:24px;background:linear-gradient(135deg,#ffffff 0%,#f5faff 58%,#edf6ff 100%);box-shadow:0 18px 44px rgba(26,66,112,.08)}
.commercial-kicker{display:inline-flex;margin-bottom:8px;color:#1474de;font-size:10px;font-weight:900;letter-spacing:.14em}.commercial-hero h2{margin:0 0 9px;color:#102f51;font-size:28px;letter-spacing:-.025em}.commercial-hero p{max-width:850px;margin:0;color:#627c98;font-size:12px;line-height:1.7}.commercial-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.commercial-meta span{padding:7px 10px;border:1px solid #dce9f6;border-radius:10px;background:#fff;color:#69809a;font-size:10px}.commercial-meta b{color:#173c64}
.commercial-score{display:grid;justify-items:center;gap:8px;min-width:170px}.commercial-score-ring{--score:0;position:relative;width:126px;height:126px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#1b7df0 calc(var(--score)*1%),#e8f1fb 0);box-shadow:inset 0 0 0 1px rgba(22,100,190,.08)}.commercial-score-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}.commercial-score-ring strong,.commercial-score-ring span{position:relative;z-index:1}.commercial-score-ring strong{margin-top:14px;color:#123b66;font-size:28px;line-height:1}.commercial-score-ring span{max-width:90px;margin-top:-18px;color:#6b819a;font-size:9px;text-align:center}.commercial-score>small{color:#74899f;font-size:9px}
.commercial-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.commercial-metric{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;min-height:102px;padding:16px;border:1px solid #e0e9f4;border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(25,61,101,.04)}.commercial-metric-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#eef6ff;color:#146fd4;font-size:20px;font-weight:800}.commercial-metric small,.commercial-metric span{display:block}.commercial-metric small{color:#758ba2;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.commercial-metric strong{display:block;margin:3px 0;color:#173a5e;font-size:17px;line-height:1.2;word-break:break-word}.commercial-metric span{color:#8395a8;font-size:9.5px}.commercial-metric.good .commercial-metric-icon{background:#ecfbf4;color:#17855c}.commercial-metric.warning .commercial-metric-icon{background:#fff7e7;color:#b76d00}.commercial-metric.danger .commercial-metric-icon{background:#fff0f0;color:#c23f3f}
.commercial-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.commercial-main{display:grid;gap:18px}.commercial-side{display:grid;gap:18px;position:sticky;top:92px}.commercial-priority-list{display:grid;gap:9px}.commercial-priority{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 13px;border:1px solid #e2ebf4;border-radius:13px;background:#fff;color:inherit;text-decoration:none;transition:.15s ease}.commercial-priority:hover{transform:translateY(-1px);border-color:#bcd5ef;box-shadow:0 7px 18px rgba(23,72,120,.06)}.commercial-priority.warning{border-left:3px solid #e6a72c}.commercial-priority.critical{border-left:3px solid #df5a5a}.commercial-priority-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f5f9fe;color:#1a6dcc;font-weight:900}.commercial-priority b{display:block;color:#1c3c5f;font-size:11px}.commercial-priority small{display:block;margin-top:2px;color:#748aa0;font-size:9.5px;line-height:1.45}.commercial-priority-action{color:#176fcf;font-size:9.5px;font-weight:800;white-space:nowrap}.commercial-all-good{padding:20px;border:1px solid #cfe9dc;border-radius:14px;background:#f4fcf8;text-align:center}.commercial-all-good b{color:#177751}.commercial-all-good p{margin:5px 0 0;color:#6c887b;font-size:10px}
.commercial-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.commercial-check-group{overflow:hidden;border:1px solid #e0e9f4;border-radius:17px;background:#fff}.commercial-check-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid #e8eff7;background:#fbfdff}.commercial-check-head h3{margin:0;color:#17395c;font-size:13px}.commercial-check-head small{color:#7c8fa4;font-size:9px}.commercial-check-head>span{min-width:44px;padding:6px 8px;border-radius:999px;background:#edf5ff;color:#1468c7;text-align:center;font-size:10px;font-weight:900}.commercial-check-list{display:grid}.commercial-check{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #edf2f7;color:inherit;text-decoration:none}.commercial-check:last-child{border-bottom:0}.commercial-check:hover{background:#fbfdff}.commercial-check-dot{width:9px;height:9px;border-radius:50%;background:#27a975;box-shadow:0 0 0 3px #e8f8f1}.commercial-check.warning .commercial-check-dot{background:#d99a26;box-shadow:0 0 0 3px #fff5df}.commercial-check.critical .commercial-check-dot{background:#d74e4e;box-shadow:0 0 0 3px #ffebeb}.commercial-check b{display:block;color:#23415f;font-size:10.5px}.commercial-check small{display:block;margin-top:2px;color:#7d91a5;font-size:9px;line-height:1.4}.commercial-check strong{font-size:8.5px;color:#23835d}.commercial-check.warning strong{color:#a97013}.commercial-check.critical strong{color:#bd3d3d}
.commercial-side-card h3{margin-top:0}.commercial-health-list{display:grid;gap:0;margin:4px 0 14px}.commercial-health-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f7;color:#627b95;font-size:10px}.commercial-health-list b{min-width:30px;padding:4px 7px;border-radius:999px;text-align:center}.commercial-health-list b.ok{background:#eaf8f1;color:#187e58}.commercial-health-list b.bad{background:#fff0f0;color:#bd3e3e}.wide{width:100%;justify-content:center}.commercial-release-list{display:grid;gap:8px;margin:8px 0 16px;padding-left:22px;color:#59728d;font-size:10px;line-height:1.5}.commercial-release-list li::marker{color:#1b78df;font-weight:800}
.commercial-diagnostic{margin-top:18px}.commercial-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.commercial-tool{display:flex;min-height:120px;flex-direction:column;padding:14px;border:1px solid #e0e9f3;border-radius:14px;background:#fbfdff;color:inherit;text-decoration:none}.commercial-tool:hover{border-color:#b8d4f0;background:#f5faff}.commercial-tool b{color:#1d405f;font-size:11px}.commercial-tool span{flex:1;margin-top:5px;color:#758ba0;font-size:9.5px;line-height:1.5}.commercial-tool strong{margin-top:10px;color:#176fce;font-size:9.5px}
@media(max-width:1200px){.commercial-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-layout{grid-template-columns:1fr}.commercial-side{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.commercial-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.commercial-hero{grid-template-columns:1fr;padding:20px}.commercial-score{grid-template-columns:auto 1fr;justify-items:start}.commercial-score-ring{width:104px;height:104px}.commercial-summary-grid,.commercial-check-grid,.commercial-side,.commercial-tool-grid{grid-template-columns:1fr}.commercial-priority{grid-template-columns:32px minmax(0,1fr)}.commercial-priority-action{grid-column:2}.commercial-hero h2{font-size:23px}}

/* ==========================================================
   NTT-RAPORT V1.32.1 — Stable Academic Mapping Form Layout
   Menjaga semua combobox/input tetap satu garis, tidak naik-turun.
   ========================================================== */
.learning-create{
  display:grid!important;
  grid-template-columns:minmax(280px,1.35fr) minmax(300px,1.45fr) minmax(260px,.85fr) auto!important;
  gap:14px!important;
  align-items:start!important;
  padding:18px!important;
  border:1px solid #d9e6f3!important;
  border-radius:16px!important;
  background:#fff!important;
}
.learning-step{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  gap:10px!important;
  align-items:start!important;
  min-width:0!important;
}
.learning-step>span{
  display:grid!important;
  place-items:center!important;
  width:30px!important;
  height:30px!important;
  margin:26px 0 0!important;
  border-radius:9px!important;
  background:#eaf3ff!important;
  color:#1769ca!important;
  font-weight:900!important;
  line-height:1!important;
}
.learning-step label,
.learning-fields label{
  display:grid!important;
  grid-template-rows:20px 46px auto!important;
  gap:7px!important;
  align-content:start!important;
  min-width:0!important;
  margin:0!important;
  color:#243f5d!important;
  font-weight:800!important;
  line-height:20px!important;
}
.learning-step label>select,
.learning-step label>.search-combobox,
.learning-fields label>input{
  grid-row:2!important;
  align-self:start!important;
  margin:0!important;
}
.learning-step small{
  grid-row:3!important;
  display:block!important;
  min-height:30px!important;
  margin:0!important;
  color:#6d8299!important;
  font-size:10px!important;
  font-weight:600!important;
  line-height:1.35!important;
}
.learning-fields{
  display:grid!important;
  grid-template-columns:minmax(130px,1fr) minmax(140px,1fr)!important;
  gap:10px!important;
  min-width:0!important;
}
.learning-fields label{
  grid-template-rows:20px 46px!important;
}
.learning-create input,
.learning-create select,
.learning-create .search-combobox-input{
  height:46px!important;
  min-height:46px!important;
  box-sizing:border-box!important;
}
.learning-create .search-combobox{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.learning-create .search-combobox-control{
  height:46px!important;
  min-height:46px!important;
  margin:0!important;
}
.learning-create .search-combobox-input{
  padding:0 44px 0 14px!important;
  border-radius:11px!important;
  line-height:44px!important;
}
.learning-create .search-combobox-toggle{
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}
.learning-submit{
  align-self:start!important;
  height:46px!important;
  min-height:46px!important;
  margin:27px 0 0!important;
  padding:0 20px!important;
  white-space:nowrap!important;
  border-radius:11px!important;
}
@media(max-width:1250px){
  .learning-create{
    grid-template-columns:minmax(240px,1fr) minmax(260px,1fr)!important;
  }
  .learning-fields{
    grid-column:1 / 2!important;
  }
  .learning-submit{
    grid-column:2!important;
    align-self:end!important;
    justify-self:end!important;
    margin:27px 0 0!important;
  }
}
@media(max-width:760px){
  .learning-create{
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:14px!important;
  }
  .learning-step,
  .learning-fields,
  .learning-submit{
    grid-column:1!important;
  }
  .learning-step>span{
    margin-top:26px!important;
  }
  .learning-fields{
    grid-template-columns:1fr 1fr!important;
  }
  .learning-submit{
    width:100%!important;
    justify-self:stretch!important;
    margin-top:2px!important;
  }
}
@media(max-width:500px){
  .learning-fields{grid-template-columns:1fr!important}
  .learning-step{grid-template-columns:30px minmax(0,1fr)!important}
  .learning-step small{min-height:0!important}
}

/* ==========================================================
   NTT-RAPORT V1.32.2 — Precise & Spaced Academic Form
   Form pembelajaran dibuat stabil, lega, dan presisi.
   ========================================================== */
.learning-create{
  display:grid!important;
  grid-template-columns:minmax(280px,1.25fr) minmax(310px,1.4fr) minmax(150px,.58fr) minmax(170px,.65fr) minmax(190px,.72fr)!important;
  column-gap:20px!important;
  row-gap:16px!important;
  align-items:start!important;
  padding:22px 24px!important;
  border:1px solid #d9e6f3!important;
  border-radius:18px!important;
  background:#fff!important;
}
.learning-step,
.learning-field,
.learning-action{min-width:0!important;margin:0!important}
.learning-step{display:block!important}
.learning-step>span{display:none!important}
.learning-step label,
.learning-field label,
.learning-action{
  display:grid!important;
  grid-template-rows:28px 48px minmax(42px,auto)!important;
  gap:8px!important;
  align-content:start!important;
  min-width:0!important;
  margin:0!important;
}
.learning-field-title,
.learning-action-label{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  height:28px!important;
  color:#263f5a!important;
  font-size:11px!important;
  font-weight:850!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.learning-number{
  display:inline-grid!important;
  place-items:center!important;
  width:26px!important;
  height:26px!important;
  flex:0 0 26px!important;
  border-radius:8px!important;
  background:#eaf3ff!important;
  color:#1769ca!important;
  font-size:11px!important;
  font-weight:900!important;
}
.learning-field-title>.required-mark{
  position:static!important;
  display:inline!important;
  margin:0 0 0 1px!important;
  color:#e14848!important;
  font-size:12px!important;
  line-height:1!important;
}
.learning-step label>select,
.learning-step label>.search-combobox,
.learning-field label>input,
.learning-action>.learning-submit{
  grid-row:2!important;
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.learning-create .search-combobox,
.learning-create .search-combobox-control{
  width:100%!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
}
.learning-create .search-combobox-input,
.learning-create input{
  height:48px!important;
  min-height:48px!important;
  border-radius:12px!important;
}
.learning-create .search-combobox-input{padding:0 46px 0 14px!important;line-height:46px!important}
.learning-create .search-combobox-toggle{right:7px!important}
.learning-step small,
.learning-field small,
.learning-action small{
  grid-row:3!important;
  display:block!important;
  min-height:42px!important;
  margin:0!important;
  color:#71859b!important;
  font-size:9.7px!important;
  font-weight:600!important;
  line-height:1.45!important;
}
.learning-field-jp input,
.learning-field-kkm input{padding-left:14px!important;padding-right:12px!important}
.learning-submit{
  align-self:stretch!important;
  justify-self:stretch!important;
  padding:0 18px!important;
  border-radius:12px!important;
  white-space:nowrap!important;
  font-size:11px!important;
  box-shadow:0 8px 18px rgba(27,119,232,.16)!important;
}
.learning-action-label{color:#7a8ea3!important}
@media(max-width:1360px){
  .learning-create{
    grid-template-columns:minmax(250px,1.15fr) minmax(280px,1.3fr) minmax(140px,.65fr) minmax(160px,.7fr)!important;
  }
  .learning-action{grid-column:1/-1!important;grid-template-columns:1fr!important;grid-template-rows:0 48px 0!important;gap:0!important}
  .learning-action-label,.learning-action small{display:none!important}
  .learning-submit{max-width:240px!important;justify-self:end!important}
}
@media(max-width:980px){
  .learning-create{grid-template-columns:1fr 1fr!important;column-gap:18px!important}
  .learning-step,.learning-field{grid-column:auto!important}
  .learning-action{grid-column:1/-1!important}
  .learning-submit{max-width:none!important;width:100%!important}
}
@media(max-width:680px){
  .learning-create{grid-template-columns:1fr!important;padding:16px!important;gap:14px!important}
  .learning-step,.learning-field,.learning-action{grid-column:1!important}
  .learning-step label,.learning-field label{grid-template-rows:28px 48px auto!important}
  .learning-step small,.learning-field small{min-height:0!important}
  .learning-field-title{white-space:normal!important}
}

/* ==========================================================
   NTT-RAPORT V1.32.3 — Selectable Class + Precise Academic Form
   Fokus: kelas dapat dipilih langsung dan layout form tidak saling
   menempel/keluar card pada desktop, laptop, tablet, maupun HP.
   ========================================================== */
.learning-context{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
}
.learning-context-tools{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-end!important;
  gap:12px!important;
  min-width:0!important;
}
.learning-class-switcher{margin:0!important;min-width:260px!important}
.learning-class-switcher label{display:grid!important;gap:6px!important;margin:0!important}
.learning-class-switcher label>span{font-size:10px!important;font-weight:800!important;color:#60758c!important;letter-spacing:.01em!important}
.learning-class-switcher select{
  height:42px!important;
  min-height:42px!important;
  width:100%!important;
  min-width:0!important;
  border:1px solid #cfddec!important;
  border-radius:11px!important;
  background:#fff!important;
  padding:0 34px 0 12px!important;
  font-size:11px!important;
  font-weight:750!important;
  color:#213b57!important;
  box-sizing:border-box!important;
}
.learning-progress{min-width:118px!important;height:66px!important;display:grid!important;place-content:center!important;box-sizing:border-box!important}

.learning-create{
  grid-template-columns:minmax(0,2.15fr) minmax(0,2.45fr) minmax(118px,.82fr) minmax(135px,.92fr) minmax(180px,1.25fr)!important;
  gap:16px!important;
  align-items:start!important;
  padding:20px!important;
  overflow:visible!important;
}
.learning-step,.learning-field,.learning-action{min-width:0!important;width:auto!important}
.learning-step label,.learning-field label,.learning-action{
  grid-template-rows:28px 48px minmax(38px,auto)!important;
  gap:7px!important;
  min-width:0!important;
}
.learning-field-title,.learning-action-label{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.learning-step label>select,
.learning-step label>.search-combobox,
.learning-field label>input,
.learning-action>.learning-submit{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
}
.learning-create .search-combobox,
.learning-create .search-combobox-control,
.learning-create .search-combobox-input{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.learning-step small,.learning-field small,.learning-action small{
  min-height:38px!important;
  font-size:9.5px!important;
  line-height:1.38!important;
}
.learning-action{overflow:visible!important}
.learning-action>.learning-submit{
  padding:0 14px!important;
  white-space:normal!important;
  line-height:1.2!important;
  text-align:center!important;
  overflow:hidden!important;
}

@media(max-width:1450px){
  .learning-create{
    grid-template-columns:minmax(0,1.65fr) minmax(0,1.85fr) minmax(110px,.7fr) minmax(125px,.78fr) minmax(170px,1fr)!important;
    gap:13px!important;
    padding:18px!important;
  }
  .learning-field-title,.learning-action-label{font-size:10.5px!important}
  .learning-step small,.learning-field small,.learning-action small{font-size:9px!important}
}
@media(max-width:1230px){
  .learning-create{
    grid-template-columns:minmax(0,1.2fr) minmax(0,1.35fr) minmax(110px,.65fr) minmax(125px,.72fr)!important;
  }
  .learning-action{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:48px!important;
  }
  .learning-action-label,.learning-action small{display:none!important}
  .learning-action>.learning-submit{max-width:260px!important;justify-self:end!important}
  .learning-context{grid-template-columns:1fr!important;align-items:start!important}
  .learning-context-tools{justify-content:space-between!important;width:100%!important}
  .learning-class-switcher{min-width:0!important;flex:1 1 auto!important}
}
@media(max-width:900px){
  .learning-create{grid-template-columns:1fr 1fr!important;gap:14px!important}
  .learning-action{grid-column:1/-1!important}
  .learning-action>.learning-submit{max-width:none!important;width:100%!important}
  .learning-context-tools{align-items:stretch!important;flex-direction:column!important}
  .learning-progress{width:100%!important;height:auto!important;min-height:58px!important;text-align:left!important;place-content:center start!important}
}
@media(max-width:620px){
  .learning-create{grid-template-columns:1fr!important;padding:15px!important}
  .learning-step,.learning-field,.learning-action{grid-column:1!important}
  .learning-context-main{align-items:flex-start!important}
  .learning-class-switcher select{font-size:10.5px!important}
}

/* =========================================================
   NTT-RAPORT V1.33.0 — Enterprise Academic Assignment Center
   Smart bulk Guru ↔ Mata Pelajaran ↔ Rombel
   ========================================================= */
.assignment-center{
  margin:16px 0 18px;
  border:1px solid #cfe0f4;
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  box-shadow:0 12px 34px rgba(15,82,145,.07);
  overflow:hidden;
}
.assignment-center>summary{
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 18px;
  cursor:pointer;
  background:linear-gradient(135deg,#f7fbff,#edf6ff);
  border-bottom:1px solid transparent;
}
.assignment-center[open]>summary{border-bottom-color:#dce8f5}
.assignment-center>summary::-webkit-details-marker{display:none}
.assignment-center>summary>span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.assignment-center>summary b{font-size:14px;color:#12385f}
.assignment-center>summary small{color:#64748b;font-size:10.5px;line-height:1.45}
.assignment-center-body{padding:18px}
.bulk-workflow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:10px 12px;border:1px solid #e0e9f3;border-radius:12px;background:#f8fbff}
.bulk-workflow span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #d9e7f5;font-size:10.5px;font-weight:800;color:#315a82}
.bulk-workflow i{font-style:normal;color:#8aa2ba;font-weight:800}
.bulk-assignment-form{margin:0}
.bulk-teacher{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end;margin-bottom:14px;padding:14px;border:1px solid #e0e8f2;border-radius:14px;background:#fff}
.bulk-teacher label{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}
.bulk-teacher label>span{font-size:11px;font-weight:800;color:#274563}
.bulk-teacher label>span b{color:#ef4444}
.bulk-workload{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:8px}
.bulk-workload span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:7px 10px;border:1px solid #dce7f3;border-radius:11px;background:#f8fbff;color:#64748b;font-size:9.5px;white-space:nowrap}
.bulk-workload b{font-size:15px;color:#1769ca}
.bulk-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bulk-columns>section{min-width:0;border:1px solid #e0e8f2;border-radius:14px;background:#fff;overflow:hidden}
.bulk-box-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;border-bottom:1px solid #e7eef6;background:#fbfdff}
.bulk-box-head>div{min-width:0}
.bulk-box-head b{display:block;font-size:11.5px;color:#173b60}
.bulk-box-head small{display:block;margin-top:2px;color:#74879b;font-size:9.5px}
.bulk-counter{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#edf6ff;color:#4b6d8f;font-size:10px}
.bulk-counter b{display:inline;font-size:12px;color:#1769ca}
.bulk-filter{width:calc(100% - 20px)!important;margin:10px!important;min-height:38px!important;height:38px!important;font-size:10.5px!important;background:#f8fbff!important}
.bulk-pick-list{height:310px;overflow:auto;padding:4px 9px 10px;scrollbar-width:thin}
.bulk-pick{display:flex;align-items:flex-start;gap:9px;padding:8px 7px;border-radius:9px;cursor:pointer;margin:0!important;border:1px solid transparent}
.bulk-pick:hover{background:#f4f9ff;border-color:#e2edf8}
.bulk-pick input[type=checkbox]{width:16px!important;height:16px!important;min-width:16px!important;box-shadow:none!important;margin:2px 0 0!important}
.bulk-pick span{min-width:0;display:block}
.bulk-pick b{display:block;font-size:10.5px;line-height:1.35;color:#1d3f60}
.bulk-pick small{display:block;margin-top:2px;font-size:9px;line-height:1.35;color:#71859a}
.bulk-group-title{position:sticky;top:0;z-index:2;margin:5px -2px 4px;padding:6px 8px;border-radius:7px;background:#eef6ff;color:#1769ca;font-size:9.5px;font-weight:900;letter-spacing:.04em}
.bulk-form-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:12px 13px;border:1px solid #d9e7f5;border-radius:13px;background:#f8fbff}
.bulk-form-actions>div{min-width:0}
.bulk-form-actions b{display:block;font-size:10.5px;color:#234b71}
.bulk-form-actions small{display:block;margin-top:2px;font-size:9.5px;color:#71859a}
.bulk-form-actions button{min-width:180px}
.bulk-preview{margin-top:16px;padding-top:16px;border-top:1px dashed #ccdaea}
.bulk-preview-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:10px}
.bulk-preview-head h4{margin:3px 0;font-size:14px;color:#163a5e}
.bulk-preview-head p{margin:0;color:#71859a;font-size:10px}
.bulk-preview-stats{display:grid;grid-template-columns:repeat(3,auto);gap:7px}
.bulk-preview-stats span{min-width:78px;padding:7px 9px;text-align:center;border:1px solid #dde7f1;border-radius:10px;background:#fff;color:#64748b;font-size:9px}
.bulk-preview-stats b{display:block;font-size:14px;color:#1769ca}
.bulk-capacity{margin-bottom:10px;padding:9px 11px;border-radius:10px;font-size:10px}
.bulk-capacity.ok{background:#ecfdf3;border:1px solid #bbf7d0;color:#166534}
.bulk-capacity.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.bulk-preview-table{max-height:310px;overflow:auto;border:1px solid #e2eaf3;border-radius:12px}
.bulk-preview-table table{margin:0}
.bulk-preview-msg{display:block;margin-top:3px;color:#71859a;font-size:9px;max-width:360px}
.bulk-commit{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;padding:10px 0}
.bulk-commit small{max-width:420px;color:#71859a;font-size:9.5px}

@media(max-width:1050px){
  .bulk-teacher{grid-template-columns:1fr}
  .bulk-workload{grid-template-columns:repeat(3,1fr)}
  .bulk-columns{grid-template-columns:1fr}
  .bulk-pick-list{height:260px}
}
@media(max-width:720px){
  .assignment-center-body{padding:13px}
  .assignment-center>summary{align-items:flex-start;padding:14px}
  .assignment-center>summary .status{display:none}
  .bulk-workflow i{display:none}
  .bulk-workflow span{flex:1 1 calc(50% - 8px);justify-content:center}
  .bulk-form-actions,.bulk-preview-head,.bulk-commit{align-items:stretch;flex-direction:column}
  .bulk-form-actions button,.bulk-commit button{width:100%}
  .bulk-preview-stats{grid-template-columns:repeat(3,1fr);width:100%}
}
@media(max-width:460px){
  .bulk-workload{grid-template-columns:1fr}
  .bulk-workflow span{flex-basis:100%}
  .bulk-preview-stats{grid-template-columns:1fr}
}

/* =========================================================
   NTT-RAPORT V1.34.0 — Matrix Guru × Mapel × Rombel
   ========================================================= */
.matrix-assignment{border-color:#c8dcf2}
.matrix-mode-guide{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:14px}
.matrix-mode-guide>span{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #dce7f3;border-radius:12px;background:#fff;color:#64748b}
.matrix-mode-guide>span.active{border-color:#9bc6f5;background:#eef7ff;color:#1f5e9f}
.matrix-mode-guide b{font-size:11px;color:#183b5d}.matrix-mode-guide small{font-size:9.5px}.matrix-mode-guide i{font-style:normal;font-size:10px;color:#94a3b8;font-weight:800}
.matrix-builder{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:14px;align-items:stretch}
.matrix-subject-panel,.matrix-class-panel{min-width:0;border:1px solid #dfe8f2;border-radius:14px;background:#fff;overflow:hidden}
.matrix-subject-list{max-height:420px;overflow:auto;padding:6px 8px 10px;scrollbar-width:thin}
.matrix-subject-pick{display:flex!important;align-items:flex-start;gap:9px;padding:9px 8px;border:1px solid transparent;border-radius:9px;margin:0!important;cursor:pointer}
.matrix-subject-pick:hover{background:#f5f9ff;border-color:#e1ebf6}
.matrix-subject-pick input{width:16px!important;height:16px!important;min-width:16px!important;margin:2px 0 0!important;box-shadow:none!important}
.matrix-subject-pick span{min-width:0}.matrix-subject-pick b{display:block;font-size:10.5px;line-height:1.35;color:#1b3f62}.matrix-subject-pick small{display:block;margin-top:2px;font-size:9px;color:#71859a}
.matrix-head-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.matrix-head-actions input{width:180px!important;min-height:34px!important;height:34px!important;font-size:10px!important}.matrix-head-actions button{min-height:34px;padding:6px 10px;font-size:9.5px}
.matrix-scroll{position:relative;overflow:auto;max-height:470px;min-height:270px;background:#fff;scrollbar-width:thin}
.assignment-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;margin:0}
.assignment-matrix th,.assignment-matrix td{border-right:1px solid #e8eef5;border-bottom:1px solid #e8eef5;padding:7px;text-align:center;background:#fff}
.assignment-matrix thead th{position:sticky;top:0;z-index:4;background:#f3f8fe;color:#375a7e;font-size:9px;font-weight:900;min-width:86px}
.assignment-matrix thead th span{display:block;max-width:92px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:auto}.assignment-matrix thead th small{display:block;margin-top:2px;color:#8aa0b5;font-size:8px}
.assignment-matrix .matrix-sticky-corner{left:0;z-index:6;min-width:210px;text-align:left;padding-left:12px}
.assignment-matrix tbody .matrix-subject-name{position:sticky;left:0;z-index:3;min-width:210px;max-width:210px;text-align:left;background:#fbfdff;padding:9px 10px}
.matrix-subject-name b{display:block;font-size:10px;line-height:1.35;color:#183d62}.matrix-subject-name small{display:block;margin-top:2px;color:#71859a;font-size:8.5px}.matrix-row-all{margin-top:6px!important;padding:4px 7px!important;min-height:24px!important;border-radius:7px!important;font-size:8px!important;color:#1769ca!important;background:#edf6ff!important;border:1px solid #d2e7ff!important}
.matrix-cell{display:grid!important;place-items:center;width:30px;height:30px;margin:auto!important;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;cursor:pointer;transition:.15s ease}
.matrix-cell:hover{border-color:#84b8ee;background:#eef7ff}.matrix-cell input{position:absolute;opacity:0;pointer-events:none}.matrix-cell span{display:grid;place-items:center;width:100%;height:100%;font-size:13px;font-weight:900;color:transparent;border-radius:7px}.matrix-cell:has(input:checked){background:#1677f2;border-color:#1677f2;box-shadow:0 4px 12px rgba(22,119,242,.18)}.matrix-cell:has(input:checked) span{color:#fff}
.matrix-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:4px;text-align:center;color:#6b7f93;background:#fff}.matrix-empty b{font-size:12px;color:#244766}.matrix-empty span{font-size:9.5px}.matrix-empty[hidden]{display:none!important}
.bulk-workload{grid-template-columns:repeat(4,minmax(82px,1fr))}
.matrix-actions{align-items:center}.matrix-selection-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.matrix-selection-summary>span{display:inline-flex;align-items:center;gap:4px;padding:7px 8px;border:1px solid #dce7f3;border-radius:9px;background:#fff;color:#6a7f93;font-size:9px}.matrix-selection-summary>span b{display:inline;font-size:11px;color:#1769ca}.matrix-selection-summary button{min-width:150px}
.bulk-capacity ul{margin:6px 0 0 18px;padding:0}.bulk-capacity li{margin:2px 0}
@media(max-width:1180px){.matrix-builder{grid-template-columns:1fr}.matrix-subject-list{max-height:220px}.bulk-workload{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.matrix-mode-guide{grid-template-columns:1fr}.matrix-mode-guide i{display:none}.matrix-head-actions{width:100%;align-items:stretch}.matrix-head-actions input{width:100%!important;flex:1}.matrix-actions{align-items:stretch!important}.matrix-selection-summary{justify-content:stretch}.matrix-selection-summary>span{flex:1;justify-content:center}.matrix-selection-summary button{width:100%}.bulk-workload{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.bulk-workload{grid-template-columns:1fr 1fr}.assignment-matrix .matrix-sticky-corner,.assignment-matrix tbody .matrix-subject-name{min-width:165px;max-width:165px}.assignment-matrix thead th{min-width:74px}.matrix-subject-name b{font-size:9.5px}}

/* V1.34.1 — Simple Quick Academic Assignment: guru → mapel → rombel → preview */
.quick-assignment{margin-top:16px;border:1px solid #dbe7f3;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 28px rgba(23,72,122,.06)}
.quick-assignment>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:linear-gradient(180deg,#f8fbff,#f3f8fe);cursor:pointer;list-style:none}
.quick-assignment>summary::-webkit-details-marker{display:none}.quick-assignment>summary span:first-child{display:flex;flex-direction:column;gap:3px}.quick-assignment>summary b{color:#153a60;font-size:14px}.quick-assignment>summary small{color:#70859a;font-size:10.5px;line-height:1.45}
.quick-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:11px 12px;border:1px solid #e0e9f3;border-radius:13px;background:#f9fbfe}.quick-flow span{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid #dce8f4;color:#486785;font-size:10px;font-weight:800}.quick-flow span b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#eaf4ff;color:#1677f2;font-size:10px}.quick-flow i{font-style:normal;color:#94a3b8;font-weight:900}
.quick-assignment-form{display:flex;flex-direction:column;gap:14px}.quick-teacher-card,.quick-subject-selector,.quick-selected-area,.quick-review-bar{border:1px solid #dfe8f2;border-radius:16px;background:#fff;padding:15px}.quick-section-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.quick-step{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#eaf4ff;color:#1677f2;font-weight:900;font-size:12px}.quick-section-title>div{min-width:0}.quick-section-title b{display:block;color:#173b60;font-size:12px}.quick-section-title small{display:block;margin-top:3px;color:#71859a;font-size:10px;line-height:1.45}
.quick-teacher-card>.search-combobox,.quick-teacher-card>select{max-width:680px}.quick-workload{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:9px;margin-top:12px;max-width:680px}.quick-workload span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:58px;padding:8px;border:1px solid #e0e8f1;border-radius:11px;background:#f8fbff}.quick-workload b{font-size:16px;color:#1769ca}.quick-workload small{font-size:9px;color:#6f8297;margin-top:2px}
.quick-subject-search{display:flex;align-items:center;gap:10px;margin-bottom:10px}.quick-subject-search input{flex:1;min-width:0;min-height:42px!important;height:42px!important;background:#f8fbff!important}.quick-subject-search>span{display:inline-flex;align-items:center;gap:4px;padding:9px 11px;border-radius:10px;background:#eef7ff;color:#55718e;font-size:10px;white-space:nowrap}.quick-subject-search>span b{color:#1769ca;font-size:12px}.quick-subject-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:240px;overflow:auto;padding:2px;scrollbar-width:thin}.quick-subject-option{display:flex!important;align-items:center;gap:9px;min-width:0;padding:10px;border:1px solid #e0e8f1;border-radius:11px;background:#fff;margin:0!important;cursor:pointer;transition:.15s ease}.quick-subject-option:hover{border-color:#9cc7f4;background:#f7fbff}.quick-subject-option:has(input:checked){border-color:#77b4f2;background:#eef7ff;box-shadow:0 4px 12px rgba(22,119,242,.08)}.quick-subject-option input{width:16px!important;height:16px!important;min-width:16px!important;margin:0!important;box-shadow:none!important}.quick-subject-option span{min-width:0;flex:1}.quick-subject-option b{display:block;color:#173b60;font-size:10.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-subject-option small{display:block;color:#8495a7;font-size:8.8px;margin-top:2px}.quick-subject-option i{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#edf6ff;color:#1677f2;font-style:normal;font-weight:900}.quick-subject-option:has(input:checked) i{background:#1677f2;color:#fff}.quick-subject-option:has(input:checked) i:before{content:'✓';font-size:11px}.quick-subject-option:has(input:checked) i{font-size:0}
.quick-subject-cards{display:flex;flex-direction:column;gap:11px}.quick-subject-card{border:1px solid #dce7f2;border-radius:14px;background:#fbfdff;overflow:hidden}.quick-subject-card[hidden]{display:none!important}.quick-subject-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid #e6edf5;background:#fff}.quick-subject-card>header>div{display:flex;align-items:center;gap:9px;min-width:0}.quick-step-dot{display:inline-flex;padding:5px 7px;border-radius:8px;background:#eaf4ff;color:#1769ca;font-size:8px;font-weight:900;text-transform:uppercase}.quick-subject-card>header b{display:block;color:#183e64;font-size:11px}.quick-subject-card>header small{display:block;color:#8193a6;font-size:8.8px;margin-top:1px}.quick-remove-subject{width:30px;height:30px;padding:0!important;border-radius:8px!important;font-size:18px!important;color:#c24141!important;background:#fff7f7!important;border:1px solid #ffd7d7!important}.quick-class-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px}.quick-class-toolbar>div:first-child b{display:block;color:#274867;font-size:10.5px}.quick-class-toolbar>div:first-child small{display:block;margin-top:2px;color:#778b9f;font-size:9px}.quick-class-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.quick-class-actions input{width:190px!important;min-height:34px!important;height:34px!important;font-size:9.5px!important}.quick-class-actions button{min-height:34px;padding:5px 9px;font-size:9px}.quick-class-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 13px 12px}.quick-class-chip{display:flex!important;align-items:center;gap:7px;min-width:0;padding:9px;border:1px solid #dfe7f0;border-radius:10px;background:#fff;margin:0!important;cursor:pointer}.quick-class-chip:hover{border-color:#9bc6f3;background:#f7fbff}.quick-class-chip:has(input:checked){border-color:#66aaf0;background:#eef7ff}.quick-class-chip input{width:15px!important;height:15px!important;min-width:15px!important;margin:0!important}.quick-class-chip span{font-size:10px;font-weight:800;color:#244867;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-class-chip small{margin-left:auto;font-size:8px;color:#8a9bad;white-space:nowrap}.quick-subject-card>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;border-top:1px solid #e8eef5;background:#fff}.quick-subject-card>footer>span{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:999px;background:#edf6ff;color:#5d7690;font-size:9px;white-space:nowrap}.quick-subject-card>footer>span b{font-size:11px;color:#1769ca}.quick-subject-card>footer small{color:#8092a4;font-size:8.7px;text-align:right}.quick-empty{display:grid;place-items:center;gap:4px;min-height:110px;padding:20px;border:1px dashed #cfddea;border-radius:13px;background:#fbfdff;text-align:center;color:#6e8296}.quick-empty b{font-size:11px;color:#274867}.quick-empty span{font-size:9.5px}.quick-empty[hidden]{display:none!important}
.quick-review-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(180deg,#f9fcff,#f4f9ff)}.quick-review-bar>div:first-child{display:flex;align-items:flex-start;gap:10px}.quick-review-bar>div:first-child b{display:block;color:#173b60;font-size:11px}.quick-review-bar>div:first-child small{display:block;margin-top:2px;color:#75899d;font-size:9.5px}.quick-review-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.quick-review-summary>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:66px;min-height:45px;padding:5px 8px;border:1px solid #dce6f1;border-radius:9px;background:#fff}.quick-review-summary b{font-size:13px;color:#1769ca}.quick-review-summary small{font-size:8px;color:#71859a}.quick-review-summary button{min-height:45px;white-space:nowrap}.quick-preview{margin-top:14px}
@media(max-width:1180px){.quick-subject-options{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-class-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-review-bar{align-items:flex-start;flex-direction:column}.quick-review-summary{width:100%;justify-content:flex-start}}
@media(max-width:900px){.quick-workload{grid-template-columns:repeat(2,1fr)}.quick-class-toolbar{align-items:flex-start;flex-direction:column}.quick-class-actions{width:100%}.quick-class-actions input{flex:1;width:auto!important}.quick-class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-subject-card>footer{align-items:flex-start;flex-direction:column}.quick-subject-card>footer small{text-align:left}}
@media(max-width:640px){.quick-flow{align-items:stretch;flex-direction:column}.quick-flow i{display:none}.quick-flow span{width:100%;justify-content:flex-start}.quick-subject-options{grid-template-columns:1fr}.quick-subject-search{align-items:stretch;flex-direction:column}.quick-subject-search>span{justify-content:center}.quick-class-actions{align-items:stretch;flex-direction:column}.quick-class-actions input,.quick-class-actions button{width:100%!important}.quick-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-review-summary{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.quick-review-summary button{grid-column:1/-1;width:100%}.quick-assignment>summary{align-items:flex-start;flex-direction:column}.quick-teacher-card,.quick-subject-selector,.quick-selected-area,.quick-review-bar{padding:12px}}
@media(max-width:420px){.quick-class-grid{grid-template-columns:1fr}.quick-workload{grid-template-columns:1fr 1fr}}

/* =========================================================
   NTT-RAPORT V1.35.0 — Teacher Grade Center
   Input manual + import nilai sederhana + deskripsi TP/KD
   ========================================================= */
.manual-grade-center .toolbar{align-items:flex-start}
.teacher-grade-context{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:16px 18px;border:1px solid #d9e6f3;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#eef6ff)}
.teacher-grade-context>div:first-child span{display:block;color:#2873c8;font-size:9px;font-weight:900;letter-spacing:.08em}.teacher-grade-context h3{margin:3px 0 2px;color:#173a5d;font-size:16px}.teacher-grade-context p{margin:0;color:#6d8297;font-size:10.5px}
.grade-context-kpis{display:flex;align-items:stretch;gap:8px}.grade-context-kpis span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:82px;padding:9px 11px;border:1px solid #dce8f4;border-radius:11px;background:#fff}.grade-context-kpis b{font-size:16px;color:#1769ca}.grade-context-kpis small{margin-top:2px;color:#71859a;font-size:8.5px}
.manual-grade-table{max-height:620px;border:1px solid #dfe8f2;border-radius:14px}.manual-grade-table table{min-width:1180px;margin:0}.manual-grade-table thead th{position:sticky;top:0;z-index:4;background:#f2f7fc}.manual-grade-table td{vertical-align:top}.manual-grade-table td:nth-child(1){width:52px;text-align:center}.manual-grade-table td:nth-child(2){min-width:190px}.manual-grade-table td:nth-child(3){width:100px}.manual-grade-table td:nth-child(4){width:115px}.manual-grade-table td:nth-child(5),.manual-grade-table td:nth-child(6){min-width:250px}.manual-grade-table td:nth-child(7){min-width:280px}.manual-grade-table input,.manual-grade-table select{min-height:40px!important;height:40px!important;font-size:10px!important}.manual-grade-table select{width:100%}.manual-grade-table td>small{display:block;margin-top:5px;color:#7c8fa3;font-size:8.5px;line-height:1.35}.current-description{padding:9px 10px;border:1px solid #e2e9f1;border-radius:9px;background:#fbfdff;color:#526b84;font-size:9.5px;line-height:1.45}.current-description span{color:#96a6b5}
.manual-grade-actions{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:12px 14px;border:1px solid #dce7f2;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 -5px 18px rgba(23,72,122,.06);backdrop-filter:blur(8px)}.manual-grade-actions>div{display:flex;flex-direction:column;gap:2px}.manual-grade-actions b{font-size:10.5px;color:#244665}.manual-grade-actions small{font-size:9px;color:#7d90a2}.manual-grade-actions button{min-width:190px}
.import-description-picks{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-width:420px}.import-description-picks label{display:flex;flex-direction:column;gap:4px;font-size:8.5px;color:#6c8196}.import-description-picks select{min-height:36px;height:36px;font-size:9px}
.notice.soft{background:#f8fbff;border:1px solid #dce7f2;color:#46627e}
@media(max-width:960px){.teacher-grade-context{align-items:flex-start;flex-direction:column}.grade-context-kpis{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.manual-grade-actions{align-items:stretch;flex-direction:column}.manual-grade-actions button{width:100%}}
@media(max-width:640px){.grade-context-kpis{grid-template-columns:1fr}.teacher-grade-context{padding:13px}.manual-grade-center .toolbar{gap:10px}.manual-grade-center .toolbar .inline-actions{width:100%}.manual-grade-center .toolbar .inline-actions a{flex:1;text-align:center}.import-description-picks{grid-template-columns:1fr;min-width:240px}}


/* =========================================================
   NTT-RAPORT V1.35.3 — Polishing Penilaian UI
   Status penilaian + penilaian guru lebih presisi dan rapi
   ========================================================= */
.assessment-status-page{display:grid;gap:16px}
.assessment-period-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:16px!important}.assessment-period-card b{display:block;font-size:13px}.assessment-period-copy{display:grid;gap:4px}.assessment-period-card small{display:block;font-size:11px;line-height:1.55;color:inherit;opacity:.92}.assessment-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.assessment-stat{min-height:108px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:18px 18px 16px!important;border-radius:16px!important}.assessment-stat span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6d8398}.assessment-stat strong{font-size:28px!important;line-height:1.05;margin:0!important;color:#12385f}.assessment-stat small{font-size:10px;line-height:1.5;color:#7890a6}.assessment-status-panel{padding:0!important;overflow:hidden}.assessment-status-panel .toolbar{padding:18px 20px 14px;border-bottom:1px solid #e8eef5;align-items:flex-start}.assessment-status-panel .toolbar h3{margin:0 0 4px;font-size:19px;color:#16385b}.assessment-status-panel .toolbar p{max-width:760px;font-size:11px;line-height:1.55;color:#6d8297}.assessment-filter-bar{padding:16px 20px 18px;margin:0;border-bottom:1px solid #eef3f8;background:linear-gradient(180deg,#fbfdff,#f8fbff)}.assessment-filter-bar label{max-width:420px;margin:0}.assessment-filter-bar button{min-width:130px;height:44px}.assessment-filter-bar select{height:44px;border-radius:12px}.assessment-status-table{margin:0;border:0;border-radius:0 0 16px 16px;background:transparent}.assessment-status-table table{min-width:980px}.assessment-status-table thead th{position:sticky;top:0;z-index:2;background:#f4f8fc;color:#668098;font-size:10.5px;letter-spacing:.08em}.assessment-status-table td{padding:15px 12px;vertical-align:middle}.assessment-status-table td:nth-child(1){min-width:140px;font-weight:800;color:#16385b}.assessment-status-table td:nth-child(2){min-width:220px}.assessment-status-table td:nth-child(3){min-width:180px}.assessment-status-table td:nth-child(4){font-weight:800;color:#34506b}.assessment-status-table td:nth-child(5){min-width:160px}.assessment-status-table td:nth-child(7){min-width:170px}.assessment-status-table tbody tr:hover{background:#fbfdff}.assessment-status-table .inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.assessment-status-table .inline-actions .button,.assessment-status-table .inline-actions .primary,.assessment-status-table .inline-actions button{min-height:38px;padding:8px 12px;border-radius:10px;font-size:10px}.progress{width:100%;height:9px;border-radius:999px;background:#eaf1f7;overflow:hidden;margin-bottom:5px}.progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1a86ff,#14b8d4)}.status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em}.status.success{background:#e8f8ef;color:#0b9a69}.status.warning{background:#fff4e4;color:#cc7b14}.status.danger{background:#fef0ef;color:#c9433d}.compact-filters{display:flex;align-items:end;gap:12px}.compact-filters>label{flex:1}.compact-filters>button,.compact-filters>.button,.compact-filters>.primary{flex:0 0 auto}.manual-grade-center .panel,.manual-grade-center .teacher-grade-context,.manual-grade-center .manual-grade-table,.manual-grade-center .manual-grade-actions{box-shadow:0 10px 28px rgba(22,50,80,.05)}.manual-grade-center .panel{padding:0!important;overflow:hidden}.manual-grade-center .toolbar{padding:18px 20px 14px;border-bottom:1px solid #e7edf5;background:#fff}.manual-grade-center .toolbar h3{font-size:19px;margin-bottom:4px}.manual-grade-center .toolbar p{font-size:11px;line-height:1.55;max-width:760px}.manual-grade-center .filters{padding:16px 20px 18px;border-bottom:1px solid #edf2f7;background:linear-gradient(180deg,#fbfdff,#f8fbff)}.manual-grade-center .filters label{margin:0}.manual-grade-center .filters button{height:44px;min-width:110px}.teacher-grade-context{margin:18px 20px 12px}.manual-grade-center .notice.soft{margin:0 20px 12px}.manual-grade-center .manual-grade-table{margin:0 20px 14px}.manual-grade-center .manual-grade-actions{margin:0 20px 20px}.manual-grade-table td:nth-child(2) b{display:block;font-size:15px;color:#15395e}.manual-grade-table td:nth-child(2) small{font-size:10px;color:#7a8fa5}.manual-grade-table input,.manual-grade-table select{border-radius:11px!important}.manual-grade-table input[disabled],.manual-grade-table select[disabled],.manual-grade-table input[readonly]{background:#f5f8fb!important;color:#8da0b3!important}.current-description{min-height:48px;display:flex;align-items:center}.manual-grade-actions button.primary,.manual-grade-actions .primary{height:46px}.panel .empty{border-radius:14px}@media(max-width:1080px){.assessment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-status-panel .toolbar{align-items:flex-start;flex-direction:column}.assessment-filter-bar{align-items:stretch;flex-direction:column}.assessment-filter-bar label{max-width:none;width:100%}.assessment-filter-bar button{width:100%}}@media(max-width:720px){.assessment-stats{grid-template-columns:1fr}.assessment-period-card{padding:13px 14px}.assessment-status-panel .toolbar,.assessment-filter-bar{padding-left:14px;padding-right:14px}.assessment-status-table td{padding:13px 10px}.manual-grade-center .toolbar,.manual-grade-center .filters{padding-left:14px;padding-right:14px}.teacher-grade-context,.manual-grade-center .notice.soft,.manual-grade-center .manual-grade-table,.manual-grade-center .manual-grade-actions{margin-left:14px;margin-right:14px}.teacher-grade-context{margin-top:14px}.manual-grade-center .manual-grade-actions{margin-bottom:14px}}

/* =========================================================
   NTT-RAPORT V1.35.4 — Bulk Tujuan Pembelajaran
   Alur input massal terinspirasi pola kerja e-Rapor,
   dengan implementasi UI original NTT-RAPORT.
   ========================================================= */
.competency-center .toolbar{align-items:flex-start}.competency-center .inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.competency-table td:nth-child(3){min-width:360px;line-height:1.55}.competency-table td:nth-child(1),.competency-table td:nth-child(4),.competency-table td:nth-child(5){white-space:nowrap}.tp-bulk-modal{width:min(920px,calc(100% - 28px));max-height:min(88vh,860px);overflow:hidden;border-radius:20px}.tp-bulk-modal>form{padding:0;max-height:inherit;display:flex;flex-direction:column}.tp-bulk-modal .modal-head{padding:20px 22px 16px;margin:0}.tp-bulk-modal .modal-head h3{font-size:20px;color:#16395e}.tp-bulk-modal .modal-head p{margin:5px 0 0;font-size:11px;color:#71859a}.tp-bulk-setup{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px 22px 8px}.tp-bulk-setup label{margin:0}.tp-bulk-setup label>span{font-size:11px;color:#294866}.tp-bulk-setup input,.tp-bulk-setup select{height:46px;border-radius:11px}.tp-bulk-setup input[readonly]{background:#f5f8fb;color:#3c5874;font-weight:800}.tp-bulk-context{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 22px 15px;border-bottom:1px solid #e8eef5}.tp-bulk-context span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#eef6ff;color:#3d658d;font-size:9px;font-weight:800}.tp-bulk-rows{padding:16px 22px;overflow:auto;display:grid;gap:10px;background:#fbfdff;min-height:150px}.tp-bulk-empty{min-height:130px;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;border:1px dashed #cddbea;border-radius:14px;background:#fff;color:#73889c}.tp-bulk-empty b{font-size:12px;color:#294968}.tp-bulk-empty small{font-size:10px}.tp-bulk-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:13px;border:1px solid #dce7f2;border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(19,58,96,.035)}.tp-bulk-row-no{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eaf4ff;color:#1674dc;font-weight:900}.tp-bulk-row-main label{margin:0}.tp-bulk-row-main label{font-size:10.5px;color:#284866}.tp-bulk-row-main textarea{min-height:78px;margin-top:7px;padding:11px 12px;border:1px solid #cad9e7;border-radius:11px;resize:vertical;outline:none;font:inherit;color:#173653;background:#fff}.tp-bulk-row-main textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff18}.tp-bulk-row-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}.tp-bulk-row-meta span{padding:4px 7px;border-radius:999px;background:#f1f6fb;color:#6c8195;font-size:8.5px}.tp-bulk-row-meta small{margin-left:auto;color:#8294a6;font-size:8.5px}.tp-bulk-actions{padding:14px 22px 18px;margin:0;background:#fff}.tp-bulk-actions .primary{min-width:210px}.tp-bulk-actions .primary:disabled{opacity:.45;cursor:not-allowed}@media(max-width:720px){.tp-bulk-modal{width:min(96vw,920px);max-height:92vh}.tp-bulk-setup{grid-template-columns:1fr;padding:14px 14px 6px;gap:11px}.tp-bulk-context,.tp-bulk-rows{padding-left:14px;padding-right:14px}.tp-bulk-row{grid-template-columns:32px minmax(0,1fr);gap:9px;padding:10px}.tp-bulk-row-no{width:30px;height:30px}.tp-bulk-actions{padding:12px 14px 14px;align-items:stretch;flex-direction:column-reverse}.tp-bulk-actions button{width:100%}.tp-bulk-actions .primary{min-width:0}}

/* =========================================================
   NTT-RAPORT V1.35.5 — TP Management Center
   ========================================================= */
.tp-management-tools{margin:0 0 14px;padding:14px;border:1px solid #dce7f2;border-radius:15px;background:linear-gradient(180deg,#fbfdff,#f7fbff)}
.tp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.tp-kpis>span{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:58px;padding:10px 12px;border:1px solid #e1e9f2;border-radius:11px;background:#fff}.tp-kpis b{font-size:18px;color:#146ed1}.tp-kpis small{font-size:9px;color:#7890a6;text-align:right}
.tp-filterbar{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(160px,.5fr) auto auto;gap:9px;align-items:end}.tp-filterbar label{margin:0}.tp-filterbar label>span{font-size:9px;color:#617b95}.tp-filterbar input,.tp-filterbar select{height:40px;border-radius:10px}.tp-filterbar button{height:40px;white-space:nowrap}
.tp-bulk-manage{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #e5edf5}.tp-bulk-manage>span{font-size:10px;color:#6b8196}.tp-bulk-manage>span b{font-size:13px;color:#176fcf}.tp-bulk-manage .inline-actions{display:flex;gap:7px;flex-wrap:wrap}.tp-bulk-manage button{min-height:38px;padding:8px 11px;font-size:9.5px}
.tp-management-table table{min-width:1080px}.tp-select-head,.tp-select-cell{width:66px;text-align:center!important}.tp-select-cell{display:table-cell!important;white-space:nowrap}.tp-select-cell input,.tp-select-head input{width:16px!important;height:16px!important;vertical-align:middle}.tp-drag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:28px;margin-right:3px;border-radius:7px;color:#8ca1b5;cursor:grab;font-weight:900;letter-spacing:-3px;user-select:none}.tp-drag:hover{background:#edf5fc;color:#176fcf}.tp-order-cell{width:70px;font-weight:800;color:#35526f}.tp-management-table tr[data-tp-row]{transition:background .15s ease,opacity .15s ease}.tp-management-table tr[data-tp-row].is-dragging{opacity:.48;background:#eef7ff}.tp-management-table tr[data-tp-row].drag-over{box-shadow:inset 0 2px 0 #1a7cf3}.tp-management-table tr[hidden]{display:none!important}
.competency-center>.filters{margin-bottom:12px}.competency-center>.notice.info{margin:0 0 14px}.competency-center .toolbar{margin-bottom:14px}.competency-center .toolbar>.inline-actions>a,.competency-center .toolbar>.inline-actions>form button{min-height:40px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:980px){.tp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-filterbar{grid-template-columns:1fr 1fr}.tp-filterbar button{width:100%}.tp-bulk-manage{align-items:flex-start;flex-direction:column}.tp-bulk-manage .inline-actions{width:100%}.tp-bulk-manage .inline-actions button{flex:1}}
@media(max-width:640px){.tp-management-tools{padding:11px}.tp-kpis{grid-template-columns:1fr 1fr}.tp-filterbar{grid-template-columns:1fr}.tp-bulk-manage .inline-actions{display:grid;grid-template-columns:1fr}.tp-management-table{margin-left:0;margin-right:0}.competency-center .toolbar>.inline-actions{width:100%}.competency-center .toolbar>.inline-actions>*{flex:1}.competency-center .toolbar>.inline-actions form button{width:100%}}

/* =========================================================
   NTT-RAPORT V1.35.6 — Clear Subject Group Form
   ========================================================= */
.subject-group-page .toolbar p{max-width:760px}.subject-group-guide{display:flex;align-items:center;gap:10px;margin:14px 0 16px;padding:12px 14px}.subject-group-guide b{white-space:nowrap;color:#18436d}.subject-group-guide span{font-size:10.5px;line-height:1.55;color:#657d94}.subject-group-dialog{width:min(880px,calc(100% - 28px))}.subject-group-dialog .modal-head p{max-width:720px;line-height:1.55}.subject-group-steps{display:flex;align-items:center;gap:9px;margin:0 0 18px;padding:11px 12px;border:1px solid #dce7f2;border-radius:12px;background:#f8fbff}.subject-group-steps span{display:inline-flex;align-items:center;gap:7px;color:#365875;font-size:10px;font-weight:800}.subject-group-steps span b{width:23px;height:23px;display:grid;place-items:center;border-radius:8px;background:#e7f2ff;color:#1769ca;font-size:10px}.subject-group-steps i{font-style:normal;color:#9aabba}.subject-group-form{gap:2px 16px}.subject-group-form label{margin-bottom:12px}.subject-group-form label>small{display:block;min-height:28px;margin:-2px 0 2px;color:#7a8ea2;font-size:9px;line-height:1.4;font-weight:500}.subject-group-form input,.subject-group-form select{min-height:44px;border-radius:11px}.subject-group-preview{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:13px 14px;border:1px solid #dce7f2;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#eef6ff)}.subject-group-preview>span{grid-row:1/3;align-self:center;padding:6px 9px;border-radius:8px;background:#e7f2ff;color:#1769ca;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.subject-group-preview b{font-size:12px;color:#173b60}.subject-group-preview small{font-size:9px;color:#6f8498;line-height:1.4}.subject-group-dialog .modal-actions{margin-top:16px}.subject-group-dialog .modal-actions button{min-width:110px}@media(max-width:700px){.subject-group-guide{align-items:flex-start;flex-direction:column}.subject-group-steps{align-items:stretch;flex-direction:column}.subject-group-steps i{display:none}.subject-group-steps span{width:100%}.subject-group-form{grid-template-columns:1fr}.subject-group-form .span-2{grid-column:auto}.subject-group-form label>small{min-height:0}.subject-group-preview{grid-template-columns:1fr}.subject-group-preview>span{grid-row:auto;width:max-content}.subject-group-dialog .modal-actions{display:grid;grid-template-columns:1fr 1fr}.subject-group-dialog .modal-actions button{width:100%;min-width:0}}

/* =========================================================
   NTT-RAPORT V1.35.7 — Word Paste Bulk TP
   Copy/paste TP dari Word -> preview -> save massal
   ========================================================= */
.tp-word-paste{margin:14px 22px 0;padding:14px 15px;border:1px solid #d8e5f2;border-radius:14px;background:linear-gradient(180deg,#f9fcff,#f4f9ff)}
.tp-word-paste-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.tp-word-paste-head b{display:block;color:#173a5d;font-size:12px}.tp-word-paste-head small{display:block;margin-top:3px;max-width:690px;color:#6d8297;font-size:9.6px;line-height:1.55}.tp-word-paste-head>span{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#e8f3ff;color:#176fcf;font-size:8.5px;font-weight:850;white-space:nowrap}
.tp-word-paste textarea{width:100%;min-height:125px;padding:12px 13px;border:1px solid #cbd9e7;border-radius:11px;background:#fff;color:#183a5b;outline:none;resize:vertical;font:inherit;font-size:10.5px;line-height:1.55}.tp-word-paste textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff18}.tp-word-paste textarea::placeholder{color:#92a4b6}
.tp-word-paste-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}.tp-word-paste-actions button{min-height:34px;padding:6px 10px;font-size:9.2px}.tp-word-paste-actions button:first-child{border-color:#8fc2f6;background:#eef7ff;color:#176fcf}.tp-word-paste-actions small{margin-left:auto;color:#70869b;font-size:9px}
.tp-bulk-modal .tp-bulk-rows{margin-top:12px;border-top:1px solid #e8eef5}
@media(max-width:720px){.tp-word-paste{margin:12px 14px 0;padding:12px}.tp-word-paste-head{flex-direction:column;gap:7px}.tp-word-paste textarea{min-height:150px}.tp-word-paste-actions{align-items:stretch;flex-direction:column}.tp-word-paste-actions button{width:100%}.tp-word-paste-actions small{margin-left:0;text-align:center}}

/* =========================================================
   NTT-RAPORT V1.35.8 — Smart Word Table Paste TP
   Paste tabel Word -> parser kode/deskripsi -> preview -> save massal
   ========================================================= */
.tp-bulk-code-desc{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;align-items:start}.tp-bulk-code-desc label{margin:0}.tp-bulk-code-desc input{min-height:42px;height:42px;font-size:10px;font-weight:800;color:#173b60;background:#f8fbff}.tp-bulk-code-desc textarea{min-height:82px}.tp-word-paste-head>span{background:#eaf7ef;color:#16805a}.tp-word-paste-actions [data-tp-word-preview]{font-weight:850}.tp-bulk-row-meta span:first-child{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-bulk-modal [data-tp-rows]{scrollbar-width:thin}.tp-bulk-modal [data-tp-rows]::-webkit-scrollbar{width:9px}.tp-bulk-modal [data-tp-rows]::-webkit-scrollbar-thumb{background:#c8d8e7;border-radius:99px;border:2px solid #f5f8fb}
@media(max-width:720px){.tp-bulk-code-desc{grid-template-columns:1fr}.tp-bulk-code-desc input{height:40px}.tp-bulk-code-desc textarea{min-height:100px}}


/* =========================================================
   NTT-RAPORT V1.35.9 — Professional Bulk TP Save UX
   Footer selalu terlihat + validasi preview realtime
   ========================================================= */
.tp-bulk-modal{height:min(92vh,900px);max-height:min(92vh,900px)}
.tp-bulk-modal>form{height:100%;max-height:none;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.tp-bulk-modal .modal-head,.tp-bulk-setup,.tp-bulk-context,.tp-word-paste{flex:0 0 auto}
.tp-bulk-modal .tp-bulk-rows{flex:1 1 auto;min-height:150px;max-height:none;overflow-y:auto;overflow-x:hidden;margin-top:12px;padding-bottom:24px;scroll-behavior:smooth}
.tp-bulk-actions{position:sticky;bottom:0;z-index:20;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px!important;padding:13px 18px!important;border-top:1px solid #dce6f0!important;background:rgba(255,255,255,.98)!important;box-shadow:0 -10px 28px rgba(18,55,92,.10);backdrop-filter:blur(10px)}
.tp-save-summary{display:flex;align-items:center;gap:10px;min-width:0}.tp-save-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e8f8ef;color:#09875d;font-weight:900}.tp-save-summary>div{min-width:0}.tp-save-summary b{display:block;font-size:11px;color:#173b60}.tp-save-summary small{display:block;margin-top:2px;max-width:560px;font-size:9.2px;line-height:1.45;color:#71869a}.tp-save-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}.tp-save-buttons button{min-height:42px;white-space:nowrap}.tp-save-buttons [data-tp-jump-top]{color:#37617f;background:#f8fbfe}.tp-save-buttons .primary{min-width:190px;box-shadow:0 8px 20px rgba(22,119,255,.20)}
.tp-bulk-row.has-error{border-color:#f0aaa6;background:#fffafa;box-shadow:0 0 0 2px rgba(190,48,43,.05)}.tp-bulk-row.has-error .tp-bulk-row-no{background:#feeceb;color:#b42318}.tp-row-error{display:block;margin-top:7px;padding:7px 9px;border-radius:8px;background:#fef0ef;color:#b42318;font-size:9px;font-weight:750;line-height:1.4}.tp-row-error[hidden]{display:none!important}
.tp-bulk-actions .primary:disabled{box-shadow:none;opacity:.48}.tp-bulk-actions .primary:not(:disabled){animation:tp-save-ready .22s ease-out}@keyframes tp-save-ready{from{transform:scale(.98);opacity:.7}to{transform:scale(1);opacity:1}}
@media(max-width:760px){.tp-bulk-modal{height:94vh;max-height:94vh}.tp-bulk-actions{align-items:stretch;flex-direction:column;padding:11px 12px!important}.tp-save-summary{width:100%}.tp-save-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.tp-save-buttons .primary{grid-column:1/-1;min-width:0;width:100%}.tp-save-buttons button{width:100%}.tp-bulk-modal .tp-bulk-rows{padding-bottom:18px}}

/* =========================================================
   NTT-RAPORT V1.36.0 — Global TP Activation
   Aksi cepat seluruh TP pada tahun ajaran/semester aktif
   ========================================================= */
.tp-global-activation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin:16px 0;padding:17px 18px;border:1px solid #cfe1f4;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#eef7ff);box-shadow:0 8px 22px rgba(22,86,150,.05)}
.tp-global-activation h4{margin:3px 0 5px;color:#153d66;font-size:15px;letter-spacing:-.01em}.tp-global-activation p{margin:0;color:#6b8299;font-size:10.5px;line-height:1.55;max-width:900px}.tp-global-kicker{display:block;color:#1478e8;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.tp-global-activation form{margin:0}.tp-global-activation form button{min-width:225px;min-height:44px;white-space:nowrap}.tp-global-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.tp-global-stats span{display:flex;flex-direction:column;justify-content:center;min-width:112px;padding:8px 10px;border:1px solid #d8e6f4;border-radius:11px;background:#fff}.tp-global-stats b{color:#176fcf;font-size:15px;line-height:1}.tp-global-stats small{margin-top:4px;color:#72879b;font-size:8.5px}
@media(max-width:980px){.tp-global-activation{grid-template-columns:1fr}.tp-global-activation form button{width:100%}}
@media(max-width:640px){.tp-global-activation{padding:14px}.tp-global-stats{display:grid;grid-template-columns:1fr 1fr}.tp-global-stats span{min-width:0}.tp-global-activation form button{min-width:0}}

/* =========================================================
   NTT-RAPORT V1.36.1 — Two-Level TP Activation
   Admin publishes, Teacher selects per learning/rombel.
   ========================================================= */
.teacher-tp-center{padding:0!important;overflow:hidden}.teacher-tp-center>.toolbar{padding:19px 20px 16px;align-items:flex-start;background:linear-gradient(180deg,#fff,#fbfdff)}.teacher-tp-center>.toolbar h3{font-size:19px;margin:0 0 5px}.teacher-tp-center>.toolbar p{max-width:760px;font-size:11px;line-height:1.6}.teacher-tp-summary{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:8px;min-width:300px}.teacher-tp-summary span{display:grid;place-items:center;min-height:62px;padding:9px 10px;border:1px solid #dce7f2;border-radius:12px;background:#fff}.teacher-tp-summary b{font-size:18px;color:#176fd4}.teacher-tp-summary small{font-size:8.5px;color:#74899d;text-align:center}.teacher-tp-center>.filters{padding:15px 20px;margin:0;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7;background:#f8fbff}.teacher-tp-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:14px;padding:16px 20px 0}.teacher-tp-context>div:first-child{padding:14px 16px;border:1px solid #dce7f2;border-radius:14px;background:#fff}.teacher-tp-context>div:first-child>span{font-size:8.5px;letter-spacing:.09em;font-weight:900;color:#357bcc}.teacher-tp-context h4{font-size:17px;color:#173b60;margin:4px 0}.teacher-tp-context p{margin:0;font-size:10.5px;color:#72879c}.teacher-tp-context .notice{margin:0}.teacher-tp-form{padding:16px 20px 20px}.teacher-tp-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto auto;gap:10px;align-items:end;padding:13px;border:1px solid #dfe8f2;border-radius:14px 14px 0 0;background:#f8fbff}.teacher-tp-toolbar label{margin:0}.teacher-tp-toolbar label>span{font-size:9px}.teacher-tp-toolbar input,.teacher-tp-toolbar select{height:40px;min-height:40px}.teacher-tp-toolbar button{height:40px;white-space:nowrap}.teacher-tp-list{border:1px solid #dfe8f2;border-top:0;border-radius:0 0 14px 14px;overflow:hidden}.teacher-tp-item{display:grid!important;grid-template-columns:38px 82px minmax(0,1fr) 125px;gap:10px;align-items:center;margin:0!important;padding:12px 14px;border-bottom:1px solid #edf2f7;background:#fff;cursor:pointer}.teacher-tp-item:last-child{border-bottom:0}.teacher-tp-item:hover{background:#fbfdff}.teacher-tp-item:has(input:checked){background:#f5faff}.teacher-tp-item[hidden]{display:none!important}.teacher-tp-check{display:grid;place-items:center}.teacher-tp-check input{width:18px!important;height:18px!important;margin:0!important}.teacher-tp-code{font-weight:900;font-size:10px;color:#1a5da6}.teacher-tp-desc{font-weight:600;font-size:10.5px;line-height:1.5;color:#294965}.teacher-tp-state{text-align:right}.teacher-tp-state .status{font-size:8px;min-height:26px;padding:4px 8px}.teacher-tp-save{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:13px 14px;border:1px solid #dbe6f1;border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(21,67,112,.08);backdrop-filter:blur(8px)}.teacher-tp-save b{display:block;font-size:11px;color:#244765}.teacher-tp-save small{display:block;margin-top:3px;font-size:9px;color:#7a8fa3}.teacher-tp-save button{min-width:180px;height:44px}.tp-global-activation h4:after{content:' · PUBLIKASI ADMIN';font-size:8px;letter-spacing:.06em;color:#1976d2}.tp-global-activation p{max-width:900px}@media(max-width:1100px){.teacher-tp-center>.toolbar{flex-direction:column}.teacher-tp-summary{width:100%;min-width:0}.teacher-tp-context{grid-template-columns:1fr}.teacher-tp-toolbar{grid-template-columns:1fr 180px}.teacher-tp-toolbar button{width:100%}}@media(max-width:720px){.teacher-tp-center>.toolbar,.teacher-tp-center>.filters,.teacher-tp-context,.teacher-tp-form{padding-left:14px;padding-right:14px}.teacher-tp-summary{grid-template-columns:repeat(3,1fr)}.teacher-tp-toolbar{grid-template-columns:1fr}.teacher-tp-item{grid-template-columns:32px 70px 1fr}.teacher-tp-state{grid-column:2/-1;text-align:left}.teacher-tp-save{align-items:stretch;flex-direction:column}.teacher-tp-save button{width:100%}}

/* =========================================================
   NTT-RAPORT V1.37.0 — Teacher Grade Center & Precision Report
   ========================================================= */
.teacher-grade-tools{margin:0 20px 14px;padding:12px;border:1px solid #dce7f2;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f7fbff);display:grid;gap:10px}.grade-search-filter,.grade-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grade-search-filter input{flex:1;min-width:240px;height:40px}.grade-search-filter select{width:185px;height:40px}.grade-search-filter button{height:40px}.grade-bulk-actions{padding-top:10px;border-top:1px solid #e6eef6}.grade-bulk-actions>span{min-width:120px;font-size:10px;color:#657b91}.grade-bulk-actions>span b{font-size:13px;color:#1769ca}.grade-bulk-actions select{width:min(310px,100%);height:38px;font-size:9.5px}.grade-bulk-actions button{height:38px;font-size:9.5px}.manual-grade-table th:first-child,.manual-grade-table td:first-child{width:42px;text-align:center}.manual-grade-table .grade-row-check,.manual-grade-table [data-grade-check-all]{width:16px!important;height:16px!important;min-height:16px!important;margin:0!important}.manual-grade-table tr[hidden]{display:none!important}.manual-grade-table tbody tr:has(.grade-row-check:checked){background:#f3f8ff}.manual-grade-actions{border-color:#cfe0f1;box-shadow:0 -8px 24px rgba(20,74,130,.08)}
@media(max-width:900px){.teacher-grade-tools{margin-left:14px;margin-right:14px}.grade-search-filter,.grade-bulk-actions{align-items:stretch}.grade-search-filter input,.grade-search-filter select,.grade-search-filter button,.grade-bulk-actions select,.grade-bulk-actions button{width:100%!important;min-width:0}.grade-bulk-actions>span{width:100%}}

/* Precision report: A4 visual + print rules */
.report-book{counter-reset:reportpage}.report-page{position:relative;counter-increment:reportpage}.report-page:after{content:"Halaman " counter(reportpage);position:absolute;right:14mm;bottom:7mm;font:9px Arial,sans-serif;color:#444}.report-sheet{font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.35;color:#111}.report-head{min-height:86px}.report-head h2{font-size:16px;letter-spacing:.02em}.report-head h3{font-size:14px}.report-identity{margin:10px 0 13px;gap:18px}.report-identity dl{font-size:10.5px;grid-template-columns:118px 1fr}.report-sheet h4{margin:11px 0 5px;font-size:11.5px}.report-table{width:100%;table-layout:fixed;font-size:9.6px}.report-table th,.report-table td{padding:5px 5px;line-height:1.35;overflow-wrap:anywhere}.values-page .report-table th:nth-child(1){width:35px}.values-page .report-table th:nth-child(3){width:66px}.values-page .report-table th:nth-child(2){width:31%}.subject-group-row td{padding:5px 6px!important}.report-note{min-height:64px;line-height:1.5}.signatures{margin-top:18px;gap:14px;font-size:10px}.signatures div{min-height:100px}.signatures strong{font-size:10px}.report-sheet footer{margin-top:12px;padding-top:5px;font-size:8.5px}.bio-table{font-size:10.5px;margin-top:18px}.bio-table td{padding:4px 6px}.report-cover{display:flex;flex-direction:column;align-items:center;text-align:center}.cover-school{margin-top:auto;padding-bottom:22mm}.cover-student{margin-top:28mm}.report-readiness{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}.report-readiness span{padding:10px 12px;border:1px solid #dce7f2;border-radius:11px;background:#fff}.report-readiness b{display:block;font-size:15px;color:#1769ca}.report-readiness small{display:block;margin-top:2px;color:#74889c;font-size:9px}.report-batch-note{padding:11px 13px;border:1px solid #dce7f2;border-radius:12px;background:#f8fbff;color:#536b82;font-size:10px;margin:10px 0}.report-batch-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:12px 0}.report-batch-actions a,.report-batch-actions button{min-height:40px}
@media(max-width:850px){.report-readiness{grid-template-columns:1fr 1fr}.report-page:after{display:none}.report-sheet{width:100%!important;min-height:0!important;padding:18px!important}.signatures{grid-template-columns:1fr}.values-page .report-table{min-width:760px}}
@media print{@page{size:A4 portrait;margin:0}.report-book{display:block!important}.report-page{width:210mm!important;min-height:297mm!important;margin:0!important;padding:12mm 13mm 14mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;page-break-after:always!important;break-after:page!important}.report-page:last-child{page-break-after:auto!important;break-after:auto!important}.report-page:after{right:13mm;bottom:6mm}.report-head,.report-identity,.subject-group-row,.signatures,.report-note{break-inside:avoid;page-break-inside:avoid}.report-table thead{display:table-header-group}.report-table tr{break-inside:avoid;page-break-inside:avoid}.report-table tfoot{display:table-footer-group}.report-actions,.report-readiness,.report-batch-note,.report-batch-actions{display:none!important}}

/* =========================================================
   NTT-RAPORT V1.38.0 — Smart Teacher Grade & Homeroom Center
   ========================================================= */
.teacher-grade-tabs{display:flex;gap:8px;align-items:center;padding:14px 20px;border-bottom:1px solid #e8eef5;background:#fbfdff;overflow:auto}.teacher-grade-tabs a{white-space:nowrap;text-decoration:none;color:#58728d;font-size:10.5px;font-weight:800;padding:9px 12px;border-radius:10px;border:1px solid transparent}.teacher-grade-tabs a:hover{background:#f0f6fd;color:#1769ca}.teacher-grade-tabs a.active{background:#1677f2;color:#fff;border-color:#1677f2;box-shadow:0 6px 16px rgba(22,119,242,.18)}
.teacher-grade-readiness{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(260px,1.6fr) auto;align-items:center;gap:14px;margin:0 20px 12px;padding:12px 14px;border:1px solid #dce7f2;border-radius:13px;background:linear-gradient(180deg,#fbfdff,#f6faff)}.teacher-grade-readiness b{display:block;color:#173b60;font-size:11px}.teacher-grade-readiness small{display:block;color:#7890a6;font-size:9px;margin-top:2px}.teacher-grade-readiness strong{font-size:10px;color:#365876;white-space:nowrap}.readiness-meter{height:9px;border-radius:999px;background:#e6eef6;overflow:hidden}.readiness-meter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1677f2,#11b7c9)}
.manual-grade-table table{min-width:1480px}.manual-grade-table td:nth-child(6),.manual-grade-table td:nth-child(7){min-width:285px}.manual-grade-table td:nth-child(8){min-width:320px}.manual-grade-table td:nth-child(9){min-width:115px;vertical-align:middle}.objective-multi{height:76px!important;min-height:76px!important;padding:6px 8px!important;background:#fff!important}.objective-multi option{padding:5px 6px;white-space:normal}.grade-save-state{display:inline-flex;align-items:center;justify-content:center;min-width:86px;min-height:30px;border-radius:999px;padding:5px 9px;background:#f2f5f8;color:#71869a;font-size:9px;font-weight:850}.grade-save-state.saved{background:#e8f8ef;color:#0b9a69}.grade-save-state.pending{background:#fff4e4;color:#c77a16}.grade-save-state.error{background:#fef0ef;color:#c9433d}.autosave-global-state{display:block;margin-top:4px;color:#2f7dc9!important;font-size:9px!important}.grade-bulk-actions select{min-width:190px}.grade-bulk-actions button{white-space:nowrap}
.homeroom-finalization{margin:0 0 16px;padding:16px 18px;border:1px solid #dce7f2;border-radius:17px;background:linear-gradient(135deg,#fbfdff,#f3f8ff);box-shadow:0 10px 26px rgba(22,50,80,.05)}.homeroom-final-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.homeroom-final-head span{display:block;color:#2873c8;font-size:9px;font-weight:900;letter-spacing:.09em}.homeroom-final-head h3{margin:3px 0 3px;color:#173b60;font-size:18px}.homeroom-final-head p{margin:0;color:#74899e;font-size:10px;line-height:1.55}.homeroom-final-head>strong{font-size:30px;color:#1769ca;letter-spacing:-.04em}.homeroom-progress{height:10px;margin:13px 0 14px;background:#e7eef6;border-radius:999px;overflow:hidden}.homeroom-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1677f2,#12b981)}.homeroom-finalization .report-readiness{grid-template-columns:repeat(7,minmax(110px,1fr));margin:0}.homeroom-quick-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.homeroom-quick-links a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;border:1px solid #d9e5f1;border-radius:9px;background:#fff;color:#315d88;text-decoration:none;font-size:9.5px;font-weight:800}.homeroom-quick-links a:hover{border-color:#9fc6ee;color:#1769ca;background:#f7fbff}
@media(max-width:1180px){.teacher-grade-readiness{grid-template-columns:1fr}.teacher-grade-readiness strong{white-space:normal}.homeroom-finalization .report-readiness{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:780px){.teacher-grade-tabs{padding:10px 14px}.teacher-grade-readiness{margin-left:14px;margin-right:14px}.homeroom-final-head{flex-direction:column;gap:8px}.homeroom-finalization .report-readiness{grid-template-columns:repeat(2,minmax(0,1fr))}.homeroom-quick-links{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:480px){.homeroom-finalization .report-readiness,.homeroom-quick-links{grid-template-columns:1fr}}
@media print{.teacher-grade-tabs,.teacher-grade-readiness,.homeroom-finalization{display:none!important}.report-sheet{orphans:3;widows:3}.values-page .report-table tr,.signatures,.report-note,.report-identity{break-inside:avoid!important;page-break-inside:avoid!important}}

/* =========================================================
   NTT-RAPORT V1.38.1 — Teacher Grade UI Precision Fix
   Compact spreadsheet-like grade entry + professional TP picker
   ========================================================= */
.manual-grade-center{border-radius:18px!important;overflow:hidden}
.teacher-grade-tools{padding:14px 16px!important;background:#f8fbff!important;border-radius:14px!important}
.grade-search-filter{display:grid!important;grid-template-columns:minmax(280px,1fr) 210px auto;gap:10px!important;align-items:end!important}
.grade-tool-field{display:grid!important;gap:5px!important;margin:0!important;min-width:0}.grade-tool-field>span{font-size:9px;font-weight:850;letter-spacing:.04em;color:#58728d;text-transform:uppercase}.grade-tool-field input,.grade-tool-field select{height:42px!important;min-height:42px!important;margin:0!important}.grade-select-visible{height:42px!important;white-space:nowrap}
.grade-bulk-actions{display:grid!important;grid-template-columns:100px minmax(220px,1fr) auto minmax(220px,1fr) auto;gap:9px!important;align-items:end!important;padding-top:12px!important}.grade-selected-summary{height:42px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #dbe6f1;border-radius:11px;background:#fff;color:#6c8195}.grade-selected-summary b{font-size:17px;color:#1677f2}.grade-selected-summary span{font-size:9px}.grade-bulk-actions button{height:42px!important;white-space:nowrap}
.manual-grade-table{max-height:610px!important;border-radius:14px!important;background:#fff}.manual-grade-table table{min-width:1260px!important;table-layout:fixed}.manual-grade-table th{height:44px;padding:9px 8px!important;vertical-align:middle!important}.manual-grade-table td{padding:11px 8px!important;vertical-align:middle!important}.manual-grade-table th:nth-child(1),.manual-grade-table td:nth-child(1){width:38px!important}.manual-grade-table th:nth-child(2),.manual-grade-table td:nth-child(2){width:44px!important}.manual-grade-table th:nth-child(3),.manual-grade-table td:nth-child(3){width:195px!important}.manual-grade-table th:nth-child(4),.manual-grade-table td:nth-child(4){width:84px!important}.manual-grade-table th:nth-child(5),.manual-grade-table td:nth-child(5){width:112px!important}.manual-grade-table th:nth-child(6),.manual-grade-table td:nth-child(6),.manual-grade-table th:nth-child(7),.manual-grade-table td:nth-child(7){width:205px!important;min-width:205px!important}.manual-grade-table th:nth-child(8),.manual-grade-table td:nth-child(8){width:270px!important;min-width:270px!important}.manual-grade-table th:nth-child(9),.manual-grade-table td:nth-child(9){width:116px!important;min-width:116px!important}.manual-grade-table td:nth-child(3) b{font-size:11px!important;line-height:1.3}.manual-grade-table td:nth-child(3) small{font-size:8.5px!important}.manual-final-score{height:42px!important;min-height:42px!important;padding:8px!important;text-align:center;font-size:12px!important;font-weight:800}.manual-grade-table .status{font-size:8.5px!important;min-height:29px!important;padding:4px 8px!important;white-space:nowrap}.current-description{min-height:42px!important;max-height:72px;overflow:auto;padding:8px 9px!important;font-size:9px!important;line-height:1.4!important}
.objective-picker-cell{display:grid;gap:5px}.objective-picker-cell>small{font-size:8px!important;line-height:1.3;color:#7b8fa4!important}.objective-picker-button{width:100%;height:42px!important;min-height:42px!important;padding:6px 8px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:6px;border:1px solid #cfdceb!important;border-radius:10px!important;background:#fff!important;text-align:left!important;color:#365570!important;box-shadow:none!important}.objective-picker-button:hover:not(:disabled){border-color:#84b9f0!important;background:#f7fbff!important}.objective-picker-button.has-selection{border-color:#8dc0f5!important;background:#f2f8ff!important}.objective-picker-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:750}.objective-picker-button b{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#eaf4ff;color:#1769ca;font-size:10px}.objective-picker-button:disabled{background:#f4f7fa!important;color:#93a4b4!important}.objective-picker-cell.disabled small{color:#9aabb9!important}.objective-source[hidden]{display:none!important}
body.picker-open{overflow:hidden}.objective-picker-modal{position:fixed;inset:0;z-index:9999}.objective-picker-modal[hidden]{display:none!important}.objective-picker-backdrop{position:absolute;inset:0;background:rgba(7,29,52,.58);backdrop-filter:blur(3px)}.objective-picker-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 36px));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#fff;border:1px solid #dce7f2;border-radius:18px;box-shadow:0 28px 90px rgba(7,29,52,.28);overflow:hidden}.objective-picker-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid #e7eef5}.objective-picker-dialog>header b{display:block;font-size:16px;color:#173a5d}.objective-picker-dialog>header small{display:block;margin-top:3px;color:#778da2;font-size:10px}.objective-picker-close{width:34px;height:34px;padding:0!important;border:0!important;background:#f3f7fb!important;border-radius:9px!important;font-size:21px!important;line-height:1!important}.objective-picker-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid #edf2f7;background:#fbfdff}.objective-picker-search input{height:42px!important;margin:0!important}.objective-picker-search>span{min-width:86px;text-align:center;font-size:10px;color:#6c8196}.objective-picker-search b{font-size:16px;color:#1677f2}.objective-picker-options{overflow:auto;padding:10px 14px;display:grid;gap:7px}.objective-picker-option{display:grid!important;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;margin:0!important;padding:10px 11px;border:1px solid #e0e8f1;border-radius:11px;background:#fff;cursor:pointer}.objective-picker-option:hover{border-color:#a8ccf2;background:#f8fbff}.objective-picker-option:has(input:checked){border-color:#69aaf0;background:#eef7ff}.objective-picker-option input{width:17px!important;height:17px!important;min-height:17px!important;margin:1px 0 0!important}.objective-picker-option span{min-width:0}.objective-picker-option b{display:block;font-size:10px;color:#1769ca}.objective-picker-option small{display:block;margin-top:2px;font-size:9.5px;line-height:1.45;color:#4f6b84}.objective-picker-dialog>footer{display:flex;justify-content:flex-end;gap:9px;padding:13px 20px;border-top:1px solid #e7eef5;background:#fbfdff}.objective-picker-dialog>footer button{height:42px!important;min-width:120px}
.manual-grade-actions{position:sticky!important;bottom:8px!important;margin-top:10px!important;z-index:12!important;border-radius:14px!important}.grade-save-state{font-size:8px!important;min-width:92px!important}.teacher-grade-readiness{grid-template-columns:minmax(220px,.9fr) minmax(240px,1.5fr) auto!important}
@media(max-width:1180px){.grade-search-filter{grid-template-columns:1fr 190px}.grade-select-visible{grid-column:1/-1;width:100%}.grade-bulk-actions{grid-template-columns:90px minmax(180px,1fr) auto}.grade-bulk-actions .grade-tool-field:nth-of-type(2){grid-column:2}.grade-bulk-actions button:last-child{grid-column:3}.manual-grade-table table{min-width:1210px!important}}
@media(max-width:820px){.grade-search-filter{grid-template-columns:1fr}.grade-select-visible{grid-column:auto}.grade-bulk-actions{grid-template-columns:1fr!important}.grade-selected-summary,.grade-bulk-actions button{width:100%}.teacher-grade-tools{margin-left:12px!important;margin-right:12px!important}.objective-picker-dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px);border-radius:14px}.objective-picker-dialog>header,.objective-picker-search,.objective-picker-dialog>footer{padding-left:14px;padding-right:14px}.objective-picker-search{grid-template-columns:1fr}.objective-picker-search>span{text-align:left}.objective-picker-dialog>footer{display:grid;grid-template-columns:1fr 1fr}.objective-picker-dialog>footer button{min-width:0!important;width:100%}}

/* V1.38.12 - Rapor class/student print selector */
.report-selector-form{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.25fr) auto;gap:12px;align-items:end}
.report-selector-form label{margin:0}
.report-selector-actions{display:flex;align-items:center;gap:9px;min-height:42px;flex-wrap:wrap}
.report-selector-actions .button,.report-selector-actions .primary,.report-empty-actions .primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;min-height:42px}
.report-print-all{border-color:#8ec5ff!important;background:#eef7ff!important;color:#126bd1!important}
.report-print-one{box-shadow:0 7px 18px rgba(22,119,255,.22)}
.report-class-ready .empty{padding:28px}
.report-empty-actions{display:flex;justify-content:center;margin-top:16px}
@media(max-width:1050px){.report-selector-form{grid-template-columns:1fr 1fr}.report-selector-actions{grid-column:1/-1}.report-selector-actions .button,.report-selector-actions .primary{flex:1}}
@media(max-width:720px){.report-selector-form{grid-template-columns:1fr}.report-selector-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.report-selector-actions .button,.report-selector-actions .primary{width:100%}}

/* =========================================================
   NTT-RAPORT V1.38.13 — Precision A4 Report Print Engine
   Deterministic pagination, repeated identity/header, stable signatures
   ========================================================= */
.report-page{box-sizing:border-box}
.report-mini-identity{display:flex;justify-content:space-between;gap:16px;margin:8px 0 10px;padding:6px 8px;border:1px solid #aeb8c4;background:#fafafa;font-size:9.5px;line-height:1.25}
.continuation-label{font-weight:500;font-size:9px;color:#555}
.report-decision{margin:6px 0 0;font-size:10px}
.values-grade-page .report-table{margin-bottom:0}
.values-summary-page .report-block{break-inside:avoid;page-break-inside:avoid}
.extra-report-table th:nth-child(1){width:34px}.extra-report-table th:nth-child(3){width:78px}
.attendance-table{width:58%;max-width:360px}.attendance-table td:first-child{width:68%}

@media print{
  @page{size:A4 portrait;margin:0!important}
  html,body{margin:0!important;padding:0!important;width:210mm!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .app,.workspace,main{display:block!important;width:210mm!important;max-width:210mm!important;margin:0!important;padding:0!important;background:#fff!important}
  .sidebar,.topbar,.pagehead,.no-print,.dashboard-footer,.panel.no-print{display:none!important}
  .report-book{display:block!important;margin:0!important;padding:0!important;gap:0!important}
  .report-page,.report-sheet{
    box-sizing:border-box!important;
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    max-height:297mm!important;
    margin:0!important;
    padding:10mm 12mm 13mm!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-after:page!important;
    page-break-after:always!important;
    break-inside:avoid-page!important;
    page-break-inside:avoid!important;
    position:relative!important;
    font-family:Arial,"Helvetica Neue",sans-serif!important;
    color:#000!important;
  }
  .report-page:last-child{break-after:auto!important;page-break-after:auto!important}
  .report-head{min-height:0!important;height:21mm!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8mm!important;border-bottom:1.1pt solid #000!important;padding:0 0 3mm!important;margin:0 0 3mm!important;text-align:center!important}
  .report-head img{width:17mm!important;height:17mm!important;object-fit:contain!important;flex:0 0 17mm!important}
  .report-head h2{font-size:11.5pt!important;line-height:1.1!important;margin:0 0 1mm!important;letter-spacing:.01em!important}
  .report-head h3{font-size:10pt!important;line-height:1.1!important;margin:0 0 .8mm!important}
  .report-head p{font-size:7.5pt!important;line-height:1.15!important;margin:0!important}
  .report-identity{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4mm 10mm!important;margin:0 0 3mm!important}
  .report-identity dl{display:grid!important;grid-template-columns:31mm 1fr!important;margin:0!important;font-size:8pt!important;line-height:1.25!important}
  .report-identity dt,.report-identity dd{margin:0!important;padding:.45mm 0!important}
  .report-mini-identity{display:flex!important;justify-content:space-between!important;gap:8mm!important;margin:0 0 3mm!important;padding:1.7mm 2.2mm!important;border:.7pt solid #777!important;background:#fff!important;font-size:7.4pt!important;line-height:1.2!important}
  .report-sheet h4{font-size:8.5pt!important;line-height:1.2!important;margin:2.2mm 0 1.5mm!important}
  .continuation-label{font-size:7.3pt!important}
  .report-table{width:100%!important;min-width:0!important;border-collapse:collapse!important;table-layout:fixed!important;font-size:7.45pt!important;line-height:1.2!important;margin:0 0 2.4mm!important}
  .report-table th,.report-table td{border:.65pt solid #000!important;padding:1.45mm 1.6mm!important;vertical-align:top!important;overflow-wrap:break-word!important;word-break:normal!important}
  .report-table th{background:#eef2f6!important;color:#000!important;font-weight:700!important;text-align:center!important;vertical-align:middle!important}
  .grade-report-table th:nth-child(1){width:8mm!important}.grade-report-table th:nth-child(2){width:43mm!important}.grade-report-table th:nth-child(3){width:18mm!important}.grade-report-table td:nth-child(1),.grade-report-table td:nth-child(3){text-align:center!important;vertical-align:middle!important}
  .subject-group-row td{padding:1.2mm 1.6mm!important;background:#f4f4f4!important;font-size:7.5pt!important}
  .extra-report-table th:nth-child(1){width:8mm!important}.extra-report-table th:nth-child(2){width:47mm!important}.extra-report-table th:nth-child(3){width:21mm!important}
  .attendance-table{width:62%!important;max-width:none!important;margin-bottom:1.8mm!important}.attendance-table td:first-child{width:68%!important}
  .attendance-note{border:.65pt solid #000!important;padding:1.8mm 2mm!important;margin-top:1.5mm!important;min-height:10mm!important;font-size:7.5pt!important;line-height:1.3!important}
  .report-note{border:.65pt solid #000!important;border-radius:0!important;padding:2mm 2.2mm!important;margin:0!important;min-height:16mm!important;font-size:7.7pt!important;line-height:1.35!important}
  .report-decision{font-size:7.7pt!important;margin:1.7mm 0 0!important}
  .signatures{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8mm!important;margin-top:5mm!important;font-size:7.7pt!important;text-align:center!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .signatures div{min-height:29mm!important;display:flex!important;flex-direction:column!important}
  .signatures p{margin:0!important;line-height:1.35!important}.signatures strong{margin-top:auto!important;font-size:7.8pt!important}.signatures small{font-size:7.2pt!important;margin-top:.8mm!important}
  .report-sheet footer{position:absolute!important;left:12mm!important;right:12mm!important;bottom:5.5mm!important;display:flex!important;justify-content:space-between!important;border-top:.45pt solid #777!important;margin:0!important;padding-top:1.2mm!important;font-size:6.5pt!important;line-height:1.1!important}
  .report-page:after{content:"Halaman " counter(reportpage)!important;right:12mm!important;bottom:2.2mm!important;font-size:6.4pt!important;color:#333!important}
  .report-cover{padding:18mm 20mm 16mm!important}.report-cover .cover-brand img{width:28mm!important;height:28mm!important}.report-cover .cover-title{margin-top:18mm!important}.report-cover .cover-title p{font-size:12pt!important}.report-cover .cover-title h1{font-size:19pt!important}.report-cover .cover-title h2{font-size:15pt!important}.report-cover .cover-student{margin-top:20mm!important;width:78%!important;padding:4mm 5mm!important;grid-template-columns:42mm 1fr!important;gap:2mm 4mm!important;font-size:9pt!important}.report-cover .cover-student strong{font-size:9.5pt!important}.report-cover .cover-school{padding-bottom:10mm!important}.report-cover .cover-school h3{font-size:13pt!important}.report-cover .cover-school p{font-size:8.5pt!important}
  .biodata-page .report-head{justify-content:flex-start!important;text-align:left!important}.bio-table{width:100%!important;border-collapse:collapse!important;margin-top:3mm!important;font-size:8.2pt!important;line-height:1.3!important}.bio-table td{padding:1.25mm 1.5mm!important;vertical-align:top!important}.bio-table td:first-child{width:8mm!important}.bio-table td:nth-child(2){width:48mm!important}.bio-table td:nth-child(3){width:4mm!important}.bio-note{position:absolute!important;left:12mm!important;right:12mm!important;bottom:13mm!important;margin:0!important;padding-top:2mm!important;font-size:7pt!important}
}

/* =========================================================
   NTT-RAPORT V1.40.0 — Commercial Enterprise Workspace
   Setup Wizard + Finalization Center + Quality Gate
   ========================================================= */
.enterprise-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px 30px;margin-bottom:18px;border:1px solid #dce7f5;border-radius:22px;background:linear-gradient(135deg,#f8fbff 0%,#eef6ff 62%,#f8fbff 100%);box-shadow:0 14px 36px rgba(22,74,130,.08)}
.enterprise-hero.compact{padding:22px 26px}
.enterprise-hero h2{margin:8px 0 6px;font-size:28px;line-height:1.15;color:#122b49}
.enterprise-hero p{margin:0;color:#667d99;max-width:860px;line-height:1.55}
.enterprise-score{min-width:150px;text-align:center;padding:15px 18px;border:1px solid #d6e5f7;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(30,94,160,.08)}
.enterprise-score small,.enterprise-score span{display:block;color:#6f839c}.enterprise-score strong{display:block;margin:2px 0;font-size:34px;color:#126fd3}
.enterprise-progress{height:10px;margin:-4px 2px 20px;border-radius:999px;background:#e8eef6;overflow:hidden}.enterprise-progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1685ff,#22b573)}
.enterprise-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.enterprise-step{display:grid;grid-template-columns:42px 1fr auto 18px;align-items:center;gap:12px;padding:16px 17px;border:1px solid #dce7f3;border-radius:16px;background:#fff;text-decoration:none;color:inherit;transition:.18s ease;box-shadow:0 7px 20px rgba(32,68,110,.045)}
.enterprise-step:hover{transform:translateY(-1px);border-color:#9fcaff;box-shadow:0 11px 25px rgba(20,95,172,.10)}
.enterprise-step-no{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;font-weight:800;background:#eff6ff;color:#1677e8}
.enterprise-step.is-done .enterprise-step-no{background:#e8f8ef;color:#158447}.enterprise-step.is-pending{border-color:#f2d5a8}.enterprise-step.is-pending .enterprise-step-no{background:#fff5e7;color:#bc6a00}
.enterprise-step b{display:block;color:#15304f}.enterprise-step p{margin:4px 0 0;color:#72839a;font-size:13px;line-height:1.4}.enterprise-step>strong{font-size:18px;color:#24486f}.enterprise-step>i{font-style:normal;color:#91a5bc}
.enterprise-conflict-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.enterprise-conflict-list a{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid #e1e9f2;border-radius:13px;text-decoration:none;color:#2f4968;background:#fbfdff}.enterprise-conflict-list a strong{min-width:30px;text-align:center;color:#b42318}
.finalization-actions{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 18px}.finalization-actions .button{display:inline-flex;align-items:center;text-decoration:none;min-height:40px}
.mini-meter{display:inline-block;vertical-align:middle;width:86px;height:7px;margin-right:8px;border-radius:999px;background:#e7edf4;overflow:hidden}.mini-meter>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2b87ef,#18a867)}
@media(max-width:900px){.enterprise-step-grid,.enterprise-conflict-list{grid-template-columns:1fr}.enterprise-hero{align-items:flex-start;flex-direction:column}.enterprise-score{width:100%;box-sizing:border-box}.enterprise-step{grid-template-columns:40px 1fr auto}.enterprise-step>i{display:none}}
@media(max-width:620px){.enterprise-hero{padding:20px;border-radius:16px}.enterprise-hero h2{font-size:23px}.enterprise-step{grid-template-columns:36px 1fr;padding:14px}.enterprise-step>strong{grid-column:2}.finalization-actions{display:grid;grid-template-columns:1fr}.finalization-actions .button{justify-content:center}}

/* =========================================================
   NTT-RAPORT V1.42.0 - Official Precision Report Suite
   Formal SMA report styling, deterministic A4 composition
   ========================================================= */
.official-cover,.official-biodata,.official-report-page{background:#fff;color:#000}
.official-cover-frame{position:absolute;inset:12mm;border:1.1pt solid #000;padding:12mm 14mm 13mm;display:flex;flex-direction:column;align-items:center;text-align:center}
.cover-logos{width:100%;display:flex;justify-content:center;gap:18mm;min-height:30mm;margin-top:4mm}
.cover-logo-slot{width:26mm;height:26mm;display:flex;align-items:center;justify-content:center;font-size:7pt;line-height:1.25;color:#555;text-align:center}
.cover-logo-slot img{max-width:100%;max-height:100%;object-fit:contain}
.official-cover .cover-title{margin-top:13mm}
.official-cover .cover-title p{margin:0 0 2mm;font-size:11pt;font-weight:700;letter-spacing:.12em}
.official-cover .cover-title h1{margin:0 0 2mm;font-size:18pt;letter-spacing:.04em}
.official-cover .cover-title h2{margin:0 0 2mm;font-size:14pt;letter-spacing:.06em}
.official-cover .cover-title h3{margin:0;font-size:11pt;font-weight:700}
.official-cover-student{margin-top:20mm!important;width:82%!important;border:1pt solid #000!important;padding:5mm 6mm!important;display:grid!important;grid-template-columns:42mm 1fr!important;gap:2.5mm 5mm!important;text-align:left!important;background:#fff!important}
.official-cover-student span{font-size:9pt}.official-cover-student strong{font-size:9.5pt}
.official-cover .cover-school{margin-top:auto!important;padding-bottom:5mm!important}
.official-cover .cover-school h3{margin:0 0 2mm;font-size:13pt;text-transform:uppercase;letter-spacing:.03em}
.official-cover .cover-school p{margin:.9mm 0;font-size:8.5pt}
.official-report-head{display:grid!important;grid-template-columns:22mm 1fr 22mm!important;align-items:center!important;gap:4mm!important;height:auto!important;min-height:25mm!important;border-bottom:2.2pt double #000!important;padding:0 0 2.5mm!important;text-align:center!important}
.official-head-logo{width:22mm;height:22mm;display:flex;align-items:center;justify-content:center}
.official-head-logo img{max-width:21mm!important;max-height:21mm!important;width:auto!important;height:auto!important;object-fit:contain!important}
.official-head-copy{min-width:0}.official-head-title{font-weight:700;font-size:8.2pt;letter-spacing:.08em;margin-bottom:.6mm}
.official-head-copy h2{font-size:12pt!important;margin:0 0 .8mm!important;text-transform:uppercase!important;line-height:1.12!important}
.official-head-copy p{font-size:7pt!important;line-height:1.2!important;margin:.3mm 0!important}
.official-report-identity{border-top:.6pt solid #000;border-bottom:.6pt solid #000;padding:2mm 0;margin:2.5mm 0 3mm!important}
.report-mini-identity span{display:flex;flex-direction:column;gap:.4mm}.report-mini-identity small{font-size:6.8pt;color:#222}
.official-report-page h4{font-weight:700;letter-spacing:.02em}
.official-bio-table{border-top:1pt solid #000;border-bottom:1pt solid #000}
.official-bio-table tr:not(:last-child) td{border-bottom:.35pt solid #b7b7b7}
.official-bio-table td:nth-child(1){text-align:center;color:#333}
.official-bio-table td:nth-child(4){font-weight:500}
.report-decision-box{margin-top:2mm;border:.7pt solid #000;display:grid;grid-template-columns:32mm 1fr;min-height:9mm;align-items:center;font-size:7.8pt}
.report-decision-box span{height:100%;display:flex;align-items:center;padding:0 2mm;border-right:.7pt solid #000;font-weight:700}
.report-decision-box strong{padding:0 2mm;text-transform:uppercase}
.official-signatures .signature-space{display:block;min-height:17mm}
.official-signatures strong{text-decoration:none!important;border-bottom:.45pt solid #000;display:inline-block;align-self:center;min-width:38mm;padding-bottom:.6mm}
.official-report-footer{letter-spacing:.01em}
.report-table tbody tr:nth-child(even):not(.subject-group-row) td{background:#fcfcfc}
.grade-report-table td:nth-child(2){font-weight:600}
.grade-report-table td:nth-child(4){font-weight:400;text-align:left}

@media print{
  .report-page,.report-sheet{padding:9mm 12mm 13mm!important}
  .official-cover{padding:0!important}
  .official-cover-frame{inset:11mm!important;padding:10mm 13mm 12mm!important}
  .cover-logos{margin-top:3mm!important;gap:16mm!important}.cover-logo-slot{width:25mm!important;height:25mm!important}
  .official-cover .cover-title{margin-top:11mm!important}.official-cover .cover-title p{font-size:10pt!important}.official-cover .cover-title h1{font-size:17pt!important}.official-cover .cover-title h2{font-size:14pt!important}.official-cover .cover-title h3{font-size:10.5pt!important}
  .official-cover-student{margin-top:17mm!important;width:84%!important;padding:4.5mm 5.5mm!important;grid-template-columns:40mm 1fr!important;font-size:8.5pt!important}
  .official-cover .cover-school{padding-bottom:4mm!important}.official-cover .cover-school h3{font-size:12pt!important}.official-cover .cover-school p{font-size:8pt!important}
  .official-report-head{grid-template-columns:20mm 1fr 20mm!important;min-height:24mm!important;margin-bottom:2.8mm!important;padding-bottom:2.1mm!important;border-bottom:2pt double #000!important}
  .official-head-logo{width:20mm!important;height:20mm!important}.official-head-logo img{max-width:19mm!important;max-height:19mm!important}
  .official-head-title{font-size:7.4pt!important}.official-head-copy h2{font-size:11.2pt!important}.official-head-copy p{font-size:6.6pt!important}
  .official-report-identity{padding:1.7mm 0!important;margin:2.2mm 0 2.8mm!important}
  .report-identity dl{grid-template-columns:29mm 1fr!important;font-size:7.7pt!important}.report-identity dt,.report-identity dd{padding:.35mm 0!important}
  .report-mini-identity{font-size:7.1pt!important;padding:1.5mm 2mm!important;border:.55pt solid #555!important}
  .report-sheet h4{font-size:8.2pt!important;margin:2mm 0 1.2mm!important}
  .report-table{font-size:7.2pt!important;line-height:1.18!important;margin-bottom:2.1mm!important}.report-table th,.report-table td{padding:1.25mm 1.45mm!important;border:.55pt solid #000!important}
  .grade-report-table th:nth-child(1){width:8mm!important}.grade-report-table th:nth-child(2){width:44mm!important}.grade-report-table th:nth-child(3){width:18mm!important}
  .subject-group-row td{background:#e9e9e9!important;font-weight:700!important}
  .official-bio-table{margin-top:2.5mm!important;font-size:8pt!important}.official-bio-table td{padding:1.05mm 1.4mm!important}
  .bio-note{font-size:6.7pt!important;line-height:1.3!important}
  .report-note{min-height:15mm!important;font-size:7.5pt!important;padding:1.8mm 2mm!important}
  .report-decision-box{min-height:8.5mm!important;font-size:7.5pt!important;margin-top:1.6mm!important}.report-decision-box span{padding:0 1.8mm!important}.report-decision-box strong{padding:0 1.8mm!important}
  .official-signatures{margin-top:5.5mm!important;gap:7mm!important;font-size:7.4pt!important}.official-signatures div{min-height:33mm!important}.official-signatures .signature-space{min-height:16mm!important}.official-signatures strong{font-size:7.6pt!important;min-width:36mm!important}.official-signatures small{font-size:7pt!important}
  .official-report-footer{left:12mm!important;right:12mm!important;bottom:5.2mm!important;font-size:6.2pt!important}
  .report-page:after{bottom:2mm!important;font-size:6.2pt!important}
}

/* V1.43.0 - SMA 2026 curriculum auto preset */
.curriculum-auto-actions{display:flex;justify-content:flex-start;gap:10px;flex-wrap:wrap;margin:14px 0}.curriculum-auto-actions form{margin:0}.danger-outline{border-color:#f1b4ae!important;color:#b42318!important;background:#fff!important}.danger-outline:hover{background:#fef3f2!important}.btn-small{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid #cbd8e5;border-radius:8px;background:#fff;color:#174b7a;text-decoration:none;font-size:11px;font-weight:800}.btn-small:hover{border-color:#1677ff;background:#f5f9ff}.table-wrap .badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;border:1px solid transparent}.table-wrap .badge-success{background:#ecfdf3;color:#067647;border-color:#abefc6}.table-wrap .badge-warning{background:#fff8e8;color:#8a5b00;border-color:#f7d58a}.table-wrap .badge-info{background:#eef6ff;color:#175b9e;border-color:#bfdbfe}.table-wrap td small{color:#70869b}.table-wrap td{vertical-align:top}.curriculum-auto-actions+ .table-wrap{margin-top:4px}@media(max-width:760px){.curriculum-auto-actions{display:grid;grid-template-columns:1fr}.curriculum-auto-actions form,.curriculum-auto-actions button{width:100%}}

/* V1.44.0 - SMA 2026 final curriculum preset X/XI/XII */
.curriculum-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.curriculum-summary-card{border:1px solid #dbe7f5;border-radius:14px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:5px;box-shadow:0 5px 18px rgba(28,69,117,.05)}
.curriculum-summary-card b{font-size:14px;color:#0f3157}.curriculum-summary-card span{font-size:13px;font-weight:700}.curriculum-summary-card small{color:#627b98}.curriculum-summary-card em{font-style:normal;font-size:11px;font-weight:700;margin-top:3px}
.curriculum-summary-card.ok em{color:#087a54}.curriculum-summary-card.warn{border-color:#f0c777;background:#fffaf0}.curriculum-summary-card.warn em{color:#9a5a00}
.curriculum-grade-row td{background:#eef5fd!important;color:#154e84;font-size:12px;letter-spacing:.04em;border-top:2px solid #c6d9ee!important;border-bottom:1px solid #c6d9ee!important}
.curriculum-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form{display:inline;margin:0}.inline-form button{margin:0}
.curriculum-auto-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.curriculum-auto-actions form{margin:0}
@media(max-width:900px){.curriculum-summary-grid{grid-template-columns:1fr}.curriculum-auto-actions{align-items:stretch}.curriculum-auto-actions form,.curriculum-auto-actions button{width:100%}}

/* =========================================================
   NTT-RAPORT V1.45.0 - Official Precision Report Layout
   Uniform logo geometry, balanced A4 rhythm, formal signatures
   ========================================================= */
.official-report-head{
  grid-template-columns:24mm minmax(0,1fr) 24mm!important;
  gap:5mm!important;
}
.official-head-logo{
  width:24mm!important;height:24mm!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
}
.official-head-logo img{
  width:22mm!important;height:22mm!important;max-width:22mm!important;max-height:22mm!important;
  object-fit:contain!important;display:block!important;
}
.cover-logos{align-items:center!important}
.cover-logo-slot{
  width:30mm!important;height:30mm!important;flex:0 0 30mm!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
}
.cover-logo-slot img{
  width:28mm!important;height:28mm!important;max-width:28mm!important;max-height:28mm!important;
  object-fit:contain!important;display:block!important;
}
.official-head-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.official-head-copy p{max-width:138mm;overflow-wrap:anywhere}
.official-report-identity dl{align-content:start}
.official-report-identity dt{font-weight:600}
.official-report-identity dd{font-weight:400}
.grade-report-table thead th,.extra-report-table thead th{height:9mm}
.grade-report-table tbody td{min-height:8mm}
.report-table td.num{font-weight:700;text-align:center!important;vertical-align:middle!important}
.official-signatures{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}
.official-signatures>div{min-width:0!important;height:38mm!important;min-height:38mm!important}
.official-signatures p{min-height:9mm!important}
.official-signatures .signature-space{flex:1 1 auto!important;min-height:15mm!important}
.official-signatures strong{max-width:100%!important;white-space:normal!important;line-height:1.25!important}
.official-signatures small{min-height:4mm!important;display:block!important}
.report-decision-box span,.report-decision-box strong{display:flex!important;align-items:center!important}
.official-bio-table td:nth-child(1){width:8mm}
.official-bio-table td:nth-child(2){width:47mm;font-weight:600}
.official-bio-table td:nth-child(3){width:4mm;text-align:center}
.official-bio-table td:nth-child(4){width:auto}

@media print{
  .report-page,.report-sheet{padding:10mm 12mm 14mm!important}
  .official-report-head{
    grid-template-columns:22mm minmax(0,1fr) 22mm!important;
    gap:4mm!important;
    min-height:27mm!important;
    padding-bottom:2.5mm!important;
    margin-bottom:3mm!important;
  }
  .official-head-logo{width:22mm!important;height:22mm!important}
  .official-head-logo img{width:20mm!important;height:20mm!important;max-width:20mm!important;max-height:20mm!important}
  .official-head-title{font-size:7.8pt!important;line-height:1.1!important;letter-spacing:.09em!important}
  .official-head-copy h2{font-size:11.5pt!important;line-height:1.12!important;margin:.5mm 0 .8mm!important}
  .official-head-copy p{font-size:6.8pt!important;line-height:1.2!important;margin:.35mm 0!important}
  .official-report-identity{padding:2mm 0!important;margin:2.3mm 0 3mm!important}
  .report-identity dl{grid-template-columns:30mm 1fr!important;font-size:7.8pt!important;line-height:1.3!important}
  .report-identity dt,.report-identity dd{padding:.45mm 0!important}
  .report-mini-identity{min-height:12mm!important;align-items:center!important;font-size:7.3pt!important;padding:1.8mm 2.2mm!important}
  .report-sheet h4{font-size:8.5pt!important;line-height:1.2!important;margin:2.4mm 0 1.5mm!important}
  .report-table{font-size:7.45pt!important;line-height:1.23!important}
  .report-table th,.report-table td{padding:1.45mm 1.6mm!important}
  .grade-report-table thead th,.extra-report-table thead th{height:9mm!important}
  .grade-report-table th:nth-child(1){width:8mm!important}
  .grade-report-table th:nth-child(2){width:45mm!important}
  .grade-report-table th:nth-child(3){width:18mm!important}
  .grade-report-table td:nth-child(1),.grade-report-table td:nth-child(3){vertical-align:middle!important}
  .extra-report-table th:nth-child(1){width:8mm!important}
  .extra-report-table th:nth-child(2){width:48mm!important}
  .extra-report-table th:nth-child(3){width:22mm!important}
  .attendance-table{width:62%!important}
  .report-note{min-height:18mm!important;line-height:1.4!important}
  .report-decision-box{grid-template-columns:32mm 1fr!important;min-height:9mm!important}
  .official-signatures{gap:8mm!important;margin-top:7mm!important}
  .official-signatures>div{height:38mm!important;min-height:38mm!important}
  .official-signatures p{min-height:9mm!important;font-size:7.5pt!important}
  .official-signatures .signature-space{min-height:15mm!important}
  .official-signatures strong{font-size:7.7pt!important;min-width:34mm!important}
  .official-signatures small{font-size:7pt!important;min-height:4mm!important}
  .official-report-footer{bottom:5.5mm!important;font-size:6.4pt!important}
  .report-page:after{bottom:2.3mm!important;font-size:6.4pt!important}
  .official-cover-frame{inset:11mm!important;padding:11mm 14mm 13mm!important}
  .cover-logos{gap:18mm!important;margin-top:4mm!important;min-height:30mm!important}
  .cover-logo-slot{width:30mm!important;height:30mm!important;flex-basis:30mm!important}
  .cover-logo-slot img{width:28mm!important;height:28mm!important;max-width:28mm!important;max-height:28mm!important}
  .official-cover .cover-title{margin-top:13mm!important}
  .official-cover .cover-title p{font-size:10.5pt!important}
  .official-cover .cover-title h1{font-size:18pt!important}
  .official-cover .cover-title h2{font-size:14pt!important}
  .official-cover .cover-title h3{font-size:10.5pt!important}
  .official-cover-student{margin-top:19mm!important;width:82%!important;grid-template-columns:42mm minmax(0,1fr)!important;padding:5mm 6mm!important}
  .official-cover .cover-school{padding-bottom:5mm!important}
  .official-bio-table{font-size:8.15pt!important;margin-top:3mm!important}
  .official-bio-table td{padding:1.2mm 1.45mm!important;line-height:1.3!important}
}

/* =========================================================
   V1.49.4 — Vertical TP/CP/KD checklist (menurun, tanpa scroll internal)
   ========================================================= */
.import-objective-checklists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:720px;align-items:start}
.objective-checklist-group{margin:0;padding:0 2px 2px;border:0!important;border-radius:0;background:transparent;min-width:0}
.objective-checklist-group legend{width:100%;padding:0 0 4px;margin:0;font-size:12px;font-weight:900;color:#17385f}
.objective-checklist-group>small{display:block;color:#73849a;margin:0 0 7px;font-size:10px;line-height:1.35}
.objective-checklist-grid{display:grid;grid-template-columns:1fr;gap:2px;max-height:none!important;height:auto!important;overflow:visible!important;padding:0}
.objective-check-item{display:grid;grid-template-columns:16px minmax(0,1fr);gap:7px;align-items:start;padding:5px 3px;border:0;border-bottom:1px solid #e8eef6;border-radius:0;background:transparent;cursor:pointer;min-height:44px}
.objective-check-item:hover{background:#f7fbff}
.objective-check-item input{margin:3px 0 0;width:15px;height:15px;accent-color:#1677ff}
.objective-check-item span{min-width:0}
.objective-check-item span>b{display:block;font-size:11px;color:#163a63;margin-bottom:1px;line-height:1.2}
.objective-check-item span>small{display:block;overflow:visible;color:#677991;font-size:10px;line-height:1.35;white-space:normal}
.objective-check-item:has(input:checked){background:#edf7ff;border-bottom-color:#b9dafd;box-shadow:inset 3px 0 0 #1677ff}
.objective-checklist-counter{display:flex;justify-content:flex-end;gap:2px;font-size:10px;color:#6f8096;margin-top:5px;padding-top:2px}
.objective-checklist-counter b{color:#1167c9}
.objective-checklist-empty{padding:8px 0;border:0;color:#73849a;background:transparent;font-size:11px}

/* Input manual: tetap tanpa scrollbar internal; daftar mengalir alami mengikuti jumlah TP/CP/KD. */
.manual-objective-checklist{min-width:250px;max-width:360px}
.manual-objective-checklist-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;padding-bottom:4px;border-bottom:1px solid #e8eef6}
.manual-objective-checklist-head>b{font-size:11px;color:#183b62}
.manual-objective-checklist-head>span{font-size:10px;color:#6e8096;background:#edf5ff;border-radius:999px;padding:2px 7px;white-space:nowrap}
.manual-objective-checklist-items{display:grid;grid-template-columns:1fr;gap:2px;max-height:none!important;height:auto!important;overflow:visible!important;padding:0}
.manual-objective-check-item{display:grid;grid-template-columns:16px minmax(0,1fr);gap:6px;align-items:start;padding:5px 3px;border:0;border-bottom:1px solid #e8eef6;border-radius:0;background:transparent;cursor:pointer}
.manual-objective-check-item:hover{background:#f7fbff}
.manual-objective-check-item input{margin:3px 0 0;width:15px;height:15px;accent-color:#1677ff}
.manual-objective-check-item span>b{display:block;font-size:10.5px;color:#163a63;margin-bottom:1px}
.manual-objective-check-item span>small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#677991;font-size:9.5px;line-height:1.3}
.manual-objective-check-item:has(input:checked){background:#edf7ff;border-bottom-color:#b9dafd;box-shadow:inset 3px 0 0 #1677ff}
.manual-grade-table table{min-width:1680px}

@media(max-width:1200px){.import-objective-checklists{min-width:620px}}
@media(max-width:900px){.import-objective-checklists{grid-template-columns:1fr;min-width:340px}.manual-objective-checklist{min-width:220px;max-width:none}}
@media(max-width:640px){.import-objective-checklists{min-width:0}}

/* V1.49.5 - quick TP/KD entry */
.tp-quick-row{display:block;margin-top:7px;padding:5px 8px;border:1px solid #cfe0f3;border-radius:8px;background:#f7fbff;color:#1556a8;font-size:10px;font-weight:800;white-space:nowrap}
.tp-quick-row:hover{background:#eef6ff}
.grade-table tr.tp-quick-filled>td{background:#fbfdff}
.grade-actions [data-tp-fill-all]{white-space:nowrap}

/* V1.49.6 - TP/KD otomatis dari nilai akhir */
.grade-input-auto{background:#f7fbff;border-color:#b9d7f7}
.grade-input-auto:focus{background:#fff}

/* V1.49.7 Homeroom grade approval */
.homeroom-grade-approval{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;margin:14px 0 18px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff}.homeroom-grade-approval span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#1d4ed8}.homeroom-grade-approval h3{margin:4px 0 5px;font-size:18px}.homeroom-grade-approval p{margin:0;color:#64748b}.homeroom-grade-approval form{margin:0;flex:0 0 auto}.homeroom-grade-approval button{white-space:nowrap}@media(max-width:760px){.homeroom-grade-approval{align-items:stretch;flex-direction:column}.homeroom-grade-approval button{width:100%}}

/* V1.50.0 — Professional Assessment Approval Workflow */
.professional-workflow-page{gap:18px}.workflow-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);gap:26px;align-items:center;padding:24px 26px;border:1px solid #d9e7f4;border-radius:20px;background:linear-gradient(135deg,#ffffff 0%,#f5faff 58%,#eef8ff 100%);box-shadow:0 14px 38px rgba(28,76,120,.07)}.workflow-hero:after{content:"";position:absolute;right:-70px;top:-90px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(22,119,255,.11),rgba(22,119,255,0) 68%);pointer-events:none}.workflow-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:8px;color:#1b72ce;font-size:9px;font-weight:900;letter-spacing:.14em}.workflow-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:#1ac69a;box-shadow:0 0 0 5px rgba(26,198,154,.10)}.workflow-hero h2{margin:0 0 7px;font-size:24px;line-height:1.2;color:#12385f}.workflow-hero p{max-width:760px;margin:0;color:#5e7892;font-size:11px;line-height:1.65}.workflow-hero-copy>small{display:block;margin-top:10px;color:#7c91a5;font-size:9.5px;font-weight:700}.workflow-stepper{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:8px;position:relative;z-index:1}.workflow-stepper>span{display:grid;justify-items:center;gap:5px;min-width:64px;color:#8aa0b4}.workflow-stepper>span b{width:32px;height:32px;display:grid;place-items:center;border-radius:11px;border:1px solid #d9e5f0;background:#fff;color:#7890a7;font-size:11px;box-shadow:0 4px 14px rgba(33,72,110,.05)}.workflow-stepper>span em{font-style:normal;font-size:8.3px;font-weight:800;text-align:center;white-space:nowrap}.workflow-stepper>span.done{color:#1374d3}.workflow-stepper>span.done b{border-color:#bddbfb;background:#eaf5ff;color:#126bc4}.workflow-stepper>i{height:2px;border-radius:9px;background:#dce8f2}.workflow-stepper>span.done+i{background:linear-gradient(90deg,#35a0ff,#56d4c2)}.assessment-period-card{margin:0!important;border:1px solid #dce7f2!important;background:#fff!important;color:#244864!important;box-shadow:0 8px 24px rgba(28,76,120,.04)}.assessment-period-card.is-open{border-color:#bee9d9!important;background:linear-gradient(90deg,#f3fff9,#fbfffd)!important}.assessment-period-card.is-closed{border-color:#f3dfb8!important;background:linear-gradient(90deg,#fffaf0,#fffdf8)!important}.period-signal{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#edf5fd;flex:0 0 auto}.period-signal i{width:9px;height:9px;border-radius:50%;background:#8aa4bb}.is-open .period-signal{background:#e7faF2}.is-open .period-signal i{background:#14a978;box-shadow:0 0 0 5px rgba(20,169,120,.10)}.is-closed .period-signal{background:#fff2d8}.is-closed .period-signal i{background:#d98d19}.workflow-kpis .assessment-stat{position:relative;overflow:hidden;border-color:#dde8f2!important}.workflow-kpis .assessment-stat:after{content:"";position:absolute;right:-18px;bottom:-22px;width:74px;height:74px;border-radius:50%;background:#f3f8fd}.workflow-kpis .assessment-stat strong{position:relative;z-index:1}.professional-status-panel{border-radius:20px!important;box-shadow:0 15px 38px rgba(26,66,108,.06)!important}.professional-status-panel .toolbar{background:linear-gradient(180deg,#fff,#fbfdff)}.workflow-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 20px;border-bottom:1px solid #edf2f7;background:#fff;color:#6c8298;font-size:9.5px;font-weight:700}.workflow-legend span{display:inline-flex;align-items:center;gap:6px}.workflow-legend .dot{width:8px;height:8px;border-radius:50%}.workflow-legend .dot.draft{background:#d65b52}.workflow-legend .dot.submitted{background:#e7a12b}.workflow-legend .dot.approved{background:#14a978}.workflow-legend .dot.revision{background:#567fc4}.workflow-status-cell{display:grid;gap:5px;align-content:start;min-width:210px}.workflow-status{display:inline-flex;align-items:center;gap:7px;width:max-content;min-height:31px;padding:6px 10px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.055em}.workflow-status i{width:7px;height:7px;border-radius:50%;background:currentColor}.workflow-status.draft{background:#fff0ee;color:#c84c43}.workflow-status.submitted{background:#fff4df;color:#c77b0f}.workflow-status.approved{background:#e8f9f1;color:#07885e}.workflow-status.revision{background:#eef3ff;color:#4d70bd}.workflow-meta{display:block;color:#4b6d89;font-size:8.7px;line-height:1.45;font-weight:700}.workflow-hint{display:block;color:#8a9daf;font-size:8.4px;line-height:1.4}.workflow-actions{align-items:center!important}.workflow-actions form{margin:0}.workflow-actions .workflow-open{border-color:#d6e4f1;background:#fff;color:#244d70}.workflow-actions .workflow-approve{background:linear-gradient(135deg,#1682ff,#1169d0);border-color:#1677ff;box-shadow:0 7px 18px rgba(22,119,255,.18)}.workflow-actions .workflow-reopen{color:#365d82;background:#f8fbff}.workflow-actions .workflow-fallback{font-size:9px!important}.workflow-waiting{display:inline-flex;align-items:center;min-height:36px;padding:8px 11px;border-radius:10px;background:#fff8ea;border:1px solid #f3dfb7;color:#a66a0d;font-size:9px;font-weight:800}.workflow-progress{width:150px!important}.workflow-row.workflow-final{background:linear-gradient(90deg,rgba(235,251,244,.58),rgba(255,255,255,0) 48%)}.workflow-row.workflow-diajukan{background:linear-gradient(90deg,rgba(255,248,233,.55),rgba(255,255,255,0) 48%)}.workflow-flash{margin:0!important;border-radius:14px!important;box-shadow:0 8px 22px rgba(8,135,93,.08)}
@media(max-width:1120px){.workflow-hero{grid-template-columns:1fr}.workflow-stepper{max-width:650px}.workflow-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.workflow-hero{padding:18px;border-radius:16px}.workflow-hero h2{font-size:20px}.workflow-stepper{grid-template-columns:1fr;gap:6px}.workflow-stepper>i{width:2px;height:12px;justify-self:center}.workflow-stepper>span{grid-template-columns:34px 1fr;justify-items:start;align-items:center;width:100%}.workflow-stepper>span em{font-size:9px}.workflow-kpis{grid-template-columns:1fr}.workflow-legend{padding-left:14px;padding-right:14px}.assessment-status-table table{min-width:0!important}.assessment-status-table thead{display:none}.assessment-status-table tbody{display:grid;gap:10px;padding:12px}.assessment-status-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;padding:14px;border:1px solid #e0e9f2;border-radius:14px;background:#fff}.assessment-status-table td{display:grid;gap:4px;min-width:0!important;padding:0!important;border:0!important}.assessment-status-table td:before{content:attr(data-label);font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#8ba0b2}.assessment-status-table td:nth-child(2),.assessment-status-table td:nth-child(6),.assessment-status-table td:nth-child(7){grid-column:1/-1}.workflow-status-cell{min-width:0}.workflow-actions{width:100%}.workflow-actions>*{flex:1}.workflow-actions .button,.workflow-actions button,.workflow-waiting{width:100%;justify-content:center}.workflow-progress{width:100%!important}}

/* V1.50.2 - Professional teacher revision workflow */
.workflow-revision-box{position:relative;min-width:170px;border:1px solid #d7e5f2;border-radius:11px;background:#f8fbff;color:#365d82}.workflow-revision-box[open]{width:min(360px,80vw);padding-bottom:10px;box-shadow:0 14px 34px rgba(28,76,120,.12);background:#fff}.workflow-revision-box summary{cursor:pointer;list-style:none;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 11px;font-size:9px;font-weight:900;color:#365d82}.workflow-revision-box summary::-webkit-details-marker{display:none}.workflow-revision-box[open] summary{justify-content:flex-start;border-bottom:1px solid #edf2f7;color:#174b78}.workflow-revision-form{display:grid;gap:9px;padding:11px 12px 0}.workflow-revision-form label{display:grid;gap:5px;font-size:9px;font-weight:900;color:#284e70}.workflow-revision-form label span{color:#d64e46}.workflow-revision-form textarea{width:100%;min-height:78px;resize:vertical;border:1px solid #ccdae8;border-radius:10px;padding:9px 10px;font:inherit;font-size:10px;line-height:1.45;background:#fff;color:#24455f}.workflow-revision-form textarea:focus{outline:0;border-color:#64aaf0;box-shadow:0 0 0 3px rgba(22,119,255,.09)}.workflow-revision-form>small{color:#73899d;font-size:8.5px;line-height:1.45}.workflow-revision-form button{justify-content:center}.workflow-revision-reason{display:block;margin-top:2px;padding:5px 7px;border-left:3px solid #6f8ed3;border-radius:4px;background:#f3f6ff;color:#526b92;font-size:8.4px;line-height:1.45;font-weight:700;max-width:320px}.workflow-row.workflow-dibuka_kembali{background:linear-gradient(90deg,rgba(239,244,255,.68),rgba(255,255,255,0) 48%)}
@media(max-width:760px){.workflow-revision-box,.workflow-revision-box[open]{width:100%;min-width:0}.workflow-revision-reason{max-width:none}}


/* V1.50.3 Teacher revision workflow visibility */
.teacher-revision-panel{margin:14px 0 16px;padding:16px 18px;border:1px solid #f2c77d;border-radius:14px;background:linear-gradient(135deg,#fffaf0,#fff);display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:18px;align-items:start;box-shadow:0 10px 26px rgba(95,67,18,.06)}
.teacher-revision-panel>div>span{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff0c8;color:#9a6500;font-size:9px;font-weight:900;letter-spacing:.08em}
.teacher-revision-panel h4{margin:8px 0 5px;font-size:15px;color:#173a5e}.teacher-revision-panel p{margin:0;color:#647b90;font-size:10.5px;line-height:1.55}
.teacher-revision-panel form{display:grid;gap:9px}.teacher-revision-panel label{display:grid;gap:5px;font-size:10px;font-weight:900;color:#294b6b}.teacher-revision-panel textarea{width:100%;min-height:76px;resize:vertical;border:1px solid #cad9e7;border-radius:10px;padding:9px 10px;font:inherit;font-size:10px;line-height:1.45;background:#fff}.teacher-revision-panel button{justify-self:end}
.workflow-revision-box.is-visible{display:grid;gap:7px;padding:9px 10px;min-width:240px;background:#fffaf0;border-color:#efcf93}.workflow-revision-box.is-visible>b{font-size:9px;color:#8d640a}.workflow-revision-box.is-visible .workflow-revision-form{padding:0}.workflow-revision-box.is-visible textarea{min-height:64px}
@media(max-width:900px){.teacher-revision-panel{grid-template-columns:1fr}.teacher-revision-panel button{justify-self:stretch}}

/* V1.51 Smart Navigation & Admin Command Center */
.page-breadcrumb{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:#7b8da1;font-size:10px;font-weight:750}.page-breadcrumb a{color:#3979be;text-decoration:none}.page-breadcrumb a:hover{text-decoration:underline}.page-breadcrumb b{color:#5d7288}.page-breadcrumb strong{color:#284b70}.page-breadcrumb span{color:#a1afbd}
.nav-section-title{position:relative}.nav-section-state{display:none;width:6px;height:6px;border-radius:50%;background:#63d3ff;box-shadow:0 0 0 3px rgba(99,211,255,.10);margin-left:auto}.nav-section:has(.nav-item.active) .nav-section-state{display:inline-block}.nav-section:has(.nav-item.active) .nav-section-chevron{color:#dff6ff}.nav-item.active{font-weight:800!important}.nav-item.active:after{content:"Anda di sini";position:absolute;right:10px;font-size:7px;letter-spacing:.02em;text-transform:uppercase;color:rgba(255,255,255,.74)}
.admin-command-center{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;margin:14px 0 18px}.admin-priority-card,.admin-quick-card{background:#fff;border:1px solid #dce7f2;border-radius:17px;padding:17px;box-shadow:0 8px 24px rgba(21,55,88,.05)}.admin-command-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.admin-command-heading span{display:block;color:#3979be;font-size:8.5px;font-weight:900;letter-spacing:.11em}.admin-command-heading h3{margin:3px 0 0;color:#173b60;font-size:14px}.admin-command-heading>a{font-size:9px;font-weight:850;text-decoration:none;color:#1769ca;white-space:nowrap}.admin-priority-list{display:grid;gap:7px}.admin-priority-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:35px;padding:8px 10px;border:1px solid #e3ebf4;border-radius:10px;background:#fbfdff;text-decoration:none;color:#38536e;font-size:9.7px}.admin-priority-item>i{width:8px;height:8px;border-radius:50%;background:#94a3b8}.admin-priority-item>b{font-size:8.5px;color:#3a76b6}.admin-priority-item.is-warning>i{background:#f59e0b}.admin-priority-item.is-danger>i{background:#dc2626}.admin-priority-item.is-info>i{background:#1677f2}.admin-priority-item.is-success>i{background:#10b981}.admin-priority-item:hover{border-color:#a8cbed;background:#f7fbff}.admin-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.admin-quick-grid>a{display:flex;align-items:center;gap:9px;min-width:0;min-height:62px;padding:10px;border:1px solid #dce7f2;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);text-decoration:none;color:#21496f;transition:.15s ease}.admin-quick-grid>a:hover{transform:translateY(-1px);border-color:#9fc8ef;box-shadow:0 7px 18px rgba(23,105,202,.08)}.admin-quick-grid .ui-icon{width:18px;height:18px;color:#1677f2;flex:0 0 auto}.admin-quick-grid span{min-width:0}.admin-quick-grid b{display:block;font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-quick-grid small{display:block;margin-top:2px;color:#7d90a3;font-size:8.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1050px){.admin-command-center{grid-template-columns:1fr}.admin-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.page-breadcrumb{flex-wrap:wrap}.admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-command-heading{flex-direction:column}.nav-item.active:after{display:none}}
@media(max-width:430px){.admin-quick-grid{grid-template-columns:1fr}}

/* V1.52.0 — Homeroom Student Data Management */
.homeroom-student-selector .toolbar{align-items:center}.homeroom-student-actions{display:flex;gap:8px;flex-wrap:wrap}.homeroom-student-policy{margin:14px 0}.homeroom-student-policy p{margin:4px 0 0}.student-dialog{width:min(880px,calc(100% - 24px));max-height:92vh;border:0;border-radius:20px;padding:0;background:#fff;box-shadow:0 28px 90px rgba(7,29,52,.35);overflow:hidden}.student-dialog::backdrop{background:rgba(7,29,52,.62);backdrop-filter:blur(3px)}.student-dialog>form{max-height:92vh;overflow:auto;padding:0}.student-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 16px;border-bottom:1px solid #e3ebf4;background:linear-gradient(180deg,#fff,#fbfdff)}.student-dialog-head span{display:block;color:#1677f2;font-size:9px;font-weight:900;letter-spacing:.12em}.student-dialog-head h3{margin:4px 0 5px;color:#153b61;font-size:19px}.student-dialog-head p{margin:0;max-width:670px;color:#70869b;font-size:10.5px;line-height:1.55}.student-dialog-close{width:36px;height:36px;padding:0;border:1px solid #dce7f2;border-radius:11px;background:#fff;color:#6d8297;font-size:22px;line-height:1;flex:0 0 auto}.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;padding:20px 22px}.student-form-grid label{margin:0 0 13px}.student-form-grid label b,.student-transfer-dialog label b{color:#d92d20}.student-form-grid .span-2{grid-column:1/-1}.student-form-grid textarea,.student-transfer-dialog textarea{width:100%;resize:vertical;padding:11px 12px;border:1px solid #cbd8e5;border-radius:9px;background:#fff;color:var(--ink);font:inherit;outline:none}.student-form-grid textarea:focus,.student-transfer-dialog textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1677ff18}.student-dialog-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid #e3ebf4;background:rgba(255,255,255,.96);backdrop-filter:blur(6px)}.student-dialog-actions .danger,.homeroom-student-actions .danger{border-color:#f0b9b4;background:#fff5f4;color:#b42318}.student-dialog-actions .danger:hover,.homeroom-student-actions .danger:hover{background:#feeceb}.student-transfer-dialog{width:min(620px,calc(100% - 24px))}.student-transfer-dialog>form{padding-bottom:0}.student-transfer-dialog .danger-head span{color:#b42318}.student-transfer-dialog .danger-head{background:linear-gradient(180deg,#fff,#fff8f7)}.student-transfer-dialog>form>label{margin:0 22px 16px}.transfer-summary{display:grid;gap:3px;margin:20px 22px 16px;padding:13px 14px;border:1px solid #f0d5d1;border-radius:12px;background:#fff8f7}.transfer-summary b{color:#8f271f}.transfer-summary small{color:#8a6a67}.detail-table th{width:220px}.homeroom-student-actions button{white-space:nowrap}
@media(max-width:760px){.student-form-grid{grid-template-columns:1fr;padding:16px}.student-form-grid .span-2{grid-column:auto}.student-dialog-head,.student-dialog-actions{padding-left:16px;padding-right:16px}.student-transfer-dialog>form>label,.transfer-summary{margin-left:16px;margin-right:16px}.homeroom-student-actions{width:100%}.homeroom-student-actions button{flex:1}.homeroom-student-selector .toolbar{align-items:stretch}.homeroom-student-selector .toolbar>button{width:100%}}

/* V1.51.1 - User account: teaching assignment + automatic temporary password */
.teacher-assignment-list{display:flex;flex-direction:column;gap:6px;min-width:210px;max-width:340px}
.teacher-assignment-chip{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border:1px solid #dbe7f3;border-radius:9px;background:#f7fbff;line-height:1.25}
.teacher-assignment-chip b{font-size:12px;color:#173b66;font-weight:800}
.teacher-assignment-chip small{font-size:11px;color:#657b95}
.temporary-password-notice code{display:inline-block;margin:4px 0;padding:7px 10px;border-radius:8px;background:#fff;border:1px dashed currentColor;font-size:16px;font-weight:900;letter-spacing:.6px;user-select:all}
@media(max-width:760px){.teacher-assignment-list{min-width:180px;max-width:240px}.teacher-assignment-chip{padding:6px 8px}}

/* NTT-RAPORT V1.52.1 — Final brand logo integration */
.brand-logo-img{width:44px;height:44px;object-fit:contain;display:block;flex:0 0 44px;border-radius:13px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.16))}
.topbar-logo-img{width:34px;height:34px;object-fit:contain;display:block;border-radius:10px;flex:0 0 34px;filter:drop-shadow(0 5px 12px rgba(22,119,255,.14))}
.login-logo-img{width:58px;height:58px;object-fit:contain;display:block;flex:0 0 58px;border-radius:17px;filter:drop-shadow(0 10px 24px rgba(19,115,209,.20))}
.auth-logo-img{width:54px;height:54px;object-fit:contain;display:block;flex:0 0 54px;border-radius:16px;filter:drop-shadow(0 9px 22px rgba(19,115,209,.20))}
body.sidebar-collapsed .brand-logo-img{width:42px;height:42px;flex-basis:42px}
@media(max-width:1000px){.topbar-logo-img{width:32px;height:32px;flex-basis:32px}}
@media(max-width:640px){.login-logo-img{width:50px;height:50px;flex-basis:50px;border-radius:14px}.topbar-logo-img{display:none}}

/* =========================================================
   NTT-RAPORT V1.54.0 — Professional Academic UI/UX System
   Visual refresh only: no route, permission, query, workflow,
   report print, or data-source behavior is changed here.
   ========================================================= */
@media screen {
:root{
  --ui-bg:#f5f8fc;--ui-surface:#ffffff;--ui-surface-soft:#f9fbfe;
  --ui-ink:#102a43;--ui-ink-2:#243f5b;--ui-muted:#72869b;
  --ui-line:#e4ebf3;--ui-line-strong:#d5e0ec;
  --ui-primary:#126fe8;--ui-primary-2:#1998ee;--ui-deep:#08335c;
  --ui-success:#13845b;--ui-warning:#b86a08;--ui-danger:#c73b32;
  --ui-radius:18px;--ui-radius-sm:12px;
  --ui-shadow:0 12px 32px rgba(28,61,94,.055);
  --ui-shadow-hover:0 18px 38px rgba(28,74,120,.09);
}
html{background:var(--ui-bg)}
body{background:var(--ui-bg);color:var(--ui-ink);font-size:13px;letter-spacing:-.005em}
.app:not(.auth-app){grid-template-columns:252px minmax(0,1fr)}
.workspace{background:radial-gradient(circle at 78% -120px,rgba(40,150,236,.08),transparent 440px),linear-gradient(180deg,#f8fbff 0,#f5f8fc 320px,#f5f8fc 100%)}
main{max-width:1540px;padding:24px 30px 36px}

/* Sidebar: quieter, cleaner, less blocky */
.sidebar{padding:14px 10px 12px;background:linear-gradient(180deg,#073a68 0%,#052d51 55%,#042541 100%);box-shadow:10px 0 34px rgba(5,34,61,.055)}
.brand{min-height:64px;padding:4px 10px 15px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.075)}
.brand-logo-img{width:40px;height:40px;flex-basis:40px;border-radius:12px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.14))}
.brand strong{font-size:14px;letter-spacing:-.01em}.brand small{font-size:9px;color:#a7c8e3}
.nav-scroll{padding:8px 1px 10px}
.nav-section{margin-top:10px!important}
.nav-section-title{min-height:30px;padding:7px 9px!important;color:#82a8c9!important;font-size:8.6px!important;letter-spacing:.065em!important}
.nav-section-title:hover{background:transparent!important;color:#cce7fb!important}
.nav-item{position:relative;min-height:38px;padding:9px 10px!important;border-radius:10px!important;font-size:10px!important;color:#c9dff0!important;transition:background .15s ease,color .15s ease,transform .15s ease!important}
.nav-item:hover{transform:none!important;background:rgba(255,255,255,.065)!important;color:#fff!important}
.nav-item.active{background:linear-gradient(90deg,rgba(35,139,247,.24),rgba(35,139,247,.10))!important;color:#fff!important;box-shadow:inset 2px 0 0 #4bb7ff!important}
.nav-item.active:after{right:8px;font-size:6.4px;color:#91d5ff}
.nav-item .ui-icon{opacity:.92}
.sidebar-foot{margin:7px 2px 0;padding:11px 10px;border-top:1px solid rgba(255,255,255,.075);background:transparent;border-radius:0}

/* Topbar: flatter and more spacious */
.topbar{height:66px;padding:0 26px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(213,224,236,.9);box-shadow:none;backdrop-filter:blur(14px) saturate(135%)}
.topbar-logo-img{width:32px;height:32px;flex-basis:32px;border-radius:9px;filter:drop-shadow(0 4px 9px rgba(18,111,232,.12))}
.topbar-brand strong{font-size:13px}.topbar-brand small{font-size:9px}
.global-search{height:38px;border-radius:12px!important;background:#f7f9fc!important;border-color:#e2e9f1!important;box-shadow:none!important}
.global-search:focus-within{background:#fff!important;border-color:#b9d3ef!important;box-shadow:0 0 0 3px rgba(18,111,232,.07)!important}
.year-chip{border-radius:12px!important;border-color:#e2e9f1!important;background:#fbfdff!important;box-shadow:none!important}
.icon-button,.logout{border-radius:11px!important}.avatar{box-shadow:0 0 0 2px #fff,0 0 0 3px #e2eaf3!important}

/* Page heading */
.pagehead{margin-bottom:18px;align-items:flex-start}.pagehead h1{margin:2px 0 0;font-size:28px;line-height:1.12;letter-spacing:-.035em;color:#102d4a;font-weight:800}
.page-breadcrumb{margin-bottom:9px;font-size:9px}.eyebrow{font-size:8.5px;letter-spacing:.13em;color:#3d7dbd}.page-subtitle{font-size:10.5px!important;line-height:1.55!important}

/* Surfaces: reduce the "box in box" feeling */
.panel,.dashboard-panel,.workqueue-card,.enterprise-hero,.control-hero,.teacher-manager,.student-dialog,.modal{border-color:var(--ui-line)!important;box-shadow:var(--ui-shadow)!important}
.panel{border-radius:var(--ui-radius)!important;padding:20px 22px!important;background:rgba(255,255,255,.98)!important}
.panel+.panel{margin-top:14px}
.toolbar{padding-bottom:14px;border-color:#edf1f6}.toolbar h3{font-size:15px;letter-spacing:-.015em;color:#173653}.toolbar p{margin-top:4px!important;font-size:10.5px;line-height:1.55}

/* Buttons: crisp but light */
button,.button,.button-link,.primary{min-height:38px;border-radius:11px!important;padding:9px 13px;font-size:10.5px;box-shadow:none!important;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}
button:hover,.button:hover,.button-link:hover{border-color:#bcd0e5;background:#f8fbfe}
.primary{background:linear-gradient(135deg,#126fe8,#1689f0)!important;border-color:transparent!important;color:#fff!important}
.primary:hover{transform:translateY(-1px);box-shadow:0 9px 18px rgba(18,111,232,.16)!important}

/* Inputs */
label{font-size:10px;color:#3e5872;gap:6px}
input,select,textarea{border-color:#d6e1eb!important;border-radius:11px!important;background:#fff!important;min-height:40px;color:#17344f!important;box-shadow:0 1px 2px rgba(20,48,77,.018)}
input:focus,select:focus,textarea:focus{border-color:#7eb5ee!important;box-shadow:0 0 0 3px rgba(18,111,232,.08)!important}

/* Tables: cleaner enterprise data grid */
.table-wrap{border:1px solid var(--ui-line);border-radius:15px;overflow:auto;background:#fff;margin-top:12px}
table{background:#fff}th,td{padding:11px 12px;border-bottom-color:#edf1f5}th{background:#f8fafc;color:#687e94;font-size:8.5px;letter-spacing:.065em;font-weight:850}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f8fbfe}tbody tr:last-child td{border-bottom:0}
.pagination{font-size:10px;padding-top:12px}

/* Stats: visual hierarchy without oversized boxes */
.stats{gap:12px}.stat{position:relative;overflow:hidden;min-height:102px;padding:16px 17px!important;border:1px solid var(--ui-line)!important;border-radius:16px!important;background:#fff!important;box-shadow:0 7px 22px rgba(28,61,94,.04)!important;text-decoration:none!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.stat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#5d9fea;opacity:.8}.stat:hover{transform:translateY(-2px);border-color:#c7d9ea!important;box-shadow:var(--ui-shadow-hover)!important}
.stat-copy b{font-size:10px!important;color:#61788e!important;font-weight:800!important}.stat strong{font-size:28px!important;line-height:1;margin:9px 0 5px!important;color:#173a5e!important;letter-spacing:-.04em}.stat small{font-size:9px!important;color:#8495a6!important}.stat-purple:before{background:#856fe8}.stat-green:before{background:#2aa775}.stat-orange:before{background:#e69a39}.stat-blue:before{background:#2f86eb}

/* Status / badges */
.status,.badge-lock,.teacher-status-badge{border-radius:999px!important;box-shadow:none!important}.notice,.alert{border-radius:12px}
.empty{border-radius:15px;background:#fbfcfe;border-color:#dfe7ef;padding:30px}.empty b{font-size:14px}

/* Dialogs */
.modal,.student-dialog{border-radius:20px!important}.modal::backdrop,.student-dialog::backdrop{background:rgba(7,35,61,.58);backdrop-filter:blur(4px)}
.modal-head,.student-dialog-head{background:#fff!important}.modal-actions,.student-dialog-actions{background:rgba(255,255,255,.97)!important}

/* General cards used by control center */
.task-center-card,.print-center-card,.enterprise-step,.admin-priority-card,.admin-quick-card,.readiness-summary article{border-color:var(--ui-line)!important;box-shadow:0 7px 22px rgba(28,61,94,.04)!important}
.task-center-card:hover,.print-center-card:hover,.enterprise-step:hover{box-shadow:var(--ui-shadow-hover)!important;border-color:#c4d9ed!important}

/* Curriculum command center: new non-boxy composition */
.curriculum-command{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);gap:14px;align-items:stretch;margin-bottom:14px}
.curriculum-hero{position:relative;min-height:218px;overflow:hidden;border-radius:22px;background:linear-gradient(122deg,#0a4278 0%,#0a69ba 58%,#1697d4 100%);color:#fff;box-shadow:0 18px 38px rgba(8,74,135,.15)}
.curriculum-hero:before{content:"";position:absolute;inset:auto -120px -180px auto;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018)}
.curriculum-hero-copy{position:relative;z-index:2;max-width:760px;padding:28px 30px}.curriculum-live{display:inline-flex;align-items:center;gap:7px;font-size:8.5px;font-weight:900;letter-spacing:.09em}.curriculum-live i{width:7px;height:7px;border-radius:50%;background:#3ee49a;box-shadow:0 0 0 4px rgba(62,228,154,.13)}
.curriculum-hero h2{margin:18px 0 8px;font-size:clamp(24px,2.2vw,32px);line-height:1.09;letter-spacing:-.045em;max-width:700px}.curriculum-hero p{margin:0;max-width:670px;color:#d7ecff;font-size:10.5px;line-height:1.65}.curriculum-hero p b{color:#fff}
.curriculum-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.curriculum-hero-actions a{display:inline-flex;align-items:center;gap:12px;min-height:38px;padding:0 14px;border-radius:11px;background:#fff;color:#0a5fa9;text-decoration:none;font-size:9.8px;font-weight:850}.curriculum-hero-actions a span{font-size:16px}.curriculum-hero-actions a.ghost{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.19);color:#fff}
.curriculum-orbit{position:absolute;right:30px;bottom:22px;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#fff;border:1px solid rgba(255,255,255,.14);background:radial-gradient(circle,rgba(255,255,255,.11),rgba(255,255,255,.02) 68%,transparent 69%)}.curriculum-orbit b{font-size:24px;letter-spacing:.04em}.curriculum-orbit small{position:absolute;bottom:34px;font-size:7px;letter-spacing:.08em;line-height:1.3;color:#d8efff}.curriculum-orbit span{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.orbit-a{inset:16px}.orbit-b{inset:34px}.orbit-c{width:9px;height:9px;right:6px;top:54px;background:#60dcff;border:0!important;box-shadow:0 0 0 5px rgba(96,220,255,.12)}
.curriculum-flow{border:1px solid var(--ui-line);border-radius:20px;background:#fff;padding:17px;box-shadow:var(--ui-shadow)}.curriculum-flow-head{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 11px;border-bottom:1px solid #eef2f6}.curriculum-flow-head span{font-size:8px;font-weight:900;letter-spacing:.11em;color:#597690}.curriculum-flow-head small{font-size:8px;color:#9aa9b7}.curriculum-flow nav{display:grid}.curriculum-flow nav a{display:grid;grid-template-columns:31px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:13px 5px;border-bottom:1px solid #f0f3f7;text-decoration:none;color:#274762}.curriculum-flow nav a:last-child{border-bottom:0}.curriculum-flow em{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#eef4fa;color:#5980a4;font-size:8px;font-style:normal;font-weight:900}.curriculum-flow b{display:block;font-size:10px}.curriculum-flow small{display:block;margin-top:2px;color:#8293a5;font-size:8.5px}.curriculum-flow i{font-style:normal;color:#9eb0c0;font-size:17px}.curriculum-flow a.is-primary em{background:#e6f2ff;color:#1271df}.curriculum-flow a.is-primary b{color:#1265b7}.curriculum-flow a:hover{color:#1265b7}
.curriculum-stats{margin:0 0 14px}
.curriculum-content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:14px}.academic-health,.academic-path{border:1px solid var(--ui-line);border-radius:20px;background:#fff;box-shadow:var(--ui-shadow);overflow:hidden}.academic-health>header,.academic-path>header{padding:18px 20px 14px;border-bottom:1px solid #eef2f6}.academic-health>header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.academic-health header span,.academic-path header span{display:block;font-size:8px;font-weight:900;letter-spacing:.1em;color:#3d7dbd}.academic-health h3,.academic-path h3{margin:4px 0 4px;font-size:15px;color:#173653}.academic-health p,.academic-path p{margin:0;color:#8392a2;font-size:9px;line-height:1.5}.academic-health header>a{font-size:9px;font-weight:800;text-decoration:none;color:#1c70c5;white-space:nowrap}.academic-issue-list{display:grid}.academic-issue{display:grid;grid-template-columns:30px minmax(0,1fr) 34px 12px;align-items:center;gap:10px;min-height:57px;padding:9px 18px;border-bottom:1px solid #f1f4f7;text-decoration:none;color:#2d4963}.academic-issue:last-child{border-bottom:0}.academic-issue:hover{background:#f9fbfd}.academic-issue-state{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-weight:900;font-size:10px}.academic-issue.is-ok .academic-issue-state{background:#eaf8f2;color:#16835a}.academic-issue.is-warning .academic-issue-state{background:#fff4e4;color:#bb6b09}.academic-issue-copy b{display:block;font-size:10px}.academic-issue-copy small{display:block;margin-top:2px;color:#8a99a8;font-size:8.5px}.academic-issue>strong{display:grid;place-items:center;min-width:30px;height:27px;border-radius:8px;background:#f2f5f8;color:#355675;font-size:10px}.academic-issue.is-warning>strong{background:#fff3e2;color:#a45e08}.academic-issue>i{font-style:normal;color:#a9b7c5;font-size:16px}
.academic-path ol{list-style:none;margin:0;padding:8px 20px 18px}.academic-path li{position:relative;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;min-height:52px}.academic-path li:not(:last-child):after{content:"";position:absolute;left:16px;top:36px;bottom:-15px;width:1px;background:#dfe8f1}.academic-path li>b{z-index:1;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#f0f4f8;color:#68829c;font-size:8px}.academic-path li.is-done>b{background:#e7f6ef;color:#13845b}.academic-path strong{display:block;font-size:9.8px;color:#24445f}.academic-path small{display:block;margin-top:2px;font-size:8.4px;color:#8c9aaa}

/* Responsive precision */
@media(max-width:1180px){.app:not(.auth-app){grid-template-columns:232px minmax(0,1fr)}.curriculum-command{grid-template-columns:1fr}.curriculum-flow nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:10px}.curriculum-flow nav a{border:1px solid #edf1f5!important;border-radius:12px;padding:11px}.curriculum-content-grid{grid-template-columns:1fr}.curriculum-orbit{right:22px}}
@media(max-width:1000px){main{padding:20px 20px 30px}.app:not(.auth-app){grid-template-columns:1fr}.curriculum-flow nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.topbar{padding:0 14px}.pagehead h1{font-size:24px}.panel{padding:16px!important}.curriculum-hero-copy{padding:23px 20px}.curriculum-orbit{opacity:.34;right:-18px;bottom:-16px}.curriculum-flow nav{grid-template-columns:1fr}.curriculum-flow nav a{grid-template-columns:31px minmax(0,1fr) 18px}.academic-health>header{flex-direction:column}.modern-role-stats{grid-template-columns:1fr 1fr!important}.table-wrap{border-radius:12px}}
@media(max-width:500px){main{padding:15px 12px 24px}.pagehead{margin-bottom:14px}.pagehead h1{font-size:22px}.modern-role-stats{grid-template-columns:1fr!important}.curriculum-hero{min-height:250px;border-radius:18px}.curriculum-hero h2{font-size:24px}.curriculum-hero-actions{display:grid}.curriculum-hero-actions a{justify-content:center}.academic-issue{grid-template-columns:28px minmax(0,1fr) 30px}.academic-issue>i{display:none}.academic-path ol{padding-left:15px;padding-right:15px}}
}

/* V1.54.1 — Luxury login composition
   Desktop: keeps the background brand headline visible by moving a slimmer glass login panel
   below the hero typography instead of covering it. Mobile/tablet retains stacked safe layout. */
@media(min-width:1101px){
  html.auth-page body{background:#071d36;}
  .erapor-login{
    background:#0b3159;
  }
  .erapor-visual>img{
    object-fit:cover;
    object-position:center center;
    filter:saturate(1.03) contrast(1.015);
  }
  /* subtle cinematic vignette only near panel area; upper headline remains clear */
  .erapor-login::after{
    content:"";
    position:absolute;
    z-index:1;
    right:0;
    bottom:0;
    width:min(660px,43vw);
    height:74%;
    pointer-events:none;
    background:linear-gradient(270deg,rgba(4,27,54,.24) 0%,rgba(4,27,54,.10) 48%,rgba(4,27,54,0) 100%);
  }
  .erapor-auth{
    top:auto;
    bottom:clamp(34px,4.8vh,58px);
    right:clamp(24px,3vw,52px);
    transform:none;
    width:min(500px,34vw);
    min-width:455px;
    align-items:stretch;
  }
  .erapor-card{
    border-radius:30px;
    padding:24px 28px 22px;
    background:linear-gradient(145deg,rgba(255,255,255,.975),rgba(247,252,255,.945));
    border:1px solid rgba(255,255,255,.78);
    box-shadow:0 30px 80px rgba(1,24,50,.28),0 8px 26px rgba(15,86,145,.10),inset 0 1px 0 rgba(255,255,255,.96);
    backdrop-filter:blur(18px) saturate(1.08);
    -webkit-backdrop-filter:blur(18px) saturate(1.08);
  }
  .erapor-card::before{
    content:"";
    display:block;
    width:54px;
    height:4px;
    margin:-8px auto 16px;
    border-radius:999px;
    background:linear-gradient(90deg,#13b8d8,#1479f1);
    box-shadow:0 5px 14px rgba(20,121,241,.22);
  }
  .login-heading{gap:12px;margin-bottom:13px;align-items:center}
  .login-logo-img{width:48px;height:48px;flex-basis:48px;border-radius:14px;filter:drop-shadow(0 8px 16px rgba(19,115,209,.18))}
  .login-heading .eyebrow{font-size:9px;letter-spacing:.17em;margin-bottom:1px}
  .login-heading h1{font-size:27px;letter-spacing:-.025em}
  .login-heading p:last-child{font-size:10.5px;margin-top:3px}
  .app-identity{
    margin-bottom:12px;
    padding:9px 11px;
    border-radius:13px;
    background:rgba(242,248,255,.86);
    border-color:#dbe8f4;
  }
  .app-identity b{font-size:12.5px}
  .app-identity small{font-size:9.5px}
  .app-identity>span{font-size:8.5px;padding:5px 8px}
  .erapor-form label{font-size:11.5px;margin-bottom:8px}
  .field-icon input,.period-grid select{height:43px;border-radius:11px;background:rgba(247,250,255,.95)}
  .field-icon input{padding-left:42px}
  .field-icon>.ui-icon{left:13px;width:17px;height:17px}
  .period-grid{gap:10px}
  .selected-period{margin-bottom:8px;padding:6px 9px;border-radius:10px}
  .login-options{margin:0 0 8px;font-size:9.5px}
  .login-options .check-line{font-size:9.5px}
  .erapor-form .login-submit{height:45px;border-radius:12px;font-size:14px;box-shadow:0 10px 24px rgba(13,110,235,.23)}
  .login-security{margin-top:9px;padding-top:9px;font-size:9.5px}
  .erapor-card .login-help{font-size:9px;margin-top:5px}
  .login-footer{
    margin-top:8px;
    align-self:center;
    padding:5px 12px;
    background:rgba(5,38,70,.58);
    border:1px solid rgba(255,255,255,.14);
    color:rgba(255,255,255,.78);
    box-shadow:0 10px 30px rgba(0,20,42,.16);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .login-footer b{color:#fff}
}

@media(min-width:1101px) and (max-width:1500px){
  .erapor-auth{width:min(470px,35vw);min-width:430px;right:24px;bottom:28px}
  .erapor-card{padding:20px 24px 18px;border-radius:26px}
  .login-heading h1{font-size:24px}
  .login-heading p:last-child{font-size:9.8px}
  .field-icon input,.period-grid select{height:40px}
  .erapor-form .login-submit{height:42px}
}

@media(min-width:1101px) and (max-height:760px){
  .erapor-auth{bottom:16px;width:min(455px,34vw);min-width:420px}
  .erapor-card{padding:15px 21px 14px;border-radius:23px}
  .erapor-card::before{margin:-5px auto 10px;height:3px}
  .login-heading{margin-bottom:8px}
  .login-logo-img{width:42px;height:42px;flex-basis:42px}
  .login-heading h1{font-size:22px}
  .app-identity{padding:7px 9px;margin-bottom:7px}
  .erapor-form label{margin-bottom:5px}
  .field-icon input,.period-grid select{height:36px}
  .selected-period{padding:5px 7px;margin-bottom:5px}
  .login-options{margin-bottom:5px}
  .erapor-form .login-submit{height:38px}
  .login-security{margin-top:5px;padding-top:5px}
  .erapor-card .login-help{display:none}
  .login-footer{margin-top:4px}
}

/* V1.54.2 — Luxury login composition: preserve a large/tall login card while
   shifting the visual hero to the left so the embedded NTT-RAPORT headline,
   feature icons, and education message remain unobstructed. Desktop only. */
@media(min-width:1101px){
  .erapor-login{
    background:linear-gradient(90deg,#0b3159 0%,#0b3159 61%,#eaf4fd 72%,#f7fbff 100%);
  }
  .erapor-visual{
    right:clamp(390px,31vw,520px);
    background:#0b3159;
    border-radius:0 38px 38px 0;
    box-shadow:26px 0 70px rgba(4,35,67,.16);
  }
  .erapor-visual>img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:left center;
    filter:saturate(1.035) contrast(1.015);
  }
  .erapor-login::after{
    width:44vw;
    height:100%;
    background:linear-gradient(270deg,rgba(235,246,255,.98) 0%,rgba(235,246,255,.88) 62%,rgba(235,246,255,0) 100%);
  }
  .erapor-auth{
    top:50%;
    bottom:auto;
    right:clamp(30px,3.2vw,58px);
    transform:translateY(-50%);
    width:min(620px,38vw);
    min-width:520px;
  }
  .erapor-card{
    padding:clamp(26px,2.9vh,36px) clamp(30px,2.2vw,40px);
    border-radius:30px;
  }
  .login-heading{margin-bottom:16px}
  .login-logo-img{width:54px;height:54px;flex-basis:54px}
  .login-heading h1{font-size:clamp(27px,1.7vw,32px)}
  .login-heading p:last-child{font-size:11.5px}
  .app-identity{padding:11px 14px;margin-bottom:15px}
  .erapor-form label{font-size:12px;margin-bottom:11px}
  .field-icon input,.period-grid select{height:48px}
  .erapor-form .login-submit{height:50px;font-size:15px}
  .login-security{margin-top:12px;padding-top:12px}
  .erapor-card .login-help{display:block;font-size:10px}
  .login-footer{margin-top:9px}
}
@media(min-width:1101px) and (max-width:1450px){
  .erapor-visual{right:420px}
  .erapor-auth{right:22px;width:500px;min-width:500px}
  .erapor-card{padding:22px 26px}
  .login-heading h1{font-size:25px}
  .field-icon input,.period-grid select{height:42px}
  .erapor-form .login-submit{height:44px}
}
@media(min-width:1101px) and (max-height:760px){
  .erapor-auth{top:50%;bottom:auto;transform:translateY(-50%)}
  .erapor-card{padding:16px 22px}
  .login-heading{margin-bottom:9px}
  .login-logo-img{width:44px;height:44px;flex-basis:44px}
  .login-heading h1{font-size:23px}
  .app-identity{padding:7px 10px;margin-bottom:8px}
  .erapor-form label{margin-bottom:6px}
  .field-icon input,.period-grid select{height:37px}
  .selected-period{padding:5px 8px;margin-bottom:6px}
  .login-options{margin-bottom:6px}
  .erapor-form .login-submit{height:40px}
  .login-security{margin-top:6px;padding-top:6px}
  .login-footer{margin-top:5px}
}

/* V1.54.3 — Exact reference login composition. */
@media(min-width:1101px){
  body:has(.erapor-login){background:#0b4b96;overflow:hidden}
  .erapor-login{
    position:relative;min-height:100vh;height:100vh;overflow:hidden;display:block;
    background-image:url('./login-portal-v1543.png');
    background-size:100% 100%;background-position:center center;background-repeat:no-repeat;
  }
  .erapor-visual{display:none!important}
  .erapor-login::before,.erapor-login::after{display:none!important}
  .erapor-auth{
    position:absolute;z-index:5;top:5.8%;right:4.15%;bottom:auto;width:32.75%;min-width:0;height:79.8%;
    transform:none;display:block;padding:0;
  }
  .erapor-card{
    position:relative;width:100%;height:100%;min-height:0;margin:0;
    padding:clamp(26px,2.05vw,38px) clamp(28px,2vw,38px) clamp(18px,1.45vw,28px);
    border-radius:30px;border:1px solid rgba(116,178,229,.72);
    background:linear-gradient(145deg,rgba(251,254,255,.985),rgba(235,246,255,.975));
    box-shadow:0 24px 56px rgba(15,70,125,.18),inset 0 1px 0 rgba(255,255,255,.96);
    backdrop-filter:blur(18px) saturate(1.04);-webkit-backdrop-filter:blur(18px) saturate(1.04);
    display:flex;flex-direction:column;overflow:hidden;
  }
  .erapor-card::before{display:none!important}
  .login-lang-chip{
    position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;justify-content:center;
    min-width:38px;height:24px;padding:0 9px;border-radius:999px;background:#fff;border:1px solid #dceaf6;
    color:#275c90;font-size:10px;font-weight:850;box-shadow:0 4px 12px rgba(40,96,148,.08);
  }
  .login-heading{gap:13px;margin:0 48px 18px 0;align-items:center}
  .login-logo-img{width:58px;height:58px;flex:0 0 58px;border-radius:15px;filter:drop-shadow(0 8px 15px rgba(22,108,201,.18))}
  .login-heading .eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:2px}
  .login-heading h1{font-size:clamp(25px,1.65vw,31px);line-height:1.04;letter-spacing:-.025em;margin:0}
  .login-heading p:last-child{font-size:10.5px;line-height:1.45;margin:4px 0 0;color:#55728e}
  .app-identity{min-height:72px;margin:0 0 18px;padding:13px 14px;border-radius:15px;background:rgba(247,251,255,.82);border:1px solid #cfe1ef;box-shadow:inset 0 1px 0 rgba(255,255,255,.92)}
  .app-identity b{font-size:13px;color:#13365a}.app-identity small{font-size:9.5px;color:#617b94;margin-top:2px}.app-identity>span{font-size:9px;padding:6px 9px;border-radius:999px;background:#eaf4ff;color:#0872db}
  .erapor-form{display:flex;flex-direction:column;flex:1;min-height:0}
  .erapor-form label{font-size:11px;margin-bottom:10px;color:#18395c;gap:6px}
  .field-icon input,.period-grid select{height:45px;border-radius:10px;border:1px solid #c9ddea;background:rgba(249,252,255,.96);box-shadow:none}
  .field-icon input:focus,.period-grid select:focus{border-color:#3f9bf2;box-shadow:0 0 0 3px rgba(63,155,242,.11)}
  .field-icon input{padding-left:40px}.field-icon>.ui-icon{left:13px;width:17px;height:17px;color:#5c86ad}.password-toggle{right:10px;font-size:10px;color:#0872db}
  .login-help-row{margin:-2px 0 10px;font-size:10px}.period-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.period-grid label{margin-bottom:0}.selected-period{display:none}
  .login-options{margin:0 0 12px;font-size:9.5px;color:#41617f}.login-options .check-line{font-size:9.5px}.login-options>span{font-size:9px;color:#426886}
  .erapor-form .login-submit{height:48px;margin-top:0;border-radius:10px;border:0;background:linear-gradient(90deg,#1479f1,#149ce0);font-size:14px;font-weight:850;box-shadow:0 10px 24px rgba(20,121,241,.19)}
  .erapor-form .login-submit:hover{transform:translateY(-1px);filter:brightness(1.02)}
  .login-security{margin-top:auto;padding-top:13px;border-top:1px solid #dbe8f3;font-size:9px;color:#315d83}
  .erapor-card .login-help{font-size:8.7px;margin:7px 0 0;color:#667f98;text-align:center}.login-footer{display:none!important}.login-error{font-size:10px;margin:0 0 10px;padding:9px 11px}
}
@media(min-width:1101px) and (max-height:820px){
  .erapor-auth{top:5.1%;height:81.4%}.erapor-card{padding:20px 25px 16px}.login-heading{margin-bottom:11px}.login-logo-img{width:49px;height:49px;flex-basis:49px}.login-heading h1{font-size:24px}
  .app-identity{min-height:60px;margin-bottom:10px;padding:9px 11px}.erapor-form label{margin-bottom:6px}.field-icon input,.period-grid select{height:38px}.login-help-row{margin-bottom:6px}.login-options{margin-bottom:7px}.erapor-form .login-submit{height:40px}.login-security{padding-top:7px;font-size:8.5px}.erapor-card .login-help{font-size:8px;margin-top:4px}
}
@media(max-width:1100px){.login-lang-chip{display:none}}

/* NTT-RAPORT: pengesahan resmi biodata peserta didik, A4, cetak dan preview. */
.official-biodata .bio-approval{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:start!important;gap:12mm!important;margin-top:13mm!important;break-inside:avoid!important;page-break-inside:avoid!important;font:10pt Arial,sans-serif!important;color:#111!important}
.official-biodata .bio-photo-wrap{text-align:left!important;padding-left:9mm!important}
.official-biodata .bio-photo-frame{width:30mm!important;height:40mm!important;border:1pt solid #444!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;background:#fff!important}
.official-biodata .bio-photo-frame span{font:8pt Arial,sans-serif!important;color:#777!important;text-align:center!important;line-height:1.6!important}
.official-biodata .bio-photo-wrap small{display:block!important;font-size:7pt!important;color:#555!important;margin-top:2mm!important;max-width:45mm!important}
.official-biodata .bio-principal-wrap{text-align:left!important;min-width:0!important}
.official-biodata .bio-principal-wrap p{margin:0 0 1mm!important;font-size:9.3pt!important}
.official-biodata .bio-principal-sign{height:25mm!important;display:flex!important;align-items:center!important;justify-content:flex-start!important}
.official-biodata .bio-principal-sign-img{max-width:50mm!important;max-height:24mm!important;object-fit:contain!important}
.official-biodata .bio-principal-wrap strong{display:block!important;font-size:9pt!important;text-decoration:underline!important;overflow-wrap:break-word!important}
.official-biodata .bio-principal-wrap>span{display:block!important;font-size:8.6pt!important;margin-top:1mm!important}
@media print{.official-biodata .bio-approval{margin-top:12mm!important}.official-biodata .bio-photo-frame{border:1pt solid #111!important}.official-biodata .bio-approval,.official-biodata .bio-photo-wrap,.official-biodata .bio-principal-wrap{break-inside:avoid!important;page-break-inside:avoid!important}}

/* NTT-RAPORT | Biodata resmi: tanpa garis per baris, rapi untuk A4 */
.report-sheet.official-biodata .official-bio-table,
.report-sheet.official-biodata .official-bio-table tbody,
.report-sheet.official-biodata .official-bio-table tr,
.report-sheet.official-biodata .official-bio-table td {
  border:0!important;
  border-top:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.report-sheet.official-biodata .official-bio-table {
  width:100%!important;
  border-collapse:collapse!important;
  table-layout:fixed!important;
  margin:5mm 0 0!important;
  font:9pt/1.38 Arial,Helvetica,sans-serif!important;
}
.report-sheet.official-biodata .official-bio-table td {
  padding:1.45mm 1mm!important;
  vertical-align:top!important;
  color:#111!important;
  overflow-wrap:break-word;
}
.report-sheet.official-biodata .official-bio-table td:nth-child(1){width:8mm!important;text-align:center!important;font-weight:400!important}
.report-sheet.official-biodata .official-bio-table td:nth-child(2){width:48mm!important;font-weight:500!important}
.report-sheet.official-biodata .official-bio-table td:nth-child(3){width:5mm!important;text-align:center!important}
.report-sheet.official-biodata .official-bio-table td:nth-child(4){font-weight:400!important}
.report-sheet.official-biodata .bio-approval{margin-top:15mm!important;grid-template-columns:1fr 1fr!important;gap:10mm!important}
.report-sheet.official-biodata .bio-photo-wrap{padding-left:9mm!important}
.report-sheet.official-biodata .bio-principal-wrap{padding-left:3mm!important}
.report-sheet.official-biodata .bio-principal-wrap p{line-height:1.4!important}
@media print {
  .report-sheet.official-biodata .official-bio-table {margin-top:4mm!important;font-size:8.7pt!important}
  .report-sheet.official-biodata .official-bio-table td {padding:1.35mm 1mm!important}
  .report-sheet.official-biodata .bio-approval{margin-top:13mm!important}
}
