.app-sidebar[data-v-abb31376]{width:var(--sidebar-w);background:var(--paper);border-right:1px solid var(--line);z-index:120;flex-direction:column;padding:26px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0}.side-brand-row[data-v-abb31376]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.brand[data-v-abb31376]{color:var(--ink);align-items:center;gap:12px;padding:0 8px;text-decoration:none;display:flex}.brand[data-v-abb31376]:hover{text-decoration:none}.brand-mark[data-v-abb31376]{background:var(--accent);border-radius:13px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid;overflow:hidden}.brand-text strong[data-v-abb31376]{letter-spacing:.14em;font-size:20px;line-height:1.15;display:block}.brand-text small[data-v-abb31376]{color:var(--muted);letter-spacing:.06em;margin-top:3px;font-size:10px;display:block}.side-tagline[data-v-abb31376]{color:var(--muted);margin:16px 0 20px;padding:0 10px;font-size:12px}.side-nav[data-v-abb31376]{flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow-y:auto}.side-link[data-v-abb31376]{color:#596b5e;transition:background var(--speed) ease, color var(--speed) ease;border-radius:10px;align-items:center;gap:12px;min-height:42px;padding:11px 13px;font-size:14.5px;font-weight:500;text-decoration:none;display:flex}.side-link[data-v-abb31376]:hover{background:#f2f7f3;text-decoration:none}.side-link.router-link-exact-active[data-v-abb31376]{background:var(--soft);color:var(--accent);font-weight:650}.side-link-icon[data-v-abb31376]{flex-shrink:0;display:inline-flex}.side-bottom[data-v-abb31376]{border-top:1px solid var(--line);margin-top:12px;padding-top:14px}.env-chip[data-v-abb31376]{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-text);border-radius:8px;padding:9px 11px;font-size:11px;line-height:1.75}.env-chip strong[data-v-abb31376]{font-size:11.5px}.drawer-close[data-v-abb31376]{border:1px solid var(--line);background:var(--paper);width:40px;height:40px;color:var(--muted);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.drawer-mask[data-v-abb31376]{z-index:110;background:#21372e66;position:fixed;inset:0}@media (width<=1023px) and (width>=768px){.app-sidebar[data-v-abb31376]{width:var(--sidebar-rail-w);align-items:center;padding:22px 10px 14px}.brand[data-v-abb31376]{padding:0}.brand-text[data-v-abb31376],.side-tagline[data-v-abb31376],.side-link-text[data-v-abb31376],.side-bottom[data-v-abb31376]{display:none}.side-link[data-v-abb31376]{justify-content:center;width:100%;padding:12px 8px}}@media (width<=767px){.app-sidebar[data-v-abb31376]{width:min(300px,84vw);box-shadow:none;visibility:hidden;transition:transform .18s;transform:translate(-105%)}.app-sidebar.drawer-open[data-v-abb31376]{visibility:visible;box-shadow:var(--shadow-pop);transform:translate(0)}}@media (width>=768px){.drawer-close[data-v-abb31376]{display:none}}.app-topbar[data-v-7f3f9662]{height:var(--topbar-h);background:var(--paper);border-bottom:1px solid var(--line);z-index:100;justify-content:space-between;align-items:center;gap:14px;padding:0 32px;display:flex;position:sticky;top:0}.topbar-left[data-v-7f3f9662]{align-items:center;gap:14px;min-width:0;display:flex}.menu-btn[data-v-7f3f9662]{border:1px solid var(--line);background:var(--paper);width:42px;height:42px;color:var(--ink);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.menu-btn[data-v-7f3f9662]:hover{background:var(--bg)}.breadcrumb[data-v-7f3f9662]{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.crumb-sep[data-v-7f3f9662]{color:#b3beb5;margin:0 9px}.crumb-current[data-v-7f3f9662]{color:var(--ink);font-weight:600}.topbar-right[data-v-7f3f9662]{flex-shrink:0;align-items:center;gap:16px;display:flex}.test-badge[data-v-7f3f9662]{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex}.test-dot[data-v-7f3f9662]{background:var(--gold);border-radius:50%;width:7px;height:7px}.account-wrap[data-v-7f3f9662]{position:relative}.account-btn[data-v-7f3f9662]{color:var(--ink);transition:background var(--speed) ease;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;min-height:44px;padding:6px 9px;display:flex}.account-btn[data-v-7f3f9662]:hover{background:var(--bg)}.avatar[data-v-7f3f9662]{background:var(--soft);width:34px;height:34px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid}.account-name[data-v-7f3f9662]{text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:14px;font-weight:600;overflow:hidden}.account-menu[data-v-7f3f9662]{background:var(--paper);border:1px solid var(--line);width:230px;box-shadow:var(--shadow-pop);z-index:130;border-radius:12px;padding:8px;position:absolute;top:calc(100% + 6px);right:0}.account-menu-head[data-v-7f3f9662]{border-bottom:1px solid var(--line);flex-direction:column;gap:3px;margin-bottom:6px;padding:9px 11px 11px;font-size:13.5px;display:flex}.account-menu-item[data-v-7f3f9662]{width:100%;color:var(--ink);text-align:left;transition:background var(--speed) ease;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;min-height:40px;padding:9px 11px;font-size:13.5px;text-decoration:none;display:flex}.account-menu-item[data-v-7f3f9662]:hover{background:var(--bg);text-decoration:none}@media (width<=767px){.app-topbar[data-v-7f3f9662]{height:62px;padding:0 14px}.account-name[data-v-7f3f9662],.test-badge[data-v-7f3f9662]{display:none}}.app-content-plain[data-v-eca7a8ba]{min-height:100vh}:root{--bg:#f3f5f2;--paper:#fff;--ink:#21372e;--muted:#66756c;--accent:#197455;--accent-hover:#135f44;--soft:#e7f3ec;--soft-strong:#d4e9dd;--line:#e2e9e3;--warn-bg:#f6f0e3;--warn-text:#775e2d;--warn-line:#e4d7bc;--err-bg:#fae9e6;--err-text:#93392f;--err-line:#edc7c1;--ok-bg:#e7f3ec;--ok-text:#197455;--ok-line:#cbe3d6;--info-bg:#edf2ef;--info-text:#405347;--info-line:#d8e4dc;--sand:#c9a87c;--sand-ink:#8a6b42;--sage:#7fae92;--gold:#bc8d36;--radius-card:12px;--radius-btn:8px;--sp-1:8px;--sp-2:12px;--sp-3:16px;--sp-4:24px;--sp-5:32px;--sidebar-w:232px;--sidebar-rail-w:76px;--topbar-h:72px;--shadow-card:0 1px 2px #21372e0a;--shadow-pop:0 12px 32px #21372e29;--speed:.14s}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:Segoe UI,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:15px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}svg{vertical-align:middle}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}h1{letter-spacing:.01em;margin:0;font-size:30px;font-weight:700}h2{margin:0 0 var(--sp-2);font-size:19px;font-weight:650}h3{margin:0;font-size:16px;font-weight:650}.muted{color:var(--muted)}.small{font-size:13px}.aux{color:var(--muted);font-size:12px}.mono{font-family:Consolas,Courier New,monospace;font-size:13px}.app-shell{min-height:100vh}.app-main{margin-left:var(--sidebar-w);flex-direction:column;min-height:100vh;display:flex}.app-content{width:100%;max-width:1240px;padding:var(--sp-5) 36px 48px;flex:1;margin:0 auto}.app-footer{padding:var(--sp-3) 36px var(--sp-4);color:var(--muted);justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;font-size:12px;display:flex}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--sp-4);margin-bottom:var(--sp-4);box-shadow:var(--shadow-card)}.card-flat{box-shadow:none}.grid-cards{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.stats-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.btn{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-btn);transition:background var(--speed) ease, border-color var(--speed) ease, color var(--speed) ease;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:9px 18px;font-size:14px;font-weight:600;line-height:1.35;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}.btn:disabled{opacity:.55}.btn-secondary{background:var(--paper);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){color:var(--accent);background:#f2f7f4;border-color:#c9dbd0}.btn-ghost{color:var(--accent);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--soft)}.btn-danger{background:var(--paper);border-color:var(--err-line);color:var(--err-text)}.btn-danger:hover:not(:disabled){background:var(--err-bg);border-color:var(--err-line);color:var(--err-text)}.btn-small{min-height:34px;padding:6px 13px;font-size:13px}.input,textarea,select{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-btn);width:100%;color:var(--ink);transition:border-color var(--speed) ease, box-shadow var(--speed) ease;padding:9px 12px;font-size:14px}.input::placeholder,textarea::placeholder{color:#93a19a}.input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #19745524}.form-row{margin-bottom:var(--sp-3)}.form-row label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-hint{color:var(--muted);margin-top:4px;font-size:12px}.alert{border-radius:var(--radius-btn);margin:var(--sp-2) 0;border:1px solid;align-items:flex-start;gap:9px;padding:11px 14px;font-size:14px;line-height:1.5;display:flex}.alert .alert-icon{flex-shrink:0;margin-top:1px}.alert a{color:inherit;text-decoration:underline}.alert-error{background:var(--err-bg);border-color:var(--err-line);color:var(--err-text)}.alert-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.alert-ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-text)}.alert-info{background:var(--info-bg);border-color:var(--info-line);color:var(--info-text)}.badge{border:1px solid var(--line);background:var(--bg);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-text)}.badge-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.badge-danger{background:var(--err-bg);border-color:var(--err-line);color:var(--err-text)}.badge-info{background:var(--info-bg);border-color:var(--info-line);color:var(--info-text)}.badge-accent{background:var(--accent);border-color:var(--accent);color:#fff}.table-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.data-table thead th{color:var(--muted);white-space:nowrap;background:#fafcfb;font-size:12.5px;font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--speed) ease}.data-table tbody tr:hover{background:#f7faf8}.kv{grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:14px;display:grid}.kv dt{color:var(--muted);white-space:nowrap;margin:0}.kv dd{word-break:break-word;margin:0}.meter{background:#e6ece7;border-radius:999px;height:8px;display:flex;overflow:hidden}.meter .seg-used{background:var(--accent)}.meter .seg-reserved{background:#d9b36a}.meter-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12.5px;display:flex}.meter-legend .dot{vertical-align:-1px;border-radius:3px;width:9px;height:9px;margin-right:5px;display:inline-block}.dot-used{background:var(--accent)}.dot-reserved{background:#d9b36a}.dot-available{background:#e6ece7;border:1px solid #d3ded6}.amount-pos{color:var(--accent);font-weight:600}.amount-neg{color:var(--err-text);font-weight:600}.section-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:all var(--speed) ease;border-radius:999px;min-height:34px;padding:6px 15px;font-size:13px;font-weight:500}.chip:hover{background:#f4f9f5;border-color:#c9dbd0}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.chip .chip-count{opacity:.75;margin-left:3px;font-weight:400}.loading-state{color:var(--muted);padding:var(--sp-3) 0;align-items:center;gap:10px;font-size:14px;display:flex}.spinner{border:2.5px solid var(--soft);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#eef2ef 25%,#f7faf8 50%,#eef2ef 75%) 0 0/200% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.modal-mask{z-index:200;background:#21372e73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-pop);padding:var(--sp-4);border-radius:14px;width:100%;max-width:520px;max-height:86vh;overflow-y:auto}.modal-actions{margin-top:var(--sp-4);flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.msg-bubble{word-break:break-word;border:1px solid var(--line);background:var(--bg);border-radius:10px;max-width:85%;margin-bottom:10px;padding:10px 14px}.msg-admin{background:var(--soft);border-color:var(--ok-line);margin-left:auto}.msg-meta{color:var(--muted);margin-top:5px;font-size:12px}.reserved-entry{cursor:default;-webkit-user-select:none;user-select:none}@media (width<=1279px){.grid-cards,.stats-grid{grid-template-columns:repeat(2,1fr)}.app-content{padding:var(--sp-4) 28px 40px}}@media (width<=1023px){.app-main{margin-left:var(--sidebar-rail-w)}}@media (width<=767px){.app-main{margin-left:0}.app-content{padding:20px 16px 36px}.app-footer{padding:var(--sp-3) 16px var(--sp-4)}h1{font-size:24px}h2{font-size:17px}.card{padding:var(--sp-3)}.grid-2{grid-template-columns:1fr}.btn{min-height:40px}.chip{min-height:40px;padding:8px 16px}.data-table.responsive,.data-table.responsive thead,.data-table.responsive tbody,.data-table.responsive tr,.data-table.responsive td{width:100%;display:block}.data-table.responsive thead{position:absolute;top:-9999px;left:-9999px}.data-table.responsive tbody tr{border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:var(--sp-2);background:var(--paper);padding:6px 4px}.data-table.responsive tbody tr:hover{background:var(--paper)}.data-table.responsive td{border-bottom:none;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 12px;display:flex}.data-table.responsive td:before{content:attr(data-label);color:var(--muted);flex-shrink:0;font-size:12.5px;font-weight:600}.data-table.responsive td>*{text-align:right}}@media (width<=560px){.grid-cards{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}}@media (width<=400px){.stats-grid{grid-template-columns:1fr}}
