:root{--bg: #f6f7f9;--fg: #1d2330;--muted: #5b6577;--card: #fff;--line: #d9dde5;--accent: #1f5fbf;--warn: #b4540a;--warn-bg: #fff3e6;--err: #b3261e;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.45 system-ui,sans-serif}h1{font-size:1.25rem;margin:0 0 1rem}button{font:inherit;padding:.35rem .75rem;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:6px;cursor:pointer}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;padding:.35rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg)}.shell main{padding:1rem 1.25rem}.topbar{display:flex;gap:.75rem;align-items:center;padding:.6rem 1.25rem;background:var(--card);border-bottom:1px solid var(--line)}.spacer{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem}.login{max-width:22rem;margin:12vh auto 0;display:grid;gap:.8rem}.login label{display:grid;gap:.25rem}.cards{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.stat{display:grid;min-width:9rem}.stat-label{color:var(--muted);font-size:.8rem}.stat-value{font-size:1.4rem;font-weight:600}.stat.warn{border-color:var(--warn);background:var(--warn-bg)}.toolbar{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--card)}th,td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;color:var(--muted)}td.num{text-align:right;font-variant-numeric:tabular-nums}tr.attention td{background:var(--warn-bg)}.err-cell{max-width:22rem;overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.error{color:var(--err)}.notice{color:var(--accent)}:root{--side: #3f4c66;--side-dark: #364259;--side-head: #4a5873;--side-fg: #e4e9f2;--top: #aec4de;--page: #f5f7fb;--red: #e03e52}.shell{display:flex;align-items:stretch;min-height:100vh;background:var(--page);color:#1d2330}.shell main{flex:1;padding:1.5rem 1.9rem}.content{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar{width:15rem;flex:none;display:flex;flex-direction:column;background:var(--side);color:var(--side-fg)}.sidebar a,.sidebar .menu-head{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.85rem 1.25rem;border:0;border-radius:0;background:transparent;color:var(--side-fg);font:inherit;font-size:.85rem;text-decoration:none;text-align:left;cursor:pointer}.sidebar a:hover,.sidebar .menu-head:hover{background:var(--side-head)}.sidebar .brand{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--side-dark)}.sidebar .brand .brand-link{width:auto;padding:0;gap:.6rem;font-size:1rem;font-weight:700}.sidebar .brand .brand-link:hover{background:transparent}.sidebar .menu-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid #8793ab;border-radius:6px;background:var(--side-head);color:#fff;font-size:1rem;line-height:1;cursor:pointer}.sidebar .menu-toggle:hover{background:#5b6a88}.sidebar .menu-icon{flex:none}.sidebar .menu-text{flex:1;margin-left:.75rem}.sidebar .menu-sub .menu-icon{opacity:.75}.sidebar-slot{flex:none;width:15rem}.sidebar-slot.slim{position:relative;width:4.5rem}.sidebar{height:100%}.sidebar.floating{position:absolute;top:0;bottom:0;left:0;z-index:30;box-shadow:4px 0 14px #00000040}.sidebar.collapsed{width:4.5rem}.sidebar.collapsed a,.sidebar.collapsed .menu-head{justify-content:center;padding:.85rem 0}.sidebar.collapsed .brand{flex-direction:column;align-items:center;gap:.6rem;padding:.7rem 0}.sidebar.collapsed .brand .brand-link{justify-content:center}.sidebar .brand-logo{display:inline-grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:6px;background:#fff;color:#1d2330;font-weight:800}.sidebar h2{margin:0;padding:.8rem 1.25rem;background:var(--side-head);color:#aab4c8;font-size:.85rem;font-weight:400}.sidebar .menu-group{border-left:3px solid transparent}.sidebar .menu-group.current{border-left-color:var(--red)}.sidebar .menu-sub{background:var(--side-dark)}.sidebar .menu-sub a{padding:.7rem 1.25rem .7rem 1.6rem;font-size:.82rem}.sidebar a.active{background:var(--side-head);font-weight:600;box-shadow:inset 3px 0 0 var(--red)}.topbar{display:flex;gap:.9rem;align-items:center;padding:0 1.5rem;min-height:3rem;background:var(--top);color:#1d2330;font-size:.8rem;border:0}.topbar a{color:#1f4f8f}.topbar .role{color:#9b1c1c;font-weight:700}.topbar button{padding:.3rem .8rem;border:1px solid #5b7aa3;border-radius:6px;background:#fff;color:#1d2330;font-size:.8rem;font-weight:600;cursor:pointer}.topbar button:hover{background:#e3eaf5}.footer{display:flex;align-items:center;padding:1.1rem 1.9rem;background:#fff;color:#444;font-size:.8rem}@media (max-width: 800px){.shell{flex-direction:column}.sidebar-slot,.sidebar-slot.slim,.sidebar,.sidebar.collapsed{width:100%}.sidebar.floating{position:static;box-shadow:none}}table.summary{width:auto;background:transparent}table.summary th{font-size:.95rem;font-weight:400;color:inherit;border:0;padding:.15rem .5rem .15rem 0}table.summary td{border:0;padding:.15rem .25rem}.swatch{display:inline-block;width:1rem;height:1rem;vertical-align:middle;border:1px solid var(--line);border-radius:3px}.line-editor{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:flex-end;padding:.5rem 0}.line-editor label{display:grid;gap:.25rem}.line-editor label:has(input[type=checkbox]){display:flex;align-items:center;gap:.4rem;padding-bottom:.4rem}tbody tr:nth-child(2n){background:#f4f6fa}tbody tr:hover{background:#e3eaf5}.banner{position:sticky;top:0;z-index:10;margin:0 0 1rem;padding:.75rem 1rem;border-radius:6px;border:1px solid var(--line);background:#fff;font-weight:600}.banner-error{border-color:#e0a3a0;background:#fdecea;color:#8c1d18}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:6vh 1rem 1rem;background:#141c2d8c;overflow-y:auto}.modal{width:min(32rem,100%);max-height:88vh;display:flex;flex-direction:column;background:#fff;color:#1d2330;border-radius:10px;box-shadow:0 18px 50px #00000059}.modal.modal-wide{width:min(52rem,100%)}.modal:focus{outline:none}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem;border-bottom:1px solid var(--line);background:#f4f6fa;border-radius:10px 10px 0 0}.modal-head h2{margin:0;font-size:1.05rem}.modal-close{padding:0 .55rem;border:0;background:transparent;font-size:1.5rem;line-height:1.4;color:#5b6577}.modal-close:hover{color:#1d2330;background:#e3eaf5}.modal-body{padding:1.1rem 1.25rem 1.25rem;overflow-y:auto}.modal-body .settings-form{display:grid;gap:.8rem}.modal-body .settings-form label{display:grid;gap:.25rem}.pay-card{padding:0}.pay-card-header{padding:3px 1rem;border-bottom:1px solid var(--line)}.pay-card-header h3{margin:0;font-size:1.15rem;font-weight:500}.pay-card-body{padding:6px 1rem 1rem}.pay-notes{border:1px solid var(--line);border-radius:10px;padding:6px 3px 3px;margin-bottom:1rem}.pay-notes-title{color:red}.pay-form{display:grid;gap:.25rem}.pay-row{display:flex;align-items:center;max-width:42%;min-width:22rem;margin:2px}.pay-label{flex:0 0 25%;font-weight:700}.pay-field{flex:1;display:flex;gap:.5rem}.pay-field input,.pay-field select{color:#000;border:1px solid deepskyblue;border-radius:4px}.pay-field input:not(.pay-short){width:100%}.pay-field input:focus,.pay-field select:focus{background:#faebd7;border-color:#00bfff;outline:none}.pay-field input.pay-short{width:6rem}.pay-field select{min-width:4.5rem}.pay-selection{color:red!important;font-weight:700}.pay-hint{color:red;font-weight:700;margin:.5rem 0 .25rem}.pay-submit{max-width:42%;min-width:22rem;text-align:center;margin:2px}.pay-submit .btn-success{width:70%;height:35px;background:#28a745;border-color:#28a745;color:#fff;font-weight:600}.pay-submit .btn-success:hover:not(:disabled){background:#218838}.pay-matrix{border-collapse:collapse;width:495px;max-width:100%;background:transparent;margin:.25rem 0 .75rem}.pay-matrix td{padding:0;border:0}.pay-matrix .pay-logo{width:80px;text-align:center;background:transparent}.pay-logo-text{font-size:.7rem;font-weight:700}.pay-count{text-align:center;width:15px}.pay-matrix tbody tr{height:30px;background:transparent}.pay-matrix tbody tr:hover{background:transparent}.pay-cell{background:#fff;padding:1px!important;border:2px solid #000!important;text-align:center;vertical-align:middle;cursor:pointer}.pay-cell:hover,.pay-cell.pay-selected{background:red}.pay-cell-inner{border-collapse:collapse;width:100%;height:100%;border:1px solid #fff;font-size:small}.pay-selected .pay-cell-inner{border-color:red}.pay-cell-inner td{border:0!important;color:#fff}.pay-amount{width:85%;font-size:x-small;text-align:left;padding-left:1px!important}.pay-extra{width:15%}.pay-extra .badge{background:#3b82f6;color:#fff;border-radius:3px;padding:0 3px;font-size:x-small}.pay-cell-empty{border:1px solid #000!important;background:#fff;text-align:center}.pay-expiry{display:flex;gap:.5rem}.pay-waiting{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9997}.pay-waiting-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:gray;opacity:.5;z-index:9998}.pay-waiting img{position:fixed;top:50%;left:50%;margin:-125px 0 0 -125px;z-index:9999}@media (max-width: 800px){.pay-row,.pay-submit{max-width:100%;min-width:0}}.slip{font-size:.9rem}.slip-title{text-align:center;margin:0 0 .75rem}.slip-table{width:auto;background:transparent}.slip-table td{border:0;padding:.1rem .4rem}.slip-label{white-space:nowrap}.slip-text{text-align:justify;margin:.75rem 0}.slip-note{font-size:.8rem}.slip-sign{display:inline-block;margin:.5rem 2rem 1rem 0;text-align:center}.btn-success{background:#28a745;border-color:#28a745;color:#fff;font-weight:600}@media print{body *{visibility:hidden}.slip,.slip *{visibility:visible}.slip{position:absolute;left:0;top:0;width:100%}.no-print{display:none}}.pay-notice{color:#0b5394;font-weight:600;margin:0 0 .25rem}
