:root{color-scheme:light;font-family:Inter,Segoe UI Variable,Segoe UI,Arial,sans-serif;font-size:13px;color:#172033;background:#f5f8f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{margin:0;min-width:320px;background:linear-gradient(135deg,#edf7f0f5,#fffaf2eb),#f7faf7}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease,border-color .18s ease}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.7}input,select,textarea{width:100%;border:1px solid #d6e0dc;border-radius:8px;padding:10px 11px;color:#172033;background:#fff;outline:none}textarea{min-height:86px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a24}.app-shell{height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr);overflow:hidden;transition:grid-template-columns .18s ease}.app-shell.sidebar-collapsed{grid-template-columns:84px minmax(0,1fr)}.sidebar{min-height:0;height:100vh;padding:16px;background:linear-gradient(180deg,#004f34,#00351f);color:#f8fff8;display:flex;flex-direction:column;gap:18px;overflow:hidden;box-shadow:14px 0 38px #064e3b29}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand,.login-brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#c8ff80,#81df67);color:#064e3b;font-weight:850;box-shadow:0 12px 24px #81df6738;flex:0 0 auto}.brand strong,.login-brand strong{display:block;font-size:18px;font-weight:850;line-height:1.1}.brand span,.login-brand span{display:block;color:#d7fbe4;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle,.mobile-top-menu-button{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#ffffff1a;color:#f8fff8}.sidebar-toggle:hover,.mobile-top-menu-button:hover{background:#ffffff2e}.mobile-menu-close,.mobile-top-menu-button,.mobile-sidebar-backdrop{display:none}.sidebar nav{min-height:0;display:grid;gap:7px;overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{width:0}.sidebar nav button,.profile-button{width:100%;min-height:42px;display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;color:#f7fff9;background:transparent;text-align:left}.sidebar nav button:hover,.sidebar nav button.active,.profile-button:hover{background:linear-gradient(135deg,#45ad4f,#188348);box-shadow:0 14px 30px #05261638}.profile-button{margin-top:auto}.profile-button>span{width:38px;height:38px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;background:#d9f99d;color:#064e3b;font-weight:850}.profile-button strong,.profile-button small{display:block}.profile-button small{color:#d7fbe4}.sidebar-collapsed .brand div:last-child,.sidebar-collapsed .sidebar nav span,.sidebar-collapsed .profile-button div,.sidebar-collapsed .desktop-collapse>span{display:none}.sidebar-collapsed .sidebar nav button,.sidebar-collapsed .profile-button,.sidebar-collapsed .brand{justify-content:center}.main{min-width:0;height:100vh;padding:20px;overflow:hidden;display:flex;flex-direction:column}.topbar{min-height:72px;flex:0 0 auto;margin-bottom:18px;padding:13px 16px;border:1px solid #d9e4df;border-radius:0;background:#fffffff0;box-shadow:0 16px 42px #0f172a0f;display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar-title{min-width:0;margin-right:auto}.topbar-title p{margin:0 0 3px;color:#58708e;font-size:13px}.topbar-title h1{margin:0;font-size:26px;line-height:1.1;letter-spacing:0}.icon-text,.primary-action,.secondary-action,.table-action{min-height:38px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750}.icon-text{padding:0 15px;color:#183047;background:#eef7f0}.icon-text:hover{background:#dff1e5}.primary-action{padding:0 16px;color:#fff;background:linear-gradient(135deg,#48ad4f,#1a8d4b);box-shadow:0 12px 22px #228b4938}.primary-action:hover{box-shadow:0 16px 28px #228b4947}.secondary-action{padding:0 14px;color:#24572a;background:#eef9e6;border:1px solid #b7dc9c}.secondary-action:hover{background:#e2f7cd}.view-transition{flex:1 1 auto;min-height:0;overflow:hidden;animation:viewIn .22s ease both}@keyframes viewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.view-stack{height:100%;min-height:0;display:flex;flex-direction:column;gap:16px;overflow:auto;scrollbar-width:none;padding-right:2px}.view-stack::-webkit-scrollbar{width:0}.panel{border:1px solid #d9e4df;background:#fffffff0;padding:18px;box-shadow:0 18px 42px #0f172a0d}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{margin:0;font-size:18px;letter-spacing:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{min-height:132px;padding:20px;border:1px solid #d8e3dd;background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;box-shadow:0 15px 36px #0f172a0d}.metric-card:hover{transform:translateY(-2px);border-color:#45ad4f;box-shadow:0 18px 42px #228b4921}.metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:#0f6b42;background:#e6f8e9}.metric-card.amber .metric-icon{color:#9a4d08;background:#fff0c6}.metric-card.red .metric-icon{color:#991b1b;background:#fee2e2}.metric-card.purple .metric-icon{color:#6d28d9;background:#ede9fe}.metric-card span:not(.metric-icon){color:#5d718d}.metric-card strong{font-size:25px;line-height:1.1}.month-chart{height:230px;min-height:220px;display:grid;grid-template-columns:repeat(6,minmax(34px,1fr));align-items:end;gap:14px;padding:18px 10px 6px;border:1px solid #dbe6e1;background:linear-gradient(180deg,#f7fcf9e6,#fffffff5)}.month-bar{height:100%;min-height:0;display:grid;grid-template-rows:1fr auto;align-items:end;gap:8px}.month-bar span{width:100%;min-height:8px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#7ddf69,#15803d)}.month-bar small{color:#60728e;text-align:center;font-weight:700}.search-box{width:min(820px,100%);min-height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid #d8e2de;background:#fff;margin-bottom:14px}.search-box input{border:0;box-shadow:none;padding:0;min-height:42px}.profile-card-grid{display:grid;gap:10px;margin-bottom:12px}.profile-card{width:100%;min-height:74px;padding:13px 16px;border-radius:12px;border:1px solid #b8dfbf;color:#fff;background:linear-gradient(135deg,#0e7e44,#0a6437);display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;box-shadow:0 12px 24px #075f3029}.profile-card:hover,.profile-card.active{background:linear-gradient(135deg,#159451,#064e3b);box-shadow:0 18px 34px #075f303d}.profile-card svg{width:34px;height:34px;padding:7px;border-radius:50%;border:1px solid rgba(255,255,255,.58);flex:0 0 auto;transition:transform .18s ease}.profile-card.active svg{transform:rotate(180deg)}.profile-card strong,.profile-card small{display:block}.profile-card small{margin-top:4px;color:#d8f7df}.profile-card.vehicle{background:linear-gradient(135deg,#115e59,#0f766e)}.table-wrap{width:100%;min-height:170px;max-height:44vh;overflow:auto;scrollbar-width:thin;border-top:1px solid #e5ece8}.list-table{width:100%;min-width:860px;border-collapse:collapse}.list-table th{position:sticky;top:0;z-index:1;padding:12px;color:#536781;background:#fff;text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.list-table td{padding:12px;border-top:1px solid #edf1ef;vertical-align:middle;background:#ffffffc7}.list-table tr:hover td{background:#f6fbf7}.list-table td strong,.list-table td small{display:block}.list-table td small{color:#63748c;margin-top:3px}.table-action{min-height:34px;padding:0 12px;border-radius:0;border:1px solid #6fb763;color:#2f7f2d;background:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table-action:hover,.table-action.success{color:#fff;background:#43a447}.table-action.danger{color:#991b1b;border-color:#f1aaa7}.table-action.danger:hover{color:#fff;background:#b91c1c}.table-action.ghost{color:#3f7a37;background:#f9fff7}.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 13px;border-radius:999px;font-weight:800;white-space:nowrap}.badge.success{color:#0f6b37;background:#dcfce7}.badge.warning{color:#8a4a08;background:#fef3c7}.badge.danger{color:#991b1b;background:#fee2e2}.badge.neutral{color:#43546b;background:#eef2f7}.pagination-bar{min-height:52px;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding-top:12px;color:#60728e}.page-size-control,.pagination-actions{display:flex;align-items:center;gap:8px}.page-size-control{margin-right:auto}.page-size-control select{width:80px;min-height:38px;padding:7px 9px}.pagination-actions button{min-height:36px;padding:0 12px;border-radius:9px;color:#526478;background:#f1f7f2}.pagination-actions button:not(:disabled):hover{color:#fff;background:#43a447}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:18px;background:#11182780;animation:fadeIn .16s ease both}.modal-panel{width:min(740px,100%);max-height:min(86vh,760px);overflow:auto;background:#fff;border:1px solid #dbe3e0;box-shadow:0 26px 68px #0f172a40;animation:modalIn .18s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid #e5ece8}.modal-head h2{margin:0;font-size:22px}.modal-head button{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#172033;background:#eef3f5}.form-grid{padding:18px 20px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.single,.vertical-form{grid-template-columns:1fr}.field{display:grid;gap:7px}.field span{color:#566b86;font-weight:750}.field.wide,.modal-actions,.inline-success{grid-column:1 / -1}.password-field{display:grid;grid-template-columns:1fr 42px}.password-field input{border-radius:8px 0 0 8px}.password-field button{border:1px solid #d6e0dc;border-left:0;border-radius:0 8px 8px 0;color:#65768d;background:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.modal-actions.split{justify-content:space-between;flex-wrap:wrap}.inline-success{min-height:40px;border:1px solid #bbebc9;background:#edfff1;color:#116b3a;display:flex;align-items:center;gap:9px;padding:10px 12px}.detail-list{padding:16px 20px;display:grid;gap:0}.detail-list>div{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #edf1ef}.detail-list span{color:#61718a}.detail-list strong{text-align:right}.modal-summary{margin:18px 20px 8px;padding:16px;border:1px solid #dbe6e1;background:#f8fcf8;display:grid;gap:6px}.modal-summary strong{font-size:24px}.modal-summary span{color:#61718a}.compact-list{padding:12px 20px 20px;display:grid;gap:8px}.compact-row{min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e3ebe7;background:#fff}.compact-row strong,.compact-row small{display:block}.compact-row small{color:#61718a}.empty-state{min-height:130px;display:grid;place-items:center;align-content:center;gap:8px;color:#66758d;border:1px dashed #cbdad3;background:#f8fbfa}.skeleton-list{display:grid;gap:10px;padding:8px 0}.skeleton-row{height:54px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:12px;border:1px solid #e6eeea;background:#fff}.skeleton-row span,.skeleton-text{display:block;height:14px;border-radius:999px;background:linear-gradient(90deg,#edf3ef,#f8fbf9,#edf3ef);background-size:220% 100%;animation:shimmer 1.1s infinite linear}.skeleton-text{width:92px;height:24px}@keyframes shimmer{to{background-position:-220% 0}}.notice-stack{position:fixed;z-index:220;top:16px;right:16px;width:min(420px,calc(100vw - 32px));display:grid;gap:8px}.notice{min-height:44px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 18px 46px #0f172a2e}.notice.success{color:#075f36;background:#dcfce7;border:1px solid #99e6b0}.notice.danger{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.notice button{width:30px;height:30px;display:grid;place-items:center;background:transparent;color:inherit}.api-loader{position:fixed;z-index:230;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,#2fb344,#c8ff80,#2fb344);background-size:200% 100%;animation:loaderMove .9s linear infinite}@keyframes loaderMove{to{background-position:200% 0}}.login-shell{height:100vh;min-height:0;display:grid;place-items:center;padding:24px;overflow:hidden;animation:loginShellReveal .64s cubic-bezier(.25,1,.5,1);background:radial-gradient(circle at 16% 0%,#eaf7f4 0,transparent 45%)}.login-card{width:min(980px,100%);max-height:min(720px,calc(100vh - 48px));display:grid;grid-template-columns:minmax(320px,.95fr) minmax(320px,1fr);gap:26px;align-items:center;transform-origin:center top}.login-card-animate{opacity:0;transform:translateY(16px) scale(.99);animation:loginCardReveal .68s cubic-bezier(.2,1,.22,1) forwards}.login-visual{min-height:460px;padding:34px;color:#fff;background:linear-gradient(130deg,#0c5a44,#2e8e58 42%,#7fc95f);position:relative;overflow:hidden;box-shadow:0 20px 50px #064e3b2e;opacity:0;transform:translateY(12px) scale(.985);animation:loginVisualReveal .86s cubic-bezier(.16,1,.3,1) forwards;animation-delay:.12s;border-radius:20px}.login-visual:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.2),transparent 42%),radial-gradient(circle at 82% 12%,rgba(255,255,255,.25),transparent 36%);mix-blend-mode:screen;opacity:.7;animation:loginVisualShimmer 11s ease-in-out infinite}.login-visual:after{content:"";position:absolute;top:16%;right:22%;bottom:16%;left:22%;border:1px dashed rgba(255,255,255,.35);border-radius:16px;animation:loginVisualGrid 7s linear infinite}.login-flow-head{position:relative;z-index:1;max-width:260px;padding:14px 18px;border-radius:12px;background:#ffffff1c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.28)}.login-flow-head strong{display:block;font-size:15px;font-weight:700;margin-bottom:8px;color:#f0f6ea}.login-flow-head span{display:block;font-size:12px;color:#dcf0d6;line-height:1.35}.transfer-stream{position:absolute;inset:auto 0 36px;height:118px;width:100%;pointer-events:none;z-index:1}.stream-track{display:block;position:absolute;left:10%;right:10%;top:50%;height:4px;border-radius:999px;transform:translateY(-50%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);overflow:hidden}.stream-track:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);animation:transferTrackScan 3.6s linear infinite}.stream-token{position:absolute;top:50%;width:72px;height:24px;border-radius:999px;transform:translate(-50%,-50%);font-size:11px;letter-spacing:.09em;text-transform:uppercase;display:grid;place-items:center;color:#0f5132;font-weight:700;animation:transferTokenRide 6.6s linear infinite;box-shadow:0 10px 22px #0226123b}.token-a{background:#d5ffe2;animation-delay:-.2s}.token-b{background:#b8f1d4;animation-delay:-2.2s}.token-c{background:#ecfbe8;animation-delay:-4.4s}.stream-token:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(15,81,50,.25);border-radius:inherit}.login-visual h1{position:absolute;z-index:1;left:38px;bottom:72px;margin:0;font-size:46px}.login-visual p{position:absolute;z-index:1;left:38px;bottom:34px;margin:0;font-size:18px;opacity:.95}.login-form{min-width:0;display:grid;gap:16px;opacity:0;transform:translate(12px) scale(.98);animation:loginFormReveal .76s cubic-bezier(.16,1,.3,1) forwards;animation-delay:.18s}.login-brand .brand-mark{width:44px;height:44px}.login-brand span{color:#4f8b24;letter-spacing:.22em;text-transform:uppercase}.login-form h2{margin:10px 0 4px;font-size:18px;letter-spacing:.28em;text-transform:uppercase}.forgot-link{justify-self:end;padding:0;color:#172033;background:transparent;text-decoration:underline;font-size:14px}.login-submit{height:46px}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){:root{font-size:12px}.app-shell,.app-shell.sidebar-collapsed{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(290px,82vw);z-index:90;transform:translate(-105%);transition:transform .19s ease}.mobile-sidebar-open .sidebar{transform:translate(0)}.mobile-sidebar-open .mobile-sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172a6b}.mobile-menu-close,.mobile-top-menu-button{display:grid}.mobile-top-menu-button{color:#173047;background:#eef7f0}.mobile-top-menu-button:hover{background:#dff1e5}.mobile-menu-close{order:2;margin-left:auto}.sidebar .brand{order:1}.desktop-collapse{display:none}.main{padding:10px}.topbar{min-height:64px;margin-bottom:12px;padding:10px 11px}.topbar-title h1{font-size:20px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title p{font-size:11px}.icon-text{padding:0 10px}.icon-text span{display:none}.view-stack{gap:12px}.panel{padding:14px}.panel-head{align-items:flex-start;flex-direction:column}.panel-head .primary-action{width:100%}.metric-grid{grid-template-columns:1fr;gap:10px}.metric-card{min-height:96px;padding:14px}.metric-card strong{font-size:21px}.month-chart{height:190px;min-height:190px;gap:8px}.profile-card{align-items:flex-start;flex-direction:column}.profile-card svg{order:-1}.table-wrap{max-height:48vh}.list-table{min-width:760px}.pagination-bar{align-items:stretch;flex-direction:column;gap:8px}.page-size-control,.pagination-actions{justify-content:space-between}.form-grid{grid-template-columns:1fr;padding:14px}.modal-backdrop{padding:12px}.modal-panel{width:100%;max-height:84vh}.modal-head{padding:14px}.modal-head h2{font-size:18px}.modal-actions,.modal-actions.split{justify-content:stretch}.modal-actions button{flex:1 1 100%}.compact-row{grid-template-columns:1fr}.login-shell{padding:14px}.login-card{width:100%;max-height:calc(100vh - 28px);grid-template-columns:1fr}.login-visual{display:none}.login-form{padding:18px;background:#fff;border:1px solid #d9e4df;box-shadow:0 20px 50px #0f172a14}}@keyframes loginShellReveal{0%{opacity:0}to{opacity:1}}@keyframes loginCardReveal{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loginVisualReveal{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loginFormReveal{to{opacity:1;transform:translate(0) scale(1)}}@keyframes loginVisualShimmer{0%{opacity:.45}50%{opacity:.85}to{opacity:.45}}@keyframes loginVisualGrid{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes transferTrackScan{0%{transform:translate(-70%)}to{transform:translate(70%)}}@keyframes transferTokenRide{0%{left:8%;opacity:0;scale:.75}4%,84%{opacity:1}90%{opacity:.2;scale:1}to{left:90%;opacity:0;scale:.85}}
