:root{font-family:Segoe UI,Arial,sans-serif;color:#243447;background:#f3f5f8;font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:#005fae}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #da9c28}[hidden]{display:none!important}.app-header{height:82px;background:#fff;border-bottom:3px solid #0069ba;display:flex;align-items:center;gap:22px;padding:10px 28px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#123251;font-size:23px;font-weight:700}.brand img{width:57px;height:57px;object-fit:contain;border-radius:4px}.brand small{display:block;font-size:11px;font-weight:400;color:#607084;margin-top:3px}.header-context{margin-left:auto;text-align:right;font-size:13px}.header-context small{display:block;color:#69788a;margin-top:5px}.app-shell{display:flex;min-height:calc(100vh - 123px)}.sidebar{width:280px;flex:0 0 280px;background:#172e47;color:#e9eff5;padding:22px 16px;max-height:calc(100vh - 82px);overflow-y:auto;position:sticky;top:0}.sidebar-heading{color:#aabbd0;font-size:11px;letter-spacing:1.5px;margin-bottom:15px}.home-link{display:block;background:#28445f;color:#fff;border-left:3px solid #3397e8;padding:12px;text-decoration:none;border-radius:3px}.menu-search-label{color:#c9d6e3;font-size:12px}.sidebar input{background:#fff;margin-bottom:18px;padding:10px}.module-group{border-bottom:1px solid #354a60;padding:8px 0}.module-group summary{cursor:pointer;font-weight:600;padding:9px 3px}.menu-category h3{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#9cb6d0;margin:17px 10px 5px}.menu-entry{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;color:#e5edf6;text-decoration:none;font-size:13px;line-height:1.4;border-radius:3px}.menu-entry:hover{background:#2a455f}.pending-dot{color:#abc0d6}.sidebar-note,.sidebar-empty,#no-menu-match{font-size:12px;color:#b9cadb;line-height:1.6;margin:22px 0}.signout{background:transparent;border:1px solid #64809b;color:#fff;width:100%;margin-top:15px}.menu-toggle{background:#eef3f8;color:#243d55;padding:9px 12px;border:1px solid #d4dee8;margin:0;white-space:nowrap}.menu-hidden .sidebar{display:none}main{flex:1;min-width:0;padding:30px 36px;max-width:1600px}.page-heading{margin-bottom:28px}h1{font-size:28px;font-weight:600;margin:10px 0 12px;letter-spacing:-.5px}h2{font-size:19px;font-weight:600;margin:0 0 10px}h3{font-size:16px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.3px;color:#0068b5}.muted{color:#647387;line-height:1.6}.panel{background:#fff;border:1px solid #dae1e9;border-radius:5px;padding:25px;margin-bottom:22px}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.summary{background:#fff;border:1px solid #dae1e9;border-top:3px solid #54789c;padding:18px 22px;border-radius:4px}.summary span{display:block;color:#657589;font-size:12px}.summary strong{display:block;font-size:26px;margin-top:10px;font-weight:600}.summary .session-status{font-size:17px;color:#376249}.departments{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:15px;margin-top:20px}.department{border:1px solid #dce3eb;padding:20px;border-radius:4px}.department h3{margin:12px 0}.notice{background:#eaf1f8;border-left:3px solid #417eb2;padding:17px 20px;line-height:1.6;margin-bottom:20px}.notice p{margin:6px 0 0}.status-label{display:inline-block;background:#fff2dc;color:#795514;font-size:12px;padding:6px 10px;border-radius:3px;margin-bottom:18px}.login-page main{width:100%;max-width:none;padding:45px 20px}.login-card{background:#fff;border:1px solid #d9e1ea;border-radius:6px;max-width:450px;margin:0 auto;padding:28px 34px}.login-logo{display:block;width:100px;height:100px;object-fit:contain;margin:0 auto 23px;border-radius:4px}.login-card h1{font-size:24px}.login-card .eyebrow{text-align:center}label{display:block;margin:18px 0 7px;font-size:13px;font-weight:600}input,select{width:100%;padding:12px;border:1px solid #b8c6d5;border-radius:4px;background:#fff;color:#243447}button,.button-link{cursor:pointer;border:0;border-radius:4px;padding:11px 16px;font-weight:600;display:inline-block;text-decoration:none}.primary,.button-link{background:#0066b3;color:white}.login-card button{width:100%;margin-top:25px}.secondary{background:#eaf1f8;color:#195b92;border:1px solid #bdcfe1}.validation{color:#ab2430;line-height:1.6}.validation ul{padding-left:20px}.validation:empty{display:none}footer{height:41px;padding:12px 28px;background:#fff;border-top:1px solid #dce3eb;font-size:11px;color:#63748a;display:flex;justify-content:space-between}@media(max-width:800px){.app-header{padding:10px 14px;gap:10px}.brand small{display:none}.brand{font-size:18px}.brand img{width:45px;height:45px}.header-context{font-size:11px}.menu-toggle span{display:none}.sidebar{position:fixed;top:82px;bottom:0;left:0;z-index:10;max-height:none;box-shadow:8px 0 20px #10223633}main{padding:22px 18px}.summary-row{grid-template-columns:1fr;gap:10px}.summary{padding:12px 18px}.summary strong{font-size:22px}.login-card{padding:24px}h1{font-size:24px}}

/* Nested navigation: compact category groups inside each module. */
.menu-category{margin:4px 0 4px 10px;border-left:1px solid #40566e;padding-left:8px}
.menu-category>summary{font-size:12px;color:#c7d8ea;font-weight:600;padding:9px 5px;letter-spacing:.2px}
.menu-category>summary:hover{background:#28445f;border-radius:3px;color:#fff}
.menu-category[open]>summary{color:#fff}
.menu-category .menu-entry{margin-left:6px;padding:8px 9px}

.transaction-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;margin-top:20px}
.transaction-card{display:flex;flex-direction:column;justify-content:space-between;gap:22px;border:1px solid #d4deea;border-left:3px solid #397aaf;border-radius:4px;padding:19px;text-decoration:none;background:#fff;color:#214566;min-height:112px}
.transaction-card:hover{background:#f0f5fa;border-color:#86a9c8}
.transaction-card strong{font-size:14px;line-height:1.5;font-weight:600}
.transaction-card>span{display:flex;justify-content:space-between;font-size:11px;color:#6d7885}
.users-toolbar{display:flex;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:22px}.user-search{display:flex;align-items:end;gap:10px;flex:1;flex-wrap:wrap}.user-search label{width:100%;margin:0}.user-search input{max-width:320px}.table-scroll{overflow-x:auto}.users-table{border-collapse:collapse;width:100%;font-size:13px}.users-table th{text-align:left;background:#eff3f7;font-weight:600}.users-table th,.users-table td{padding:14px 12px;border-bottom:1px solid #e0e6ed}.account-status{color:#285c43;background:#ebf5ee;padding:4px 8px;border-radius:3px;font-size:12px}.account-status.blocked{color:#942833;background:#fbecef}.pagination{display:flex;gap:20px;align-items:center;margin-top:20px}.pagination span{margin-right:auto;color:#647387}.user-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:5px 22px}.group-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.group-checks label{font-weight:400;display:flex;align-items:center;gap:9px}.group-checks input,.delete-user input[type=checkbox]{width:auto}.user-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:22px 0}.primary{background:#0066b3;color:#fff}.danger{background:#a52c38;color:#fff;margin-top:18px}.delete-user{margin-top:30px;border-color:#e5c5c9}.delete-user summary{cursor:pointer;color:#982b35;font-weight:600}.password-panel{max-width:550px}input:read-only,select:disabled{background:#f3f5f8;color:#63748a}input[type=password]:read-only{background:white}@media(max-width:600px){.user-fields{grid-template-columns:1fr}.users-toolbar{align-items:start}.user-actions{gap:12px}}
.permissions-table input[type=checkbox]{width:18px;height:18px}.permissions-table th:not(:first-child),.permissions-table td:not(:first-child){text-align:center}.permissions-table td:first-child{min-width:230px}.role-category>summary{cursor:pointer;font-weight:600;margin-bottom:14px}.role-filter{max-width:420px;margin-bottom:20px}.module-selector select{max-width:420px;margin-right:12px}.module-selector button{margin-top:12px}

.price-table input { min-width: 115px; } .price-table th:first-child { min-width: 230px; } .price-table select { min-width: 85px; }
