@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/fonts/RobotoMono-Variable.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:swap}:root{--primary:#17324f;--primary-deep:#10263d;--accent:#853128;--accent-hover:#64231d;--accent-soft:#ffdad5;--accent-soft-ink:#76221b;--green:#195331;--green-soft:#e8f3ec;--indigo-soft:#d7e3f9;--indigo-soft-ink:#101c2c;--gold-soft:#ffdea6;--gold-soft-ink:#271900;--amber:#8c6505;--amber-soft:#fef7e6;--danger:#a31919;--danger-soft:#ffdad6;--danger-soft-ink:#93000a;--background:#f3f5f7;--surface:#fff;--surface-low:#f3f3f4;--surface-mid:#eee;--surface-high:#e8e8e8;--surface-highest:#e2e2e2;--text-primary:#1a1c1c;--text-secondary:#343c46;--text-muted:#4b5561;--text-on-primary:#fff;--border:#d7dde4;--border-strong:#aeb8c4;--focus:#005fcc;--font-heading:"Plus Jakarta Sans", "Inter", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"Roboto Mono", ui-monospace, Consolas, "Courier New", monospace;--radius-control:8px;--radius-card:12px;--shadow-card:0 1px 2px #0915250f;--shadow-raise:0 4px 20px -4px #1e2a3a1f;--shadow-modal:0 24px 48px -12px #0915254d, 0 4px 12px #09152514;--transition-fast:.15s ease;--blue:var(--primary);--blue-dark:var(--primary-deep);--bg:var(--background);--card:var(--surface);--text:var(--text-primary);--muted:var(--text-secondary);--line:var(--border)}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:112.5%}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--background);color:var(--text-primary);font-size:1rem;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--primary-deep);line-height:1.3}h1{letter-spacing:-.015em;margin:0 0 .5rem;font-size:2rem;font-weight:650}h2{margin:0 0 .75rem;font-size:1.35rem;font-weight:650}h3{margin:0 0 .4rem;font-size:1.125rem;font-weight:650}:focus-visible{outline:4px solid var(--focus);outline-offset:3px}html.text-size-large{font-size:125%}html.text-size-largest{font-size:137.5%}.skip-link{z-index:200;background:var(--primary);color:#fff;border-radius:8px;padding:12px 16px;font-weight:700;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{color:#fff;transform:translateY(0)}#app{flex-direction:column;min-height:100dvh;display:flex}.page{flex:1 0 auto;width:100%;max-width:1120px;margin:0 auto;padding:40px 24px 64px}.page-head{margin-bottom:28px}.page-head h1{margin:0 0 6px}.page-head p{color:var(--text-secondary);margin:0;font-size:1rem}.devbar{background:var(--amber-soft);color:var(--amber);text-align:center;padding:.35rem;font-size:.78rem}.topbar{z-index:50;background:var(--background);-webkit-backdrop-filter:blur(10px);position:sticky;top:0;box-shadow:0 1px 8px #0000000a}.topbar-in{flex-wrap:nowrap;align-items:center;gap:8px 16px;max-width:1120px;min-height:72px;margin:0 auto;padding:10px 24px;display:flex}.brand{color:var(--primary-deep);flex:none;align-items:center;gap:12px;text-decoration:none;display:flex}.brand:hover{color:var(--primary-deep);text-decoration:none}.brand-badge{flex:none;place-items:center;width:42px;height:42px;display:grid}.brand-logo{object-fit:contain;width:100%;height:100%}.brand-name{font-family:var(--font-heading);letter-spacing:-.01em;white-space:nowrap;font-size:1.375rem;font-weight:600}.nav{flex-wrap:nowrap;align-items:center;gap:4px;display:flex}.nav-link{border-radius:var(--radius-control);cursor:pointer;font-family:var(--font-body);letter-spacing:.01em;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:6px;padding:9px 12px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--surface-high);color:var(--text-primary);text-decoration:none}.nav-link.active{background:var(--primary);color:var(--text-on-primary)}.nav-drop{position:relative}.nav-drop-btn:after{content:"";opacity:.7;border-bottom:2px solid;border-right:2px solid;width:6px;height:6px;margin:-2px 0 0 2px;transform:rotate(45deg)}.nav-drop:after{content:"";height:10px;display:none;position:absolute;top:100%;left:0;right:0}.nav-drop:hover:after{display:block}.nav-menu{z-index:60;background:var(--surface);border-radius:var(--radius-card);flex-direction:column;gap:2px;min-width:214px;padding:8px;display:none;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 12px 28px -8px #09152540,0 2px 8px #09152514}.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu,.nav-drop.open .nav-menu{display:flex}.nav-menu a{border-radius:var(--radius-control);min-height:52px;color:var(--text-primary);align-items:center;padding:10px 12px;font-size:1rem;font-weight:600;display:flex}.nav-menu a:hover{background:var(--surface-low);text-decoration:none}.nav-menu a.active{background:var(--surface-mid);color:var(--primary-deep);font-weight:600}.topbar-user{align-items:center;gap:12px;margin-left:auto;display:flex}.who{color:var(--text-primary);white-space:nowrap;font-size:.9375rem;font-weight:600}.mobile-nav-toggle{display:none}.text-size-control{color:var(--text-secondary);white-space:normal;align-items:center;gap:8px;font-size:1rem;font-weight:600;display:inline-flex}.text-size-control .input{min-width:150px;min-height:48px;padding-left:10px;font-size:.9375rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:16px;padding:24px;box-shadow:0 1px 2px #0915250a}.card>h2{margin:0 0 12px}.muted{color:var(--text-secondary);font-size:.9375rem}.notice{background:var(--surface-low);color:var(--text-secondary);border-radius:10px;margin:12px 0 16px;padding:12px 16px;font-size:.9375rem;line-height:1.5}.notice a{font-weight:600}.notice.ok{background:var(--green-soft);color:var(--green)}.error{color:var(--danger);min-height:1.2em;margin:.5rem 0;font-size:1rem;font-weight:600}.cards{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:0 0 16px;display:grid;overflow:hidden}.cards .card{box-shadow:none;background:0 0;border-radius:0;margin:0;padding:18px 22px}.cards .card:nth-child(2n){background:#f3f3f48c}.stat span{letter-spacing:.02em;color:var(--text-secondary);margin-bottom:6px;font-size:.9rem;font-weight:700;display:block}.stat strong{font-family:var(--font-heading);letter-spacing:-.015em;color:var(--primary-deep);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;line-height:1.15;display:block}.stat.alert strong{color:var(--accent)}.btn{border-radius:var(--radius-control);background:var(--surface-mid);min-height:52px;color:var(--text-primary);font-family:var(--font-body);letter-spacing:.01em;cursor:pointer;white-space:normal;text-align:center;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:1rem;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-highest);color:var(--text-primary);text-decoration:none}.btn.primary{background:var(--primary);color:var(--text-on-primary)}.btn.primary:hover{background:var(--primary-deep);color:var(--text-on-primary)}.btn.ok{background:var(--primary);color:var(--text-on-primary)}.btn.ok:hover{background:var(--primary-deep);color:var(--text-on-primary)}.btn.danger{background:var(--surface-mid);color:var(--accent)}.btn.danger:hover{background:var(--accent-soft);color:var(--accent-soft-ink)}.btn.danger-solid{background:var(--danger);color:#fff}.btn.danger-solid:hover{background:var(--danger-soft-ink);color:#fff}.btn.wa{color:#fff;background:#25d366}.btn.wa:hover{color:#fff;background:#1fb959}.btn.small{min-height:48px;padding:8px 14px;font-size:1rem}.btn.block{width:100%;min-height:56px;margin-top:12px;font-size:1rem;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed}.topbar .btn{background:var(--surface-low);color:var(--accent)}.topbar .btn:hover{background:var(--accent);color:#fff}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .input[type=search]{flex:1;width:auto;min-width:200px}.card>.toolbar:last-child{margin-bottom:0}.input{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-low);max-width:100%;min-height:52px;color:var(--text-primary);font-family:var(--font-body);transition:background var(--transition-fast), box-shadow var(--transition-fast);padding:8px 14px;font-size:1rem}.input::placeholder{color:var(--text-muted)}.input:focus{background:var(--surface);box-shadow:none}.input:focus-visible{outline:4px solid var(--focus);outline-offset:2px;box-shadow:none}input.input[type=search],input.input[type=email],input.input[type=password],input.input[type=tel]{width:100%}#f-name{text-transform:uppercase}input.input[type=file]{min-height:44px;padding:8px 14px}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%2344474c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}.input-lg{min-height:52px;padding:0 16px;font-size:1rem}input.qty,input.line-qty{text-align:center;font-variant-numeric:tabular-nums;width:56px;font-weight:600}input[type=number].qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number].qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].line-qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number].line-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=radio],input[type=checkbox]{width:24px;height:24px;accent-color:var(--primary);flex:none}label.inline{align-items:center;gap:8px;font-size:.9375rem;display:flex}label.check,label.radio{align-items:center;gap:10px;margin:.5rem 0;font-size:.9375rem;display:flex}.radio{margin-right:1.25rem;display:inline-flex}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;background:0 0;width:100%}.table th,.table td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--surface-high);padding:14px 16px}.table thead th{background:var(--surface-low);color:var(--text-secondary);white-space:nowrap;font-size:.875rem;font-weight:700}.table thead th:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.table thead th:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#f3f3f480}.table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-body);white-space:nowrap;font-size:.9375rem;font-weight:500}.table .nowrap{white-space:nowrap}.table .muted{font-size:.875rem}.table a{font-weight:600}.table.wide{min-width:880px}.table.wide .muted{white-space:nowrap}.table.compact th,.table.compact td{padding:8px 10px;font-size:.875rem}.table.compact thead th{font-size:.875rem}.report-filters{grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:14px;display:grid}.report-filters label{color:var(--text-primary);gap:8px;font-size:1rem;font-weight:650;display:grid}.report-filters .input{width:100%;min-height:48px}.report-actions{flex-wrap:wrap;gap:8px;display:flex}.report-actions .btn{min-height:48px}.report-totals{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.report-total{gap:8px;display:grid}.report-total span{color:var(--text-secondary);font-size:.875rem}.report-total strong{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.35rem}.report-lines-card{min-width:0}.report-lines-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.report-lines-head h2{margin:0;font-size:1.15rem}.report-table{min-width:760px}.report-table .num{font-family:var(--font-body)}.report-table thead th.num{letter-spacing:0;font-size:.875rem}.report-table tbody td.num{font-size:1rem}.report-table td[data-label=Barang]{min-width:180px}.report-table-wrap{overflow-x:auto}.badge{background:var(--surface-mid);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.9375rem;font-weight:650;display:inline-flex}.badge.done{background:var(--accent-soft);color:var(--accent-soft-ink)}.badge.cart{background:var(--green-soft);color:var(--green)}.badge.indigo{background:var(--indigo-soft);color:var(--indigo-soft-ink)}.badge.bad{background:var(--danger-soft);color:var(--danger-soft-ink)}.badge.warn{background:var(--amber-soft);color:var(--amber)}.tag{vertical-align:middle;background:var(--indigo-soft);color:var(--indigo-soft-ink);border-radius:6px;align-items:center;margin-left:6px;padding:2px 8px;font-size:.875rem;font-weight:700;display:inline-flex}.tag.oku{background:var(--gold-soft);color:var(--gold-soft-ink)}.chips{background:var(--surface-low);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.chip{border-radius:var(--radius-control);min-height:48px;color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:6px;padding:0 14px;font-size:1rem;font-weight:650;display:inline-flex}.chip:hover{background:var(--surface-high);color:var(--text-primary)}.chip.active{background:var(--primary);color:var(--text-on-primary)}.chip[data-value=SUDAH]:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.chip[data-value=BELUM]:before{content:"";border:1.5px solid var(--text-muted);border-radius:50%;width:8px;height:8px}.sel-col{text-align:center;width:40px}.sel-col input{flex:none;width:24px;height:24px;margin:0}.bulk-toolbar{background:var(--surface-low);border-bottom:1px solid var(--border);color:var(--text-secondary);align-items:center;gap:10px;padding:10px 24px;font-size:.875rem;display:flex}.bulk-toolbar.hidden{display:none!important}.bulk-danger{margin-left:auto}.bulk-danger summary,.secondary-filters summary{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);width:fit-content;min-height:48px;color:var(--text-primary);cursor:pointer;align-items:center;padding:8px 14px;font-weight:600;display:flex}.bulk-danger[open]{align-items:center;gap:8px;display:flex}.bulk-danger .btn{min-height:48px}.secondary-filters{border-top:1px solid var(--border);padding-top:12px}.secondary-filters[open] .filter-row{border:0;padding:14px 0 0}.bulk-toolbar span{color:var(--text-primary);font-weight:600}.bulk-toolbar .btn.small{min-height:44px;padding:0 12px;font-size:.9375rem}.pager{justify-content:center;align-items:center;gap:14px;margin:14px 0 4px;display:flex}.pager.hidden{display:none!important}.pager #pager-info{font-size:.9375rem;font-weight:600}.kaunter-tools{gap:18px;display:grid}.school-filter{border:2px solid var(--primary);border-radius:var(--radius-control);background:#f4f7fc;width:100%;min-width:0;padding:16px}.filter-caption{color:var(--text-primary);align-items:center;gap:9px;font-size:1rem;font-weight:700;line-height:1.35;display:flex}.step-number{background:var(--primary);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.9375rem;display:inline-grid}.filter-help{color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.input-school{width:100%;min-width:0;min-height:58px;padding-left:16px;font-size:1.0625rem;font-weight:600}.search-section{gap:8px;display:grid}.search-row{grid-template-columns:minmax(0,1fr) auto auto;gap:12px;display:grid}.search-field{min-width:0;position:relative}.search-field>.input{padding-right:112px}.search-row .input-lg{width:100%;min-width:0;min-height:56px;padding-right:112px;font-size:1.0625rem}.clear-search{border-radius:var(--radius-control);min-width:84px;min-height:40px;color:var(--text-secondary);font:600 .875rem/1 var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0 8px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.clear-search:hover{background:var(--surface-mid);color:var(--text-primary)}.clear-search[hidden]{display:none}.search-row .btn{min-height:52px;font-size:1rem}.filter-row{border-top:1px solid var(--border);padding-top:16px;display:block}.filter-group{align-content:start;gap:6px;min-width:0;display:grid}.filter-row .filter-caption{margin-bottom:4px}.filter-row .chips{flex-wrap:wrap;gap:8px;width:100%;display:flex}.filter-row .chip{white-space:normal;flex:0 auto;justify-content:center;min-width:150px;min-height:52px;padding:8px 16px;font-size:1rem}.school-summary{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);margin-top:0;padding:14px}.school-summary>.muted{margin:0}.school-summary-title{margin:0 0 12px;font-size:1.25rem}.school-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.school-stats>div{background:var(--surface-low);border-radius:8px;gap:2px;min-width:0;padding:10px 12px;display:grid}.school-stats span{color:var(--text-secondary);font-size:.9375rem;font-weight:600}.school-stats strong{color:var(--primary-deep);font-variant-numeric:tabular-nums;font-size:1.25rem}.load-error{justify-items:start;gap:8px;padding:12px;display:grid}.load-error strong{color:var(--danger-soft-ink)}.load-error>span{color:var(--text-secondary)}.load-error .btn{min-height:48px}.count-line{color:var(--text-secondary);margin:0;font-size:.9375rem}.count-line #count{color:var(--text-primary);font-weight:600}@media (width<=900px){.search-row{grid-template-columns:repeat(2,minmax(0,1fr))}.search-field{grid-column:1/-1}}.row-done td{background:#f3f3f499}.row-in-cart td{background:#e8f3ec80}.row-actions{white-space:nowrap}.row-actions .btn{margin-left:6px}.modal{background:var(--surface);width:min(760px,94vw);max-height:92vh;box-shadow:var(--shadow-modal);border:none;border-radius:16px;padding:0;overflow:auto}.modal:before{content:none}.modal>form{padding:24px 28px 0}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#09152573}.modal .toolbar{z-index:1;background:var(--surface-low);border-radius:0 0 16px 16px;justify-content:flex-end;margin:22px -28px 0;padding:16px 28px;position:sticky;bottom:0}.modal .toolbar #clear{color:var(--accent);background:0 0;order:-1;margin-right:auto;padding:0 10px}.modal .toolbar #clear:hover{background:var(--accent-soft);color:var(--accent-soft-ink)}.modal-sm{width:min(460px,94vw)}.modal-sm label{color:var(--text-primary);margin-top:14px;font-size:1rem;font-weight:600;display:block}.modal-sm label .input{width:100%;margin-top:6px}.modal .toolbar #del-cancel{color:var(--text-secondary);background:0 0;order:-1;margin-right:auto;padding:0 10px}.modal .toolbar #del-cancel:hover{background:var(--surface-high);color:var(--text-primary)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px;display:grid}.form-grid>.full{grid-column:1/-1}.form-grid label{color:var(--text-primary);font-size:1rem;font-weight:600;display:block}.form-grid .input{width:100%;margin-top:6px}.form-grid textarea.input{resize:vertical;padding:10px 14px;line-height:1.5}.form-grid label.inline{letter-spacing:0;align-items:center;gap:10px;font-size:1rem;font-weight:400;display:flex}.radio-group{background:0 0;border:none;margin:0;padding:0}.radio-group legend{color:var(--text-primary);padding:0 0 6px;font-size:1rem;font-weight:600}.radio-group label.radio{gap:12px;min-height:24px;margin:8px 0 0}#transfer-box{background:0 0;padding:0}#transfer-box .muted{font-size:.9375rem}.receipt-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.receipt-progress{color:var(--text-secondary);margin:0 0 16px;padding:0;font-size:1rem;font-weight:600}.receipt-step{margin-bottom:14px}.step-help{margin:-4px 0 14px;font-size:1rem;line-height:1.55}.sticky{position:sticky;top:96px}.step{align-items:center;gap:12px;display:flex}.step-num{background:var(--primary);width:32px;height:32px;color:var(--text-on-primary);font-family:var(--font-body);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:600;display:grid}.results{gap:6px;margin-top:10px;display:grid}.result{text-align:left;background:var(--surface);border:1px solid var(--border);min-height:64px;font:inherit;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);border-radius:10px;flex-direction:column;padding:12px 14px;display:flex}.result:hover{background:var(--background);border-color:var(--border-strong)}.result strong{font-size:1rem}.result .muted{font-size:.9375rem;display:block}.selected{background:var(--background);border-radius:var(--radius-card);align-items:center;gap:14px;padding:14px 16px;display:flex}.selected-info{flex:1;min-width:0}.selected-info strong{font-size:1rem}.selected>.btn{flex:none;margin-left:auto}.avatar{background:var(--primary);width:48px;height:48px;color:var(--text-on-primary);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:600;display:grid}.stepper{background:var(--surface-low);border-radius:var(--radius-control);align-items:center;display:inline-flex}.stepper .qty{background:0 0;width:52px;min-height:44px;padding:0;box-shadow:none!important}.step-btn{border-radius:var(--radius-control);width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;font-size:1rem;line-height:1}.step-btn:hover{background:var(--surface-high)}.step-btn:disabled{opacity:.35;cursor:default}.fixed-qty{background:var(--surface-low);min-width:2.25rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;font-size:.9375rem;font-weight:600;display:inline-flex}.pay-option{background:var(--surface-low);border-radius:var(--radius-card);cursor:pointer;transition:background var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:12px;margin:0 0 10px;padding:14px 16px;display:flex}.pay-option input{width:22px;height:22px}.pay-option:hover{background:var(--surface-mid)}.pay-option:has(input:checked){background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--primary)}.pay-option strong{font-size:1rem}.bankref{color:var(--text-primary);margin-top:12px;font-size:.9375rem;font-weight:600;display:block}.bankref .input{width:100%;margin-top:6px}.receiver{background:var(--surface-low);border-radius:var(--radius-control);margin-bottom:12px;padding:12px 14px}.receiver-label{color:var(--text-secondary);margin-bottom:4px;font-size:.875rem;font-weight:700;display:block}.receiver strong{font-size:.9375rem}.sum-row{color:var(--text-secondary);justify-content:space-between;gap:12px;margin:6px 0;font-size:.9375rem;display:flex}.sum-row strong{color:var(--text-primary);text-align:right;font-weight:600}.total{border-top:1px solid var(--surface-low);letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);justify-content:space-between;align-items:baseline;gap:12px;margin:14px 0 10px;padding-top:14px;font-size:.9375rem;font-weight:600;display:flex}.total strong{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--primary-deep);text-transform:none;font-size:1.375rem;font-weight:700}.table.compact .btn.small.remove{min-width:44px;min-height:44px;color:var(--text-muted);background:0 0;padding:0 8px}.table.compact .btn.small.remove:hover{background:var(--danger-soft);color:var(--danger-soft-ink)}.import-layout{grid-template-columns:minmax(300px,5fr) 7fr;align-items:start;gap:16px;display:grid}.import-summary{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0 0 16px;display:grid}.pill{background:var(--surface-low);color:var(--text-primary);border-radius:10px;flex-direction:column;gap:2px;padding:12px 14px;font-size:.9375rem;display:flex}.pill strong{font-family:var(--font-heading);color:var(--primary-deep);font-size:1.25rem;font-weight:600}.pill>span{color:var(--text-secondary)}.pill.ok{background:var(--green-soft)}.pill.ok strong,.pill.ok>span{color:var(--green)}.pill.bad{background:#fdf0ee}.pill.bad strong,.pill.bad>span{color:var(--accent)}.pill.warn{background:var(--amber-soft)}.pill.warn strong,.pill.warn>span{color:var(--amber)}.import-layout .table.compact{min-width:640px}.nav-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:0 0 16px;display:grid}.nav-card{color:inherit;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast), transform var(--transition-fast);padding:20px 24px;text-decoration:none;display:block}.nav-card:hover{box-shadow:var(--shadow-raise);color:inherit;text-decoration:none;transform:translateY(-2px)}.nav-card strong{font-family:var(--font-heading);color:var(--primary-deep);font-size:1.0625rem;font-weight:600;display:block}.nav-card span{color:var(--text-secondary);margin-top:8px;font-size:1rem;line-height:1.5;display:block}.guide-head{justify-content:space-between;align-items:end;gap:16px;display:flex}.guide-index{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.guide-index strong{color:var(--primary-deep);margin-right:4px}.guide-index button{min-height:48px;color:var(--accent);font:600 1rem var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;padding:0 8px;display:inline-flex}.guide-index button:hover{color:var(--accent-hover);text-decoration:underline}.guide-content{gap:12px;display:grid}.guide-content .card{margin:0;scroll-margin-top:84px}.guide-content h2{margin-bottom:10px}.guide-content h3{margin-top:18px}.guide-content p,.guide-content li{line-height:1.65}.guide-content ol,.guide-content ul{padding-left:1.5rem}.guide-content li{margin:0 0 8px}.guide-public-head{flex-wrap:wrap;justify-content:space-between}.login-tools{z-index:1;align-items:center;gap:8px;display:flex;position:absolute;top:16px;right:16px}.receipt-toolbar{background:var(--surface-low);border-radius:var(--radius-card);margin-bottom:16px;padding:8px}.receipt-toolbar .btn{background:var(--surface);box-shadow:var(--shadow-card)}.receipt-toolbar .btn:hover{background:var(--surface-high)}.receipt-toolbar .btn.primary{background:var(--primary);color:var(--text-on-primary);margin-left:auto}.receipt-toolbar .btn.primary:hover{background:var(--primary-deep)}.receipt-main{justify-content:center;min-width:0;display:flex}.login-wrap{background:var(--background);flex:1;place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative;overflow:hidden}.login-wrap:before,.login-wrap:after{content:"";filter:blur(64px);pointer-events:none;border-radius:50%;width:256px;height:256px;position:absolute}.login-wrap:before{background:#1e2a3a0f;top:8%;left:18%}.login-wrap:after{background:#9f40370f;bottom:8%;right:18%}.login-card{background:var(--surface);width:100%;max-width:420px;box-shadow:0 24px 48px -12px #0915252e, var(--shadow-card);text-align:center;border-radius:16px;margin-top:42px;padding:56px 40px 32px;position:relative}.login-crest{background:var(--surface);border-radius:50%;place-items:center;width:84px;height:84px;padding:10px;display:grid;position:absolute;top:-42px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0915251f}.login-logo{object-fit:contain;width:100%;height:100%}.login-card h1{margin:0 0 6px}.login-card>.muted{margin:0 0 24px;font-size:1rem}.login-card label{text-align:left;color:var(--text-primary);margin-bottom:14px;font-size:1rem;font-weight:600;display:block}.login-card label .input{width:100%;margin-top:6px}.login-card .staff-help{text-align:left;margin:-6px 0 12px}.staff-name-setup{gap:12px;max-width:520px;display:grid}.staff-name-setup label{font-size:1rem;font-weight:600}.login-card .error{text-align:left}.login-card .btn.block{margin-top:4px}.login-card .login-guide{text-align:center;margin:14px 0 0;font-size:.9375rem}.toast-wrap{z-index:100;gap:8px;width:min(560px,94vw);display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-card);background:var(--primary);color:var(--text-on-primary);justify-content:space-between;align-items:center;gap:14px;padding:14px 14px 14px 18px;font-size:.875rem;display:flex;box-shadow:0 16px 32px -8px #09152559}.toast.danger{background:var(--accent)}.toast-action{border-radius:var(--radius-control);cursor:pointer;white-space:nowrap;color:#ffb4aa;font-family:var(--font-body);background:#ffffff24;border:none;padding:8px 14px;font-size:.8125rem;font-weight:600}.toast-action:hover{background:#ffffff3d}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.receipt{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-width:560px;margin:0 auto;padding:1.5rem;font-family:Helvetica,Arial,sans-serif;line-height:1.45;box-shadow:0 4px 20px -4px #1e2a3a1a}.receipt-head{text-align:left;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.receipt-logo{object-fit:contain;flex:none;width:60px;height:60px}.receipt-org h2{letter-spacing:0;color:var(--text);margin:0;font-family:Times New Roman,Times,serif;font-size:1.1rem;font-weight:700;line-height:1.3}.receipt-org p{color:var(--muted);margin:.1rem 0;font-size:.82rem}.receipt-title{text-align:center;text-transform:uppercase;letter-spacing:.04em;border-top:2px solid var(--text);border-bottom:1px solid var(--text);margin:1rem 0;padding:.4rem 0;font-family:Times New Roman,Times,serif;font-size:1.05rem;font-weight:700}.receipt-meta{border-bottom:1px dashed var(--line);margin:.85rem 0;padding-bottom:.5rem}.receipt-meta div{justify-content:space-between;gap:1rem;padding:.15rem 0;display:flex}.receipt-meta span{color:var(--muted)}.receipt-pay{border-bottom:none}.receipt-thanks{text-align:center;margin:1.25rem 0 0}.receipt .table{table-layout:fixed}.receipt .table th,.receipt .table td{border-bottom:1px solid var(--line);padding:.45rem .3rem;font-family:Helvetica,Arial,sans-serif;font-size:.85rem}.receipt .table th:first-child,.receipt .table td:first-child{width:44%}.receipt .table th:nth-child(2),.receipt .table td:nth-child(2){width:14%}.receipt .table th:nth-child(3),.receipt .table td:nth-child(3),.receipt .table th:nth-child(4),.receipt .table td:nth-child(4){width:21%}.receipt .table thead th{color:var(--text);border-bottom:1px solid var(--text);letter-spacing:0;text-transform:none;background:0 0;font-size:.8rem;font-weight:700}.receipt-heading-short{display:none}.receipt .table thead th:first-child,.receipt .table thead th:last-child{border-radius:0}.receipt .table tbody tr:hover{background:0 0}.receipt .table .num{white-space:nowrap;font-family:Helvetica,Arial,sans-serif;font-size:.85rem}.receipt .table tfoot th{border-top:1px solid var(--text);border-bottom:none;padding-top:.5rem}.receipt .table tfoot th.num{font-family:Helvetica,Arial,sans-serif}@media print{.no-print,.topbar,.footer,.devbar,.toast-wrap{display:none!important}body{background:#fff}#app{min-height:0;display:block}.page{max-width:none;padding:0}.receipt-layout{display:block}.receipt{box-shadow:none;border:none;max-width:none;margin:0 auto}}@media (width<=1020px){.receipt-layout{grid-template-columns:1fr}.sticky{position:static}.import-layout{grid-template-columns:1fr}.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.report-actions{grid-column:1/-1}.report-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1080px){.topbar-in{flex-wrap:wrap;gap:0;min-height:0;padding:8px 16px}.brand{gap:8px;min-width:0}.brand-badge{width:36px;height:36px}.brand-name{text-overflow:ellipsis;font-size:1.125rem;overflow:hidden}.mobile-nav-toggle{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);min-width:44px;min-height:44px;color:var(--primary);font:600 .875rem var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin-left:auto;padding:0 12px;display:inline-flex}.mobile-nav-toggle span[aria-hidden=true]{font-size:1.2rem;line-height:1}.topbar .nav{flex-direction:column;align-items:stretch;gap:2px;width:100%;padding:8px 0 4px;display:none}.topbar.menu-open .nav{display:flex}.topbar .nav-link{justify-content:space-between;width:100%;min-height:44px;padding:9px 12px}.topbar .nav-drop{width:100%}.topbar .nav-drop:hover .nav-menu{display:none}.topbar .nav-menu{min-width:0;box-shadow:none;background:0 0;margin:2px 0 4px 12px;padding:2px 8px;position:static}.topbar .nav-drop.open .nav-menu,.topbar .nav-drop:focus-within .nav-menu{display:flex}.topbar .nav-menu a{align-items:center;min-height:44px;display:flex}.topbar-user{border-top:1px solid var(--border);justify-content:flex-end;width:100%;margin:4px 0 0;padding:8px 0 0;display:none}.topbar.menu-open .topbar-user{display:flex}}@media (width<=640px){.page{padding:20px 14px 40px}.topbar-in{padding:7px 14px}.brand-name{font-size:1.05rem}.who{display:none}h1{font-size:1.5rem}.page-head{margin-bottom:20px}.card{padding:16px}.btn{padding:0 14px}.btn.small{min-height:44px}.search-row{grid-template-columns:1fr 1fr;display:grid}.kaunter-tools{gap:16px}.school-filter{padding:14px}.filter-help{font-size:.9375rem}.search-field{grid-column:1/-1}.search-row .btn{white-space:normal;min-height:52px;padding-inline:10px}.school-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.school-stats>div{padding:12px}.school-stats>div:last-child{grid-column:1/-1}.school-stats span{font-size:.875rem;line-height:1.3}.school-stats strong{font-size:1.375rem}.registration-list .table tbody td[data-label=Murid] strong{padding-right:8px;font-size:1.125rem;line-height:1.45;display:inline-block}.registration-list .table tbody td[data-label=Sekolah\ rendah] strong,.registration-list .table tbody td[data-label=Status\ daftar] .badge{font-size:.9375rem}.registration-list .table tbody td[data-label=Tindakan] .register-action{flex:100%}.registration-list .table tbody td[data-label=Tindakan] .btn{min-height:48px}.filter-group{gap:6px}.bulk-toolbar{flex-wrap:wrap;align-items:stretch;padding:12px 14px}.bulk-danger{flex-basis:100%;margin-left:0}.bulk-danger[open]{flex-direction:column;align-items:stretch}.bulk-danger .btn{min-height:48px}.secondary-filters summary{width:100%}.pager{flex-wrap:wrap}.pager .btn{min-height:48px}.modal .toolbar{flex-wrap:wrap}.modal .toolbar .btn{min-height:48px}.modal{border-radius:12px;width:calc(100vw - 20px);max-height:88dvh}.modal-sm{width:calc(100vw - 28px)}.form-grid{grid-template-columns:1fr}.form-grid>.full{grid-column:auto}.bulk-toolbar{flex-wrap:wrap;padding:12px 14px}.bulk-toolbar .btn.small{min-height:44px}.import-layout{grid-template-columns:minmax(0,1fr)}.receipt{padding:1rem}.receipt-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.receipt-toolbar .btn{white-space:normal;text-align:center;min-width:0;min-height:48px;padding:8px}.receipt-toolbar .btn.primary{margin-left:0}.receipt-head{align-items:flex-start;gap:.7rem}.receipt-logo{width:48px;height:48px}.receipt .table{table-layout:fixed;width:100%}.receipt .table th:first-child,.receipt .table td:first-child{width:40%}.receipt .table th:nth-child(2),.receipt .table td:nth-child(2){width:16%}.receipt .table th:nth-child(3),.receipt .table td:nth-child(3),.receipt .table th:nth-child(4),.receipt .table td:nth-child(4){width:22%}.receipt .table thead th{white-space:normal;padding:.4rem .12rem;font-size:.7rem;line-height:1.2}.receipt .table thead .num{text-align:right}.receipt-heading-full{display:none}.receipt-heading-short{display:inline}.receipt .table tbody td{overflow-wrap:anywhere;padding:.45rem .2rem;font-size:.78rem}.receipt .table .num{font-size:.75rem}.receipt .receipt-print-items{table-layout:auto;min-width:0;display:block}.receipt .receipt-print-items thead{display:none}.receipt .receipt-print-items tbody{gap:10px;display:grid}.receipt .receipt-print-items tbody tr{border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;padding:12px;display:grid}.receipt .receipt-print-items tbody td,.receipt .receipt-print-items tbody td:nth-child(n){overflow-wrap:anywhere;text-align:left;white-space:normal;border:0;width:auto;min-width:0;padding:5px 2px;font-size:.9375rem;line-height:1.4;display:block}.receipt .receipt-print-items tbody td[data-label]:before{content:attr(data-label);color:var(--text-secondary);margin-bottom:3px;font-size:.8125rem;font-weight:700;display:block}.receipt .receipt-print-items tbody td:first-child{grid-column:1/-1;font-size:1rem;font-weight:700}.receipt .receipt-print-items tfoot{margin-top:10px;display:block}.receipt .receipt-print-items tfoot tr{justify-content:space-between;gap:12px;display:flex}.receipt .receipt-print-items tfoot th{white-space:normal;width:auto;padding:8px 2px;font-size:.9375rem}.receipt .receipt-print-items tfoot th:last-child{white-space:nowrap}.guide-head{flex-direction:column;align-items:stretch}.guide-head>.btn{align-self:flex-start}.guide-index{flex-direction:column;align-items:stretch;gap:2px}.guide-index button{border-top:1px solid var(--border);text-align:left;min-height:44px}.guide-content .card{padding:16px}.guide-content p,.guide-content li{font-size:1rem}.login-tools{top:12px;right:12px}.login-tools .text-size-control{gap:4px;font-size:.9375rem}.login-tools .text-size-control .input{min-width:124px}.guide-public-head{justify-content:flex-start;gap:8px}.guide-public-head .brand{flex:1 0 100%}.guide-public-head .text-size-control{flex:1}.receipt-item-table{min-width:0;display:block}.receipt-item-table thead{display:none}.receipt-item-table tbody{gap:10px;display:grid}.receipt-item-table tbody tr{border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr 1fr;gap:2px 10px;padding:12px;display:grid}.receipt-item-table tbody td{white-space:normal;text-align:left;border:0;min-width:0;padding:6px 2px;display:block}.receipt-item-table tbody td[data-label]:before{content:attr(data-label);color:var(--text-secondary);margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.receipt-item-table tbody td:first-child,.receipt-item-table tbody td:last-child{grid-column:1/-1}.receipt-item-table tbody td:first-child{padding-right:0;font-size:1rem;font-weight:600}.receipt-item-table tbody td:last-child .btn{width:100%;min-height:48px}.receipt-item-table .stepper .step-btn{width:44px;height:44px}.receipt-item-table .stepper .qty{width:56px;min-height:44px}.receipt-summary-table{min-width:0;display:block}.receipt-summary-table tbody{gap:8px;display:grid}.receipt-summary-table tbody tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:8px 0;display:grid}.receipt-summary-table tbody td{white-space:normal;border:0;padding:4px}.receipt-summary-table tbody td:first-child{grid-column:1/-1}.receipt-summary-table .line-qty{width:64px;min-height:44px}.table.compact.receipt-summary-table .btn.small.remove{min-width:44px;min-height:44px}.receipt-confirm{border:1px solid var(--border-strong);border-radius:10px;padding:12px;font-size:.9375rem;line-height:1.4}.receipt-confirm input{width:22px;height:22px}.pay-option{min-height:56px}.table th,.table td{padding:12px}.report-filters{grid-template-columns:1fr}.report-actions{grid-column:auto;grid-template-columns:1fr 1fr;display:grid}.report-actions .btn{min-height:48px;padding:8px}.report-totals{gap:8px}.report-total{padding:12px}.report-total strong{font-size:1.1rem}.report-lines-head{flex-direction:column;align-items:stretch}.report-lines-head .btn{align-self:flex-start}.report-table-wrap{overflow:visible}.report-table{min-width:0;display:block}.report-table thead{display:none}.report-table tbody{gap:10px;display:grid}.report-table tbody tr{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px;padding:10px 12px;display:grid}.report-table tbody td{overflow-wrap:anywhere;text-align:left;border:0;min-width:0;padding:7px 2px;display:block}.report-table tbody td[data-label]:before{content:attr(data-label);color:var(--text-secondary);margin-bottom:3px;font-size:.8125rem;font-weight:600;display:block}.report-table tbody td[data-label=Nama\ murid]{grid-column:1/-1}.report-table tbody td[data-label=Jumlah]{font-size:1rem}.report-table tbody td[colspan]{grid-column:1/-1}.report-table tbody td[colspan]:before{content:none}.registration-list .table-wrap{overflow:visible}.registration-list .table.wide{min-width:0;display:block}.registration-list .table thead{display:none}.registration-list .table tbody{gap:10px;display:grid}.registration-list .table tbody tr{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:1fr 1fr;gap:0 12px;padding:12px;display:grid;position:relative}.registration-list .table tbody td{white-space:normal;border:0;min-width:0;padding:8px 4px;display:block}.registration-list .table tbody td[data-label]:before{color:var(--text-secondary);content:attr(data-label);margin-bottom:3px;font-size:.8125rem;font-weight:600;display:block}.registration-list .table tbody td[data-label=Murid],.registration-list .table tbody td[data-label=Penempatan\ semula],.registration-list .table tbody td[data-label=Tindakan]{grid-column:1/-1}.registration-list .table tbody td.sel-col{padding:4px;display:block;position:absolute;top:10px;right:10px}.registration-list .table tbody td.sel-col input{width:24px;height:24px}.registration-list .table tbody td[data-label=Murid]{padding-right:36px}.registration-list .table tbody td[data-label=Tindakan]{flex-wrap:wrap;gap:8px;display:flex}.registration-list .table tbody td[data-label=Tindakan]:before{flex-basis:100%}.registration-list .table tbody td[data-label=Tindakan] .btn{flex:100%;min-height:52px;margin:0;font-size:.9375rem}.registration-list .table tbody td[colspan]{grid-column:1/-1}.registration-list .table tbody td[colspan]:before{content:none}.modal>form{padding:20px 18px 0}.modal .toolbar{margin:20px -18px 0;padding:14px 18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
