:root{--navy:#0b1f3a;--navy2:#102c52;--blue:#2563eb;--blue2:#0ea5e9;--cyan:#22d3ee;--bg:#f4f7fb;--panel:#fff;--text:#12213a;--muted:#69758a;--line:#e4eaf2;--success:#0f9f67;--danger:#d14343;--shadow:0 14px 40px rgba(17,39,73,.07);--radius:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}.icon{flex:0 0 auto}.app-body{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:272px;background:linear-gradient(180deg,var(--navy),#08172d);color:#dce7f7;display:flex;flex-direction:column;z-index:50;overflow:hidden}.sidebar-brand{flex:0 0 auto}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:22px 18px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand img{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:13px;padding:4px}.sidebar-brand div{min-width:0}.sidebar-brand strong{display:block;color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand span{display:block;font-size:11px;color:#91a8c8;margin-top:3px}.sidebar-nav{padding:14px 10px;display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}.sidebar-nav::-webkit-scrollbar{width:7px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:999px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#7086a5;padding:18px 12px 7px}.nav-item{display:flex;align-items:center;gap:11px;min-height:43px;padding:9px 11px;border-radius:11px;color:#c8d7ec;text-decoration:none;font-size:13px;transition:.18s}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:linear-gradient(100deg,rgba(37,99,235,.78),rgba(14,165,233,.48));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.nav-item span{flex:1}.nav-item small{font-size:9px;background:rgba(255,255,255,.09);padding:3px 6px;border-radius:999px}.nav-item.disabled{opacity:.52;cursor:not-allowed}.sidebar-footer{flex:0 0 auto;margin-top:0;padding:13px 20px 15px;border-top:1px solid rgba(255,255,255,.07);font-size:10px;color:#778dab;display:flex;justify-content:space-between;background:#08172d}.main-shell{margin-left:272px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:74px;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{font-size:17px;margin:0}.topbar p{font-size:11px;color:var(--muted);margin:3px 0 0}.topbar-user{display:flex;align-items:center;gap:10px}.topbar-user>div:not(.avatar){display:flex;flex-direction:column}.topbar-user strong{font-size:12px}.topbar-user span{font-size:10px;color:var(--muted);margin-top:2px}.avatar{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;display:grid;place-items:center;font-weight:800}.icon-button{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:11px;display:grid;place-items:center;color:#4d5d74;cursor:pointer}.icon-button:hover{color:var(--blue);border-color:#c8d8fb}.content-area{padding:26px;flex:1}.app-footer{padding:15px 26px 20px;color:#8590a1;font-size:10px;display:flex;justify-content:space-between}.alert{padding:12px 14px;border-radius:12px;margin-bottom:16px;border:1px solid;font-size:13px}.alert.success{background:#edfdf6;border-color:#b7efd6;color:#08764b}.alert.danger{background:#fff4f4;border-color:#ffd1d1;color:#a52f2f}.page-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-intro.compact{margin-bottom:16px}.page-intro h2{font-size:24px;line-height:1.25;margin:6px 0 7px}.page-intro p{color:var(--muted);font-size:13px;line-height:1.65;max-width:780px;margin:0}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em}.eyebrow.blue{color:var(--blue)}.status-pill{display:inline-flex;gap:7px;align-items:center;background:#edfdf6;color:#08764b;border:1px solid #c4f0dc;border-radius:999px;padding:8px 11px;font-size:10px;font-weight:800;white-space:nowrap}.status-pill i{width:7px;height:7px;background:#18b879;border-radius:50%;box-shadow:0 0 0 4px rgba(24,184,121,.12)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.metric-card{padding:18px}.metric-card span{display:block;color:var(--muted);font-size:11px}.metric-card strong{display:block;font-size:26px;margin:8px 0}.metric-card small{color:#91a0b4;font-size:10px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-bottom:16px}.panel{padding:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-head h3{font-size:15px;margin:0 0 4px}.panel-head p{font-size:11px;color:var(--muted);margin:0}.tag{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f0f3f7;color:#69758a;font-size:9px;font-weight:800}.tag.success{background:#eafaf3;color:#0c8b5b}.readiness-list{display:grid;gap:0}.readiness-list>div,.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #eef2f7;font-size:12px}.readiness-list>div:last-child,.detail-list>div:last-child{border-bottom:0}.readiness-list span{color:var(--success);font-weight:700}.detail-list{margin:0 0 14px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:700;text-align:right}.roadmap{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.roadmap span{background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center;font-size:15px;font-weight:800;color:#8390a4}.roadmap small{font-size:9px;font-weight:600}.roadmap .done{background:#ecf4ff;border-color:#bfd5ff;color:#1c5bcc}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:750;font-size:12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{background:linear-gradient(135deg,var(--blue),#1b7dea);color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.18)}.btn.secondary{background:#eef4ff;color:#205fc9}.btn.text{background:transparent;color:var(--blue);padding:7px 9px}.btn.large{min-height:46px;width:100%}.btn:disabled{opacity:.65;cursor:wait}.form-panel{padding:22px}.form-grid{display:grid;gap:15px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.form-stack{display:flex;flex-direction:column;gap:14px}label{font-size:11px;font-weight:750;color:#46556c;display:flex;flex-direction:column;gap:7px}input,select,textarea{width:100%;border:1px solid #dbe3ee;border-radius:11px;background:#fff;color:var(--text);padding:10px 11px;outline:none;transition:.15s;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#8ab2ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}textarea{resize:vertical}.divider{height:1px;background:#eef2f7;margin:22px 0}.branding-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:14px}.upload-card{border:1px dashed #cdd9e8;border-radius:14px;padding:13px;display:flex;gap:12px;align-items:center;background:#fafcff}.upload-card img{width:72px;height:72px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px}.upload-card.photo img{width:120px;object-fit:cover}.upload-card div{flex:1}.upload-card b,.upload-card small{display:block}.upload-card b{font-size:12px}.upload-card small{font-size:10px;color:var(--muted);margin:4px 0 8px}.upload-card input{padding:7px;font-size:10px}.form-actions{display:flex;justify-content:flex-end;margin-top:20px}.split-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px}.panel.narrow{align-self:start}.table-wrap{overflow:auto;margin:0 -4px}table{width:100%;border-collapse:collapse;font-size:11px}th,td{padding:11px 10px;border-bottom:1px solid #edf1f6;text-align:left;white-space:nowrap}th{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7a8799;background:#fbfcfe}td.right{text-align:right}.inline-form{display:inline}.cell-sub{display:block;color:var(--muted);font-size:9px;margin-top:3px}.empty-state{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-icon{font-size:44px;font-weight:900;color:#c2ccda}.empty-state h2{margin:8px 0}.empty-state p{color:var(--muted);font-size:13px}.login-body{min-height:100vh;background:#edf3fb;display:grid;place-items:center;padding:22px}.login-shell{width:min(1080px,100%);min-height:650px;background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;box-shadow:0 28px 80px rgba(18,43,79,.16);border:1px solid #dfe7f2}.login-visual{position:relative;min-height:650px;overflow:hidden}.login-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.login-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,24,49,.12),rgba(6,24,49,.88))}.login-visual-content{position:absolute;inset:auto 44px 42px;color:#fff}.login-visual-content h1{font-size:30px;line-height:1.25;margin:10px 0}.login-visual-content p{max-width:500px;line-height:1.65;color:#d9e6f7}.visual-badge{display:inline-flex;margin-top:13px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border-radius:999px;padding:8px 11px;font-size:10px}.login-panel{display:grid;place-items:center;padding:36px}.login-card{width:min(360px,100%)}.login-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:40px}.login-logo-row img{width:52px;height:52px;object-fit:contain;border-radius:13px;border:1px solid var(--line);padding:4px}.login-logo-row strong{display:block;font-size:14px}.login-logo-row span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.login-heading h2{font-size:25px;margin:0 0 7px}.login-heading p{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 22px}.password-wrap{position:relative}.password-wrap input{padding-right:72px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:#eef4ff;color:#225fc7;border-radius:8px;padding:6px 8px;font-size:9px;font-weight:800;cursor:pointer}.login-meta{display:flex;justify-content:space-between;color:#9aa6b7;font-size:9px;margin-top:22px}.mobile-only{display:none}.sidebar-backdrop{display:none}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:repeat(3,1fr)}.split-layout{grid-template-columns:1fr}.panel.narrow{width:100%}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s}.main-shell{margin-left:0}.mobile-only{display:grid}.sidebar-open .sidebar{transform:none}.sidebar-backdrop{position:fixed;inset:0;background:rgba(5,19,40,.42);z-index:40}.sidebar-open .sidebar-backdrop{display:block}.login-shell{grid-template-columns:1fr;min-height:auto}.login-visual{min-height:240px}.login-visual-content{inset:auto 24px 22px}.login-visual-content h1{font-size:23px}.login-panel{padding:30px 22px}.login-logo-row{margin-bottom:26px}.branding-grid{grid-template-columns:1fr}.form-grid.two{grid-template-columns:1fr}.span-2{grid-column:span 1}.topbar{padding:0 15px}.content-area{padding:18px}.topbar-user>div:not(.avatar){display:none}.app-footer{padding:14px 18px;flex-direction:column;gap:4px}.page-intro{flex-direction:column}}
@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:repeat(2,1fr)}.login-body{padding:0}.login-shell{border-radius:0;border:0;min-height:100vh}.login-visual{min-height:210px}.login-panel{align-items:start}.panel{padding:16px}.upload-card{align-items:flex-start}.upload-card.photo img{width:86px}.topbar h1{font-size:15px}}
@media print{.sidebar,.topbar,.app-footer{display:none!important}.main-shell{margin:0}.content-area{padding:0}.panel{box-shadow:none}}
/* V1.0 Final Release — Kesiswaan */
.action-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.filter-bar input[type=search]{min-width:220px;flex:1}.filter-bar select{width:auto;min-width:120px}.filter-students select{min-width:108px}.list-head{margin-top:2px}.status-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;border:1px solid transparent}.status-badge.success{background:#eafaf3;color:#08764b;border-color:#c5eedc}.status-badge.info{background:#edf5ff;color:#1f5da8;border-color:#cfe2fb}.status-badge.warning{background:#fff8e8;color:#a76508;border-color:#f4deb2}.status-badge.muted{background:#f0f3f7;color:#738096;border-color:#e0e6ed}.mini-empty{padding:28px;text-align:center;color:var(--muted);font-size:12px}.table-actions{display:flex;gap:2px}.sort-link{color:inherit;text-decoration:none}.sort-link:hover{color:var(--blue)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding-top:16px}.pagination a{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;text-decoration:none;color:#536179;font-size:11px}.pagination a.active{background:var(--blue);color:#fff;border-color:var(--blue)}.pagination span{font-size:10px;color:var(--muted);margin-left:6px}.section-title{margin-bottom:14px}.section-title h3{margin:0 0 4px;font-size:15px}.section-title p{margin:0;color:var(--muted);font-size:11px}.info-box{margin-top:16px;padding:13px;border-radius:12px;background:#f7faff;border:1px solid #dce9fb}.info-box strong{font-size:11px}.info-box p{font-size:10px;line-height:1.6;color:var(--muted);margin:5px 0 0}.timeline-list{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f6}.timeline-item:last-child{border-bottom:0}.timeline-dot{width:11px;height:11px;margin:4px 0 0 2px;border-radius:50%;background:#c8d2df;box-shadow:0 0 0 4px #f1f4f8}.timeline-dot.current{background:var(--success);box-shadow:0 0 0 4px #e0f8ee}.timeline-item strong{font-size:12px}.timeline-item p{font-size:10px;color:var(--muted);margin:4px 0}.timeline-item small{font-size:10px;color:#64748b}.check-inline{display:flex;flex-direction:row;align-items:center;gap:7px}.check-inline input,.student-check input{width:auto}.student-select-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.student-check{display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid var(--line);padding:10px 11px;border-radius:11px;background:#fbfcfe;cursor:pointer}.student-check:has(input:checked){border-color:#8ab2ff;background:#f0f6ff}.student-check span{display:flex;flex-direction:column;gap:2px}.student-check strong{font-size:11px}.student-check small{font-size:9px;color:var(--muted)}.card-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.student-card-mini{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px;background:linear-gradient(135deg,#fff,#f7faff)}.student-card-mini img{width:54px;height:54px;object-fit:contain}.student-card-mini>div{flex:1;min-width:0}.student-card-mini strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card-mini span{display:block;font-size:9px;color:var(--muted);margin:3px 0 6px}.barcode-svg{width:100%;height:34px;fill:#111}.ajax-loading{opacity:.55;pointer-events:none;position:relative}.ajax-loading:after{content:'Memuat…';position:absolute;right:12px;top:12px;padding:5px 8px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:9px;color:var(--muted);box-shadow:var(--shadow)}
@media(max-width:1050px){.student-select-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.filter-bar>*{width:100%!important;min-width:0!important}.student-select-grid,.card-preview-grid{grid-template-columns:1fr}.pagination{justify-content:center}.table-actions{flex-direction:column}.action-row{width:100%}.page-intro .action-row .btn{flex:1}.placement-panel .form-grid.two{grid-template-columns:1fr}}
/* V1.0 Final Release — Master Keuangan */
.nav-item.sub{min-height:34px;margin-left:28px;padding:6px 10px 6px 14px;font-size:11px;color:#9fb4d1;position:relative}.nav-item.sub:before{content:'';position:absolute;left:2px;width:6px;height:6px;border-radius:50%;background:#47617f}.nav-item.sub:hover,.nav-item.sub.active{color:#fff}.nav-item.sub.active:before{background:var(--cyan)}
.metric-link{text-decoration:none;color:inherit;transition:.18s}.metric-link:hover{transform:translateY(-2px);border-color:#c8d9fa;box-shadow:0 18px 42px rgba(17,39,73,.11)}
.finance-module-list{display:flex;flex-direction:column}.finance-module-list>a{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;gap:12px;align-items:center;padding:13px 4px;border-bottom:1px solid #edf1f6;text-decoration:none;color:var(--text)}.finance-module-list>a:last-child{border-bottom:0}.finance-module-list>a>.icon:first-child{color:var(--blue);background:#eef4ff;border-radius:10px;padding:5px;width:34px;height:34px}.finance-module-list>a>.icon:last-child{color:#9aa8ba}.finance-module-list a:hover b{color:var(--blue)}.finance-module-list b{display:block;font-size:12px}.finance-module-list span{display:block;font-size:10px;color:var(--muted);margin-top:3px;line-height:1.45}
.finance-master-metrics .metric-card strong{font-size:24px}.finance-master-metrics .metric-card{min-height:112px}
@media(max-width:820px){.nav-item.sub{margin-left:22px}.finance-module-list>a{grid-template-columns:34px minmax(0,1fr) 18px}}
/* V1.0 Final Release — Billing Engine */
.metric-money{font-size:20px!important;letter-spacing:-.025em}.billing-flow{display:flex;flex-direction:column}.billing-flow>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #edf1f6}.billing-flow>div:last-child{border-bottom:0}.billing-flow b{font-size:11px}.billing-flow span{font-size:10px;color:var(--muted);line-height:1.55}.billing-split{grid-template-columns:minmax(320px,.72fr) minmax(0,1.45fr)}.billing-generate-grid{grid-template-columns:minmax(350px,.85fr) minmax(0,1.15fr)}.billing-metrics .metric-card{min-height:104px}.field-help{display:block;color:var(--muted);font-size:9px;line-height:1.45;margin-top:5px}.warning-box{padding:13px 14px;border:1px solid #f3d59a;background:#fff9e9;border-radius:12px}.warning-box strong{display:block;font-size:11px;color:#8a5a04}.warning-box p{font-size:10px;line-height:1.55;color:#8b6d33;margin:4px 0 0}.money-discount{color:var(--success);font-weight:700}.billing-year-filter{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #edf1f6}.billing-split .panel.narrow{position:sticky;top:92px}.billing-split select,.billing-generate-grid select{min-width:0}
@media(max-width:1050px){.billing-split,.billing-generate-grid{grid-template-columns:1fr}.billing-split .panel.narrow{position:static}}
@media(max-width:700px){.billing-flow>div{grid-template-columns:1fr;gap:3px}.metric-money{font-size:18px!important}}
/* V1.0 Final Release — Payment Engine */
.payment-search-panel{padding:16px 18px;margin-bottom:16px}.payment-search-top{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;align-items:end}.payment-year-form label{margin:0}.payment-search-box{height:42px;border:1px solid var(--line);background:#fff;border-radius:12px;display:flex;align-items:center;gap:9px;padding:0 10px;box-shadow:0 5px 18px rgba(22,49,89,.04)}.payment-search-box>span{color:var(--blue);display:grid;place-items:center}.payment-search-box input{border:0!important;outline:0!important;box-shadow:none!important;padding:0!important;height:auto!important;flex:1;background:transparent!important}.payment-search-box kbd{font-size:8px;color:#8090a6;background:#f3f6fa;border:1px solid #dfe5ed;border-radius:6px;padding:3px 5px}.payment-search-results{margin-top:10px;min-height:22px}.payment-search-empty{padding:10px 4px;font-size:10px;color:var(--muted)}.payment-search-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.payment-search-list>a{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:8px 10px;text-decoration:none;color:var(--text);background:#fbfcfe}.payment-search-list>a:hover{border-color:#a9c4f3;background:#f4f8ff}.payment-search-avatar,.payment-student-avatar{display:grid;place-items:center;border-radius:50%;font-weight:900;background:#eaf2ff;color:#225bb8}.payment-search-avatar{width:32px;height:32px;font-size:12px}.payment-search-main{min-width:0}.payment-search-main b,.payment-search-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-search-main b{font-size:11px}.payment-search-main small{font-size:9px;color:var(--muted);margin-top:3px}.payment-empty-state{min-height:280px;border:1px dashed #cfd9e8;border-radius:16px;background:#fbfcfe;display:grid;place-items:center;align-content:center;text-align:center;padding:28px}.payment-empty-state .empty-icon{width:58px;height:58px;border-radius:16px;background:#edf4ff;color:var(--blue);display:grid;place-items:center}.payment-empty-state h3{font-size:15px;margin:12px 0 5px}.payment-empty-state p{max-width:540px;font-size:10px;line-height:1.65;color:var(--muted);margin:0}.payment-student-strip{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;background:linear-gradient(135deg,#123d78,#1f69c7);color:#fff;border-radius:15px;padding:15px 18px;margin-bottom:14px;box-shadow:0 12px 30px rgba(22,62,119,.15)}.payment-student-avatar{width:54px;height:54px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:21px}.payment-student-id>span{font-size:8px;letter-spacing:.12em;opacity:.72}.payment-student-id h3{font-size:17px;margin:3px 0}.payment-student-id p{font-size:9px;margin:0;opacity:.84}.payment-student-metrics{display:flex;gap:20px}.payment-student-metrics>div{min-width:86px;text-align:right}.payment-student-metrics span,.payment-student-metrics b{display:block}.payment-student-metrics span{font-size:8px;opacity:.72;margin-bottom:3px}.payment-student-metrics b{font-size:13px}.payment-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;align-items:start}.payment-bill-column{display:flex;flex-direction:column;gap:14px;min-width:0}.payment-bill-panel{padding:15px}.payment-checkout-panel{position:sticky;top:88px;padding:16px}.checkout-title>span{font-size:8px;font-weight:900;letter-spacing:.12em;color:var(--blue)}.checkout-title h3{font-size:16px;margin:4px 0}.checkout-title p{font-size:9px;line-height:1.55;color:var(--muted);margin:0 0 12px}.checkout-summary{border:1px solid #dce5f2;border-radius:12px;background:#f8fbff;margin-bottom:13px;overflow:hidden}.checkout-summary>div{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;font-size:10px}.checkout-summary>div+div{border-top:1px solid #e3eaf3}.checkout-summary .total{background:#eef5ff}.checkout-summary .total b{font-size:14px;color:#145cc1}.checkout-form{gap:10px}.checkout-change{display:flex;align-items:center;justify-content:space-between;border-radius:10px;background:#f4f7fb;padding:9px 11px;font-size:10px}.checkout-change b{font-size:13px}.checkout-change b.negative{color:#b42318}.checkout-pay{width:100%;justify-content:center;gap:7px;margin-top:2px}.btn.danger{background:#b42318;color:#fff;border-color:#b42318}.btn.small{padding:6px 8px;font-size:9px}.spp-grid-wrap{overflow:auto}.spp-grid{min-width:980px}.spp-grid th,.spp-grid td{padding:5px;vertical-align:top}.spp-grid thead th{text-align:center;font-size:8px;white-space:nowrap}.spp-grid .spp-fee-name{text-align:left;min-width:125px;position:sticky;left:0;background:#fff;z-index:2}.spp-fee-name b,.spp-fee-name small{display:block}.spp-fee-name b{font-size:9px}.spp-fee-name small{font-size:8px;color:var(--muted);margin-top:2px}.spp-status-legend{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 12px}.spp-legend-item{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:8px;font-weight:800;border:1px solid transparent;box-shadow:0 1px 2px rgba(15,23,42,.08)}.spp-legend-item::before{content:'';width:10px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}.spp-legend-item.unpaid{background:#fee2e2;color:#991b1b;border-color:#fecaca}.spp-legend-item.unpaid::before{background:#dc2626}.spp-legend-item.partial{background:#fef3c7;color:#92400e;border-color:#fde68a}.spp-legend-item.partial::before{background:#f59e0b}.spp-legend-item.paid{background:#dcfce7;color:#166534;border-color:#bbf7d0}.spp-legend-item.paid::before{background:#16a34a}.spp-legend-item.selected{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.spp-legend-item.selected::before{background:#2563eb}.spp-cell{display:flex;min-height:82px;min-width:76px;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px solid #d8e0ea;border-radius:10px;padding:7px;background:#f7f8fa;position:relative;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease,border-color .12s ease}.spp-cell.unpaid{background:#dc2626;border-color:#991b1b;color:#fff;box-shadow:0 4px 10px rgba(220,38,38,.18)}.spp-cell.partial{background:#f59e0b;border-color:#b45309;color:#3b2600;box-shadow:0 4px 10px rgba(245,158,11,.20)}.spp-cell.paid{background:#16a34a;border-color:#166534;color:#fff;box-shadow:0 4px 10px rgba(22,163,74,.18)}.spp-cell.empty{min-height:70px;color:#94a3b8;background:#f8fafc;border-color:#e2e8f0;box-shadow:none}.spp-cell.clickable{cursor:pointer}.spp-cell.clickable:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 8px 16px rgba(15,23,42,.20)}.spp-cell.selected{background:#2563eb!important;border-color:#1d4ed8!important;color:#fff!important;outline:3px solid #93c5fd;outline-offset:2px;box-shadow:0 8px 18px rgba(37,99,235,.34);transform:translateY(-2px)}.spp-cell.selected::after{content:'DIPILIH';position:absolute;right:4px;top:4px;background:#fff;color:#1d4ed8;border-radius:999px;padding:2px 5px;font-size:6px;font-weight:900;letter-spacing:.06em;box-shadow:0 1px 3px rgba(15,23,42,.15)}.spp-cell>input[type=checkbox]{position:absolute;left:6px;top:6px;width:14px;height:14px;accent-color:#1d4ed8}.spp-status-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8;border:2px solid rgba(255,255,255,.72);box-shadow:0 0 0 1px rgba(15,23,42,.12)}.spp-cell.unpaid .spp-status-dot{background:#7f1d1d}.spp-cell.partial .spp-status-dot{background:#78350f;border-color:rgba(255,255,255,.82)}.spp-cell.paid .spp-status-dot{background:#14532d}.spp-cell.selected .spp-status-dot{background:#fff;border-color:#dbeafe}.spp-cell>b{font-size:9px;font-weight:900;color:inherit}.spp-cell>small{font-size:7.5px;font-weight:800;color:inherit;text-align:center;opacity:.98}.spp-cell.unpaid>small,.spp-cell.paid>small,.spp-cell.selected>small{color:#fff}.spp-cell.partial>small{color:#3b2600}.allocation-input{width:100%;min-height:27px!important;height:27px!important;padding:3px 5px!important;text-align:right;font-size:8px!important;font-weight:800!important;margin-top:2px;background:#fff!important;color:#0f172a!important;border-color:rgba(15,23,42,.20)!important}.spp-cell .allocation-input:disabled{pointer-events:none;opacity:.78}.spp-cell[role=button]:focus{outline:3px solid #93c5fd;outline-offset:2px}.inline-money{min-width:105px}.table-sub{display:block;font-size:8px;color:var(--muted);margin-top:3px}.payment-recent-panel{margin-top:14px}.payment-history-filter input[type=date]{width:auto;min-width:135px}.metric-date{font-size:15px!important}.payment-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:14px;margin-bottom:14px}.payment-detail-money .money-stack{display:flex;flex-direction:column}.money-stack>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #edf1f6}.money-stack span{font-size:10px;color:var(--muted)}.money-stack b{font-size:13px}.money-stack .change b{color:#1769d5}.void-panel{margin-top:14px;border-color:#f0d2d2}.payment-intro{align-items:center}
@media(max-width:1150px){.payment-workspace{grid-template-columns:1fr}.payment-checkout-panel{position:static}.payment-detail-grid{grid-template-columns:1fr}.payment-student-strip{grid-template-columns:52px 1fr}.payment-student-metrics{grid-column:1/-1;justify-content:flex-start;border-top:1px solid rgba(255,255,255,.16);padding-top:10px}.payment-student-metrics>div{text-align:left}}
@media(max-width:760px){.payment-search-top{grid-template-columns:1fr}.payment-search-list{grid-template-columns:1fr}.payment-student-strip{grid-template-columns:44px 1fr;padding:13px}.payment-student-avatar{width:42px;height:42px;font-size:16px}.payment-student-metrics{gap:10px;display:grid;grid-template-columns:repeat(3,1fr)}.payment-student-metrics>div{min-width:0}.payment-student-metrics b{font-size:11px}.payment-workspace{display:block}.payment-checkout-panel{margin-top:14px}.payment-history-filter input[type=date]{width:100%}.spp-grid{min-width:920px}}
/* V1.0 Final Release — Cash & Transactions */
.cash-metrics .metric-card{min-height:108px}.cash-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.cash-action-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:.16s}.cash-action-card>.icon{color:var(--blue);background:#eef4ff;border-radius:11px;padding:6px;width:36px;height:36px}.cash-action-card b,.cash-action-card span{display:block}.cash-action-card b{font-size:12px}.cash-action-card span{font-size:9px;color:var(--muted);line-height:1.5;margin-top:4px}.cash-action-card:hover{transform:translateY(-1px);border-color:#bfd4f7}.cash-transaction-layout{grid-template-columns:330px minmax(0,1fr)}.money-in{color:#0d8f5e!important}.money-out{color:#b42318!important}.ledger-reversal{background:#fff8f4}.ledger-reversal td{opacity:.9}.cash-transaction-layout .panel.narrow{position:sticky;top:92px}.cash-transaction-layout .filter-bar{align-items:end}.cash-transaction-layout input[type=date]{min-width:130px}
@media(max-width:1180px){.cash-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cash-transaction-layout{grid-template-columns:1fr}.cash-transaction-layout .panel.narrow{position:static}}
@media(max-width:760px){.cash-action-grid{grid-template-columns:1fr 1fr}.cash-action-card{padding:13px}.cash-transaction-layout input[type=date]{min-width:0}}
@media(max-width:520px){.cash-action-grid{grid-template-columns:1fr}}

/* V1.0 Final Release — Student Savings */
.roadmap{grid-template-columns:repeat(7,1fr)}
.savings-action-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px;margin-bottom:16px}.savings-search-panel{min-height:220px}.savings-student-results{display:grid;gap:7px;padding-top:8px}.savings-student-results>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--text);background:#fff}.savings-student-results>a:hover{border-color:#b9cef2;background:#f8fbff}.savings-student-results small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.savings-student-results strong{font-size:11px;color:#0d8f5e}.savings-student-strip{margin-bottom:16px}.savings-account-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);gap:16px}.savings-transaction-panel{align-self:start;position:sticky;top:92px}.savings-metrics .metric-money{font-size:21px}.table-link{color:#245fbd;text-decoration:none}.table-link:hover{text-decoration:underline}.status-badge.warning{background:#fff5df;color:#9a5c00}.metric-card .money-in{color:#0d8f5e!important}.metric-card .money-out{color:#b42318!important}
@media(max-width:1180px){.roadmap{grid-template-columns:repeat(4,1fr)}.savings-action-grid,.savings-account-layout{grid-template-columns:1fr}.savings-transaction-panel{position:static}}
@media(max-width:760px){.roadmap{grid-template-columns:repeat(2,1fr)}.savings-student-results>a{grid-template-columns:34px minmax(0,1fr)}.savings-student-results>a>strong{grid-column:2}.savings-account-layout .payment-student-metrics{grid-template-columns:1fr}}
/* V1.0 Final Release — Reporting Engine */
.roadmap{grid-template-columns:repeat(8,minmax(0,1fr))}.report-print-head{display:none}.report-year-switch{display:flex;align-items:end;gap:18px;margin-bottom:16px;padding:15px 18px}.report-year-switch label{width:220px}.report-year-switch>div{display:flex;flex-direction:column;gap:3px}.report-year-switch b{font-size:11px}.report-year-switch span{font-size:9px;color:var(--muted)}.report-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:16px}.report-card{display:flex;gap:13px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:.17s}.report-card>.icon{width:40px;height:40px;padding:7px;border-radius:12px;background:#eef4ff;color:#2264c7}.report-card b,.report-card span{display:block}.report-card b{font-size:12px}.report-card span{font-size:9px;line-height:1.55;color:var(--muted);margin-top:4px}.report-card:hover{transform:translateY(-1px);border-color:#bdd2f5}.report-highlight{display:flex;align-items:center;justify-content:space-between;gap:15px}.report-highlight>div{display:flex;flex-direction:column}.report-highlight span{font-size:10px;color:var(--muted)}.report-highlight strong{font-size:22px;margin-top:5px}.report-filter{align-items:end}.report-filter input[type=date]{width:auto;min-width:132px}.report-filter-panel{padding:15px 18px;margin-bottom:16px}.report-filter-panel .filter-bar{margin:0}.report-two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.realization-bars{display:flex;flex-direction:column;gap:12px}.realization-row{display:grid;grid-template-columns:110px minmax(120px,1fr) 160px;gap:12px;align-items:center}.realization-label{display:flex;justify-content:space-between;gap:6px;align-items:center}.realization-label b{font-size:10px}.realization-label span{font-size:9px;color:var(--blue);font-weight:800}.progress-track{height:8px;border-radius:999px;background:#e7edf5;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--blue2));border-radius:inherit}.progress-track.large{height:10px;margin:3px 0 14px}.realization-money{text-align:right}.realization-money span,.realization-money small{display:block}.realization-money span{font-size:10px;font-weight:800;color:var(--success)}.realization-money small{font-size:8px;color:var(--muted);margin-top:2px}.report-student-search{margin-bottom:16px}.report-student-search .filter-bar{margin:0}.report-student-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.report-student-results>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--text);background:#fbfcfe}.report-student-results b{font-size:11px}.report-student-results span{grid-column:1;font-size:9px;color:var(--muted)}.report-student-results strong{grid-column:2;grid-row:1/3;align-self:center;color:var(--blue);font-size:9px}.report-student-strip{margin-top:0}.report-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-class-card{padding:17px}.report-class-card .panel-head h3{margin-top:4px}.report-rate{font-size:20px;color:var(--blue)}.report-class-card .detail-list{margin-bottom:3px}.report-class-card .detail-list>div{padding:8px 0}.report-kpis .metric-card{min-height:112px}
@media(max-width:1180px){.roadmap{grid-template-columns:repeat(4,1fr)}.report-card-grid,.report-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-two-col{grid-template-columns:1fr}.realization-row{grid-template-columns:100px minmax(100px,1fr) 145px}}
@media(max-width:760px){.roadmap{grid-template-columns:repeat(2,1fr)}.report-card-grid,.report-class-grid,.report-student-results{grid-template-columns:1fr}.report-year-switch{align-items:stretch;flex-direction:column}.report-year-switch label{width:100%}.report-filter input[type=date]{width:100%}.realization-row{grid-template-columns:1fr}.realization-label{justify-content:flex-start}.realization-money{text-align:left;display:flex;gap:6px;align-items:baseline}.report-highlight{align-items:flex-start;flex-direction:column}}
@media print{body{background:#fff}.report-print-head{display:flex!important;gap:14px;align-items:center;border-bottom:2px solid #17243a;padding:0 0 12px;margin:0 0 16px}.report-print-head img{width:58px;height:58px;object-fit:contain}.report-print-head div{display:flex;flex-direction:column}.report-print-head strong{font-size:16px}.report-print-head span{font-size:10px;margin-top:3px}.report-print-head small{font-size:9px;margin-top:2px}.page-intro .action-row,.report-filter,.report-filter-panel,.report-student-search,.btn,.pagination{display:none!important}.content-area{padding:12mm!important}.metric-grid{grid-template-columns:repeat(4,1fr)!important}.metric-card,.panel{break-inside:avoid;border-color:#ccd3dd}.report-card-grid{display:none}.report-two-col{grid-template-columns:1fr!important}.report-class-grid{grid-template-columns:repeat(2,1fr)!important}.table-wrap{overflow:visible}table{font-size:9px}th,td{white-space:normal;padding:6px}.realization-row{grid-template-columns:90px 1fr 125px}}
/* V1.0 Final Release — Excel Center */
.excel-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;background:linear-gradient(135deg,#fff,#f3f8ff)}.excel-hero h3{font-size:18px;margin:5px 0 6px}.excel-hero p{font-size:11px;color:var(--muted);line-height:1.6;max-width:760px;margin:0}.excel-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.excel-import-layout{grid-template-columns:340px minmax(0,1fr)}.excel-template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.excel-template-list a{border:1px solid var(--line);border-radius:13px;padding:12px;text-decoration:none;color:var(--text);background:#fbfcfe}.excel-template-list a:hover{border-color:#b9cef2;background:#f7faff}.excel-template-list b,.excel-template-list span{display:block}.excel-template-list b{font-size:11px}.excel-template-list span{font-size:9px;color:var(--muted);line-height:1.5;margin-top:4px}.excel-result{margin-top:16px;margin-bottom:16px}.excel-result .metric-grid{margin-bottom:12px}
@media(max-width:1000px){.excel-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.excel-import-layout{grid-template-columns:1fr}.excel-hero{align-items:flex-start;flex-direction:column}.excel-template-list{grid-template-columns:1fr}}
@media(max-width:680px){.excel-card-grid{grid-template-columns:1fr}}

/* V1.0 Final Release — komponen antarmuka */
.roadmap{grid-template-columns:repeat(10,minmax(0,1fr))}
@media(max-width:1050px){.roadmap{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:620px){.roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V1.0 Final Release — Financial Command Center */
.fc-intro{margin-bottom:16px}.fc-filter{margin-bottom:16px;padding:16px 18px}.fc-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.fc-filter-head>div:first-child{display:flex;flex-direction:column;gap:3px}.fc-filter-head b{font-size:12px}.fc-filter-head span{font-size:9px;color:var(--muted);line-height:1.5}.fc-filter-grid{display:grid;grid-template-columns:1.15fr .8fr 1.15fr 1fr .9fr .9fr;gap:10px}.fc-filter-grid label{font-size:9px}.fc-scope-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;margin-bottom:13px;background:#eef5ff;border:1px solid #d5e5ff;border-radius:12px;color:#245eae}.fc-scope-note>span{display:flex;align-items:center;gap:7px;font-size:10px}.fc-scope-note small{font-size:9px;color:#6681a9}.fc-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.fc-kpi{padding:16px;min-height:112px;position:relative;overflow:hidden}.fc-kpi:after{content:'';position:absolute;right:-25px;top:-32px;width:85px;height:85px;border-radius:50%;background:rgba(37,99,235,.04)}.fc-kpi.primary{border-top:3px solid var(--blue)}.fc-kpi.success{border-top:3px solid var(--success)}.fc-kpi.danger{border-top:3px solid var(--danger)}.fc-kpi strong{font-size:20px;margin:7px 0}.fc-kpi small{line-height:1.4}.fc-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.7fr);gap:16px;margin-bottom:16px}.fc-secondary-grid,.fc-class-grid,.fc-data-grid,.fc-cash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.fc-chart-legend{display:flex;gap:14px;justify-content:flex-end;margin:-5px 0 8px;font-size:9px;color:var(--muted)}.fc-chart-legend span{display:flex;align-items:center;gap:5px}.fc-chart-legend i{width:8px;height:8px;border-radius:2px}.fc-chart-legend .target{background:#d7e2f1}.fc-chart-legend .realized{background:linear-gradient(180deg,var(--blue2),var(--blue))}.fc-month-chart{height:245px;display:grid;grid-template-columns:repeat(12,minmax(34px,1fr));gap:7px;align-items:end;padding-top:5px;overflow-x:auto}.fc-month-col{min-width:34px;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:4px;text-align:center}.fc-bars{height:100%;display:flex;gap:3px;align-items:end;justify-content:center;border-bottom:1px solid #e7edf5}.fc-bars i{width:36%;min-height:0;border-radius:5px 5px 1px 1px}.fc-bars .target{background:#dce5f1}.fc-bars .realized{background:linear-gradient(180deg,var(--blue2),var(--blue))}.fc-month-col b{font-size:9px}.fc-month-col small{font-size:8px;color:var(--muted)}.fc-donut-grid{display:grid;grid-template-columns:1fr;gap:12px}.fc-donut-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;padding:12px;border:1px solid #edf1f6;border-radius:14px;background:#fbfcfe}.fc-donut{width:88px;height:88px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--pct)*1%),#e6edf6 0);display:grid;place-items:center}.fc-donut:before{content:'';grid-area:1/1;width:66px;height:66px;border-radius:50%;background:#fff}.fc-donut>div{grid-area:1/1;z-index:1;text-align:center}.fc-donut strong,.fc-donut span{display:block}.fc-donut strong{font-size:16px}.fc-donut span{font-size:8px;color:var(--muted);margin-top:2px}.fc-donut-copy b,.fc-donut-copy span,.fc-donut-copy small{display:block}.fc-donut-copy b{font-size:11px}.fc-donut-copy span{font-size:9px;color:var(--muted);margin:4px 0 7px}.fc-donut-copy small{font-size:8px;line-height:1.6;color:#718096}.dot{display:inline-block!important;width:6px;height:6px;border-radius:50%;margin:0 3px 0 5px}.dot:first-child{margin-left:0}.dot.paid{background:var(--success)}.dot.partial{background:#f3a323}.dot.unpaid{background:var(--danger)}.fc-alert-strip{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:12px;padding:11px 12px;border-radius:12px}.fc-alert-strip.warning{background:#fff8e9;border:1px solid #f2d89d;color:#8b5e09}.fc-alert-strip.success{background:#edfdf6;border:1px solid #c5eedc;color:#08764b}.fc-alert-strip b,.fc-alert-strip span{display:block}.fc-alert-strip b{font-size:9px}.fc-alert-strip span{font-size:8px;opacity:.82;margin-top:2px}.fc-alert-strip a{font-size:8px;font-weight:800;color:inherit;text-decoration:none}.fc-daily-chart{height:165px;display:grid;grid-template-columns:repeat(14,minmax(20px,1fr));gap:5px;align-items:end;overflow-x:auto}.fc-day{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:5px;text-align:center;min-width:23px}.fc-day>div{height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #e7edf5}.fc-day i{display:block;width:60%;background:linear-gradient(180deg,var(--cyan),var(--blue));border-radius:5px 5px 1px 1px}.fc-day b{font-size:7px;color:#748096;white-space:nowrap}.fc-inline-stats{display:flex;gap:20px;margin-top:12px;padding-top:11px;border-top:1px solid #edf1f6}.fc-inline-stats span{font-size:8px;color:var(--muted)}.fc-inline-stats b{display:block;font-size:11px;color:var(--text);margin-bottom:2px}.fc-progress-list{display:flex;flex-direction:column;gap:13px}.fc-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center}.fc-progress-row>div:first-child b,.fc-progress-row>div:first-child span{display:block}.fc-progress-row b{font-size:10px}.fc-progress-row span{font-size:8px;color:var(--muted);margin-top:2px}.fc-progress-row strong{font-size:9px}.fc-progress-row .progress-track{grid-column:1}.fc-progress-row small{font-size:8px;color:var(--blue);text-align:right}.fc-ranking{display:flex;flex-direction:column}.fc-rank-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f6}.fc-rank-row:last-child{border-bottom:0}.fc-rank-row em{width:25px;height:25px;border-radius:8px;background:#edf4ff;color:#2563eb;display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:900}.fc-ranking.risk .fc-rank-row em{background:#fff1ef;color:#c64638}.fc-rank-row b,.fc-rank-row span{display:block}.fc-rank-row b{font-size:10px}.fc-rank-row span{font-size:8px;color:var(--muted);margin:2px 0 5px}.fc-rank-row strong{font-size:10px}.fc-rank-row .progress-track{height:6px}.fc-debtors{display:flex;flex-direction:column}.fc-debtors>div{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f6}.fc-debtors>div:last-child{border-bottom:0}.avatar.sm{width:32px;height:32px;border-radius:9px;font-size:11px}.fc-debtors b,.fc-debtors span,.fc-debtors strong,.fc-debtors small{display:block}.fc-debtors b{font-size:10px}.fc-debtors span{font-size:8px;color:var(--muted);margin-top:2px}.fc-debtors strong{font-size:10px;color:var(--danger);text-align:right}.fc-debtors small{font-size:7px;color:#a56862;margin-top:2px}.fc-recent-table table{font-size:9px}.fc-recent-table td small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.text-right{text-align:right!important}.text-center{text-align:center!important}.muted{color:var(--muted)}.empty-state.compact{min-height:120px;font-size:10px;color:var(--muted);padding:18px}.fc-cash-accounts{display:flex;flex-direction:column}.fc-cash-accounts>div{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f6}.fc-cash-accounts>div:last-child{border-bottom:0}.fc-cash-accounts>div>span{font-size:8px;font-weight:800;color:var(--blue);background:#edf4ff;border-radius:8px;padding:5px 6px;text-align:center}.fc-cash-accounts b,.fc-cash-accounts small{display:block}.fc-cash-accounts b{font-size:10px}.fc-cash-accounts small{font-size:8px;color:var(--muted);margin-top:2px}.fc-cash-accounts strong{font-size:10px}.fc-cash-flow{display:grid;grid-template-columns:1fr;gap:9px}.fc-cash-flow>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid #edf1f6;border-radius:12px;background:#fbfcfe}.fc-cash-flow span{font-size:9px;color:var(--muted)}.fc-cash-flow strong{font-size:12px}.fc-quick-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.fc-quick-actions>a{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 9px;border:1px solid var(--line);border-radius:13px;padding:12px;text-decoration:none;color:var(--text);background:#fbfcfe}.fc-quick-actions>a>.icon{grid-row:1/3;width:34px;height:34px;padding:6px;border-radius:10px;background:#edf4ff;color:var(--blue)}.fc-quick-actions b{font-size:10px}.fc-quick-actions span{font-size:8px;color:var(--muted);line-height:1.4}.fc-quick-actions>a:hover{border-color:#bad0f5;background:#f6faff}.roadmap{grid-template-columns:repeat(10,minmax(0,1fr))}
@media(max-width:1320px){.fc-filter-grid{grid-template-columns:repeat(3,1fr)}.fc-kpi-grid{grid-template-columns:repeat(3,1fr)}.fc-quick-actions{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1050px){.fc-main-grid{grid-template-columns:1fr}.fc-secondary-grid,.fc-class-grid,.fc-data-grid,.fc-cash-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:760px){.fc-filter-head{flex-direction:column}.fc-filter-head .action-row{width:100%}.fc-filter-head .action-row .btn{flex:1}.fc-filter-grid{grid-template-columns:1fr 1fr}.fc-kpi-grid{grid-template-columns:1fr 1fr}.fc-scope-note{align-items:flex-start;flex-direction:column}.fc-month-chart{grid-template-columns:repeat(12,42px)}.fc-daily-chart{grid-template-columns:repeat(14,30px)}.fc-quick-actions{grid-template-columns:1fr 1fr}.roadmap{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.fc-filter-grid,.fc-kpi-grid,.fc-quick-actions{grid-template-columns:1fr}.fc-kpi{min-height:auto}.fc-donut-card{grid-template-columns:82px minmax(0,1fr)}.fc-donut{width:76px;height:76px}.fc-donut:before{width:56px;height:56px}.fc-alert-strip{grid-template-columns:22px minmax(0,1fr)}.fc-alert-strip a{grid-column:2}.fc-debtors>div{grid-template-columns:32px minmax(0,1fr)}.fc-debtors strong{grid-column:2;text-align:left}.fc-cash-accounts>div{grid-template-columns:50px minmax(0,1fr)}.fc-cash-accounts strong{grid-column:2}}
@media print{.fc-filter,.fc-quick-panel,.roadmap-panel{display:none!important}.fc-kpi-grid{grid-template-columns:repeat(3,1fr)!important}.fc-main-grid,.fc-secondary-grid,.fc-class-grid,.fc-data-grid,.fc-cash-grid{grid-template-columns:1fr!important}.fc-monthly-panel{break-inside:avoid}.fc-month-chart{height:180px}}

/* V1.0 Final Release — Audit & Security Hardening */
.system-filter{margin-bottom:16px}.audit-detail pre{max-width:560px;max-height:180px;overflow:auto;white-space:pre-wrap;background:#f7f9fc;border:1px solid var(--line);border-radius:9px;padding:9px;font-size:9px}.danger-tag{background:#fff1f1!important;color:#ba3838!important}.security-event-list{display:flex;flex-direction:column;max-height:520px;overflow:auto}.security-event-list>div{display:grid;grid-template-columns:66px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f6}.security-event-list p{font-size:9px;color:#52637b;margin:4px 0}.security-event-list small{font-size:8px;color:var(--muted)}.severity{display:inline-flex;align-items:center;justify-content:center;align-self:start;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:900}.severity.info,.severity.healthy{background:#eafaf3;color:#0c8b5b}.severity.warning{background:#fff7e8;color:#9a6512}.severity.critical{background:#fff0f0;color:#b63b3b}.health-score{width:96px;height:72px;border-radius:18px;display:flex;align-items:baseline;justify-content:center;padding-top:16px;font-size:29px;font-weight:900}.health-score small{font-size:10px}.health-score.healthy{background:#eafaf3;color:#0c8b5b}.health-score.warning{background:#fff7e8;color:#9a6512}.health-score.critical{background:#fff0f0;color:#b63b3b}.health-summary{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:14px;margin-bottom:16px}.health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.health-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;grid-template-columns:10px 1fr auto;gap:10px}.health-dot{width:8px;height:8px;border-radius:50%;margin-top:4px}.health-item.ok .health-dot{background:var(--success)}.health-item.warning .health-dot{background:#efa62b}.health-item.critical .health-dot{background:var(--danger)}.health-item b{font-size:10px}.health-item p{font-size:9px;color:#52637b;margin:3px 0}.health-item small{font-size:7px;color:#95a0b0}.health-item>strong{font-size:8px}.gal-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.gal-entry{border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.gal-entry summary{display:grid;grid-template-columns:44px 150px 1fr auto;gap:9px;align-items:center;padding:11px;cursor:pointer}.gal-entry>div{border-top:1px solid var(--line);padding:10px 14px}.gal-entry p{font-size:9px}.system-note{display:flex;gap:10px;align-items:flex-start;margin-top:16px}.system-note b{font-size:10px}.system-note span{font-size:9px;color:var(--muted)}.mono{font-family:ui-monospace,monospace}.action-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.danger-text{color:var(--danger)!important}.restore-pop{position:relative}.restore-pop>summary{cursor:pointer;list-style:none}.restore-form{position:absolute;right:0;z-index:20;width:310px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 18px 45px rgba(12,31,57,.16)}.restore-form p{font-size:9px;color:var(--muted)}@media(max-width:800px){.health-grid,.health-summary{grid-template-columns:1fr}.gal-entry summary{grid-template-columns:44px 1fr}.restore-form{position:fixed;left:16px;right:16px;bottom:16px;width:auto}}.roadmap{grid-template-columns:repeat(11,minmax(0,1fr))}


/* V1.0 Final Release — rilis final */
.center-cell{text-align:center;padding:18px}.portal-share-panel{margin-top:16px}.portal-link-box{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px;border:1px dashed #b9cae4;border-radius:12px;background:#f8fbff}.portal-link-box code{font-size:9px;word-break:break-all;color:#284b78}.smart-assistant{position:fixed;right:22px;bottom:22px;z-index:90}.assistant-fab{width:52px;height:52px;border:0;border-radius:18px;background:linear-gradient(135deg,#1769e0,#10a6d8);color:#fff;font-size:24px;font-weight:900;box-shadow:0 16px 34px rgba(23,105,224,.3);cursor:pointer}.assistant-panel{position:absolute;right:0;bottom:64px;width:360px;max-height:520px;background:#fff;border:1px solid #dce5f1;border-radius:18px;box-shadow:0 24px 60px rgba(13,38,72,.22);display:none;overflow:hidden}.smart-assistant.open .assistant-panel{display:flex;flex-direction:column}.assistant-panel header{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;background:#0d2f62;color:#fff}.assistant-panel header strong,.assistant-panel header span{display:block}.assistant-panel header strong{font-size:11px}.assistant-panel header span{font-size:8px;opacity:.8;margin-top:2px}.assistant-panel header button{border:0;background:transparent;color:#fff;font-size:22px;cursor:pointer}.assistant-messages{padding:14px;overflow:auto;min-height:160px;max-height:290px;background:#f7f9fc;display:flex;flex-direction:column;gap:8px}.assistant-bubble{max-width:86%;padding:9px 11px;border-radius:12px;font-size:9px;line-height:1.55}.assistant-bubble.bot{align-self:flex-start;background:#fff;border:1px solid #dce5f1}.assistant-bubble.user{align-self:flex-end;background:#1769e0;color:#fff}.assistant-bubble.loading{opacity:.65}.assistant-suggestions{display:flex;gap:6px;padding:10px 12px 0;overflow:auto}.assistant-suggestions button{white-space:nowrap;border:1px solid #cfdcec;background:#fff;color:#245b9e;border-radius:999px;padding:6px 9px;font-size:8px;font-weight:800;cursor:pointer}.assistant-form{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px 12px 12px}.assistant-form input{min-width:0}.assistant-form button{border:0;border-radius:10px;background:#1769e0;color:#fff;font-weight:800;padding:0 13px;cursor:pointer}.portal-body{margin:0;background:#eef3f9;font-family:Inter,Arial,sans-serif;color:#18243a}.parent-portal{max-width:1120px;margin:24px auto;padding:0 18px 32px}.portal-brand{display:flex;align-items:center;gap:14px;background:#0d2f62;color:#fff;border-radius:18px;padding:18px 20px}.portal-brand img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:14px;padding:5px}.portal-brand h1{font-size:18px;margin:0}.portal-brand p{font-size:9px;margin:4px 0 0;opacity:.82}.portal-profile{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(130px,.7fr));gap:12px;margin:14px 0}.portal-card{background:#fff;border:1px solid #dce5f1;border-radius:14px;padding:14px}.portal-card span,.portal-card b{display:block}.portal-card span{font-size:8px;color:#6f7d91;text-transform:uppercase;letter-spacing:.06em}.portal-card b{font-size:14px;margin-top:5px}.portal-profile .student-card b{font-size:18px}.portal-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.portal-section{background:#fff;border:1px solid #dce5f1;border-radius:16px;padding:15px;margin-bottom:14px}.portal-section h2{font-size:13px;margin:0 0 3px}.portal-section>p{font-size:9px;color:#6d7b90;margin:0 0 12px}.portal-table-wrap{overflow:auto}.portal-table{width:100%;border-collapse:collapse;font-size:9px}.portal-table th,.portal-table td{padding:9px 7px;border-bottom:1px solid #edf1f6;text-align:left;white-space:nowrap}.portal-table th{font-size:8px;color:#66758b;background:#f8fafc}.portal-table .right{text-align:right}.portal-status{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:900}.portal-status.paid{background:#e8f8f0;color:#08764b}.portal-status.partial{background:#fff4df;color:#96600b}.portal-status.unpaid{background:#fff0ef;color:#b64338}.portal-empty{text-align:center;padding:24px;color:#748096;font-size:10px}.portal-foot{text-align:center;color:#8190a5;font-size:8px;padding:12px}.portal-invalid{max-width:620px;margin:90px auto;background:#fff;border:1px solid #dce5f1;border-radius:18px;padding:26px;text-align:center}.portal-invalid img{width:72px;height:72px;object-fit:contain}.portal-invalid h1{font-size:18px}.portal-invalid p{font-size:10px;color:#6c7b90;line-height:1.6}.roadmap{grid-template-columns:repeat(12,minmax(0,1fr))}@media(max-width:900px){.portal-profile{grid-template-columns:1fr 1fr}.portal-grid{grid-template-columns:1fr}.assistant-panel{width:min(360px,calc(100vw - 28px))}.smart-assistant{right:14px;bottom:14px}}@media(max-width:560px){.portal-profile{grid-template-columns:1fr}.parent-portal{margin-top:12px;padding:0 10px 24px}.portal-brand{border-radius:14px}.portal-link-box{align-items:flex-start;flex-direction:column}.portal-link-box .action-row{width:100%}.portal-link-box .btn{flex:1}.roadmap{grid-template-columns:repeat(2,1fr)}}@media print{.smart-assistant{display:none!important}}


/* V1.0 Final Release — Standar Cetak & Dokumen Resmi */
.report-print-meta,.report-print-signature{display:none}
@media print{
 @page{size:A4 portrait;margin:10mm}
 html,body{background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body{font-family:Arial,Helvetica,sans-serif!important;font-size:10pt!important}
 .sidebar,.sidebar-backdrop,.topbar,.app-footer,.smart-assistant,.page-intro,.report-filter-panel,.report-filter,.report-student-search,.pagination,.btn,.action-row,.alert{display:none!important}
 .main-shell{margin:0!important;min-height:0!important}.content-area{padding:0!important;max-width:none!important}
 .report-print-head{display:flex!important;align-items:center;gap:12px;border-bottom:2px solid #111!important;padding:0 0 8px!important;margin:0 0 8px!important;break-inside:avoid}
 .report-print-head img{width:18mm!important;height:18mm!important;object-fit:contain!important}.report-print-head strong{font-size:15pt!important;color:#111!important}.report-print-head span{font-size:9pt!important;color:#222!important}.report-print-head small{font-size:8pt!important;color:#333!important}
 .report-print-meta{display:block!important;text-align:center;margin:0 0 10px;break-inside:avoid}.report-print-title h2{margin:0;font-size:14pt;letter-spacing:.02em}.report-print-title p{margin:3px 0 0;font-size:8.5pt;color:#444}.report-print-meta-grid{display:flex;justify-content:center;gap:5px 14px;flex-wrap:wrap;margin-top:7px}.report-print-meta-grid>div{display:flex;gap:4px;font-size:8pt}.report-print-meta-grid span{color:#555}.report-print-meta-grid b{font-weight:700}.report-print-generated{font-size:7pt;color:#666;margin-top:6px}
 .panel,.metric-card,.report-class-card{box-shadow:none!important;border:1px solid #c9ced6!important;background:#fff!important;color:#111!important;break-inside:avoid;border-radius:4px!important}
 .metric-grid,.report-kpis{gap:5px!important}.metric-card{padding:8px!important;min-height:0!important}.metric-card span,.metric-card small{font-size:7.5pt!important}.metric-card strong{font-size:12pt!important;color:#111!important}
 .table-wrap,.portal-table-wrap{overflow:visible!important}table,.data-table{width:100%!important;border-collapse:collapse!important;font-size:8pt!important;page-break-inside:auto!important}thead{display:table-header-group!important}tfoot{display:table-footer-group!important}tr{break-inside:avoid!important;page-break-inside:avoid!important}th,td{padding:4px 5px!important;border:1px solid #cdd2d9!important;white-space:normal!important;vertical-align:top!important;color:#111!important}th{background:#eef1f5!important;font-weight:700!important}td.right,th.right{text-align:right!important}.table-sub,.cell-sub{font-size:7pt!important;color:#444!important}
 a{color:#111!important;text-decoration:none!important}a[href]:after{content:""!important}
 .status-badge,.portal-status{border:1px solid #777!important;color:#111!important;background:#fff!important}
 .report-two-col{grid-template-columns:1fr!important;gap:7px!important}.report-class-grid{grid-template-columns:repeat(2,1fr)!important;gap:6px!important}.realization-row{grid-template-columns:75px 1fr 120px!important;gap:6px!important}.progress-track{border:1px solid #bbb!important;background:#f2f2f2!important}.progress-track i{background:#555!important}
 .report-print-signature{display:grid!important;grid-template-columns:1fr 1fr;gap:25mm;margin-top:14mm;break-inside:avoid;page-break-inside:avoid}.report-print-signature>div{text-align:center;font-size:9pt;min-height:28mm}.report-print-signature span{display:block}.report-print-signature b{display:block;margin-top:18mm;font-size:9pt}
 .money-in,.money-out{color:#111!important}.mini-empty{border:0!important;background:#fff!important;color:#555!important}
 .payment-student-strip{box-shadow:none!important;border:1px solid #c9ced6!important;break-inside:avoid!important}.payment-student-avatar{display:none!important}
 *{orphans:3;widows:3}
}

/* V1.0 Final Release — standar filter jumlah data + Smart Student Picker */
.list-size-control{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:700;color:var(--muted,#64748b)}
.list-size-control select{min-width:104px;height:38px;padding:0 30px 0 10px}
.student-smart-picker{position:relative;display:grid;gap:8px}
.student-picker-search{position:relative;display:flex;align-items:center}
.student-picker-search input{width:100%;padding-right:72px}
.scan-hint{position:absolute;right:9px;top:50%;transform:translateY(-50%);padding:3px 7px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:10px;font-weight:900;letter-spacing:.08em;pointer-events:none}
.student-picker-selected{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #86efac;background:#f0fdf4;border-radius:10px;color:#14532d}
.student-picker-selected strong{font-size:13px}.student-picker-selected span{font-size:11px}.student-picker-selected.is-empty{border-style:dashed;border-color:#cbd5e1;background:#f8fafc;color:#64748b}
.student-picker-results{position:absolute;z-index:60;left:0;right:0;top:78px;max-height:300px;overflow:auto;padding:6px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(15,23,42,.16)}
.student-picker-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 11px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}
.student-picker-item:hover,.student-picker-item:focus{background:#eff6ff;outline:none}.student-picker-item strong{font-size:13px;color:#0f172a}.student-picker-item span,.student-picker-empty{font-size:11px;color:#64748b}.student-picker-empty{padding:12px}
.form-help{display:block;color:#64748b;line-height:1.45}
@media(max-width:720px){.list-size-control{width:100%;justify-content:space-between}.list-size-control select{flex:0 0 120px}.student-picker-results{top:82px}}


/* V1.0 Final Release — Universal AJAX List Footer */
.filter-bar{align-items:center}
.filter-bar>.btn,.filter-bar>input,.filter-bar>select{min-height:38px}
.filter-bar>input[type=hidden]{display:none!important}
article.panel:has(>form.ajax-list-form){display:flex;flex-direction:column}
article.panel:has(>form.ajax-list-form)>form.ajax-list-form+[id]{flex:1;min-height:0;display:flex;flex-direction:column}
article.panel:has(>form.ajax-list-form)>form.ajax-list-form+[id]>.table-wrap{flex:0 0 auto}
.list-pagination{margin-top:auto;min-height:54px;border-top:1px solid var(--line);padding:14px 2px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.list-pagination-summary{font-size:10px;color:var(--muted);white-space:nowrap}
.list-pagination-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px}
.page-size-select{width:auto!important;min-width:92px!important;height:34px!important;min-height:34px!important;padding:0 30px 0 11px!important;border-radius:9px!important;font-size:10px!important;font-weight:800!important;background-color:#fff}
.pagination-pages{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.pagination-pages a{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;text-decoration:none;color:#536179;font-size:11px;background:#fff}
.pagination-pages a:hover{border-color:#9ebdf1;color:var(--blue);background:#f7faff}
.pagination-pages a.active{background:var(--blue);color:#fff;border-color:var(--blue)}
@media(max-width:700px){.list-pagination{justify-content:center}.list-pagination-summary{width:100%;text-align:center}.list-pagination-actions{width:100%;margin-left:0;justify-content:center;flex-wrap:wrap}}
@media print{.list-pagination{display:none!important}}

/* V1.0 Final Release — penyempurnaan jumlah data & pagination adaptif */
.filter-bar .per-page-control{display:inline-flex;align-items:center;flex:0 0 auto;min-width:128px}
.filter-bar .per-page-control>input[type=hidden]{display:none!important}
.filter-bar .filter-page-size{width:auto!important;min-width:128px!important;min-height:38px!important;height:38px!important;padding:0 34px 0 12px!important;border-radius:10px!important;font-size:11px!important;font-weight:800!important;background-color:#fff}
.list-pagination{margin-top:auto;padding-top:14px}
.list-pagination-actions{margin-left:auto}
@media(max-width:700px){.filter-bar .per-page-control{width:100%!important;min-width:0}.filter-bar .filter-page-size{width:100%!important;min-width:0!important}}

/* =========================================================
   E-KREASI SMART ASSISTANT — FINANCE UX (adaptasi LMS)
   ========================================================= */
.smart-assistant{position:fixed;right:24px;bottom:24px;z-index:1200;font-family:Inter,"Segoe UI",Arial,sans-serif}
.smart-fab{width:58px;height:58px;border:0;border-radius:19px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#123cbd,#2563eb 58%,#0ea5e9);box-shadow:0 16px 36px rgba(29,78,216,.32);font-size:23px;font-weight:900;transition:transform .18s ease,box-shadow .18s ease;position:relative;cursor:pointer;overflow:hidden}.smart-fab img{width:78%;height:78%;object-fit:contain;display:block;filter:drop-shadow(0 4px 10px rgba(255,255,255,.14))}
.smart-fab:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(29,78,216,.38)}
.smart-fab::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(37,99,235,.25);border-radius:23px;animation:smartPulse 2.4s ease-out infinite}
@keyframes smartPulse{0%{transform:scale(.94);opacity:.7}70%,100%{transform:scale(1.16);opacity:0}}
.smart-panel{position:absolute;right:0;bottom:72px;width:min(390px,calc(100vw - 28px));height:min(650px,calc(100vh - 115px));background:#fff;border:1px solid #dce6f3;border-radius:24px;box-shadow:0 28px 80px rgba(15,37,87,.22);overflow:hidden;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(14px) scale(.97);transform-origin:bottom right;transition:opacity .18s ease,transform .18s ease,visibility .18s;pointer-events:none}
.smart-assistant.terbuka .smart-panel{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.smart-assistant.terbuka .smart-fab{transform:rotate(3deg) scale(.94)}
.smart-header{padding:17px 18px;color:#fff;background:linear-gradient(135deg,#102b68,#1648c5 58%,#0b91da);display:flex;align-items:center;gap:12px;position:relative;overflow:hidden}
.smart-header::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;right:-70px;top:-95px;background:rgba(255,255,255,.11)}
.smart-header-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);font-size:18px;flex:0 0 auto;font-weight:900;padding:5px}.smart-header-icon img{width:100%;height:100%;object-fit:contain;display:block}
.smart-header-text{min-width:0;flex:1}.smart-header-text strong{display:block;font-size:14px;line-height:1.2}.smart-header-text small{display:block;margin-top:3px;color:rgba(255,255,255,.78);font-size:10.5px}.smart-online{display:inline-flex!important;align-items:center;gap:5px}.smart-online::before{content:"";width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.14)}.smart-online.smart-connection-checking::before{background:#facc15;box-shadow:0 0 0 3px rgba(250,204,21,.14)}.smart-online.smart-connection-error{color:#ffe4e6!important}.smart-online.smart-connection-error::before{background:#fb7185;box-shadow:0 0 0 3px rgba(251,113,133,.14)}.smart-online.smart-connection-ok::before{background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.14)}
.smart-header-actions{display:flex;align-items:center;gap:4px;position:relative;z-index:2}.smart-icon-btn{width:34px;height:34px;border:0;border-radius:10px;display:grid;place-items:center;background:transparent;color:rgba(255,255,255,.9);font-size:15px;line-height:1;cursor:pointer}.smart-icon-btn:hover,.smart-icon-btn.aktif{background:rgba(255,255,255,.15);color:#fff}.smart-icon-btn:disabled{opacity:.35;cursor:not-allowed}
.smart-messages{flex:1;overflow:auto;padding:18px 14px 12px;background:linear-gradient(180deg,#f8fbff 0,#fff 34%);scroll-behavior:smooth;overscroll-behavior:contain}.smart-messages::-webkit-scrollbar{width:6px}.smart-messages::-webkit-scrollbar-thumb{background:#d9e3f0;border-radius:99px}
.smart-msg{display:flex;gap:8px;align-items:flex-end;margin-bottom:12px}.smart-msg-user{justify-content:flex-end}.smart-msg-avatar{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(145deg,#1d4ed8,#0ea5e9);font-size:11px;font-weight:900;box-shadow:0 5px 12px rgba(37,99,235,.18);overflow:hidden;padding:2px}.smart-msg-avatar img{width:100%;height:100%;object-fit:contain;display:block}
.smart-msg-bubble{max-width:82%;padding:10px 12px;border-radius:15px;background:#fff;border:1px solid #e1e8f2;box-shadow:0 4px 12px rgba(15,37,87,.045);color:#273449;font-size:12px;line-height:1.55}.smart-msg-bubble p{margin:0;white-space:pre-line}.smart-msg-user .smart-msg-bubble{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border-color:transparent;border-bottom-right-radius:5px}.smart-msg-assistant .smart-msg-bubble{border-bottom-left-radius:5px}
.smart-msg-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid #edf1f6}.smart-msg-link{display:inline-flex;align-items:center;max-width:100%;padding:5px 8px;border-radius:8px;text-decoration:none;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smart-msg-link:hover{background:#dbeafe}
.smart-suggestions{display:flex;gap:6px;overflow-x:auto;padding:8px 14px 10px;background:#fff;border-top:1px solid #eef2f7;scrollbar-width:none}.smart-suggestions:empty{display:none}.smart-suggestions::-webkit-scrollbar{display:none}.smart-saran{flex:0 0 auto;border:1px solid #cfe0fb;border-radius:999px;background:#f7fbff;color:#2450a4;padding:6px 9px;font-size:10px;font-weight:700;white-space:nowrap;cursor:pointer}.smart-saran:hover{background:#eaf3ff;border-color:#9fc3fb}
.smart-composer{display:flex;align-items:flex-end;gap:7px;padding:10px 12px 12px;border-top:1px solid #e8edf5;background:#fff}.smart-input-wrap{position:relative;flex:1;min-width:0}.smart-input{display:block;width:100%;height:44px;max-height:100px;resize:none;border:1px solid #d5dfec;border-radius:14px;padding:11px 42px 10px 12px;background:#fbfdff;color:#172033;outline:none;font:inherit;font-size:12px;line-height:1.45}.smart-input:focus{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.smart-mic{position:absolute;right:5px;top:5px;width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:#68809e;font-size:15px;cursor:pointer}.smart-mic:hover{background:#edf4ff;color:#2563eb}.smart-mic.mendengar{color:#dc2626;background:#fee2e2;animation:smartMic 1s infinite alternate}@keyframes smartMic{to{transform:scale(1.08)}}
.smart-send{width:44px;height:44px;border:0;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0ea5e9);box-shadow:0 8px 18px rgba(37,99,235,.22);font-size:16px;cursor:pointer}.smart-send:hover{filter:brightness(.97)}.smart-send:disabled{opacity:.55;cursor:wait;box-shadow:none}
.smart-footer-note{display:block;text-align:left;padding:0 12px 10px;background:#fff;color:#94a3b8;font-size:9px}.smart-auto-send-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -2px 8px;padding:8px 10px;border:1px solid #dce7f5;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#f3f7fd)}
.smart-auto-send-caption{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#40546f;font-size:9.5px;font-weight:800;line-height:1.25}.smart-auto-send-toggle{appearance:none;border:1px solid #cbd5e1;border-radius:999px;background:#eef2f7;color:#64748b;min-height:30px;padding:3px 5px 3px 9px;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:9px;font-weight:900;line-height:1;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;flex:0 0 auto}.smart-auto-send-toggle:hover{border-color:#9ebfea;background:#eef6ff;color:#2456a8}.smart-auto-send-toggle.aktif{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8;box-shadow:0 2px 8px rgba(37,99,235,.10)}.smart-auto-send-toggle:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.smart-auto-send-label{display:inline-flex;align-items:center;white-space:nowrap;min-width:20px;justify-content:center}.smart-switch-track{width:31px;height:18px;padding:2px;border-radius:999px;background:#94a3b8;display:flex;align-items:center;transition:background .16s ease;flex:0 0 auto}.smart-switch-track>span{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.28);transform:translateX(0);transition:transform .16s ease}.smart-auto-send-toggle.aktif .smart-switch-track{background:#2563eb}.smart-auto-send-toggle.aktif .smart-switch-track>span{transform:translateX(13px)}
.smart-footer-meta{display:flex;align-items:center;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;padding:0 3px;text-align:center}.smart-readonly-note{flex:1 1 auto}.smart-voice-hint{color:#64748b;font-weight:700}.smart-mic.siap-kirim{color:#2563eb;background:#dbeafe}.smart-assistant.menunggu-kirim-suara .smart-input{border-color:#93c5fd;background:#f8fbff}
.smart-typing{display:flex;align-items:center;gap:4px;min-width:48px}.smart-typing span{width:5px;height:5px;border-radius:50%;background:#91a4bd;animation:smartDot 1.15s ease-in-out infinite}.smart-typing span:nth-child(2){animation-delay:.15s}.smart-typing span:nth-child(3){animation-delay:.3s}@keyframes smartDot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.smart-assistant.memproses .smart-fab::after{animation-duration:.8s}
@media(max-width:620px){.smart-assistant{right:12px;bottom:14px}.smart-fab{width:54px;height:54px;border-radius:17px}.smart-panel{position:fixed;left:10px;right:10px;bottom:76px;width:auto;height:min(72vh,650px);border-radius:22px;transform-origin:bottom center}.smart-msg-bubble{max-width:86%}}
@media(max-width:420px){.smart-panel{left:0;right:0;bottom:0;height:min(84vh,720px);border-radius:22px 22px 0 0}.smart-assistant.terbuka .smart-fab{opacity:0;pointer-events:none}.smart-header{padding:15px}.smart-messages{padding-left:10px;padding-right:10px}.smart-footer-note{padding-left:10px;padding-right:10px}.smart-auto-send-row{padding:7px 9px}.smart-auto-send-caption{font-size:9px}.smart-footer-meta{justify-content:center}.smart-readonly-note{flex:1 1 100%;text-align:center}.smart-voice-hint{font-size:8.5px}}
@media print{.smart-assistant{display:none!important}}

/* ================================================================
   V1.0 Final Release · Portal Siswa & Akun Siswa
   ================================================================ */
.account-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 16px;padding:14px 16px;border:1px solid #dbe5f2;border-radius:14px;background:#f8fbff}.account-bulk-bar>div{display:flex;flex-direction:column;gap:3px}.account-bulk-bar b{font-size:13px}.account-bulk-bar span{font-size:12px;color:#63728a}.account-bulk-bar form{margin:0;flex:0 0 auto}.table-actions form{display:inline-flex;margin:0}.check-row{display:flex!important;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid #dbe5f2;border-radius:10px;background:#f8fbff;font-weight:600}.check-row input[type=checkbox]{width:17px;height:17px;margin-top:1px;flex:0 0 auto}.check-row span{line-height:1.45}
.student-portal-body{margin:0;background:#f3f6fb;color:#162033;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.student-portal-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px clamp(16px,3vw,42px);background:rgba(255,255,255,.96);border-bottom:1px solid #dce5f0;backdrop-filter:blur(14px)}.student-brand{display:flex;align-items:center;gap:12px;min-width:0}.student-brand img{width:42px;height:42px;object-fit:contain}.student-brand div{display:flex;flex-direction:column;min-width:0}.student-brand strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-brand span{font-size:11px;color:#69778e}.student-top-actions{display:flex;align-items:center;gap:8px}.student-top-actions form{margin:0}.student-portal-shell{max-width:1440px;margin:0 auto;padding:24px clamp(14px,2.5vw,34px) 40px}.student-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:22px 24px;border-radius:18px;background:linear-gradient(135deg,#ffffff 0%,#eef5ff 100%);border:1px solid #dce8f8}.student-hero h1{margin:5px 0 6px;font-size:clamp(24px,3vw,36px);line-height:1.1}.student-hero p{margin:0;color:#5e6e86}.student-year-filter{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto}.student-year-filter label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#607089;font-weight:700}.student-year-filter select{min-width:170px}.student-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.student-summary-grid article{padding:16px 18px;background:#fff;border:1px solid #dde6f2;border-radius:15px;box-shadow:0 5px 20px rgba(29,55,90,.05)}.student-summary-grid span{display:block;font-size:11px;color:#6b7890;margin-bottom:5px}.student-summary-grid b{font-size:20px}.student-summary-grid article.danger{border-color:#f2c3c3;background:#fff7f7}.student-summary-grid article.danger b{color:#b42318}.student-section{background:#fff;border:1px solid #dfe7f1;border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 5px 20px rgba(29,55,90,.04)}.student-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.student-section-head h2{font-size:16px;margin:0 0 3px}.student-section-head p{font-size:12px;color:#6b7890;margin:0}.student-spp-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:9px}.student-spp-cell{min-height:96px;padding:12px;border-radius:12px;border:1px solid #d9e2ed;display:flex;flex-direction:column;justify-content:space-between;gap:4px}.student-spp-cell strong{font-size:12px}.student-spp-cell b{font-size:13px}.student-spp-cell small{font-size:10px;line-height:1.35}.student-spp-cell.status-paid{background:#159947;border-color:#11823c;color:#fff}.student-spp-cell.status-partial{background:#f4a300;border-color:#d78f00;color:#231b00}.student-spp-cell.status-unpaid{background:#d9363e;border-color:#bd2c33;color:#fff}.student-spp-cell.status-none{background:#f5f7fa;color:#7b8799}.student-spp-cell.status-paid small,.student-spp-cell.status-unpaid small{color:rgba(255,255,255,.9)}.student-two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:16px}.student-two-col>.student-section{min-width:0}.student-profile-list{display:grid;gap:0}.student-profile-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed #dfe6ef}.student-profile-list>div:last-child{border-bottom:0}.student-profile-list span{font-size:11px;color:#6d7b91}.student-profile-list b{font-size:12px;text-align:right}.student-security-note{padding:13px 15px;border:1px solid #bfd8f7;border-radius:12px;background:#edf6ff;color:#31557e;font-size:12px;line-height:1.55}.student-portal-footer{display:flex;justify-content:space-between;gap:10px;padding:17px clamp(16px,3vw,42px);border-top:1px solid #dfe6ef;background:#fff;color:#728096;font-size:10px}.student-password-body{margin:0;min-height:100vh;background:linear-gradient(135deg,#edf4ff,#f8fbff);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#162033;display:grid;place-items:center;padding:20px}.student-password-shell{width:min(520px,100%)}.student-password-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.student-password-brand img{width:42px;height:42px;object-fit:contain}.student-password-brand div{display:flex;flex-direction:column}.student-password-brand b{font-size:13px}.student-password-brand span{font-size:10px;color:#68778d}.student-password-card{background:#fff;border:1px solid #dce5f0;border-radius:18px;padding:26px;box-shadow:0 18px 55px rgba(25,52,88,.12)}.student-password-card h1{margin:6px 0 7px;font-size:25px}.student-password-card>p{margin:0 0 18px;color:#6b7890;font-size:13px;line-height:1.55}.student-password-card small{color:#6b7890;line-height:1.45}.student-password-back{margin-top:12px}.student-portal-content-loading{opacity:.55;pointer-events:none}
@media(max-width:1100px){.student-spp-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.student-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-two-col{grid-template-columns:1fr}}
@media(max-width:720px){.account-bulk-bar{align-items:stretch;flex-direction:column}.account-bulk-bar form,.account-bulk-bar .btn{width:100%}.student-portal-top{position:relative;align-items:flex-start;flex-direction:column}.student-top-actions{width:100%;justify-content:flex-end}.student-hero{align-items:stretch;flex-direction:column}.student-year-filter{align-items:stretch}.student-year-filter label{flex:1}.student-year-filter select{min-width:0;width:100%}.student-summary-grid{grid-template-columns:1fr 1fr}.student-spp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-section{padding:12px}.student-portal-footer{flex-direction:column}.student-profile-list>div{flex-direction:column;gap:3px}.student-profile-list b{text-align:left}}
@media(max-width:420px){.student-summary-grid{grid-template-columns:1fr}.student-spp-grid{grid-template-columns:1fr 1fr}.student-top-actions{justify-content:stretch}.student-top-actions .btn{flex:1;text-align:center}.student-top-actions form{flex:1}.student-top-actions form .btn{width:100%}}


/* V1.0 Final Release — Sidebar desktop dapat disembunyikan untuk memaksimalkan area kerja */
.desktop-only{display:grid}
.sidebar,.main-shell{transition:transform .22s ease,margin-left .22s ease}
.desktop-sidebar-toggle{flex:0 0 auto}
@media(min-width:821px){
 html.sidebar-collapsed .sidebar{transform:translateX(-100%)}
 html.sidebar-collapsed .main-shell{margin-left:0}
 html.sidebar-collapsed .desktop-sidebar-toggle{background:#eef4ff;color:var(--blue);border-color:#c8d8fb;box-shadow:0 0 0 3px rgba(37,99,235,.06)}
}
@media(max-width:820px){.desktop-only{display:none!important}}
@media(prefers-reduced-motion:reduce){.sidebar,.main-shell{transition:none!important}}

/* ================================================================
   V1.0 Final Release · Mobile Responsive Hardening
   Audit global 320px–desktop: shell, toolbar, form, tabel, portal.
   ================================================================ */
html{max-width:100%;overflow-x:hidden}body{max-width:100%;overflow-x:hidden}img,svg,video,canvas{max-width:100%}.main-shell,.content-area,.panel,.page-intro>*,.panel-head>*,.topbar-left,.topbar-left>div{min-width:0}.table-wrap,.spp-grid-wrap,.portal-table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}.table-wrap table,.spp-grid-wrap table,.portal-table-wrap table{max-width:none}.filter-bar,.action-row,.form-actions,.panel-head,.page-intro{max-width:100%}
@media(max-width:820px){
 body.sidebar-open{overflow:hidden;touch-action:none}
 .sidebar{width:min(292px,88vw);max-width:88vw}
 .topbar{height:auto;min-height:66px;padding:9px 12px;gap:8px}
 .topbar-left{flex:1;overflow:hidden;gap:8px}
 .topbar-left>div{overflow:hidden}
 .topbar h1{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .topbar p{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .topbar-user{flex:0 0 auto}
 .content-area{padding:14px}
 .page-intro{gap:12px;margin-bottom:16px}
 .page-intro h2{font-size:clamp(20px,6vw,24px);overflow-wrap:anywhere}
 .page-intro p{font-size:12px}
 .btn{min-height:44px}
 .icon-button{width:44px;height:44px;min-width:44px;min-height:44px}
 input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select{min-height:44px}
 textarea{min-height:92px}
 .filter-bar>.btn,.filter-bar>input,.filter-bar>select,.filter-bar .filter-page-size{min-height:44px!important;height:auto!important}
 .filter-bar{align-items:stretch}
 .pagination a,.pagination-pages a{min-width:40px;height:40px}
 .list-pagination{min-height:58px}
 .student-picker-item{min-height:44px}
 .smart-saran,.assistant-suggestions button{min-height:38px}
}
@media(max-width:560px){
 .content-area{padding:12px}
 .panel,.form-panel{padding:14px}
 .panel-head{flex-direction:column;align-items:stretch;gap:8px}
 .panel-head .action-row{width:100%}
 .panel-head .action-row .btn{flex:1 1 auto}
 .form-actions{width:100%;gap:8px;flex-wrap:wrap}
 .form-actions .btn{flex:1 1 100%}
 .upload-card{flex-direction:column;align-items:stretch}
 .upload-card img,.upload-card.photo img{align-self:center}
 .detail-list>div,.readiness-list>div{align-items:flex-start;flex-direction:column;gap:4px}
 .detail-list dd{text-align:left;overflow-wrap:anywhere}
 .status-pill{white-space:normal}
 .topbar-user .avatar{width:34px;height:34px;border-radius:10px}
 .page-intro .action-row{gap:7px}
 .page-intro .action-row .btn{flex:1 1 calc(50% - 7px)}
 .list-pagination-summary{white-space:normal}
 .fc-inline-stats{flex-wrap:wrap;gap:10px 16px}
 .student-section-head{flex-direction:column}
 .student-section-head .action-row{width:100%}
 .student-section-head .btn{width:100%}
}
@media(max-width:360px){
 .content-area{padding:10px}
 .panel,.form-panel{padding:12px;border-radius:14px}
 .topbar{padding-left:9px;padding-right:9px}
 .topbar h1{font-size:14px}
 .topbar p{font-size:9px}
 .page-intro h2{font-size:20px}
 .page-intro .action-row .btn{flex-basis:100%}
 .student-summary-grid{grid-template-columns:1fr}
 .student-spp-grid{grid-template-columns:1fr}
 .smart-panel{left:0;right:0;width:100vw;max-width:100vw}
}
/* Smart Assistant rilis wake word & hands-free — wake word & hands-free navigator */
.smart-wake-toggle{border:0;background:transparent;color:#475569;font:inherit;font-weight:800;padding:0;cursor:pointer}.smart-wake-toggle.aktif{color:#0f766e}.smart-wake-toggle:disabled{opacity:.55;cursor:not-allowed}.smart-wake-status{color:#64748b;font-weight:700}.smart-assistant.wake-standby .smart-fab::before{content:"";position:absolute;right:5px;top:5px;width:10px;height:10px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.17);animation:smartWakeBlink 1.8s ease-in-out infinite}@keyframes smartWakeBlink{0%,100%{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.12)}}
@media(max-width:420px){.smart-wake-toggle,.smart-wake-status{font-size:8.5px}}

/* =========================================================
   OFFICIAL SA BRANDING — compact loading / processing state
   ========================================================= */
.smart-processing{align-items:center}.smart-processing-avatar{animation:smartBrandBreathe 1.35s ease-in-out infinite}.smart-processing-bubble{min-width:176px;background:linear-gradient(180deg,#ffffff,#f8fbff);border-color:#cfe0fb;box-shadow:0 8px 20px rgba(37,99,235,.08)}.smart-processing-title{font-size:10px;font-weight:800;color:#1e40af;margin-bottom:3px}.smart-processing-line{display:flex;align-items:center;gap:7px;color:#64748b;font-size:10.5px}.smart-processing-text{white-space:nowrap}.smart-processing-line .smart-typing{display:inline-flex;align-items:center;gap:3px;padding:0;background:transparent;border:0;box-shadow:none}.smart-processing-line .smart-typing span{width:4px;height:4px;border-radius:99px;background:#2563eb;animation:smartDot 1.15s ease-in-out infinite}.smart-processing-line .smart-typing span:nth-child(2){animation-delay:.15s}.smart-processing-line .smart-typing span:nth-child(3){animation-delay:.3s}@keyframes smartBrandBreathe{0%,100%{transform:scale(1);filter:drop-shadow(0 3px 8px rgba(37,99,235,.10))}50%{transform:scale(1.07);filter:drop-shadow(0 5px 12px rgba(37,99,235,.24))}}

/* E-Kreasi financial table standard: unit in header, values right-aligned without repeated Rp */
.nominal-head{text-align:center!important;white-space:nowrap}.nominal-head small{display:block;font-size:10px;line-height:1.15;font-weight:700;opacity:.7;margin-top:2px}

/* Final commercial reporting controls */
.report-setting-panel{margin-top:18px}.report-sign-options{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0}.report-sign-options label{display:flex;align-items:center;gap:7px}.report-header-preview{border:1px dashed var(--line);border-radius:14px;padding:16px;text-align:center;background:#fbfcfe}.report-header-preview>small{display:block;margin-bottom:8px;color:var(--muted);font-size:9px}.report-header-preview>div{line-height:1.25}.report-print-signature-wrap,.report-sign-meta{display:none}
@media print{.report-print-head .report-kop-lines{flex:1;text-align:center;align-items:center!important}.report-print-head .report-kop-lines strong,.report-print-head .report-kop-lines span,.report-print-head .report-kop-lines small{display:block;width:100%;line-height:1.15;margin:0!important}.report-print-signature-wrap{display:block!important;margin-top:12mm;break-inside:avoid;page-break-inside:avoid}.report-sign-meta{display:grid!important;grid-template-columns:1fr 1fr 1fr;align-items:end;font-size:9pt;margin-bottom:2mm}.report-sign-meta strong{text-align:center}.report-sign-meta span:last-child{text-align:center}.report-print-signature{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:12mm;margin-top:0!important;break-inside:avoid;page-break-inside:avoid}.report-print-signature>div{text-align:center;font-size:9pt;min-height:28mm}.report-print-signature span{display:block}.report-print-signature b{display:block;margin-top:18mm;font-size:9pt}.report-print-signature .is-disabled{visibility:hidden}}

/* ========================================================================== */
/* R3.3 · PAYMENT CASHIER UX — adapted from E-Kreasi POS ergonomics           */
/* ========================================================================== */
.payment-pos-intro{align-items:flex-end}.payment-pos-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.payment-pos-shortcut{display:inline-flex;align-items:center;gap:6px;color:#6b7890;font-size:9px;font-weight:800}.payment-pos-shortcut kbd,.payment-pos-shortcuts kbd,.payment-pos-empty-shortcuts kbd,.payment-pos-modal-hint kbd{border:1px solid #d7e0ec;background:#f7f9fc;color:#42526b;border-radius:6px;padding:3px 6px;font-size:8px;box-shadow:0 1px 0 rgba(15,23,42,.04)}
.payment-pos-search-panel{padding:15px 17px 13px;background:linear-gradient(155deg,#fff,#f8fbff)}.payment-pos-console-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}.payment-pos-console-head h3{margin:3px 0 0;font-size:14px}.payment-pos-status-badge{align-self:center;border:1px solid #d8e4f3;background:#eef5ff;color:#456482;border-radius:999px;padding:6px 9px;font-size:8px;font-weight:850;letter-spacing:.02em}.payment-pos-search-top{grid-template-columns:190px minmax(0,1fr)}.payment-pos-search-box{height:50px;border-radius:14px;border-color:#c8d7e9;box-shadow:0 7px 22px rgba(18,56,103,.07)}.payment-pos-search-box input{font-size:13px!important;font-weight:650}.payment-pos-search-box>span{width:27px;height:27px;border-radius:9px;background:#e8f1ff}.payment-pos-search-results{margin-top:8px}.payment-pos-search-results .payment-search-list{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-pos-search-results .payment-search-list>a{background:#fff;box-shadow:0 3px 12px rgba(20,51,91,.04)}
.payment-pos-empty-state{min-height:340px;background:radial-gradient(circle at 50% 0,rgba(37,99,235,.06),transparent 32%),#fbfcfe}.payment-pos-empty-state .empty-icon{width:68px;height:68px;border-radius:20px;box-shadow:0 10px 28px rgba(37,99,235,.10)}.payment-pos-empty-state h3{font-size:18px}.payment-pos-empty-shortcuts{display:flex;gap:10px;justify-content:center;margin-top:15px;color:#74839a;font-size:9px;font-weight:750}
.payment-pos-student-strip{grid-template-columns:58px minmax(0,1fr) auto;background:radial-gradient(circle at 86% 0,rgba(34,211,238,.20),transparent 31%),linear-gradient(135deg,#0b2348,#155bb8 66%,#1e73cf);border-radius:18px;padding:14px 17px;box-shadow:0 14px 34px rgba(18,62,119,.17)}.payment-pos-student-metrics{gap:0;border:1px solid rgba(255,255,255,.14);border-radius:13px;overflow:hidden;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.payment-pos-student-metrics>div{min-width:92px;padding:9px 13px;text-align:right}.payment-pos-student-metrics>div+div{border-left:1px solid rgba(255,255,255,.13)}.payment-pos-student-metrics .outstanding{background:rgba(4,18,43,.18);min-width:132px}.payment-pos-student-metrics .outstanding b{font-size:14px;color:#fff7cf}
.payment-pos-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(340px,.72fr);gap:14px;align-items:start}.payment-pos-catalog{gap:14px}.payment-pos-bill-panel{padding:16px;min-width:0}.payment-pos-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.payment-pos-section-head h3{margin:3px 0 4px;font-size:15px}.payment-pos-section-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.payment-pos-legend{margin:9px 0 13px}.payment-pos-fee-groups{display:grid;gap:13px}.payment-pos-fee-group{border:1px solid #e0e7f0;border-radius:15px;padding:11px;background:linear-gradient(155deg,#fff,#fafcff)}.payment-pos-fee-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.payment-pos-fee-head>div{display:grid}.payment-pos-fee-head b{font-size:11px;color:#17345e}.payment-pos-fee-head small{font-size:8px;color:#7d8999;margin-top:2px}.payment-pos-fee-head>span{font-size:8px;font-weight:850;color:#5f7290;background:#f0f4f9;border-radius:999px;padding:5px 8px}.payment-pos-month-grid{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:8px}.payment-pos-bill-card{position:relative;min-height:128px;border:1px solid #dce5f0;border-radius:13px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 13px rgba(19,48,87,.035);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}.payment-pos-bill-card.clickable{cursor:pointer}.payment-pos-bill-card.clickable:hover{transform:translateY(-2px);border-color:#8eb6f5;box-shadow:0 10px 24px rgba(28,84,166,.11)}.payment-pos-bill-card.empty{align-items:center;justify-content:center;text-align:center;background:#f8fafc;color:#97a4b4;border-style:dashed;box-shadow:none}.payment-pos-bill-card.empty b{font-size:16px}.payment-pos-bill-card>input[type=checkbox],.payment-pos-other-card>input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.payment-pos-bill-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.payment-pos-period{font-size:8.5px;font-weight:900;color:#2d4669;line-height:1.25}.payment-pos-bill-status{font-size:6.7px;font-weight:900;text-transform:uppercase;letter-spacing:.035em;border-radius:999px;padding:3px 5px;white-space:nowrap;background:#eef2f7;color:#6a7b92}.payment-pos-bill-card.unpaid .payment-pos-bill-status,.payment-pos-other-card.unpaid .payment-pos-bill-status{background:#feecec;color:#a72828}.payment-pos-bill-card.partial .payment-pos-bill-status,.payment-pos-other-card.partial .payment-pos-bill-status{background:#fff4d7;color:#9b5d00}.payment-pos-bill-card.paid .payment-pos-bill-status,.payment-pos-other-card.paid .payment-pos-bill-status{background:#e8f8ef;color:#0c8153}.payment-pos-bill-amount{font-size:13px;color:#143c78;letter-spacing:-.15px;margin-top:2px}.payment-pos-bill-card>small{font-size:7.7px;color:#748198;line-height:1.35}.payment-pos-bill-card.paid{background:linear-gradient(155deg,#f7fdf9,#edfaf3);border-color:#c8ead7}.payment-pos-bill-card.partial{border-color:#efd69b;background:linear-gradient(155deg,#fffdf7,#fff9e9)}.payment-pos-bill-card.selected,.payment-pos-other-card.selected{border-color:#2768d8!important;background:linear-gradient(155deg,#f7faff,#eaf2ff)!important;box-shadow:0 10px 25px rgba(37,99,235,.14)!important;outline:2px solid rgba(37,99,235,.14);transform:translateY(-1px)}.payment-pos-bill-card.selected::after,.payment-pos-other-card.selected::after{content:'✓';position:absolute;right:8px;bottom:8px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:11px;font-weight:900;box-shadow:0 4px 10px rgba(37,99,235,.24)}.payment-pos-allocation{margin-top:auto;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding-top:5px;border-top:1px dashed #dfe6ef}.payment-pos-allocation>span{font-size:7.5px;color:#728198;font-weight:800}.payment-pos-allocation .allocation-input{min-height:30px!important;height:30px!important;margin:0!important;padding:4px 7px!important;border-radius:8px!important;font-size:9px!important;background:#fff!important}.payment-pos-bill-card:not(.selected) .payment-pos-allocation,.payment-pos-other-card:not(.selected) .payment-pos-allocation{opacity:.56}.payment-pos-bill-card:not(.selected) .allocation-input,.payment-pos-other-card:not(.selected) .allocation-input{pointer-events:none}.payment-pos-bill-card[role=button]:focus,.payment-pos-other-card[role=button]:focus{outline:3px solid #a8c7ff;outline-offset:2px}
.payment-pos-nonmonthly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.payment-pos-other-card{position:relative;min-height:158px;padding:12px;border:1px solid #dce5f0;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:9px;box-shadow:0 4px 14px rgba(19,48,87,.035);transition:.14s}.payment-pos-other-card.clickable{cursor:pointer}.payment-pos-other-card.clickable:hover{transform:translateY(-2px);border-color:#8eb6f5;box-shadow:0 10px 24px rgba(28,84,166,.11)}.payment-pos-other-card.paid{background:linear-gradient(155deg,#f7fdf9,#edfaf3);border-color:#c8ead7}.payment-pos-other-card.partial{border-color:#efd69b;background:linear-gradient(155deg,#fffdf7,#fff9e9)}.payment-pos-other-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.payment-pos-other-head>div{display:grid;min-width:0}.payment-pos-other-head b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-pos-other-head small{font-size:7.8px;color:#79869a;margin-top:2px}.payment-pos-other-money{display:grid;grid-template-columns:1fr 1fr;gap:7px}.payment-pos-other-money>div{padding:7px 8px;border-radius:9px;background:#f6f8fb;display:grid;gap:2px}.payment-pos-other-money span{font-size:7px;color:#7d899a;font-weight:800}.payment-pos-other-money b{font-size:10px;color:#173760}
.payment-pos-cart{position:sticky;top:88px;padding:0;overflow:hidden;background:linear-gradient(180deg,#fff,#fbfdff);border-radius:18px}.payment-pos-cart-head{padding:16px;background:radial-gradient(circle at 90% 5%,rgba(34,211,238,.25),transparent 33%),linear-gradient(135deg,#0b2348,#155bb8);color:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.payment-pos-cart-head .eyebrow{color:#9edcff}.payment-pos-cart-head h3{font-size:16px;margin:4px 0 0}.payment-pos-auto{display:grid;text-align:right;gap:2px;padding:6px 8px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08)}.payment-pos-auto small{font-size:6.5px;color:#a9ccef;letter-spacing:.08em}.payment-pos-auto b{font-size:10px}.payment-pos-cart-column-head{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;padding:8px 14px;background:#f6f8fb;color:#7b899b;font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.payment-pos-cart-column-head span:last-child{text-align:right}.payment-pos-cart-list{padding:7px 13px;min-height:118px;max-height:330px;overflow:auto;scrollbar-width:thin}.payment-pos-cart-empty{min-height:104px;display:grid;place-items:center;align-content:center;text-align:center;gap:4px;color:#7b8797}.payment-pos-cart-empty b{font-size:10px;color:#53647b}.payment-pos-cart-empty small{font-size:8px}.payment-pos-cart-line{display:grid;grid-template-columns:minmax(0,1fr) 108px 25px;gap:7px;align-items:center;padding:9px 0;border-bottom:1px dashed #dfe6ef}.payment-pos-cart-line:last-child{border-bottom:0}.payment-pos-cart-line-main{min-width:0;display:grid;gap:2px}.payment-pos-cart-line-main b{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-pos-cart-line-main small{font-size:7.5px;color:#7b879a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-pos-cart-amount{min-height:31px!important;height:31px!important;padding:4px 6px!important;font-size:9px!important;font-weight:850!important;text-align:right;border-radius:8px!important}.payment-pos-cart-remove{width:25px;height:25px;border:0;border-radius:8px;background:#fff0f0;color:#b42318;font-weight:900;cursor:pointer;display:grid;place-items:center}.payment-pos-cart-remove:hover{background:#ffe2e2}.payment-pos-summary{margin:0 13px 12px;border:1px solid #dce5f1;border-radius:13px;overflow:hidden}.payment-pos-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px}.payment-pos-summary span{font-size:9px;color:#6f7e93;font-weight:750}.payment-pos-summary b{font-size:11px}.payment-pos-summary-grand{background:radial-gradient(circle at 92% 5%,rgba(34,211,238,.21),transparent 32%),linear-gradient(135deg,#0b2348,#155bb8);color:#fff}.payment-pos-summary-grand span{color:#c5d9f5;font-size:9px;letter-spacing:.08em}.payment-pos-summary-grand strong{font-size:23px;letter-spacing:-.5px}.payment-pos-checkout-btn{width:calc(100% - 26px);margin:0 13px 9px;min-height:49px;font-size:13px;justify-content:space-between;padding-inline:16px}.payment-pos-checkout-btn kbd{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);border-radius:6px;padding:3px 6px;font-size:8px}.payment-pos-checkout-btn:disabled{opacity:.55}.payment-pos-shortcuts{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;padding:0 12px 13px;color:#7c899a;font-size:7.5px}.payment-pos-shortcuts span{white-space:nowrap}
.payment-pos-modal{display:none;position:fixed;inset:0;z-index:240;padding:16px}.payment-pos-modal.open{display:grid;place-items:center}.payment-pos-modal-backdrop{position:absolute;inset:0;background:rgba(3,19,43,.60);backdrop-filter:blur(7px)}.payment-pos-dialog{position:relative;width:min(790px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.75);border-radius:25px;padding:21px;box-shadow:0 35px 100px rgba(4,25,58,.40)}.payment-pos-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.payment-pos-dialog-head h2{font-size:23px;margin:4px 0 2px;color:#0b2b5b}.payment-pos-dialog-head p{margin:0;color:#76869a;font-size:10px}.payment-pos-close{width:40px;height:40px;flex:0 0 40px;border:1px solid #d9e3ef;border-radius:12px;background:#f7faff;color:#4b607b;font-size:23px;line-height:1;cursor:pointer}.payment-pos-total-hero{margin:15px 0 13px;padding:16px 19px;border-radius:17px;background:radial-gradient(circle at 92% 8%,rgba(34,211,238,.26),transparent 31%),linear-gradient(135deg,#0a2247,#155bb8);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px}.payment-pos-total-hero span{font-size:11px;font-weight:800;color:#c9dcf7}.payment-pos-total-hero strong{font-size:34px;letter-spacing:-.8px}.payment-pos-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-pos-method-wrap{grid-column:1/-1}.payment-pos-field-label{display:block;margin-bottom:7px;font-size:11px;font-weight:750;color:#46556c}.payment-pos-methods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.payment-pos-method{min-height:50px;border:1px solid #d9e3ef;background:#f8fbff;color:#4d647f;border-radius:12px;font-weight:850;cursor:pointer;padding:7px 9px;display:grid;place-items:center;gap:2px}.payment-pos-method small{font-size:7px;font-weight:700;opacity:.76}.payment-pos-method:hover{border-color:#9bbcf0;background:#f2f7ff}.payment-pos-method.active{border-color:#2563eb;background:linear-gradient(135deg,#1c5cca,#2580e6);color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.20)}.payment-pos-received-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(210px,.55fr);gap:12px;align-items:stretch;margin-top:12px}.payment-pos-received-grid>label{margin:0}.payment-pos-received-grid #paymentReceived{font-size:18px;font-weight:850;min-height:48px;text-align:right}.payment-pos-change{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:13px;padding:10px 13px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:4px}.payment-pos-change span{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.payment-pos-change b{font-size:23px}.payment-pos-change b.negative{color:#b42318}.payment-pos-notes{margin-top:12px}.payment-pos-final-note{margin-top:12px;padding:10px 12px;border:1px solid #d8e4f2;background:#f7faff;border-radius:11px;display:grid;gap:2px}.payment-pos-final-note strong{font-size:9.5px;color:#385273}.payment-pos-final-note span{font-size:8px;color:#758399;line-height:1.45}.payment-pos-modal-actions{display:grid;grid-template-columns:150px 1fr;gap:9px;margin-top:13px}.payment-pos-confirm{min-height:50px;font-size:12px}.payment-pos-modal-hint{text-align:center;color:#8793a3;font-size:8px;margin:10px 0 0}.payment-pos-modal-open{overflow:hidden}.payment-pos-mobile-dock{display:none}.payment-pos-recent-panel{margin-top:14px}.payment-pos-recent-panel th small{font-size:7px;font-weight:700;text-transform:none;letter-spacing:0}
@media(max-width:1380px){.payment-pos-month-grid{grid-template-columns:repeat(4,minmax(105px,1fr))}.payment-pos-nonmonthly-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1180px){.payment-pos-layout{grid-template-columns:minmax(0,1fr) 330px}.payment-pos-search-results .payment-search-list{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-pos-month-grid{grid-template-columns:repeat(3,minmax(105px,1fr))}.payment-pos-student-metrics>div{min-width:82px;padding-inline:9px}}
@media(max-width:980px){.payment-pos-layout{grid-template-columns:1fr}.payment-pos-cart{position:static}.payment-pos-month-grid{grid-template-columns:repeat(4,minmax(105px,1fr))}.payment-pos-student-strip{grid-template-columns:52px 1fr}.payment-pos-student-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);width:100%}.payment-pos-student-metrics>div{text-align:left;border-left:0!important}.payment-pos-student-metrics>div+div{border-left:1px solid rgba(255,255,255,.13)!important}}
@media(max-width:760px){.payment-pos-intro{align-items:flex-start}.payment-pos-top-actions{justify-content:flex-start}.payment-pos-top-actions .payment-pos-shortcut{display:none}.payment-pos-search-top{grid-template-columns:1fr}.payment-pos-console-head{align-items:flex-start}.payment-pos-status-badge{display:none}.payment-pos-search-results .payment-search-list{grid-template-columns:1fr}.payment-pos-month-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}.payment-pos-nonmonthly-grid{grid-template-columns:1fr}.payment-pos-section-head{align-items:flex-start;flex-direction:column}.payment-pos-section-head .btn{width:100%}.payment-pos-cart{margin-bottom:74px}.payment-pos-mobile-dock{position:fixed;left:calc(272px + 12px);right:12px;bottom:10px;z-index:110;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px 10px 14px;border:1px solid rgba(255,255,255,.72);border-radius:17px;background:rgba(10,35,73,.96);box-shadow:0 15px 42px rgba(4,25,58,.28);backdrop-filter:blur(12px);color:#fff}.sidebar-collapsed .payment-pos-mobile-dock{left:12px}.payment-pos-mobile-dock>div{display:grid;gap:1px}.payment-pos-mobile-dock small{font-size:7px;color:#afc9ea;letter-spacing:.04em}.payment-pos-mobile-dock strong{font-size:17px}.payment-pos-mobile-dock .btn{min-width:105px;min-height:42px;background:#f4bd48;color:#102c52;box-shadow:none}.payment-pos-modal-grid{grid-template-columns:1fr}.payment-pos-method-wrap{grid-column:auto}.payment-pos-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-pos-received-grid{grid-template-columns:1fr}.payment-pos-change{align-items:flex-start}.payment-pos-modal-actions{grid-template-columns:1fr 2fr}}
@media(max-width:820px){.payment-pos-mobile-dock{left:10px!important;right:10px}.payment-pos-dialog{width:min(100%,720px)}}
@media(max-width:560px){.payment-pos-student-strip{grid-template-columns:43px 1fr;padding:12px}.payment-student-avatar{width:42px;height:42px}.payment-pos-student-id h3{font-size:15px}.payment-pos-student-metrics{grid-template-columns:repeat(2,1fr)}.payment-pos-student-metrics>div:nth-child(3){border-top:1px solid rgba(255,255,255,.13)}.payment-pos-student-metrics>div:nth-child(4){border-top:1px solid rgba(255,255,255,.13)}.payment-pos-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-pos-bill-card{min-height:126px}.payment-pos-fee-group{padding:9px}.payment-pos-bill-panel{padding:12px}.payment-pos-dialog{border-radius:20px;padding:16px}.payment-pos-total-hero strong{font-size:28px}.payment-pos-modal-actions{grid-template-columns:1fr}.payment-pos-modal-actions .btn{min-height:46px}.payment-pos-cart-list{max-height:250px}.payment-pos-empty-shortcuts{flex-direction:column}.payment-pos-mobile-dock{bottom:7px;border-radius:15px}.payment-pos-recent-panel{overflow:hidden}}
@media(max-width:380px){.payment-pos-month-grid{grid-template-columns:1fr 1fr;gap:6px}.payment-pos-bill-card{padding:8px;min-height:120px}.payment-pos-bill-amount{font-size:11px}.payment-pos-methods{grid-template-columns:1fr 1fr}.payment-pos-total-hero{padding:13px 14px}.payment-pos-total-hero strong{font-size:24px}.payment-pos-mobile-dock strong{font-size:15px}.payment-pos-mobile-dock .btn{min-width:88px}}

/* ========================================================================== */
/* R3.4 · DYNAMIC 5 THEME E-KREASI — live per-user + default sekolah         */
/* ========================================================================== */
html[data-theme="green_gold"]{--theme-primary:#14532d;--theme-primary-2:#0f7a49;--theme-deep:#082f1d;--theme-accent:#d4a72c;--theme-link:#146c43;--theme-soft:#eef7f1;--theme-soft2:#f8f3df;--theme-line:#dce8df;--theme-bg:#f5f8f3;--theme-surface:#ffffff;--theme-surface2:#f8fbf9}
html[data-theme="royal_blue"]{--theme-primary:#155eef;--theme-primary-2:#0b74ff;--theme-deep:#071a3a;--theme-accent:#00b8d9;--theme-link:#155eef;--theme-soft:#eef5ff;--theme-soft2:#e8faff;--theme-line:#dbe5f1;--theme-bg:#f4f7fb;--theme-surface:#ffffff;--theme-surface2:#f7faff}
html[data-theme="amethyst"]{--theme-primary:#7c3aed;--theme-primary-2:#9333ea;--theme-deep:#251046;--theme-accent:#c084fc;--theme-link:#6d28d9;--theme-soft:#f5edff;--theme-soft2:#fbf5ff;--theme-line:#e7dcf3;--theme-bg:#faf7ff;--theme-surface:#ffffff;--theme-surface2:#fcfaff}
html[data-theme="maroon_gold"]{--theme-primary:#9f2525;--theme-primary-2:#b9382e;--theme-deep:#3b1015;--theme-accent:#d4a72c;--theme-link:#9f2525;--theme-soft:#fff1ed;--theme-soft2:#fff7df;--theme-line:#eadbd7;--theme-bg:#fff8f4;--theme-surface:#ffffff;--theme-surface2:#fffaf7}
html[data-theme="teal_cyan"]{--theme-primary:#0e7490;--theme-primary-2:#0891b2;--theme-deep:#083344;--theme-accent:#22d3ee;--theme-link:#0e7490;--theme-soft:#e8f8fb;--theme-soft2:#eefcfe;--theme-line:#d6e9ed;--theme-bg:#f2fbfc;--theme-surface:#ffffff;--theme-surface2:#f8fdfe}
html[data-theme]{--blue:var(--theme-primary);--blue2:var(--theme-primary-2);--navy:var(--theme-deep);--navy2:var(--theme-primary);--bg:var(--theme-bg);--panel:var(--theme-surface);--line:var(--theme-line)}
html[data-theme] body{background:var(--theme-bg);color:var(--text)}
html[data-theme] .sidebar{background:linear-gradient(180deg,var(--theme-deep),color-mix(in srgb,var(--theme-deep) 78%,#000),var(--theme-primary));box-shadow:10px 0 36px color-mix(in srgb,var(--theme-deep) 12%,transparent)}
html[data-theme] .sidebar-footer{background:color-mix(in srgb,var(--theme-deep) 86%,#000)}
html[data-theme] .nav-item.active{background:linear-gradient(100deg,color-mix(in srgb,var(--theme-primary) 82%,white 4%),color-mix(in srgb,var(--theme-accent) 32%,transparent));box-shadow:inset 3px 0 0 var(--theme-accent);color:#fff}
html[data-theme] .nav-item:hover{background:rgba(255,255,255,.09);color:#fff}
html[data-theme] .topbar{background:color-mix(in srgb,var(--theme-surface) 94%,transparent);border-color:var(--theme-line)}
html[data-theme] .metric-card,html[data-theme] .panel,html[data-theme] .table-wrap{background:var(--theme-surface);border-color:var(--theme-line)}
html[data-theme] .btn.primary{background:linear-gradient(135deg,var(--theme-primary),var(--theme-primary-2));box-shadow:0 8px 18px color-mix(in srgb,var(--theme-primary) 20%,transparent)}
html[data-theme] .btn.secondary{background:var(--theme-soft);color:var(--theme-link)}
html[data-theme] .btn.text,html[data-theme] .eyebrow.blue{color:var(--theme-link)}
html[data-theme] .avatar{background:linear-gradient(135deg,var(--theme-primary),var(--theme-primary-2))}
html[data-theme] .icon-button{border-color:var(--theme-line);background:var(--theme-surface2)}
html[data-theme] .icon-button:hover{color:var(--theme-link);border-color:color-mix(in srgb,var(--theme-primary) 36%,var(--theme-line))}
html[data-theme] input,html[data-theme] select,html[data-theme] textarea{border-color:var(--theme-line);background:var(--theme-surface);color:var(--text)}
html[data-theme] input:focus,html[data-theme] select:focus,html[data-theme] textarea:focus{border-color:color-mix(in srgb,var(--theme-primary) 55%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 12%,transparent)}
html[data-theme] th{background:var(--theme-surface2);color:color-mix(in srgb,var(--theme-deep) 68%,#64748b)}
html[data-theme] tbody tr:hover{background:var(--theme-surface2)}
html[data-theme] .tag,html[data-theme] .status-pill{border-color:var(--theme-line)}
html[data-theme] .upload-card,html[data-theme] .roadmap span,html[data-theme] .filter-panel{background:var(--theme-surface2);border-color:var(--theme-line)}

.theme-switch{margin:0;display:flex;align-items:center}.theme-switch select{width:auto;min-width:128px;max-width:155px;height:40px;min-height:40px;padding:7px 30px 7px 10px;border:1px solid var(--theme-line,var(--line));border-radius:10px;background:var(--theme-surface2,#f8fafc);color:var(--theme-deep,var(--text));font-size:10px;font-weight:850;cursor:pointer}
.theme-picker-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}.theme-card{cursor:pointer;position:relative}.theme-card input{position:absolute;opacity:0;pointer-events:none}.theme-card-ui{display:grid;gap:5px;min-height:94px;padding:9px;border:1px solid var(--theme-line,var(--line));border-radius:12px;background:var(--theme-surface,#fff);transition:.16s}.theme-card-ui i{display:block;height:31px;border-radius:8px;background:linear-gradient(110deg,var(--c1) 0 45%,var(--c2) 45% 72%,var(--c3) 72% 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.theme-card-ui b{font-size:10px;color:var(--text)}.theme-card-ui small{font-size:8px;color:var(--muted)}.theme-card input:checked+.theme-card-ui{border-color:var(--theme-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary) 14%,transparent);background:var(--theme-soft)}
.theme-setting-panel{padding:2px 0}.theme-setting-panel .section-title h3{margin-bottom:4px}.theme-setting-panel .section-title p{margin-top:0;color:var(--muted);font-size:10px;line-height:1.55}

/* Login follows default school theme. */
html[data-theme] .login-body{background:linear-gradient(135deg,color-mix(in srgb,var(--theme-deep) 7%,#edf3fb),var(--theme-bg))}
html[data-theme] .login-overlay{background:linear-gradient(180deg,color-mix(in srgb,var(--theme-deep) 18%,transparent),color-mix(in srgb,var(--theme-deep) 93%,transparent))}
html[data-theme] .visual-badge{border-color:color-mix(in srgb,var(--theme-accent) 45%,transparent);background:color-mix(in srgb,var(--theme-accent) 14%,transparent)}
html[data-theme] .login-card .btn.primary{background:linear-gradient(135deg,var(--theme-deep),var(--theme-primary) 70%,var(--theme-accent))}

/* Smart Assistant mengikuti tema aktif. */
html[data-theme] .smart-header{background:radial-gradient(circle at 10% -30%,color-mix(in srgb,var(--theme-accent) 36%,transparent) 0,transparent 45%),linear-gradient(135deg,var(--theme-deep),var(--theme-primary));color:#fff}
html[data-theme] .smart-fab,html[data-theme] .assistant-fab{background:linear-gradient(135deg,var(--theme-primary),var(--theme-primary-2));box-shadow:0 16px 34px color-mix(in srgb,var(--theme-primary) 30%,transparent)}
html[data-theme] .smart-msg-user .smart-msg-bubble,html[data-theme] .assistant-bubble.user{background:linear-gradient(135deg,var(--theme-primary),var(--theme-primary-2))}
html[data-theme] .smart-send,html[data-theme] .assistant-form button{background:var(--theme-primary)}
html[data-theme] .smart-saran,html[data-theme] .assistant-suggestions button{border-color:var(--theme-line);color:var(--theme-link);background:var(--theme-surface)}
html[data-theme] .smart-mic,html[data-theme] .smart-wake-toggle,html[data-theme] .smart-auto-send-toggle{background:var(--theme-soft);color:var(--theme-link)}

/* Payment Cashier UX R3.3 dibuat theme-aware pada R3.4. */
html[data-theme] .payment-pos-search-panel,html[data-theme] .payment-pos-fee-group,html[data-theme] .payment-pos-cart,html[data-theme] .payment-pos-bill-card,html[data-theme] .payment-pos-other-card{background:linear-gradient(155deg,var(--theme-surface),var(--theme-surface2));border-color:var(--theme-line)}
html[data-theme] .payment-pos-search-box>span,html[data-theme] .payment-pos-fee-head>span,html[data-theme] .payment-pos-other-money>div{background:var(--theme-soft)}
html[data-theme] .payment-pos-student-strip{background:radial-gradient(circle at 86% 0,color-mix(in srgb,var(--theme-accent) 25%,transparent),transparent 31%),linear-gradient(135deg,var(--theme-deep),var(--theme-primary) 66%,var(--theme-primary-2));box-shadow:0 14px 34px color-mix(in srgb,var(--theme-primary) 18%,transparent)}
html[data-theme] .payment-pos-cart-head,html[data-theme] .payment-pos-summary-grand,html[data-theme] .payment-pos-total-hero{background:radial-gradient(circle at 90% 5%,color-mix(in srgb,var(--theme-accent) 25%,transparent),transparent 33%),linear-gradient(135deg,var(--theme-deep),var(--theme-primary));color:#fff}
html[data-theme] .payment-pos-cart-head .eyebrow{color:color-mix(in srgb,var(--theme-accent) 75%,white)}
html[data-theme] .payment-pos-bill-card.clickable:hover,html[data-theme] .payment-pos-other-card.clickable:hover{border-color:color-mix(in srgb,var(--theme-primary) 55%,var(--theme-line));box-shadow:0 10px 24px color-mix(in srgb,var(--theme-primary) 13%,transparent)}
html[data-theme] .payment-pos-bill-card.selected,html[data-theme] .payment-pos-other-card.selected{border-color:var(--theme-primary)!important;background:linear-gradient(155deg,var(--theme-surface),var(--theme-soft))!important;box-shadow:0 10px 25px color-mix(in srgb,var(--theme-primary) 16%,transparent)!important;outline-color:color-mix(in srgb,var(--theme-primary) 18%,transparent)}
html[data-theme] .payment-pos-bill-card.selected::after,html[data-theme] .payment-pos-other-card.selected::after{background:var(--theme-primary);box-shadow:0 4px 10px color-mix(in srgb,var(--theme-primary) 26%,transparent)}
html[data-theme] .payment-pos-bill-amount,html[data-theme] .payment-pos-other-money b,html[data-theme] .payment-pos-fee-head b,html[data-theme] .payment-pos-dialog-head h2{color:var(--theme-deep)}
html[data-theme] .payment-pos-method{border-color:var(--theme-line);background:var(--theme-surface2);color:color-mix(in srgb,var(--theme-deep) 72%,#64748b)}
html[data-theme] .payment-pos-method:hover{border-color:color-mix(in srgb,var(--theme-primary) 44%,var(--theme-line));background:var(--theme-soft)}
html[data-theme] .payment-pos-method.active{border-color:var(--theme-primary);background:linear-gradient(135deg,var(--theme-primary),var(--theme-primary-2));box-shadow:0 8px 20px color-mix(in srgb,var(--theme-primary) 22%,transparent)}
html[data-theme] .payment-pos-final-note{border-color:var(--theme-line);background:var(--theme-soft)}
html[data-theme] .payment-pos-final-note strong{color:var(--theme-link)}
html[data-theme] .payment-pos-mobile-dock{background:color-mix(in srgb,var(--theme-deep) 96%,transparent)}
html[data-theme] .payment-pos-mobile-dock .btn{background:var(--theme-accent);color:var(--theme-deep)}

@media(max-width:1100px){.theme-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-switch select{min-width:108px;max-width:125px}}
@media(max-width:760px){.theme-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-switch select{min-width:90px;max-width:105px;font-size:9px;padding-left:7px}.topbar-user>div:not(.avatar){display:none}}

/* ========================================================================== */
/* R3.7 · SAVINGS CASHIER UX — pola kasir POS untuk setor/tarik tabungan     */
/* ========================================================================== */
.savings-pos-intro{align-items:flex-end}.savings-pos-metrics{margin-bottom:14px}.savings-pos-search-panel{margin-bottom:14px}.savings-pos-search-compact{padding:12px 15px;margin-bottom:14px}.savings-pos-search-compact .payment-pos-console-head{margin-bottom:7px}.savings-pos-search-help{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;color:#738198;font-size:8px;font-weight:760}.savings-pos-search-help span{display:inline-flex;align-items:center;gap:5px}.savings-pos-search-help kbd{border:1px solid #d7e0ec;background:#f7f9fc;color:#42526b;border-radius:6px;padding:2px 5px;font-size:7px}.savings-pos-action-grid{grid-template-columns:1fr 1fr}.savings-pos-guide{min-height:0}.savings-pos-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.savings-pos-flow span{display:grid;gap:6px;align-content:center;min-height:76px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;color:#516077;font-size:8.5px;font-weight:800;text-align:center}.savings-pos-flow b{margin:auto;width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:#e8f1ff;color:#245fbd;font-size:10px}.savings-pos-recent-panel{margin-top:14px}
.savings-pos-student-strip{margin-bottom:14px}.savings-pos-student-metrics>div{min-width:108px}.savings-pos-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.68fr);gap:14px;align-items:start}.savings-pos-ledger-panel{min-width:0}.savings-pos-cashier{position:sticky;top:88px;padding:0;overflow:hidden;border-radius:18px}.savings-pos-cashier-head{background:radial-gradient(circle at 90% 5%,rgba(34,211,238,.25),transparent 33%),linear-gradient(135deg,#0b2348,#155bb8)}.savings-pos-cashier-body{padding:14px}.savings-pos-readonly{padding:20px}.savings-pos-readonly strong{font-size:12px;color:#17345e}.savings-pos-readonly p{font-size:9px;line-height:1.55;color:var(--muted)}
.savings-pos-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:7px 0 14px}.savings-pos-type{appearance:none;border:1px solid #dce5f0;border-radius:13px;background:#fff;padding:10px 9px;display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;text-align:left;cursor:pointer;transition:.14s;color:#20334f}.savings-pos-type:hover{transform:translateY(-1px);border-color:#91b8f2;box-shadow:0 8px 18px rgba(28,84,166,.08)}.savings-pos-type.active{border-color:#2768d8;background:linear-gradient(155deg,#f6faff,#eaf2ff);box-shadow:0 0 0 2px rgba(37,99,235,.10)}.savings-pos-type-icon{grid-row:1/3;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#e9f2ff;color:#2768d8}.savings-pos-type b{font-size:11px;align-self:end}.savings-pos-type small{font-size:7.5px;color:#7b899c;line-height:1.25}.savings-pos-type[data-type="withdrawal"].active{border-color:#dc8c35;background:linear-gradient(155deg,#fffaf4,#fff2df);box-shadow:0 0 0 2px rgba(217,119,6,.10)}.savings-pos-type[data-type="withdrawal"] .savings-pos-type-icon{background:#fff0dd;color:#b66100}
.savings-pos-amount-label{display:grid;gap:6px;font-size:9px;font-weight:850;color:#53637a}.savings-pos-amount-wrap{height:58px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;border:1px solid #cdd9e8;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 7px 20px rgba(19,48,87,.05)}.savings-pos-amount-wrap>span{height:100%;display:grid;place-items:center;background:#f3f7fb;color:#5a6e89;font-size:12px;font-weight:900;border-right:1px solid #dce5ef}.savings-pos-amount-wrap input{height:100%!important;min-height:0!important;border:0!important;border-radius:0!important;padding:8px 12px!important;font-size:22px!important;font-weight:900!important;color:#153968!important;box-shadow:none!important;background:transparent!important}.savings-pos-quick-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 13px}.savings-pos-quick-amounts button{min-height:31px;border:1px solid #dce5f0;border-radius:9px;background:#f7f9fc;color:#48607f;font-size:8px;font-weight:850;cursor:pointer}.savings-pos-quick-amounts button:hover{border-color:#9bbcf0;background:#eef5ff;color:#245fbd}.savings-pos-balance-summary{display:grid;grid-template-columns:1fr 1.25fr;gap:7px;margin-top:4px}.savings-pos-balance-summary>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #e0e7f0;border-radius:11px;background:#f8fafc}.savings-pos-balance-summary span{font-size:7px;color:#78869a;font-weight:800}.savings-pos-balance-summary b{font-size:10px;color:#355170}.savings-pos-balance-summary .projected{background:linear-gradient(135deg,#0b2348,#155bb8);border-color:transparent}.savings-pos-balance-summary .projected span{color:#b9d3f2}.savings-pos-balance-summary .projected strong{font-size:13px;color:#fff}.savings-pos-inline-alert{margin:9px 0 0;padding:8px 9px;border-radius:9px;font-size:8px;font-weight:760;line-height:1.4}.savings-pos-inline-alert.success{background:#eaf8ef;color:#0d7a50}.savings-pos-inline-alert.warning{background:#fff5df;color:#8c5700}.savings-pos-inline-alert.danger{background:#feecec;color:#a72828}.savings-pos-process-btn{margin-top:11px;width:100%}.savings-pos-shortcuts{justify-content:center}.savings-pos-modal .payment-pos-dialog{max-width:760px}.savings-pos-total-hero{display:grid;gap:3px}.savings-pos-total-hero small{font-size:8px;color:#c9dbf2}.savings-pos-total-hero small b{color:#fff}.savings-pos-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.savings-pos-confirm-summary{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:7px;margin:12px 0}.savings-pos-confirm-summary>div{display:grid;gap:3px;padding:10px;border:1px solid #e0e7ef;border-radius:11px;background:#f8fafc}.savings-pos-confirm-summary span{font-size:7px;color:#768498;font-weight:850;text-transform:uppercase;letter-spacing:.03em}.savings-pos-confirm-summary b{font-size:10px;color:#264463}.savings-pos-confirm-summary .final{background:#eef5ff;border-color:#cbdcf5}.savings-pos-confirm-summary .final strong{font-size:13px;color:#164f9e}.savings-pos-mobile-dock{display:none}

html[data-theme] .savings-pos-search-panel,html[data-theme] .savings-pos-type,html[data-theme] .savings-pos-amount-wrap,html[data-theme] .savings-pos-balance-summary>div,html[data-theme] .savings-pos-confirm-summary>div,html[data-theme] .savings-pos-flow span{background:var(--theme-surface);border-color:var(--theme-line)}
html[data-theme] .savings-pos-flow b,html[data-theme] .savings-pos-type-icon,html[data-theme] .savings-pos-quick-amounts button:hover{background:var(--theme-soft);color:var(--theme-link)}
html[data-theme] .savings-pos-type.active{border-color:var(--theme-primary);background:linear-gradient(155deg,var(--theme-surface),var(--theme-soft));box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary) 12%,transparent)}
html[data-theme] .savings-pos-type[data-type="withdrawal"].active{border-color:color-mix(in srgb,var(--theme-accent) 70%,var(--theme-primary));background:linear-gradient(155deg,var(--theme-surface),var(--theme-soft2));box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-accent) 13%,transparent)}
html[data-theme] .savings-pos-type[data-type="withdrawal"] .savings-pos-type-icon{background:var(--theme-soft2);color:color-mix(in srgb,var(--theme-accent) 72%,var(--theme-deep))}
html[data-theme] .savings-pos-amount-wrap>span{background:var(--theme-surface2);border-color:var(--theme-line)}html[data-theme] .savings-pos-amount-wrap input{color:var(--theme-deep)!important}
html[data-theme] .savings-pos-quick-amounts button{background:var(--theme-surface2);border-color:var(--theme-line);color:color-mix(in srgb,var(--theme-deep) 64%,#64748b)}
html[data-theme] .savings-pos-balance-summary .projected,html[data-theme] .savings-pos-cashier-head,html[data-theme] .savings-pos-total-hero{background:radial-gradient(circle at 90% 5%,color-mix(in srgb,var(--theme-accent) 25%,transparent),transparent 33%),linear-gradient(135deg,var(--theme-deep),var(--theme-primary));border-color:transparent}
html[data-theme] .savings-pos-confirm-summary .final{background:var(--theme-soft);border-color:color-mix(in srgb,var(--theme-primary) 25%,var(--theme-line))}html[data-theme] .savings-pos-confirm-summary .final strong{color:var(--theme-link)}

@media(max-width:1180px){.savings-pos-layout{grid-template-columns:1fr}.savings-pos-cashier{position:static}.savings-pos-student-metrics{grid-template-columns:repeat(2,1fr)}.savings-pos-flow{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.savings-pos-action-grid{grid-template-columns:1fr}.savings-pos-mobile-dock{position:fixed;left:calc(var(--sidebar) + 12px);right:12px;bottom:10px;z-index:110;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px 10px 14px;border:1px solid rgba(255,255,255,.72);border-radius:17px;background:rgba(10,35,73,.96);box-shadow:0 15px 42px rgba(4,25,58,.28);backdrop-filter:blur(12px);color:#fff}.sidebar-collapsed .savings-pos-mobile-dock{left:12px}.savings-pos-mobile-dock>div{display:grid;gap:1px}.savings-pos-mobile-dock small{font-size:7px;color:#afc9ea}.savings-pos-mobile-dock strong{font-size:17px}.savings-pos-mobile-dock .btn{min-width:105px;min-height:42px;background:#f4bd48;color:#102c52;box-shadow:none}}
@media(max-width:820px){.savings-pos-mobile-dock{left:10px!important;right:10px}.savings-pos-dialog{width:min(100%,720px)}}
@media(max-width:620px){.savings-pos-student-strip{grid-template-columns:43px 1fr;padding:12px}.savings-pos-student-metrics{grid-template-columns:repeat(2,1fr)}.savings-pos-student-metrics>div{min-width:0}.savings-pos-type-grid{grid-template-columns:1fr 1fr}.savings-pos-quick-amounts{grid-template-columns:repeat(2,1fr)}.savings-pos-balance-summary{grid-template-columns:1fr}.savings-pos-confirm-summary{grid-template-columns:1fr}.savings-pos-flow{grid-template-columns:1fr 1fr}.savings-pos-search-help{gap:7px}.savings-pos-modal .payment-pos-dialog{border-radius:20px;padding:16px}}
.savings-pos-student-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.savings-pos-student-results>a{grid-template-columns:38px minmax(0,1fr) auto;background:#fff;box-shadow:0 3px 12px rgba(20,51,91,.04)}.savings-pos-result-balance{display:grid!important;justify-items:end;gap:2px;min-width:82px}.savings-pos-result-balance small{font-size:6.8px!important;text-transform:uppercase;letter-spacing:.05em;color:#8995a5!important;margin:0!important}.savings-pos-result-balance strong{font-size:10px!important;color:#0d8f5e!important;white-space:nowrap}html[data-theme] .savings-pos-student-results>a{background:var(--theme-surface);border-color:var(--theme-line)}html[data-theme] .savings-pos-result-balance strong{color:var(--theme-link)!important}
@media(max-width:1050px){.savings-pos-student-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.savings-pos-student-results{grid-template-columns:1fr}.savings-pos-student-results>a{grid-template-columns:34px minmax(0,1fr) auto}}
