/*
 * SATRIA — CENTRAL DESIGN SYSTEM v4.2.40
 * Modern Academic — Navy / Blue / White
 * Presentation layer only. Business logic, routes, validation, authorization,
 * data contracts, history and database structure remain unchanged.
 */
:root{
  --s-ink:#102a43;--s-ink-2:#425466;--s-muted:#6b7c93;--s-muted-2:#9aa9ba;
  --s-canvas:#f5f8fc;--s-surface:#fff;--s-surface-2:#f8fafc;--s-surface-3:#eef4fb;
  --s-line:#dfe7f0;--s-line-strong:#cbd7e4;
  --s-navy:#0f3b82;--s-navy-2:#174b96;--s-blue:#2563eb;--s-blue-2:#1d4ed8;
  --s-accent:#2563eb;--s-accent-2:#1d4ed8;--s-accent-soft:#eaf2ff;
  --s-success:#16804a;--s-success-bg:#ecfdf3;--s-warning:#a36308;--s-warning-bg:#fff8e8;
  --s-danger:#c73552;--s-danger-bg:#fff1f4;--s-info:#2168a7;--s-info-bg:#eef7ff;
  --s-radius-sm:9px;--s-radius:14px;--s-radius-lg:18px;--s-radius-xl:22px;
  --s-shadow:0 2px 12px rgba(15,59,130,.045);--s-shadow-md:0 10px 28px rgba(15,59,130,.075);--s-shadow-lg:0 22px 55px rgba(15,59,130,.14);
  --s-sidebar:270px;--s-topbar:68px;
  --s-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--s-canvas);color:var(--s-ink);font-family:var(--s-font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.satria-admin{min-height:100dvh;overflow-x:hidden}.app-shell{min-height:100dvh}
/* SHELL */
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--s-sidebar);z-index:100;display:flex;flex-direction:column;background:linear-gradient(180deg,#0f3b82 0%,#0b326f 100%);color:#d7e4f7;border-right:1px solid rgba(255,255,255,.09);box-shadow:8px 0 28px rgba(15,42,84,.11)}
.sidebar-brand-area{padding:22px 18px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.satria-brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.brand-mark svg{width:25px;height:25px;stroke-width:1.7}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{color:#fff;font-size:18px;letter-spacing:.045em;line-height:1}.brand-copy small{color:#a9c2e3;font-size:9px;margin-top:5px}
.workspace-chip{display:none}
.sidebar-nav{padding:17px 10px 12px;overflow:auto;scrollbar-width:thin}.nav-caption{padding:0 11px 8px;color:#8eabd0;font-size:9px;font-weight:800;letter-spacing:.15em}.sidebar-home,.nav-group summary{min-height:43px;display:flex;align-items:center;gap:10px;padding:0 11px;border-radius:10px;text-decoration:none;color:#c2d3eb;font-size:12px;font-weight:700;cursor:pointer}.sidebar-home{margin-bottom:7px}.sidebar-home:hover,.nav-group summary:hover{background:rgba(255,255,255,.075);color:#fff}.sidebar-home.active{background:#fff;color:#123e82;box-shadow:0 5px 16px rgba(3,28,67,.16)}.sidebar-home.active .nav-icon{color:#2563eb}.nav-icon{width:22px;height:22px;display:grid;place-items:center;color:#9ab5d8;flex:0 0 22px}.nav-icon svg{width:17px;height:17px}.active .nav-icon,.nav-group[open] summary .nav-icon{color:#7db1ff}.nav-group{margin:3px 0}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-caret{margin-left:auto;color:#8aa6cb;transition:.18s}.nav-group[open] .nav-caret{transform:rotate(180deg)}.nav-children{padding:3px 0 7px 31px}.nav-child{position:relative;display:flex;align-items:center;min-height:35px;padding:0 10px;border-radius:8px;color:#aec4df;text-decoration:none;font-size:11.5px;font-weight:600}.nav-child:hover{background:rgba(255,255,255,.055);color:#fff}.nav-child.active{background:rgba(255,255,255,.12);color:#fff}.child-marker{position:absolute;left:-1px;width:3px;height:17px;border-radius:4px;background:transparent}.nav-child.active .child-marker{background:#66a5ff}.nav-child-disabled{cursor:default;opacity:.43;pointer-events:none}.nav-status{margin-left:auto;font-size:7px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#86a2c7}.nav-subgroup{margin:2px 0 4px}.nav-subgroup summary{display:flex;align-items:center;justify-content:space-between;min-height:31px;padding:0 10px 0 2px;color:#91aace;font-size:10.5px;font-weight:750;cursor:pointer;list-style:none}.nav-subgroup summary::-webkit-details-marker{display:none}.nav-subcaret{transition:.18s}.nav-subgroup[open] .nav-subcaret{transform:rotate(180deg)}.nav-subgroup summary:hover{color:#fff}.nav-subchildren{padding-left:7px}.nav-grandchild{padding-left:17px}.danger-group summary,.danger-link{color:#ffc0ca}.danger-group .nav-icon{color:#ff9aaa}.nav-child.danger-link.active{background:rgba(199,53,82,.18)}
.sidebar-bottom{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.1);background:rgba(3,22,52,.16)}.operator-card{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.055);margin-bottom:8px}.operator-avatar,.topbar-avatar{display:grid;place-items:center;background:#e8f1ff;color:#174b96;font-weight:900}.operator-avatar{width:33px;height:33px;border-radius:9px;flex:0 0 33px}.operator-copy{display:flex;flex-direction:column;min-width:0}.operator-copy small{display:none}.operator-copy strong{font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operator-status{margin-left:auto;width:7px;height:7px;border-radius:50%;background:#2acb8b;box-shadow:0 0 0 4px rgba(42,203,139,.1)}.logout-button{width:100%;min-height:39px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:rgba(255,255,255,.03);color:#c1d1e7;font-weight:700;font-size:11px;cursor:pointer}.logout-button:hover{background:rgba(255,255,255,.08);color:#fff}.logout-button svg{width:15px;height:15px}.sidebar-backdrop{display:none}
.app-main{min-height:100dvh;margin-left:var(--s-sidebar)}.app-topbar{position:sticky;top:0;z-index:70;height:var(--s-topbar);display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--s-line);box-shadow:0 2px 12px rgba(15,59,130,.035);backdrop-filter:blur(10px)}.topbar-left,.topbar-right{display:flex;align-items:center}.topbar-left{gap:12px}.topbar-breadcrumb{display:flex;align-items:center;gap:8px}.topbar-breadcrumb span{font-size:10px;font-weight:900;color:#9ba7b8;letter-spacing:.12em}.topbar-breadcrumb i{font-style:normal;color:#c8d0da}.topbar-breadcrumb strong{font-size:13px}.topbar-right{gap:12px}.topbar-context-year{display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid var(--s-line);border-radius:10px;background:#fff;color:#6a7b91;font-size:10px}.topbar-context-year strong{color:var(--s-navy);font-size:12px}.topbar-system{display:none}.topbar-user{display:flex;align-items:center;gap:9px;padding-left:15px;border-left:1px solid var(--s-line)}.topbar-user>span:last-child{display:flex;flex-direction:column}.topbar-user small{font-size:8px;color:#8a97a9}.topbar-user strong{font-size:11px;color:var(--s-ink)}.topbar-avatar{width:34px;height:34px;border-radius:50%}.menu-toggle{display:none;width:40px;height:40px;border:1px solid var(--s-line);border-radius:10px;background:#fff;cursor:pointer}.menu-toggle span{display:block;width:17px;height:2px;margin:3px auto;background:var(--s-navy);border-radius:2px}
.workspace{padding:0 30px 50px}.workspace-content{width:min(1240px,100%);margin:0 auto}.global-breadcrumb{display:flex;align-items:center;gap:8px;padding:17px 0 12px;color:#8290a5;font-size:10px}.global-breadcrumb a{text-decoration:none}.global-breadcrumb a:hover{color:var(--s-blue)}.global-breadcrumb span{color:#bdc7d2}.global-breadcrumb strong{color:#4b5a72}
/* PAGE */
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:5px 0 18px;margin-bottom:15px;border-bottom:1px solid var(--s-line)}.page-intro-main{min-width:0}.page-eyebrow,.dashboard-kicker,.step-label{display:block;color:var(--s-blue);font-size:9px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.page-intro h1{margin:4px 0 0;font-size:28px;line-height:1.12;letter-spacing:-.035em;color:#102e56}.page-intro p{margin:5px 0 0;color:var(--s-muted);font-size:11px}.page-context{margin-top:7px;color:#5f7087;font-size:10px}.page-intro-side{flex:0 0 auto}.page-intro-side .head-actions{justify-content:flex-end}
.card{background:var(--s-surface);border:1px solid var(--s-line);border-radius:var(--s-radius);box-shadow:var(--s-shadow);padding:19px;margin:0 0 14px;min-width:0}.card>.head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:0 0 14px;margin:0 0 14px;border-bottom:1px solid var(--s-line)}.head h2,.card>h2{margin:0 0 4px;font-size:17px;letter-spacing:-.02em;color:#15375f}.head h3{margin:0 0 3px;font-size:15px}.muted{color:var(--s-muted);font-size:10.5px}.actions,.head-actions,.table-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.head-actions{justify-content:flex-end}.btn{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid var(--s-line-strong);border-radius:9px;background:#fff;color:#29415e;text-decoration:none;font-size:11px;font-weight:750;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.btn:hover{border-color:#a9bbcf;background:#f8fbff;transform:translateY(-1px);box-shadow:0 5px 13px rgba(15,59,130,.06)}.btn.primary{background:var(--s-blue);border-color:var(--s-blue);color:#fff;box-shadow:0 6px 15px rgba(37,99,235,.16)}.btn.primary:hover{background:var(--s-blue-2);border-color:var(--s-blue-2)}.btn.danger{background:var(--s-danger);border-color:var(--s-danger);color:#fff}.btn.danger-outline{color:#b32240;background:#fff;border-color:#efbcc7}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.badge,.status-badge{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0 8px;border-radius:999px;font-size:9px;font-weight:800}.badge.active,.status-badge.status-up{background:var(--s-success-bg);color:var(--s-success)}.badge.inactive,.status-badge.status-down{background:var(--s-danger-bg);color:var(--s-danger)}.status-badge.status-muted{background:#edf1f5;color:#69778b}.status-on-dark,.status-badge.status-on-dark{background:#eaf2ff;color:#174b96}.notice,.success-note,.danger-note,.relation-warning,.decision-note{padding:11px 13px;border:1px solid #d5e2ef;border-radius:10px;background:var(--s-info-bg);color:#365777;font-size:10.5px;line-height:1.5}.notice strong,.success-note strong,.danger-note strong,.relation-warning strong,.decision-note strong{color:#263f5f}.success-note{background:var(--s-success-bg);border-color:#ccebd9;color:#28684d}.danger-note,.relation-warning{background:var(--s-danger-bg);border-color:#f1cbd5;color:#8e3042}.decision-note{background:#f1f6ff;border-color:#d4e2f7;color:#405b7a}.notice + .notice{margin-top:7px}
/* v4.2.100.54 — unified locked-state explanation; presentation only */
.satria-locked-note{position:relative;display:block;margin-top:12px;padding:12px 14px 12px 44px;background:linear-gradient(180deg,#fff8f8 0%,#fff1f1 100%);border:1px solid #f0caca;border-left:4px solid #dc2626;border-radius:12px;color:#7f1d1d;font-size:14px;line-height:1.55;box-shadow:0 4px 14px rgba(153,27,27,.06)}.satria-locked-note:before{content:"";position:absolute;left:15px;top:16px;width:14px;height:12px;border:2px solid #dc2626;border-radius:3px}.satria-locked-note:after{content:"";position:absolute;left:18px;top:11px;width:8px;height:9px;border:2px solid #dc2626;border-bottom:0;border-radius:7px 7px 0 0}.satria-locked-note strong{color:#7f1d1d;font-weight:800}.satria-locked-note + .satria-locked-note{margin-top:7px}
/* SUMMARY */
.master-summary{display:grid;grid-template-columns:44px auto 1fr;align-items:center;gap:12px;padding:14px 16px;margin:0 0 14px;background:#fff;border:1px solid var(--s-line);border-radius:12px;box-shadow:var(--s-shadow)}.master-summary-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:var(--s-accent-soft);color:var(--s-blue);font-weight:900}.master-summary-title{font-size:9px;color:#8995a8;text-transform:uppercase;letter-spacing:.09em;font-weight:850}.master-summary-value{display:block;font-size:24px;line-height:1.05;color:#173f7a}.master-summary-note{justify-self:end;color:var(--s-muted);font-size:9px;text-align:right}.admin-table-meta{display:flex;justify-content:space-between;align-items:center;padding:0 0 10px;color:#7d8b9f;font-size:9.5px}
/* FORMS */
.form-grid,.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.academic-filter>.btn{grid-column:2;justify-self:end}.field,.form-group{min-width:0}.field label,.form-group label,.card form>label,.form-shell label,.reset-card label{display:block;margin:0 0 6px;color:#40556f;font-size:11px;font-weight:750}.field small,.form-group small,.helper{display:block;color:#8794a7;font-size:9px;margin-top:5px;line-height:1.4}.field-error{display:block;margin-top:5px;color:#b4233f;font-size:10px;font-weight:700;line-height:1.4}
.card form input:not([type="checkbox"]):not([type="radio"]),.card form select,.card form textarea,.field input,.field select,.field textarea,.form-group input,.form-group select,.form-group textarea,.field-wide,.select-legacy,.search-row input,.search-row select,.search-row textarea,.filter-grid input,.filter-grid select,.filter-grid textarea{width:100%;min-height:41px;padding:0 11px;border:1px solid var(--s-line-strong);border-radius:9px;background:#fff;color:var(--s-ink);outline:0;font-size:12px;box-shadow:0 1px 2px rgba(15,59,130,.02);transition:border-color .15s,box-shadow .15s,background .15s}.card form textarea,.field textarea,.form-group textarea{padding-top:9px;padding-bottom:9px;min-height:96px;resize:vertical}.card form input:not([type="checkbox"]):hover,.card form select:hover,.card form textarea:hover{border-color:#aebfd1}.card form input:not([type="checkbox"]):focus,.card form select:focus,.card form textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.card form input[readonly],.card form select:disabled,.card form textarea:disabled{background:#f4f7fa;color:#647188}.check{accent-color:var(--s-blue);width:16px!important;min-height:16px!important;padding:0!important}.check-label{display:flex!important;align-items:flex-start;gap:8px;padding:10px 11px;margin:0!important;border:1px solid var(--s-line);border-radius:9px;background:#fbfcfe;color:#43516a!important;font-size:10.5px!important;font-weight:650!important;line-height:1.4}.check-label:has(input:checked){border-color:#b7d1f5;background:#f4f8ff}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.select-tools{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.selection-summary{display:flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;margin:8px 0;border:1px solid #dce3ec;border-radius:9px;background:#f8fafc;color:#647188;font-size:10px}.form-actions,.actions{display:flex;justify-content:flex-end;gap:7px;align-items:center;flex-wrap:wrap;margin-top:18px}.form-actions{padding-top:14px;border-top:1px solid var(--s-line)}.form-shell{max-width:1000px;margin:0 auto}.form-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--s-line);margin-bottom:14px}.form-intro h2{margin:0 0 4px;font-size:19px}.context-box{padding:13px 15px;border:1px solid #d8e0ec;border-radius:10px;background:#f7f9fc;margin-bottom:12px}.context-title{font-size:13px;font-weight:800}.context-meta{font-size:10px;color:var(--s-muted);margin-top:3px}.selection-block{padding-top:2px}.repeat-list{display:grid;gap:9px}.repeat-row{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:11px;align-items:start;padding:13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.repeat-row .row-index{font-size:9px;font-weight:850;color:var(--s-blue);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.repeat-row .btn{margin-top:24px}.add-row-wrap{display:flex;justify-content:flex-start;margin-top:10px}.scope-picker{padding:13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe;margin-bottom:11px}.hidden-field,[hidden]{display:none!important}
/* FORM SECTIONS */
.form-section{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--s-line)}.form-section-last{border-bottom:0;margin-bottom:0;padding-bottom:0}.form-section-index{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:var(--s-accent-soft);color:var(--s-blue);font-size:10px;font-weight:900}.inline-check{display:flex!important;align-items:flex-start!important}.inline-check span{display:flex;flex-direction:column;gap:2px}.inline-check small{font-size:9px;color:var(--s-muted)}.student-form-shell{max-width:1120px}
/* TABLES */
.table-wrap,.member-table,.group-table{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid var(--s-line);border-radius:10px;background:#fff;-webkit-overflow-scrolling:touch}.table-wrap table,.member-table table,.group-table table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0}.card>table{width:100%;border-collapse:separate;border-spacing:0}.table-wrap th,.member-table th,.group-table th,.card>table th{background:#f7f9fc;color:#65738a;text-align:left;font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;padding:11px 12px;border-bottom:1px solid var(--s-line);white-space:nowrap}.table-wrap td,.member-table td,.group-table td,.card>table td{padding:12px;color:#3f536d;font-size:11px;vertical-align:middle;border-bottom:1px solid #edf1f5}.table-wrap tbody tr:last-child td,.member-table tbody tr:last-child td,.group-table tbody tr:last-child td,.card>table tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover td,.member-table tbody tr:hover td,.group-table tbody tr:hover td,.card>table tbody tr:hover td{background:#fbfdff}.person-cell{display:flex;align-items:center;gap:8px;min-width:200px}.username-cell,.subject-code,.lm-code,.group-meta,.row-meta{font-size:9.5px;color:var(--s-muted)}.subject-name{font-weight:800}.table-wide{min-width:220px}.empty-box,.lm-empty,.tp-empty{display:grid;place-items:center;min-height:95px;padding:18px;text-align:center;color:#7b889b;background:#fafbfd;border:1px dashed #d3dce7;border-radius:9px;font-size:10px}.empty-box strong{color:#4a5870}.empty-box span{display:block;margin-top:3px}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.search-row.grid-reset{grid-template-columns:minmax(0,1.4fr) minmax(170px,.55fr) minmax(150px,.45fr) auto}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.section-heading h2,.section-heading h3{margin:0 0 3px;font-size:16px}.section-heading p,.section-subtitle{margin:0;color:var(--s-muted);font-size:10px}.table-actions{justify-content:flex-start}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #dbe2eb;border-radius:8px;background:#f8fafc;color:#506078;font-size:9px}.group-card{border:1px solid var(--s-line);border-radius:11px;background:#fff;overflow:hidden;margin-bottom:10px}.group-head{display:flex;justify-content:space-between;gap:16px;padding:14px;border-bottom:1px solid var(--s-line);background:#fcfdff}.group-title{font-weight:850;font-size:13px}.group-body{padding:0}.count-box{display:flex;gap:6px;flex-wrap:wrap}.count-pill{padding:5px 8px;border-radius:999px;background:#eaf2ff;color:#24548f;font-size:9px;font-weight:800}
.context-list{display:grid;gap:0}.context-list>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--s-line);font-size:10px}.context-list>div:last-child{border-bottom:0}.context-list span{color:var(--s-muted)}.context-list strong{text-align:right}

/* ACADEMIC / LEARNING */
.academic-hero,.graduation-hero,.lm-hero{padding:0;background:#fff;border:1px solid var(--s-line);border-radius:14px;margin-bottom:16px;box-shadow:var(--s-shadow)}.academic-hero .head,.graduation-hero .head{padding:18px 20px 15px;margin:0}.academic-title,.graduation-title{display:flex;align-items:center;gap:12px}.academic-title h2,.graduation-title h2{margin:0;font-size:19px}.academic-title p,.graduation-title p{margin:3px 0 0;color:var(--s-muted);font-size:10.5px}.academic-icon,.graduation-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--s-accent-soft);color:var(--s-accent);font-size:11px;font-weight:900}.semester-nav,.semester-tabs,.lm-tabs{display:flex;gap:7px;overflow:auto;padding:0 20px 17px}.semester-tab,.semester-tabs .btn,.lm-tabs .btn{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 13px;border:1px solid var(--s-line);border-radius:9px;background:#fff;text-decoration:none;font-size:11px;font-weight:850;color:#66738a}.semester-tab small{font-size:9px;font-weight:650;color:#8b97a9}.semester-tab.active,.semester-tabs .btn.primary,.lm-tabs .btn.primary{background:var(--s-navy);border-color:var(--s-navy);color:#fff}.semester-tab.active small{color:#dbe5f5}.process-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}.process-step{padding:13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.process-step strong{display:block;font-size:11px}.process-step span{display:block;color:var(--s-muted);font-size:10px;margin-top:4px;line-height:1.45}.process-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.lm-tools{display:flex;justify-content:flex-end;gap:8px}.lm-card{border:1px solid var(--s-line);border-radius:12px;background:#fff;padding:16px;margin-bottom:10px}.lm-card-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.lm-subject{font-weight:900;font-size:14px}.lm-note,.lm-stat{font-size:10px;color:var(--s-muted);margin-top:3px}.lm-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.lm-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.lm-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0}.lm-toolbar-note{color:var(--s-muted);font-size:11px}.lm-danger-actions{display:flex;gap:7px;flex-wrap:wrap}.scope-accordion{border:1px solid var(--s-line);border-radius:11px;overflow:hidden;margin-top:10px;background:#fff}.scope-summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 16px;cursor:pointer;list-style:none}.scope-summary::-webkit-details-marker{display:none}.scope-summary:hover{background:#fafbff}.scope-summary-main{min-width:0}.scope-number{font-size:10px;font-weight:900;color:var(--s-accent);text-transform:uppercase;letter-spacing:.08em}.scope-name{font-size:14px;font-weight:850;margin-top:2px}.scope-summary-side{display:flex;align-items:center;gap:9px}.tp-count-pill{padding:5px 8px;border-radius:999px;background:#eaf2ff;color:#24548f;font-size:10px;font-weight:850}.scope-chevron{color:#8491a4;transition:.18s}.scope-accordion[open] .scope-chevron{transform:rotate(180deg)}.scope-content{padding:0 16px 16px;border-top:1px solid var(--s-line);background:#f8fbff}.scope-content-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0}.tp-actions{display:flex;gap:7px;flex-wrap:wrap}.tp-list{display:grid;gap:8px}.tp-item{display:grid;grid-template-columns:85px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border:1px solid #e1e7ef;border-radius:9px;background:#fff}.tp-number{font-size:10px;font-weight:900;color:#4f5f77}.tp-text{font-size:12px;line-height:1.55}.download-option{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--s-line);border-radius:9px;background:#fbfcfe;margin:0}.download-option input{width:auto!important;min-height:auto!important;margin-top:3px}.download-option strong{display:block;font-size:11px}.download-option small{display:block;color:var(--s-muted);font-size:10px;margin-top:3px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-box{padding:14px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.summary-box .label{font-size:10px;color:var(--s-muted);font-weight:750}.summary-box .value{font-size:24px;font-weight:900;margin-top:4px;color:#173f7a}.text-large{font-size:16px!important}.mutation-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:15px}.mutation-step{padding:13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.mutation-step strong{display:block;font-size:11px}.mutation-step span,.mutation-step small{display:block;color:var(--s-muted);font-size:10px;margin-top:3px}.student-search,.selected-note{padding:13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.member-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.member-card{border:1px solid var(--s-line);border-radius:11px;background:#fff;padding:15px}.member-search{margin-bottom:10px}.member-count{font-size:10px;color:var(--s-muted);margin-bottom:8px}
/* RESET */
.reset-page{max-width:1100px;margin:0 auto}.reset-hero{display:flex;gap:14px;align-items:flex-start;padding:20px;background:#17233f;color:#fff;border-radius:15px;margin-bottom:13px;box-shadow:var(--s-shadow-md)}.reset-hero-icon,.reset-warning-icon,.reset-modal-icon{display:grid;place-items:center;flex:0 0 auto}.reset-hero-icon{width:42px;height:42px;border-radius:11px;background:#c73552;font-weight:900}.reset-hero h1{margin:0 0 5px;font-size:23px}.reset-hero p{margin:0;color:#c2cee0;font-size:11px}.eyebrow{font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#9da8bd;margin-bottom:4px}.reset-warning{display:flex;gap:11px;align-items:flex-start;padding:13px 15px;border:1px solid #efc3cd;background:#fff3f5;border-radius:11px;color:#7f2e3d;margin-bottom:15px}.reset-warning-icon{width:28px;height:28px;border-radius:8px;background:#c73552;color:#fff;font-weight:900}.reset-warning strong{display:block;font-size:11px}.reset-warning span{display:block;margin-top:2px;font-size:10px}.reset-card{padding:18px;background:#fff;border:1px solid var(--s-line);border-radius:12px;margin-bottom:14px}.reset-card-head{display:flex;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid var(--s-line)}.reset-card-head h2{margin:3px 0;font-size:16px}.reset-card-head p{margin:0;color:var(--s-muted);font-size:10px}.reset-year-badge{align-self:flex-start;padding:7px 9px;border-radius:999px;background:#fff0f2;color:#a62a43;font-size:9px;font-weight:900}.reset-year-warning{display:grid;gap:5px;margin:14px 0;padding:12px 13px;border:1px solid #efd4db;border-radius:10px;background:#fff9fa;color:#6d3b45;font-size:10px}.reset-year-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.reset-year-select-wrap label{display:block;margin-bottom:6px;font-size:11px;font-weight:800}.reset-sequence{padding-top:12px;display:grid;gap:8px}.reset-sequence-item{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:12px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe}.reset-sequence-item.is-next{border-color:#c8ddf6;background:#f8fbff}.reset-sequence-item.is-locked{opacity:.6}.reset-sequence-number{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#e9edf3;font-size:10px;font-weight:900}.is-next .reset-sequence-number{background:var(--s-accent-soft);color:var(--s-accent)}.is-complete .reset-sequence-number{background:var(--s-success-bg);color:var(--s-success)}.reset-sequence-top{display:flex;justify-content:space-between;gap:12px}.reset-sequence-title{font-size:13px;font-weight:900}.reset-sequence-desc{font-size:10px;color:var(--s-muted);margin-top:3px}.reset-sequence-bottom{display:flex;justify-content:flex-end;margin-top:9px}.reset-status{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:850}.reset-status.done{background:var(--s-success-bg);color:var(--s-success)}.reset-status.locked{background:#edf0f4;color:#6e7a8d}.reset-status.next{background:var(--s-accent-soft);color:var(--s-accent)}.reset-done-mark{color:var(--s-success);font-size:10px;font-weight:850}.reset-protected-card{display:flex;gap:11px;align-items:flex-start;background:#f8fbff}.reset-protected-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--s-success-bg);color:var(--s-success);font-weight:900;flex:0 0 auto}.reset-protected-card h2{margin:0 0 3px;font-size:14px}.reset-protected-card p{margin:0;color:var(--s-muted);font-size:10px}.reset-modal-backdrop,.modal-backdrop{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(9,19,38,.58);opacity:0;visibility:hidden;pointer-events:none;transition:.16s}.reset-modal-backdrop.show,.modal-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}.reset-modal,.modal{width:min(560px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:#fff;border-radius:14px;border:1px solid var(--s-line);box-shadow:var(--s-shadow-lg)}.reset-modal-top,.modal-head{display:flex;align-items:center;gap:11px;padding:17px;border-bottom:1px solid var(--s-line)}.reset-modal-top h2{margin:0;font-size:16px}.reset-modal-icon,.modal-symbol{width:34px;height:34px;border-radius:9px;background:#fff0f2;color:var(--s-danger);font-weight:900}.modal-symbol{display:grid;place-items:center}.modal-symbol.success{background:var(--s-success-bg);color:var(--s-success)}.modal-symbol.warning{background:var(--s-warning-bg);color:var(--s-warning)}.modal-symbol.info{background:var(--s-info-bg);color:var(--s-info)}.modal-head small{display:block;color:#8794a7;font-size:9px;font-weight:900;letter-spacing:.1em}.modal-head strong{display:block;font-size:13px}.reset-modal-kicker{font-size:9px;color:#8a96a8;font-weight:900;letter-spacing:.1em}.reset-modal-body,.modal-body{padding:17px}.reset-modal-intro{margin:0;color:#45536b;font-size:12px;line-height:1.55}.reset-modal-alert{display:grid;gap:3px;padding:11px 12px;margin-top:12px;border:1px solid #efc3cd;background:#fff3f5;color:#7e2d3c;border-radius:9px;font-size:10px}.reset-confirm-label{display:block;margin:14px 0 6px!important;font-size:11px!important}.reset-modal-body input{width:100%;min-height:43px;border:1px solid var(--s-line-strong);border-radius:9px;padding:0 11px;outline:0}.reset-confirm-status{margin-top:7px;font-size:10px;color:var(--s-muted)}.reset-confirm-status.valid{color:var(--s-success);font-weight:850}.reset-modal-actions,.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 17px;border-top:1px solid var(--s-line)}.reset-modal-x,.modal-close{border:0;background:transparent;cursor:pointer}.reset-modal-x{margin-left:auto;font-size:22px;color:#8995a8}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.result-grid>div{padding:11px;border:1px solid var(--s-line);border-radius:9px;background:#f8fafc}.result-grid small{display:block;color:var(--s-muted);font-size:10px}.result-grid strong{display:block;font-size:22px;margin-top:2px}.modal-detail{margin-top:10px;padding:10px;border-radius:9px;background:#f8fafc;font-size:10px}.toast-stack{position:fixed;z-index:950;top:82px;right:20px;width:min(420px,calc(100vw - 28px));display:grid;gap:9px}.toast{position:relative;display:grid;grid-template-columns:34px 1fr 24px;gap:10px;align-items:start;padding:12px;background:#fff;border:1px solid var(--s-line);border-radius:12px;box-shadow:var(--s-shadow-lg)}.toast:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--s-success)}.toast.error:after{background:var(--s-danger)}.toast-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--s-success-bg);color:var(--s-success);font-weight:900}.toast.error .toast-icon{background:var(--s-danger-bg);color:var(--s-danger)}.toast-content strong{display:block;font-size:11px}.toast-content p{margin:2px 0 0;color:var(--s-ink-2);font-size:10px}.toast-close{border:0;background:transparent;color:#8b97a9;font-size:18px;cursor:pointer}
/* PAGINATION */
.satria-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px;padding-top:13px;border-top:1px solid var(--s-line)}.pagination-info{color:#7d899b;font-size:10px}.pagination-links{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.page-btn,.page-number,.page-dots{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid var(--s-line);border-radius:8px;background:#fff;color:#59677e;text-decoration:none;font-size:10px;font-weight:800}.page-btn:hover,.page-number:hover{border-color:#aeb8c8;background:#f8fafc}.page-number.active{background:var(--s-navy);border-color:var(--s-navy);color:#fff}.page-btn.disabled{opacity:.45;pointer-events:none}.page-dots{border-color:transparent;background:transparent;min-width:20px}
/* UTILITIES */
.grid-full{grid-column:1/-1}.grid-gap-9{display:grid;gap:9px}.mt-0{margin-top:0!important}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:12px!important}.mt-4{margin-top:16px!important}.mt-5{margin-top:20px!important}.mt-6{margin-top:24px!important}.mt-7{margin-top:28px!important}.pad-14{padding:14px}.pad-card{padding:21px}.text-regular{font-weight:400}.self-end{align-self:end}.w-45{width:45px}.w-55p{width:55%}.w-20p{width:20%}
/* LOGIN / PUBLIC */
.login-page{min-height:100dvh;background:#f4f7fb}.login-app{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr)}.login-showcase{position:relative;overflow:hidden;background:#0e1d3b;color:#fff;padding:46px clamp(28px,6vw,88px) 30px;display:flex;flex-direction:column;justify-content:space-between}.login-panel{background:#fff;padding:46px clamp(28px,5vw,72px);display:flex;align-items:center}.login-showcase h1{font-size:42px;max-width:600px;line-height:1.05;letter-spacing:-.04em}.login-showcase p{color:#bcc9dd;font-size:13px;max-width:560px}.login-form-wrap{width:min(470px,100%);margin:0 auto}.login-heading h2{font-size:30px;margin:0 0 7px}.login-heading p{color:var(--s-muted);font-size:12px}.login-form-wrap label{font-size:12px;font-weight:800;margin-bottom:7px}.login-form-wrap input{width:100%;min-height:46px;border:1px solid var(--s-line-strong);border-radius:10px;padding:0 13px}.login-submit{width:100%;min-height:46px;border:0;border-radius:10px;background:var(--s-navy);color:#fff;font-weight:850;cursor:pointer}.login-security{display:flex;gap:8px;align-items:flex-start;margin-top:16px;padding-top:14px;border-top:1px solid #edf0f4;color:#8a96a8;font-size:10px}.chooser-shell{width:min(1040px,100%);display:grid;grid-template-columns:.82fr 1.18fr;overflow:hidden;background:#fff;border:1px solid var(--s-line);border-radius:20px;box-shadow:var(--s-shadow-lg)}.login-chooser{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--s-canvas)}.chooser-intro{padding:42px 38px;background:#0e1d3b;color:#fff}.chooser-main{padding:38px}.chooser-main h2{margin:0;font-size:24px}.chooser-main>p{color:var(--s-muted);font-size:11px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-card{display:flex;align-items:center;gap:11px;min-height:75px;padding:13px;border:1px solid var(--s-line);border-radius:11px;background:#fff;text-decoration:none}.role-card:hover{border-color:#b8d0f4;background:#f7faff;box-shadow:var(--s-shadow)}.role-card:focus-visible{outline:2px solid #7db1ff;outline-offset:2px}.role-card.admin{grid-column:1/-1;background:#f8faff}.role-icon{width:37px;height:37px;display:grid;place-items:center;flex:0 0 37px;border-radius:10px;background:var(--s-accent-soft);color:var(--s-accent);font-size:11px;font-weight:900}.role-copy{min-width:0;flex:1}.role-copy strong{display:block;font-size:11px}.role-copy span{display:block;margin-top:3px;color:var(--s-muted);font-size:9px;line-height:1.35}.role-copy small{display:inline-flex;margin-top:5px;padding:3px 6px;border-radius:5px;background:#f1f4fa;color:#596981;font-size:8px;font-weight:800}.role-arrow{color:#64738a;font-size:14px;font-weight:800}.chooser-lead{margin-bottom:17px!important}.chooser-footer{display:grid;gap:4px;margin-top:18px;color:#8a96a8;font-size:9px}.chooser-footer strong{color:#c3cee0;font-size:9px}.chooser-note{display:flex;gap:8px;align-items:flex-start}.chooser-note-icon{width:17px;height:17px;display:grid;place-items:center;flex:0 0 17px;border-radius:50%;background:#e9edf4;color:#5f6f84;font-weight:900}.public-top{background:#0e1d3b;color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.public-wrap{width:min(1000px,100%);margin:0 auto;padding:24px 16px}.public-card{background:#fff;border:1px solid var(--s-line);border-radius:13px;padding:15px;box-shadow:var(--s-shadow)}

/* DASHBOARD */
.dashboard-hero{display:flex;align-items:stretch;justify-content:space-between;gap:24px;padding:24px 26px;margin:0 0 18px;border:1px solid #dce4ee;border-radius:18px;background:#fff;box-shadow:var(--s-shadow-md)}
.dashboard-hero-copy{min-width:0}.dashboard-hero h1{margin:7px 0 7px;font-size:31px;line-height:1.08;letter-spacing:-.035em}.dashboard-hero p{max-width:760px;margin:0;color:var(--s-ink-2);font-size:12px}.dashboard-year{align-self:center;min-width:190px;padding:13px 15px;border:1px solid #dce4ee;border-radius:12px;background:#f7f9fc}.dashboard-year span{display:block;color:var(--s-muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.dashboard-year strong{display:block;margin-top:4px;font-size:16px;color:var(--s-navy)}.dashboard-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.dashboard-notice span{display:block;margin-top:3px}.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 12px}.dashboard-section-head-spaced{margin-top:26px}.dashboard-section-head h2{margin:5px 0 3px;font-size:19px;letter-spacing:-.025em}.dashboard-section-head p{margin:0;color:var(--s-muted);font-size:11px}.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-stat{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:118px;padding:17px;border:1px solid var(--s-line);border-radius:15px;background:#fff;color:var(--s-ink);text-decoration:none;box-shadow:var(--s-shadow);overflow:hidden;transition:.16s ease}.dashboard-stat:hover{transform:translateY(-2px);border-color:#c9d2df;box-shadow:var(--s-shadow-md)}.dashboard-stat-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#eaf2ff;color:var(--s-accent);font-size:14px;font-weight:950}.dashboard-stat-copy{min-width:0}.dashboard-stat-copy>span{display:block;color:#65738a;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.dashboard-stat-copy strong{display:block;margin-top:2px;color:var(--s-navy);font-size:29px;line-height:1.05;letter-spacing:-.04em}.dashboard-stat-copy small{display:block;margin-top:5px;color:var(--s-muted);font-size:9px;line-height:1.35}.dashboard-stat-arrow{font-size:18px;color:#9ba7b8}.dashboard-stat-rombel .dashboard-stat-icon{background:#edf5ff;color:#2563eb}.dashboard-stat-siswa .dashboard-stat-icon{background:#ecfdf3;color:#16804a}.dashboard-stat-guru .dashboard-stat-icon{background:#fff7e8;color:#a36308}.dashboard-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dashboard-quick{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--s-line);border-radius:12px;background:#fff;text-decoration:none;box-shadow:0 2px 10px rgba(15,31,58,.035);transition:.15s ease}.dashboard-quick:hover{border-color:#c5cbe9;background:#f8fbff;transform:translateY(-1px)}.dashboard-quick-icon{width:35px;height:35px;display:grid;place-items:center;flex:0 0 35px;border-radius:9px;background:#edf4ff;color:var(--s-accent);font-size:9px;font-weight:950}.dashboard-quick strong{display:block;font-size:11px}.dashboard-quick small{display:block;margin-top:3px;color:var(--s-muted);font-size:9px;line-height:1.35}.dashboard-context-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:16px;border:1px solid var(--s-line);border-radius:13px;background:#fff;box-shadow:var(--s-shadow)}.dashboard-context-strip>div{padding:13px 15px}.dashboard-context-strip>div+div{border-left:1px solid var(--s-line)}.dashboard-context-strip span{display:block;color:var(--s-muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.dashboard-context-strip strong{display:block;margin-top:3px;font-size:11px}.context-online{color:var(--s-success)}
/* SHARED DETAILS / STATUS HELPERS */
.badge.success{background:var(--s-success-bg);color:var(--s-success)}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:currentColor;flex:0 0 auto}.person-avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;background:#eaf2ff;color:#24548f;font-size:12px;font-weight:900}.history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.history-card{padding:15px;border:1px solid var(--s-line);border-radius:11px;background:#fbfcfe}.history-card .label{display:block;color:var(--s-muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.history-card strong{display:block;margin-top:3px;font-size:12px}.timeline{position:relative;display:grid;gap:10px;padding-left:15px}.timeline:before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:2px;background:#e0e6ee}.timeline-item{position:relative;padding:12px 13px;border:1px solid var(--s-line);border-radius:10px;background:#fbfcfe;font-size:11px}.timeline-item:before{content:"";position:absolute;left:-15px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--s-accent);box-shadow:0 0 0 4px #eaf2ff}.preline{white-space:pre-line}.full-width{width:100%}.warning-section{padding:14px;border:1px solid #d9e7f5;border-radius:11px;background:#fffaf0}.admin-management-card{overflow:hidden}.modal-md{width:min(680px,100%)}.settings-modal .modal.modal-exam{width:min(1040px,calc(100vw - 36px));max-width:1040px}.settings-modal .modal.modal-exam .modal-body{max-height:min(72vh,720px)}.settings-modal .exam-table{min-width:0;table-layout:fixed}.settings-modal .exam-table th:first-child,.settings-modal .exam-table td:first-child{width:58px}.settings-modal .exam-table th:nth-child(2),.settings-modal .exam-table td:nth-child(2){width:auto}.settings-modal .exam-table th:nth-child(3),.settings-modal .exam-table td:nth-child(3),.settings-modal .exam-table th:nth-child(4),.settings-modal .exam-table td:nth-child(4){width:150px}.modal-sm{width:min(500px,100%)}.modal-status{width:min(520px,100%)}.modal-status.is-success{border-top:4px solid var(--s-success)}.modal-status.is-error{border-top:4px solid var(--s-danger)}.modal-confirm{min-width:130px}.edit-warning-modal .modal{width:min(560px,100%)}.reset-entry-modal{display:none}.reset-entry-modal.show{display:flex}.field-symbol{color:var(--s-muted);font-size:10px;font-weight:850}.input-wrap{position:relative}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:8px;background:#f1f4f8;color:#637188;cursor:pointer;padding:0}.password-toggle:hover{background:#e8edf5;color:#1d3152}.password-toggle:focus-visible{outline:2px solid #7db1ff;outline-offset:2px}.eye-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.eye-closed{display:none}.password-toggle.is-visible .eye-open{display:none}.password-toggle.is-visible .eye-closed{display:block}.submit-arrow{font-size:15px}.security-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:8px;background:#f1f4f8;color:#66748a;font-size:10px;font-weight:900}.login-brand-row{display:flex;align-items:center;gap:10px;margin-bottom:24px}.login-kicker{display:block;color:#7d8ba0;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.login-form-body{display:grid;gap:13px}.login-field{display:grid;gap:7px}.login-error{padding:10px 12px;border:1px solid #efd4db;border-radius:9px;background:var(--s-danger-bg);color:#8e3042;font-size:10px}.login-panel-inner{width:min(470px,100%);margin:0 auto}.login-panel-footer{margin-top:20px;padding-top:14px;border-top:1px solid var(--s-line);color:var(--s-muted);font-size:9px}.showcase-grid{display:grid;gap:22px}.showcase-content{max-width:620px}.showcase-label{display:inline-flex;padding:6px 8px;border:1px solid rgba(255,255,255,.1);border-radius:999px;color:#b7c5db;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.showcase-copy h1{margin:18px 0 9px}.showcase-copy p{margin:0;color:#b9c6da}.showcase-meta{display:flex;flex-wrap:wrap;gap:8px}.showcase-meta span{padding:7px 9px;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#c3cee0;font-size:9px}.showcase-footer{color:#8090aa;font-size:9px}.login-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;color:#64738a;text-decoration:none;font-size:10px;font-weight:750}.mobile-brand{display:none}.chooser-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#2563eb;color:#fff;font-weight:900;font-size:18px}.chooser-note{margin-top:14px;padding:10px 12px;border:1px solid #dce3ed;border-radius:9px;background:#f8fafc;color:#68768a;font-size:9px;line-height:1.45}.chooser-footer{display:grid;gap:4px;margin-top:18px;color:#8a96a8;font-size:9px}.chooser-footer strong{color:#c3cee0;font-size:9px}.public-brand{display:flex;align-items:center;gap:9px;font-weight:900}.public-year{font-size:10px;color:#c3cfe0}.public-hello{margin-bottom:13px}.public-hello h1{margin:0;font-size:22px}.public-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.public-stat{padding:14px;border:1px solid var(--s-line);border-radius:11px;background:#fff}.public-stat strong{display:block;font-size:21px}.public-stat span{color:var(--s-muted);font-size:9px}.public-item{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--s-line);font-size:10px}.public-item:last-child{border-bottom:0}.public-empty{padding:22px;text-align:center;color:var(--s-muted);font-size:10px}.public-logout{display:inline-flex;min-height:36px;align-items:center;padding:0 11px;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;text-decoration:none;font-size:10px}.section-title{margin:0 0 7px;font-size:15px;font-weight:850}.remove-row{display:flex;justify-content:flex-end}.reset-year-card{border:1px solid var(--s-line);border-radius:12px;background:#fff;padding:15px}.reset-locked-button{opacity:.55;pointer-events:none}.reset-sequence-main{min-width:0}.reset-sequence-status{font-size:10px;color:var(--s-muted)}.reset-sequence-button{display:inline-flex;align-items:center;justify-content:center}.reset-order-note,.reset-modal-note{color:var(--s-muted);font-size:10px;line-height:1.5}.excel-import{display:inline-flex;align-items:stretch;margin:0;padding:0;height:40px}.excel-import label{cursor:pointer}.rombel-action-buttons>.excel-import{height:40px;align-self:stretch}.rombel-action-buttons>.excel-import .upload-btn{height:40px;min-height:40px;box-sizing:border-box;margin:0}.field-readonly{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--s-line);border-radius:9px;background:#f7f9fc;color:#2b3a52;font-size:12px}.field-readonly span{color:var(--s-muted);font-size:10px;font-weight:700}.field-readonly strong{font-size:12px}.rombel-list-heading{align-items:flex-end}.rombel-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:16px;flex-wrap:wrap}.rombel-action-group{display:grid;gap:6px}.action-group-label{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--s-muted)}.rombel-action-buttons{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.upload-btn{gap:6px!important}.upload-btn span:first-child{font-size:16px;line-height:1}.grade-tabs{justify-content:flex-end}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:0 9px;border-radius:999px;background:#eaf2ff;color:#24548f;font-size:10px;font-weight:850;white-space:nowrap}.rombel-member-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;margin-bottom:14px;border:1px solid var(--s-line);border-radius:14px;background:linear-gradient(135deg,#fff,#f8faff);box-shadow:var(--s-shadow)}.rombel-member-identity{display:flex;align-items:center;gap:13px;min-width:0}.rombel-avatar{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border-radius:13px;background:var(--s-navy);color:#fff;font-size:17px;font-weight:900}.rombel-member-identity h2{margin:3px 0 3px;font-size:21px;letter-spacing:-.025em}.rombel-member-identity p{margin:0;color:var(--s-muted);font-size:11px}.rombel-member-stats{display:flex;gap:8px;flex-wrap:wrap}.member-stat{min-width:132px;padding:10px 12px;border:1px solid var(--s-line);border-radius:10px;background:#fff}.member-stat span,.member-stat small{display:block;color:var(--s-muted);font-size:9px}.member-stat strong{display:inline-block;margin-top:2px;font-size:20px;line-height:1.1}.member-stat small{display:inline-block;margin-left:3px}.rombel-member-note{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}.member-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid var(--s-line)}.member-card-title{display:flex;align-items:center;gap:9px;min-width:0}.member-card-title h3{margin:0 0 3px;font-size:15px}.member-card-title p{margin:0;color:var(--s-muted);font-size:10px;line-height:1.45}.member-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:9px;font-size:15px;font-weight:900}.member-icon.current{background:var(--s-success-bg);color:var(--s-success)}.member-icon.available{background:var(--s-accent-soft);color:var(--s-accent)}.member-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin-bottom:10px}.member-count-badge{display:inline-flex;align-items:center;min-height:35px;padding:0 10px;border:1px solid var(--s-line);border-radius:9px;background:#f8fafc;color:#53627a;font-size:10px;font-weight:850;white-space:nowrap}.member-search{margin:0}.member-search input{width:100%}.member-empty{display:grid;place-items:center;min-height:95px;padding:18px;text-align:center;color:#7b889b;background:#fafbfd;border:1px dashed #d3dce7;border-radius:9px;font-size:10px}.member-empty strong{color:#4a5e76;font-size:11px}.member-empty span{display:block;margin-top:4px}.member-save-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.member-save-card>div:first-child{display:grid;gap:3px}.member-save-card>div:first-child strong{font-size:11px}.member-save-card>div:first-child span{color:var(--s-muted);font-size:10px}.member-save-card .actions{justify-content:flex-end}.no-bottom{margin-bottom:0!important}

/* COMPATIBILITY SELECTORS / SMALL UTILITIES */
.app-shell{min-height:100dvh}.compact-context{margin:0;flex:1}.empty{color:var(--s-muted);font-size:11px}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.continue-check,.member-check,.unassigned-check,.promotion-check,.graduation-check{accent-color:var(--s-accent)}.correction-open,.continuation-correction-open,.graduation-correction-open{white-space:nowrap}.reset-locked-button{cursor:not-allowed}.

/* GLOBAL UI HARDENING — wrappers from legacy Blade must still look intentional */
.form-section:last-of-type{margin-bottom:0}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 15px}
.section-heading>div{min-width:0}.section-heading h2{margin:0 0 4px;font-size:17px;letter-spacing:-.02em}.section-heading p{margin:0;color:var(--s-muted);font-size:11px;line-height:1.45}
.head-actions form,.actions form,.table-actions form{margin:0;display:inline-flex;align-items:center}
.head-actions form.excel-import{display:inline-flex}
.table-actions form button{margin:0}
.gap-wrap{display:flex;flex-wrap:wrap;gap:8px}
.w-42{width:42px;min-width:42px!important}
.w-45{width:45px;min-width:45px!important}
.mb-3{margin-bottom:12px!important}.mt-8{margin-top:32px!important}
.text-large{font-size:16px!important}.self-end{align-self:end}.pad-14{padding:14px}.inline-check{display:flex!important;align-items:flex-start;gap:9px}.inline-check input{width:auto!important;min-height:auto!important;margin-top:3px}.inline-check span{min-width:0}
.group-body{min-width:0}.group-table{border:0;border-radius:0}.group-table table{min-width:100%}.chip-list{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;padding:7px 9px;border:1px solid var(--s-line);border-radius:999px;background:#f8fafc;color:#526078;font-size:10px}.count-box{display:flex;flex-wrap:wrap;gap:6px}.count-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f1f4f8;color:#66748a;font-size:9px;font-weight:800}
.person-cell small,.table-wrap td small,.group-meta{display:block;color:var(--s-muted);font-size:10px;margin-top:2px}.username-cell{font-variant-numeric:tabular-nums;font-size:11px;font-weight:750;color:#40506a}
.admin-table-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;color:#66748a;font-size:10px;font-weight:800}.admin-table-count{font-variant-numeric:tabular-nums;color:#8a96a8}
.empty-box{display:grid;gap:4px;place-items:center;padding:30px 18px;text-align:center;color:var(--s-muted);font-size:11px}.empty-box strong{color:#43516a;font-size:12px}.empty-box span{line-height:1.45}
.promotion-filter-form{display:flex;align-items:center;gap:8px}.promotion-filter-form select{min-width:190px}.promotion-filter-form .btn{flex:0 0 auto}.search-row{align-items:center}.search-row .btn{min-width:92px}.filter-grid .field,.filter-grid>div{min-width:0}.filter-grid .btn{width:100%}


/* LM & TP v4.2.38 */
.lm-overview{padding:0;overflow:hidden}.lm-overview-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:19px 20px 16px;border-bottom:1px solid var(--s-line)}.lm-overview-head h2,.lm-list-head h2{margin:3px 0 4px;font-size:18px}.lm-overview-head p{margin:0;color:var(--s-muted);font-size:10.5px}.lm-kicker{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--s-accent);text-transform:uppercase}.lm-flow{display:grid;grid-template-columns:repeat(4,1fr)}.lm-flow>div{padding:13px 15px;border-right:1px solid var(--s-line);background:#fbfcfe}.lm-flow>div:last-child{border-right:0}.lm-flow span{display:block;font-size:9px;font-weight:900;color:#98a3b4}.lm-flow strong{display:block;font-size:11px;margin-top:3px}.lm-flow small{display:block;color:var(--s-muted);font-size:9.5px;margin-top:2px}.lm-grade-actions{justify-content:flex-start}.lm-list-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px}.lm-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lm-subject-card{border:1px solid var(--s-line);border-radius:11px;padding:14px;background:#fff}.lm-subject-card-top{display:flex;gap:10px;align-items:center}.lm-subject-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:10px;background:var(--s-accent-soft);color:var(--s-accent);font-size:10px;font-weight:950}.lm-subject-icon.large{width:48px;height:48px;flex-basis:48px}.lm-subject-card-title{min-width:0}.lm-subject-card-title strong{display:block;font-size:13px}.lm-subject-card-title span{display:block;color:var(--s-muted);font-size:10px;margin-top:3px}.lm-subject-stat{display:flex;align-items:baseline;gap:7px;margin:14px 0 11px;padding-top:10px;border-top:1px solid var(--s-line)}.lm-subject-stat strong{font-size:21px;color:#173f7a}.lm-subject-stat span{font-size:10px;color:var(--s-muted)}.lm-subject-footer{display:flex;justify-content:space-between;gap:8px;align-items:center}.lm-subject-footer>span{font-size:9.5px;color:var(--s-muted)}.lm-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.lm-detail-identity{display:flex;gap:12px;align-items:center}.lm-detail-identity h2{margin:3px 0;font-size:20px}.lm-detail-identity p{margin:0;color:var(--s-muted);font-size:10px}.lm-detail-stats{display:flex;gap:6px}.lm-detail-stats>div{min-width:62px;padding:9px 11px;text-align:center;border:1px solid var(--s-line);border-radius:9px;background:#fbfcfe}.lm-detail-stats strong{display:block;font-size:18px;color:#173f7a}.lm-detail-stats span{display:block;font-size:9px;color:var(--s-muted);margin-top:2px}.lm-detail-hero>.lm-head-actions{grid-column:1/-1;justify-content:flex-end;padding-top:3px;border-top:1px solid var(--s-line)}.inline-edit{position:relative}.inline-edit>summary{list-style:none;cursor:pointer}.inline-edit>summary::-webkit-details-marker{display:none}.inline-edit-form{display:grid;gap:8px;min-width:320px;padding:12px;margin-top:7px;border:1px solid #d8e0ec;border-radius:10px;background:#fff;box-shadow:0 10px 25px rgba(15,27,53,.08);position:absolute;right:0;z-index:4}.inline-edit-form label{font-size:10px;font-weight:800}.inline-edit-form textarea{min-height:90px!important}.tp-edit-form{min-width:360px}.tp-empty{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:14px;border:1px dashed #d4dce8;border-radius:9px;background:#fff;color:var(--s-muted);font-size:10.5px}.tp-empty strong{color:#536078}.tp-empty span{flex:1 1 220px}.scope-content-head .lm-stat{display:block;margin-top:3px}.lm-empty{display:flex;flex-direction:column;align-items:center;gap:7px;padding:28px 16px;text-align:center;border:1px dashed #d4dce8;border-radius:10px;background:#fbfcfe}.lm-empty strong{font-size:12px}.lm-empty span{font-size:10px;color:var(--s-muted)}
@media(max-width:900px){.lm-subject-grid{grid-template-columns:1fr}.lm-flow{grid-template-columns:1fr 1fr}.lm-flow>div:nth-child(2){border-right:0}.lm-flow>div:nth-child(-n+2){border-bottom:1px solid var(--s-line)}.lm-detail-hero{grid-template-columns:1fr}.lm-detail-stats{justify-content:flex-start}.lm-detail-hero>.lm-head-actions{grid-column:auto;justify-content:flex-start}.lm-overview-head{align-items:flex-start;flex-direction:column}.lm-subject-footer{align-items:stretch}.lm-subject-footer .btn{white-space:nowrap}}
@media(max-width:640px){.lm-flow{grid-template-columns:1fr}.lm-flow>div{border-right:0!important;border-bottom:1px solid var(--s-line)}.lm-flow>div:last-child{border-bottom:0}.lm-list-head{align-items:flex-start}.lm-detail-identity{align-items:flex-start}.lm-detail-stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.lm-detail-stats>div{min-width:0}.inline-edit-form,.tp-edit-form{position:fixed;left:12px;right:12px;bottom:12px;min-width:0;z-index:120}.lm-subject-footer{flex-direction:column;align-items:stretch}.lm-subject-footer .btn{width:100%}}



@media(max-width:640px){.rombel-list-heading{align-items:flex-start}.rombel-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px}.rombel-action-group,.rombel-action-buttons{width:100%}.rombel-action-buttons{display:grid;grid-template-columns:1fr 1fr}.rombel-action-buttons .btn,.rombel-action-buttons form,.rombel-action-buttons form label{width:100%}.rombel-action-primary .rombel-action-buttons{grid-template-columns:1fr}.rombel-member-hero{align-items:flex-start;flex-direction:column;padding:16px}.rombel-member-stats{width:100%;display:grid;grid-template-columns:1fr 1fr}.member-stat{min-width:0}.member-card-head{align-items:flex-start}.member-card-head .btn{width:auto}.member-toolbar{grid-template-columns:1fr}.member-count-badge{justify-content:center}.member-save-card{align-items:stretch;flex-direction:column}.member-save-card .actions{width:100%}.member-save-card .actions .btn{width:100%}body{font-size:13px}.dashboard-hero{padding:17px}.dashboard-hero h1{font-size:24px}.dashboard-stats{grid-template-columns:1fr}.dashboard-stat{min-height:105px}.dashboard-quick-grid{grid-template-columns:1fr}.dashboard-context-strip{grid-template-columns:1fr}.dashboard-context-strip>div+div{border-left:0;border-top:1px solid var(--s-line)}.dashboard-notice{align-items:stretch;flex-direction:column}.history-grid{grid-template-columns:1fr}.public-stats{grid-template-columns:1fr 1fr}.app-topbar{padding:0 12px}.topbar-breadcrumb span,.topbar-breadcrumb i{display:none}.topbar-breadcrumb strong{font-size:12px}.workspace{padding:0 12px 30px}.global-breadcrumb{padding:14px 0 10px}.page-intro{padding:5px 0 16px}.page-intro h1{font-size:23px}.page-intro p{font-size:11px}.card{padding:15px;border-radius:11px;margin-bottom:11px}.card>.head{gap:11px;padding-bottom:13px;margin-bottom:13px}.head h2,.card>h2{font-size:16px}.head-actions,.head-actions form,.head-actions .btn,.actions,.actions .btn,.form-actions .btn{width:100%}.head-actions,.table-actions{display:grid;grid-template-columns:1fr 1fr}.head-actions form{display:block}.actions,.form-actions{flex-direction:column;align-items:stretch}.table-actions{gap:7px}.form-grid,.filter-grid,.check-grid{grid-template-columns:1fr}.search-row,.search-row.grid-reset{grid-template-columns:1fr}.repeat-row{grid-template-columns:1fr}.repeat-row .btn{width:100%}.master-summary{grid-template-columns:44px 1fr;gap:10px}.master-summary-note{grid-column:2;justify-self:start;text-align:left}.table-wrap table,.member-table table,.group-table table{min-width:760px}.card>table{display:block;overflow-x:auto}.card>table th,.card>table td{min-width:120px}.process-strip,.mutation-flow{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.scope-summary{align-items:flex-start}.scope-summary-side{align-self:center}.scope-content-head{flex-direction:column;align-items:flex-start}.tp-item{grid-template-columns:1fr}.lm-toolbar{flex-direction:column;align-items:flex-start}.lm-danger-actions,.tp-actions{width:100%}.lm-danger-actions .btn,.tp-actions .btn{width:100%}.reset-year-form-row{grid-template-columns:1fr}.reset-year-form-row .btn{width:100%}.reset-card{padding:14px}.reset-card-head,.reset-sequence-top{flex-direction:column}.reset-sequence-bottom{justify-content:flex-start}.reset-sequence-bottom .btn{width:100%}.reset-modal-actions,.modal-actions{flex-direction:column-reverse}.reset-modal-actions .btn,.modal-actions .btn{width:100%}.modal-backdrop,.reset-modal-backdrop{padding:10px}.reset-modal,.modal{max-height:calc(100dvh - 20px)}.toast-stack{top:72px;right:10px;width:calc(100vw - 20px)}.login-panel{padding:28px 20px}.login-heading h2{font-size:26px}.chooser-main{padding:25px 18px}.summary-box .value{font-size:21px}}
@media(max-width:390px){.head-actions,.table-actions{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}.topbar-user{display:none}.btn{min-height:41px}.table-wrap table,.member-table table,.group-table table{min-width:700px}.login-panel{padding:22px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* LOGIN POLISH v4.2.16 — presentational only */
.login-page{background:var(--s-canvas);overflow-x:hidden}
.login-app{min-height:100dvh;background:var(--s-surface)}
.login-showcase{isolation:isolate;padding:clamp(34px,5vw,70px) clamp(28px,6vw,92px) 32px;background:radial-gradient(circle at 82% 16%,rgba(79,70,229,.26),transparent 34%),linear-gradient(145deg,#0a1733 0%,#10254a 58%,#0d1d3c 100%);border-right:1px solid rgba(255,255,255,.08)}
.login-showcase:before{content:"";position:absolute;inset:auto -18% -25% 28%;height:62%;border-radius:50%;background:rgba(79,70,229,.09);filter:blur(2px);z-index:-1}
.login-brand-row{margin-bottom:0}
.login-brand-row strong,.mobile-brand strong{font-size:17px;letter-spacing:.08em;color:#fff}
.login-brand-row small,.mobile-brand small{display:block;margin-top:4px;color:#93a4bf;font-size:9px;font-weight:650;letter-spacing:.02em}
.showcase-content{align-self:center;max-width:650px;width:100%}
.showcase-label{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.13);color:#cbd6e8}
.showcase-copy h1{font-size:clamp(36px,4vw,56px);line-height:1.01;letter-spacing:-.045em;max-width:620px;margin:20px 0 14px}
.showcase-copy p{font-size:13px;line-height:1.75;max-width:570px;color:#b9c7dc}
.showcase-meta{margin-top:22px}
.showcase-meta span{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.11);color:#cbd6e8}
.showcase-meta b{color:#fff;font-size:8px;letter-spacing:.08em}
.showcase-footer{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;color:#8091ad;font-size:9px}
.showcase-footer span:last-child{color:#aab8cc;font-weight:750}
.login-panel{position:relative;padding:clamp(28px,5vw,64px) clamp(22px,5vw,76px);background:#fff}
.login-panel-inner{width:min(500px,100%)}
.mobile-brand{display:none}
.login-heading{margin-bottom:22px}
.login-heading h2{font-size:clamp(28px,3vw,36px);line-height:1.08;letter-spacing:-.035em;margin:7px 0 9px;color:#14243f}
.login-heading p{font-size:12px;line-height:1.65;max-width:460px;margin:0;color:#728096}
.login-kicker{color:var(--s-accent);font-size:9px;letter-spacing:.14em}
.login-form-body{gap:16px}
.login-field{gap:8px}
.login-field label{font-size:11px;font-weight:850;color:#35445b}
.login-field .input-wrap{display:flex;align-items:center;min-height:50px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.login-field .input-wrap:focus-within{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(79,70,229,.08);background:#fff}
.login-field .field-symbol{width:42px;display:grid;place-items:center;align-self:stretch;color:#8794a8;font-size:11px;border-right:1px solid #e7ebf1}
.login-field input{width:100%;min-width:0;min-height:48px;border:0!important;outline:0;padding:0 13px;background:transparent!important;color:#1d2d46;font-size:13px;border-radius:0!important;box-shadow:none!important}
.login-field input::placeholder{color:#a0abba}
.login-field .password-toggle{right:6px}
.login-submit{min-height:50px;border-radius:11px;font-size:12px;box-shadow:0 9px 22px rgba(16,32,62,.15);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.login-submit:hover{transform:translateY(-1px);background:#172f59;box-shadow:0 12px 26px rgba(16,32,62,.19)}
.login-submit:focus-visible{outline:3px solid rgba(79,70,229,.18);outline-offset:3px}
.login-security{margin-top:18px;padding-top:15px;gap:10px;font-size:10px;line-height:1.5}
.security-icon{width:29px;height:29px;border-radius:9px;background:#f0f4f8;color:#56718f}
.login-error{margin-bottom:15px;padding:11px 13px;font-size:10px;line-height:1.45}
.login-panel-footer{width:min(500px,100%);margin:22px auto 0;padding-top:14px}
.login-back{margin-bottom:0;font-size:10px}

/* Role chooser */
.login-chooser{padding:clamp(14px,3vw,34px);background:radial-gradient(circle at 15% 15%,#ffffff 0,#f5f7fb 42%,#eef2f7 100%)}
.chooser-shell{width:min(1160px,100%);grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);border-radius:22px;box-shadow:0 28px 80px rgba(15,31,58,.14)}
.chooser-intro{position:relative;overflow:hidden;padding:clamp(30px,5vw,54px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 85% 15%,rgba(79,70,229,.28),transparent 32%),linear-gradient(145deg,#0a1733,#10254a 62%,#0d1d3c)}
.chooser-intro:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-130px;bottom:-130px;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018)}
.chooser-mark{width:50px;height:50px;border-radius:14px;background:#2563eb;box-shadow:0 10px 25px rgba(79,70,229,.28);font-size:20px;z-index:1}
.chooser-intro h1{position:relative;margin:18px 0 7px;font-size:26px;letter-spacing:.08em;z-index:1}
.chooser-intro p{position:relative;margin:0;max-width:310px;color:#bdc9db;font-size:11px;line-height:1.7;z-index:1}
.chooser-footer{position:relative;margin-top:28px;max-width:310px;color:#8fa0ba;line-height:1.55;z-index:1}
.chooser-main{padding:clamp(28px,5vw,52px)}
.chooser-main h2{font-size:32px;letter-spacing:-.035em;margin:6px 0 7px}
.chooser-main>p{font-size:11px;line-height:1.6;margin-bottom:20px!important}
.role-grid{gap:11px}
.role-card{position:relative;min-height:88px;padding:14px;border-radius:13px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}
.role-card:hover{transform:translateY(-2px);border-color:#bdc4ff;background:#fff;box-shadow:0 10px 25px rgba(30,41,74,.08)}
.role-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px;font-size:12px}
.role-copy strong{font-size:12px;color:#1b2c47}
.role-copy span{font-size:9.5px;line-height:1.45}
.role-copy small{font-size:8px;padding:4px 7px;margin-top:6px}
.role-arrow{padding-left:4px}
.role-card.admin{background:#f7f8ff;border-color:#cfe0f6}
.chooser-note{font-size:10px;padding:11px 13px}

/* Admin login uses the same elevated language as role logins. */
.login-app .field{display:grid;gap:8px}
.login-app .field label{font-size:11px;font-weight:850;color:#35445b}
.login-app .field .input-wrap{display:flex;align-items:center;min-height:50px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.login-app .field .input-wrap:focus-within{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(79,70,229,.08)}
.login-app .field input{width:100%;min-width:0;min-height:48px;border:0;outline:0;padding:0 13px;background:transparent;color:#1d2d46;font-size:13px;box-shadow:none}
.login-app .field input:focus{box-shadow:none}
.login-app .field .password-toggle{right:6px}

@media(max-width:900px){
  /* Mobile role/admin login must occupy the full viewport column.
     The desktop 2-column grid otherwise leaves the form in the second
     grid track, producing the narrow/off-center card seen in device mode. */
  .satria-login-v241 .login-app{grid-template-columns:1fr;min-height:100dvh;background:#fff}
  .satria-login-v241 .login-showcase{display:none}
  .satria-login-v241 .login-panel{
    width:100%;
    min-height:100dvh;
    align-items:flex-start;
    justify-content:center;
    padding:30px 22px 34px;
    background:#fff;
  }
  .satria-login-v241 .login-panel-inner{
    width:min(460px,100%);
    margin:0 auto;
  }
  .satria-login-v241 .mobile-brand{
    display:flex;
    align-items:center;
    gap:9px;
    margin:2px 0 40px;
  }
  .satria-login-v241 .mobile-brand strong{color:#123b76;font-size:17px}
  .satria-login-v241 .mobile-brand small{color:#7d8da3;margin-top:3px;font-size:9px}
  .satria-login-v241 .login-brand-icon{
    width:40px;height:40px;flex:0 0 40px;border-radius:11px;
    background:#eaf2ff;color:#2563eb;box-shadow:none;
  }
  .satria-login-v241 .login-brand-icon svg{width:22px;height:22px}
  .satria-login-v241 .login-heading{margin-bottom:25px}
  .satria-login-v241 .login-heading h2{
    font-size:clamp(28px,8vw,34px);
    line-height:1.06;
    margin:8px 0 6px;
  }
  .satria-login-v241 .login-heading p{font-size:11px;color:#718198}
  .satria-login-v241 .login-form-body{gap:15px}
  .satria-login-v241 .login-field{gap:7px}
  .satria-login-v241 .login-field label{font-size:10.5px}
  .satria-login-v241 .login-field .input-wrap{
    width:100%;
    min-height:52px;
    border-radius:12px;
  }
  .satria-login-v241 .login-field .field-symbol{
    width:44px;
    flex-basis:44px;
    height:50px;
  }
  .satria-login-v241 .login-field input{
    height:50px;
    min-height:50px;
    font-size:13px;
    padding:0 13px;
  }
  .satria-login-v241 .password-toggle{width:42px;flex-basis:42px}
  .satria-login-v241 .login-submit{
    min-height:52px;
    margin-top:4px;
    border-radius:12px;
    padding:0 17px;
    font-size:12px;
  }
  .satria-login-v241 .login-panel-footer{
    width:100%;
    margin-top:21px;
    padding-top:0;
    text-align:center;
  }
  .satria-login-v241 .login-back{font-size:10.5px}
  .chooser-shell{grid-template-columns:1fr}
  .chooser-intro{padding:27px 24px;min-height:190px}
  .chooser-footer{margin-top:17px}
  .chooser-main{padding:28px 22px}
}
@media(max-width:640px){
  .satria-login-v241 .login-panel{padding:24px 18px 30px}
  .satria-login-v241 .mobile-brand{margin-bottom:34px}
  .satria-login-v241 .login-heading h2{font-size:29px}
  .satria-login-v241 .login-form-body{gap:14px}
  .satria-login-v241 .login-field .input-wrap,
  .satria-login-v241 .login-app .field .input-wrap{min-height:51px}
  .satria-login-v241 .login-submit{min-height:51px}
  .chooser-main h2{font-size:27px}
  .chooser-main{padding:24px 18px}
  .role-card{min-height:82px}
}
@media(max-width:390px){
  .satria-login-v241 .login-panel{padding-left:16px;padding-right:16px}
  .satria-login-v241 .mobile-brand{margin-bottom:30px}
  .satria-login-v241 .login-heading h2{font-size:28px}
}


/* RIWAYAT PENEMPATAN SISWA — v4.2.22 */
.history-profile{
  display:grid;
  grid-template-columns:minmax(260px,1.05fr) minmax(0,1.95fr);
  gap:18px;
  align-items:stretch;
  padding:20px;
}
.history-profile-main{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:6px 4px;
}
.history-student-avatar{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:linear-gradient(145deg,#eaf2ff,#e5effb);
  color:#174b96;
  font-size:22px;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(79,70,229,.08);
}
.history-student-copy{min-width:0}
.history-kicker,.history-section-kicker{
  color:var(--s-muted);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
}
.history-student-copy h2{
  margin:3px 0 4px;
  font-size:19px;
  line-height:1.25;
  color:var(--s-navy);
}
.history-identity{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  color:var(--s-muted);
  font-size:11px;
}
.history-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--s-line);
  border-radius:14px;
  overflow:hidden;
  background:var(--s-surface-2);
}
.history-summary-item{
  min-width:0;
  padding:13px 14px;
  border-right:1px solid var(--s-line);
}
.history-summary-item:last-child{border-right:0}
.history-summary-item .label{
  display:block;
  color:var(--s-muted);
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.history-summary-item strong{
  display:block;
  margin-top:4px;
  color:var(--s-navy);
  font-size:15px;
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.history-summary-item small{
  display:block;
  margin-top:3px;
  color:var(--s-muted);
  font-size:9.5px;
  line-height:1.35;
}
.history-current{background:#fbfdff}
.history-section{overflow:hidden}
.history-section-heading{align-items:flex-start}
.history-section-kicker{margin-bottom:3px;color:var(--s-accent)}
.history-count-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border:1px solid var(--s-line);
  border-radius:999px;
  background:var(--s-surface-2);
  color:var(--s-muted);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.placement-timeline{
  position:relative;
  display:grid;
  gap:12px;
  padding:4px 0 4px 34px;
}
.placement-timeline:before{
  content:"";
  position:absolute;
  left:13px;
  top:17px;
  bottom:17px;
  width:2px;
  background:linear-gradient(to bottom,#cfd7e5,#e7ebf2);
}
.placement-step{position:relative;min-width:0}
.placement-step-marker{
  position:absolute;
  left:-34px;
  top:13px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:4px solid var(--s-surface);
  border-radius:50%;
  background:var(--s-accent);
  color:#fff;
  box-shadow:0 0 0 1px #d7e5f5;
  z-index:1;
}
.placement-step-marker span{font-size:9px;font-weight:900}
.placement-step-card{
  padding:15px 16px;
  border:1px solid var(--s-line);
  border-radius:13px;
  background:linear-gradient(180deg,#fff,#fbfcfe);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.placement-step-card:hover{
  border-color:#cbd5e1;
  box-shadow:var(--s-shadow);
  transform:translateY(-1px);
}
.placement-step-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.placement-year{
  color:var(--s-muted);
  font-size:10px;
  font-weight:800;
}
.placement-step-card h3{
  margin:3px 0 0;
  color:var(--s-navy);
  font-size:14px;
  line-height:1.35;
}
.placement-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}
.placement-meta span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:27px;
  padding:0 9px;
  border:1px solid var(--s-line);
  border-radius:8px;
  background:var(--s-surface-2);
  color:var(--s-muted);
  font-size:10px;
}
.placement-meta b{color:var(--s-ink-2);font-weight:800}
.placement-current-note{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:11px;
  color:var(--s-success);
  font-size:10px;
  font-weight:750;
}
.history-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:170px;
  padding:25px;
  border:1px dashed var(--s-line-strong);
  border-radius:12px;
  background:var(--s-surface-2);
  text-align:center;
}
.history-empty.compact{min-height:135px}
.history-empty-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  margin-bottom:9px;
  border-radius:11px;
  background:#eaf2ff;
  color:var(--s-accent);
  font-weight:900;
}
.history-empty strong{color:var(--s-navy);font-size:12px}
.history-empty p{margin:3px 0 0;color:var(--s-muted);font-size:10.5px}
.movement-list{display:grid;gap:10px}
.movement-card{
  display:flex;
  gap:12px;
  padding:14px;
  border:1px solid var(--s-line);
  border-radius:13px;
  background:#fbfcfe;
}
.movement-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eaf2ff;
  color:var(--s-accent);
  font-size:16px;
  font-weight:900;
}
.movement-content{min-width:0;flex:1}
.movement-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.movement-heading strong{color:var(--s-navy);font-size:12px}
.movement-route{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
}
.movement-route span:not(.movement-arrow){
  display:flex;
  flex-direction:column;
  min-width:0;
}
.movement-route small{
  color:var(--s-muted);
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.movement-route b{margin-top:2px;color:var(--s-ink-2);font-size:11px}
.movement-arrow{color:var(--s-accent);font-weight:900}
.movement-grade{margin-left:auto;text-align:right}
.movement-time{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
  color:var(--s-muted);
  font-size:9.5px;
}
.movement-time span{color:var(--s-muted-2)}
@media (max-width:980px){
  .history-profile{grid-template-columns:1fr}
  .history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .history-summary-item:nth-child(2){border-right:0}
  .history-summary-item:nth-child(-n+2){border-bottom:1px solid var(--s-line)}
}
@media (max-width:640px){
  .history-profile{padding:14px;gap:13px}
  .history-student-avatar{width:48px;height:48px;flex-basis:48px;border-radius:14px;font-size:18px}
  .history-student-copy h2{font-size:16px}
  .history-summary{grid-template-columns:1fr}
  .history-summary-item,
  .history-summary-item:nth-child(2){border-right:0;border-bottom:1px solid var(--s-line)}
  .history-summary-item:last-child{border-bottom:0}
  .placement-timeline{padding-left:29px}
  .placement-step-marker{left:-29px;width:25px;height:25px}
  .placement-timeline:before{left:11px}
  .placement-step-top{flex-direction:column;gap:8px}
  .placement-meta{display:grid;grid-template-columns:1fr 1fr}
  .placement-meta span:last-child{grid-column:1 / -1}
  .movement-card{padding:12px}
  .movement-heading{align-items:flex-start;flex-direction:column}
  .movement-route{align-items:flex-start;flex-wrap:wrap}
  .movement-grade{margin-left:0;text-align:left}
}

/* PEMBELAJARAN v4.2.31 — operational presentation */
.learning-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:12px}.learning-summary-grid .summary-box{min-height:102px}.learning-toolbar-card{padding-bottom:17px}.learning-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(140px,.65fr) minmax(180px,.8fr) minmax(140px,.55fr) auto;gap:9px;align-items:end}.learning-filter-actions{display:flex;gap:7px}.learning-list-meta{margin-bottom:12px}.learning-teacher-card{margin-bottom:13px}.learning-teacher-head{align-items:center}.learning-teacher-identity{display:flex;align-items:center;gap:12px;min-width:0}.learning-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--s-accent-soft);color:var(--s-accent);font-weight:950;font-size:15px;flex:0 0 42px}.learning-subject-list{padding:0 16px 5px}.learning-subject-row{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;padding:15px 0;border-bottom:1px solid #edf0f4}.learning-subject-row:last-child{border-bottom:0}.learning-subject-title strong{display:block;font-size:12px}.learning-subject-title span{display:block;margin-top:3px;color:var(--s-muted);font-size:9px;font-weight:800}.learning-grade-list{display:grid;gap:9px}.learning-grade-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:9px;align-items:center}.learning-grade-label{font-size:9px;font-weight:900;color:var(--s-muted);text-transform:uppercase;letter-spacing:.07em}.learning-rombel-list{display:flex;gap:6px;flex-wrap:wrap}.learning-rombel-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dbe2eb;background:#f8fafc;border-radius:9px;padding:5px 6px 5px 8px}.learning-rombel-chip>span{display:flex;flex-direction:column;min-width:65px}.learning-rombel-chip strong{font-size:10px;color:#4b5a70}.learning-rombel-chip small{font-size:8px;color:var(--s-muted)}.learning-rombel-chip a{font-size:8px;font-weight:850;text-decoration:none;color:var(--s-accent);padding:4px 5px;border-left:1px solid #dbe2eb}.learning-rombel-chip a:hover{text-decoration:underline}.learning-pagination{padding-top:7px}.btn-small{min-height:31px;padding:0 9px;font-size:9px}
@media(max-width:980px){.learning-filter-grid{grid-template-columns:1fr 1fr}.learning-filter-actions{grid-column:1/-1}.learning-subject-row{grid-template-columns:1fr;gap:9px}.learning-grade-row{grid-template-columns:60px minmax(0,1fr) auto}}
@media(max-width:640px){.learning-summary-grid{grid-template-columns:1fr}.learning-filter-grid{grid-template-columns:1fr}.learning-filter-actions{grid-column:auto}.learning-teacher-head{align-items:stretch}.learning-teacher-identity{align-items:flex-start}.learning-grade-row{grid-template-columns:1fr}.learning-grade-label{margin-bottom:-3px}.learning-grade-row>.btn{width:100%}.learning-subject-list{padding-left:12px;padding-right:12px}.learning-rombel-chip{flex:1 1 120px;justify-content:space-between}}


/* RESPONSIVE — one layout, desktop to mobile */
@media(max-width:1200px){
  :root{--s-sidebar:250px}.workspace{padding:0 24px 42px}.app-topbar{padding:0 24px}.page-intro h1{font-size:26px}.search-row.grid-reset{grid-template-columns:1fr 1fr}.dashboard-stats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  :root{--s-sidebar:270px}.app-sidebar{transform:translateX(-105%);transition:transform .22s ease}.app-main{margin-left:0}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:90;background:rgba(7,24,50,.58);opacity:0;visibility:hidden;pointer-events:none;transition:.2s}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}.menu-toggle{display:block}.topbar-context-year{display:flex}.topbar-user{padding-left:0;border-left:0}.topbar-user>span:last-child{display:none}.app-topbar{height:64px}.workspace{padding:0 18px 36px}.global-breadcrumb{padding-top:14px}.page-intro{align-items:flex-start;flex-direction:column;gap:11px}.page-intro-side{width:100%}.page-intro-side .head-actions{justify-content:flex-start}.form-grid,.filter-grid{grid-template-columns:1fr 1fr}.card>.head,.form-intro{flex-direction:column}.head-actions{justify-content:flex-start}.head-actions form,.head-actions .btn{max-width:100%}.group-head,.lm-card-head,.lm-page-head{flex-direction:column;align-items:flex-start}.lm-head-actions{justify-content:flex-start}.member-columns{grid-template-columns:1fr}.mutation-flow{grid-template-columns:1fr 1fr}.repeat-row{grid-template-columns:1fr 1fr}.repeat-row .btn{margin-top:0}.summary-grid{grid-template-columns:1fr 1fr}.login-app{grid-template-columns:1fr}.login-showcase{display:none}.login-panel{min-height:100dvh}.role-grid{grid-template-columns:1fr}.role-card.admin{grid-column:auto}.dashboard-hero{flex-direction:column}.dashboard-year{align-self:stretch;min-width:0}.dashboard-quick-grid{grid-template-columns:1fr 1fr}.history-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  body{font-size:13px}.sidebar-brand-area{padding:18px 16px}.app-topbar{padding:0 12px}.topbar-context-year{padding:7px 9px}.topbar-context-year span{display:none}.topbar-context-year strong{font-size:11px}.workspace{padding:0 12px 30px}.global-breadcrumb{padding:13px 0 9px}.page-intro{padding:4px 0 14px}.page-intro h1{font-size:22px}.page-intro p{font-size:10px}.card{padding:14px;border-radius:11px;margin-bottom:10px}.card>.head{gap:10px;padding-bottom:12px;margin-bottom:12px}.head h2,.card>h2{font-size:15px}.head-actions,.head-actions form,.head-actions .btn,.actions,.actions .btn,.form-actions .btn{width:100%}.head-actions,.table-actions{display:grid;grid-template-columns:1fr 1fr}.head-actions form{display:block}.actions,.form-actions{flex-direction:column;align-items:stretch}.table-actions{gap:6px}.form-grid,.filter-grid,.check-grid{grid-template-columns:1fr}.search-row,.search-row.grid-reset{grid-template-columns:1fr}.repeat-row{grid-template-columns:1fr}.repeat-row .btn{width:100%}.master-summary{grid-template-columns:43px 1fr;gap:9px}.master-summary-note{grid-column:2;justify-self:start;text-align:left}.table-wrap table,.member-table table,.group-table table{min-width:720px}.card>table{display:block;overflow-x:auto}.card>table th,.card>table td{min-width:120px}.process-strip,.mutation-flow{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.scope-summary{align-items:flex-start}.scope-summary-side{align-self:center}.scope-content-head{flex-direction:column;align-items:flex-start}.tp-item{grid-template-columns:1fr}.lm-toolbar{flex-direction:column;align-items:flex-start}.lm-danger-actions,.tp-actions{width:100%}.lm-danger-actions .btn,.tp-actions .btn{width:100%}.reset-year-form-row{grid-template-columns:1fr}.reset-year-form-row .btn{width:100%}.reset-card{padding:13px}.reset-card-head,.reset-sequence-top{flex-direction:column}.reset-sequence-bottom{justify-content:flex-start}.reset-sequence-bottom .btn{width:100%}.reset-modal-actions,.modal-actions{flex-direction:column-reverse}.reset-modal-actions .btn,.modal-actions .btn{width:100%}.modal-backdrop,.reset-modal-backdrop{padding:10px}.reset-modal,.modal{max-height:calc(100dvh - 20px)}.toast-stack{top:70px;right:10px;width:calc(100vw - 20px)}.login-panel{padding:28px 20px}.login-heading h2{font-size:26px}.chooser-main{padding:25px 18px}.summary-box .value{font-size:21px}.rombel-list-heading{align-items:flex-start}.rombel-actions{width:100%;display:grid;grid-template-columns:1fr;gap:9px}.rombel-action-group,.rombel-action-buttons{width:100%}.rombel-action-buttons{display:grid;grid-template-columns:1fr 1fr}.rombel-action-buttons .btn,.rombel-action-buttons form,.rombel-action-buttons form label{width:100%}.rombel-action-primary .rombel-action-buttons{grid-template-columns:1fr}.rombel-member-hero{align-items:flex-start;flex-direction:column;padding:15px}.rombel-member-stats{width:100%;display:grid;grid-template-columns:1fr 1fr}.member-stat{min-width:0}.member-card-head{align-items:flex-start}.member-card-head .btn{width:auto}.member-toolbar{grid-template-columns:1fr}.member-count-badge{justify-content:center}.member-save-card{align-items:stretch;flex-direction:column}.member-save-card .actions{width:100%}.member-save-card .actions .btn{width:100%}.dashboard-hero{padding:17px}.dashboard-hero h1{font-size:23px}.dashboard-stats{grid-template-columns:1fr}.dashboard-stat{min-height:100px}.dashboard-quick-grid{grid-template-columns:1fr}.dashboard-context-strip{grid-template-columns:1fr}.dashboard-context-strip>div+div{border-left:0;border-top:1px solid var(--s-line)}.dashboard-notice{align-items:stretch;flex-direction:column}.history-grid{grid-template-columns:1fr}.public-stats{grid-template-columns:1fr 1fr}.chooser-main h2{font-size:27px}.login-panel{padding:24px 17px}
}
@media(max-width:390px){.head-actions,.table-actions{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}.topbar-user{display:none}.btn{min-height:40px}.table-wrap table,.member-table table,.group-table table{min-width:680px}.login-panel{padding:22px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* THEME TUNING */
.page-intro p{display:none}.dashboard-section-head p,.dashboard-stat-copy small{display:none}.showcase-meta{display:none}.login-security{display:none}.login-panel-footer{margin-top:18px}.chooser-note{display:none}.chooser-lead{display:none}.role-copy span{font-size:9.5px}.role-copy small{display:none}.public-hello .muted{font-size:10px}

/* LOGIN MODERN ACADEMIC NAVY v4.2.42 — mobile layout correction for role/admin login */
.satria-login-v241{--login-navy:#0f3b82;--login-blue:#2563eb;--login-ink:#102a43;--login-muted:#6b7c93;--login-line:#dfe7f0;background:#f5f8fc!important}
.satria-login-v241 .login-app{grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);background:#fff}
.satria-login-v241 .login-showcase{padding:clamp(30px,5vw,68px) clamp(28px,6vw,82px) 28px;background:linear-gradient(145deg,#0f3b82 0%,#123f86 52%,#0b326f 100%);border-right:0}
.satria-login-v241 .login-showcase:before{content:"";position:absolute;right:-120px;bottom:-150px;width:390px;height:390px;border-radius:50%;border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 76px rgba(255,255,255,.018);z-index:0}
.satria-login-v241 .showcase-content{position:relative;z-index:1;align-self:center;max-width:560px}
.satria-login-v241 .login-brand-lockup{display:flex;align-items:center;gap:11px}
.satria-login-v241 .login-brand-lockup>span:last-child{display:flex;flex-direction:column}
.satria-login-v241 .login-brand-lockup strong{font-size:20px;line-height:1;letter-spacing:.055em;color:#fff}
.satria-login-v241 .login-brand-lockup small{margin-top:5px;color:#b8cce8;font-size:9px;font-weight:650;letter-spacing:.015em}
.satria-login-v241 .login-brand-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.satria-login-v241 .login-brand-icon svg{width:25px;height:25px;stroke-width:1.65}
.satria-login-v241 .showcase-copy{margin-top:clamp(70px,11vh,125px)}
.satria-login-v241 .login-overline{display:block;color:#7eb2ff;font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.satria-login-v241 .showcase-copy .login-overline{color:#a9cbff}
.satria-login-v241 .showcase-copy h1{margin:12px 0 10px;font-size:clamp(36px,4.3vw,56px);line-height:1.03;letter-spacing:-.045em;color:#fff}
.satria-login-v241 .showcase-copy p{margin:0;color:#c5d5ea;font-size:12px;font-weight:600}
.satria-login-v241 .showcase-footer{position:relative;z-index:1;color:#94add0;font-size:9px}
.satria-login-v241 .showcase-footer span:last-child{color:#b9cbe4}
.satria-login-v241 .login-panel{padding:clamp(30px,5vw,68px) clamp(24px,5vw,82px);background:#fff}
.satria-login-v241 .login-panel-inner{width:min(430px,100%);margin:auto}
.satria-login-v241 .mobile-brand{display:none}
.satria-login-v241 .login-heading{margin-bottom:27px}
.satria-login-v241 .login-heading h2{margin:8px 0 5px;color:#102e56;font-size:clamp(29px,3vw,36px);line-height:1.08;letter-spacing:-.04em}
.satria-login-v241 .login-heading p{margin:0;color:#7a899d;font-size:11px}
.satria-login-v241 .login-form-body{display:grid;gap:15px}
.satria-login-v241 .login-field{display:grid;gap:7px}
.satria-login-v241 .login-field label{font-size:10.5px;font-weight:800;color:#34465e}
.satria-login-v241 .login-field .input-wrap{display:flex;align-items:center;min-height:50px;border:1px solid #cbd7e4;border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.satria-login-v241 .login-field .input-wrap:focus-within{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(37,99,235,.09)}
.satria-login-v241 .login-field .field-symbol{width:42px;height:48px;display:grid;place-items:center;flex:0 0 42px;border-right:1px solid #e6ebf1;color:#7b8ba0;font-size:11px;font-weight:800}
.satria-login-v241 .login-field input{width:100%;min-width:0;height:48px;border:0!important;outline:0;padding:0 12px;background:transparent!important;color:#1d304b;font-size:12px;border-radius:0!important;box-shadow:none!important}
.satria-login-v241 .login-field input::placeholder{color:#a2afbf}
.satria-login-v241 .password-toggle{position:relative;right:auto!important;width:38px;height:42px;display:grid;place-items:center;flex:0 0 38px;border:0;background:transparent;color:#8090a5;cursor:pointer}
.satria-login-v241 .password-toggle .eye-icon{width:17px;height:17px}
.satria-login-v241 .password-toggle .eye-closed{display:none}
.satria-login-v241 .password-toggle.is-visible .eye-open{display:none}
.satria-login-v241 .password-toggle.is-visible .eye-closed{display:block}
.satria-login-v241 .login-submit{width:100%;min-height:50px;margin-top:5px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border:0;border-radius:10px;background:#2563eb;color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.18);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.satria-login-v241 .login-submit:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 11px 23px rgba(37,99,235,.22)}
.satria-login-v241 .submit-arrow{font-size:17px;font-weight:500}
.satria-login-v241 .login-error{display:flex;gap:9px;margin-bottom:15px;padding:10px 12px;border:1px solid #f3ccd4;border-radius:9px;background:#fff5f7;color:#a42e46;font-size:10px;line-height:1.45}
.satria-login-v241 .login-error>span{width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;border-radius:50%;background:#fbdce3;font-weight:900}
.satria-login-v241 .login-panel-footer{width:100%;margin:20px 0 0;padding-top:15px;border-top:1px solid #edf1f5}
.satria-login-v241 .login-back{color:#6b7c93;font-size:10px;font-weight:700;text-decoration:none}
.satria-login-v241 .login-back:hover{color:#2563eb}

.satria-login-v241 .login-chooser{min-height:100dvh;padding:24px;background:linear-gradient(145deg,#f7faff,#eef4fb);display:grid;place-items:center}
.satria-login-v241 .chooser-shell{width:min(1080px,100%);grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);overflow:hidden;background:#fff;border:1px solid #dfe7f0;border-radius:20px;box-shadow:0 24px 65px rgba(15,59,130,.13)}
.satria-login-v241 .chooser-intro{position:relative;overflow:hidden;padding:clamp(30px,5vw,54px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#0f3b82,#123f86 58%,#0b326f)}
.satria-login-v241 .chooser-intro:after{content:"";position:absolute;right:-130px;bottom:-130px;width:270px;height:270px;border-radius:50%;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018)}
.satria-login-v241 .chooser-intro-copy{position:relative;z-index:1;margin:auto 0}
.satria-login-v241 .chooser-intro-copy h1{margin:12px 0 0;color:#fff;font-size:clamp(28px,3vw,42px);line-height:1.08;letter-spacing:-.04em}
.satria-login-v241 .chooser-intro-footer{position:relative;z-index:1;color:#9eb6d7;font-size:9px;line-height:1.5}
.satria-login-v241 .chooser-main{padding:clamp(28px,5vw,52px)}
.satria-login-v241 .chooser-main-head{margin-bottom:21px}
.satria-login-v241 .chooser-main h2{margin:7px 0 0;color:#102e56;font-size:30px;line-height:1.1;letter-spacing:-.04em}
.satria-login-v241 .role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.satria-login-v241 .role-card{display:flex;align-items:center;gap:10px;min-height:78px;padding:12px;border:1px solid #dfe7f0;border-radius:11px;background:#fff;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}
.satria-login-v241 .role-card:hover{transform:translateY(-1px);border-color:#a9c8f4;background:#f8fbff;box-shadow:0 8px 20px rgba(15,59,130,.07)}
.satria-login-v241 .role-card.admin{grid-column:1/-1;background:#f7faff;border-color:#cfe0f6}
.satria-login-v241 .role-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:10px;background:#eaf2ff;color:#2563eb}
.satria-login-v241 .role-icon svg{width:19px;height:19px;stroke-width:1.7}
.satria-login-v241 .role-copy{min-width:0;flex:1}
.satria-login-v241 .role-copy strong{display:block;color:#183454;font-size:11.5px;line-height:1.3}
.satria-login-v241 .role-copy small{display:inline-block;margin-top:5px;padding:3px 6px;border-radius:5px;background:#f1f5f9;color:#66768b;font-size:7.5px;font-weight:800;letter-spacing:.01em}
.satria-login-v241 .role-arrow{color:#8292a7;font-size:15px;font-weight:700}
.satria-login-v241 .chooser-note{display:flex;align-items:center;gap:8px;margin-top:15px;color:#718197;font-size:9.5px}
.satria-login-v241 .chooser-note-icon{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px;border-radius:50%;background:#eaf2ff;color:#2563eb;font-size:9px;font-weight:900}

@media(max-width:900px){
  .satria-login-v241 .login-showcase{display:none}
  .satria-login-v241 .login-panel{min-height:100dvh;padding:28px 20px;display:flex;align-items:center}
  .satria-login-v241 .mobile-brand{display:flex;margin-bottom:35px}
  .satria-login-v241 .mobile-brand strong{color:#102e56;font-size:17px}
  .satria-login-v241 .mobile-brand small{color:#7d8da2}
  .satria-login-v241 .mobile-brand .login-brand-icon{background:#eaf2ff;color:#2563eb}
  .satria-login-v241 .chooser-shell{grid-template-columns:1fr}
  .satria-login-v241 .chooser-intro{min-height:230px;padding:28px 24px}
  .satria-login-v241 .chooser-intro-copy{margin:38px 0 0}
  .satria-login-v241 .chooser-main{padding:28px 22px}
}
@media(max-width:560px){
  .satria-login-v241 .login-chooser{padding:10px}
  .satria-login-v241 .chooser-shell{border-radius:16px}
  .satria-login-v241 .chooser-intro{min-height:205px}
  .satria-login-v241 .chooser-intro-copy h1{font-size:29px}
  .satria-login-v241 .chooser-main{padding:24px 16px}
  .satria-login-v241 .chooser-main h2{font-size:27px}
  .satria-login-v241 .role-grid{grid-template-columns:1fr}
  .satria-login-v241 .role-card.admin{grid-column:auto}
  .satria-login-v241 .login-panel{padding:24px 16px}
  .satria-login-v241 .mobile-brand{margin-bottom:28px}
}
@media(max-width:390px){
  .satria-login-v241 .role-card{min-height:72px}
  .satria-login-v241 .login-heading h2{font-size:26px}
}


/* SATRIA LOGIN RESPONSIVE FINAL v4.2.43
 * Authoritative final overrides. Appended after legacy/theme rules so the
 * mobile layout cannot be reintroduced by a later desktop selector.
 */
.satria-login-v243.login-page{width:100%;min-width:0;overflow-x:hidden;background:#f5f8fc}
.satria-login-v243 .login-app{width:100%;min-width:0;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);background:#fff}
.satria-login-v243 .login-showcase{min-width:0}
.satria-login-v243 .login-panel{min-width:0;width:100%;display:flex;align-items:center;justify-content:center;background:#fff}
.satria-login-v243 .login-panel-inner{width:min(430px,100%);min-width:0;margin:auto}
.satria-login-v243 .login-field,.satria-login-v243 .login-field .input-wrap,.satria-login-v243 .login-field input,.satria-login-v243 .login-submit{min-width:0;max-width:100%}

@media(max-width:900px){
  .satria-login-v243 .login-app{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    min-height:100dvh;
    background:#fff;
  }
  .satria-login-v243 .login-showcase{display:none!important;width:0!important;min-width:0!important;height:0!important;padding:0!important;margin:0!important}
  .satria-login-v243 .login-panel{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    min-height:100dvh;
    padding:30px 20px 34px!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .satria-login-v243 .login-panel-inner{
    display:block!important;
    width:min(440px,100%)!important;
    min-width:0!important;
    margin:0 auto!important;
  }
  .satria-login-v243 .mobile-brand{
    display:flex!important;
    align-items:center;
    width:100%;
    min-width:0;
    margin:0 0 32px!important;
  }
  .satria-login-v243 .login-heading{
    width:100%;
    min-width:0;
    margin-bottom:24px;
  }
  .satria-login-v243 .login-heading h2{
    margin-top:7px;
    font-size:clamp(28px,8vw,34px);
    line-height:1.08;
  }
  .satria-login-v243 .login-heading p{font-size:11px}
  .satria-login-v243 .login-form-body{
    display:flex;
    flex-direction:column;
    width:100%;
    min-width:0;
    gap:14px;
  }
  .satria-login-v243 .login-field{width:100%;min-width:0}
  .satria-login-v243 .login-field .input-wrap{
    width:100%!important;
    min-height:52px!important;
    height:52px;
    border-radius:12px;
  }
  .satria-login-v243 .login-field .field-symbol{
    width:44px;
    flex:0 0 44px;
    height:50px;
  }
  .satria-login-v243 .login-field input{
    flex:1 1 auto;
    width:100%!important;
    min-width:0!important;
    min-height:50px;
    height:50px;
    font-size:13px;
  }
  .satria-login-v243 .password-toggle{flex:0 0 42px;width:42px}
  .satria-login-v243 .login-submit{
    width:100%!important;
    min-height:52px!important;
    margin-top:3px;
    border-radius:12px;
  }
  .satria-login-v243 .login-panel-footer{
    width:100%!important;
    margin:20px 0 0!important;
    padding:0!important;
    text-align:center;
  }
  .satria-login-v243 .login-back{font-size:10.5px}

  /* Admin login uses .field rather than .login-field. */
  .satria-login-v243 .login-app .field{width:100%;min-width:0}
  .satria-login-v243 .login-app .field .input-wrap{
    width:100%!important;
    min-height:52px!important;
    height:52px;
  }
  .satria-login-v243 .login-app .field input{
    flex:1 1 auto;
    width:100%!important;
    min-width:0!important;
    min-height:50px;
    height:50px;
  }
}

@media(max-width:480px){
  .satria-login-v243 .login-panel{padding:24px 16px 30px!important}
  .satria-login-v243 .mobile-brand{margin-bottom:28px!important}
  .satria-login-v243 .login-heading{margin-bottom:21px}
  .satria-login-v243 .login-heading h2{font-size:29px}
  .satria-login-v243 .login-form-body{gap:13px}
}

@media(max-width:390px){
  .satria-login-v243 .login-panel{padding-left:14px!important;padding-right:14px!important}
  .satria-login-v243 .mobile-brand{margin-bottom:25px!important}
  .satria-login-v243 .login-heading h2{font-size:27px}
  .satria-login-v243 .login-submit{min-height:50px!important}
}

/* v4.2.44 — semantic inline spacing; avoids visible HTML spacing entities */
.inline-gap{display:inline-block;width:.42rem;height:1px;vertical-align:middle}

/* v4.2.45 — Teacher Assessment Context Integration */
.teacher-assessment-page{min-height:100dvh;background:#f5f8fc;color:var(--s-ink)}
.teacher-assessment-topbar{min-height:64px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border-bottom:1px solid #dfe7f0}
.teacher-assessment-brand{display:flex;align-items:center;gap:10px;color:#102e56;text-decoration:none}
.teacher-assessment-brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eaf2ff;color:#2563eb;font-weight:900}
.teacher-assessment-brand strong{display:block;font-size:13px;letter-spacing:-.02em}.teacher-assessment-brand small{display:block;margin-top:1px;color:#7a899d;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.teacher-assessment-year{text-align:right}.teacher-assessment-year span{display:block;color:#8492a5;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.teacher-assessment-year strong{display:block;margin-top:3px;color:#17395f;font-size:11px}
.teacher-assessment-wrap{width:min(1120px,100%);margin:0 auto;padding:26px 18px 48px}
.teacher-assessment-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:0 0 17px;margin-bottom:16px;border-bottom:1px solid #dfe7f0}.teacher-assessment-hero h1{margin:5px 0 5px;color:#102e56;font-size:28px;line-height:1.08;letter-spacing:-.035em}.teacher-assessment-hero p{margin:0;max-width:760px;color:#66778e;font-size:11px;line-height:1.5}
.teacher-assessment-context,.teacher-assessment-card,.assessment-context-summary,.assessment-notice{border:1px solid #dfe7f0;border-radius:15px;background:#fff;box-shadow:var(--s-shadow);}
.teacher-assessment-context{padding:17px;margin-bottom:13px}.context-head,.teacher-assessment-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.context-head h2,.teacher-assessment-card-head h2{margin:4px 0 0;color:#17395f;font-size:17px;letter-spacing:-.02em}.context-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:7px;background:#edf4ff;color:#2563eb;font-size:8px;font-weight:850;white-space:nowrap}
.assessment-assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}.assessment-assignment-card{position:relative;display:flex;align-items:center;gap:9px;min-height:68px;padding:11px 11px 11px 12px;border:1px solid #dfe7f0;border-radius:11px;background:#fff;cursor:pointer;transition:.15s ease}.assessment-assignment-card:hover{border-color:#b8d0f4;background:#f8fbff}.assessment-assignment-card.selected{border-color:#77a8ef;background:#f4f8ff;box-shadow:0 0 0 2px rgba(37,99,235,.07)}.assessment-assignment-card input{position:absolute;opacity:0;pointer-events:none}.assessment-assignment-check{width:22px;height:22px;display:grid;place-items:center;flex:0 0 22px;border-radius:7px;background:#eef3f9;color:transparent;font-size:10px;font-weight:900}.assessment-assignment-card.selected .assessment-assignment-check{background:#2563eb;color:#fff}.assessment-assignment-copy{min-width:0}.assessment-assignment-copy strong{display:block;color:#17395f;font-size:10.5px;line-height:1.3}.assessment-assignment-copy small{display:block;margin-top:3px;color:#78879b;font-size:8.5px}
.assessment-filter-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px;margin-top:12px}.assessment-filter-row label{display:block;margin-bottom:5px;color:#34465e;font-size:9.5px;font-weight:800}.assessment-filter-row select{width:100%;min-height:40px;border:1px solid #cbd7e4;border-radius:9px;padding:0 11px;background:#fff;color:#1d304b;font-size:10px}
.assessment-context-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:17px;margin-bottom:13px}.assessment-summary-main h2{margin:5px 0 4px;color:#102e56;font-size:20px;letter-spacing:-.03em}.assessment-summary-main p{margin:0;color:#6d7d92;font-size:9.5px}.assessment-summary-meta{display:grid;grid-template-columns:repeat(3,minmax(75px,1fr));gap:8px}.assessment-summary-meta>div{padding:9px 11px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}.assessment-summary-meta span{display:block;color:#8694a7;font-size:7.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.assessment-summary-meta strong{display:block;margin-top:3px;color:#17395f;font-size:10px}
.assessment-workspace-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);gap:13px}.teacher-assessment-card{padding:17px}.assessment-scope{margin-top:9px;border:1px solid #e0e7ef;border-radius:10px;overflow:hidden}.assessment-scope summary{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 11px;cursor:pointer;list-style:none}.assessment-scope summary::-webkit-details-marker{display:none}.assessment-scope-number{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#eaf2ff;color:#2563eb;font-size:9px;font-weight:900}.assessment-scope-name{color:#17395f;font-size:10px;font-weight:800}.assessment-scope-count{color:#8090a5;font-size:8px;font-weight:800}.assessment-objective-list{padding:0 11px 11px;border-top:1px solid #edf1f5}.assessment-objective{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;padding:9px 0;border-bottom:1px solid #edf1f5}.assessment-objective:last-child{border-bottom:0}.assessment-objective>span{color:#7d8da2;font-size:8px;font-weight:800}.assessment-objective strong{color:#3b4e66;font-size:9.5px;line-height:1.45;font-weight:650}.assessment-student-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #edf1f5}.assessment-student-row:last-child{border-bottom:0}.assessment-student-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#eef4fc;color:#2563eb;font-size:9px;font-weight:900}.assessment-student-row strong{display:block;color:#17395f;font-size:9.5px}.assessment-student-row small{display:block;margin-top:2px;color:#8997a9;font-size:7.5px}.assessment-not-ready{padding:4px 6px;border-radius:6px;background:#f1f4f8;color:#8a97a8;font-size:7px;font-weight:800;white-space:nowrap}.assessment-muted{padding:13px 2px;color:#8492a5;font-size:9px;line-height:1.45}.assessment-empty-structure{display:grid;gap:3px}.assessment-empty-structure strong{color:#50637a}.assessment-notice{display:flex;gap:10px;align-items:flex-start;margin-top:13px;padding:12px 14px}.assessment-notice-icon{width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;border-radius:50%;background:#eaf2ff;color:#2563eb;font-size:9px;font-weight:900}.assessment-notice strong{display:block;color:#17395f;font-size:9.5px}.assessment-notice span{display:block;margin-top:3px;color:#748399;font-size:8.5px;line-height:1.45}
.teacher-assessment-empty{padding:40px 22px;text-align:center;border:1px dashed #ccd8e6;border-radius:14px;background:#fff}.teacher-assessment-empty strong{display:block;color:#17395f;font-size:13px}.teacher-assessment-empty span{display:block;margin-top:5px;color:#8492a5;font-size:9px}
@media (max-width:980px){.assessment-workspace-grid{grid-template-columns:1fr}.assessment-assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-context-summary{grid-template-columns:1fr}.assessment-summary-meta{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:680px){.teacher-assessment-topbar{padding:0 14px}.teacher-assessment-wrap{padding:20px 12px 38px}.teacher-assessment-hero{align-items:flex-start;flex-direction:column}.teacher-assessment-hero h1{font-size:24px}.assessment-assignment-grid{grid-template-columns:1fr}.assessment-filter-row{grid-template-columns:1fr}.assessment-summary-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.assessment-summary-meta>div{padding:8px}.assessment-workspace-grid{grid-template-columns:1fr}.teacher-assessment-card,.teacher-assessment-context,.assessment-context-summary{padding:13px}.assessment-student-row{grid-template-columns:30px minmax(0,1fr);}.assessment-not-ready{grid-column:2;justify-self:start}.teacher-assessment-year{display:none}}
.teacher-dashboard-nav{background:#fff;border-bottom:1px solid var(--s-line);box-shadow:0 1px 3px rgba(14,29,59,.04)}.teacher-dashboard-nav-inner{width:min(1000px,100%);margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:4px}.teacher-dashboard-nav-link{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 11px;color:#64738a;text-decoration:none;font-size:10px;font-weight:800;border-bottom:2px solid transparent}.teacher-dashboard-nav-link:hover{color:#17395f;background:#f7f9fc}.teacher-dashboard-nav-link.active{color:#17395f;border-bottom-color:var(--s-accent)}.teacher-dashboard-nav-link span{font-size:8px;color:#8a96a8;font-weight:700}@media(max-width:680px){.teacher-dashboard-nav-inner{overflow-x:auto;white-space:nowrap}.teacher-dashboard-nav-link{min-height:40px}}
.teacher-dashboard-action{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.teacher-dashboard-action strong{display:block;color:#17395f;font-size:12px}.teacher-dashboard-action small{display:block;margin-top:3px;color:#7a899d;font-size:9px;line-height:1.4}.teacher-dashboard-action .btn{white-space:nowrap}@media(max-width:680px){.teacher-dashboard-action{align-items:flex-start;flex-direction:column}.teacher-dashboard-action .btn{width:100%}}

/* MASTER ROMBEL POLISH v4.2.47 — presentation only */
.rombel-list-card{overflow:hidden}
.rombel-grade-switcher{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:7px;margin:0}
.rombel-grade-switcher .btn{min-height:38px;padding:0 14px}
.rombel-context-box{margin:0;background:#f7faff;border-color:#d9e5f3}
.rombel-context-box .context-title{display:flex;align-items:center;gap:7px}
.rombel-list-heading{align-items:flex-start}
.rombel-list-heading>div:first-child{padding-top:2px}
.rombel-list-heading h2{font-size:16px}
.rombel-actions{gap:12px;align-items:flex-end}
.rombel-action-group{padding:9px 10px 10px;border:1px solid var(--s-line);border-radius:11px;background:#fbfcfe}
.rombel-action-group .action-group-label{padding-left:2px}
.rombel-action-buttons{gap:6px}
.rombel-action-buttons .btn{min-height:36px;padding:0 11px;font-size:10px}
.rombel-action-primary{background:#f8fbff;border-color:#d7e4f4}
.rombel-table-wrap{border-radius:11px}
.rombel-table{min-width:820px!important}
.rombel-table th{padding:10px 11px}
.rombel-table td{padding:10px 11px}
.rombel-table tbody tr{transition:background .15s ease}
.rombel-table .field-wide{min-width:185px;min-height:36px;font-size:10px;padding:0 9px}
.rombel-table .count-pill{min-height:23px;font-size:9px}
.rombel-table .table-actions{gap:5px}
.rombel-table .table-actions .btn{min-height:34px;padding:0 9px;font-size:9.5px}
.rombel-table .table-actions form{display:inline-flex}

@media(max-width:980px){
  .rombel-list-heading{flex-direction:column}
  .rombel-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .rombel-action-group{min-width:0}
}

@media(max-width:640px){
  .rombel-grade-switcher{width:100%;grid-template-columns:repeat(3,1fr);gap:6px}
  .rombel-grade-switcher .btn{min-height:36px;padding:0 6px;font-size:10px}
  .rombel-context-box{padding:11px 12px}
  .rombel-context-box .context-meta{line-height:1.45}
  .rombel-list-card{padding:12px}
  .rombel-list-heading{gap:11px;margin-bottom:12px}
  .rombel-list-heading h2{font-size:15px}
  .rombel-list-heading p{font-size:9.5px}
  .rombel-actions{grid-template-columns:1fr;gap:8px}
  .rombel-action-group{padding:8px}
  .rombel-action-buttons{display:grid;grid-template-columns:repeat(3,1fr)}
  .rombel-action-buttons .btn,.rombel-action-buttons .excel-import,.rombel-action-buttons .excel-import .upload-btn{width:100%;min-width:0}
  .rombel-action-buttons .btn{min-height:35px;padding:0 5px;font-size:9px}
  .rombel-action-primary .rombel-action-buttons{grid-template-columns:1fr}
  .rombel-action-primary .rombel-action-buttons .btn{min-height:38px;font-size:10px}
  .rombel-table-wrap{border:0;overflow:visible;background:transparent}
  .rombel-table{display:block;min-width:0!important;width:100%}
  .rombel-table thead{display:none}
  .rombel-table tbody{display:grid;gap:8px}
  .rombel-table tbody tr{display:grid;gap:0;border:1px solid var(--s-line);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 2px 8px rgba(15,59,130,.035)}
  .rombel-table tbody tr:hover td{background:transparent}
  .rombel-table tbody td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;padding:9px 10px;border-bottom:1px solid #edf1f5;font-size:10px;min-width:0!important}
  .rombel-table tbody td:last-child{border-bottom:0}
  .rombel-table tbody td::before{content:attr(data-label);font-size:8px;font-weight:850;color:#8996a9;text-transform:uppercase;letter-spacing:.06em}
  .rombel-table tbody td[data-label="Nama Rombel"] strong{font-size:11px;color:#173b67}
  .rombel-table tbody td[data-label="Wali Kelas"]{align-items:start}
  .rombel-table .field-wide{width:100%;min-width:0;min-height:35px;font-size:10px}
  .rombel-table .table-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .rombel-table .table-actions .btn,.rombel-table .table-actions form{width:100%;min-width:0}
  .rombel-table .table-actions .btn{min-height:34px;font-size:9px;padding:0 5px}
  .rombel-table tbody td[data-label="Aksi"]{align-items:start}
  .rombel-table tbody td[data-label="Aksi"]::before{padding-top:9px}
  .rombel-table tbody tr:has(td[data-label="Aksi"] .danger) td[data-label="Aksi"] .table-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rombel-table tbody tr:has(td[data-label="Aksi"] .danger) td[data-label="Aksi"] .table-actions form{display:flex}
  .rombel-table tbody td[colspan]{display:block;padding:0;border:0}
  .rombel-table tbody td[colspan]::before{display:none}
}

/* PENILAIAN CONTEXT POLISH v4.2.48 — presentation only */
.assessment-context-path{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:#8795a8;font-size:8px;font-weight:750;margin-bottom:8px}
.assessment-context-path b{color:#b5c0ce;font-size:11px;font-weight:700}
.assessment-context-path strong{color:#2563eb;font-weight:850}
.teacher-assessment-context-block{padding:16px 17px;margin-bottom:13px;border:1px solid #dfe7f0;border-radius:15px;background:#fff;box-shadow:var(--s-shadow)}
.teacher-assessment-context-block .context-head p{margin:3px 0 0;color:#7b899c;font-size:9px}
.assessment-semester-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;max-width:440px}
.assessment-semester-card{display:flex;align-items:center;gap:9px;min-height:50px;padding:8px 10px;border:1px solid #dfe7f0;border-radius:10px;background:#fff;color:#203b5d;text-decoration:none;transition:.15s ease}
.assessment-semester-card:hover{border-color:#b8d0f4;background:#f8fbff}
.assessment-semester-card.selected{border-color:#77a8ef;background:#f4f8ff;box-shadow:0 0 0 2px rgba(37,99,235,.07)}
.assessment-semester-number{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#eef4fc;color:#2563eb;font-size:10px;font-weight:900}
.assessment-semester-card.selected .assessment-semester-number{background:#2563eb;color:#fff}
.assessment-semester-card strong{display:block;font-size:10px;line-height:1.2}
.assessment-semester-card small{display:block;margin-top:2px;color:#8492a5;font-size:8px}
.assessment-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.assessment-type-card{display:flex;align-items:flex-start;gap:9px;min-height:70px;padding:10px;border:1px solid #dfe7f0;border-radius:10px;background:#fff;color:#203b5d;text-decoration:none;transition:.15s ease}
.assessment-type-card:hover{border-color:#b8d0f4;background:#f8fbff}
.assessment-type-card.selected{border-color:#77a8ef;background:#f4f8ff;box-shadow:0 0 0 2px rgba(37,99,235,.07)}
.assessment-type-icon{width:22px;height:22px;display:grid;place-items:center;flex:0 0 22px;border-radius:7px;background:#eef3f9;color:#8492a5;font-size:10px;font-weight:900}
.assessment-type-card.selected .assessment-type-icon{background:#2563eb;color:#fff}
.assessment-type-copy{min-width:0}
.assessment-type-copy strong{display:block;color:#17395f;font-size:9.5px;line-height:1.3}
.assessment-type-copy small{display:block;margin-top:4px;color:#7d8ca0;font-size:7.8px;line-height:1.4}
.assessment-context-current{margin-top:0}
.assessment-current-state{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #dce8df;border-radius:9px;background:#f8fcf9;color:#4d7358;font-size:8.5px;font-weight:850;white-space:nowrap}
.assessment-current-state .status-dot{color:#5b9a6c;width:7px;height:7px}
@media(max-width:980px){.assessment-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.assessment-context-path{gap:4px;font-size:7.5px}.teacher-assessment-context-block{padding:13px}.assessment-semester-grid{max-width:none}.assessment-type-grid{grid-template-columns:1fr}.assessment-type-card{min-height:62px}.assessment-context-current{align-items:start}.assessment-current-state{justify-self:start}}


/* SATRIA v4.2.55 — Teacher Assessment Input */
.assessment-alert{margin:0 0 16px;padding:12px 14px;border:1px solid var(--border,#d9e0ea);border-radius:12px;background:#fff;font-size:14px}
.assessment-alert.success{border-color:#b9dfca}.assessment-alert.error{border-color:#efc2c2}.assessment-alert ul{margin:6px 0 0 18px}
.assessment-builder{margin-top:18px}.assessment-existing-list{display:grid;gap:8px;margin-bottom:14px}
.assessment-existing{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border,#d9e0ea);border-radius:12px;color:inherit;text-decoration:none;background:#fff}
.assessment-existing.selected{border-color:#183b66;background:#f4f8fc}.assessment-existing small{display:block;color:#68778a;margin-top:3px}
.assessment-create{border-top:1px solid var(--border,#d9e0ea);padding-top:14px}.assessment-create summary{cursor:pointer;font-weight:700}
.assessment-create-form{display:grid;gap:16px;margin-top:14px}.assessment-form-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.assessment-create-form label{display:grid;gap:6px;font-size:12px;font-weight:700}.assessment-create-form input,.assessment-create-form select{width:100%;box-sizing:border-box;border:1px solid #cfd8e3;border-radius:9px;padding:9px 10px;font:inherit;font-size:14px;background:#fff}
.assessment-create-form fieldset{border:1px solid var(--border,#d9e0ea);border-radius:12px;padding:12px}.assessment-create-form legend{font-weight:800;font-size:13px;padding:0 5px}
.assessment-scope-select{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assessment-scope-select label{display:flex;align-items:center;gap:8px;border:1px solid #d9e0ea;border-radius:10px;padding:9px;background:#fafbfd}
.assessment-scope-select span{display:grid}.assessment-scope-select small{font-weight:500;color:#68778a}.assessment-help{font-size:12px;color:#68778a;margin:0 0 10px}
.component-builder{display:grid;gap:8px}.component-builder-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.component-builder-row input,.component-builder-row select{min-width:0}
.component-remove{border:0;background:#f5eaea;color:#a33;border-radius:8px;width:36px;height:36px;font-size:20px;cursor:pointer}.component-actions{display:flex;gap:8px;margin-top:9px}.btn-small{padding:8px 11px;font-size:12px}.assessment-save-builder{justify-self:start}
.assessment-score-card{margin-top:18px}.assessment-score-table-wrap{overflow:auto;border:1px solid var(--border,#d9e0ea);border-radius:12px}.assessment-score-table{width:100%;min-width:720px;border-collapse:collapse;font-size:13px}.assessment-score-table th,.assessment-score-table td{border-bottom:1px solid #e5eaf0;padding:9px 8px;text-align:left;vertical-align:middle}.assessment-score-table th{background:#f5f8fb;font-size:11px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.assessment-score-table th small{display:block;font-weight:500;text-transform:none;letter-spacing:0;color:#6c7a8b;margin-top:2px}.assessment-score-table td:first-child{width:38px;text-align:center;color:#6c7a8b}.assessment-score-table td:nth-child(2){min-width:190px}.assessment-score-table td:nth-child(2) small{display:block;color:#718096;margin-top:2px}
.score-input{width:82px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:8px;text-align:center;font:inherit}.score-input:focus{outline:2px solid rgba(24,59,102,.16);border-color:#183b66}
.assessment-score-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px}.assessment-score-actions span{font-size:12px;color:#68778a}
@media(max-width:700px){.assessment-form-grid,.assessment-scope-select{grid-template-columns:1fr}.component-builder-row{grid-template-columns:1fr auto}.component-builder-row select{grid-column:1/2}.assessment-score-actions{align-items:stretch;flex-direction:column}.assessment-save-builder{width:100%}}

/* SATRIA Admin Assessment — lightweight operational UI */
.admin-assessment-page{padding:0 0 38px;color:var(--s-ink)}
.admin-assessment-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px 0 18px}
.admin-assessment-kicker,.admin-assessment-step{display:block;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--s-blue)}
.admin-assessment-hero h1{margin:4px 0 5px;font-size:25px;letter-spacing:-.035em}
.admin-assessment-hero p{max-width:720px;margin:0;color:var(--s-muted);font-size:11px;line-height:1.55}
.admin-assessment-year{min-width:190px;padding:11px 13px;border:1px solid var(--s-line);border-radius:12px;background:var(--s-surface);box-shadow:var(--s-shadow)}
.admin-assessment-year span{display:block;color:var(--s-muted);font-size:8px}.admin-assessment-year strong{display:block;margin-top:3px;font-size:11px}
.admin-assessment-card{margin-top:12px;padding:17px;border:1px solid var(--s-line);border-radius:15px;background:var(--s-surface);box-shadow:var(--s-shadow)}
.admin-assessment-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:13px}
.admin-assessment-card-head h2{margin:3px 0 3px;font-size:16px;letter-spacing:-.02em}.admin-assessment-card-head p{margin:0;color:var(--s-muted);font-size:9px;line-height:1.45}
.admin-assessment-count{padding:6px 9px;border-radius:999px;background:var(--s-surface-3);color:var(--s-navy);font-size:8px;font-weight:800;white-space:nowrap}
.admin-assessment-assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.admin-assignment-option{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--s-line);border-radius:11px;background:#fbfdff;cursor:pointer}.admin-assignment-option.selected{border-color:#9dbce8;background:var(--s-accent-soft)}
.admin-assignment-option input{margin-top:2px}.admin-assignment-option strong{display:block;font-size:9px}.admin-assignment-option small{display:block;margin-top:3px;color:var(--s-muted);font-size:8px;line-height:1.35}
.admin-assessment-filter-row{display:grid;grid-template-columns:180px minmax(220px,1fr);gap:9px;margin-top:11px}.admin-assessment-filter-row label{font-size:8px;font-weight:800;color:var(--s-muted)}.admin-assessment-filter-row select{display:block;width:100%;margin-top:4px;padding:9px;border:1px solid var(--s-line-strong);border-radius:9px;background:#fff;font:inherit;font-size:10px;color:var(--s-ink)}
.admin-assessment-list{display:grid;gap:7px}.admin-assessment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--s-line);border-radius:10px;text-decoration:none;color:inherit;background:#fbfdff}.admin-assessment-item:hover,.admin-assessment-item.selected{border-color:#9dbce8;background:var(--s-accent-soft)}.admin-assessment-item strong{display:block;font-size:10px}.admin-assessment-item small{display:block;margin-top:3px;color:var(--s-muted);font-size:8px}.admin-assessment-item b{font-size:13px;color:var(--s-blue)}
.admin-assessment-inline-empty,.admin-assessment-empty,.admin-assessment-lock-note{padding:13px 14px;border:1px dashed var(--s-line-strong);border-radius:10px;background:#fbfdff}.admin-assessment-empty{margin-top:12px}.admin-assessment-inline-empty strong,.admin-assessment-empty strong,.admin-assessment-lock-note strong{display:block;font-size:10px}.admin-assessment-inline-empty span,.admin-assessment-empty span,.admin-assessment-lock-note span{display:block;margin-top:3px;color:var(--s-muted);font-size:9px;line-height:1.5}
.admin-assessment-lock-note{border-style:solid;background:var(--s-warning-bg);border-color:#f0d9a6}
.admin-status-badge{padding:6px 9px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}.admin-status-draft{background:var(--s-info-bg);color:var(--s-info)}.admin-status-selesai{background:var(--s-success-bg);color:var(--s-success)}.admin-status-terkunci{background:var(--s-warning-bg);color:var(--s-warning)}
.admin-assessment-table-wrap{overflow:auto;border:1px solid var(--s-line);border-radius:10px}.admin-assessment-table{width:100%;border-collapse:collapse;min-width:680px}.admin-assessment-table th,.admin-assessment-table td{padding:8px;border-bottom:1px solid #edf1f5;text-align:left;font-size:9px;vertical-align:middle}.admin-assessment-table th{background:#f8fafc;color:var(--s-muted);font-size:8px;text-transform:uppercase;letter-spacing:.04em}.admin-assessment-table th small{display:block;margin-top:2px;color:var(--s-blue);font-size:7px}.admin-assessment-table td:first-child{width:38px;color:var(--s-muted)}.admin-assessment-table td strong{display:block;font-size:9px}.admin-assessment-table td small{display:block;margin-top:2px;color:var(--s-muted);font-size:7px}
.admin-score-input{width:74px;padding:7px 6px;border:1px solid var(--s-line-strong);border-radius:7px;text-align:center;font:inherit;font-size:10px;color:var(--s-ink);background:#fff}.admin-score-input:focus{outline:2px solid rgba(37,99,235,.16);border-color:#8db0e4}
.admin-assessment-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:11px}.admin-assessment-actions span{color:var(--s-muted);font-size:8px}.admin-assessment-complete{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px;padding:12px;border-top:1px solid var(--s-line);background:#fbfdff}.admin-assessment-complete strong{display:block;font-size:9px}.admin-assessment-complete span{display:block;margin-top:3px;color:var(--s-muted);font-size:8px;line-height:1.45}.admin-assessment-footer-note{margin-top:12px;padding:11px 13px;color:var(--s-muted);font-size:8px;line-height:1.5}.admin-assessment-footer-note strong{color:var(--s-ink)}
.notice.admin-assessment-notice{margin-top:10px}.notice.admin-assessment-notice.error{border-color:#efc2cc;background:var(--s-danger-bg);color:var(--s-danger)}
@media(max-width:900px){.admin-assessment-assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-assessment-hero{flex-direction:column}.admin-assessment-year{width:100%}}
@media(max-width:620px){.admin-assessment-assignment-grid{grid-template-columns:1fr}.admin-assessment-filter-row{grid-template-columns:1fr}.admin-assessment-card{padding:13px}.admin-assessment-actions,.admin-assessment-complete{align-items:flex-start;flex-direction:column}.admin-assessment-hero h1{font-size:21px}}

/* SATRIA Formatif/Harian — TP source workspace */
.admin-assessment-create{margin-top:13px;padding-top:13px;border-top:1px solid var(--s-line)}
.admin-assessment-create summary{cursor:pointer;color:var(--s-navy);font-size:10px;font-weight:900;list-style:none}
.admin-assessment-create summary::-webkit-details-marker{display:none}
.admin-assessment-create-form{display:grid;gap:13px;margin-top:12px}
.admin-assessment-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:9px}
.admin-assessment-form-grid label{display:grid;gap:4px;color:var(--s-muted);font-size:8px;font-weight:800}
.admin-assessment-form-grid input,.admin-formative-row input,.admin-formative-row select{width:100%;box-sizing:border-box;padding:8px 9px;border:1px solid var(--s-line-strong);border-radius:8px;background:#fff;color:var(--s-ink);font:inherit;font-size:9px}
.admin-assessment-create-form fieldset{margin:0;padding:11px;border:1px solid var(--s-line);border-radius:10px}
.admin-assessment-create-form legend{padding:0 4px;color:var(--s-navy);font-size:9px;font-weight:900}
.admin-assessment-help{margin:0 0 9px;color:var(--s-muted);font-size:8px;line-height:1.45}
#formative-component-builder{display:grid;gap:7px}
.admin-formative-row{display:grid;grid-template-columns:180px minmax(0,1fr) 34px;gap:7px;align-items:center}
.admin-formative-row select{min-width:0}
.admin-formative-row .component-remove{width:34px;height:34px}
@media(max-width:620px){.admin-assessment-form-grid{grid-template-columns:1fr}.admin-formative-row{grid-template-columns:1fr 34px}.admin-formative-row select{grid-column:1}.admin-formative-row .component-remove{grid-column:2;grid-row:1/3;align-self:center}}

/* SATRIA Formatif/Harian — LM → TP → Nilai, compact and scalable for many Rombel */
.admin-assessment-filter-row.single{grid-template-columns:180px}
.admin-formative-lm-list{display:grid;gap:8px}
.admin-formative-lm{border:1px solid var(--s-line);border-radius:10px;background:#fbfdff;overflow:hidden}
.admin-formative-lm summary{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none}
.admin-formative-lm summary::-webkit-details-marker{display:none}
.admin-formative-lm-number{color:var(--s-blue);font-size:8px;font-weight:900;text-transform:uppercase}
.admin-formative-lm summary strong{display:block;color:var(--s-navy);font-size:10px}
.admin-formative-lm summary small{display:block;margin-top:2px;color:var(--s-muted);font-size:8px}
.admin-formative-tp-list{border-top:1px solid var(--s-line);padding:0 12px}
.admin-formative-tp{display:grid;grid-template-columns:50px minmax(0,1fr);gap:9px;padding:9px 0;border-bottom:1px solid #edf1f5}
.admin-formative-tp:last-child{border-bottom:0}
.admin-formative-tp b{color:var(--s-muted);font-size:8px}
.admin-formative-tp span{color:var(--s-ink);font-size:9px;line-height:1.45}
.admin-formative-create-head{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:9px;align-items:end}
.admin-formative-create-head>div{grid-column:1/-1;margin-bottom:-2px}
.admin-formative-create-head>div strong{display:block;color:var(--s-navy);font-size:10px}
.admin-formative-create-head>div span{display:block;margin-top:2px;color:var(--s-muted);font-size:8px}
.admin-formative-create-head label{display:grid;gap:4px;color:var(--s-muted);font-size:8px;font-weight:800}
.admin-formative-create-head input{width:100%;box-sizing:border-box;padding:8px 9px;border:1px solid var(--s-line-strong);border-radius:8px;background:#fff;color:var(--s-ink);font:inherit;font-size:9px}
.admin-formative-date{max-width:180px}
.admin-formative-select-list{display:grid;gap:9px}
.admin-formative-select-group{border:1px solid var(--s-line);border-radius:9px;overflow:hidden;background:#fff}
.admin-formative-select-group-title{padding:8px 10px;background:#f8fafc;color:var(--s-navy);font-size:8px;font-weight:900}
.admin-formative-tp-choice{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-top:1px solid #edf1f5;cursor:pointer}
.admin-formative-tp-choice input{margin-top:2px}
.admin-formative-tp-choice strong{display:block;color:var(--s-navy);font-size:8px}
.admin-formative-tp-choice small{display:block;margin-top:2px;color:var(--s-muted);font-size:8px;line-height:1.4}
.admin-formative-value-context{margin-bottom:10px;padding:9px 11px;border:1px solid var(--s-line);border-radius:9px;background:#fbfdff}
.admin-formative-value-context strong{display:block;color:var(--s-navy);font-size:9px}
.admin-formative-value-context span{display:block;margin-top:2px;color:var(--s-muted);font-size:8px}
.admin-formative-score-table{min-width:760px}
.admin-formative-score-table th{vertical-align:top;min-width:120px}
.admin-formative-score-table th strong{display:block;color:var(--s-navy);font-size:8px;text-transform:none;letter-spacing:0}
.admin-formative-score-table th small{display:block;margin-top:4px;max-width:180px;white-space:normal;text-transform:none;line-height:1.35}
@media(max-width:620px){.admin-formative-create-head{grid-template-columns:1fr}.admin-formative-date{max-width:none}.admin-formative-lm summary{grid-template-columns:52px minmax(0,1fr)}}


/* SATRIA v4.2.62 — Formatif/Harian simple operator flow */
.admin-formative-simple .admin-assessment-hero { margin-bottom: 14px; }
.admin-formative-simple .simple-step { padding: 16px 18px; margin-bottom: 12px; }
.admin-formative-simple .simple-label {
    font-size: 13px; font-weight: 800; color: #334155; margin-bottom: 9px;
    text-transform: uppercase; letter-spacing: .04em;
}
.simple-choice-row { display:flex; gap:8px; flex-wrap:wrap; }
.simple-choice {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:38px; padding:8px 15px; border:1px solid #d7dee8; border-radius:9px;
    background:#fff; color:#243247; text-decoration:none; font-weight:700; font-size:14px;
}
.simple-choice:hover, .simple-choice.active { text-decoration:none; border-color:#1e3a5f; background:#1e3a5f; color:#fff; }
.simple-choice-long { justify-content:flex-start; text-align:left; }
.simple-muted { color:#64748b; font-size:14px; }
.simple-grid-two { display:grid; grid-template-columns:minmax(190px,.7fr) minmax(300px,1.3fr); gap:24px; }
.simple-subject-list { display:grid; gap:7px; }
.simple-subject {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:10px 12px; border:1px solid #d7dee8; border-radius:9px;
    color:#243247; text-decoration:none; background:#fff;
}
.simple-subject span { color:#64748b; font-size:12px; text-align:right; }
.simple-subject:hover, .simple-subject.active { text-decoration:none; border-color:#1e3a5f; background:#f3f7fb; }
.simple-subject.active { box-shadow:inset 3px 0 0 #1e3a5f; }
.simple-tp-list { display:grid; gap:7px; }
.simple-tp { width:100%; display:flex; align-items:flex-start; gap:12px; text-align:left;
    padding:11px 13px; border:1px solid #d7dee8; border-radius:9px; background:#fff;
    color:#243247; cursor:pointer; font:inherit;
}
.simple-tp:hover, .simple-tp.active { border-color:#1e3a5f; background:#f3f7fb; }
.simple-tp b { min-width:48px; color:#1e3a5f; }
.simple-tp span { line-height:1.4; }
.simple-input-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:14px; }
.simple-input-head h2 { margin:0 0 3px; font-size:18px; }
.simple-input-head p { margin:0; color:#64748b; font-size:13px; }
.simple-score-table th:last-child, .simple-score-table td:last-child { width:130px; }
.simple-score-table .admin-score-input { width:100px; }
.simple-score-table td small { display:block; color:#64748b; font-size:11px; margin-top:2px; }
.simple-save { display:flex; justify-content:flex-end; margin-top:12px; }
.simple-complete { display:flex; justify-content:flex-end; margin-top:8px; }
@media (max-width: 760px) {
    .simple-grid-two { grid-template-columns:1fr; gap:16px; }
    .simple-input-head { flex-direction:column; }
    .simple-subject { align-items:flex-start; flex-direction:column; gap:3px; }
    .simple-subject span { text-align:left; }
    .admin-formative-simple .simple-step { padding:13px; }
}

/* SATRIA v4.2.63 — Formatif/Harian progressive step header */
.admin-formative-simple .simple-step-title{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.admin-formative-simple .simple-step-title>span{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:7px;background:#eef3f9;color:#1e3a5f;font-size:11px;font-weight:800;flex:0 0 25px}
.admin-formative-simple .simple-step-title .simple-label{margin:0}
@media(max-width:760px){.admin-formative-simple .simple-step-title{gap:8px}}

/* SATRIA v4.2.64 — Formatif/Harian operator workspace, remedial, Excel */
.admin-formative-simple .admin-assessment-hero { align-items:flex-end; }
.admin-formative-helper { margin:7px 0 0; color:#64748b; font-size:13px; line-height:1.45; max-width:760px; }
.formative-context-card { padding:18px; }
.formative-context-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid #edf1f5; }
.formative-context-head h2 { margin:3px 0 0; font-size:18px; color:#102a43; }
.formative-context-summary { min-width:230px; padding:9px 12px; border:1px solid #dce5ef; border-radius:10px; background:#f8fbfe; }
.formative-context-summary strong { display:block; color:#163b68; font-size:13px; }
.formative-context-summary span { display:block; margin-top:3px; color:#64748b; font-size:11px; }
.formative-flow-row { display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:14px; }
.formative-flow-item { min-width:0; }
.formative-flow-label { display:flex; align-items:center; gap:7px; margin-bottom:8px; color:#334155; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.035em; }
.formative-flow-label span { display:inline-flex; align-items:center; justify-content:center; width:23px; height:23px; border-radius:7px; background:#eef3f9; color:#1e3a5f; font-size:10px; }
.simple-choice.compact { min-height:34px; padding:7px 12px; border-radius:8px; font-size:13px; }
.formative-subject-item { margin-top:16px; padding-top:15px; border-top:1px solid #edf1f5; }
.formative-input-card { margin-top:14px; }
.formative-input-kicker { margin-bottom:5px; color:#1e3a5f; font-size:10px; font-weight:900; letter-spacing:.06em; }
.formative-input-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.formative-input-info { display:flex; flex-wrap:wrap; gap:8px; margin:-2px 0 13px; }
.formative-input-info span { padding:6px 9px; border:1px solid #e1e8f0; border-radius:7px; background:#f8fafc; color:#64748b; font-size:11px; }
.formative-input-info strong { color:#334155; }
.formative-upload-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; padding:11px 13px; border:1px solid #dce5ef; border-radius:10px; background:#fbfdff; }
.formative-upload-bar strong { display:block; color:#163b68; font-size:12px; }
.formative-upload-bar span { display:block; margin-top:3px; color:#64748b; font-size:11px; line-height:1.4; }
.formative-upload-form { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.formative-upload-form input[type=file] { width:220px; max-width:100%; padding:7px; border:1px solid #d7dee8; border-radius:8px; background:#fff; font-size:11px; }
.formative-score-table { min-width:760px; }
.formative-score-table th { white-space:nowrap; }
.formative-score-table th:nth-child(1), .formative-score-table td:nth-child(1) { width:42px; min-width:42px; }
.formative-score-table th:nth-child(2), .formative-score-table td:nth-child(2) { width:92px; min-width:92px; }
.formative-score-table th:nth-child(3), .formative-score-table td:nth-child(3) { width:240px; min-width:220px; }
.formative-score-table .admin-score-input { width:88px; }
.formative-score-table .admin-score-input.remedial { border-color:#d9c8a5; }
.formative-effective-cell { font-weight:900; color:#163b68; background:#f8fbfe; }
.formative-download-card { margin-top:14px; padding:15px 18px; }
.formative-download-head strong { display:block; color:#163b68; font-size:13px; }
.formative-download-head span { display:block; margin-top:3px; color:#64748b; font-size:11px; }
.formative-download-form { display:grid; grid-template-columns:1fr 1fr auto; gap:10px; align-items:end; margin-top:12px; }
.formative-download-form label { display:grid; gap:5px; color:#64748b; font-size:10px; font-weight:800; }
.formative-download-form select { width:100%; min-height:37px; padding:7px 10px; border:1px solid #d7dee8; border-radius:8px; background:#fff; color:#243247; font:inherit; font-size:12px; }
@media(max-width:900px){
    .formative-flow-row { grid-template-columns:1fr; }
    .formative-context-summary { min-width:0; width:100%; box-sizing:border-box; }
    .formative-context-head { flex-direction:column; }
    .formative-upload-bar { align-items:flex-start; flex-direction:column; }
    .formative-upload-form { width:100%; }
    .formative-upload-form input[type=file] { flex:1; width:auto; }
    .formative-download-form { grid-template-columns:1fr; }
}


/* SATRIA v4.2.65 — Formatif/Harian polished workspace */
.formative-download-top{margin-top:0;padding:15px 18px}
.formative-download-top-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:11px}
.formative-download-top-head h2{margin:2px 0 2px;font-size:15px;color:#102a43}
.formative-download-top-head p{margin:0;color:#64748b;font-size:11px;line-height:1.4}
.formative-context-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid #dbe5ef;border-radius:999px;background:#f7fafc;color:#163b68;font-size:10px;font-weight:800;white-space:nowrap}
.formative-download-top-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:9px;align-items:end}
.formative-download-top-form label,.formative-select-block label{display:grid;gap:5px;color:#64748b;font-size:10px;font-weight:800}
.formative-download-top-form label>span{font-size:10px}
.formative-download-top-form select,.formative-native-select{width:100%;min-height:39px;padding:8px 11px;border:1px solid #d3ddea;border-radius:9px;background:#fff;color:#20334b;font:inherit;font-size:12px}
.formative-download-top-form select:focus,.formative-native-select:focus{outline:2px solid rgba(37,99,235,.12);border-color:#91add0}
.formative-context-instruction{margin:4px 0 0;color:#64748b;font-size:11px;line-height:1.4}
.formative-grade-section{padding-top:1px}
.formative-grade-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.formative-grade-card{display:flex;flex-direction:column;gap:3px;min-height:65px;padding:12px 14px;border:1px solid #d7e0eb;border-radius:11px;background:#fbfdff;color:#173452;text-decoration:none;transition:.15s ease}
.formative-grade-card strong{font-size:15px}
.formative-grade-card span{font-size:10px;color:#748397}
.formative-grade-card:hover{text-decoration:none;border-color:#9db4cf;background:#f6f9fc;transform:translateY(-1px)}
.formative-grade-card.active{border-color:#1e3a5f;background:#eef4fa;box-shadow:inset 0 0 0 1px #1e3a5f}
.formative-context-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:13px}
.formative-select-block{min-width:0}
.formative-select-block.formative-full-block{margin-top:13px}
.formative-flow-label{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#334155;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.045em}
.formative-flow-label span{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:7px;background:#eef3f9;color:#1e3a5f;font-size:10px}
.formative-auto-form{margin:0}
.formative-select-note{min-height:39px;display:flex;align-items:center;padding:0 11px;border:1px dashed #d7e0eb;border-radius:9px;background:#fbfdff;color:#7b8797;font-size:11px}
.formative-search-select{position:relative}
.formative-search-trigger{width:100%;min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 11px;border:1px solid #d3ddea;border-radius:9px;background:#fff;color:#20334b;font:inherit;font-size:12px;font-weight:650;cursor:pointer}
.formative-search-trigger b{font-size:15px;color:#64748b}
.formative-search-menu{display:none;position:absolute;z-index:30;top:calc(100% + 5px);left:0;right:0;padding:8px;border:1px solid #d3ddea;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(16,42,67,.13)}
.formative-search-select.open .formative-search-menu{display:block}
.formative-search-input{width:100%;box-sizing:border-box;min-height:35px;padding:7px 9px;border:1px solid #dbe3ed;border-radius:8px;outline:none;font:inherit;font-size:12px}
.formative-search-options{display:grid;gap:2px;max-height:210px;overflow:auto;margin-top:6px}
.formative-search-options a{display:block;padding:8px 9px;border-radius:7px;color:#243b55;text-decoration:none;font-size:12px}
.formative-search-options a:hover,.formative-search-options a.selected{background:#eef4fa;color:#163b68;font-weight:750}
.formative-search-empty{display:none;padding:10px 9px;color:#7b8797;font-size:11px}
.formative-input-card{margin-top:12px}
.formative-input-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}
.formative-input-head h2{margin:3px 0 4px;font-size:19px;color:#102a43}
.formative-input-head p{margin:0;color:#64748b;font-size:11px;line-height:1.45;max-width:800px}
.formative-input-context{margin-top:8px;color:#3e5874;font-size:10px;font-weight:700}
.formative-input-status{flex:0 0 auto}
.formative-excel-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:10px 12px;border:1px solid #dce5ef;border-radius:10px;background:#fafdff}
.formative-excel-bar>div:first-child>strong{display:block;color:#163b68;font-size:12px}
.formative-excel-bar>div:first-child>span{display:block;margin-top:3px;color:#64748b;font-size:10px;line-height:1.4}
.formative-excel-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.formative-upload-inline{display:flex;align-items:center;gap:7px;margin:0}
.formative-file-button{position:relative;display:inline-flex;align-items:center;min-height:39px;padding:0 10px;border:1px solid #d3ddea;border-radius:9px;background:#fff;color:#29415e;font-size:11px;font-weight:750;cursor:pointer;overflow:hidden}
.formative-file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.formative-file-button span{pointer-events:none}
.formative-score-table{min-width:760px}
.formative-score-table th:nth-child(1),.formative-score-table td:nth-child(1){width:42px;min-width:42px}
.formative-score-table th:nth-child(2),.formative-score-table td:nth-child(2){width:92px;min-width:92px;white-space:nowrap}
.formative-score-table th:nth-child(3),.formative-score-table td:nth-child(3){width:240px;min-width:220px}
.formative-score-table .admin-score-input{width:88px}
.formative-score-table .formative-effective-cell{min-width:120px;text-align:center}
.formative-score-table .admin-score-input.remedial{border-color:#d9c8a5}
.formative-effective-cell{font-weight:900;color:#163b68;background:#f7fbff}
.formative-score-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}
.formative-score-footer span{color:#64748b;font-size:10px}
.formative-complete-form{display:flex;justify-content:flex-end;margin-top:7px}
.teacher-formative-effective{min-width:105px;text-align:center;font-weight:850;color:#163b68;background:#f7fbff}
.teacher-assessment-page .formative-teacher-score-input{min-width:74px}
@media(max-width:900px){
    .formative-download-top-form{grid-template-columns:1fr 1fr}
    .formative-download-top-form .btn{grid-column:1/-1}
    .formative-excel-bar{align-items:flex-start;flex-direction:column}
    .formative-excel-actions{width:100%;justify-content:flex-start}
}
@media(max-width:700px){
    .formative-download-top-head,.formative-input-head{flex-direction:column;align-items:flex-start}
    .formative-download-top-form{grid-template-columns:1fr}
    .formative-download-top-form .btn{grid-column:auto}
    .formative-grade-cards{gap:7px}
    .formative-grade-card{min-height:58px;padding:10px}
    .formative-grade-card strong{font-size:13px}
    .formative-context-row{grid-template-columns:1fr}
    .formative-upload-inline{width:100%;flex-wrap:wrap}
    .formative-upload-inline .btn{flex:1}
    .formative-score-footer{align-items:flex-start;flex-direction:column}
}

/* v4.2.98 — workflow Rapor: status ringkas + riwayat dalam modal */
.report-workflow-action-card{padding:13px 15px!important}
.report-workflow-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.report-workflow-status{display:inline-flex;align-items:center;gap:8px;color:#29415e;font-size:11px}
.report-workflow-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px}
.report-workflow-status-dot.is-open{background:var(--s-accent)}
.report-workflow-status-dot.is-locked{background:var(--s-success)}
.report-workflow-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.report-workflow-actions form{margin:0}
.report-workflow-history-context{padding:10px 11px;border:1px solid var(--s-line);border-radius:9px;background:#f8fbff;color:#4b5b70;font-size:10px;line-height:1.5}
.report-workflow-history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.report-workflow-history-summary>div{padding:10px;border:1px solid var(--s-line);border-radius:9px;background:#fbfcfe}
.report-workflow-history-summary span{display:block;color:var(--s-muted);font-size:9px}
.report-workflow-history-summary strong{display:block;margin-top:3px;color:#203a5d;font-size:10px}
.report-workflow-history-list{display:grid;gap:8px;margin-top:12px;max-height:330px;overflow:auto}
.report-workflow-history-item{display:flex;gap:10px;align-items:flex-start;padding:10px 11px;border:1px solid var(--s-line);border-radius:9px;background:#fff}
.report-workflow-history-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:8px;background:#edf2f8;color:#52667f;font-weight:900;font-size:11px}
.report-workflow-history-icon.is-confirmed{background:var(--s-success-bg);color:var(--s-success)}
.report-workflow-history-icon.is-unlocked{background:var(--s-warning-bg);color:var(--s-warning)}
.report-workflow-history-icon.is-changed{background:var(--s-info-bg);color:var(--s-info)}
.report-workflow-history-content{min-width:0}
.report-workflow-history-content>strong{display:block;color:#29415e;font-size:10.5px}
.report-workflow-history-meta{margin-top:2px;color:#7a8799;font-size:9px}
.report-workflow-history-detail{margin-top:6px;padding:7px 8px;border-radius:7px;background:#f8fafc;color:#536176;font-size:9px;line-height:1.45}
.report-workflow-history-empty{padding:18px;text-align:center;border:1px dashed var(--s-line-strong);border-radius:9px;color:var(--s-muted);font-size:10px}
.report-workflow-history-footer{align-items:flex-end}
.report-workflow-unlock-form{display:flex;align-items:flex-end;gap:8px;width:min(650px,100%);margin-left:auto}
.report-workflow-reason{min-height:42px;flex:1;resize:vertical;border:1px solid var(--s-line-strong);border-radius:9px;padding:10px 11px;font:inherit;font-size:10px;line-height:1.4;outline:0}
.report-workflow-reason:focus{border-color:#9fc0ea;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.report-workflow-history-close{flex:0 0 auto}
@media(max-width:640px){
    .report-workflow-action-row{align-items:stretch}
    .report-workflow-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
    .report-workflow-actions form,.report-workflow-actions .btn{width:100%}
    .report-workflow-actions form .btn{width:100%}
    .report-workflow-history-summary{grid-template-columns:1fr}
    .report-workflow-history-footer{align-items:stretch}
    .report-workflow-unlock-form{width:100%;margin:0;display:flex;flex-direction:column;align-items:stretch}
    .report-workflow-unlock-form .btn{width:100%}
}
.brand-logo{overflow:hidden;background:#fff!important;border:1px solid rgba(255,255,255,.25)}.brand-logo img{width:100%;height:100%;object-fit:contain;padding:4px}

/* v4.2.100.95 — Canonical Excel download/template button, shared with Leger */
.satria-excel-download-btn{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;min-width:154px;min-height:42px;padding:0 14px;box-sizing:border-box;border:1px solid #157347;border-radius:10px;background:linear-gradient(180deg,#198754 0%,#157347 100%);color:#fff!important;text-decoration:none;box-shadow:0 5px 14px rgba(21,115,71,.18);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;cursor:pointer;appearance:none;font:inherit}
.satria-excel-download-btn:hover{color:#fff!important;filter:brightness(.97);transform:translateY(-1px);box-shadow:0 8px 18px rgba(21,115,71,.24)}
.satria-excel-download-btn:focus-visible{outline:3px solid rgba(25,135,84,.24);outline-offset:2px}
.satria-excel-download-btn:visited{color:#fff!important}
.satria-excel-download-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;flex:0 0 27px}
.satria-excel-download-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.satria-excel-download-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05;min-width:0}
.satria-excel-download-copy strong{font-size:11px;font-weight:800;letter-spacing:.01em;white-space:nowrap;color:#fff!important}
.satria-excel-download-copy small{margin-top:3px;font-size:8.5px;font-weight:700;opacity:.82;letter-spacing:.02em;white-space:nowrap;color:#fff!important}
button.satria-excel-download-btn{margin:0}
@media(max-width:640px){.satria-excel-download-btn{min-width:0;width:100%}}


/* SATRIA UI REFINEMENT v4.2.100 — Sidebar + Dashboard
 * Presentation only. No routes, data contracts, queries, permissions, or workflows changed.
 */
:root{
  --s-font:"Segoe UI Variable","Segoe UI",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}
body{font-family:var(--s-font);font-size:14px;line-height:1.55}
.app-sidebar{background:linear-gradient(180deg,#103c7e 0%,#0d356f 100%);box-shadow:8px 0 24px rgba(15,42,84,.09)}
.sidebar-brand-area{padding:20px 18px 17px}
.brand-copy strong{font-size:17px}
.brand-copy small{font-size:9.5px}
.sidebar-nav{padding:14px 10px 12px}
.nav-group{margin:2px 0}
.sidebar-home,.nav-group summary{min-height:42px;font-size:12.5px;font-weight:700}
.sidebar-home{margin-bottom:5px}
.nav-group[open]>summary{background:rgba(255,255,255,.055);color:#f5f9ff}
.nav-group[open]>summary .nav-caret{color:#b7cff0}
.nav-child{min-height:36px;font-size:12px;font-weight:600}
.nav-subgroup summary{min-height:32px;font-size:11px}
.nav-grandchild{font-size:11.5px}
.nav-caption{font-size:9px}
.nav-children{padding-left:31px}
.app-topbar{height:66px;padding:0 28px}
.topbar-context-year{font-size:10.5px}
.topbar-context-year strong{font-size:12px}
.topbar-user strong{font-size:11.5px}
.workspace{padding:0 28px 46px}
.workspace-content{width:min(1280px,100%)}

/* Dashboard: quieter hierarchy, larger readable text, no extra data/query work. */
.dashboard-hero{
  align-items:center;
  gap:28px;
  padding:24px 26px;
  margin-bottom:20px;
  border-radius:16px;
  background:linear-gradient(135deg,#ffffff 0%,#f9fbff 100%);
  box-shadow:0 5px 20px rgba(15,59,130,.055);
}
.dashboard-hero-copy{flex:1}
.dashboard-kicker{font-size:9.5px;letter-spacing:.12em;font-weight:800}
.dashboard-hero h1{
  margin:6px 0 5px;
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.035em;
  color:#102e56;
}
.dashboard-hero p{font-size:12px;line-height:1.55;color:#607189}
.dashboard-year{
  min-width:210px;
  padding:12px 15px;
  border:1px solid #d9e3ee;
  border-radius:12px;
  background:#f5f8fc;
}
.dashboard-year span{font-size:9px;letter-spacing:.075em}
.dashboard-year strong{font-size:16px;letter-spacing:-.01em}
.dashboard-section-head{margin:5px 0 12px}
.dashboard-section-head-spaced{margin-top:25px}
.dashboard-section-head h2{font-size:17px;line-height:1.25;letter-spacing:-.015em}
.dashboard-stats{gap:14px}
.dashboard-stat{
  min-height:112px;
  padding:18px;
  grid-template-columns:44px minmax(0,1fr) auto;
  border-radius:14px;
  box-shadow:0 2px 11px rgba(15,31,58,.035);
}
.dashboard-stat:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,59,130,.075)}
.dashboard-stat-icon{width:44px;height:44px;border-radius:11px}
.dashboard-stat-icon svg{width:21px;height:21px;stroke-width:1.7}
.dashboard-stat-copy>span{font-size:10.5px;letter-spacing:.055em}
.dashboard-stat-copy strong{font-size:28px;line-height:1.08}
.dashboard-stat-arrow{font-size:17px}
.dashboard-quick-grid{gap:11px}
.dashboard-quick{
  min-height:70px;
  padding:13px 14px;
  gap:12px;
  border-radius:12px;
  box-shadow:0 2px 9px rgba(15,31,58,.028);
}
.dashboard-quick-icon{
  width:36px;height:36px;flex-basis:36px;border-radius:10px;
  font-size:9.5px;
}
.dashboard-quick strong{font-size:12px;line-height:1.3}
.dashboard-quick small{font-size:10px;line-height:1.4}
.dashboard-context-strip{
  margin-top:17px;
  border-radius:12px;
  box-shadow:0 2px 10px rgba(15,31,58,.03);
}
.dashboard-context-strip>div{padding:12px 15px}
.dashboard-context-strip span{font-size:9px}
.dashboard-context-strip strong{font-size:11.5px}
.context-online{display:flex!important;align-items:center;gap:6px}
.context-online i{width:7px;height:7px;border-radius:50%;background:var(--s-success);display:inline-block;box-shadow:0 0 0 3px var(--s-success-bg)}

@media(max-width:900px){
  .app-topbar{padding:0 18px}
  .workspace{padding:0 18px 38px}
  .dashboard-hero{gap:18px}
}
@media(max-width:640px){
  body{font-size:13px}
  .sidebar-brand-area{padding:17px 16px}
  .app-topbar{padding:0 12px}
  .workspace{padding:0 12px 30px}
  .dashboard-hero{padding:18px;gap:14px;border-radius:13px}
  .dashboard-hero h1{font-size:24px}
  .dashboard-hero p{font-size:11px}
  .dashboard-year{width:100%;min-width:0}
  .dashboard-section-head h2{font-size:16px}
  .dashboard-stat{min-height:98px;padding:15px}
  .dashboard-stat-copy strong{font-size:26px}
  .dashboard-quick{min-height:66px}
}


/* ==========================================================================
   SATRIA UI REFINEMENT v4.2.100.125
   Visual system only: typography, shell, navigation, dashboard and risk panel.
   No route, query, model, workflow or database behavior is changed.
   ========================================================================== */
:root{
  --s-font:"Segoe UI Variable","Segoe UI",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --s-sidebar:258px;
  --s-topbar:66px;
}
body{
  font-size:13.5px;
  letter-spacing:-.002em;
}
.app-sidebar{
  background:linear-gradient(180deg,#103f86 0%,#0b326d 100%);
  border-right-color:rgba(255,255,255,.075);
  box-shadow:8px 0 30px rgba(15,42,84,.09);
}
.sidebar-brand-area{
  padding:19px 17px 17px;
  border-bottom-color:rgba(255,255,255,.085);
}
.brand-mark{
  width:42px;height:42px;border-radius:11px;
  background:rgba(255,255,255,.11);
}
.brand-copy strong{font-size:17px}
.brand-copy small{font-size:9.5px;color:#b5c8e3}
.sidebar-nav{padding:14px 9px 12px}
.sidebar-home,.nav-group summary{
  min-height:42px;
  padding:0 10px;
  border-radius:9px;
  font-size:12px;
  font-weight:700;
}
.sidebar-home{margin-bottom:5px}
.sidebar-home.active{
  color:#103e7e;
  box-shadow:0 4px 14px rgba(3,28,67,.13);
}
.nav-icon{width:21px;height:21px;flex-basis:21px}
.nav-icon svg{width:16px;height:16px}
.nav-children{padding-left:30px}
.nav-child{
  min-height:34px;
  padding:0 9px;
  font-size:11.25px;
  border-radius:8px;
}
.nav-subgroup summary{font-size:10.5px}
.nav-status{font-size:7.5px}
.nav-caret,.nav-subcaret{font-size:12px}
.sidebar-bottom{
  padding:10px;
  border-top-color:rgba(255,255,255,.085);
}
.operator-card{
  padding:9px;
  border-radius:10px;
}
.logout-button{
  min-height:38px;
  font-size:10.5px;
}

/* Topbar and page framing */
.app-topbar{
  height:var(--s-topbar);
  padding:0 27px;
  box-shadow:0 1px 10px rgba(15,59,130,.028);
}
.topbar-context-year{
  min-height:36px;
  padding:0 11px;
  border:1px solid #dce5ef;
  border-radius:10px;
  background:#fbfcfe;
  gap:7px;
  font-size:10.5px;
}
.topbar-context-year strong{font-size:12px}
.topbar-user{gap:8px}
.topbar-user small{font-size:8px}
.topbar-user strong{font-size:11px}
.workspace{padding:0 27px 42px}
.workspace-content{width:min(1240px,100%)}
.global-breadcrumb{
  padding:14px 0 11px;
  color:#8491a3;
  font-size:9.5px;
}
.global-breadcrumb strong{color:#34455e;font-weight:750}

/* Shared page typography / surfaces */
.page-intro h1{font-size:26px;letter-spacing:-.035em}
.page-intro p{font-size:11.5px;line-height:1.55}
.section-heading h2{font-size:17px}
.section-heading p{font-size:10.5px}
.card{
  border-radius:13px;
  box-shadow:0 2px 11px rgba(15,31,58,.025);
}
.card:hover{box-shadow:0 4px 16px rgba(15,31,58,.035)}
.btn{
  min-height:38px;
  padding:0 12px;
  border-radius:9px;
  font-size:11px;
  font-weight:750;
}
input,select,textarea{
  border-radius:9px;
  font-size:12px;
}
.badge{font-size:9.5px}

/* Dashboard: calm hierarchy, clear information, less decorative noise */
.dashboard-hero{
  gap:24px;
  padding:22px 24px;
  margin-bottom:19px;
  border-radius:15px;
  box-shadow:0 5px 18px rgba(15,59,130,.045);
}
.dashboard-kicker{
  color:#2864d8;
  font-size:9px;
  letter-spacing:.13em;
}
.dashboard-hero h1{
  font-size:29px;
  margin:5px 0 5px;
  letter-spacing:-.04em;
}
.dashboard-hero p{font-size:11.5px;line-height:1.55}
.dashboard-year{
  min-width:205px;
  padding:11px 14px;
  border-radius:11px;
}
.dashboard-year span{font-size:8.5px}
.dashboard-year strong{font-size:15px}
.dashboard-section-head{margin:4px 0 11px}
.dashboard-section-head-spaced{margin-top:23px}
.dashboard-section-head h2{font-size:16.5px}
.dashboard-stats{gap:12px}
.dashboard-stat{
  min-height:108px;
  padding:16px;
  border-radius:13px;
  box-shadow:0 2px 10px rgba(15,31,58,.03);
}
.dashboard-stat:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,59,130,.06)}
.dashboard-stat-icon{width:42px;height:42px;border-radius:10px}
.dashboard-stat-icon svg{width:20px;height:20px}
.dashboard-stat-copy>span{font-size:10px}
.dashboard-stat-copy strong{font-size:27px}
.dashboard-stat-arrow{font-size:16px}
.dashboard-quick-grid{gap:9px}
.dashboard-quick{
  min-height:68px;
  padding:12px 13px;
  gap:11px;
  border-radius:11px;
  box-shadow:0 2px 8px rgba(15,31,58,.022);
}
.dashboard-quick:hover{transform:translateY(-1px);box-shadow:0 6px 15px rgba(15,59,130,.05)}
.dashboard-quick-icon{
  width:34px;height:34px;flex-basis:34px;
  border-radius:9px;
}
.dashboard-quick-icon svg{width:17px;height:17px;stroke-width:1.75}
.dashboard-quick strong{font-size:11.5px}
.dashboard-quick small{font-size:9.5px}
.dashboard-context-strip{
  margin-top:15px;
  border-radius:11px;
  box-shadow:0 2px 9px rgba(15,31,58,.025);
}
.dashboard-context-strip>div{padding:11px 14px}
.dashboard-context-strip span{font-size:8.5px}
.dashboard-context-strip strong{font-size:11px}

/* Administrasi Berisiko: retain warning semantics, but present it as a deliberate
   dashboard-like control instead of a loose red menu label. */
.nav-risk-panel{
  margin:11px 2px 2px;
  padding:9px;
  border:1px solid rgba(255,154,170,.22);
  border-radius:11px;
  background:linear-gradient(180deg,rgba(145,29,55,.18),rgba(86,20,39,.12));
}
.nav-risk-head{
  display:flex;
  align-items:center;
  gap:8px;
  padding:2px 2px 8px;
}
.nav-risk-icon{
  width:27px;height:27px;flex:0 0 27px;
  display:grid;place-items:center;
  border-radius:8px;
  color:#ffd1d8;
  background:rgba(255,255,255,.07);
}
.nav-risk-icon svg{width:15px;height:15px}
.nav-risk-head strong{
  display:block;
  color:#ffe3e7;
  font-size:10.5px;
  font-weight:800;
  line-height:1.25;
}
.nav-risk-head small{
  display:block;
  margin-top:2px;
  color:#d7aab3;
  font-size:8px;
  line-height:1.3;
}
.nav-risk-action{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:39px;
  padding:0 8px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:8px;
  background:rgba(255,255,255,.035);
  color:#ffd0d7!important;
  text-decoration:none;
}
.nav-risk-action:hover{
  background:rgba(255,255,255,.075);
  border-color:rgba(255,173,185,.2);
  color:#fff!important;
}
.nav-risk-action-icon{
  width:24px;height:24px;flex:0 0 24px;
  display:grid;place-items:center;
  border-radius:7px;
  background:rgba(199,53,82,.18);
  color:#ffb3bf;
}
.nav-risk-action-icon svg{width:13px;height:13px}
.nav-risk-action-copy{min-width:0}
.nav-risk-action-copy strong{
  display:block;
  font-size:10px;
  line-height:1.2;
}
.nav-risk-action-copy small{
  display:block;
  margin-top:2px;
  color:#c99aa4;
  font-size:7.8px;
  line-height:1.25;
}
.nav-risk-action-arrow{
  margin-left:auto;
  color:#d28e9a;
  font-size:13px;
}

/* Risk page: align its warning language with the new shell without changing content. */
.reset-page{max-width:1080px}
.reset-hero{
  padding:19px 21px;
  border-radius:14px;
  box-shadow:0 7px 20px rgba(15,31,58,.08);
}
.reset-hero h1{font-size:22px}
.reset-warning{
  border-radius:10px;
  box-shadow:0 1px 5px rgba(199,53,82,.025);
}
.reset-card{
  border-radius:12px;
  box-shadow:0 2px 9px rgba(15,31,58,.022);
}
.reset-card-head h2{font-size:15.5px}
.reset-sequence-item{border-radius:10px}
.reset-modal,.modal{border-radius:13px}

/* Responsive */
@media(max-width:900px){
  :root{--s-sidebar:258px}
  .app-topbar{padding:0 18px}
  .workspace{padding:0 18px 38px}
  .dashboard-hero{gap:18px}
}
@media(max-width:640px){
  .sidebar-brand-area{padding:17px 16px}
  .app-topbar{padding:0 12px}
  .workspace{padding:0 12px 30px}
  .dashboard-hero{padding:17px;border-radius:13px}
  .dashboard-hero h1{font-size:24px}
  .dashboard-hero p{font-size:11px}
  .dashboard-year{width:100%;min-width:0}
  .dashboard-stat{min-height:96px;padding:14px}
  .dashboard-stat-copy strong{font-size:25px}
  .nav-risk-panel{margin-left:0;margin-right:0}
}


/* =========================================================
   SATRIA v4.2.100.126 — PRODUCT UI/UX REDESIGN
   Visual/presentation layer only.
   Existing routes, controllers, services, data contracts,
   authorization and academic workflows remain untouched.
   ========================================================= */
.satria-redesign{
    --satria-bg:#f4f7fb;--satria-surface:#fff;--satria-surface-soft:#f8fafc;
    --satria-line:#e5eaf1;--satria-line-strong:#d5dde8;--satria-text:#142033;
    --satria-text-soft:#536174;--satria-text-muted:#7b8798;--satria-primary:#174ea6;
    --satria-primary-2:#2563c7;--satria-primary-soft:#edf4ff;--satria-success:#16764a;
    --satria-warning:#a86608;--satria-warning-soft:#fff7e8;--satria-danger:#b4233c;
    --satria-danger-soft:#fff0f3;--satria-sidebar:#fbfcfe;--satria-sidebar-active:#eaf2ff;
    --satria-radius:12px;--satria-radius-lg:16px;
    --satria-shadow:0 1px 2px rgba(16,32,51,.03),0 8px 24px rgba(16,32,51,.045);
    --satria-shadow-hover:0 10px 30px rgba(23,78,166,.10);--satria-sidebar-width:272px;
    --satria-topbar-height:70px;
    font-family:"Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
.satria-redesign .app-sidebar{width:var(--satria-sidebar-width);background:var(--satria-sidebar);color:var(--satria-text-soft);border-right:1px solid var(--satria-line);box-shadow:8px 0 28px rgba(16,32,51,.035)}
.satria-redesign .sidebar-brand-area{padding:20px 18px 18px;border-bottom:1px solid var(--satria-line)}
.satria-redesign .satria-brand{gap:12px;align-items:center}
.satria-redesign .brand-mark{width:40px;height:40px;min-width:40px;border-radius:11px;background:var(--satria-primary-soft);color:var(--satria-primary);border:1px solid #d8e6fb;box-shadow:none}
.satria-redesign .brand-mark.brand-logo{background:#fff;padding:5px}
.satria-redesign .brand-copy{gap:1px}
.satria-redesign .brand-copy strong{color:var(--satria-text);font-size:15px;letter-spacing:.02em}
.satria-redesign .brand-copy small{color:var(--satria-text-muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.satria-redesign .brand-copy em{display:block;max-width:182px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--satria-text-soft);font-size:11px;font-style:normal;font-weight:500;margin-top:3px}
.satria-redesign .sidebar-nav{padding:14px 12px 12px}
.satria-redesign .sidebar-home,.satria-redesign .nav-group summary{min-height:42px;border:1px solid transparent;border-radius:10px;color:#59677a;font-size:13px;font-weight:650;transition:background .16s ease,border-color .16s ease,color .16s ease}
.satria-redesign .sidebar-home{padding:0 12px}
.satria-redesign .sidebar-home:hover,.satria-redesign .nav-group summary:hover{background:#f1f5fa;color:var(--satria-text)}
.satria-redesign .sidebar-home.active{background:var(--satria-sidebar-active);border-color:#dce9fb;color:var(--satria-primary);box-shadow:none}
.satria-redesign .nav-icon{color:#7a8798}
.satria-redesign .active .nav-icon,.satria-redesign .nav-group[open] summary .nav-icon{color:var(--satria-primary)}
.satria-redesign .nav-group{margin-top:4px}
.satria-redesign .nav-group[open] summary{color:var(--satria-text);background:#f7f9fc}
.satria-redesign .nav-caret{color:#9aa6b6}
.satria-redesign .nav-children{margin:3px 0 4px 10px;padding:3px 0 3px 12px;border-left:1px solid var(--satria-line)}
.satria-redesign .nav-child{min-height:36px;padding:0 10px 0 11px;border-radius:8px;color:#667487;font-size:12.5px;font-weight:500}
.satria-redesign .nav-child:hover{background:#f5f8fc;color:var(--satria-text)}
.satria-redesign .nav-child.active{background:var(--satria-primary-soft);color:var(--satria-primary);font-weight:700}
.satria-redesign .child-marker{width:5px;height:5px;border-radius:50%;background:#b9c3d0}
.satria-redesign .nav-child.active .child-marker{width:6px;height:6px;background:var(--satria-primary)}
.satria-redesign .nav-subgroup summary{min-height:34px;color:#7a8798;font-size:11.5px;font-weight:700}
.satria-redesign .nav-subchildren{padding-left:4px}
.satria-redesign .nav-risk-panel{margin:14px 0 4px;padding:12px;background:var(--satria-danger-soft);border:1px solid #f4d5dc;border-radius:12px}
.satria-redesign .nav-risk-head{gap:9px;color:var(--satria-danger)}
.satria-redesign .nav-risk-head strong{font-size:11.5px}.satria-redesign .nav-risk-head small{color:#9b5a67;font-size:10px}
.satria-redesign .nav-risk-icon{width:28px;height:28px;border-radius:8px;background:#fff;border:1px solid #f0cbd3}
.satria-redesign .nav-risk-action{min-height:38px;margin-top:9px;padding:8px 9px;border-radius:9px;background:#fff;border:1px solid #f1d6dc;color:var(--satria-danger)}
.satria-redesign .nav-risk-action:hover{background:#fff7f8;border-color:#eebbc6}
.satria-redesign .nav-risk-action-copy strong{font-size:11.5px}.satria-redesign .nav-risk-action-copy small{font-size:9.5px;color:#9b5a67}
.satria-redesign .sidebar-bottom{padding:12px;border-top:1px solid var(--satria-line);background:#fff}
.satria-redesign .operator-card{padding:9px 10px;border:1px solid var(--satria-line);background:#f8fafc;border-radius:10px}
.satria-redesign .operator-avatar,.satria-redesign .topbar-avatar{background:var(--satria-primary-soft);color:var(--satria-primary);border:1px solid #d8e6fb;font-weight:800}
.satria-redesign .operator-copy small{display:block;color:var(--satria-text-muted);font-size:9px;line-height:1.2;margin-bottom:2px}
.satria-redesign .operator-copy strong{color:var(--satria-text);font-size:11.5px}
.satria-redesign .operator-status{width:7px;height:7px;background:#27a565;box-shadow:0 0 0 3px #e6f6ee}
.satria-redesign .logout-button{margin-top:7px;min-height:36px;border:1px solid var(--satria-line);border-radius:9px;color:#687689;background:#fff;font-size:11.5px}
.satria-redesign .logout-button:hover{background:#f7f9fc;color:var(--satria-text);border-color:var(--satria-line-strong)}
.satria-redesign .app-main{margin-left:var(--satria-sidebar-width);background:var(--satria-bg)}
.satria-redesign .app-topbar{height:var(--satria-topbar-height);padding:0 26px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--satria-line);box-shadow:none}
.satria-redesign .topbar-left,.satria-redesign .topbar-right{gap:14px}
.satria-redesign .menu-toggle{width:38px;height:38px;border:1px solid var(--satria-line);border-radius:9px;background:#fff;color:#647286}
.satria-redesign .menu-toggle:hover{background:#f7f9fc;border-color:var(--satria-line-strong)}
.satria-redesign .topbar-page-context{display:flex;align-items:center;gap:8px;min-width:0}
.satria-redesign .topbar-context-label{color:var(--satria-primary);font-size:10px;font-weight:800;letter-spacing:.12em}
.satria-redesign .topbar-page-context strong{color:var(--satria-text);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.satria-redesign .topbar-context-year{display:flex;align-items:center;gap:9px;padding:7px 11px;border:1px solid var(--satria-line);border-radius:10px;background:#fbfcfe}
.satria-redesign .topbar-year-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;color:var(--satria-primary);background:var(--satria-primary-soft)}
.satria-redesign .topbar-year-icon svg{width:15px;height:15px}
.satria-redesign .topbar-context-year small,.satria-redesign .topbar-user small{display:block;color:var(--satria-text-muted);font-size:9px;line-height:1.15}
.satria-redesign .topbar-context-year strong{display:block;margin-top:2px;color:var(--satria-text);font-size:11.5px}
.satria-redesign .topbar-user{padding-left:13px;border-left:1px solid var(--satria-line)}
.satria-redesign .topbar-user>span:last-child strong{color:var(--satria-text);font-size:11.5px}
.satria-redesign .workspace{background:var(--satria-bg)}
.satria-redesign .workspace-content{width:100%;max-width:1500px;margin:0 auto;padding:0 28px 42px}
.satria-redesign .workspace-heading{padding:17px 0 14px}
.satria-redesign .global-breadcrumb{display:flex;align-items:center;gap:8px;min-height:22px;margin:0;padding:0;color:var(--satria-text-muted);font-size:11px}
.satria-redesign .global-breadcrumb a{color:#738096;font-weight:600}.satria-redesign .global-breadcrumb a:hover{color:var(--satria-primary)}
.satria-redesign .global-breadcrumb strong{color:var(--satria-text-soft);font-weight:700}
.satria-redesign .page-intro{margin-bottom:20px;padding:0;border:0;background:transparent}
.satria-redesign .page-eyebrow,.satria-redesign .dashboard-overline{color:var(--satria-primary);font-size:9.5px;font-weight:800;letter-spacing:.12em}
.satria-redesign .page-intro h1{margin-top:5px;color:var(--satria-text);font-size:26px;line-height:1.15;letter-spacing:-.025em}
.satria-redesign .page-intro p{max-width:760px;margin-top:7px;color:var(--satria-text-soft);font-size:13px}
.satria-redesign .page-context{color:var(--satria-text-muted);font-size:11px}
.satria-redesign .card{border:1px solid var(--satria-line);border-radius:var(--satria-radius);background:var(--satria-surface);box-shadow:var(--satria-shadow)}
.satria-redesign .card>.head{min-height:58px;padding:15px 18px;border-bottom:1px solid var(--satria-line)}
.satria-redesign .head h2,.satria-redesign .card>h2{color:var(--satria-text);font-size:15px}.satria-redesign .muted{color:var(--satria-text-muted)}
.satria-redesign .btn{min-height:36px;padding:8px 13px;border-radius:8px;border:1px solid var(--satria-line-strong);box-shadow:none;font-size:12px;font-weight:700}
.satria-redesign .btn.primary{color:#fff;background:var(--satria-primary);border-color:var(--satria-primary)}
.satria-redesign .btn.primary:hover{background:#12438e;border-color:#12438e;box-shadow:0 5px 14px rgba(23,78,166,.16)}
.satria-redesign .btn.danger{background:var(--satria-danger);border-color:var(--satria-danger)}
.satria-redesign .badge,.satria-redesign .status-badge{border-radius:999px;font-size:10px;font-weight:750}
.satria-redesign .notice{border-radius:11px;border:1px solid #dbe5f1;box-shadow:none}
.satria-redesign .field label,.satria-redesign .form-group label,.satria-redesign .card form>label{color:#46556a;font-size:11px;font-weight:700}
.satria-redesign .card form input:not([type="checkbox"]):not([type="radio"]),.satria-redesign .card form select,.satria-redesign .card form textarea,.satria-redesign .field input,.satria-redesign .field select,.satria-redesign .field textarea,.satria-redesign .form-group input,.satria-redesign .form-group select,.satria-redesign .form-group textarea,.satria-redesign .filter-grid input,.satria-redesign .filter-grid select,.satria-redesign .filter-grid textarea{min-height:38px;border:1px solid #d9e0e9;border-radius:8px;background:#fff;color:var(--satria-text);font-size:12px;box-shadow:none}
.satria-redesign .card form input:not([type="checkbox"]):focus,.satria-redesign .card form select:focus,.satria-redesign .card form textarea:focus,.satria-redesign .field input:focus,.satria-redesign .field select:focus,.satria-redesign .field textarea:focus,.satria-redesign .form-group input:focus,.satria-redesign .form-group select:focus,.satria-redesign .form-group textarea:focus{border-color:#8eb0df;box-shadow:0 0 0 3px rgba(37,99,235,.08);outline:0}
.satria-redesign .table-wrap,.satria-redesign .member-table,.satria-redesign .group-table{border:1px solid var(--satria-line);border-radius:11px;background:#fff;box-shadow:none}
.satria-redesign .table-wrap th,.satria-redesign .member-table th,.satria-redesign .group-table th,.satria-redesign .card>table th{color:#59687c;background:#f7f9fc;border-bottom:1px solid var(--satria-line);font-size:10.5px;font-weight:800;letter-spacing:.015em}
.satria-redesign .table-wrap td,.satria-redesign .member-table td,.satria-redesign .group-table td,.satria-redesign .card>table td{color:#334155;font-size:11.5px;border-bottom:1px solid #edf0f4}
.satria-redesign .table-wrap tbody tr:hover td,.satria-redesign .member-table tbody tr:hover td,.satria-redesign .group-table tbody tr:hover td,.satria-redesign .card>table tbody tr:hover td{background:#fbfcfe}
.satria-redesign .empty-box{border:1px dashed #cfd8e4;border-radius:10px;background:#fafbfd;color:var(--satria-text-muted)}
.satria-redesign .toast{border:1px solid var(--satria-line);border-radius:11px;box-shadow:0 14px 35px rgba(16,32,51,.12)}
.satria-redesign .dashboard-redesign-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:stretch;margin:2px 0 22px;padding:25px;border:1px solid #dfe7f1;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#f9fbfe 72%,#f2f7ff 100%);box-shadow:var(--satria-shadow)}
.satria-redesign .dashboard-hero-main{display:flex;flex-direction:column;justify-content:center;min-height:136px}
.satria-redesign .dashboard-hero-main h1{margin:6px 0 7px;color:var(--satria-text);font-size:28px;line-height:1.12;letter-spacing:-.035em}
.satria-redesign .dashboard-hero-main p{max-width:690px;margin:0;color:var(--satria-text-soft);font-size:13px;line-height:1.65}
.satria-redesign .dashboard-active-context{display:flex;flex-direction:column;justify-content:center;padding:18px 19px;border:1px solid #dbe5f2;border-radius:12px;background:#fff}
.satria-redesign .context-label{color:var(--satria-text-muted);font-size:9px;font-weight:800;letter-spacing:.1em}
.satria-redesign .dashboard-active-context>strong{margin:5px 0 10px;color:var(--satria-text);font-size:21px;letter-spacing:-.02em}
.satria-redesign .context-state{display:inline-flex;align-items:center;gap:7px;width:max-content;color:var(--satria-text-soft);font-size:10.5px;font-weight:700}
.satria-redesign .context-state i{width:7px;height:7px;border-radius:50%;background:#9aa6b6}
.satria-redesign .context-state.is-ready{color:var(--satria-success)}.satria-redesign .context-state.is-ready i{background:#25a568;box-shadow:0 0 0 3px #e7f7ef}
.satria-redesign .context-state.is-warning{color:var(--satria-warning)}.satria-redesign .context-state.is-warning i{background:#d38a1e}
.satria-redesign .dashboard-alert{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;margin:-4px 0 22px;padding:12px 14px;border:1px solid #f0dfba;border-radius:11px;background:#fffaf0}
.satria-redesign .dashboard-alert-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fff0cf;color:var(--satria-warning);font-weight:900}
.satria-redesign .dashboard-alert strong{display:block;color:#6b4b14;font-size:12px}.satria-redesign .dashboard-alert span{display:block;margin-top:2px;color:#8a6c3c;font-size:10.5px}
.satria-redesign .dashboard-block{min-width:0;padding:20px;border:1px solid var(--satria-line);border-radius:14px;background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .dashboard-block-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:15px}
.satria-redesign .dashboard-block-head h2,.satria-redesign .dashboard-context-card h2{margin:4px 0 0;color:var(--satria-text);font-size:15px;line-height:1.25}
.satria-redesign .dashboard-head-note{color:var(--satria-text-muted);font-size:10px}
.satria-redesign .dashboard-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.satria-redesign .dashboard-stat-card{position:relative;display:flex;align-items:flex-start;gap:11px;min-width:0;min-height:112px;padding:15px;border:1px solid var(--satria-line);border-radius:11px;background:#fff;color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.satria-redesign .dashboard-stat-card:hover{transform:translateY(-1px);border-color:#cbd9ec;box-shadow:var(--satria-shadow-hover)}
.satria-redesign .dashboard-stat-card.is-neutral{background:#fafbfd}
.satria-redesign .dashboard-stat-icon{display:grid;place-items:center;width:34px;height:34px;min-width:34px;border-radius:9px;color:var(--satria-primary);background:var(--satria-primary-soft)}
.satria-redesign .dashboard-stat-icon svg{width:17px;height:17px}
.satria-redesign .dashboard-stat-text{display:block;min-width:0;padding-right:13px}
.satria-redesign .dashboard-stat-text small{display:block;color:var(--satria-text-muted);font-size:9.5px;font-weight:700}
.satria-redesign .dashboard-stat-text strong{display:block;margin-top:4px;color:var(--satria-text);font-size:25px;line-height:1.05;letter-spacing:-.035em}
.satria-redesign .dashboard-stat-text strong.dashboard-stat-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;letter-spacing:-.01em}
.satria-redesign .dashboard-stat-text em{display:block;margin-top:6px;color:#8b97a7;font-size:9.5px;font-style:normal}
.satria-redesign .dashboard-stat-link{position:absolute;right:12px;top:12px;color:#91a0b2;font-size:14px}
.satria-redesign .dashboard-work-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:14px;margin-top:14px}
.satria-redesign .dashboard-quick-block{min-height:100%}
.satria-redesign .dashboard-quick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.satria-redesign .dashboard-quick-item{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:10px;min-height:64px;padding:10px;border:1px solid #e7ebf1;border-radius:10px;background:#fbfcfe;text-decoration:none;color:inherit;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.satria-redesign .dashboard-quick-item:hover{background:#fff;border-color:#cddbeb;transform:translateY(-1px)}
.satria-redesign .quick-item-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#edf4ff;color:var(--satria-primary)}
.satria-redesign .quick-item-icon svg{width:15px;height:15px}
.satria-redesign .dashboard-quick-item strong{display:block;color:var(--satria-text);font-size:11px}
.satria-redesign .dashboard-quick-item small{display:block;margin-top:3px;color:var(--satria-text-muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.satria-redesign .dashboard-quick-item b{color:#98a5b5;font-size:12px}
.satria-redesign .dashboard-context-card{padding:20px;border:1px solid #dbe4ef;border-radius:14px;background:#f9fbfe}
.satria-redesign .dashboard-context-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e6ebf2}
.satria-redesign .dashboard-context-row:first-of-type{margin-top:7px}.satria-redesign .dashboard-context-row:last-child{border-bottom:0;padding-bottom:2px}
.satria-redesign .dashboard-context-row span{color:var(--satria-text-muted);font-size:10px}
.satria-redesign .dashboard-context-row>strong{max-width:62%;color:var(--satria-text);font-size:10.5px;text-align:right}
.satria-redesign .dashboard-context-row .context-state{font-size:10px}
@media (max-width:1200px){.satria-redesign .dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.satria-redesign .dashboard-work-grid{grid-template-columns:1fr}}
@media (max-width:900px){.satria-redesign .app-sidebar{transform:translateX(-100%);box-shadow:none}.satria-redesign.sidebar-open .app-sidebar{transform:translateX(0);box-shadow:18px 0 45px rgba(16,32,51,.16)}.satria-redesign .app-main{margin-left:0}.satria-redesign .sidebar-backdrop{background:rgba(16,32,51,.38);backdrop-filter:blur(2px)}.satria-redesign.sidebar-open .sidebar-backdrop{display:block}.satria-redesign .app-topbar{padding:0 16px}.satria-redesign .topbar-page-context{display:none}.satria-redesign .workspace-content{padding:0 16px 30px}.satria-redesign .dashboard-redesign-hero{grid-template-columns:1fr;padding:20px}.satria-redesign .dashboard-active-context{min-height:0}}
@media (max-width:640px){.satria-redesign .topbar-context-year{padding:6px 8px}.satria-redesign .topbar-context-year>span:last-child{display:none}.satria-redesign .topbar-user{display:none}.satria-redesign .dashboard-hero-main h1{font-size:24px}.satria-redesign .dashboard-stat-grid,.satria-redesign .dashboard-quick-list{grid-template-columns:1fr}.satria-redesign .dashboard-block{padding:15px}.satria-redesign .dashboard-block-head{align-items:flex-start}.satria-redesign .dashboard-head-note{display:none}.satria-redesign .dashboard-alert{grid-template-columns:30px 1fr}.satria-redesign .dashboard-alert .btn{grid-column:2}}


/* ========================================================================
   SATRIA v4.2.100.127 — VISUAL REBUILD
   Presentation layer only. No route/controller/service/model/database logic.
   Purpose: replace the previous pale/generic treatment with a stronger
   SATRIA identity while keeping existing markup and behavior intact.
   ======================================================================== */
.satria-redesign{
  --satria-bg:#edf3f9;
  --satria-surface:#ffffff;
  --satria-surface-soft:#f6f9fd;
  --satria-line:#d9e2ec;
  --satria-line-strong:#c5d2e0;
  --satria-text:#12243d;
  --satria-text-soft:#50627a;
  --satria-text-muted:#78879a;
  --satria-primary:#1769d2;
  --satria-primary-2:#0e4fa9;
  --satria-primary-soft:#e8f1ff;
  --satria-success:#16834f;
  --satria-warning:#b36a08;
  --satria-danger:#c52f4c;
  --satria-danger-soft:#fff0f3;
  --satria-sidebar:#082b5c;
  --satria-sidebar-2:#0c3e7d;
  --satria-radius:14px;
  --satria-radius-lg:18px;
  --satria-shadow:0 2px 5px rgba(15,37,65,.035),0 12px 30px rgba(15,37,65,.055);
  --satria-shadow-hover:0 12px 32px rgba(16,65,125,.13);
}

/* ---- GLOBAL CANVAS ----------------------------------------------------- */
.satria-redesign .app-main{
  position:relative;
  margin-left:var(--satria-sidebar-width);
  min-height:100dvh;
  background:
    radial-gradient(circle at 92% 0%,rgba(34,111,211,.075),transparent 28rem),
    linear-gradient(180deg,#edf3f9 0%,#f4f7fb 42%,#edf3f9 100%);
}
.satria-redesign .app-main::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  z-index:80;
  background:linear-gradient(90deg,#0b376f 0%,#1769d2 52%,#47a7e8 100%);
  pointer-events:none;
}

/* ---- SIDEBAR: primary SATRIA identity -------------------------------- */
.satria-redesign .app-sidebar{
  width:var(--satria-sidebar-width);
  background:
    radial-gradient(circle at 85% 8%,rgba(70,151,236,.22),transparent 16rem),
    linear-gradient(180deg,var(--satria-sidebar-2) 0%,var(--satria-sidebar) 72%,#061f43 100%);
  color:#dceaff;
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:10px 0 34px rgba(3,25,54,.18);
}
.satria-redesign .app-sidebar::after{
  content:"";
  position:absolute;
  right:0;
  top:88px;
  width:1px;
  height:calc(100% - 176px);
  background:linear-gradient(180deg,rgba(110,190,255,.55),transparent 35%,transparent 70%,rgba(110,190,255,.12));
  pointer-events:none;
}
.satria-redesign .sidebar-brand-area{
  position:relative;
  padding:21px 18px 19px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(0,16,42,.12);
}
.satria-redesign .satria-brand{gap:12px}
.satria-redesign .brand-mark{
  width:43px;height:43px;min-width:43px;border-radius:13px;
  background:linear-gradient(145deg,#3c93ed,#1260c6);
  color:#fff;border:1px solid rgba(255,255,255,.18);
  box-shadow:0 8px 22px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.18);
}
.satria-redesign .brand-mark.brand-logo{background:#fff;padding:5px}
.satria-redesign .brand-copy strong{color:#fff;font-size:17px;letter-spacing:.055em}
.satria-redesign .brand-copy small{color:#a9c9ec;font-size:9px;letter-spacing:.11em}
.satria-redesign .brand-copy em{color:#d7e7f9;font-size:10px;margin-top:4px}
.satria-redesign .sidebar-nav{padding:15px 10px 13px}
.satria-redesign .sidebar-home,.satria-redesign .nav-group summary{
  min-height:44px;
  color:#c4d6ed;
  border:1px solid transparent;
  border-radius:11px;
  font-size:12.5px;
  font-weight:700;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.satria-redesign .sidebar-home:hover,.satria-redesign .nav-group summary:hover{
  color:#fff;background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.07);
}
.satria-redesign .sidebar-home.active{
  color:#fff;
  background:linear-gradient(90deg,rgba(70,151,236,.32),rgba(47,119,206,.16));
  border-color:rgba(116,187,255,.25);
  box-shadow:inset 3px 0 0 #63b5ff,0 8px 20px rgba(0,20,49,.14);
}
.satria-redesign .nav-icon{color:#83a9d3}
.satria-redesign .active .nav-icon,.satria-redesign .nav-group[open] summary .nav-icon{color:#65b5ff}
.satria-redesign .nav-group{margin-top:4px}
.satria-redesign .nav-group[open] summary{
  color:#fff;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.055);
}
.satria-redesign .nav-caret{color:#789ac1}
.satria-redesign .nav-children{
  margin:3px 0 4px 10px;
  padding:4px 0 4px 13px;
  border-left:1px solid rgba(145,192,239,.18);
}
.satria-redesign .nav-child{
  min-height:36px;color:#9eb9d8;border-radius:8px;font-size:11.75px;font-weight:550;
}
.satria-redesign .nav-child:hover{color:#fff;background:rgba(255,255,255,.055)}
.satria-redesign .nav-child.active{
  color:#fff;font-weight:700;
  background:rgba(59,143,227,.19);
  box-shadow:inset 2px 0 0 #63b5ff;
}
.satria-redesign .child-marker{background:#6689b3}
.satria-redesign .nav-child.active .child-marker{background:#6bbcff}
.satria-redesign .nav-subgroup summary{color:#88a7ca;font-size:10.75px}
.satria-redesign .nav-subgroup summary:hover{color:#fff}
.satria-redesign .danger-group summary{color:#ffbdc8}
.satria-redesign .danger-group[open] summary{background:rgba(197,47,76,.12);border-color:rgba(255,145,163,.11)}

/* risk block remains visually distinct but belongs to the dark shell */
.satria-redesign .nav-risk-panel{
  margin:15px 1px 3px;
  padding:11px;
  background:linear-gradient(145deg,rgba(155,31,57,.24),rgba(78,17,35,.16));
  border:1px solid rgba(255,145,163,.20);
  border-radius:13px;
}
.satria-redesign .nav-risk-head strong{color:#ffe4e9}
.satria-redesign .nav-risk-head small{color:#d9a7b1}
.satria-redesign .nav-risk-icon{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);color:#ffb6c2}
.satria-redesign .nav-risk-action{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.09);color:#ffd6dc!important}
.satria-redesign .nav-risk-action:hover{background:rgba(255,255,255,.085);border-color:rgba(255,170,185,.22)}
.satria-redesign .nav-risk-action-copy small{color:#d9a7b1}
.satria-redesign .sidebar-bottom{padding:11px;border-top:1px solid rgba(255,255,255,.09);background:rgba(0,14,35,.20)}
.satria-redesign .operator-card{border-color:rgba(255,255,255,.10);background:rgba(255,255,255,.055)}
.satria-redesign .operator-avatar{background:#e8f2ff;color:#1559aa;border:0}
.satria-redesign .operator-copy small{color:#8faed0}
.satria-redesign .operator-copy strong{color:#fff}
.satria-redesign .logout-button{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.10);color:#bcd0e9}
.satria-redesign .logout-button:hover{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.15)}

/* ---- TOPBAR ------------------------------------------------------------ */
.satria-redesign .app-topbar{
  height:68px;
  padding:0 28px;
  background:rgba(255,255,255,.93);
  border-bottom:1px solid #d8e1eb;
  box-shadow:0 4px 18px rgba(19,48,82,.045);
  backdrop-filter:blur(12px);
}
.satria-redesign .topbar-context-year{
  min-height:39px;
  padding:0 12px;
  border:1px solid #d5e1ee;
  border-radius:11px;
  background:linear-gradient(180deg,#fff,#f7faff);
  box-shadow:0 2px 8px rgba(19,58,104,.045);
}
.satria-redesign .topbar-context-year svg{color:#1769d2}
.satria-redesign .topbar-context-year strong{color:#123d76}
.satria-redesign .topbar-user{padding-left:16px;border-left:1px solid #dbe3ec}
.satria-redesign .topbar-user strong{color:#152b47;font-size:12px}
.satria-redesign .topbar-avatar{width:36px;height:36px;background:linear-gradient(145deg,#eaf3ff,#dcecff);color:#1557a7;border:1px solid #cfe0f5}
.satria-redesign .menu-toggle{background:#f7faff;border-color:#d4dfeb}
.satria-redesign .menu-toggle:hover{background:#eaf3ff;border-color:#bcd2eb}

/* ---- WORKSPACE / BREADCRUMB ------------------------------------------- */
.satria-redesign .workspace{padding:0 30px 52px}
.satria-redesign .workspace-content{max-width:1480px;padding:0 22px 42px}
.satria-redesign .global-breadcrumb{
  min-height:44px;padding:12px 0 8px;font-size:10px;color:#8291a4;
}
.satria-redesign .global-breadcrumb a{color:#5c7390;font-weight:700}
.satria-redesign .global-breadcrumb strong{color:#183554;font-weight:800}
.satria-redesign .global-breadcrumb span{color:#b4c1cf}
.satria-redesign .page-intro{
  position:relative;
  margin:0 0 20px;
  padding:17px 20px 18px 22px;
  border:1px solid #d8e2ed;
  border-radius:15px;
  background:linear-gradient(110deg,#ffffff 0%,#f8fbff 65%,#eef5ff 100%);
  box-shadow:0 7px 24px rgba(19,54,94,.055);
  overflow:hidden;
}
.satria-redesign .page-intro::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,#2d83df,#0d4da7);
}
.satria-redesign .page-eyebrow,.satria-redesign .dashboard-overline{color:#1769d2;font-size:9.5px;letter-spacing:.14em}
.satria-redesign .page-intro h1{color:#112f50;font-size:27px}
.satria-redesign .page-intro p{color:#5e7088;font-size:11.5px}

/* ---- SHARED SURFACES --------------------------------------------------- */
.satria-redesign .card{
  border:1px solid #d8e2ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 13px rgba(19,48,82,.04);
}
.satria-redesign .card>.head{
  min-height:58px;
  padding:15px 18px;
  border-bottom:1px solid #e2e8ef;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.satria-redesign .head h2,.satria-redesign .card>h2{color:#173653}
.satria-redesign .btn{min-height:38px;border-radius:9px;border-color:#cbd8e6;background:#fff;color:#294663;font-size:11.5px;font-weight:750}
.satria-redesign .btn:hover{background:#f5f9fe;border-color:#a9c4e0;box-shadow:0 7px 16px rgba(19,72,132,.08)}
.satria-redesign .btn.primary{background:linear-gradient(135deg,#1769d2,#0e55b5);border-color:#1258b9;box-shadow:0 7px 17px rgba(23,105,210,.20)}
.satria-redesign .btn.primary:hover{background:linear-gradient(135deg,#0f5dbf,#0b4a9d);box-shadow:0 9px 20px rgba(23,105,210,.25)}
.satria-redesign .btn.danger{background:linear-gradient(135deg,#c83a57,#af2743);border-color:#b52d48}

/* ---- FORMS ------------------------------------------------------------- */
.satria-redesign .card form input:not([type="checkbox"]):not([type="radio"]),
.satria-redesign .card form select,.satria-redesign .card form textarea,
.satria-redesign .field input,.satria-redesign .field select,.satria-redesign .field textarea,
.satria-redesign .form-group input,.satria-redesign .form-group select,.satria-redesign .form-group textarea,
.satria-redesign .filter-grid input,.satria-redesign .filter-grid select,.satria-redesign .filter-grid textarea{
  min-height:40px;border:1px solid #cfdbe8;border-radius:9px;background:#fbfdff;color:#142b46;font-size:12px;transition:border-color .15s,box-shadow .15s,background .15s;
}
.satria-redesign .card form input:not([type="checkbox"]):not([type="radio"]):focus,
.satria-redesign .card form select:focus,.satria-redesign .card form textarea:focus,
.satria-redesign .field input:focus,.satria-redesign .field select:focus,.satria-redesign .field textarea:focus,
.satria-redesign .form-group input:focus,.satria-redesign .form-group select:focus,.satria-redesign .form-group textarea:focus{
  border-color:#6ea5dc;background:#fff;box-shadow:0 0 0 3px rgba(23,105,210,.10);outline:0;
}
.satria-redesign .field label,.satria-redesign .form-group label,.satria-redesign .card form>label{color:#41566f;font-size:11px;font-weight:750}

/* ---- TABLES ------------------------------------------------------------ */
.satria-redesign .table-wrap,.satria-redesign .member-table,.satria-redesign .group-table{
  border:1px solid #d7e1eb;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(20,49,82,.035);overflow:hidden;
}
.satria-redesign .table-wrap table,.satria-redesign .member-table table,.satria-redesign .group-table table{border-collapse:separate;border-spacing:0}
.satria-redesign .table-wrap th,.satria-redesign .member-table th,.satria-redesign .group-table th,.satria-redesign .card>table th{
  color:#36516e;background:#edf4fb;border-bottom:1px solid #cfdae6;font-size:10px;font-weight:850;letter-spacing:.035em;text-transform:uppercase;
}
.satria-redesign .table-wrap td,.satria-redesign .member-table td,.satria-redesign .group-table td,.satria-redesign .card>table td{
  color:#314961;font-size:11.5px;border-bottom:1px solid #e9eef4;
}
.satria-redesign .table-wrap tbody tr:nth-child(even) td,.satria-redesign .member-table tbody tr:nth-child(even) td,.satria-redesign .group-table tbody tr:nth-child(even) td{background:#fbfdff}
.satria-redesign .table-wrap tbody tr:hover td,.satria-redesign .member-table tbody tr:hover td,.satria-redesign .group-table tbody tr:hover td,.satria-redesign .card>table tbody tr:hover td{background:#f0f6fd}

/* ---- BADGES / NOTICES / MODALS --------------------------------------- */
.satria-redesign .badge,.satria-redesign .status-badge{border-radius:999px;font-size:10px;font-weight:800}
.satria-redesign .notice{border-radius:12px;box-shadow:0 3px 12px rgba(19,48,82,.035)}
.satria-redesign .toast{border-radius:12px;box-shadow:0 18px 42px rgba(15,37,65,.15)}
.satria-redesign .modal-backdrop{background:rgba(5,24,50,.52);backdrop-filter:blur(4px)}
.satria-redesign .modal,.satria-redesign .reset-modal{border:1px solid #d5e0eb;border-radius:16px;box-shadow:0 24px 70px rgba(4,23,48,.22)}

/* ---- DASHBOARD: strong visual anchor instead of a wall of white -------- */
.satria-redesign .dashboard-redesign-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 305px;
  gap:18px;
  align-items:stretch;
  margin:3px 0 20px;
  padding:0;
  border:0;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(125deg,#092c5d 0%,#0e4b91 56%,#1769d2 100%);
  box-shadow:0 18px 38px rgba(6,43,91,.20);
}
.satria-redesign .dashboard-redesign-hero::before{
  content:"";position:absolute;width:360px;height:360px;right:18%;top:-230px;border-radius:50%;
  background:radial-gradient(circle,rgba(115,202,255,.24),transparent 68%);pointer-events:none;
}
.satria-redesign .dashboard-redesign-hero::after{
  content:"";position:absolute;right:-80px;bottom:-110px;width:300px;height:300px;border-radius:50%;
  border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 28px rgba(255,255,255,.025),0 0 0 58px rgba(255,255,255,.018);pointer-events:none;
}
.satria-redesign .dashboard-hero-main{position:relative;z-index:1;padding:29px 28px;min-height:160px}
.satria-redesign .dashboard-hero-main .dashboard-overline{color:#8dd0ff}
.satria-redesign .dashboard-hero-main h1{margin:7px 0 8px;color:#fff;font-size:30px;letter-spacing:-.04em}
.satria-redesign .dashboard-hero-main p{max-width:700px;color:#d7e9fb;font-size:12px;line-height:1.65}
.satria-redesign .dashboard-active-context{
  position:relative;z-index:2;margin:12px;padding:20px;border:1px solid rgba(255,255,255,.20);border-radius:14px;
  background:rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(7px);
}
.satria-redesign .context-label{color:#a9d5f8;font-size:9px}
.satria-redesign .dashboard-active-context>strong{color:#fff;font-size:22px}
.satria-redesign .context-state{color:#dcecff;font-size:10.5px}
.satria-redesign .context-state.is-ready{color:#9df0c7}.satria-redesign .context-state.is-ready i{background:#38d58f;box-shadow:0 0 0 4px rgba(56,213,143,.16)}
.satria-redesign .dashboard-alert{border-color:#f0d79e;background:#fff8e9;box-shadow:0 6px 18px rgba(118,77,15,.055)}
.satria-redesign .dashboard-block{padding:19px;border-color:#d7e1eb;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(18,50,84,.045)}
.satria-redesign .dashboard-block-head h2,.satria-redesign .dashboard-context-card h2{font-size:16px}
.satria-redesign .dashboard-stat-grid{gap:11px}
.satria-redesign .dashboard-stat-card{
  min-height:116px;padding:16px;border:1px solid #d8e2ed;border-radius:13px;background:#fff;
  box-shadow:0 3px 12px rgba(20,50,85,.035);overflow:hidden;
}
.satria-redesign .dashboard-stat-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:#2b7fd9}
.satria-redesign .dashboard-stat-card:nth-child(2)::before{background:#21a66a}
.satria-redesign .dashboard-stat-card:nth-child(3)::before{background:#e5a326}
.satria-redesign .dashboard-stat-card:nth-child(4)::before{background:#815bd6}
.satria-redesign .dashboard-stat-card:hover{transform:translateY(-3px);border-color:#b8cde3;box-shadow:var(--satria-shadow-hover)}
.satria-redesign .dashboard-stat-icon{width:38px;height:38px;border-radius:10px;background:#eaf3ff;color:#1769d2}
.satria-redesign .dashboard-stat-card:nth-child(2) .dashboard-stat-icon{background:#eaf9f2;color:#16834f}
.satria-redesign .dashboard-stat-card:nth-child(3) .dashboard-stat-icon{background:#fff5df;color:#b36a08}
.satria-redesign .dashboard-stat-card:nth-child(4) .dashboard-stat-icon{background:#f1edff;color:#7049c8}
.satria-redesign .dashboard-stat-text small{font-size:9.5px}
.satria-redesign .dashboard-stat-text strong{font-size:26px}
.satria-redesign .dashboard-stat-link{color:#7e91a8}
.satria-redesign .dashboard-quick-item{background:#f8fbfe;border-color:#dce5ee;border-radius:11px}
.satria-redesign .dashboard-quick-item:hover{background:#fff;border-color:#aac7e5;box-shadow:0 7px 17px rgba(19,75,133,.07)}
.satria-redesign .quick-item-icon{background:#e9f2ff;color:#1769d2}
.satria-redesign .dashboard-context-card{background:linear-gradient(145deg,#f3f8fe,#eaf2fb);border-color:#d2dfec;box-shadow:0 5px 18px rgba(18,50,84,.045)}
.satria-redesign .dashboard-context-row{border-color:#d9e4ef}

/* ---- RESPONSIVE ------------------------------------------------------- */
@media (max-width:1200px){
  .satria-redesign .workspace-content{padding-left:10px;padding-right:10px}
}
@media (max-width:900px){
  .satria-redesign .app-main{margin-left:0}
  .satria-redesign .app-topbar{padding:0 16px}
  .satria-redesign .workspace{padding:0 16px 38px}
  .satria-redesign .workspace-content{padding:0 0 30px}
  .satria-redesign .dashboard-redesign-hero{grid-template-columns:1fr}
  .satria-redesign .dashboard-active-context{margin:0 18px 18px}
  .satria-redesign .page-intro{padding:16px 18px 17px 20px}
}
@media (max-width:640px){
  .satria-redesign .workspace{padding:0 12px 30px}
  .satria-redesign .app-topbar{padding:0 12px}
  .satria-redesign .dashboard-redesign-hero{border-radius:15px}
  .satria-redesign .dashboard-hero-main{padding:23px 20px}
  .satria-redesign .dashboard-hero-main h1{font-size:25px}
  .satria-redesign .dashboard-active-context{margin:0 12px 12px;padding:16px}
  .satria-redesign .dashboard-stat-grid,.satria-redesign .dashboard-quick-list{grid-template-columns:1fr}
  .satria-redesign .dashboard-block{padding:15px}
  .satria-redesign .page-intro h1{font-size:24px}
  .satria-redesign .topbar-context-year{padding:0 9px}
  .satria-redesign .topbar-user{display:none}
}


/* ========================================================================
   SATRIA v4.2.100.129 — VISUAL REBUILD / CORRECTED MASTER + WORKSPACES
   Presentation layer only. This block is the final cascade for the active
   Admin UI. No route/controller/service/model/database/academic behavior.

   Design direction:
   - Navy command shell
   - Neutral light workspace
   - Solid primary blue for actions
   - Green reserved for Excel identity / success semantics
   - No oversized decorative gradients
   - Readable type and clear contrast
   ======================================================================== */
.satria-redesign{
  --satria-bg:#f3f6f9;
  --satria-surface:#ffffff;
  --satria-surface-soft:#f8fafc;
  --satria-surface-blue:#eef5fb;
  --satria-line:#dce4ec;
  --satria-line-strong:#c9d4df;
  --satria-text:#102a43;
  --satria-text-soft:#516579;
  --satria-text-muted:#647586;
  --satria-primary:#0b67b2;
  --satria-primary-dark:#084f8d;
  --satria-primary-soft:#e9f3fb;
  --satria-success:#167a52;
  --satria-success-soft:#eaf7f0;
  --satria-warning:#9a620b;
  --satria-warning-soft:#fff7e6;
  --satria-danger:#c23d52;
  --satria-danger-soft:#fff0f3;
  --satria-radius:12px;
  --satria-radius-lg:15px;
  --satria-shadow:0 1px 2px rgba(16,42,67,.03),0 8px 22px rgba(16,42,67,.045);
  --satria-shadow-hover:0 10px 26px rgba(16,42,67,.085);
  --satria-sidebar-width:272px;
  --satria-topbar-height:66px;
  /* compatibility aliases for existing page-family markup; visual semantics only */
  --s-ink:var(--satria-text);
  --s-ink-2:var(--satria-text-soft);
  --s-muted:var(--satria-text-muted);
  --s-muted-2:#8b99a7;
  --s-canvas:var(--satria-bg);
  --s-surface:var(--satria-surface);
  --s-surface-2:var(--satria-surface-soft);
  --s-surface-3:var(--satria-surface-blue);
  --s-line:var(--satria-line);
  --s-line-strong:var(--satria-line-strong);
  --s-navy:var(--satria-primary-dark);
  --s-navy-2:var(--satria-primary);
  --s-blue:var(--satria-primary);
  --s-blue-2:var(--satria-primary-dark);
  --s-accent:var(--satria-primary);
  --s-accent-2:var(--satria-primary-dark);
  --s-accent-soft:var(--satria-primary-soft);
  --s-success:var(--satria-success);
  --s-success-bg:var(--satria-success-soft);
  --s-warning:var(--satria-warning);
  --s-warning-bg:var(--satria-warning-soft);
  --s-danger:var(--satria-danger);
  --s-danger-bg:var(--satria-danger-soft);
  --s-info:#2168a7;
  --s-info-bg:#eef7ff;
  font-family:"Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}

/* SHELL */
.satria-redesign .app-main{
  margin-left:var(--satria-sidebar-width);
  min-height:100dvh;
  background:var(--satria-bg);
  position:relative;
}
.satria-redesign .app-main::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#0b67b2;z-index:80;pointer-events:none
}
.satria-redesign .app-sidebar{
  width:var(--satria-sidebar-width);
  background:#0b2f52;
  color:#d9e7f4;
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:8px 0 28px rgba(6,31,55,.14)
}
.satria-redesign .app-sidebar::after{display:none}
.satria-redesign .sidebar-brand-area{
  padding:19px 18px 17px;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:#0b2f52
}
.satria-redesign .brand-mark{
  width:42px;height:42px;min-width:42px;border-radius:11px;background:#fff;color:#0b67b2;
  border:1px solid rgba(255,255,255,.22);box-shadow:none
}
.satria-redesign .brand-mark.brand-logo{background:#fff;padding:5px}
.satria-redesign .brand-copy strong{font-size:17px;color:#fff;letter-spacing:.03em}
.satria-redesign .brand-copy small{font-size:9px;color:#a9c5dd;letter-spacing:.09em;text-transform:uppercase}
.satria-redesign .brand-copy em{font-size:10.5px;color:#d9e7f4;margin-top:3px}
.satria-redesign .sidebar-nav{padding:13px 10px 12px}
.satria-redesign .sidebar-home,.satria-redesign .nav-group summary{
  min-height:42px;border:1px solid transparent;border-radius:10px;color:#c1d3e4;
  font-size:12.5px;font-weight:650;transition:background .14s,border-color .14s,color .14s
}
.satria-redesign .sidebar-home:hover,.satria-redesign .nav-group summary:hover{background:rgba(255,255,255,.07);color:#fff}
.satria-redesign .sidebar-home.active{
  background:#124574;color:#fff;border-color:#1b588d;box-shadow:inset 3px 0 0 #55b5ea
}
.satria-redesign .nav-group[open]>summary{background:#103b62;color:#fff;border-color:rgba(255,255,255,.04)}
.satria-redesign .nav-icon{color:#7fa1be}
.satria-redesign .active .nav-icon,.satria-redesign .nav-group[open] summary .nav-icon{color:#62c0ed}
.satria-redesign .nav-children{border-left-color:rgba(146,190,222,.18);margin-left:10px;padding-left:12px}
.satria-redesign .nav-child{min-height:35px;border-radius:8px;color:#a7c0d7;font-size:11.75px}
.satria-redesign .nav-child:hover{background:rgba(255,255,255,.05);color:#fff}
.satria-redesign .nav-child.active{background:#123f67;color:#fff;box-shadow:inset 2px 0 0 #55b5ea}
.satria-redesign .child-marker{background:#62839f}
.satria-redesign .nav-child.active .child-marker{background:#62c0ed}
.satria-redesign .nav-subgroup summary{color:#8eaac4}
.satria-redesign .danger-group summary{color:#ffc4cd}
.satria-redesign .danger-group[open]>summary{background:rgba(194,61,82,.14);border-color:rgba(255,177,191,.09)}
.satria-redesign .nav-risk-panel{background:rgba(194,61,82,.12);border-color:rgba(255,177,191,.18)}
.satria-redesign .nav-risk-head strong{color:#ffe7eb}.satria-redesign .nav-risk-head small{color:#d9a8b2}
.satria-redesign .nav-risk-icon{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09);color:#ffc0ca}
.satria-redesign .nav-risk-action{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.08);color:#ffd8de!important}
.satria-redesign .nav-risk-action:hover{background:rgba(255,255,255,.09);border-color:rgba(255,177,191,.20)}
.satria-redesign .sidebar-bottom{padding:11px;border-top:1px solid rgba(255,255,255,.08);background:#082846}
.satria-redesign .operator-card{border-color:rgba(255,255,255,.09);background:rgba(255,255,255,.045)}
.satria-redesign .operator-avatar{background:#eaf3fb;color:#0b67b2;border:0}
.satria-redesign .operator-copy small{color:#8faec8}.satria-redesign .operator-copy strong{color:#fff}
.satria-redesign .logout-button{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09);color:#b7ccdf}
.satria-redesign .logout-button:hover{background:rgba(255,255,255,.08);color:#fff}

/* TOPBAR */
.satria-redesign .app-topbar{
  height:var(--satria-topbar-height);padding:0 25px;background:#fff;border-bottom:1px solid var(--satria-line);box-shadow:0 2px 10px rgba(16,42,67,.035)
}
.satria-redesign .topbar-context-year{
  min-height:38px;padding:0 11px;border:1px solid var(--satria-line);border-radius:9px;background:#f8fafc;box-shadow:none
}
.satria-redesign .topbar-context-year svg,.satria-redesign .topbar-year-icon{color:var(--satria-primary)}
.satria-redesign .topbar-context-year strong{color:var(--satria-text)}
.satria-redesign .topbar-user{padding-left:14px;border-left:1px solid var(--satria-line)}
.satria-redesign .topbar-user strong{color:var(--satria-text);font-size:11.5px}
.satria-redesign .topbar-avatar{width:36px;height:36px;background:var(--satria-primary-soft);color:var(--satria-primary);border:1px solid #cfe1ef}
.satria-redesign .menu-toggle{border-color:var(--satria-line);background:#fff;color:#617285;border-radius:9px}
.satria-redesign .menu-toggle:hover{background:#f5f8fb;border-color:var(--satria-line-strong)}

/* WORKSPACE */
.satria-redesign .workspace{padding:0 25px 44px;background:var(--satria-bg)}
.satria-redesign .workspace-content{width:100%;max-width:1480px;margin:0 auto;padding:0 18px 38px}
.satria-redesign .global-breadcrumb{min-height:36px;padding:10px 0 8px;color:#8491a0;font-size:10.5px}
.satria-redesign .global-breadcrumb a{color:#6b7b8d;font-weight:650}
.satria-redesign .global-breadcrumb strong{color:#354b61;font-weight:750}
.satria-redesign .global-breadcrumb span{color:#b0bac5}

/* PAGE HEADING */
.satria-redesign .page-intro{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:22px;
  margin:0 0 15px;padding:16px 18px 16px 20px;
  border:1px solid var(--satria-line);border-radius:14px;background:#fff;box-shadow:var(--satria-shadow);overflow:hidden
}
.satria-redesign .page-intro::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--satria-primary)}
.satria-redesign .page-intro-main{min-width:0}
.satria-redesign .page-eyebrow,.satria-redesign .dashboard-overline{color:var(--satria-primary);font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.satria-redesign .page-intro h1{margin:4px 0 0;color:var(--satria-text);font-size:25px;line-height:1.15;letter-spacing:-.025em}
.satria-redesign .page-intro p{max-width:820px;margin:5px 0 0;color:var(--satria-text-soft);font-size:11.5px;line-height:1.5}
.satria-redesign .page-context{margin-top:6px;color:var(--satria-text-muted);font-size:10px}
.satria-redesign .page-intro-side{flex:0 0 auto;min-width:0}
.satria-redesign .page-intro-side .head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}

/* SHARED SURFACES / ACTIONS */
.satria-redesign .card{border:1px solid var(--satria-line);border-radius:var(--satria-radius);background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .card>.head{background:#fff;border-bottom:1px solid var(--satria-line);padding:14px 16px;min-height:54px}
.satria-redesign .head h2,.satria-redesign .card>h2,.satria-redesign .section-heading h2{color:var(--satria-text)}
.satria-redesign .section-heading p{color:var(--satria-text-muted)}
.satria-redesign .btn{
  min-height:37px;padding:0 12px;border-radius:9px;border:1px solid var(--satria-line-strong);background:#fff;color:#2e4a63;
  font-size:11.5px;font-weight:750;box-shadow:none;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s
}
.satria-redesign .btn:hover{background:#f5f8fb;border-color:#adbfce;color:var(--satria-text);box-shadow:0 5px 12px rgba(16,42,67,.055);transform:translateY(-1px)}
.satria-redesign .btn.primary{background:var(--satria-primary);border-color:var(--satria-primary);color:#fff;box-shadow:0 5px 13px rgba(11,103,178,.17)}
.satria-redesign .btn.primary:hover{background:var(--satria-primary-dark);border-color:var(--satria-primary-dark);color:#fff}
.satria-redesign .btn.danger{background:var(--satria-danger);border-color:var(--satria-danger);color:#fff}
.satria-redesign .btn.danger:hover{background:#aa3044;border-color:#aa3044;color:#fff}
.satria-redesign .btn-soft-primary{background:#eef5fb!important;color:var(--satria-primary)!important;border-color:#cfe2ef!important}

/* Excel = green identity, but no green wall-of-button */
.satria-redesign .satria-excel-download-btn{
  display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-width:138px;min-height:37px;padding:0 10px;
  border:1px solid #cdd9e2;border-radius:9px;background:#fff!important;color:#23425d!important;text-decoration:none;
  box-shadow:none;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s
}
.satria-redesign .satria-excel-download-btn:hover{background:#f7fafc!important;border-color:#b4c7d6;box-shadow:0 5px 12px rgba(16,42,67,.06);transform:translateY(-1px)}
.satria-redesign .satria-excel-download-icon{
  display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;
  background:var(--satria-success-soft)!important;color:var(--satria-success)!important;border:1px solid #d0ebdc
}
.satria-redesign .satria-excel-download-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;text-align:left;line-height:1.05}
.satria-redesign .satria-excel-download-copy strong{font-size:10.5px;font-weight:800;white-space:nowrap;color:#23425d!important}
.satria-redesign .satria-excel-download-copy small{font-size:8px;font-weight:650;white-space:nowrap;color:#7a8997!important;opacity:1}
.satria-redesign .excel-import .btn{min-height:37px}

/* FORM CONTROLS */
.satria-redesign .card form input:not([type="checkbox"]):not([type="radio"]),
.satria-redesign .card form select,.satria-redesign .card form textarea,
.satria-redesign .field input,.satria-redesign .field select,.satria-redesign .field textarea,
.satria-redesign .form-group input,.satria-redesign .form-group select,.satria-redesign .form-group textarea,
.satria-redesign .filter-grid input,.satria-redesign .filter-grid select,.satria-redesign .filter-grid textarea{
  min-height:39px;border:1px solid #cfd9e3;border-radius:9px;background:#fff;color:#17344d;font-size:11.5px;box-shadow:none
}
.satria-redesign .card form input:not([type="checkbox"]):not([type="radio"]):focus,
.satria-redesign .card form select:focus,.satria-redesign .card form textarea:focus,
.satria-redesign .field input:focus,.satria-redesign .field select:focus,.satria-redesign .field textarea:focus,
.satria-redesign .form-group input:focus,.satria-redesign .form-group select:focus,.satria-redesign .form-group textarea:focus,
.satria-redesign .filter-grid input:focus,.satria-redesign .filter-grid select:focus,.satria-redesign .filter-grid textarea:focus{
  outline:none;border-color:#76aeca;box-shadow:0 0 0 3px rgba(11,103,178,.10);background:#fff
}
.satria-redesign .field label,.satria-redesign .form-group label,.satria-redesign .card form>label{color:#405a70;font-size:10.5px;font-weight:750}

/* TABLES */
.satria-redesign .table-wrap,.satria-redesign .member-table,.satria-redesign .group-table{
  border:1px solid var(--satria-line);border-radius:10px;background:#fff;box-shadow:none;overflow:hidden
}
.satria-redesign .table-wrap table,.satria-redesign .member-table table,.satria-redesign .group-table table{border-collapse:separate;border-spacing:0}
.satria-redesign .table-wrap th,.satria-redesign .member-table th,.satria-redesign .group-table th,.satria-redesign .card>table th{
  min-height:42px;padding:10px 11px;background:#f1f5f8;color:#40596f;border-bottom:1px solid #d7e0e8;
  font-size:9px;font-weight:850;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap
}
.satria-redesign .table-wrap td,.satria-redesign .member-table td,.satria-redesign .group-table td,.satria-redesign .card>table td{
  padding:10px 11px;color:#30485f;font-size:11.5px;border-bottom:1px solid #e9eef2;vertical-align:middle
}
.satria-redesign .table-wrap tbody tr:nth-child(even) td,.satria-redesign .member-table tbody tr:nth-child(even) td,.satria-redesign .group-table tbody tr:nth-child(even) td{background:#fcfdfe}
.satria-redesign .table-wrap tbody tr:hover td,.satria-redesign .member-table tbody tr:hover td,.satria-redesign .group-table tbody tr:hover td,.satria-redesign .card>table tbody tr:hover td{background:#f3f8fc}
.satria-redesign .table-actions{gap:5px}
.satria-redesign .table-actions .btn{min-height:31px;padding:0 9px;font-size:9.5px}
.satria-redesign .person-cell{display:flex;align-items:center;gap:9px;min-width:190px}
.satria-redesign .person-avatar{width:32px;height:32px;min-width:32px;border-radius:9px;background:#e9f3fb;color:#0b67b2;border:1px solid #d0e2ef;font-size:10px;font-weight:850}
.satria-redesign .person-cell strong{color:#173b59;font-size:11.5px;font-weight:800}
.satria-redesign .person-cell small{color:#8796a5;font-size:8.5px}
.satria-redesign .username-cell{padding:4px 7px;border:1px solid #dbe3e9;border-radius:6px;background:#f7fafc;color:#49637a;font-size:9.5px;font-weight:700}

/* STATUS / FEEDBACK */
.satria-redesign .badge,.satria-redesign .status-badge{border-radius:999px;font-size:9.5px;font-weight:800}
.satria-redesign .badge.success,.satria-redesign .badge.active,.satria-redesign .status-badge.status-up{background:var(--satria-success-soft);color:var(--satria-success)}
.satria-redesign .badge.inactive,.satria-redesign .status-badge.status-down{background:var(--satria-danger-soft);color:var(--satria-danger)}
.satria-redesign .notice{border-radius:10px;box-shadow:none;background:#f4f8fb;border-color:#d9e5ee;color:#4f667a;font-size:10px}
.satria-redesign .relation-warning{border-color:#ecd7a9;background:var(--satria-warning-soft);color:#7b5d22}
.satria-redesign .toast{border-radius:11px;box-shadow:0 14px 34px rgba(16,42,67,.14)}
.satria-redesign .modal-backdrop{background:rgba(7,30,50,.50);backdrop-filter:blur(2px)}
.satria-redesign .modal,.satria-redesign .reset-modal{border-radius:14px;border-color:#d6e0e8;box-shadow:0 24px 62px rgba(7,30,50,.20)}

/* MASTER DATA SUMMARY */
.satria-redesign .master-summary{
  min-height:82px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:13px 15px;border:1px solid var(--satria-line);border-radius:12px;background:#fff;box-shadow:var(--satria-shadow);position:relative;overflow:hidden
}
.satria-redesign .master-summary::after{content:"";position:absolute;right:-25px;top:-36px;width:90px;height:90px;border:1px solid rgba(11,103,178,.08);border-radius:50%}
.satria-redesign .master-summary-icon{width:38px;height:38px;padding:0 9px;border:1px solid #d2e2ee;border-radius:10px;background:#edf5fb}
.satria-redesign .master-summary-icon span{height:2px;background:#0b67b2}
.satria-redesign .master-summary-title{font-size:8.5px;letter-spacing:.07em;color:#7b8998;font-weight:850;text-transform:uppercase}
.satria-redesign .master-summary-value{margin-top:3px;font-size:22px;color:#173b59;line-height:1;font-weight:850}
.satria-redesign .master-summary-note{max-width:220px;color:#81909e;font-size:9px;line-height:1.45;text-align:right}

/* SUBJECT PAGE — actual markup from subjects/index.blade.php */
.satria-redesign .subject-page{display:grid;gap:12px}
.satria-redesign .subject-overview{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(150px,.62fr));gap:9px}
.satria-redesign .subject-overview-card{
  min-height:80px;padding:13px 14px;border:1px solid var(--satria-line);border-radius:11px;background:#fff;box-shadow:var(--satria-shadow)
}
.satria-redesign .subject-overview-card.primary{background:#edf5fb;border-color:#cfe1ee}
.satria-redesign .subject-overview-label{font-size:8.5px;color:#6f8092;letter-spacing:.055em;font-weight:850}
.satria-redesign .subject-overview-label .dot{width:6px;height:6px;background:#8fa3b4}
.satria-redesign .subject-overview-card.primary .dot{background:#0b67b2}
.satria-redesign .subject-overview-card.total .dot{background:#6f8295}
.satria-redesign .subject-overview-card.main .dot{background:#2b7dad}
.satria-redesign .subject-overview-card.optional .dot{background:#4f8d91}
.satria-redesign .subject-overview-value{margin-top:4px;color:#173b59;font-size:22px;font-weight:850;letter-spacing:-.03em}
.satria-redesign .subject-overview-copy{margin-top:4px;color:#758596;font-size:9px;line-height:1.35}

.satria-redesign .subject-grade-card,.satria-redesign .subject-context-card,.satria-redesign .subject-group-card{
  border:1px solid var(--satria-line);border-radius:12px;background:#fff;box-shadow:var(--satria-shadow)
}
.satria-redesign .subject-grade-card{padding:13px 14px}
.satria-redesign .subject-card-heading{margin-bottom:10px}
.satria-redesign .subject-card-heading h2{font-size:14px;color:#173b59}
.satria-redesign .subject-card-heading p{font-size:9.5px;color:#7a8998}
.satria-redesign .subject-group-count{min-height:24px;padding:0 8px;border:1px solid #d5e0e8;border-radius:999px;background:#f7fafc;color:#486277;font-size:8.5px;font-weight:850}
.satria-redesign .subject-grade-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.satria-redesign .subject-grade-tab{
  min-height:44px;padding:0 12px;border:1px solid #d9e2e9;border-radius:9px;background:#f8fafc;color:#385268;text-decoration:none;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s
}
.satria-redesign .subject-grade-tab:hover{background:#f1f6fa;border-color:#bacbd8;transform:translateY(-1px)}
.satria-redesign .subject-grade-tab.active{background:#0b67b2;border-color:#0b67b2;color:#fff;box-shadow:0 5px 12px rgba(11,103,178,.15)}
.satria-redesign .subject-grade-number{font-size:11.5px;font-weight:850}.satria-redesign .subject-grade-label{font-size:8.5px;color:#7e8d9b}
.satria-redesign .subject-grade-tab.active .subject-grade-label{color:#dceef8}
.satria-redesign .subject-grade-arrow{color:#99a9b7;font-size:12px}.satria-redesign .subject-grade-tab.active .subject-grade-arrow{color:#b9def0}

.satria-redesign .subject-context-card{padding:14px}
.satria-redesign .subject-context-top{gap:14px}
.satria-redesign .subject-context-icon{width:36px;height:36px;flex-basis:36px;border-radius:9px;background:#edf5fb;border-color:#d3e4ef;color:#0b67b2;font-size:10px}
.satria-redesign .subject-context-title h2{font-size:14px;color:#173b59}.satria-redesign .subject-context-title p{font-size:9.5px;color:#6f8192}
.satria-redesign .subject-context-note{margin-top:10px;padding:9px 11px;border:1px solid #d9e5ec;border-radius:8px;background:#f7fafc;color:#526b7e;font-size:9px}
.satria-redesign .subject-context-note strong{color:#274e69}
.satria-redesign .subject-groups{gap:10px}
.satria-redesign .subject-group-card{overflow:hidden}
.satria-redesign .subject-group-head{padding:12px 14px;background:#f8fafb;border-bottom:1px solid var(--satria-line)}
.satria-redesign .subject-group-mark{width:32px;height:32px;border-radius:9px;background:#eaf3f9;color:#0b67b2;font-size:9px}
.satria-redesign .subject-group-card.optional .subject-group-mark{background:#eef7f7;color:#34777d}
.satria-redesign .subject-group-title h2{font-size:13px;color:#173b59}.satria-redesign .subject-group-title p{font-size:8.8px;color:#7b8b9a}
.satria-redesign .subject-group-card.optional .subject-group-count{background:#f2f8f8;border-color:#d6e8e8;color:#47797d}
.satria-redesign .subject-table-wrap{border:0;border-radius:0;overflow:auto}
.satria-redesign .subject-table-wrap table{min-width:900px}
.satria-redesign .subject-table-wrap th{padding:9px 11px;font-size:8.5px}
.satria-redesign .subject-table-wrap td{padding:9px 11px;font-size:11px}
.satria-redesign .subject-no{width:42px;color:#8493a1;font-size:9px}
.satria-redesign .subject-code-pill{min-height:24px;padding:0 7px;border-radius:6px;border:1px solid #d8e2ea;background:#f7fafc;color:#426178;font-size:8.5px}
.satria-redesign .subject-name-cell{min-width:240px}.satria-redesign .subject-name-cell strong{font-size:11px;color:#1d405d}.satria-redesign .subject-meta{font-size:8px;color:#8997a4}
.satria-redesign .subject-category-select{min-height:35px!important;min-width:205px!important;border-radius:8px!important;font-size:10px!important}
.satria-redesign .subject-block-note{font-size:8px;color:#8997a4}
.satria-redesign .subject-empty{min-height:110px;padding:18px;background:#fcfdfe}.satria-redesign .subject-empty strong{font-size:10.5px;color:#566b7e}.satria-redesign .subject-empty span{font-size:8.8px}
.satria-redesign .subject-savebar{padding:10px 12px;border-radius:10px;border:1px solid #d8e3eb;background:#f7fafc}
.satria-redesign .subject-savebar-copy strong{font-size:9.5px;color:#31536c}.satria-redesign .subject-savebar-copy span{font-size:8.4px;color:#7b8996}

/* PENUGASAN — continue the corrected language on actual existing markup */
.satria-redesign .learning-command-card{padding:0;border:1px solid var(--satria-line);border-radius:12px;background:#fff;box-shadow:var(--satria-shadow);overflow:hidden}
.satria-redesign .learning-command-head{padding:16px 18px;border-bottom:1px solid var(--satria-line);background:#fff}
.satria-redesign .learning-kicker,.satria-redesign .learning-teacher-label,.satria-redesign .lm-kicker{font-size:8.5px;color:var(--satria-primary);font-weight:850;letter-spacing:.11em}
.satria-redesign .learning-command-head h2,.satria-redesign .lm-overview-head h2{font-size:17px;color:#173b59}
.satria-redesign .learning-command-head p{font-size:10px;color:#748697}
.satria-redesign .learning-command-actions{gap:7px}
.satria-redesign .learning-grade-switcher,.satria-redesign .lm-grade-actions{background:#f7fafc;border-top:1px solid var(--satria-line);gap:7px;padding:11px 18px}
.satria-redesign .learning-grade-tab,.satria-redesign .lm-grade-tab{min-height:42px;padding:0 11px;border:1px solid #d8e2ea;border-radius:9px;background:#fff;color:#405a70;box-shadow:none}
.satria-redesign .learning-grade-tab span,.satria-redesign .lm-grade-tab span{font-size:10.5px}
.satria-redesign .learning-grade-tab small,.satria-redesign .lm-grade-tab small{font-size:8px;color:#8695a3}
.satria-redesign .learning-grade-tab.active,.satria-redesign .lm-grade-tab.active{background:#0b67b2;border-color:#0b67b2;color:#fff;box-shadow:0 5px 11px rgba(11,103,178,.14)}
.satria-redesign .learning-grade-tab.active small,.satria-redesign .lm-grade-tab.active small{color:#dceef8}
.satria-redesign .learning-workflow-note{margin:0 18px 13px;padding:9px 11px;border:1px solid #dbe6ee;border-radius:9px;background:#f7fafc;color:#586f82}
.satria-redesign .workflow-icon{background:#eaf3fb;color:#0b67b2}
.satria-redesign .learning-filter-polished{margin:0 18px 17px;border-top-color:var(--satria-line);padding-top:12px}
.satria-redesign .learning-filter-grid{gap:8px}
.satria-redesign .learning-mini-summary{gap:8px;margin:10px 0}
.satria-redesign .learning-mini-summary>div{padding:11px 13px;border:1px solid var(--satria-line);border-radius:10px;background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .learning-mini-summary span{font-size:8.5px;color:#778898}.satria-redesign .learning-mini-summary strong{font-size:18px;color:#173b59}
.satria-redesign .learning-results-card{border:1px solid var(--satria-line);border-radius:12px;box-shadow:var(--satria-shadow);overflow:hidden}
.satria-redesign .learning-context-strip{padding:11px 14px;background:#f7fafc;border-bottom:1px solid var(--satria-line)}
.satria-redesign .learning-context-strip strong{font-size:10px;color:#35536b}.satria-redesign .learning-context-strip span:not(.learning-context-dot){font-size:8.5px;color:#7d8c99}
.satria-redesign .learning-teacher-card{margin:11px;border-color:#d9e3ea;border-radius:10px;box-shadow:none}
.satria-redesign .learning-teacher-head{padding:12px 13px;background:#fbfcfd;border-bottom-color:#dfe7ed}
.satria-redesign .learning-avatar{width:40px;height:40px;flex-basis:40px;border-radius:10px;background:#eaf3fb;color:#0b67b2}
.satria-redesign .learning-teacher-info h3{font-size:13px;color:#1d405d}.satria-redesign .learning-teacher-info p{font-size:8.5px;color:#81909f}
.satria-redesign .learning-counts span{font-size:7.5px;padding:4px 6px;border-radius:6px;background:#f7fafc;color:#617587}
.satria-redesign .learning-assignment-list{padding:0 13px}
.satria-redesign .learning-assignment-row{grid-template-columns:230px minmax(0,1fr) auto;padding:11px 0}
.satria-redesign .learning-subject-title strong{font-size:10.5px;color:#244a64}.satria-redesign .learning-subject-title span{font-size:8px}
.satria-redesign .learning-assignment-grade{font-size:9px}.satria-redesign .learning-rombel-chip{border-color:#dbe4ea;background:#f8fafc;border-radius:7px;padding:5px 6px}.satria-redesign .learning-rombel-chip strong{font-size:8.5px}
.satria-redesign .learning-row-actions .btn{min-height:29px;font-size:8.5px}

/* LEARNING STRUCTURE */
.satria-redesign .lm-overview,.satria-redesign .lm-subject-overview{border:1px solid var(--satria-line);border-radius:12px;background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .lm-overview{padding:0;overflow:hidden}.satria-redesign .lm-overview-head{padding:16px 18px;border-bottom:1px solid var(--satria-line)}
.satria-redesign .lm-flow{gap:7px;background:#f7fafc}.satria-redesign .lm-flow>div{border-color:#dae4eb;background:#fff;border-radius:9px}
.satria-redesign .lm-subject-overview{padding:15px 17px}.satria-redesign .lm-subject-card{border-color:#d9e3ea;border-radius:10px;background:#fff}.satria-redesign .lm-subject-icon{background:#eaf3fb;color:#0b67b2}
.satria-redesign .lm-subject-card-title strong{font-size:11.5px;color:#21435c}.satria-redesign .lm-subject-card-title span{font-size:8.5px;color:#82919f}.satria-redesign .lm-subject-stat strong{font-size:21px;color:#173b59}.satria-redesign .lm-subject-footer{border-top-color:#e5ebf0}

/* ASSESSMENT — presentation only */
.satria-redesign .admin-assessment-page{color:var(--satria-text)}
.satria-redesign .admin-assessment-hero{margin:0 0 15px;padding:15px 18px;border:1px solid var(--satria-line);border-radius:14px;background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .admin-assessment-kicker{color:var(--satria-primary);font-size:9px;font-weight:850;letter-spacing:.11em}
.satria-redesign .admin-assessment-hero h1{font-size:24px;color:#173b59}.satria-redesign .admin-assessment-hero p,.satria-redesign .admin-formative-helper{font-size:10.5px;color:#6f8192}
.satria-redesign .admin-assessment-year{padding:9px 12px;border:1px solid #d8e3eb;border-radius:9px;background:#f7fafc}.satria-redesign .admin-assessment-year span{font-size:8.5px;color:#7b8a99}.satria-redesign .admin-assessment-year strong{font-size:12px;color:#23445e}
.satria-redesign .admin-assessment-card{border:1px solid var(--satria-line);border-radius:12px;background:#fff;box-shadow:var(--satria-shadow)}
.satria-redesign .formative-grade-card{background:#f8fafc;border-color:#d7e2e9}.satria-redesign .formative-grade-card.active{background:#0b67b2;border-color:#0b67b2;color:#fff;box-shadow:0 5px 11px rgba(11,103,178,.14)}
.satria-redesign .formative-grade-card.active span{color:#dceef8}
.satria-redesign .formative-native-select,.satria-redesign .formative-search-trigger{border-color:#cfd9e3;background:#fff;color:#17344d}
.satria-redesign .formative-flow-label{color:#405a70}.satria-redesign .formative-flow-label span{background:#eaf3fb;color:#0b67b2}
.satria-redesign .formative-input-card{box-shadow:var(--satria-shadow)}
.satria-redesign .admin-assessment-table-wrap{border:1px solid var(--satria-line);border-radius:10px;overflow:auto}.satria-redesign .admin-assessment-table th{background:#f1f5f8;color:#40596f}.satria-redesign .admin-score-input{border-color:#cfd9e3}

/* DASHBOARD — calmer and consistent with the workspace */
.satria-redesign .dashboard-redesign-hero{background:#0d3458;box-shadow:0 14px 28px rgba(7,39,68,.16);border-radius:15px}
.satria-redesign .dashboard-redesign-hero::before{background:radial-gradient(circle,rgba(94,198,239,.14),transparent 68%)}
.satria-redesign .dashboard-redesign-hero::after{border-color:rgba(255,255,255,.08);box-shadow:0 0 0 28px rgba(255,255,255,.018),0 0 0 58px rgba(255,255,255,.012)}
.satria-redesign .dashboard-redesign-hero .dashboard-hero-main h1{font-size:28px}
.satria-redesign .dashboard-block{border-color:var(--satria-line);box-shadow:var(--satria-shadow)}
.satria-redesign .dashboard-stat-card{border-color:var(--satria-line);box-shadow:none}.satria-redesign .dashboard-stat-card:hover{box-shadow:var(--satria-shadow-hover)}

/* RESPONSIVE */
@media(max-width:1200px){
  .satria-redesign .workspace-content{padding-left:10px;padding-right:10px}
  .satria-redesign .subject-overview{grid-template-columns:1fr 1fr}
  .satria-redesign .subject-overview-card.primary{grid-column:1/-1}
}
@media(max-width:1050px){
  .satria-redesign .learning-command-head{align-items:flex-start;flex-direction:column}
  .satria-redesign .learning-command-actions,.satria-redesign .page-intro-side .head-actions{justify-content:flex-start}
  .satria-redesign .learning-filter-grid{grid-template-columns:1fr 1fr}
  .satria-redesign .learning-filter-actions{grid-column:1/-1}
  .satria-redesign .learning-assignment-row{grid-template-columns:1fr;gap:8px}
  .satria-redesign .learning-row-actions{justify-content:flex-start}
}
@media(max-width:900px){
  .satria-redesign .app-sidebar{transform:translateX(-100%);box-shadow:none}
  .satria-redesign.sidebar-open .app-sidebar{transform:translateX(0);box-shadow:18px 0 42px rgba(5,28,50,.20)}
  .satria-redesign .app-main{margin-left:0}
  .satria-redesign .workspace{padding:0 16px 36px}
  .satria-redesign .workspace-content{padding:0 0 30px}
  .satria-redesign .app-topbar{padding:0 16px}
  .satria-redesign .page-intro{align-items:flex-start;flex-direction:column}
  .satria-redesign .page-intro-side{width:100%}
  .satria-redesign .page-intro-side .head-actions{width:100%}
  .satria-redesign .dashboard-redesign-hero{grid-template-columns:1fr}
  .satria-redesign .formative-context-row{grid-template-columns:1fr}
}
@media(max-width:760px){
  .satria-redesign .workspace{padding:0 12px 30px}
  .satria-redesign .app-topbar{padding:0 12px}
  .satria-redesign .page-intro{padding:15px 15px 15px 18px}
  .satria-redesign .page-intro h1{font-size:22px}
  .satria-redesign .page-intro-side .head-actions>*{flex:1 1 0;min-width:0}
  .satria-redesign .subject-overview{grid-template-columns:1fr}
  .satria-redesign .subject-overview-card.primary{grid-column:auto}
  .satria-redesign .subject-grade-tabs,.satria-redesign .lm-grade-actions{grid-template-columns:1fr}
  .satria-redesign .learning-grade-switcher{grid-template-columns:1fr 1fr;padding:10px 12px}
  .satria-redesign .learning-workflow-note,.satria-redesign .learning-filter-polished{margin-left:12px;margin-right:12px}
  .satria-redesign .learning-filter-grid{grid-template-columns:1fr}.satria-redesign .learning-filter-actions{grid-column:auto}
  .satria-redesign .learning-mini-summary{grid-template-columns:1fr}
  .satria-redesign .learning-teacher-card{margin:9px}
  .satria-redesign .learning-teacher-head{align-items:stretch;flex-direction:column}
  .satria-redesign .learning-add-teacher{width:100%}
  .satria-redesign .learning-row-actions,.satria-redesign .learning-row-actions .btn{width:100%}
  .satria-redesign .learning-row-actions{display:grid;grid-template-columns:1fr 1fr}
  .satria-redesign .lm-subject-grid{grid-template-columns:1fr}
  .satria-redesign .topbar-user{display:none}
  .satria-redesign .satria-excel-download-btn{min-width:0}
}
@media(max-width:560px){
  .satria-redesign .page-intro-side .head-actions{display:grid;grid-template-columns:1fr 1fr}
  .satria-redesign .page-intro-side .head-actions>*{width:100%}
  .satria-redesign .page-intro-side .head-actions .btn.primary{grid-column:1/-1}
  .satria-redesign .learning-grade-switcher{grid-template-columns:1fr}
}

/* ======================================================================
   SATRIA v4.2.100.130 — OPERATIONS + DOCUMENT WORKSPACE
   Screen presentation only. Print document rules intentionally excluded.
   ====================================================================== */
@media screen {
  /* ----- shared operational rhythm ----- */
  .satria-admin.satria-redesign .workspace-content > .card,
  .satria-admin.satria-redesign .workspace-content > .page-shell > .card{
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .section-title,
  .satria-admin.satria-redesign .section-heading h2{
    color:#173b59;
    letter-spacing:-.02em;
  }
  .satria-admin.satria-redesign .section-subtitle,
  .satria-admin.satria-redesign .section-heading p{
    color:#728395;
  }
  .satria-admin.satria-redesign .field label,
  .satria-admin.satria-redesign .academic-filter label,
  .satria-admin.satria-redesign .filter-grid label{
    color:#496278;
    font-size:9px;
    font-weight:850;
    letter-spacing:.035em;
  }
  .satria-admin.satria-redesign .field input,
  .satria-admin.satria-redesign .field select,
  .satria-admin.satria-redesign .filter-grid input,
  .satria-admin.satria-redesign .filter-grid select,
  .satria-admin.satria-redesign .academic-filter input,
  .satria-admin.satria-redesign .academic-filter select{
    border-color:#cfdbe5;
    border-radius:9px;
    background:#fff;
    color:#193b56;
  }
  .satria-admin.satria-redesign .field input:focus,
  .satria-admin.satria-redesign .field select:focus,
  .satria-admin.satria-redesign .filter-grid input:focus,
  .satria-admin.satria-redesign .filter-grid select:focus,
  .satria-admin.satria-redesign .academic-filter input:focus,
  .satria-admin.satria-redesign .academic-filter select:focus{
    border-color:#6eaae0;
    box-shadow:0 0 0 3px rgba(11,103,178,.09);
    outline:none;
  }

  /* ----- academic process ----- */
  .satria-admin.satria-redesign .academic-hero{
    padding:0;
    overflow:hidden;
    border:1px solid #d6e1ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,46,73,.055);
  }
  .satria-admin.satria-redesign .academic-hero > .head{
    margin:0;
    padding:18px 20px 16px;
    border-bottom:1px solid #dfe7ed;
    background:#fff;
  }
  .satria-admin.satria-redesign .academic-title{
    gap:11px;
  }
  .satria-admin.satria-redesign .academic-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:10px;
    border:1px solid #cfe0ec;
    background:#edf5fb;
    color:#0b67b2;
    font-size:10px;
    font-weight:900;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .academic-title h2{
    color:#173b59;
    font-size:18px;
  }
  .satria-admin.satria-redesign .academic-title .muted{
    max-width:820px;
    color:#748596;
    font-size:9.5px;
  }
  .satria-admin.satria-redesign .academic-hero .status-on-dark{
    background:#eaf3fa;
    border:1px solid #d3e2ec;
    color:#2f5875;
  }
  .satria-admin.satria-redesign .semester-nav{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:6px;
    padding:10px 12px 12px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .semester-tab{
    min-height:51px;
    padding:7px 8px;
    border:1px solid #d8e3ea;
    border-radius:9px;
    background:#fff;
    color:#49637a;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .semester-tab:hover{
    border-color:#a9c4d8;
    background:#fbfdff;
  }
  .satria-admin.satria-redesign .semester-tab.active{
    background:#0b67b2;
    border-color:#0b67b2;
    color:#fff;
    box-shadow:0 6px 14px rgba(11,103,178,.15);
  }
  .satria-admin.satria-redesign .semester-tab small{
    margin-top:2px;
    color:#8192a2;
    font-size:7.5px;
  }
  .satria-admin.satria-redesign .semester-tab.active small{
    color:#d9edf8;
  }
  .satria-admin.satria-redesign .process-strip{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:0 0 14px;
  }
  .satria-admin.satria-redesign .process-step{
    position:relative;
    min-height:70px;
    padding:11px 12px 10px 14px;
    border:1px solid #dce5ec;
    border-radius:10px;
    background:#f8fafc;
  }
  .satria-admin.satria-redesign .process-step::before{
    content:"";
    position:absolute;
    left:0;
    top:10px;
    bottom:10px;
    width:3px;
    border-radius:3px;
    background:#b9cfdf;
  }
  .satria-admin.satria-redesign .process-step strong{
    display:block;
    color:#214964;
    font-size:10px;
    font-weight:900;
  }
  .satria-admin.satria-redesign .process-step span{
    display:block;
    margin-top:3px;
    color:#78899a;
    font-size:8.5px;
    line-height:1.45;
  }
  .satria-admin.satria-redesign .decision-note,
  .satria-admin.satria-redesign .danger-note{
    border-radius:9px;
    padding:10px 12px;
    font-size:9px;
    line-height:1.5;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .decision-note{
    border:1px solid #d6e4ee;
    background:#f4f8fb;
    color:#536c80;
  }
  .satria-admin.satria-redesign .decision-note strong{color:#244c67}
  .satria-admin.satria-redesign .danger-note{
    border:1px solid #eed2d8;
    background:#fff5f6;
    color:#8c4b58;
  }
  .satria-admin.satria-redesign .academic-filter{
    display:grid;
    grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr) auto;
    align-items:end;
    gap:8px;
    padding:12px;
    margin:15px 0;
    border:1px solid #dfe7ed;
    border-radius:10px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .academic-filter .btn{min-width:88px}
  .satria-admin.satria-redesign .academic-process-page .table-wrap,
  .satria-admin.satria-redesign .academic-process-page .table-wrap table{
    width:100%;
  }
  .satria-admin.satria-redesign .academic-process-page .table-wrap{
    border-radius:10px;
  }
  .satria-admin.satria-redesign .academic-process-page .table-wrap td{
    height:48px;
  }
  .satria-admin.satria-redesign .academic-process-page .table-wrap td strong{
    color:#1c425e;
    font-weight:850;
  }
  .satria-admin.satria-redesign .academic-process-page .table-actions .btn{
    min-width:68px;
  }

  /* ----- class report / homeroom data ----- */
  .satria-admin.satria-redesign .class-report-data-page{
    max-width:1280px;
    padding:22px 24px 48px;
  }
  .satria-admin.satria-redesign .class-report-hero,
  .satria-admin.satria-redesign .ekstra-hero{
    padding:18px 20px;
    margin-bottom:13px;
    border:1px solid #d6e1ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,46,73,.05);
  }
  .satria-admin.satria-redesign .class-report-hero h1,
  .satria-admin.satria-redesign .ekstra-hero h1{
    color:#173b59;
    font-size:24px;
    letter-spacing:-.035em;
  }
  .satria-admin.satria-redesign .class-report-kicker,
  .satria-admin.satria-redesign .ekstra-kicker,
  .satria-admin.satria-redesign .kokur-kicker{
    color:#0b67b2;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.12em;
  }
  .satria-admin.satria-redesign .class-report-hero p,
  .satria-admin.satria-redesign .ekstra-hero p{
    color:#748596;
    font-size:10px;
  }
  .satria-admin.satria-redesign .class-report-year,
  .satria-admin.satria-redesign .ekstra-year,
  .satria-admin.satria-redesign .kokur-year{
    min-width:165px;
    padding:9px 11px;
    border:1px solid #d9e5ed;
    border-radius:9px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .class-report-year strong,
  .satria-admin.satria-redesign .ekstra-year strong,
  .satria-admin.satria-redesign .kokur-year strong{color:#214a66;font-size:13px}
  .satria-admin.satria-redesign .class-report-context-card,
  .satria-admin.satria-redesign .class-report-input-card,
  .satria-admin.satria-redesign .class-report-tools-card,
  .satria-admin.satria-redesign .ekstra-card,
  .satria-admin.satria-redesign .kokur-card{
    border-color:#d8e2e9;
    border-radius:12px;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .class-report-context-head,
  .satria-admin.satria-redesign .ekstra-input-head,
  .satria-admin.satria-redesign .kokur-section-head{
    padding-bottom:11px;
    border-bottom:1px solid #e2e9ee;
  }
  .satria-admin.satria-redesign .class-report-grade-card,
  .satria-admin.satria-redesign .ekstra-grade,
  .satria-admin.satria-redesign .kokur-grade{
    min-height:56px;
    border-radius:9px;
    border-color:#d5e1e9;
    background:#fff;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .class-report-grade-card.is-active,
  .satria-admin.satria-redesign .ekstra-grade.is-active,
  .satria-admin.satria-redesign .kokur-grade.is-active{
    border-color:#0b67b2;
    background:#0b67b2;
    color:#fff;
    box-shadow:0 6px 14px rgba(11,103,178,.14);
  }
  .satria-admin.satria-redesign .class-report-grade-number,
  .satria-admin.satria-redesign .ekstra-grade b,
  .satria-admin.satria-redesign .kokur-grade b{
    color:#0b67b2;
    background:#eaf3f9;
  }
  .satria-admin.satria-redesign .class-report-grade-card.is-active .class-report-grade-number,
  .satria-admin.satria-redesign .ekstra-grade.is-active b,
  .satria-admin.satria-redesign .kokur-grade.is-active b{
    color:#fff;
    background:rgba(255,255,255,.15);
  }
  .satria-admin.satria-redesign .class-report-context-option,
  .satria-admin.satria-redesign .ekstra-semester,
  .satria-admin.satria-redesign .kokur-semester{
    border-color:#d7e2e9;
    border-radius:9px;
    background:#fff;
  }
  .satria-admin.satria-redesign .class-report-context-option.is-active,
  .satria-admin.satria-redesign .ekstra-semester.is-active,
  .satria-admin.satria-redesign .kokur-semester.is-active{
    border-color:#5a95c2;
    background:#edf6fb;
    box-shadow:inset 0 0 0 1px #5a95c2;
  }
  .satria-admin.satria-redesign .class-report-context-flow-note,
  .satria-admin.satria-redesign .kokur-helper{
    border:1px solid #d9e5ec;
    border-radius:9px;
    background:#f7fafc;
    color:#587083;
  }
  .satria-admin.satria-redesign .class-report-tools-card,
  .satria-admin.satria-redesign .ekstra-excel-card,
  .satria-admin.satria-redesign .kokur-excel-card{
    border-top:2px solid #2f8a61;
    background:#fff;
  }
  .satria-admin.satria-redesign .class-report-excel-toolbar,
  .satria-admin.satria-redesign .ekstra-excel-actions,
  .satria-admin.satria-redesign .kokur-excel-actions{
    padding:6px;
    border:1px solid #dce7e2;
    border-radius:10px;
    background:#f7fbf8;
  }
  .satria-admin.satria-redesign .class-report-file-picker,
  .satria-admin.satria-redesign .ekstra-file,
  .satria-admin.satria-redesign .kokur-file{
    border-color:#bfd7cb;
    border-radius:8px;
    background:#fff;
    color:#356a52;
  }
  .satria-admin.satria-redesign .class-report-action-upload,
  .satria-admin.satria-redesign .ekstra-btn.primary,
  .satria-admin.satria-redesign .kokur-btn.primary,
  .satria-admin.satria-redesign .class-report-save-bar .btn.primary,
  .satria-admin.satria-redesign .ekstra-save,
  .satria-admin.satria-redesign .kokur-save{
    background:#167a52;
    border-color:#167a52;
    color:#fff;
  }
  .satria-admin.satria-redesign .homeroom-report-table-wrap,
  .satria-admin.satria-redesign .ekstra-table-wrap,
  .satria-admin.satria-redesign .kokur-table-wrap{
    border-color:#d7e1e7;
    border-radius:10px;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .homeroom-report-table th,
  .satria-admin.satria-redesign .ekstra-table th,
  .satria-admin.satria-redesign .kokur-table th{
    background:#eef3f6;
    color:#456176;
    border-bottom-color:#d5dfe6;
    font-size:8.5px;
  }
  .satria-admin.satria-redesign .homeroom-report-table td,
  .satria-admin.satria-redesign .ekstra-table td,
  .satria-admin.satria-redesign .kokur-table td{
    color:#304d62;
    font-size:10px;
    border-bottom-color:#e8edf1;
  }
  .satria-admin.satria-redesign .homeroom-attendance-input,
  .satria-admin.satria-redesign .homeroom-note-input,
  .satria-admin.satria-redesign .ekstra-input,
  .satria-admin.satria-redesign .kokur-input{
    border-color:#cdd9e1;
    border-radius:7px;
    background:#fff;
  }
  .satria-admin.satria-redesign .homeroom-attendance-input:focus,
  .satria-admin.satria-redesign .homeroom-note-input:focus,
  .satria-admin.satria-redesign .ekstra-input:focus,
  .satria-admin.satria-redesign .kokur-input:focus{
    border-color:#5f9ec7;
    box-shadow:0 0 0 3px rgba(11,103,178,.08);
    outline:none;
  }

  /* ----- report/document selection workspaces ----- */
  .satria-admin.satria-redesign .rapor-semester-page,
  .satria-admin.satria-redesign .rapor-sts-page,
  .satria-admin.satria-redesign .report-cover-page,
  .satria-admin.satria-redesign .book-induk-page,
  .satria-admin.satria-redesign .tni-page,
  .satria-admin.satria-redesign .admin-assessment-page{
    position:relative;
  }
  .satria-admin.satria-redesign .rs-toolbar,
  .satria-admin.satria-redesign .rapor-sts-hero,
  .satria-admin.satria-redesign .report-cover-hero,
  .satria-admin.satria-redesign .book-induk-hero,
  .satria-admin.satria-redesign .tni-hero,
  .satria-admin.satria-redesign .graduation-hero{
    padding:16px 18px;
    margin-bottom:13px;
    border:1px solid #d6e1ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,46,73,.05);
  }
  .satria-admin.satria-redesign .rs-toolbar h1,
  .satria-admin.satria-redesign .rapor-sts-hero h1,
  .satria-admin.satria-redesign .report-cover-hero h1,
  .satria-admin.satria-redesign .book-induk-hero h1,
  .satria-admin.satria-redesign .graduation-hero h1,
  .satria-admin.satria-redesign .tni-hero h1{
    color:#173b59;
    font-size:24px;
  }
  .satria-admin.satria-redesign .rs-toolbar p,
  .satria-admin.satria-redesign .rapor-sts-hero p,
  .satria-admin.satria-redesign .report-cover-hero p,
  .satria-admin.satria-redesign .book-induk-hero p,
  .satria-admin.satria-redesign .graduation-hero p,
  .satria-admin.satria-redesign .tni-hero p{
    color:#748596;
    font-size:10px;
  }
  .satria-admin.satria-redesign .rs-year-box,
  .satria-admin.satria-redesign .rapor-sts-year,
  .satria-admin.satria-redesign .report-cover-scope{
    padding:9px 11px;
    min-width:165px;
    border-color:#d8e4eb;
    border-radius:9px;
    background:#f7fafc;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .rs-selection,
  .satria-admin.satria-redesign .rapor-sts-card,
  .satria-admin.satria-redesign .report-cover-card,
  .satria-admin.satria-redesign .book-induk-selection-card,
  .satria-admin.satria-redesign .tni-context-card,
  .satria-admin.satria-redesign .tni-control-card,
  .satria-admin.satria-redesign .graduation-grid,
  .satria-admin.satria-redesign .graduation-formula,
  .satria-admin.satria-redesign .graduation-result-head{
    border-color:#d8e2e9;
  }
  .satria-admin.satria-redesign .rs-grade,
  .satria-admin.satria-redesign .rapor-sts-grade,
  .satria-admin.satria-redesign .report-cover-page .grade-chip,
  .satria-admin.satria-redesign .book-induk-report-chip{
    min-height:55px;
    border-radius:9px;
    border-color:#d6e2e9;
    background:#fff;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .rs-grade.is-active,
  .satria-admin.satria-redesign .rapor-sts-grade.is-active,
  .satria-admin.satria-redesign .report-cover-page .grade-chip.is-active,
  .satria-admin.satria-redesign .book-induk-report-chip.is-active{
    border-color:#0b67b2;
    background:#0b67b2;
    color:#fff;
    box-shadow:0 6px 14px rgba(11,103,178,.14);
  }
  .satria-admin.satria-redesign .rs-grade-number,
  .satria-admin.satria-redesign .rapor-sts-grade-number,
  .satria-admin.satria-redesign .report-cover-page .grade-chip-number{
    background:#eaf3f9;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .rs-grade.is-active .rs-grade-number,
  .satria-admin.satria-redesign .rapor-sts-grade.is-active .rapor-sts-grade-number,
  .satria-admin.satria-redesign .report-cover-page .grade-chip.is-active .grade-chip-number{
    background:rgba(255,255,255,.15);
    color:#fff;
  }
  .satria-admin.satria-redesign .rs-select-grid select,
  .satria-admin.satria-redesign .rapor-sts-select,
  .satria-admin.satria-redesign .report-cover-filter select,
  .satria-admin.satria-redesign .book-induk-filter select,
  .satria-admin.satria-redesign .tni-select{
    border-color:#cfdbe5;
    border-radius:9px;
    background:#fff;
    color:#193b56;
  }
  .satria-admin.satria-redesign .rs-actions,
  .satria-admin.satria-redesign .rapor-sts-actions,
  .satria-admin.satria-redesign .book-induk-print-actions,
  .satria-admin.satria-redesign .report-cover-actions{
    padding-top:12px;
    border-top-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .rs-preview,
  .satria-admin.satria-redesign .report-cover-preview-wrap,
  .satria-admin.satria-redesign .book-induk-preview-wrap,
  .satria-admin.satria-redesign .rapor-sts-document-wrap{
    margin-top:13px;
  }
  .satria-admin.satria-redesign .rs-document,
  .satria-admin.satria-redesign .rapor-sts-print-area,
  .satria-admin.satria-redesign .report-cover-preview-wrap,
  .satria-admin.satria-redesign .book-induk-preview-wrap{
    background:#eaf0f4;
    border:1px solid #d5dfe6;
    border-radius:12px;
  }
  .satria-admin.satria-redesign .rs-preview-note,
  .satria-admin.satria-redesign .report-cover-scope small,
  .satria-admin.satria-redesign .book-induk-report-chip span{
    color:#607487;
  }
  /* Document sheets themselves are deliberately not recolored. */
  .satria-admin.satria-redesign .rs-page,
  .satria-admin.satria-redesign .report-cover-sheet,
  .satria-admin.satria-redesign .book-induk-sheet{
    box-shadow:0 12px 28px rgba(15,42,67,.13);
  }

  /* ----- reports / final recap ----- */
  .satria-admin.satria-redesign .admin-assessment-page .admin-assessment-card,
  .satria-admin.satria-redesign .admin-assessment-page .formative-input-card{
    border-color:#d7e1e8;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .graduation-grid{
    gap:9px;
  }
  .satria-admin.satria-redesign .graduation-stat{
    min-height:74px;
    padding:12px 13px;
    border-radius:10px;
    background:#fff;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .graduation-stat span{
    color:#718396;
    font-size:8px;
  }
  .satria-admin.satria-redesign .graduation-stat strong{
    margin-top:4px;
    color:#1c415d;
    font-size:18px;
  }
  .satria-admin.satria-redesign .graduation-formula{
    padding:11px 13px;
    border-radius:10px;
    background:#f5f9fc;
  }
  .satria-admin.satria-redesign .graduation-formula strong{color:#234964;font-size:10px}
  .satria-admin.satria-redesign .graduation-formula p{font-size:9px;color:#708295}
  .satria-admin.satria-redesign .graduation-final-cell{
    background:#eef6fb!important;
  }
  .satria-admin.satria-redesign .graduation-final-cell strong{color:#0b67b2}

  /* ----- Transkrip Nilai Ijazah / wide data workspace ----- */
  .satria-admin.satria-redesign .tni-actions-panel,
  .satria-admin.satria-redesign .tni-config,
  .satria-admin.satria-redesign .tni-table-card,
  .satria-admin.satria-redesign .tni-onboarding{
    border-color:#d7e2e9;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .tni-config{
    background:#f6fafc;
  }
  .satria-admin.satria-redesign .tni-table-top{
    background:#fff;
  }
  .satria-admin.satria-redesign .tni-table thead tr:first-child th{
    background:#edf3f7;
    color:#294b62;
  }
  .satria-admin.satria-redesign .tni-table thead tr:nth-child(2) th{
    background:#f7fafc;
    color:#587084;
  }
  .satria-admin.satria-redesign .tni-table .subject-head.optional{
    background:#fff7e8!important;
    color:#83540f!important;
  }
  .satria-admin.satria-redesign .tni-table .summary-head{
    background:#eef5fb!important;
    color:#2b5d83!important;
  }
  .satria-admin.satria-redesign .tni-table .final{
    background:#eaf3fa!important;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .tni-mini-btn{
    border-color:#c9dce8;
    background:#f4f9fc;
    color:#2c6489;
  }

  /* ----- configuration ----- */
  .satria-admin.satria-redesign .system-settings-shell{
    gap:12px;
  }
  .satria-admin.satria-redesign .system-settings-intro{
    margin:0;
    padding:15px 18px;
    border:1px solid #d6e1ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,46,73,.05);
  }
  .satria-admin.satria-redesign .system-settings-grid{
    gap:10px;
  }
  .satria-admin.satria-redesign .system-config-button{
    padding:14px 15px;
    border-color:#d6e1e8;
    border-radius:11px;
    box-shadow:none;
    background:#fff;
  }
  .satria-admin.satria-redesign .system-config-button:hover{
    border-color:#aac1d2;
    box-shadow:0 8px 18px rgba(16,42,67,.055);
  }
  .satria-admin.satria-redesign .system-config-kicker{
    color:#0b67b2;
    font-size:8px;
  }
  .satria-admin.satria-redesign .system-config-copy strong{
    color:#1c405b;
    font-size:13px;
  }
  .satria-admin.satria-redesign .system-config-copy small{
    color:#758697;
    font-size:9.5px;
  }
  .satria-admin.satria-redesign .system-config-value{
    color:#375a70;
    font-size:9px;
  }
  .satria-admin.satria-redesign .system-config-arrow{
    width:30px;height:30px;flex-basis:30px;
    border:1px solid #d9e4eb;
    background:#f4f8fa;
    color:#39779e;
  }
  .satria-admin.satria-redesign .system-toggle-panel{
    border-color:#d8e3ea;
    border-radius:10px;
    background:#f7fafc;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .exam-global-box,
  .satria-admin.satria-redesign .exam-table-wrap,
  .satria-admin.satria-redesign .leger-range-wrap{
    border-color:#d8e3ea;
    border-radius:10px;
  }
  .satria-admin.satria-redesign .exam-global-box{
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .exam-table th,
  .satria-admin.satria-redesign .leger-range-table th{
    background:#eef3f6;
    color:#4a6276;
  }
  .satria-admin.satria-redesign .settings-modal .modal{
    border-radius:13px;
  }
  .satria-admin.satria-redesign .settings-modal .modal-head{
    background:#f8fafb;
    border-bottom-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .settings-modal .modal-body{
    background:#fff;
  }

  /* ----- risk / data reset ----- */
  .satria-admin.satria-redesign .reset-page{
    max-width:1100px;
    margin:0 auto;
  }
  .satria-admin.satria-redesign .reset-hero{
    border:1px solid #ead4d8;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(77,37,47,.045);
  }
  .satria-admin.satria-redesign .reset-warning{
    border:1px solid #edcbd1;
    border-radius:10px;
    background:#fff5f6;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .reset-card{
    border-color:#d9e2e8;
    border-radius:12px;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .reset-sequence-item{
    border-color:#d8e2e9;
    border-radius:10px;
    background:#fff;
  }
  .satria-admin.satria-redesign .reset-sequence-item.is-next{
    border-left:3px solid #c23d52;
  }
  .satria-admin.satria-redesign .reset-sequence-item.is-complete{
    border-left:3px solid #167a52;
  }
  .satria-admin.satria-redesign .reset-sequence-item.is-locked{
    border-left:3px solid #cfd8df;
  }
  .satria-admin.satria-redesign .reset-sequence-number{
    border-color:#d9e2e8;
    background:#f7fafc;
    color:#5d7183;
  }
  .satria-admin.satria-redesign .reset-status.done{
    background:#eaf7f0;
    color:#167a52;
  }
  .satria-admin.satria-redesign .reset-status.next{
    background:#fff0f3;
    color:#b53d52;
  }
  .satria-admin.satria-redesign .reset-status.locked{
    background:#f1f4f6;
    color:#6f7e8b;
  }
  .satria-admin.satria-redesign .reset-protected-card{
    background:#f6faf8;
    border-color:#d5e5dc;
  }
  .satria-admin.satria-redesign .reset-modal{
    max-width:620px;
    border-radius:13px;
  }
  .satria-admin.satria-redesign .reset-modal-alert{
    border-color:#edcbd1;
    background:#fff4f5;
    color:#8f4553;
  }
  .satria-admin.satria-redesign .reset-confirm-status.valid{
    color:#167a52;
  }

  /* ----- responsive: operations remain usable, tables stay data-first ----- */
  @media (max-width:1050px){
    .satria-admin.satria-redesign .semester-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
    .satria-admin.satria-redesign .process-strip{grid-template-columns:1fr}
    .satria-admin.satria-redesign .academic-filter{grid-template-columns:1fr 1fr}
    .satria-admin.satria-redesign .academic-filter .btn{grid-column:1/-1;justify-self:start}
    .satria-admin.satria-redesign .class-report-tools-card,
    .satria-admin.satria-redesign .ekstra-excel-card,
    .satria-admin.satria-redesign .kokur-excel-card{display:flex;align-items:flex-start;flex-direction:column}
    .satria-admin.satria-redesign .class-report-excel-toolbar,
    .satria-admin.satria-redesign .ekstra-excel-actions,
    .satria-admin.satria-redesign .kokur-excel-actions{width:100%}
  }
  @media (max-width:900px){
    .satria-admin.satria-redesign .class-report-data-page{padding:18px 14px 38px}
    .satria-admin.satria-redesign .class-report-hero,
    .satria-admin.satria-redesign .ekstra-hero{align-items:flex-start;flex-direction:column}
    .satria-admin.satria-redesign .class-report-year,
    .satria-admin.satria-redesign .ekstra-year,
    .satria-admin.satria-redesign .kokur-year{width:100%;text-align:left}
    .satria-admin.satria-redesign .rs-toolbar,
    .satria-admin.satria-redesign .rapor-sts-hero,
    .satria-admin.satria-redesign .report-cover-hero,
    .satria-admin.satria-redesign .book-induk-hero,
    .satria-admin.satria-redesign .tni-hero,
    .satria-admin.satria-redesign .graduation-hero{align-items:flex-start;flex-direction:column}
    .satria-admin.satria-redesign .rs-year-box,
    .satria-admin.satria-redesign .rapor-sts-year,
    .satria-admin.satria-redesign .report-cover-scope{width:100%;text-align:left}
    .satria-admin.satria-redesign .rs-grades,
    .satria-admin.satria-redesign .rapor-sts-grades,
    .satria-admin.satria-redesign .report-cover-page .grade-picker{grid-template-columns:1fr}
    .satria-admin.satria-redesign .rs-select-grid,
    .satria-admin.satria-redesign .rs-select-grid-after-grade,
    .satria-admin.satria-redesign .rapor-sts-flow,
    .satria-admin.satria-redesign .book-induk-filter,
    .satria-admin.satria-redesign .report-cover-filter{grid-template-columns:1fr}
    .satria-admin.satria-redesign .graduation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .satria-admin.satria-redesign .tni-onboarding{grid-template-columns:1fr}
    .satria-admin.satria-redesign .system-settings-grid{grid-template-columns:1fr}
  }
  @media (max-width:640px){
    .satria-admin.satria-redesign .semester-nav{grid-template-columns:1fr 1fr}
    .satria-admin.satria-redesign .academic-filter{grid-template-columns:1fr}
    .satria-admin.satria-redesign .academic-filter .btn{grid-column:auto;width:100%}
    .satria-admin.satria-redesign .graduation-grid{grid-template-columns:1fr}
    .satria-admin.satria-redesign .rs-actions,
    .satria-admin.satria-redesign .rapor-sts-actions,
    .satria-admin.satria-redesign .report-cover-actions,
    .satria-admin.satria-redesign .book-induk-print-actions{display:grid;grid-template-columns:1fr}
  }
}


@media screen {
  /* ----- Penugasan: create/edit/replace workspaces ----- */
  .satria-admin.satria-redesign .learning-create-shell,
  .satria-admin.satria-redesign .learning-edit-shell,
  .satria-admin.satria-redesign .form-shell{
    border-color:#d7e2e9;
    border-radius:12px;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .learning-create-heading,
  .satria-admin.satria-redesign .learning-selection-head,
  .satria-admin.satria-redesign .learning-detail-hero,
  .satria-admin.satria-redesign .learning-config-bar,
  .satria-admin.satria-redesign .learning-grade-panel-head,
  .satria-admin.satria-redesign .lm-detail-hero-card,
  .satria-admin.satria-redesign .lm-structure-head{
    border-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .learning-grade-selector{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .satria-admin.satria-redesign .learning-grade-toggle{
    min-height:64px;
    padding:10px 11px;
    border:1px solid #d6e2e9;
    border-radius:10px;
    background:#fff;
    color:#36536a;
  }
  .satria-admin.satria-redesign .learning-grade-toggle:hover{
    border-color:#9eb9cc;
    background:#fbfdfe;
  }
  .satria-admin.satria-redesign .learning-grade-toggle.is-selected{
    border-color:#0b67b2;
    background:#edf6fb;
    box-shadow:inset 0 0 0 1px #0b67b2;
  }
  .satria-admin.satria-redesign .learning-grade-check{
    border-color:#cbd9e2;
    background:#f4f8fa;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .learning-grade-toggle.is-selected .learning-grade-check{
    background:#0b67b2;
    border-color:#0b67b2;
    color:#fff;
  }
  .satria-admin.satria-redesign .learning-grade-copy strong{
    color:#20445f;
    font-size:11px;
  }
  .satria-admin.satria-redesign .learning-grade-copy small{
    color:#7a8b99;
    font-size:8px;
  }
  .satria-admin.satria-redesign .learning-config-shell{
    margin-top:14px;
    border:1px solid #d9e3e9;
    border-radius:11px;
    background:#f7fafc;
    overflow:hidden;
  }
  .satria-admin.satria-redesign .learning-config-bar{
    padding:11px 13px;
    background:#fff;
    border-bottom:1px solid #dfe7ed;
  }
  .satria-admin.satria-redesign .learning-config-count{
    border:1px solid #d6e2e9;
    border-radius:999px;
    background:#f5f8fa;
    color:#5f7484;
    font-size:8px;
  }
  .satria-admin.satria-redesign .learning-grade-panel{
    margin:10px;
    border:1px solid #d8e2e9;
    border-radius:10px;
    background:#fff;
    overflow:hidden;
  }
  .satria-admin.satria-redesign .learning-grade-panel-head{
    padding:11px 12px;
    background:#fbfcfd;
    border-bottom:1px solid #e1e8ed;
  }
  .satria-admin.satria-redesign .learning-panel-number{
    width:34px;height:34px;flex:0 0 34px;
    border-radius:9px;
    background:#eaf3f9;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .learning-panel-state{
    border-color:#d5e1e8;
    background:#f5f8fa;
    color:#5d7180;
    font-size:8px;
  }
  .satria-admin.satria-redesign .learning-matrix-wrap{
    padding:10px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .learning-matrix-note{
    border-color:#d9e4eb;
    background:#fff;
    border-radius:9px;
  }
  .satria-admin.satria-redesign .learning-matrix-dot{background:#0b67b2}
  .satria-admin.satria-redesign .learning-matrix-scroll{
    border-color:#d8e2e9;
    border-radius:9px;
    background:#fff;
  }
  .satria-admin.satria-redesign .learning-matrix th{
    background:#eef3f6;
    color:#4a6276;
  }
  .satria-admin.satria-redesign .learning-matrix td{
    background:#fff;
    border-color:#e4ebef;
  }
  .satria-admin.satria-redesign .learning-matrix td:hover{
    background:#f5f9fc;
  }
  .satria-admin.satria-redesign .learning-matrix-cell.is-used{
    background:#fff4f5!important;
  }
  .satria-admin.satria-redesign .learning-matrix-check{
    border-color:#cbd8e1;
    background:#f8fafc;
  }
  .satria-admin.satria-redesign .learning-matrix-check input:checked + span{
    background:#0b67b2;
    border-color:#0b67b2;
  }
  .satria-admin.satria-redesign .form-actions{
    border-top-color:#dfe7ed;
    padding-top:13px;
  }

  /* ----- learning structure detail/create ----- */
  .satria-admin.satria-redesign .lm-detail-hero,
  .satria-admin.satria-redesign .lm-structure-card{
    border-color:#d7e2e9;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .lm-detail-stats{
    gap:8px;
  }
  .satria-admin.satria-redesign .lm-stat{
    border-color:#d8e2e9;
    border-radius:9px;
    background:#f7fafc;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .lm-stat strong{color:#1b405b}
  .satria-admin.satria-redesign .lm-semester-card{
    border-color:#d8e2e9;
    border-radius:10px;
    background:#fff;
  }
  .satria-admin.satria-redesign .lm-semester-card:hover{border-color:#abc2d3}
  .satria-admin.satria-redesign .lm-structure-card .lm-list-head{
    background:#f7fafc;
    border-bottom-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .lm-danger-actions{
    border-top-color:#ecd7db;
  }

  /* ----- school identity / administration settings ----- */
  .satria-admin.satria-redesign .school-id-shell{
    gap:12px;
  }
  .satria-admin.satria-redesign .school-id-hero{
    border-color:#d6e1ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,46,73,.05);
  }
  .satria-admin.satria-redesign .school-id-kicker{
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .school-id-card{
    border-color:#d8e2e9;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .school-id-card-head{
    background:#f8fafb;
    border-bottom-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .school-id-field label{
    color:#496278;
    font-size:9px;
    font-weight:850;
  }
  .satria-admin.satria-redesign .school-id-field input,
  .satria-admin.satria-redesign .school-id-field textarea,
  .satria-admin.satria-redesign .school-id-field select{
    border-color:#cfdbe5;
    border-radius:9px;
    background:#fff;
  }
  .satria-admin.satria-redesign .school-id-readonly,
  .satria-admin.satria-redesign .school-id-readonly-item{
    border-color:#d9e4eb;
    border-radius:9px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .school-id-branding{
    border-color:#d8e2e9;
    border-radius:10px;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .school-id-actions{
    border-top-color:#dfe7ed;
  }

  /* ----- anggota rombel ----- */
  .satria-admin.satria-redesign .rombel-member-hero,
  .satria-admin.satria-redesign .member-card,
  .satria-admin.satria-redesign .member-save-card{
    border-color:#d7e2e9;
    border-radius:12px;
    box-shadow:0 5px 16px rgba(16,42,67,.035);
  }
  .satria-admin.satria-redesign .rombel-member-hero{
    background:#fff;
  }
  .satria-admin.satria-redesign .rombel-avatar{
    border:1px solid #cfe0ec;
    background:#eaf3f9;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .member-stat{
    border-color:#d9e3e9;
    background:#f7fafc;
  }
  .satria-admin.satria-redesign .member-card-head{
    padding-bottom:11px;
    border-bottom-color:#dfe7ed;
  }
  .satria-admin.satria-redesign .member-icon.current{
    background:#eaf7f0;
    color:#167a52;
  }
  .satria-admin.satria-redesign .member-icon.available{
    background:#eaf3f9;
    color:#0b67b2;
  }
  .satria-admin.satria-redesign .member-toolbar{
    padding:9px 0;
    border-bottom-color:#e4ebef;
  }
  .satria-admin.satria-redesign .member-count-badge{
    background:#f4f8fa;
    border-color:#d8e3e9;
    color:#567084;
  }
  .satria-admin.satria-redesign .member-search input{
    border-color:#cfdbe5;
    border-radius:8px;
  }
  .satria-admin.satria-redesign .member-table td strong{color:#1c425e}
  .satria-admin.satria-redesign .member-save-card{
    background:#f7fafc;
  }

  /* ----- cross-page action hierarchy ----- */
  .satria-admin.satria-redesign .satria-excel-download-btn{
    border-color:#bfd7cb;
    background:#fff;
    color:#315c4a;
    box-shadow:none;
  }
  .satria-admin.satria-redesign .satria-excel-download-btn:hover{
    border-color:#8fbaa5;
    background:#f8fcfa;
    box-shadow:0 6px 14px rgba(22,122,82,.07);
  }
  .satria-admin.satria-redesign .satria-excel-download-icon{
    background:#eaf7f0;
    color:#167a52;
  }
  .satria-admin.satria-redesign .satria-excel-download-copy strong{color:#315c4a}
  .satria-admin.satria-redesign .satria-excel-download-copy small{color:#72897e}

  @media (max-width:900px){
    .satria-admin.satria-redesign .learning-grade-selector{grid-template-columns:1fr}
    .satria-admin.satria-redesign .learning-grade-toggle{min-height:58px}
  }
}
