:root{font-family:Pretendard,"Source Sans 3",system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#061b31;background:#f6f9fc;--stripe-purple: #533afd;--stripe-purple-mid: #665efd;--stripe-purple-hover: #4434d4;--stripe-purple-soft: #b9b9f9;--stripe-navy: #061b31;--stripe-label: #273951;--stripe-body: #64748d;--stripe-border: #e5edf5;--stripe-shadow-blue: rgba(50, 50, 93, .25);--stripe-shadow-black: rgba(0, 0, 0, .08);--stripe-danger: #c81e4a;--stripe-danger-soft: rgba(234, 34, 97, .12);--stripe-focus-glow: 0 0 0 4px rgba(83, 58, 253, .18), 0 1px 2px rgba(50, 50, 93, .08);--stripe-focus-glow-blue: 0 0 0 4px rgba(37, 99, 235, .16), 0 0 0 1px rgba(83, 58, 253, .35)}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.container{max-width:960px;margin:0 auto;padding:1.5rem}.card{background:#fff;border-radius:12px;padding:1.5rem;border:1px solid #e8ecf2;box-shadow:0 1px 2px #0f172a0a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.55rem .9rem;border:none;border-radius:6px;background:var(--stripe-purple, #533afd);color:#fff;font-weight:600;letter-spacing:-.01em;transition:background .15s ease,transform .1s ease,opacity .15s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--stripe-purple-hover, #4434d4)}.btn:focus-visible{outline:none;box-shadow:var(--stripe-focus-glow)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#e5e7eb;color:#111827}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog{width:min(420px,100%);background:#fff;border-radius:12px;padding:1.25rem 1.35rem;box-shadow:0 18px 40px #0f172a38}.confirm-dialog h3{margin:0 0 .5rem;font-size:1.05rem}.confirm-dialog-message{margin:0 0 1.15rem;color:#4b5563;line-height:1.45;white-space:pre-line}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-dialog-actions .btn{min-width:88px}.input{width:100%;padding:.55rem .7rem;color:var(--stripe-navy);background:#fff;border:1px solid var(--stripe-border);border-radius:6px;box-shadow:0 1px 1px #32325d0a;transition:border-color .15s ease,box-shadow .18s ease,background .15s ease;font-variant-numeric:tabular-nums;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--stripe-body);opacity:.9}.input:hover:not(:disabled):not(:focus){border-color:#c9d7e6}.input:focus{outline:none;border-color:var(--stripe-purple-mid);box-shadow:var(--stripe-focus-glow),var(--stripe-focus-glow-blue)}.input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.input.is-invalid,.input.input-invalid{border-color:#ea2261;box-shadow:0 0 0 4px var(--stripe-danger-soft),0 1px 1px #32325d0a}.input.is-invalid:focus,.input.input-invalid:focus{border-color:#ea2261;box-shadow:0 0 0 4px var(--stripe-danger-soft),0 0 0 1px #ea226147}select.input{background-image:linear-gradient(45deg,transparent 50%,#64748d 50%),linear-gradient(135deg,#64748d 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 3px),calc(100% - 9px) calc(50% - 3px);background-size:5px 5px;background-repeat:no-repeat;padding-right:1.75rem}textarea.input{resize:vertical;min-height:5.5rem;line-height:1.45}.field{display:grid;gap:.28rem;margin-bottom:.85rem}.field>label{font-size:.82rem;font-weight:600;color:var(--stripe-label);letter-spacing:-.01em}.field-hint{margin:0;font-size:.78rem;line-height:1.35;color:var(--stripe-body)}.field-hint-error{margin:.05rem 0 0;font-size:.78rem;line-height:1.35;font-weight:500;color:var(--stripe-danger);letter-spacing:-.01em}.field-hint-error[hidden]{display:none}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap .input{padding-right:2.75rem}.password-input-toggle{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.password-input-toggle:hover{color:#334155;background:#f1f5f9}.password-input-toggle:focus-visible{outline:2px solid #6366f1;outline-offset:1px}.login-alt-link{margin:0 0 1rem;text-align:center;font-size:.9rem}.login-alt-link a{color:#4338ca;font-weight:600}.nav{display:flex;gap:.75rem;margin-bottom:1.5rem}.nav a{padding:.5rem .75rem;border-radius:8px;background:#eef2ff;color:#3730a3;font-weight:600}.error{color:#dc2626;margin-top:.5rem}.success{color:#059669;margin-top:.5rem}.muted{color:#6b7280}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;border-bottom:1px solid #e5e7eb;text-align:left}.amount-positive{color:#059669}.amount-negative{color:#dc2626}.balance-display{font-size:1.5rem;font-weight:700;margin:.5rem 0}.qr-container{text-align:center;margin-top:1rem}.qr-image{display:block;margin:0 auto 1rem;width:min(280px,80vw);height:min(280px,80vw);border-radius:12px}.qr-image-large{display:block;margin:1rem auto;width:min(320px,85vw);height:min(320px,85vw);border-radius:12px}.qr-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.qr-fullscreen-content{background:#fff;border-radius:16px;padding:2rem 1.5rem;text-align:center;max-width:400px;width:100%}.btn-full{width:100%;min-height:48px;margin-top:.5rem}.btn-sm{min-height:32px;padding:.35rem .65rem;font-size:.8rem;border-radius:7px;font-weight:600}.btn-add-row{gap:.3rem;white-space:nowrap}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;padding:0;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#374151;line-height:1;flex-shrink:0}.btn-icon:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon-primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn-icon-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.btn-icon-danger{color:#dc2626;border-color:#fecaca;background:#fef2f2}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.btn:active:not(:disabled),.btn-icon:active:not(:disabled){transform:translateY(.5px) scale(.98)}.grid-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.55rem;margin-bottom:.55rem;flex-wrap:wrap}.grid-toolbar h3{margin:0;font-size:.95rem;font-weight:700}.grid-toolbar-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.grid-search{max-width:240px;padding:.4rem .55rem;font-size:.85rem;min-height:34px}.data-grid-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #e8ecf2;border-radius:10px;background:#fff}.data-grid{width:100%;font-size:.9rem;border-collapse:separate;border-spacing:0}.data-grid-compact{font-size:.8rem;line-height:1.25}.data-grid th,.data-grid td{padding:.45rem .5rem;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}.data-grid-compact th,.data-grid-compact td{padding:.28rem .4rem}.data-grid th{position:sticky;top:0;background:#f8fafc;z-index:1;font-size:.72rem;font-weight:700;letter-spacing:.01em;color:#475569;white-space:nowrap;border-bottom:1px solid #e2e8f0}.data-grid tbody tr:hover{background:#f8fafc}.data-grid-compact tbody tr+tr td{border-top-color:#edf0f5}.row-selected{background:#eff6ff!important}.row-editing,.row-adding{background:#fffbeb!important}.row-editing td,.row-adding td{padding-top:.18rem;padding-bottom:.18rem}.data-grid-compact .input{padding:.2rem .35rem;font-size:.8rem;border-radius:4px;min-height:26px}.data-grid-compact select.input{padding-right:.25rem}.col-actions{width:72px;text-align:right;white-space:nowrap}.row-actions{display:inline-flex;gap:.25rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.input-inline{width:88px;min-width:72px}.input-inline-wide{width:100%;min-width:88px}.input-inline-num{width:64px;min-width:52px}.input-inline-name{width:100%;min-width:4.5rem;max-width:7.5rem}.input-inline-pin{width:5.5rem;min-width:4.75rem;font-variant-numeric:tabular-nums;letter-spacing:.04em}.input-inline-pin[type=password]{-webkit-text-security:disc;letter-spacing:.08em}.students-register-grid{table-layout:fixed;width:100%}.students-register-grid .col-name{width:7.5rem;max-width:8rem}.students-register-grid .col-pin{width:6.25rem;min-width:5.5rem}.students-register-grid .col-code{width:7.5rem}.students-register-grid .col-year{width:4.25rem}.students-register-grid .col-grade,.students-register-grid .col-class,.students-register-grid .col-number{width:2.85rem}.students-register-grid .col-virtual-account{width:5rem}.students-register-grid .col-balance{width:6.5rem}.students-register-grid .col-status{width:4.25rem}.student-mgmt-grid .col-grade,.student-mgmt-grid .col-class,.student-mgmt-grid .col-number{text-align:center}.student-mgmt-grid .col-balance{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-mgmt-grid .col-status{text-align:center;white-space:nowrap;overflow:hidden}.student-mgmt-grid .input-inline-num-tight{width:2.65rem;min-width:2.35rem;padding-left:.15rem;padding-right:.15rem;text-align:center}.student-mgmt-grid .input-inline-status{width:100%;min-width:0;max-width:4.25rem;padding-left:.15rem;padding-right:.1rem;font-size:.72rem}.students-register-grid .col-name strong,.students-register-grid .col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.students-pin-mask{font-variant-numeric:tabular-nums;letter-spacing:.12em}.students-pin-value{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.04em;color:#0f172a}.badge-inactive{margin-left:0;font-size:.7rem;color:#dc2626;font-weight:600}.student-deposit-grid{table-layout:fixed;width:100%}.student-deposit-grid .col-code{width:7.5rem}.student-deposit-grid .col-name{width:7.5rem;max-width:8rem}.student-deposit-grid .col-class{width:3.5rem}.student-deposit-grid .col-balance{width:7.75rem}.student-deposit-grid td.col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-deposit-grid td.col-balance,.student-deposit-grid th.col-balance{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-deposit-grid .col-deposit-amount{width:6.5rem}.student-deposit-grid .col-note{width:auto;min-width:0}.student-deposit-grid .col-actions{width:4.25rem;min-width:4.25rem;text-align:right}.student-deposit-grid td.col-note{overflow:hidden;max-width:0}.student-deposit-grid .deposit-note-input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.student-deposit-grid td.col-actions{overflow:hidden;padding-left:.15rem;padding-right:.15rem}.student-deposit-grid td.col-actions form{display:flex;justify-content:flex-end;margin:0}.student-deposit-grid td.col-actions .btn-sm{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:26px;padding:.18rem .4rem;font-size:.72rem;line-height:1.1;white-space:nowrap}.student-deposit-grid .deposit-amount-input{width:6.5rem;min-width:5rem;text-align:right;font-variant-numeric:tabular-nums}.student-deposit-inactive-badge{display:inline-block;margin-left:.35rem}.student-deposit-grid tr.is-inactive-row td{opacity:.65}.student-deposit-grid tr.is-inactive-row .deposit-amount-input,.student-deposit-grid tr.is-inactive-row .deposit-note-input{cursor:not-allowed}.student-deposit-row{cursor:pointer}.student-deposit-history-table .col-actions{width:4.5rem}.student-deposit-history-table .deposit-amount-input{width:5.5rem;min-width:4.5rem;text-align:right}.student-mgmt-row{cursor:pointer}.student-deposit-detail-row td{padding:0!important;background:#fbfcfe;border-bottom:1px solid #e2e8f0}.student-inline-deposits{padding:.55rem .7rem .65rem}.student-inline-deposits-title{margin:0 0 .45rem;font-size:.78rem;font-weight:600;color:#475569}.student-inline-deposits-table{width:100%;border-collapse:collapse;font-size:.78rem}.student-inline-deposits-table th,.student-inline-deposits-table td{padding:.28rem .45rem;text-align:left;border-bottom:1px solid #edf0f5}.student-inline-deposits-table th{color:#64748b;font-weight:600;font-size:.72rem}.student-inline-deposits-table tbody tr:last-child td{border-bottom:none}.desktop-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap}.desktop-page-header h2{margin:0 0 .2rem;font-size:1.15rem}.desktop-section{margin-bottom:.85rem;padding:1rem 1.1rem}code{font-size:.78rem;background:#f1f5f9;padding:.1rem .28rem;border-radius:4px}.tx-card-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.tx-card{display:grid;grid-template-columns:1fr auto;gap:.15rem .75rem;padding:.7rem .8rem;border:1px solid #e8ecf2;border-radius:10px;background:#fff}.tx-card-main{min-width:0}.tx-card-title{margin:0;font-size:.86rem;font-weight:700;color:#0f172a}.tx-card-meta{margin:.12rem 0 0;font-size:.72rem;color:#64748b;line-height:1.35}.tx-card-amount{margin:0;font-size:.9rem;font-weight:700;text-align:right;white-space:nowrap}.tx-card-balance{margin:.1rem 0 0;font-size:.7rem;color:#64748b;text-align:right}.admin-mobile-shell{display:flex;flex-direction:column;gap:.65rem;min-height:100dvh;background:#f6f9fc}.admin-mobile-topbar{position:sticky;top:0;z-index:120;display:flex;align-items:center;gap:.55rem;padding:.55rem .65rem;padding-top:30px;background:#fffffff5;border-bottom:1px solid #e8ecf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-mobile-menu-btn,.admin-mobile-drawer-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#334155;flex-shrink:0}.admin-mobile-menu-btn:hover,.admin-mobile-drawer-close:hover{background:#f1f5f9}.admin-mobile-topbar-title{flex:1;margin:0;font-size:1rem;font-weight:800;letter-spacing:-.02em;color:#0f172a}.admin-mobile-topbar-actions{display:flex;align-items:center;flex-shrink:0}.admin-mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;border:none;padding:0;background:#0f172a73;cursor:pointer}.admin-mobile-drawer{position:fixed;top:0;left:0;z-index:200;display:flex;flex-direction:column;width:min(18.5rem,86vw);height:100dvh;background:#fff;border-right:1px solid #e8ecf2;box-shadow:8px 0 28px #0f172a1f;transform:translate(-105%);transition:transform .22s ease;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.admin-mobile-drawer.is-open{transform:translate(0)}.admin-mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem .85rem .65rem;border-bottom:1px solid #e8ecf2}.admin-mobile-drawer-head strong{font-size:.92rem;color:#0f172a}.admin-mobile-drawer-nav{display:flex;flex-direction:column;gap:.25rem;padding:.65rem .75rem;overflow-y:auto;flex:1}.admin-mobile-drawer-nav a{display:flex;align-items:center;min-height:42px;padding:.45rem .75rem;border-radius:10px;background:transparent;color:#334155;font-size:.88rem;font-weight:600;text-decoration:none}.admin-mobile-drawer-nav a:hover{background:#f1f5f9}.admin-mobile-drawer-nav a.active{background:#2563eb;color:#fff}.admin-mobile-drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.75rem .85rem calc(.75rem + env(safe-area-inset-bottom,0px));border-top:1px solid #e8ecf2;overflow:visible;position:relative;z-index:2;flex-shrink:0}.admin-mobile-drawer-foot .lang-flag-dropdown{position:relative;flex-shrink:0}.admin-mobile-drawer-foot .lang-flag-menu{top:auto;bottom:calc(100% + .35rem);left:0;right:auto;z-index:220}.admin-mobile-drawer-logout{flex-shrink:0;margin-left:auto}.nav-admin-mobile{display:none}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.stats-tile{padding:.7rem .75rem;border-radius:10px;background:#f8fafc;border:1px solid #eef2f7;box-shadow:none}.stats-tile p{margin:0}.stats-tile .muted{font-size:.72rem}.stats-tile-value{margin:.2rem 0 .1rem!important;font-size:1.05rem!important;font-weight:700;letter-spacing:-.02em;color:#0f172a}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem;flex-wrap:wrap}.page-toolbar h2{margin:0;font-size:1rem;font-weight:700}.pager{display:flex;align-items:center;gap:.4rem;margin-top:.75rem}.pager-label{font-size:.8rem;color:#475569;font-weight:600;min-width:3.5rem;text-align:center}@media(max-width:767px){.desktop-app,.desktop-shell,.desktop-login-wrap,.desktop-student-wrap{display:none!important}.mobile-shell{display:flex}.container{padding:.75rem .75rem 4.75rem}.mobile-header{padding:30px .85rem .35rem;background:#fff;border-bottom:1px solid #e8ecf2}.mobile-title{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.mobile-subtitle{margin-top:.1rem;font-size:.75rem}.mobile-main{padding:.7rem .75rem 4.75rem}.mobile-footer{display:none}.mobile-header-row{align-items:center}.card{padding:.85rem .9rem;border-radius:12px;border:1px solid #e8ecf2;box-shadow:0 1px 2px #0f172a0a}.card>h2{margin:0 0 .55rem;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.field{gap:.22rem;margin-bottom:.7rem}.field label{font-size:.78rem;font-weight:600;color:#475569}.btn{min-height:38px;padding:.45rem .75rem;border-radius:6px;font-size:.86rem}.btn-sm{min-height:30px;padding:.28rem .5rem;font-size:.74rem}.btn-full{min-height:42px;margin-top:.3rem}.btn-icon{width:30px;height:30px;min-height:30px;border-radius:7px}.input{min-height:38px;padding:.42rem .6rem;font-size:16px;border-radius:6px}.field{gap:.18rem;margin-bottom:.65rem}.field>label{font-size:.74rem}.field-hint-error{font-size:.72rem;margin-top:.02rem}.balance-display{font-size:1.2rem;margin:.35rem 0 .55rem;letter-spacing:-.02em}.qr-image{width:min(220px,68vw);height:min(220px,68vw);border-radius:14px;border:1px solid #eef2f7}.qr-fullscreen-content{padding:1.25rem 1rem;border-radius:14px}.confirm-dialog{padding:1rem 1.05rem;border-radius:14px}.confirm-dialog h3{font-size:.98rem}.confirm-dialog-message{margin-bottom:.9rem;font-size:.86rem}.confirm-dialog-actions .btn{min-width:72px;min-height:36px;padding:.45rem .75rem;font-size:.84rem}.nav{flex-wrap:nowrap;gap:.35rem;margin-bottom:.75rem}.nav-mobile-bottom{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr auto;align-items:stretch;gap:.25rem;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #e8ecf2;padding:.3rem .45rem calc(.3rem + env(safe-area-inset-bottom,0px));margin:0;z-index:100;box-shadow:0 -4px 18px #0f172a0f}.nav-mobile-bottom a,.nav-mobile-bottom button{flex:initial;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.35rem .55rem;border-radius:10px;background:transparent;color:#64748b;font-size:.72rem;font-weight:700;text-align:center;line-height:1.15}.nav-mobile-bottom a{background:#f8fafc}.nav-mobile-bottom .btn,.nav-mobile-bottom .btn-secondary{min-height:44px;padding:.35rem .7rem;font-size:.72rem;border-radius:10px;background:#eef2ff;color:#3730a3}.nav-desktop-top{display:none}table{display:table;width:100%;white-space:normal}.mobile-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e8ecf2;border-radius:10px}.mobile-table-scroll table{min-width:520px}.mobile-table-scroll th,.mobile-table-scroll td{padding:.4rem .45rem;font-size:.75rem;white-space:nowrap}.data-grid-wrap{max-height:min(62vh,520px);border-radius:10px}.data-grid,.data-grid-compact{font-size:.74rem}.data-grid th,.data-grid-compact th{font-size:.66rem;padding:.35rem}.data-grid td,.data-grid-compact td{padding:.28rem .32rem}.data-grid-compact .input{min-height:28px;font-size:.74rem;padding:.18rem .3rem}.grid-toolbar{align-items:stretch;flex-direction:column;gap:.45rem;margin-bottom:.5rem}.grid-toolbar-actions{width:100%;justify-content:stretch}.grid-search{max-width:none;flex:1;min-width:0;min-height:36px;font-size:16px}.grid-toolbar-actions .btn,.grid-toolbar-actions .btn-sm{flex:0 0 auto}.desktop-page-header{margin-bottom:.65rem;gap:.45rem}.desktop-page-header h2{font-size:1rem}.desktop-page-header .muted{font-size:.75rem;margin:0}.desktop-page-header .grid-toolbar-actions{width:100%}.desktop-section{padding:.75rem .8rem;margin-bottom:.65rem}.input-inline-num{width:52px;min-width:48px}.input-inline{width:72px;min-width:60px}.col-actions{width:64px}.row-actions{gap:.2rem}.admin-mobile-shell>.card,.admin-mobile-shell .desktop-section{margin-bottom:.55rem}.stats-grid{gap:.45rem}.stats-tile-value{font-size:.98rem!important}.login-lang-picker{margin-top:.85rem;padding-top:.75rem}.login-lang-option{padding:.45rem .25rem;border-radius:9px}.login-lang-name{font-size:.68rem}.lang-flag-trigger{min-width:36px;height:32px}.qr-print-filter-card{padding:.45rem .55rem .4rem}.qr-print-filter-bar{gap:.35rem .5rem}.qr-print-filter-title{font-size:.82rem;width:100%}.qr-print-filters{gap:.3rem .4rem;width:100%}.qr-print-filters label,.qr-print-filter-field{flex:1 1 calc(33.333% - .3rem);min-width:5.5rem;gap:.22rem}.qr-print-filters .input,.qr-print-filter-field .input{flex:1 1 auto;min-width:0;max-width:none;width:100%;min-height:30px;height:30px;font-size:.78rem}.qr-print-hint{margin-top:.28rem;font-size:.68rem}.qr-print-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.55rem;margin-top:.65rem}.qr-print-card{padding:.65rem;border-radius:10px}.qr-print-card-name{font-size:.86rem}.qr-print-card-image{width:110px;height:110px}th,td{padding:.45rem .4rem;font-size:.8rem}.pager .btn{min-height:34px;padding:.35rem .65rem;font-size:.78rem}}@media(min-width:768px){.mobile-shell{display:none!important}.desktop-app{min-height:100vh}.desktop-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eef2ff;padding:2rem}.desktop-login-wrap .card{width:100%}.desktop-student-wrap{max-width:720px;margin:0 auto;padding:2rem}.nav-desktop-top{display:flex;gap:.75rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.nav-mobile-bottom{display:none}.desktop-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;transition:grid-template-columns .2s ease}.desktop-shell.sidebar-collapsed{grid-template-columns:64px 1fr}.desktop-sidebar{background:#1e293b;color:#f8fafc;padding:.85rem .65rem;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.desktop-brand{display:flex;align-items:center;gap:.65rem;padding:.55rem .5rem .85rem;border:none;border-bottom:1px solid #334155;background:transparent;color:inherit;width:100%;text-align:left;border-radius:8px;cursor:pointer}.desktop-brand:hover{background:#334155}.desktop-brand-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:#2563eb;color:#fff}.desktop-brand-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.desktop-brand .muted{color:#94a3b8;font-size:.75rem}.desktop-sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.desktop-nav-link{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;border-radius:8px;color:#e2e8f0;font-weight:600;font-size:.9rem;white-space:nowrap}.desktop-nav-link:hover{background:#334155}.desktop-nav-link.active{background:#2563eb;color:#fff}.desktop-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.desktop-nav-label{overflow:hidden;text-overflow:ellipsis}.desktop-logout{width:100%;display:inline-flex;align-items:center;justify-content:flex-start;gap:.65rem;padding:.55rem .65rem}.desktop-shell.sidebar-collapsed .desktop-brand{justify-content:center;padding:.45rem .25rem .75rem}.desktop-shell.sidebar-collapsed .desktop-brand-text,.desktop-shell.sidebar-collapsed .desktop-nav-label,.desktop-shell.sidebar-collapsed .desktop-logout-label{display:none}.desktop-shell.sidebar-collapsed .desktop-nav-link,.desktop-shell.sidebar-collapsed .desktop-logout{justify-content:center;padding:.6rem .35rem}.desktop-main{padding:1.25rem 1.5rem;background:#f1f5f9;overflow:auto;min-width:0}.desktop-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.25rem;flex-wrap:nowrap}.desktop-section{margin-bottom:.85rem;padding:1rem 1.1rem}.data-grid-wrap{max-height:calc(100vh - 320px)}.data-grid{font-size:.92rem}.data-grid-compact{font-size:.82rem}.data-grid th{font-size:.78rem}.data-grid tbody tr{cursor:pointer}.btn-icon{width:26px;height:26px;min-height:26px;border-radius:6px}.grid-toolbar h3{font-size:1rem}.grid-toolbar-actions{gap:.5rem}.desktop-summary-cards{display:flex;gap:.75rem}.summary-card{background:#fff;border-radius:10px;padding:.75rem 1rem;min-width:120px;display:flex;flex-direction:column;gap:.25rem;box-shadow:0 1px 3px #0000000f}.desktop-two-col{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}.desktop-cash-input{margin-bottom:1rem}.quick-deposit-form{display:grid;grid-template-columns:1fr 160px 100px;gap:.75rem;align-items:center}.desktop-side-panel{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}.desktop-sub-section{border-left:4px solid #2563eb}.desktop-hint{padding:0 .25rem 1rem}.data-grid-wrap-short{max-height:360px}.data-grid-wrap-sub{max-height:260px}.inline-add-form{display:grid;grid-template-columns:140px 1fr 1fr auto;gap:.65rem;margin-bottom:.85rem;align-items:center}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.deposit-list{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.75rem}.deposit-list li{padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.mobile-header,.mobile-footer{display:none}}.mobile-shell{min-height:100vh;display:flex;flex-direction:column}.mobile-header{padding:30px 1rem 0}.admin-mobile-shell .desktop-page-header,.admin-mobile-shell .card.desktop-section{margin-left:.75rem;margin-right:.75rem}.login-card-mobile{width:100%;margin:0}.login-page-stack{width:100%;max-width:420px;display:flex;flex-direction:column;gap:1.1rem}.login-page-brand{text-align:center}.login-page-title{margin:0;font-size:2.15rem;font-weight:800;letter-spacing:-.04em;color:#0f172a;line-height:1.1}.login-page-subtitle{margin:.35rem 0 0;font-size:.88rem;line-height:1.35}.mobile-login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top,0px));padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#eef2ff,#f5f7fb)}.mobile-login-wrap .login-page-stack{width:100%;max-width:420px}.mobile-login-wrap .login-card{width:100%;margin:0}.desktop-login-wrap .login-page-stack{width:100%;max-width:420px}.login-card-desktop{width:100%}.mobile-title{margin:0;font-size:1.35rem}.mobile-subtitle{margin:.25rem 0 0;font-size:.9rem}.mobile-main{flex:1;padding:1rem 1rem 5rem}.mobile-footer{padding:1rem;text-align:center;font-size:.9rem}.lang-flag{font-size:1.25rem;line-height:1}.login-lang-picker{margin-top:1.1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.login-lang-label{margin:0 0 .55rem;font-size:.85rem;text-align:center}.login-lang-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.login-lang-option{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.55rem .35rem;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:inherit;cursor:pointer}.login-lang-option:hover{border-color:#93c5fd;background:#eff6ff}.login-lang-option.selected{border-color:#2563eb;background:#dbeafe;box-shadow:inset 0 0 0 1px #2563eb}.login-lang-name{font-size:.72rem;font-weight:600;text-align:center;line-height:1.2}.lang-flag-dropdown{position:relative;display:inline-flex}.lang-flag-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;min-width:42px;height:36px;padding:0 .45rem;border:1px solid #d1d5db;border-radius:999px;background:#fff;color:inherit;cursor:pointer}.lang-flag-trigger:hover{border-color:#93c5fd;background:#f8fafc}.lang-flag-caret{font-size:.65rem;color:#6b7280}.lang-flag-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:50;min-width:180px;margin:0;padding:.35rem;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 28px #0f172a24;color:#111827}.lang-flag-item{width:100%;display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border:none;border-radius:8px;background:transparent;color:#111827;cursor:pointer;text-align:left}.lang-flag-item:hover,.lang-flag-item.selected{background:#eff6ff;color:#0f172a}.lang-flag-item-name{font-size:.88rem;font-weight:600;color:#111827}.lang-flag-dropdown--sidebar .lang-flag-trigger,.lang-flag-dropdown--sidebar-collapsed .lang-flag-trigger{width:100%;border-color:#475569;background:#0f172a;color:#f8fafc}.lang-flag-dropdown--sidebar .lang-flag-caret,.lang-flag-dropdown--sidebar-collapsed .lang-flag-caret{color:#cbd5e1}.lang-flag-dropdown--sidebar .lang-flag-menu{left:0;right:auto;bottom:calc(100% + .35rem);top:auto}.lang-flag-dropdown--sidebar-collapsed .lang-flag-menu{left:calc(100% + .4rem);right:auto;bottom:0;top:auto}.desktop-sidebar-footer{display:flex;flex-direction:column;gap:.55rem}.mobile-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.mobile-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.mobile-header-logout{display:inline-flex;align-items:center;gap:.35rem;height:36px;padding:0 .65rem;border:1px solid #d1d5db;border-radius:999px;background:#fff;color:#64748b;font-size:.78rem;font-weight:600}.mobile-header-logout:hover{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.mobile-header-logout span{line-height:1}@media(max-width:420px){.mobile-header-logout span{display:none}.mobile-header-logout{width:36px;padding:0;justify-content:center}}.mobile-only-list{display:none}.desktop-only-table{display:block}.student-home-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.student-home-head h2{margin:0;font-size:1.05rem}.student-code{margin:.15rem 0 0;font-size:.8rem}.student-balance{margin:0!important;text-align:right;font-size:1.15rem!important;color:#1d4ed8}@media(max-width:767px){.mobile-only-list{display:grid}.desktop-only-table{display:none!important}.student-home-card .qr-container{margin-top:.35rem}.student-home-head h2{font-size:.98rem}.student-balance{font-size:1.05rem!important}}@media(min-width:768px){.mobile-only-list{display:none!important}.desktop-only-table,.desktop-only-table.data-grid-wrap,.data-grid-wrap.desktop-only-table{display:block}}.qr-print-page{display:flex;flex-direction:column;gap:.75rem}.qr-print-students-grid{table-layout:fixed;width:100%}.qr-print-students-grid .col-name{width:10.5rem;max-width:12rem}.qr-print-students-grid .col-code{width:10rem}.qr-print-students-grid .col-year{width:4.25rem}.qr-print-students-grid .col-grade,.qr-print-students-grid .col-class,.qr-print-students-grid .col-number{width:2.85rem}.qr-print-students-grid td.col-name,.qr-print-students-grid td.col-code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qr-print-filter-card{padding:.55rem .7rem .5rem}.qr-print-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem}.qr-print-filter-title{margin:0;font-size:.88rem;font-weight:700;color:#273951;white-space:nowrap;line-height:1.2}.qr-print-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .55rem;margin:0;flex:1 1 auto;min-width:0}.qr-print-filters label,.qr-print-filter-field{display:inline-flex;flex-direction:row;align-items:center;gap:.3rem;min-width:0;margin:0}.qr-print-filters label span,.qr-print-filter-field span{font-size:.72rem;font-weight:600;color:var(--muted, #64748b);white-space:nowrap;line-height:1}.qr-print-filters .input,.qr-print-filter-field .input{min-height:30px;height:30px;padding:.18rem .45rem;font-size:.8rem;border-radius:6px;width:auto;min-width:4.75rem;max-width:7.5rem}.qr-print-hint{margin:.35rem 0 0;font-size:.72rem;line-height:1.35}.qr-print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1rem}.qr-print-card{border:1px solid var(--border, #e2e8f0);border-radius:12px;padding:1rem;text-align:center;break-inside:avoid;page-break-inside:avoid;background:#fff}.qr-print-card-name{font-weight:700;margin:0 0 .25rem;font-size:1rem}.qr-print-card-meta{margin:0 0 .15rem;font-size:.85rem;color:var(--muted, #64748b)}.qr-print-card-code{margin:0 0 .75rem;font-size:.8rem;font-family:ui-monospace,monospace;color:var(--muted, #64748b)}.qr-print-card-image{display:block;width:140px;height:140px;margin:0 auto}.col-check{width:2.5rem;text-align:center}@media print{body *{visibility:hidden}.qr-print-preview,.qr-print-preview *{visibility:visible}.qr-print-preview{position:absolute;left:0;top:0;width:100%;padding:0;margin:0}.qr-print-no-print{display:none!important}.desktop-shell,.desktop-main,.desktop-app{display:block!important;margin:0!important;padding:0!important}.desktop-sidebar{display:none!important}.qr-print-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.qr-print-card{border:1px solid #ccc;border-radius:8px;padding:.75rem}.qr-print-card-image{width:120px;height:120px}}.merchant-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(180deg,#eef2ff,#f5f7fb)}.merchant-login-wrap .card{width:100%;max-width:420px}.merchant-shell{min-height:100vh;display:flex;flex-direction:column;width:100%;max-width:100%;margin:0 auto;background:#f5f7fb;overflow-x:hidden}.merchant-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:30px 1rem .5rem;background:#fff;border-bottom:1px solid #e5e7eb}.merchant-header-brand{flex:1;min-width:0}.merchant-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.merchant-header-logout{display:inline-flex;align-items:center;gap:.35rem;height:36px;padding:0 .65rem;border:1px solid #d1d5db;border-radius:999px;background:#fff;color:#64748b;font-size:.78rem;font-weight:600}.merchant-header-logout:hover{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.merchant-header-logout span{line-height:1}@media(max-width:420px){.merchant-header-logout span{display:none}.merchant-header-logout{width:36px;padding:0;justify-content:center}}.merchant-title{margin:0;font-size:1.15rem}.merchant-subtitle{margin:.15rem 0 0;font-size:.85rem}.merchant-main{flex:1;width:100%;max-width:100%;min-width:0;padding:1rem;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}.merchant-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.merchant-qr-reader{width:100%!important;max-width:100%!important;min-width:0;margin:.5rem 0 1rem;overflow:hidden;border-radius:10px;border:none!important;padding:0!important}.merchant-qr-reader video,.merchant-qr-reader canvas,.merchant-qr-reader img{display:block;width:100%!important;max-width:100%!important;height:auto!important;object-fit:cover}.merchant-qr-reader #qr-reader__scan_region,.merchant-qr-reader #qr-reader__dashboard_section_csr,.merchant-qr-reader #qr-reader__dashboard_section_fsr{width:100%!important;max-width:100%!important}.merchant-qr-reader #qr-reader__dashboard_section_csr span,.merchant-qr-reader #qr-reader__dashboard_section_fsr span{font-size:.75rem!important}.merchant-scan-camera{width:100%;max-width:100%;min-width:0;overflow:hidden;margin-bottom:1rem}.merchant-scan-btn{margin-bottom:1rem}.merchant-scanned-student{margin:1rem 0 0;padding:.85rem 1rem;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;min-height:6.5rem;box-sizing:border-box}.merchant-scanned-student.has-scan{position:relative;padding-right:2.5rem}.merchant-scanned-student-clear{position:absolute;top:.45rem;right:.45rem;display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;padding:0;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#dc2626;cursor:pointer}.merchant-scanned-student-clear:hover{background:#fef2f2;border-color:#f87171}.merchant-scanned-student-clear svg{width:14px;height:14px}.merchant-scanned-student.is-empty{display:flex;align-items:center;justify-content:center;background:#f8fafc;border:1px dashed #cbd5e1}.merchant-scan-placeholder{margin:0;text-align:center;font-size:.92rem;line-height:1.45}.merchant-student-name{margin:0 0 .25rem;font-size:1.05rem}.merchant-student-meta{margin:0 0 .35rem;font-size:.9rem}.merchant-deduct-preview{margin:.75rem 0 0;padding-top:.75rem;border-top:1px solid #bfdbfe;font-size:1.05rem;font-weight:700;color:#2563eb}.merchant-deduct-insufficient{margin:.75rem 0 0;padding:.65rem .75rem;border-radius:8px;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:.92rem;font-weight:600}.merchant-pay-form{margin-top:.55rem}.merchant-amount-input{-moz-appearance:textfield}.merchant-amount-field-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.merchant-amount-field-head label{margin:0}.merchant-amount-clear{flex-shrink:0;margin:0;padding:.1rem .35rem;border:none;border-radius:6px;background:transparent;color:#64748b;font-size:.74rem;font-weight:700;line-height:1.2;cursor:pointer}.merchant-amount-clear:hover:not(:disabled){color:#dc2626;background:#fef2f2}.merchant-amount-clear:disabled{opacity:.35;cursor:default}.merchant-pay-form .merchant-amount-input{text-align:center;font-size:1.45rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;min-height:3rem;padding:.65rem .75rem}.merchant-pay-form .merchant-amount-input::placeholder{font-size:1.05rem;font-weight:500;letter-spacing:0;text-align:center}.merchant-amount-input::-webkit-outer-spin-button,.merchant-amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.merchant-pay-balance{font-size:1.05rem;font-weight:600}.merchant-table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.merchant-history-wrap{margin-top:.25rem;border:1px solid #e8ecf2;border-radius:10px;background:#fff}.merchant-history-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.35rem}.merchant-history-header h2{margin:0}.merchant-history-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.merchant-history-scope{display:inline-flex;gap:.3rem}.merchant-history-summary{margin:0 0 .75rem;font-size:.92rem;font-weight:600;color:#334155}.merchant-history-range{margin:.25rem 0 .65rem}.merchant-history-range-fields{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:.3rem;width:100%;min-width:0}.merchant-history-date-field{display:flex;flex-direction:column;gap:.12rem;flex:1 1 0;min-width:0;font-size:.68rem;font-weight:600;color:#475569;line-height:1.15}.merchant-history-date-field span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merchant-history-date-field .input{width:100%;min-width:0;min-height:1.9rem;height:1.9rem;padding:.15rem .3rem;font-size:.78rem;border-radius:7px;line-height:1.2}.merchant-history-date-field .input::-webkit-date-and-time-value{text-align:left}.merchant-history-date-field .input::-webkit-calendar-picker-indicator{margin-left:0;padding:0;width:.95rem;height:.95rem;cursor:pointer;opacity:.7}.merchant-history-range-sep{flex:0 0 auto;align-self:flex-end;padding-bottom:.35rem;color:#64748b;font-size:.78rem;font-weight:700;line-height:1}.merchant-history-range-fields>.btn,.merchant-history-range-fields>.btn-sm{flex:0 0 auto;align-self:flex-end;min-height:1.9rem;height:1.9rem;padding:0 .55rem;font-size:.74rem;border-radius:7px;white-space:nowrap}.merchant-history-range-hint{margin:.3rem 0 0;font-size:.72rem;line-height:1.3}.merchant-history-table{width:max-content;min-width:28rem;table-layout:fixed;border-collapse:collapse}.merchant-history-table thead th,.merchant-history-table tbody td,.merchant-history-table tfoot td{padding:.32rem .28rem}.merchant-history-table thead th{position:sticky;top:0;z-index:1;background:#fff;font-size:.78rem;font-weight:700;color:#475569;border-bottom:2px solid #e5e7eb;white-space:nowrap}.merchant-history-table tbody td{font-size:.82rem;vertical-align:middle;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}.merchant-history-table .col-datetime{width:6.25rem;min-width:6.25rem}.merchant-history-table .col-name{width:5.25rem;min-width:5.25rem}.merchant-history-table .col-class{width:3.5rem;min-width:3.5rem;white-space:nowrap;font-variant-numeric:tabular-nums}.merchant-history-table .col-amount{width:5.5rem;min-width:5.5rem;text-align:right;white-space:nowrap}.merchant-history-table .col-merchant{width:7rem;min-width:5.5rem;max-width:9rem;color:#64748b;overflow:hidden;text-overflow:ellipsis}.merchant-history-table .col-merchant .merchant-history-cancelled-badge{display:inline-block;margin-left:.25rem;vertical-align:middle}.merchant-history-table .col-actions{width:2.1rem;min-width:2.1rem;text-align:center;white-space:nowrap;padding-left:.12rem;padding-right:.12rem}.merchant-history-cancel-btn{width:1.55rem;height:1.55rem;min-height:1.55rem;padding:0;border-radius:6px}.merchant-history-cancel-btn svg{width:11px;height:11px}.merchant-history-cancelled-badge{display:inline-block;padding:.06rem .28rem;border-radius:4px;background:#f1f5f9;color:#64748b;font-size:.62rem;font-weight:700}.merchant-history-table tr.is-cancelled td{color:#94a3b8}.merchant-history-table .amount-cancelled{text-decoration:line-through;color:#94a3b8}.merchant-history-cancel-done{font-size:.85rem}.merchant-history-table tfoot td{font-size:.8rem;font-weight:700;border-top:2px solid #e2e8f0;border-bottom:none;background:#f8fafc;padding:.38rem .28rem;vertical-align:middle}.merchant-history-total-label{text-align:right;color:#273951}.merchant-history-total-count{font-weight:600;font-size:.78rem}.merchant-history-total-amount{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.merchant-history-empty{text-align:center;padding:1.25rem .5rem!important}.merchant-table{width:100%;border-collapse:collapse}.merchant-table th,.merchant-table td{padding:.65rem .5rem;border-bottom:1px solid #e5e7eb;text-align:left}.merchant-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;background:#fff;border-top:1px solid #e5e7eb;padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px #0f172a0f}.merchant-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:56px;padding:.35rem .25rem;border:none;border-radius:10px;background:transparent;color:#64748b;font-size:.68rem;font-weight:600;text-align:center}.merchant-nav-item span{line-height:1.1}.merchant-nav-item.active{color:#2563eb;background:#eff6ff}.merchant-amount-presets-panel{margin:.55rem 0 .5rem;border:1px solid #e8ecf2;border-radius:10px;background:#fbfcfe;overflow:hidden}.merchant-amount-presets-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:2.35rem;padding:.4rem .7rem;border:none;background:transparent;color:#273951;cursor:pointer;text-align:left}.merchant-amount-presets-toggle:hover{background:#f1f5f9}.merchant-amount-presets-toggle-label{font-size:.82rem;font-weight:700;letter-spacing:-.01em}.merchant-amount-presets-count{font-weight:600;font-size:.76rem}.merchant-amount-presets-toggle-action{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-size:.74rem;font-weight:700;color:#533afd}.merchant-amount-presets-caret{font-size:.7rem;line-height:1}.merchant-amount-presets{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:.5rem .55rem .55rem;border-top:1px solid #eef2f7}.merchant-amount-preset-btn{flex:1 1 calc(33.333% - .35rem);min-width:4.5rem;min-height:2.15rem;padding:.35rem .45rem;border:1px solid #d6d9fc;border-radius:8px;background:#f8f7ff;color:#3730a3;font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.merchant-amount-preset-btn:hover{border-color:#533afd;background:#eef2ff}.merchant-amount-preset-btn.is-active{border-color:#533afd;background:#533afd;color:#fff;box-shadow:0 0 0 3px #533afd29}.merchant-pending-recovery{margin:.55rem 0 .35rem;padding:.65rem .75rem;border:1px solid #fcd34d;border-radius:10px;background:#fffbeb}.merchant-pending-recovery-title{margin:0 0 .2rem;font-size:.82rem;font-weight:700;color:#92400e}.merchant-pending-recovery-message{margin:0 0 .55rem;font-size:.78rem;line-height:1.45;color:#78350f}.merchant-pending-recovery-actions{display:flex;flex-wrap:wrap;gap:.45rem}.merchant-last-pay{position:relative;margin:.55rem 0 .35rem;padding:.65rem 2.15rem .65rem .75rem;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff}.merchant-last-pay.is-cancelled{border-color:#e2e8f0;background:#f8fafc;padding-right:.75rem}.merchant-last-pay-main{min-width:0}.merchant-last-pay-title{margin:0 0 .2rem;font-size:.72rem;font-weight:700;color:#475569;letter-spacing:-.01em}.merchant-last-pay-line{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;font-size:.92rem}.merchant-last-pay-amount{font-weight:800;font-variant-numeric:tabular-nums;color:#1d4ed8;letter-spacing:-.02em}.merchant-last-pay.is-cancelled .merchant-last-pay-amount{color:#94a3b8;text-decoration:line-through}.merchant-last-pay-meta{margin:.2rem 0 0;font-size:.72rem}.merchant-last-pay-cancel{position:absolute;top:.4rem;right:.4rem;width:1.55rem;height:1.55rem;min-height:1.55rem;padding:0;border-radius:6px}.merchant-last-pay-cancel svg{width:11px;height:11px}.merchant-settings-section{margin:0 0 1rem;padding:.75rem .8rem;border:1px solid #e8ecf2;border-radius:10px;background:#fbfcfe}.merchant-settings-section-title{margin:0 0 .55rem;font-size:.88rem;font-weight:700;color:#273951}.merchant-settings-toggle-row{display:flex;align-items:flex-start;gap:.55rem;cursor:pointer;font-size:.86rem;line-height:1.35}.merchant-settings-toggle-row input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:#533afd;flex-shrink:0}.merchant-settings-toggle-row strong{display:block;font-size:.88rem;color:#0f172a}.merchant-settings-toggle-hint{display:block;margin-top:.2rem;font-size:.76rem;font-weight:500}@media(max-width:767px){.merchant-last-pay{padding:.55rem 2rem .55rem .6rem}.merchant-last-pay.is-cancelled{padding-right:.6rem}.merchant-last-pay-line{font-size:.86rem}.merchant-last-pay-cancel{top:.35rem;right:.35rem;width:1.45rem;height:1.45rem;min-height:1.45rem}}.merchant-pay-success{margin:.55rem 0 .35rem;padding:.7rem .8rem;border-radius:10px;background:#15be531f;border:1px solid rgba(21,190,83,.28);color:#108c3d;font-size:1.05rem;font-weight:700;line-height:1.4;letter-spacing:-.01em;text-align:center}.merchant-settings-lead{margin:0 0 .85rem;font-size:.84rem;line-height:1.4}.merchant-settings-preset-list{list-style:none;margin:0 0 .85rem;padding:0;display:grid;gap:.55rem}.merchant-settings-preset-row{padding:.65rem .7rem;border:1px solid #e5edf5;border-radius:10px;background:#fbfcfe}.merchant-settings-preset-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.merchant-settings-preset-label{font-size:.8rem;font-weight:700;color:#273951}.merchant-settings-enable{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none}.merchant-settings-enable input{width:1rem;height:1rem;accent-color:#533afd}.merchant-settings-preview{margin:.3rem 0 0;font-size:.74rem}@media(max-width:767px){.merchant-amount-preset-btn{min-height:2rem;font-size:.76rem;padding:.3rem .35rem}.merchant-pay-success{font-size:1.02rem;padding:.65rem .7rem}.merchant-settings-preset-row{padding:.55rem .6rem}}@media(max-width:767px){.merchant-header{padding:30px .75rem .45rem;gap:.5rem}.merchant-title{font-size:.95rem}.merchant-subtitle{font-size:.75rem}.merchant-main{padding:.65rem .75rem calc(4.75rem + env(safe-area-inset-bottom,0px))}.merchant-shell .card{padding:.85rem;border-radius:10px}.merchant-shell .card h2{margin:0 0 .65rem;font-size:.95rem;font-weight:700}.merchant-shell .field{margin-bottom:.65rem;gap:.25rem}.merchant-shell .field label{font-size:.82rem}.merchant-shell .input{padding:.42rem .6rem;font-size:16px;border-radius:6px;min-height:38px}.merchant-scan-page .merchant-pay-form .merchant-amount-input{text-align:center;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;min-height:2.65rem;padding:.55rem .65rem}.merchant-scan-page .merchant-pay-form .merchant-amount-input::placeholder{font-size:.95rem;font-weight:500}.merchant-scan-page .merchant-scanned-student{min-height:4.25rem;padding:.55rem .65rem}.merchant-scan-page .merchant-scanned-student.has-scan{padding-right:2.25rem}.merchant-scan-page .merchant-scanned-student-clear{top:.35rem;right:.35rem;width:1.7rem;height:1.7rem}.merchant-scan-page .merchant-scanned-student.is-empty{min-height:3.5rem}.merchant-scan-page .merchant-scan-placeholder{font-size:.82rem}.merchant-scan-page .merchant-student-name{font-size:.88rem}.merchant-scan-page .merchant-deduct-preview{font-size:.85rem;margin-top:.45rem;padding-top:.45rem}.merchant-scan-page .merchant-amount-presets-toggle{min-height:2rem;padding:.35rem .55rem}.merchant-scan-page .merchant-amount-preset-btn{min-width:0;flex:1 1 calc(33.333% - .35rem);min-height:1.95rem;padding:.3rem .35rem;font-size:.72rem}.merchant-scan-page .merchant-pending-recovery{padding:.55rem .65rem}.merchant-scan-page .merchant-pending-recovery-title{font-size:.78rem}.merchant-scan-page .merchant-pending-recovery-message{font-size:.74rem;margin-bottom:.45rem}.merchant-shell .input:focus{border-color:var(--stripe-purple-mid);box-shadow:var(--stripe-focus-glow),var(--stripe-focus-glow-blue)}.merchant-shell .input.is-invalid,.merchant-shell .input.input-invalid{border-color:#ea2261;box-shadow:0 0 0 4px var(--stripe-danger-soft)}.merchant-shell .field-hint-error{font-size:.72rem}.merchant-shell .merchant-history-range-fields{flex-wrap:nowrap;gap:.25rem}.merchant-shell .merchant-history-date-field{font-size:.64rem}.merchant-shell .merchant-history-date-field .input{min-height:1.85rem;height:1.85rem;padding:.12rem .25rem;font-size:.74rem;border-radius:6px}.merchant-shell .merchant-history-range-fields>.btn,.merchant-shell .merchant-history-range-fields>.btn-sm{min-height:1.85rem;height:1.85rem;padding:0 .45rem;font-size:.7rem}.merchant-shell .btn{font-size:.9rem;min-height:42px;padding:.55rem .85rem}.merchant-shell .btn-full{min-height:42px;margin-top:.35rem}.merchant-scanned-student{margin-top:.65rem;padding:.65rem .75rem}.merchant-student-name{font-size:.92rem}.merchant-student-meta{font-size:.78rem}.merchant-pay-balance{font-size:.85rem}.merchant-deduct-preview{margin-top:.55rem;padding-top:.55rem;font-size:.9rem}.merchant-deduct-insufficient{margin-top:.55rem;padding:.5rem .6rem;font-size:.8rem}.merchant-scan-btn,.merchant-scan-camera{margin-bottom:.65rem}.merchant-scan-page .merchant-qr-reader{margin:.35rem 0 .65rem}.merchant-bottom-nav{padding:.25rem .5rem calc(.25rem + env(safe-area-inset-bottom,0px))}.merchant-nav-item{min-height:48px;font-size:.62rem;gap:.15rem;padding:.25rem .15rem}.merchant-nav-item svg{width:20px;height:20px}.merchant-header-logout{height:32px;font-size:.72rem;padding:0 .5rem}.merchant-header-logout svg{width:18px;height:18px}.merchant-shell .lang-flag-trigger{min-width:34px;height:32px;padding:0 .35rem}.merchant-shell .lang-flag{font-size:1rem}.merchant-shell .error,.merchant-shell .success{font-size:.82rem;margin-top:.35rem}.merchant-table th,.merchant-table td{padding:.5rem .35rem;font-size:.82rem}.merchant-history-table thead th,.merchant-history-table tbody td,.merchant-history-table tfoot td{padding:.28rem .22rem}.merchant-history-table thead th{font-size:.68rem}.merchant-history-table tbody td{font-size:.72rem}.merchant-history-table{min-width:26rem}.merchant-history-table .col-datetime{width:5.75rem;min-width:5.75rem}.merchant-history-table .col-name{width:4.75rem;min-width:4.75rem}.merchant-history-table .col-class{width:3.15rem;min-width:3.15rem}.merchant-history-table .col-amount{width:5rem;min-width:5rem}.merchant-history-table .col-merchant{width:6rem;min-width:5rem}.merchant-history-table .col-actions{width:1.95rem;min-width:1.95rem}.merchant-history-cancel-btn{width:1.45rem;height:1.45rem;min-height:1.45rem}.merchant-history-cancel-btn svg{width:10px;height:10px}.merchant-history-card{padding-bottom:.5rem;overflow:hidden}.merchant-table-wrap .merchant-history-table{display:table}.merchant-history-empty{white-space:normal;text-align:center}.merchant-login-wrap{padding:.75rem}.merchant-login-wrap .card{padding:1rem}.merchant-login-wrap .card h1{font-size:1.1rem}}@media(min-width:768px){.merchant-shell{width:100%;max-width:834px;margin:0 auto}.merchant-header{padding:30px 2rem .75rem}.merchant-main{padding:1.25rem 2rem 6rem}.merchant-bottom-nav{left:50%;right:auto;width:min(834px,100%);transform:translate(-50%);padding-left:1rem;padding-right:1rem}.merchant-nav-item{font-size:.75rem;min-height:60px}.merchant-qr-reader video{max-width:min(480px,100%);margin:0 auto}}@media(min-width:1024px){.merchant-main{padding:1.5rem 3rem 6.5rem}.merchant-card{padding:2rem}}.stats-chart{display:flex;align-items:flex-end;gap:.45rem;min-height:180px;margin-top:.5rem;padding:.35rem .15rem 0}.stats-chart-col{flex:1;min-width:0;text-align:center}.stats-chart-bar{min-height:0;background:linear-gradient(180deg,#3b82f6,#2563eb);border-radius:5px 5px 2px 2px;margin:0 auto .35rem;max-width:36px}.stats-chart-date{margin:0;font-size:.68rem}.stats-chart-amount{margin:.15rem 0 0;font-size:.68rem;font-weight:600;color:#334155;line-height:1.2;word-break:break-all}@media(max-width:767px){.stats-chart{min-height:150px;gap:.28rem}.stats-chart-bar{max-width:28px}.stats-chart-amount{font-size:.62rem}}.merchant-admin-card .page-toolbar{margin-bottom:.55rem}.merchant-create-form{margin:0 0 .75rem;padding:.55rem .65rem .6rem;border:1px solid #e8ecf2;border-radius:10px;background:#fbfcfe}.merchant-create-head h3{margin:0 0 .45rem;font-size:.88rem;font-weight:700;color:#273951}.merchant-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .55rem}.merchant-form-field{display:flex;flex-direction:column;gap:.18rem;margin:0;min-width:0}.merchant-form-field span{font-size:.7rem;font-weight:600;color:#64748b;line-height:1.2}.merchant-form-field .input{min-height:32px;padding:.28rem .5rem;font-size:.84rem;border-radius:6px}.merchant-create-actions,.merchant-inline-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.5rem}.merchant-admin-list{margin:0;padding:0;list-style:none}.merchant-admin-item{display:block;padding:0;overflow:hidden}.merchant-admin-item-main{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.55rem .65rem;border:none;background:transparent;text-align:left;cursor:pointer}.merchant-admin-item-main:hover{background:#f8fafc}.merchant-admin-item.is-open{border-color:#c7d2fe;box-shadow:0 0 0 1px #533afd14}.merchant-admin-item.is-inactive .tx-card-title{color:#94a3b8}.merchant-admin-table tbody tr.merchant-admin-row{cursor:pointer}.merchant-admin-table tbody tr.merchant-admin-row:hover td{background:#f8fafc}.merchant-admin-table tbody tr.merchant-admin-row.is-open td{background:#f5f3ff}.merchant-admin-table tbody tr.merchant-admin-row.is-inactive td{color:#94a3b8}.merchant-admin-detail-row td{padding:0!important;background:#fbfcfe;border-bottom:1px solid #e2e8f0}.merchant-inline-detail{padding:.55rem .7rem .65rem}.merchant-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;margin:0}.merchant-detail-grid dt{margin:0;font-size:.68rem;font-weight:600;color:#64748b}.merchant-detail-grid dd{margin:.08rem 0 0;font-size:.86rem;font-weight:600;color:#0f172a}.merchant-detail-wide{grid-column:1 / -1}.merchant-status-pill{display:inline-flex;align-items:center;padding:.12rem .4rem;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.68rem;font-weight:700;white-space:nowrap}.merchant-status-pill.is-active{background:#ecfdf5;color:#047857}.merchant-admin-empty{padding:.85rem .35rem;text-align:center}.merchant-inline-form .merchant-form-grid{margin-bottom:.15rem}@media(max-width:767px){.merchant-form-grid{grid-template-columns:1fr 1fr;gap:.35rem .4rem}.merchant-form-field .input{min-height:34px;font-size:16px}.merchant-detail-grid{grid-template-columns:1fr 1fr}}@media(min-width:768px){.merchant-form-grid,.merchant-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-tx-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem;margin-bottom:.65rem}.admin-tx-title{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a;letter-spacing:-.02em}.admin-tx-range{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;margin:0;min-width:0}.admin-tx-date-field{margin:0;min-width:0}.admin-tx-range .input{min-height:32px;height:32px;padding:.2rem .4rem;font-size:.8rem;border-radius:6px;width:8.6rem;max-width:38vw}.admin-tx-range-sep{color:#94a3b8;font-weight:700;flex-shrink:0}.admin-tx-range>.btn{flex-shrink:0;min-height:32px;padding:.25rem .65rem}.admin-tx-hint{margin:.25rem 0 0;font-size:.84rem}.admin-tx-tab-row{margin-top:0}.admin-tx-period{margin:0 0 .55rem;font-size:.8rem}.admin-tx-empty{padding:.85rem .35rem;text-align:center}@media(max-width:767px){.admin-tx-toolbar{align-items:stretch}.admin-tx-range{width:100%}.admin-tx-date-field{flex:1 1 0}.admin-tx-range .input{width:100%;max-width:none;font-size:16px}}.login-card{max-width:420px;margin:0 auto}.login-field-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}.login-field-head>label:first-child{margin:0}.login-student-toggle{display:inline-flex;align-items:center;gap:.35rem;margin:0;flex-shrink:0;font-size:.82rem;font-weight:700;color:#273951;cursor:pointer;-webkit-user-select:none;user-select:none}.login-student-toggle input{width:1rem;height:1rem;margin:0;accent-color:#533afd}.login-student-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.login-student-class-grid .field{margin-bottom:.65rem;text-align:center}.login-student-class-grid .field>label{text-align:center}.login-student-class-grid .input{text-align:center}.student-mobile-page{min-height:100dvh;max-width:480px;margin:0 auto;padding:.85rem .85rem calc(5.25rem + env(safe-area-inset-bottom,0px));background:var(--student-bg, #f4f6fa);color:var(--student-text, inherit)}.student-wallet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;padding-top:30px;margin-bottom:.75rem}.student-wallet-kicker{margin:0 0 .1rem;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.student-wallet-name{margin:0;font-size:1.25rem;font-weight:800;letter-spacing:-.03em;color:#0f172a}.student-wallet-meta{margin:.15rem 0 0;font-size:.78rem}.student-wallet-header-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.student-header-logout{min-height:32px;padding:.25rem .55rem;font-size:.74rem;white-space:nowrap}.student-tab-row{grid-template-columns:repeat(2,1fr)}.student-balance-hero{text-align:center;padding:1rem .9rem .9rem;margin-bottom:.65rem;border:none;background:linear-gradient(160deg,#533afd,#3b82f6);color:#fff;box-shadow:0 10px 24px #533afd38}.student-balance-label{margin:0;font-size:.78rem;font-weight:600;opacity:.9}.student-balance-value{margin:.2rem 0 .65rem;font-size:1.85rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.student-qr-open{background:#ffffff29;border-color:#ffffff47;color:#fff}.student-qr-open:hover{background:#ffffff3d}.student-section-card{margin-bottom:.65rem;padding:.7rem .75rem}.student-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.student-section-head h2{margin:0;font-size:.92rem;font-weight:800;color:#0f172a}.student-section-link{font-size:.78rem;font-weight:700;color:#533afd;text-decoration:none}.student-tx-list{list-style:none;margin:0;padding:0}.student-tx-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.55rem 0;border-top:1px solid #eef2f7}.student-tx-row:first-child{border-top:none;padding-top:.15rem}.student-tx-title{margin:0;font-size:.86rem;font-weight:700;color:#0f172a}.student-tx-meta{margin:.12rem 0 0;font-size:.72rem}.student-tx-amount{margin:0;font-size:.9rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.student-tx-right{text-align:right}.student-tx-balance-after{margin:.1rem 0 0;font-size:.68rem}.student-tx-empty{padding:.55rem 0;text-align:center;font-size:.84rem}.student-history-balance{margin:.2rem 0 0;font-size:.86rem;color:#475569}.student-history-balance strong{color:#0f172a;font-variant-numeric:tabular-nums}.student-history-balance-inline{margin:0 0 .55rem;padding:.55rem .7rem;border-radius:10px;background:#eef2ff;border:1px solid #e0e7ff;font-size:.9rem;font-weight:600;color:#3730a3}.student-history-balance-inline strong{color:#312e81;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}.student-tab-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem;margin:0 0 .65rem;padding:.25rem;border-radius:10px;background:#e8ecf2}.student-tab{min-height:34px;border:none;border-radius:8px;background:transparent;color:#475569;font-size:.78rem;font-weight:700;cursor:pointer}.student-tab.is-active{background:#fff;color:#533afd;box-shadow:0 1px 3px #0f172a14}.student-shell{min-height:100dvh;background:var(--student-bg, #f4f6fa)}.student-shell-main{min-height:100dvh}.student-bottom-nav{position:fixed;left:50%;bottom:0;z-index:40;transform:translate(-50%);width:min(480px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;align-items:stretch;padding:.4rem .65rem calc(.4rem + env(safe-area-inset-bottom,0px));background:var(--student-nav-bg, #fff);border-top:1px solid var(--student-border, #e8ecf2);box-shadow:0 -6px 18px #0f172a0d}.student-bottom-nav a,.student-bottom-nav button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.35rem .55rem;border-radius:8px;font-size:.78rem;font-weight:700;text-decoration:none;color:#64748b}.student-bottom-nav a.active{color:#533afd;background:#eef2ff}.student-bottom-nav .btn{min-height:40px;font-size:.74rem}.desktop-student-page{max-width:520px;margin:0 auto;padding:1rem 1rem 5.5rem}.desktop-student-wrap{min-height:100vh;background:#f4f6fa;padding:1rem}.student-home-period{margin:0 0 .55rem;font-size:.78rem;font-weight:600}.student-history-range{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;margin:0 0 .75rem}.student-history-date-field{flex:1 1 0;min-width:0;margin:0}.student-history-range .input{width:100%;min-height:34px;height:34px;padding:.2rem .4rem;font-size:.8rem;border-radius:6px}.student-history-range-sep{color:#94a3b8;font-weight:700;flex-shrink:0}.student-history-range>.btn{flex-shrink:0;min-height:34px}.student-section-count{font-size:.78rem;font-weight:700}.student-settings-section-title{margin:0 0 .55rem;font-size:.92rem;font-weight:800;color:var(--student-text, #0f172a)}.student-theme-row{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.student-theme-btn{min-height:40px;border:1px solid var(--student-border, #e2e8f0);border-radius:10px;background:var(--student-card, #fff);color:var(--student-muted, #475569);font-size:.86rem;font-weight:700;cursor:pointer}.student-theme-btn.is-active{border-color:#533afd;background:#eef2ff;color:#533afd;box-shadow:0 0 0 3px #533afd1f}.student-password-form .field{margin-bottom:.65rem}.student-logout-card{margin-top:.35rem}html[data-theme=dark]{--student-bg: #0b1220;--student-card: #121a2b;--student-text: #e8eef9;--student-muted: #94a3b8;--student-border: #243044;--student-nav-bg: #0f172a;color-scheme:dark}html[data-theme=dark] body,html[data-theme=dark] .student-mobile-page,html[data-theme=dark] .desktop-student-page,html[data-theme=dark] .desktop-student-wrap,html[data-theme=dark] .student-shell{background:var(--student-bg);color:var(--student-text)}html[data-theme=dark] .card,html[data-theme=dark] .student-section-card{background:var(--student-card);border-color:var(--student-border);color:var(--student-text)}html[data-theme=dark] .student-wallet-name,html[data-theme=dark] .student-tx-title,html[data-theme=dark] .student-section-head h2{color:var(--student-text)}html[data-theme=dark] .muted,html[data-theme=dark] .student-tx-meta,html[data-theme=dark] .student-home-period{color:var(--student-muted)}html[data-theme=dark] .input{background:#0b1220;border-color:#334155;color:var(--student-text)}html[data-theme=dark] .student-bottom-nav,html[data-theme=dark] .nav-mobile-bottom.student-bottom-nav{background:var(--student-nav-bg);border-top-color:var(--student-border);box-shadow:0 -6px 18px #00000059}html[data-theme=dark] .student-bottom-nav a,html[data-theme=dark] .nav-mobile-bottom.student-bottom-nav a,html[data-theme=dark] .student-bottom-nav button,html[data-theme=dark] .nav-mobile-bottom.student-bottom-nav button{background:transparent;color:var(--student-muted)}html[data-theme=dark] .student-bottom-nav a.active,html[data-theme=dark] .nav-mobile-bottom.student-bottom-nav a.active{color:#e0e7ff;background:#6366f147}html[data-theme=dark] .lang-flag-dropdown--default .lang-flag-trigger{background:var(--student-card, #121a2b);border-color:var(--student-border, #243044);color:var(--student-text, #e8eef9)}html[data-theme=dark] .lang-flag-dropdown--default .lang-flag-trigger:hover{background:#1e293b;border-color:#475569}html[data-theme=dark] .lang-flag-dropdown--default .lang-flag-caret{color:var(--student-muted, #94a3b8)}html[data-theme=dark] .lang-flag-menu{background:var(--student-card, #121a2b);border-color:var(--student-border, #243044);color:var(--student-text, #e8eef9);box-shadow:0 10px 28px #00000073}html[data-theme=dark] .lang-flag-item,html[data-theme=dark] .lang-flag-item-name{color:var(--student-text, #e8eef9)}html[data-theme=dark] .lang-flag-item:hover,html[data-theme=dark] .lang-flag-item.selected{background:#6366f138;color:#e0e7ff}html[data-theme=dark] .lang-flag-item:hover .lang-flag-item-name,html[data-theme=dark] .lang-flag-item.selected .lang-flag-item-name{color:#e0e7ff}html[data-theme=dark] .admin-mobile-shell{background:var(--student-bg, #0b1220)}html[data-theme=dark] .admin-mobile-topbar{background:#0f172af5;border-bottom-color:var(--student-border, #243044)}html[data-theme=dark] .admin-mobile-topbar-title,html[data-theme=dark] .admin-mobile-drawer-head strong{color:var(--student-text, #e8eef9)}html[data-theme=dark] .admin-mobile-menu-btn,html[data-theme=dark] .admin-mobile-drawer-close{background:var(--student-card, #121a2b);border-color:var(--student-border, #243044);color:var(--student-text, #e8eef9)}html[data-theme=dark] .admin-mobile-drawer{background:var(--student-card, #121a2b);border-right-color:var(--student-border, #243044)}html[data-theme=dark] .admin-mobile-drawer-head,html[data-theme=dark] .admin-mobile-drawer-foot{border-color:var(--student-border, #243044)}html[data-theme=dark] .admin-mobile-drawer-nav a{color:var(--student-muted, #94a3b8)}html[data-theme=dark] .admin-mobile-drawer-nav a:hover{background:#1e293b;color:var(--student-text, #e8eef9)}html[data-theme=dark] .admin-mobile-drawer-nav a.active{background:#6366f159;color:#e0e7ff}html[data-theme=dark] .student-tab-row{background:#0a101c;border:1px solid #1e293b;box-shadow:inset 0 1px #ffffff05}html[data-theme=dark] .student-tab{color:#94a3b8;background:transparent}html[data-theme=dark] .student-tab:hover{color:#e2e8f0;background:#94a3b814}html[data-theme=dark] .student-tab.is-active{background:#1a2438;color:#e8eef9;box-shadow:0 1px 2px #00000059,inset 0 0 0 1px #818cf859}html[data-theme=dark] .student-history-balance{color:#94a3b8}html[data-theme=dark] .student-history-balance strong{color:#e8eef9}html[data-theme=dark] .student-history-balance-inline{background:#151f33;border-color:#243044;color:#c7d2fe}html[data-theme=dark] .student-history-balance-inline strong{color:#e8eef9}html[data-theme=dark] .student-theme-btn{background:#0b1220;border-color:#334155;color:#cbd5e1}html[data-theme=dark] .student-theme-btn.is-active{background:#533afd38;border-color:#818cf8;color:#c7d2fe}html[data-theme=dark] .student-tx-row{border-top-color:#1e293b}html[data-theme=dark] .btn-secondary{background:#1e293b;border-color:#334155;color:#e2e8f0}html[data-theme=dark] .qr-fullscreen{background:#020617eb}html[data-theme=dark] .qr-fullscreen-content{background:#121a2b;color:var(--student-text)}.admin-dashboard{display:flex;flex-direction:column;gap:1rem}.admin-dashboard-loading{margin:0}.admin-dashboard-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;padding:1.25rem 1.35rem;border-radius:16px;background:linear-gradient(135deg,#1e3a5f,#2563eb 52%,#6366f1);color:#fff;box-shadow:0 10px 30px #2563eb38}.admin-dashboard-eyebrow{margin:0 0 .25rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.82}.admin-dashboard-title{margin:0;font-size:1.45rem;font-weight:800;letter-spacing:-.03em}.admin-dashboard-subtitle{margin:.35rem 0 0;font-size:.88rem;opacity:.9;max-width:36rem}.admin-dashboard-hero-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.55rem}.admin-dashboard-date{font-size:.78rem;opacity:.88;white-space:nowrap}.admin-dashboard-stats-link{background:#ffffff29;border:1px solid rgba(255,255,255,.28);color:#fff}.admin-dashboard-stats-link:hover{background:#ffffff3d}.admin-dashboard-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.admin-dashboard-kpi{display:flex;gap:.75rem;align-items:flex-start;padding:1rem 1rem .95rem;border-radius:14px;background:#fff;border:1px solid #e8edf4;box-shadow:0 4px 14px #0f172a0d;transition:transform .15s ease,box-shadow .15s ease}.admin-dashboard-kpi:hover{transform:translateY(-1px);box-shadow:0 8px 22px #0f172a14}.admin-dashboard-kpi-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;flex-shrink:0}.admin-dashboard-kpi--payment .admin-dashboard-kpi-icon{background:#eff6ff;color:#2563eb}.admin-dashboard-kpi--deposit .admin-dashboard-kpi-icon{background:#ecfdf5;color:#059669}.admin-dashboard-kpi--students .admin-dashboard-kpi-icon{background:#f5f3ff;color:#7c3aed}.admin-dashboard-kpi--merchants .admin-dashboard-kpi-icon{background:#fff7ed;color:#ea580c}.admin-dashboard-kpi-body{min-width:0}.admin-dashboard-kpi-label{margin:0;font-size:.72rem;font-weight:600;color:#64748b}.admin-dashboard-kpi-value{margin:.2rem 0 .1rem;font-size:1.2rem;font-weight:800;letter-spacing:-.03em;color:#0f172a}.admin-dashboard-kpi-meta{margin:0;font-size:.72rem;color:#94a3b8}.admin-dashboard-panels{display:grid;grid-template-columns:1.35fr 1fr;gap:.85rem;align-items:start}.admin-dashboard-panel{background:#fff;border:1px solid #e8edf4;border-radius:14px;padding:1rem 1.05rem 1.05rem;box-shadow:0 4px 14px #0f172a0a}.admin-dashboard-panel-head h2{margin:0 0 .75rem;font-size:.92rem;font-weight:700;color:#0f172a}.admin-dashboard-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;align-items:end;min-height:160px}.admin-dashboard-chart-col{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:0}.admin-dashboard-chart-bar-wrap{width:100%;height:110px;display:flex;align-items:flex-end;justify-content:center}.admin-dashboard-chart-bar{width:min(100%,2rem);border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#6366f1,#2563eb);min-height:8px;transition:height .25s ease}.admin-dashboard-chart-date{margin:0;font-size:.68rem;color:#94a3b8}.admin-dashboard-chart-amount{margin:0;font-size:.62rem;color:#64748b;font-weight:600;text-align:center;word-break:break-word}.admin-dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.admin-dashboard-action{display:flex;align-items:center;justify-content:center;min-height:2.65rem;padding:.45rem .65rem;border-radius:10px;font-size:.78rem;font-weight:600;text-decoration:none;text-align:center;border:1px solid transparent;transition:transform .12s ease,box-shadow .12s ease}.admin-dashboard-action:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0f172a14}.admin-dashboard-action--violet{background:#f5f3ff;color:#5b21b6;border-color:#ddd6fe}.admin-dashboard-action--emerald{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.admin-dashboard-action--amber{background:#fffbeb;color:#b45309;border-color:#fde68a}.admin-dashboard-action--sky{background:#f0f9ff;color:#0369a1;border-color:#bae6fd}.admin-dashboard-action--slate{background:#f8fafc;color:#334155;border-color:#e2e8f0}.admin-dashboard-action--rose{background:#fff1f2;color:#be123c;border-color:#fecdd3}@media(min-width:960px){.admin-dashboard-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:820px){.admin-dashboard-panels{grid-template-columns:1fr}.admin-dashboard-hero-meta{align-items:flex-start}.admin-dashboard-date{white-space:normal}}@media(max-width:480px){.admin-dashboard-kpi-grid,.admin-dashboard-actions{grid-template-columns:1fr}.admin-dashboard-chart-amount{display:none}}
