:root{color:#1b1f23;background:#f4f6f3;font-family:Inter,Segoe UI,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}.loginShell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e8eee2,#f7f3e8 52%,#e7f0ef);padding:24px}.loginPanel{width:min(420px,100%);display:grid;gap:18px;padding:28px;border:1px solid #d9dfd4;border-radius:8px;background:#fffdf8;box-shadow:0 20px 60px #3944301f}.loginPanel h1,.page h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:0}.eyebrow{margin:0 0 6px;color:#6f766b;font-size:12px;font-weight:700;text-transform:uppercase}.field{min-width:170px;display:grid;gap:6px;color:#4e5749;font-size:13px;font-weight:700}input,select{width:100%;min-height:38px;border:1px solid #cbd3c4;border-radius:6px;background:#fff;color:#1b1f23;padding:8px 10px}input:focus,select:focus{outline:2px solid #7fa36b;outline-offset:1px}.btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cbd3c4;border-radius:6px;padding:8px 12px;background:#fff;color:#1d2a19;cursor:pointer;white-space:nowrap}.btn:hover{background:#f0f4ec}.btn.primary{border-color:#496a3d;background:#496a3d;color:#fff}.btn.danger{border-color:#c9a7a0;color:#8a2d20}.btn:disabled{opacity:.55;cursor:not-allowed}.notice{border-radius:6px;padding:10px 12px;background:#fff3ef;color:#7a2d1c}.notice.info{background:#eef5ee;color:#40533a}.bootError{position:fixed;left:16px;bottom:16px;display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:6px;background:#fff3ef;color:#7a2d1c}.appShell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:20px 14px;background:#25311f;color:#f7fbf4}.brand{padding:8px 10px;font-size:22px;font-weight:800}nav{display:grid;gap:4px}nav button{width:100%;min-height:40px;display:flex;align-items:center;gap:10px;border:0;border-radius:6px;padding:9px 10px;background:transparent;color:#dfe9d9;cursor:pointer}nav button:hover,nav button.active{background:#3a4b32;color:#fff}.contentShell{min-width:0}header{min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid #dde3d8;background:#fffdf8}.page{display:grid;gap:18px;padding:24px;max-width:1560px;margin:0 auto}.pageTitle{display:flex;align-items:center;justify-content:space-between;gap:14px}.actions,.rowActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.metrics.compact{grid-template-columns:repeat(2,minmax(150px,220px))}.metric,.panel{border:1px solid #d8dfd2;border-radius:8px;background:#fffdf8;box-shadow:0 10px 24px #2734210f}.metric{display:grid;gap:8px;padding:16px}.metric span{color:#6b7466;font-size:13px}.metric strong{font-size:24px;letter-spacing:0}.metric.ok strong{color:#2f6f3a}.metric.bad strong,.dangerText{color:#a23a2b}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid2 .tableWrap{overflow:hidden}.grid2 table{min-width:0;table-layout:fixed}.grid2 th,.grid2 td{white-space:normal}.panel{min-width:0;display:grid;gap:12px;padding:16px}.panel h2{margin:0;font-size:18px;letter-spacing:0}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.panelActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.filters,.inlineForm{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:14px;border:1px solid #d8dfd2;border-radius:8px;background:#fffdf8}.filters .field{flex:1 1 180px}.filters .field:has(input[type=date]){flex:0 1 160px}.adminUserForm .field{flex:1 1 190px}.adminUserForm .field:first-child{flex-basis:240px}.tableWrap{width:100%;overflow:auto;border:1px solid #d8dfd2;border-radius:8px;background:#fff;scrollbar-gutter:stable}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:10px 12px;border:1px solid #e1e7dc;text-align:left;vertical-align:top;overflow-wrap:anywhere}th{position:sticky;top:0;background:#edf4e8;color:#4d5748;font-size:12px;text-transform:uppercase;z-index:1}td{font-size:14px}tr:last-child td{border-bottom:0}tbody tr:nth-child(2n) td{background:#fbfcf8}.totalText{color:#1d2a19}.reportTable tbody tr:last-child td{background:#eef6ea;font-weight:800}.num{text-align:right;white-space:nowrap}.empty{color:#788173;text-align:center}.reportFilters{align-items:end}.reportTabs{width:100%;display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid #cbd3c4;border-radius:8px;background:#eef3ea}.reportTabs button{flex:1 1 120px;min-height:34px;border:0;border-radius:6px;padding:7px 12px;background:transparent;color:#34452e;cursor:pointer}.reportTabs button.active{background:#fff;color:#1d2a19;box-shadow:0 1px 4px #2d3b271f}.reportMetrics .metric strong{font-size:21px}.reportContext{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #cbd8c4;border-radius:8px;background:#eef6ea}.reportContext div{display:grid;gap:3px}.reportContext span{color:#5f6b59;font-size:12px;font-weight:700;text-transform:uppercase}.reportContext strong{color:#1d2a19}.reportGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reportGrid>.panel:nth-child(3){grid-column:1 / -1}.reportGrid.single{grid-template-columns:1fr}.reportGrid.single>.panel{grid-column:auto}.subReport{display:grid;gap:8px}.subReport h3{margin:4px 0 0;font-size:15px;color:#34452e}.reportTable{overflow:visible}.reportTable table{min-width:0;table-layout:fixed}.reportTable th{position:static}.reportTable th,.reportTable td{white-space:normal;overflow-wrap:anywhere}.reportTable .num{white-space:normal}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#eef3ea;color:#34452e;white-space:nowrap}.tabs{display:inline-flex;border:1px solid #cbd3c4;border-radius:7px;overflow:hidden}.tabs button{min-height:36px;border:0;border-right:1px solid #cbd3c4;padding:8px 12px;background:#fff;cursor:pointer}.tabs button:last-child{border-right:0}.tabs button.active{background:#496a3d;color:#fff}.ttnFrame{width:100%;min-height:720px;border:1px solid #d8dfd2;border-radius:8px;background:#fff}.settingsGrid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px 16px;overflow-wrap:anywhere}.settingsGrid span{color:#667060}@media (max-width: 960px){.appShell{grid-template-columns:1fr}aside{position:static;height:auto}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.reportGrid,.metrics{grid-template-columns:1fr}.pageTitle,header{align-items:flex-start;flex-direction:column}}@media (max-width: 560px){.page,header{padding:16px}aside{gap:12px;padding:16px 14px}.brand{font-size:20px}nav{grid-template-columns:repeat(2,minmax(0,1fr))}nav button{min-height:38px;padding:8px 9px}.field,.inlineForm .btn,.filters .btn{width:100%}.reportTabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.reportTabs button{min-width:0}.reportContext{align-items:stretch;flex-direction:column}}@media (max-width: 720px){.reportTable{border:0;background:transparent}.reportTable table,.reportTable tbody,.reportTable tr,.reportTable td{display:block;width:100%}.reportTable thead{display:none}.reportTable tr{margin-bottom:10px;padding:8px 10px;border:1px solid #d8dfd2;border-radius:8px;background:#fff}.reportTable td{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e7ece2;padding:8px 0}.reportTable td:last-child{border-bottom:0}.reportTable td:before{content:attr(data-label);flex:0 0 42%;color:#606b5c;font-weight:700}.reportTable .empty{display:block;text-align:center}.reportTable .empty:before{content:""}}
