:root{--accent: #4285f4;--accent-strong: #4285f4;--accent-dark: #3574db;--accent-light: #eef4fe;--nav-bg: #4a89f0;--nav-bg-2: #3b73d4;--nav-text: #eaf2fe;--nav-muted: #bdd6fa;--nav-active: #ffffff;--border: #e3e8ef;--text: #1c2634;--muted: #7b8794;--bg: #f2f6fc;--card: #ffffff;--ok: #16a34a;--warn: #f59e0b;--danger: #dc2626;--info: #2563eb;--shadow: 0 1px 2px rgba(66, 133, 244, .07), 0 4px 14px rgba(66, 133, 244, .08);--radius: 12px;--ok-text: #15803d;--danger-text: #b91c1c;--axis: #cfd6e0;--axis-strong: #b8c2d0;--class-a: #116644;--class-b: #8a6d00;--class-c: #b5651d;--class-d: #a03030;--class-e: #6b1020;--class-badge-bg: #f2f2f2;--cat-1: #2a78d6;--cat-2: #eb6834;--cat-3: #1baf7a;--cat-4: #eda100;--cat-5: #e87ba4;--cat-6: #008300}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans Lao,Phetsarath OT,sans-serif;color:var(--text);background:var(--bg);font-size:14px}.layout{display:flex;min-height:100vh}.sidebar{width:258px;flex-shrink:0;color:var(--nav-text);background:linear-gradient(180deg,var(--nav-bg) 0%,var(--nav-bg-2) 100%);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;padding:16px 16px 17px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:58px;height:58px;flex-shrink:0;border-radius:50%;background:#fff;color:var(--accent-strong);display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:800;font-size:16px;letter-spacing:.3px;box-shadow:0 3px 10px #0003}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand.logo-round .brand-mark img{object-fit:cover}.brand.logo-square .brand-mark,.brand.logo-tall .brand-mark{border-radius:14px}.brand.logo-square .brand-mark img{padding:3px}.brand.logo-tall .brand-mark img{padding:5px}.brand.logo-wide{flex-direction:column;align-items:stretch;gap:10px}.brand.logo-wide .brand-mark{width:100%;height:66px;border-radius:14px}.brand.logo-wide .brand-mark img{padding:6px 12px}.brand.logo-wide .brand-text{text-align:center}.brand-text{line-height:1.3;min-width:0}.brand-text strong{display:block;color:#fff;font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text span{display:block;color:var(--nav-muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo-preview{width:96px;height:96px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:800;font-size:26px;flex-shrink:0;border:1px solid var(--border)}.logo-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.sidebar nav{display:flex;flex-direction:column;padding:6px 10px 20px;overflow-y:auto}.nav-group{padding:14px 10px 5px;font-size:12px;letter-spacing:.8px;text-transform:uppercase;color:var(--nav-muted)}.sidebar nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;margin-bottom:2px;border-radius:9px;color:var(--nav-text);text-decoration:none;font-size:14.5px}.sidebar nav a svg{width:19px;height:19px;flex-shrink:0;opacity:.9}.sidebar nav a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar nav a:hover{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #ffffff8c}.sidebar nav a.active{background:#fff;color:var(--accent-dark);font-weight:600;box-shadow:0 2px 8px #00000024}.sidebar nav a.active svg{opacity:1}.sidebar nav a.active:after{content:"›";margin-left:auto;font-size:17px;line-height:1;opacity:.5}.nav-parent>button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;margin-bottom:2px;border:none;border-radius:9px;background:transparent;color:var(--nav-text);font-size:14.5px;font-weight:400;text-align:start;cursor:pointer}.nav-parent>button:hover{background:transparent;color:#fff;border-color:transparent;box-shadow:inset 0 0 0 1px #ffffff8c}.nav-parent>button svg{width:19px;height:19px;flex-shrink:0;opacity:.9}.nav-parent>button svg:last-child{width:15px;height:15px;margin-inline-start:auto;opacity:.6;transition:transform .15s}.nav-parent.on>button svg:last-child{transform:rotate(90deg)}.nav-sub{margin:0 0 4px 12px;padding-inline-start:10px;border-inline-start:1px solid rgba(255,255,255,.22)}.nav-sub a{font-size:13.8px;padding:8px 10px}.nav-sub a svg{width:17px;height:17px}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:14px 26px;background:var(--card);border-bottom:1px solid var(--border)}.topbar .title{line-height:1.3}.topbar .title strong{display:block;font-size:18px}.topbar .title span{display:block;color:var(--muted);font-size:12.5px}.topbar .title .behind{color:#b45309;font-style:normal}.topbar .spacer{margin-left:auto}.lang-switch{display:flex;gap:6px}.lang-switch button{padding:5px 12px;font-size:12.5px;border-radius:999px;background:var(--bg);border-color:var(--border);color:var(--muted)}.lang-switch button.on{background:var(--accent);border-color:var(--accent);color:#fff}.user-chip{display:flex;align-items:center;gap:10px;padding-left:14px}.user-link{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 10px;margin:-4px -6px -4px -10px;border-radius:999px;text-decoration:none;color:inherit}.user-link:hover{background:var(--accent-light)}.user-link.active .avatar{box-shadow:0 0 0 3px #4285f440}.user-info{text-align:right;line-height:1.25}.user-info strong{display:block;font-size:13.5px}.user-info span{display:block;color:var(--muted);font-size:12px}.avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--accent);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}button.logout{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:8px;color:var(--danger);border-color:var(--border)}button.logout svg{width:18px;height:18px}button.logout:hover{background:#fef2f2;border-color:#fecaca}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1000px 600px at 20% -10%,#e4edfd 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#e8effe 0%,transparent 55%),#f4f7fd}.login-card{position:relative;width:100%;max-width:420px;background:var(--card);border:1px solid #eaeff7;border-radius:22px;padding:30px 30px 24px;box-shadow:0 24px 60px #234a8c21;display:flex;flex-direction:column;gap:15px}.lang-pill{position:absolute;top:18px;right:18px;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;background:#f4f7fd;color:var(--muted);border-color:#e7edf7}.lang-pill svg{width:15px;height:15px}.lang-pill:hover{background:var(--accent-light);color:var(--accent)}.login-brand{text-align:center;margin:6px 0 2px}.brand-tile{width:86px;height:86px;margin:0 auto 16px;border-radius:22px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:800;font-size:24px;border:2px solid rgba(66,133,244,.16);box-shadow:0 4px 16px #4285f424}.brand-logo{height:112px;margin:2px auto 14px;display:flex;align-items:center;justify-content:center}.brand-logo img{max-width:230px;max-height:112px;object-fit:contain}.brand-logo.round img,.brand-logo.square img,.brand-logo.tall img{height:104px;width:auto}.brand-logo.wide img{width:230px;height:auto}.brand-logo.round img{border-radius:50%;box-shadow:0 6px 18px #4285f42e}.login-brand h1{margin:0;font-size:25px;font-weight:700}.login-brand p{margin:5px 0 0;color:var(--muted);font-size:13.5px}.field{display:block}.field-label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.field-box{display:flex;align-items:center;gap:9px;background:#f7f9fd;border:1px solid #e5ebf5;border-radius:11px;padding:0 12px}.field-box:focus-within{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #4285f424}.field-box>svg{width:18px;height:18px;color:var(--muted);flex-shrink:0}.field-box input{flex:1;min-width:0;border:none;background:transparent;padding:12px 0;font-size:14.5px}.field-box input:focus{outline:none;box-shadow:none}.field-action{border:none;background:transparent;padding:4px;color:var(--muted);display:flex;align-items:center}.field-action svg{width:18px;height:18px}.field-action:hover{color:var(--accent)}.login-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.check input{width:16px;height:16px;accent-color:var(--accent)}.linklike{border:none;background:none;padding:0;color:var(--accent);font-size:13px;font-weight:600}.linklike:hover{text-decoration:underline}.btn-hero{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border:none;border-radius:13px;background:linear-gradient(135deg,var(--accent-strong) 0%,var(--accent-dark) 100%);color:#fff;font-size:15.5px;font-weight:700;box-shadow:0 8px 20px #2f6fd04d}.btn-hero svg{width:19px;height:19px}.btn-hero:hover:not(:disabled){filter:brightness(1.06)}.btn-hero:disabled{opacity:.55;box-shadow:none}.login-foot{text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--border);padding-top:15px;margin-top:3px}.info-note{color:var(--accent-dark);background:var(--accent-light);border:1px solid #d3e2fb;border-radius:9px;padding:9px 12px;font-size:13px}.main{padding:22px clamp(16px,2vw,44px) 40px;width:100%;min-width:0}h2{margin:0 0 16px;font-size:18px;font-weight:600}.card>h3,.section-title{margin:0 0 4px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:9px}.card>h3:before,.section-title:before{content:"";width:3px;height:15px;border-radius:2px;background:var(--accent)}.section-sub{color:var(--muted);font-size:12.5px;margin:0 0 14px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.main>div>.toolbar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:16px}input,select,button,textarea{font-family:inherit;font-size:14px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}input.money-input{text-align:right;font-variant-numeric:tabular-nums}.sel-trigger{display:inline-flex;align-items:center;gap:8px;padding:7px 9px 7px 11px;min-height:34px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-weight:400;text-align:start}.sel-trigger:hover:not(:disabled){background:#fff;border-color:#c3d7fb}.sel-trigger.open,.sel-trigger:focus-visible{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 3px #4285f426}.sel-trigger:disabled{background:#f7f9fc;color:var(--muted)}.sel-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-trigger>svg{width:16px;height:16px;flex-shrink:0;color:var(--muted)}.sel-trigger.open>svg{transform:rotate(180deg)}.sel-menu{position:fixed;z-index:200;overflow-y:auto;padding:5px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #172b4d2e;animation:sel-in .12s ease-out}@keyframes sel-in{0%{opacity:0;transform:translateY(-4px)}}.sel-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:14px}.sel-item>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-item>svg{width:15px;height:15px;flex-shrink:0;color:var(--accent)}.sel-item.on{background:var(--accent-light)}.sel-item.picked{font-weight:600;color:var(--accent-dark)}.sel-item.off{color:#b6bfcc;cursor:not-allowed}.sel-item.off.on{background:transparent}.sel-group{padding:8px 10px 4px;font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.sel-empty{padding:12px;color:var(--muted);text-align:center}.sel-search{position:sticky;top:-5px;z-index:1;margin:-5px -5px 4px;padding:6px;display:flex;flex-direction:column;gap:6px;background:var(--card);border-bottom:1px solid var(--border)}.sel-search>input{width:100%}.sel-chips{display:flex;gap:4px}.sel-chips>button{flex:1;padding:5px 8px;font-size:13px}.sel-chips>button.on{background:var(--accent);border-color:var(--accent);color:#fff}.date-trigger .sel-value{font-variant-numeric:tabular-nums}.date-trigger .sel-value.muted{color:var(--muted)}.cal{position:fixed;z-index:200;width:268px;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #172b4d2e;animation:sel-in .12s ease-out}.cal-head{display:flex;align-items:center;gap:2px;margin-bottom:8px}.cal-title{flex:1;text-align:center;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-nav{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;flex-shrink:0;border:none;background:transparent;border-radius:7px;color:var(--muted)}.cal-nav:hover{background:var(--accent-light);color:var(--accent-dark)}.cal-nav svg{width:15px;height:15px}.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow span{text-align:center;font-size:11.5px;color:var(--muted);font-weight:600;padding-bottom:4px}.cal-day{padding:0;height:32px;border:none;background:transparent;border-radius:8px;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums;font-weight:400}.cal-day:hover:not(:disabled){background:var(--accent-light)}.cal-day.off{color:#c3cad4}.cal-day:disabled{color:#dbe0e7;cursor:not-allowed;background:transparent}.cal-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.cal-day.picked,.cal-day.picked:hover{background:var(--accent);color:#fff;font-weight:600;box-shadow:none}.cal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.cal-foot .linklike:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}.seg{display:inline-flex;border:1px solid #c3d7fb;border-radius:9px;overflow:hidden}.seg button{border:none;border-radius:0;padding:7px 16px;background:#fff;color:var(--accent-dark);font-weight:500}.seg button+button{border-inline-start:1px solid #c3d7fb}.seg button.on{background:var(--accent);color:#fff}.seg button:hover:not(.on){background:var(--accent-light)}.picker{position:relative}.picker-results{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:420px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 40px #1426422e;max-height:320px;overflow-y:auto;padding:4px}.picker-item{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:8px 11px;border-radius:7px;cursor:pointer}.picker-item:hover{background:var(--accent-light)}.picker-item .muted{font-size:12.5px}.picker-empty{padding:12px;color:var(--muted)}.pay-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 1000px){.pay-layout{grid-template-columns:1fr}}.pay-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--border)}.pay-row:last-child{border-bottom:none}.pay-row>span{color:var(--muted);font-size:13px}.pay-row>b{font-variant-numeric:tabular-nums}.pay-row.off>span,.pay-row.off>b{color:#b6bfcc}.pay-row.danger>b{color:var(--danger)}.pay-row.total{border-top:2px solid var(--border);border-bottom:none;margin-top:6px;padding-top:12px}.pay-row.total>span{color:var(--text);font-weight:600;font-size:14px}.pay-row.total>b{font-size:19px;color:var(--accent-dark)}.contract{background:#fff;color:#000;max-width:780px;margin:0 auto;padding:40px 46px;border:1px solid var(--border);border-radius:6px;font-size:13.5px;line-height:1.65}.ct-nation{text-align:center;font-weight:600;line-height:1.5}.ct-rule{width:180px;height:1px;background:#000;margin:8px auto 0}.ct-org{text-align:center;margin-top:14px;font-size:13px}.ct-title{text-align:center;font-size:21px;font-weight:700;margin:22px 0 4px;letter-spacing:.5px}.ct-no{text-align:center;margin-bottom:6px}.ct-intro{text-align:center;color:#333;margin:0 0 20px}.ct-party{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:16px}.ct-party-h{font-weight:700;border-bottom:1px solid #000;padding-bottom:4px;margin-bottom:8px}.ct-line{display:flex;gap:8px;align-items:baseline;margin-bottom:3px}.ct-line>span{color:#444;min-width:128px}.ct-line>b{font-weight:600;border-bottom:1px dotted #999;flex:1}.ct-lead{margin:16px 0}.ct-art{margin-bottom:16px;break-inside:avoid}.ct-art h2{font-size:14.5px;font-weight:700;margin:0 0 8px}.ct-art ol{margin:0;padding-inline-start:22px}.ct-art li{margin-bottom:4px}.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 22px}.ct-table{width:100%;border-collapse:collapse;font-size:12.5px;border:1px solid #000}.ct-table th,.ct-table td{border:1px solid #000;padding:5px 7px;background:#fff;color:#000}.ct-table th{background:#f0f0f0;font-weight:600}.ct-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px;text-align:center;break-inside:avoid}.ct-sign-line{border-bottom:1px solid #000;height:54px;margin-bottom:6px}.ct-page-break{break-before:page;height:0}.ct-attach{font-size:16px;font-weight:700;margin:26px 0 4px}.ct-attach-sub{color:#444;margin:0 0 12px;font-size:12.5px}.receipt{background:#fff;color:#000;margin:0 auto}.receipt.paper-A4{max-width:190mm}.receipt.paper-A5{max-width:132mm}.receipt.paper-R80{max-width:74mm;font-size:11px}.rc-copy{position:relative;border:1px solid var(--border);border-radius:6px;padding:14px 18px;font-size:13px;line-height:1.5;break-inside:avoid;background:#fff;color:#000}.paper-A4 .rc-copy{min-height:128mm}.rc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rc-sub{font-size:11.5px;color:#444}.rc-copy-label{font-size:11px;border:1px solid #000;padding:1px 8px;border-radius:10px;white-space:nowrap}.rc-title{text-align:center;font-size:18px;font-weight:700;margin:10px 0 6px}.rc-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;border-bottom:1px solid #000;padding-bottom:6px;margin-bottom:8px}.rc-line{display:flex;gap:8px;margin-bottom:2px}.rc-line>span{color:#444;min-width:120px}.rc-line>b{font-weight:600;flex:1}.rc-parts{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}.rc-parts td{padding:3px 0;border:none;border-bottom:1px dotted #999;background:#fff;color:#000}.rc-amount{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;border-top:2px solid #000;padding-top:8px}.rc-amount b{font-size:20px}.rc-words{font-style:italic;margin:2px 0 8px}.rc-sign{display:grid;grid-template-columns:repeat(var(--sign-cols, 2),1fr);gap:24px;text-align:center;margin-top:22px;font-size:12px}.rc-parts thead td{font-weight:600;border-bottom:1px solid #000}.rc-sign-line{border-bottom:1px solid #000;height:42px;margin-bottom:4px}.rc-cut{text-align:center;color:#888;margin:4mm 0;font-size:11px;overflow:hidden;white-space:nowrap}.rc-void{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:800;color:#b91c1c4d;transform:rotate(-18deg);pointer-events:none}.paper-R80 .rc-copy{border:none;padding:0;font-size:11px}.paper-R80 .rc-line,.paper-R80 .rc-meta{flex-direction:column;gap:0}.paper-R80 .rc-sign-line{height:30px}.paper-R80 .rc-line>span{min-width:0;font-size:10px}.paper-R80 .rc-sign{grid-template-columns:1fr;gap:6px}.paper-R80 .rc-amount b{font-size:16px}.pb-print{overflow:auto;padding-bottom:20px}.pb-sheet{position:relative;background:#fff;color:#000;border:1px dashed #9aa5b4}.pb-cell{position:absolute;white-space:nowrap;line-height:1.15}.pb-cell.r{transform:translate(-100%)}.pb-preview-h{margin:18px 0 8px;font-size:14px}@media print{.rc-copy{border:none;padding:0 2mm}.receipt{max-width:none}.pb-print{padding:0;overflow:visible}.pb-sheet{border:none}.sidebar,.topbar,.no-print{display:none!important}.main{padding:0!important;max-width:none!important}body{background:#fff}.contract{border:none;border-radius:0;max-width:none;margin:0;padding:0}@page{size:A4;margin:16mm 14mm}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#14264273;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;overflow-y:auto}.modal{background:var(--card);border-radius:var(--radius);width:100%;max-width:860px;box-shadow:0 24px 60px #14264247;animation:modal-in .14s ease-out}.modal.confirm{max-width:460px}.modal.wide{max-width:1040px}.modal-body>table{margin-top:0}.modal.wide .modal-body{max-height:min(62vh,640px);overflow-y:auto}.modal.wide .modal-body thead th{position:sticky;top:0;z-index:1}@keyframes modal-in{0%{opacity:0;transform:translateY(-8px)}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head strong{font-size:15px}.modal-head .muted{font-size:12.5px;margin-top:3px}.modal-head .linklike{font-size:16px;line-height:1;color:var(--muted)}.modal-body{padding:18px 20px}.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border)}.modal .form-grid>.form-section:first-child{margin-top:0;padding-top:0;border-top:none}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;align-items:end}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:12px;color:var(--muted);line-height:1.3}.field>input,.field>select,.field>textarea,.field>.sel-trigger{width:100%}.field.wide{grid-column:span 2}.field.w3{grid-column:span 3}.field.full{grid-column:1 / -1}@media (max-width: 1100px){.sidebar{width:210px}.sidebar nav a{padding-left:10px;padding-right:10px}.topbar{padding:12px 16px}}@media (max-width: 820px){.sidebar{width:172px}.brand{padding:12px;gap:9px}.brand-mark{width:42px;height:42px;font-size:13px}}.table-scroll{overflow-x:auto}@media print{.table-scroll{overflow:visible}}@media (max-width: 1200px){.main table th,.main table td{white-space:nowrap}}@media (max-width: 1100px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field.w3{grid-column:1 / -1}}@media (max-width: 820px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}.field.wide{grid-column:span 1}}.field.check{flex-direction:row;align-items:center;gap:9px;padding-bottom:8px}.field.check>input[type=checkbox]{width:16px;height:16px;flex:none;margin:0;accent-color:var(--accent)}.field.check>span{font-size:14px;color:var(--text);white-space:nowrap}.form-section{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.form-section button{font-size:12.5px;padding:5px 10px}.form-section.sub{border-top:none;padding-top:2px;margin-top:6px;color:var(--text);font-weight:500}.form-grid>.form-section:first-child{border-top:none;padding-top:0;margin-top:0}.view-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px}@media (max-width: 1100px){.view-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 820px){.view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.view-grid{grid-template-columns:1fr}.view-item.wide{grid-column:span 1}}.view-item{display:flex;flex-direction:column;gap:3px;min-width:0}.view-item>span{font-size:12px;color:var(--muted)}.view-item>strong{font-weight:500;overflow-wrap:anywhere}.view-item.wide{grid-column:span 2}.card:has(>.view-grid){background:radial-gradient(1000px 340px at 0% 0%,#d9e8fd 0%,transparent 70%),radial-gradient(800px 320px at 100% 100%,#d9f2e6 0%,transparent 65%),linear-gradient(160deg,#eef4ff,#f8fbff,#f3faf6);border-color:#d5e2f5}.card:has(>.view-grid) .form-section{border-top-color:#d6e2f3}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.kpi-strip>div{--tile: var(--accent);position:relative;overflow:hidden;background:#f8fafd;border:1px solid #edf1f7;border-radius:12px;padding:11px 14px 12px}.kpi-strip>div:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--tile);opacity:.85}.kpi-strip>div>.muted{font-size:11.5px;margin-bottom:4px}.kpi-strip>div>b{font-size:15.5px;font-variant-numeric:tabular-nums}.kpi-strip>div.bad{--tile: var(--danger);background:#fef4f4;border-color:#f8dcdc}.kpi-strip.pick>div{cursor:pointer;transition:border-color .15s,background .15s}.kpi-strip.pick>div:hover{border-color:#c3d7fb}.kpi-strip.pick>div.on{background:var(--accent-light);border-color:var(--accent)}.kpi-strip.pick>div:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kpi-strip>div.good{--tile: var(--ok)}@media print{.dash-card,.kpi-strip,.view-grid,.badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}.dash-card,.kpi-strip{break-inside:avoid}.chart-tip{display:none}}.toolbar>.dash-ico{width:38px;height:38px;border-radius:11px}.toolbar>.dash-ico+strong{font-size:15.5px;letter-spacing:.01em}.form-actions{grid-column:1 / -1;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border);padding-top:14px;margin-top:4px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 3px #4285f426}button{cursor:pointer;font-weight:500;color:var(--accent-dark);border-color:#c3d7fb;background:#fff}button:hover:not(:disabled){background:var(--accent-light);border-color:var(--accent)}button:disabled{color:var(--muted);border-color:var(--border);background:#f7f9fc;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:500}button.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}button:disabled{opacity:.45;cursor:not-allowed}button:has(>svg){display:inline-flex;align-items:center;gap:6px}button>svg{width:16px;height:16px;flex-shrink:0}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:18px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--accent);padding:16px 18px;box-shadow:var(--shadow)}.stat.blue{border-top-color:var(--info)}.stat.green{border-top-color:var(--ok)}.stat.amber{border-top-color:var(--warn)}.stat.red{border-top-color:var(--danger)}.stat .label{color:var(--muted);font-size:12.5px;margin-bottom:6px}.stat .value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.stat .value .unit{font-size:12px;font-weight:600;color:var(--muted);margin-right:5px}.stat .sub{color:var(--muted);font-size:12px;margin-top:6px}.dash-card{display:flex;flex-direction:column;gap:16px;padding:20px 22px}.dash-head{display:flex;align-items:center;gap:10px}.dash-ico{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:grid;place-items:center}.dash-ico svg{width:18px;height:18px}.dash-ico.blue{background:#eaf2fd;color:#2a78d6}.dash-ico.green{background:#e3f6ee;color:#12805a}.dash-ico.violet{background:#eeecfb;color:#5b49cf}.dash-ico.orange{background:#fdeee6;color:#c4501f}.dash-title{font-size:14px;font-weight:600;color:var(--text)}.dash-badge{margin-left:auto;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;font-weight:600;padding:4px 10px 4px 8px;border-radius:999px}.dash-badge svg{width:14px;height:14px}.dash-badge.ok{background:#e7f6ec;color:#15803d}.dash-badge.warn{background:#fef4e2;color:#b45309}.dash-badge.bad{background:#fdecec;color:#b91c1c}.dash-badges{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.dash-badges .dash-badge{margin-left:0;cursor:default}.dash-figure{font-size:30px;font-weight:700;line-height:1.15;letter-spacing:-.01em}.dash-figure small{font-size:14px;font-weight:600;color:var(--muted);margin-left:6px}.dash-sub{color:var(--muted);font-size:12.5px;margin-top:4px}.dash-body{flex:1}.dash-kpis{display:flex;flex-wrap:wrap;gap:14px 0;margin-bottom:18px}.dash-kpi{padding:0 28px;border-left:1px solid var(--border)}.dash-kpi:first-child{padding-left:0;border-left:0}.dash-kpi-label{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.dash-kpi-label i{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dash-kpi-value{display:block;font-size:24px;font-weight:700;margin-top:4px;line-height:1.2}.dash-kpi-value small{font-size:13px;font-weight:600;color:var(--muted);margin-left:5px}.dash-kpi-note{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.dash-meter{margin:-2px 0 18px;padding:14px 16px;border-radius:12px;background:#f8fafd}.dash-meter-head{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;color:var(--muted)}.dash-meter-head .dash-badge{margin-left:auto}.dash-meter-track{height:8px;border-radius:999px;margin:10px 0 8px;overflow:hidden}.dash-meter-track>span{display:block;height:100%;border-radius:999px;transition:width .3s}.dash-meter-track.ok{background:#d9f0e1}.dash-meter-track.ok>span{background:#16a34a}.dash-meter-track.warn{background:#fbe9c8}.dash-meter-track.warn>span{background:#d97706}.dash-meter-track.bad{background:#fadada}.dash-meter-track.bad>span{background:#dc2626}.dash-meter-note{font-size:12.5px;color:var(--muted)}.dash-kpi-part{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-top:3px;min-width:210px}.dash-kpi-part i{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dash-kpi-part b{margin-left:auto;padding-left:14px;color:var(--text);font-variant-numeric:tabular-nums}@media (max-width: 640px){.dash-kpi{padding:0;border-left:0;flex-basis:100%}}.dash-label{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:10px}.dash-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}.dash-split>div+div{border-left:1px solid var(--border);padding-left:22px;margin-left:22px}@media (max-width: 760px){.dash-split{grid-template-columns:1fr;gap:20px}.dash-split>div+div{border-left:0;padding-left:0;margin-left:0}}.chart-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.chart-legend{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.chart-legend-item{display:flex;align-items:baseline;gap:8px;font-size:13px;padding:5px 8px;border-radius:8px;transition:background .15s,opacity .15s}.chart-legend-item.on{background:var(--accent-light)}.chart-legend-item.dim{opacity:.55}.chart-legend-item i{width:10px;height:10px;border-radius:3px;flex-shrink:0;align-self:center}.chart-legend-item span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-legend-item b{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-legend-item em{font-style:normal;font-size:11.5px;color:var(--muted);min-width:42px;text-align:right;font-variant-numeric:tabular-nums}.chart-wrap .chart-legend{min-width:150px}.chart-wrap .chart-legend-item{flex-wrap:wrap;row-gap:2px}.chart-wrap .chart-legend-item span{flex:1 1 calc(100% - 18px);white-space:normal}.chart-wrap .chart-legend-item b{margin-left:18px}.chart-cols-plot{display:flex;align-items:flex-end;gap:8px;height:200px;padding-top:24px;border-bottom:1px solid #cfd6e0;background:linear-gradient(var(--border),var(--border)) 0 24px / 100% 1px no-repeat,linear-gradient(var(--border),var(--border)) 0 calc(24px + (100% - 24px) / 3) / 100% 1px no-repeat,linear-gradient(var(--border),var(--border)) 0 calc(24px + (100% - 24px) * 2 / 3) / 100% 1px no-repeat}.chart-col{flex:1;min-width:0;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-radius:8px 8px 0 0;transition:background .15s,opacity .15s}.chart-col:hover{background:#4285f40f}.chart-col-bar{display:block;width:min(56%,44px);border-radius:4px 4px 0 0;transition:height .3s}.chart-col-value{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;margin-bottom:5px;color:var(--text)}.chart-cols-labels{display:flex;gap:8px;margin-top:8px}.chart-cols-labels>span{flex:1;min-width:0;text-align:center;font-size:12px;line-height:1.45;color:var(--muted);transition:opacity .15s}.chart-cols-labels em{display:block;font-style:normal;font-size:11.5px;color:var(--text);opacity:.7;font-variant-numeric:tabular-nums}.chart-col.dim,.chart-cols-labels>span.dim{opacity:.45}.chart-trend{position:relative}.chart-tip{position:absolute;top:0;pointer-events:none;z-index:2;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #1c26341f;padding:8px 11px;min-width:120px}.chart-tip-head{font-size:11.5px;color:var(--muted);margin-bottom:4px}.chart-tip-row{display:flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap}.chart-tip-row i{width:12px;height:2px;border-radius:1px;flex-shrink:0}.chart-tip-row b{font-variant-numeric:tabular-nums}.chart-tip-row span{color:var(--muted);font-size:12px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:12px;font-size:13px}.pager button{padding:5px 12px}.dash-alerts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.dash-alert{display:flex;align-items:center;gap:10px;margin:0}.dash-alert svg{width:17px;height:17px;flex-shrink:0}.dash-alert .right{display:flex;gap:8px}.dash-alert a{color:inherit;font-weight:600;text-decoration:underline;white-space:nowrap}.profile-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.profile-avatar{width:64px;height:64px;border-radius:50%;flex-shrink:0;background:var(--accent);color:#fff;font-weight:700;font-size:22px;display:flex;align-items:center;justify-content:center}.profile-id{line-height:1.4;min-width:0}.profile-id strong{display:block;font-size:18px}.profile-id>span{display:block;font-size:13px}.profile-roles{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.profile-perms{display:flex;gap:5px;flex-wrap:wrap}.profile-perms .badge{font-family:Consolas,Courier New,monospace;font-size:11.5px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left}th{background:#f7f9fd;font-weight:600;white-space:nowrap;color:#47566b;font-size:13px}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#fafcff}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.total td{font-weight:700;background:#f2f6fc;border-top:2px solid var(--accent)}tr.voided td{color:var(--muted);text-decoration:line-through;background:#fbfbfc}tr.voided td .badge,tr.voided td button{text-decoration:none}tr.group td:first-child{font-weight:600}tr.sub td{color:var(--muted);font-size:13px;background:#fafcff}.archive-table td{vertical-align:middle}.archive-table tr.month-start td{border-top:2px solid #dfe6f2}.archive-table tbody tr:first-child td{border-top:none}.archive-table td.month-cell{vertical-align:top;background:#fafbfe;white-space:nowrap;border-right:1px solid var(--border)}.archive-table td.month-cell .muted{font-size:12px;margin-top:2px}.archive-table tbody tr:hover td.month-cell{background:#fafbfe}.archive-table td.file-name{font-family:Consolas,Courier New,monospace;font-size:12.5px;word-break:break-all}.archive-table tr.old-version td:not(.month-cell){opacity:.6}.archive-table td.row-actions{white-space:nowrap;text-align:right}.archive-table td.row-actions button+button{margin-left:6px}.archive-table .nowrap{white-space:nowrap}.archive-table .badge+.muted{font-size:12px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;margin-right:4px}.badge.DRAFT{background:#fef3c7;color:#92600e}.badge.POSTED{background:#dcfce7;color:#15803d}.badge.REVERSED{background:#fee2e2;color:#b91c1c}.badge.INFO{background:var(--accent-light);color:var(--accent-dark)}.empty{text-align:center;padding:40px 20px!important;color:var(--muted)}.empty svg{width:40px;height:40px;opacity:.35;margin-bottom:10px}.empty strong{display:block;font-size:14.5px;color:var(--text);margin-bottom:4px}.empty span{display:block;font-size:13px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:16px}.panel>.toolbar{margin:0;padding:14px 16px;border-bottom:1px solid var(--border)}.panel>table{border:none;border-radius:0;box-shadow:none}.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:9px 12px;margin:8px 0}.ok-note{color:#14532d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:9px 12px;margin:8px 0}.warn-note{color:#854d0e;background:#fefce8;border:1px solid #fde68a;border-radius:8px;padding:9px 12px;margin:8px 0}.warn-note ul{margin:4px 0 0;padding-inline-start:20px}.warn-note li{margin:2px 0}.muted{color:var(--muted)}.indent-1{padding-left:10px}.indent-2{padding-left:24px}.indent-3{padding-left:38px}.indent-4{padding-left:52px}.lines-table input,.lines-table select,.lines-table .sel-trigger{width:100%}.lines-table td{padding:6px 8px;vertical-align:top}.lines-table{overflow:visible}.lines-table tbody tr:hover td{background:transparent}.acc-cell{position:relative}.acc-picked{padding:4px 2px 0;font-size:12.5px;line-height:1.55}.acc-picked .no{font-variant-numeric:tabular-nums;color:var(--accent-dark)}.acc-picked .nm,.acc-picked span{color:var(--muted)}.acc-menu{position:absolute;z-index:30;top:100%;left:0;margin-top:4px;min-width:460px;max-height:264px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px #172b4d29;padding:5px}.acc-menu>div{display:flex;gap:10px;align-items:baseline;padding:7px 10px;border-radius:7px;cursor:pointer}.acc-menu>div.on{background:var(--accent-light)}.acc-menu .acc-head{padding:7px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:4px}.acc-menu b{font-variant-numeric:tabular-nums;min-width:68px;color:var(--accent-dark)}.acc-menu .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acc-menu .full{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.icon-btn{width:30px;height:30px;padding:0;line-height:1;font-size:16px}.fs-1{--sec: #1a56db;--sec-bg: #eef3ff}.fs-2{--sec: #b45309;--sec-bg: #fff7ec}.fs-3{--sec: #15803d;--sec-bg: #eefbf3}.fs-9{--sec: #7e22ce;--sec-bg: #f8f2ff}.fs-4{--sec: #be123c;--sec-bg: #fff1f4}.fs-5{--sec: #0e7490;--sec-bg: #ecfaff}tr.fs-head td{background:var(--sec-bg);color:var(--sec);font-weight:700;border-left:3px solid var(--sec);letter-spacing:.2px}tr.fs-row td:first-child{border-left:3px solid var(--sec-bg)}tr.fs-row:hover td{background:var(--sec-bg)}tr.fs-total td{background:var(--sec-bg);font-weight:700;color:var(--sec);border-top:1px solid var(--sec);border-bottom:1px solid var(--sec);border-left:3px solid var(--sec)}tr.fs-grand td{background:#eef2f7;font-weight:700;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}tr.fs-sub td{background:#fcfdff}tr.fs-sub .acct-name{color:var(--muted)}td.neg{color:#b91c1c}.acct-name{line-height:1.4}.acct-name.strong{font-weight:600}.acct-code{font-size:12px;color:var(--muted);font-family:Consolas,Courier New,monospace;font-variant-numeric:tabular-nums}.readonly-box{border:1px solid var(--border);border-radius:8px;background:#f7f9fd;padding:8px 11px;color:var(--text);min-height:38px;display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap}.readonly-box b{font-variant-numeric:tabular-nums;color:var(--accent-dark)}.right{margin-left:auto}pre.filepreview{background:#21324a;color:#dbe7fb;border-radius:8px;padding:14px;overflow-x:auto;font-size:12px;line-height:1.65;margin:0;font-family:Consolas,Courier New,monospace}@media print{.sidebar,.topbar,.toolbar,button{display:none!important}.sel-trigger{display:inline-flex!important;border:none;padding:0;background:none;min-height:0}.sel-trigger>svg,.sel-menu{display:none!important}.main{padding:0;max-width:none}.card,table{box-shadow:none;border:1px solid #ccc}body{background:#fff;font-family:Phetsarath OT,Noto Sans Lao,sans-serif}}.book-cover{--hp-navy: #173a6e;--hp-blue: #1f5596;--hp-cyan: #35a9dc;--hp-gold: #d4af37;--hp-gold-hi: #f1d27a;position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:26px minmax(0,1fr) auto;margin-bottom:16px;border-radius:16px;color:#fff;background:linear-gradient(118deg,var(--hp-navy) 0%,var(--hp-blue) 48%,#2b86c5 80%,var(--hp-cyan) 100%);box-shadow:0 12px 30px #173a6e47}.book-cover.deposit{background:linear-gradient(118deg,#0d5f8f,#1688bf 42%,#27a6d8 75%,#5ccbe4);box-shadow:0 12px 30px #0d5f8f47}.book-cover.loan{background:linear-gradient(118deg,#07152b,#0f264a 45%,#173a6e);box-shadow:0 12px 30px #07152b61,inset 0 0 0 1px #d4af3799}.book-cover.loan:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:0;pointer-events:none;border:1px solid rgba(212,175,55,.38);border-radius:11px}.book-cover.loan .book-title,.book-cover.loan .book-amount b{color:var(--hp-gold-hi)}.book-cover.loan .book-amount{background:linear-gradient(180deg,#d4af372e,#d4af370d);border-left-color:#d4af374d}.book-cover.loan .book-meta{border-top-color:#d4af374d}.book-body{position:relative}.book-mark{position:absolute;right:26px;top:50%;transform:translateY(-50%) rotate(-8deg);width:132px;height:132px;opacity:.11;color:#fff;pointer-events:none}.book-mark svg{width:100%;height:100%;stroke-width:1.2}.book-cover.loan .book-mark{color:var(--hp-gold-hi);opacity:.16}.book-cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:repeating-radial-gradient(circle at 88% 130%,rgba(255,255,255,.075) 0 1.5px,transparent 1.5px 13px),repeating-radial-gradient(circle at 62% -40%,rgba(255,255,255,.045) 0 1px,transparent 1px 17px),radial-gradient(520px 260px at 100% 0%,rgba(255,255,255,.16),transparent 70%)}.book-spine{background:linear-gradient(90deg,#00000047,#00000014);border-right:1px solid rgba(255,255,255,.12);position:relative}.book-spine:after{content:"";position:absolute;top:12px;bottom:12px;right:7px;border-right:2px dashed rgba(212,175,55,.65)}.book-body{padding:20px 24px 20px 22px;min-width:0}.book-top{display:flex;align-items:center;gap:9px;font-size:12.5px;opacity:.92}.book-tri{width:15px;height:13px;flex-shrink:0;background:linear-gradient(160deg,var(--hp-gold-hi),var(--hp-gold) 55%,#a8801f);clip-path:polygon(50% 0,100% 100%,0 100%)}.book-inst{font-weight:600;letter-spacing:.02em}.book-status{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.08em;padding:3px 10px;border-radius:999px;border:1px solid rgba(241,210,122,.75);color:var(--hp-gold-hi);background:#0000001f}.book-title{font-size:21px;font-weight:700;margin-top:10px}.book-number{margin-top:6px;font-size:22px;font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(0,0,0,.25)}.book-holder{margin-top:4px;font-size:16px;font-weight:500;opacity:.95}.book-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.18)}.book-meta>div{display:flex;flex-direction:column;gap:2px;min-width:0}.book-meta span{font-size:11.5px;opacity:.72}.book-meta b{font-size:13.5px;font-weight:600}.book-amount{align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:230px;padding:22px 28px;background:linear-gradient(180deg,#ffffff29,#ffffff0f);border-left:1px solid rgba(255,255,255,.16);box-shadow:inset 0 3px 0 var(--hp-gold)}.book-amount span{font-size:12.5px;opacity:.8}.book-amount b{font-size:27px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}.book-amount.multi{gap:0;padding:14px 26px}.book-amount.multi>div{display:flex;flex-direction:column;gap:2px;padding:8px 0}.book-amount.multi>div+div{border-top:1px solid rgba(255,255,255,.16)}.book-amount.multi b{font-size:19px}.book-cover.member{background:linear-gradient(118deg,#1a4580,#1f5596 40%,#2b86c5 75%,#3bb3d8)}@media (max-width: 760px){.book-cover{grid-template-columns:18px minmax(0,1fr)}.book-amount{grid-column:2;border-left:0;border-top:1px solid rgba(255,255,255,.16);min-width:0}}.card.book-page{position:relative;padding-top:30px;border-color:#d6e3f3;border-left:0;background:radial-gradient(circle at 12px 11px,var(--bg) 0 4px,transparent 4.5px) 0 0 / 26px 22px repeat-x,repeating-linear-gradient(0deg,rgba(31,85,150,.035) 0 1px,transparent 1px 28px),linear-gradient(180deg,#f7fbff,#fff 60%,#fbfaf4);box-shadow:inset 5px 0 #1f5596,inset 8px 0 #d4af37,var(--shadow)}.card.book-page .view-grid{padding-left:10px}.card.book-page .form-section{border-top-color:#dce7f4}.card.book-page .view-grid>.form-section:first-child{border-top:0;padding-top:0;margin-top:0}.card.book-page .view-grid>.form-section:not(.sub){color:#1f5596;font-weight:600;font-size:13.5px;justify-content:flex-start;gap:8px}.card.book-page .view-grid>.form-section:not(.sub):before{content:"";width:10px;height:9px;flex-shrink:0;background:linear-gradient(160deg,#f1d27a,#d4af37 55%,#a8801f);clip-path:polygon(50% 0,100% 100%,0 100%)}.card.book-page .view-item>strong{color:#173a6e}.card.book-page.deposit{box-shadow:inset 5px 0 #1688bf,inset 8px 0 #d4af37,var(--shadow)}.card.book-page.deposit .view-grid>.form-section:not(.sub){color:#0f74a8}.card.book-page.loan{box-shadow:inset 6px 0 #0f264a,inset 10px 0 #d4af37,var(--shadow);background:radial-gradient(circle at 12px 11px,var(--bg) 0 4px,transparent 4.5px) 0 0 / 26px 22px repeat-x,repeating-linear-gradient(0deg,rgba(15,38,74,.04) 0 1px,transparent 1px 28px),linear-gradient(180deg,#fbf9f1,#fff 55%,#fbf6e6)}.card.book-page.loan .view-grid>.form-section:not(.sub){color:#0f264a}.card.book-page.loan .view-item>strong{color:#0f264a}@media print{.book-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}}@media screen{:root[data-theme=dark]{color-scheme:dark;--accent: #5b9bff;--accent-strong: #5b9bff;--accent-dark: #8cb9ff;--accent-light: #1c2b44;--border: #2a3649;--text: #e4eaf3;--muted: #8e9cb1;--bg: #0d141f;--card: #162030;--ok: #3ccf7f;--warn: #f2b441;--danger: #f26b6b;--info: #6c9cff;--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 6px 18px rgba(0, 0, 0, .35);--ok-text: #5fd896;--danger-text: #ff8a8a;--axis: #3a475b;--axis-strong: #5a6880;--class-a: #4cd08a;--class-b: #e2c044;--class-c: #f29a55;--class-d: #ff7a7a;--class-e: #ff6b8f;--class-badge-bg: #222e40;--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300}:where(:root[data-theme=dark]) .sidebar{--accent: #4285f4;--accent-strong: #4285f4;--accent-dark: #3574db;--accent-light: #eef4fe}:where(:root[data-theme=dark]) .topbar .title .behind{color:#f5c264}:where(:root[data-theme=dark]) button.logout:hover{background:#3c1b1f;border-color:#5a2a30}:where(:root[data-theme=dark]) .acc-menu{background:var(--card)}:where(:root[data-theme=dark]) .login-page{background:radial-gradient(1000px 600px at 20% -10%,#16284a 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#132242 0%,transparent 55%),var(--bg)}:where(:root[data-theme=dark]) .login-card{border-color:var(--border)}:where(:root[data-theme=dark]) .lang-pill{background:#1b2738;border-color:var(--border)}:where(:root[data-theme=dark]) .field-box{background:#1b2738;border-color:var(--border)}:where(:root[data-theme=dark]) .field-box:focus-within{background:var(--card)}:where(:root[data-theme=dark]) .brand-logo img{background:#fff;padding:10px 14px;border-radius:14px}:where(:root[data-theme=dark]) .brand-logo.round img{padding:0}:where(:root[data-theme=dark]) input,:where(:root[data-theme=dark]) select,:where(:root[data-theme=dark]) textarea,:where(:root[data-theme=dark]) button,:where(:root[data-theme=dark]) .sel-trigger,:where(:root[data-theme=dark]) .sel-trigger:hover:not(:disabled),:where(:root[data-theme=dark]) .seg button{background:var(--card)}:where(:root[data-theme=dark]) button,:where(:root[data-theme=dark]) .sel-trigger:hover:not(:disabled),:where(:root[data-theme=dark]) .seg,:where(:root[data-theme=dark]) .seg button+button{border-color:#34507c}:where(:root[data-theme=dark]) button:hover:not(:disabled){background:var(--accent-light);border-color:var(--accent)}:where(:root[data-theme=dark]) button.primary,:where(:root[data-theme=dark]) .seg button.on,:where(:root[data-theme=dark]) .sel-chips>button.on,:where(:root[data-theme=dark]) .lang-switch button.on{background:#3f7fe6;border-color:#3f7fe6;color:#fff}:where(:root[data-theme=dark]) button.primary:hover:not(:disabled){background:#5b9bff;border-color:#5b9bff}:where(:root[data-theme=dark]) .lang-switch button,:where(:root[data-theme=dark]) .theme-toggle{background:var(--bg);border-color:var(--border)}:where(:root[data-theme=dark]) button:disabled,:where(:root[data-theme=dark]) .sel-trigger:disabled{background:#1b2738}:where(:root[data-theme=dark]) .sel-item.off,:where(:root[data-theme=dark]) .pay-row.off>span,:where(:root[data-theme=dark]) .pay-row.off>b,:where(:root[data-theme=dark]) .cal-day.off{color:#5a6780}:where(:root[data-theme=dark]) .cal-day:disabled{color:#3d4859}:where(:root[data-theme=dark]) .info-note{border-color:#34507c}:where(:root[data-theme=dark]) .readonly-box{background:#1b2738}:where(:root[data-theme=dark]) th{background:#1b2738;color:#a9b6c9}:where(:root[data-theme=dark]) tbody tr:hover td,:where(:root[data-theme=dark]) tr.sub td{background:#1d2a3d}:where(:root[data-theme=dark]) tr.total td,:where(:root[data-theme=dark]) tr.fs-grand td{background:#1e2b40}:where(:root[data-theme=dark]) tr.voided td{background:#141c29}:where(:root[data-theme=dark]) tr.fs-sub td{background:#182335}:where(:root[data-theme=dark]) td.neg{color:var(--danger-text)}:where(:root[data-theme=dark]) .archive-table tr.month-start td{border-top-color:#2c3a50}:where(:root[data-theme=dark]) .archive-table td.month-cell,:where(:root[data-theme=dark]) .archive-table tbody tr:hover td.month-cell{background:#182335}:where(:root[data-theme=dark]) .badge.DRAFT{background:#3a2d12;color:#f5c264}:where(:root[data-theme=dark]) .badge.POSTED{background:#163526;color:#5fd896}:where(:root[data-theme=dark]) .badge.REVERSED{background:#3c1b1f;color:#ff8a8a}:where(:root[data-theme=dark]) .error{color:#ff9b9b;background:#2e171b;border-color:#5a2a30}:where(:root[data-theme=dark]) .ok-note{color:#6fe0a2;background:#12291e;border-color:#22553a}:where(:root[data-theme=dark]) .warn-note{color:#f5c264;background:#2c2412;border-color:#5c4a1c}:where(:root[data-theme=dark]) .fs-1{--sec: #6f9bff;--sec-bg: #18243d}:where(:root[data-theme=dark]) .fs-2{--sec: #f0a457;--sec-bg: #2e2214}:where(:root[data-theme=dark]) .fs-3{--sec: #4fcf86;--sec-bg: #132a1f}:where(:root[data-theme=dark]) .fs-9{--sec: #c08cff;--sec-bg: #271a38}:where(:root[data-theme=dark]) .fs-4{--sec: #ff7a95;--sec-bg: #33161e}:where(:root[data-theme=dark]) .fs-5{--sec: #4cc3dc;--sec-bg: #112830}:where(:root[data-theme=dark]) .card:has(>.view-grid){background:radial-gradient(1000px 340px at 0% 0%,#1a2f52 0%,transparent 70%),radial-gradient(800px 320px at 100% 100%,#15352a 0%,transparent 65%),linear-gradient(160deg,#172338,#162030,#152620);border-color:#2c3d57}:where(:root[data-theme=dark]) .card:has(>.view-grid) .form-section{border-top-color:#2c3a50}:where(:root[data-theme=dark]) .kpi-strip>div{background:#1b2738;border-color:var(--border)}:where(:root[data-theme=dark]) .kpi-strip.pick>div:hover{border-color:#34507c}:where(:root[data-theme=dark]) .kpi-strip>div.bad{background:#2e171b;border-color:#5a2a30}:where(:root[data-theme=dark]) .dash-ico.blue{background:#1c2d48;color:#79adff}:where(:root[data-theme=dark]) .dash-ico.green{background:#143528;color:#4fd39a}:where(:root[data-theme=dark]) .dash-ico.violet{background:#262447;color:#a99cff}:where(:root[data-theme=dark]) .dash-ico.orange{background:#3a2418;color:#ff9a66}:where(:root[data-theme=dark]) .dash-badge.ok{background:#163526;color:#5fd896}:where(:root[data-theme=dark]) .dash-badge.warn{background:#3a2d12;color:#f5c264}:where(:root[data-theme=dark]) .dash-badge.bad{background:#3c1b1f;color:#ff8a8a}:where(:root[data-theme=dark]) .dash-meter{background:#1b2738}:where(:root[data-theme=dark]) .dash-meter-track.ok{background:#17402a}:where(:root[data-theme=dark]) .dash-meter-track.warn{background:#43341a}:where(:root[data-theme=dark]) .dash-meter-track.bad{background:#4a2226}:where(:root[data-theme=dark]) .chart-cols-plot{border-bottom-color:var(--axis)}:where(:root[data-theme=dark]) .chart-col:hover{background:#5b9bff14}:where(:root[data-theme=dark]) .chart-tip{box-shadow:0 8px 24px #00000080}:where(:root[data-theme=dark]) .card.book-page{border-color:#2c3d57;background:radial-gradient(circle at 12px 11px,var(--bg) 0 4px,transparent 4.5px) 0 0 / 26px 22px repeat-x,repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 28px),linear-gradient(180deg,#172338,#162030 60%,#1a1f24)}:where(:root[data-theme=dark]) .card.book-page .form-section{border-top-color:#2c3a50}:where(:root[data-theme=dark]) .card.book-page .view-grid>.form-section:not(.sub){color:#7fb5f0}:where(:root[data-theme=dark]) .card.book-page .view-item>strong{color:var(--text)}:where(:root[data-theme=dark]) .card.book-page.deposit .view-grid>.form-section:not(.sub){color:#6fd0f0}:where(:root[data-theme=dark]) .card.book-page.loan .view-grid>.form-section:not(.sub){color:#f1d27a}}.theme-toggle{display:inline-grid;place-items:center;width:32px;height:30px;padding:0;border-radius:999px;background:var(--bg);border-color:var(--border);color:var(--muted)}.theme-toggle svg{width:16px;height:16px}.theme-toggle:hover:not(:disabled){color:var(--accent)}
