:root{--zl-primary: #147a6a;--zl-primary-hover: #0f6558;--zl-primary-soft: rgba(20, 122, 106, .1);--zl-accent: #1aa89a;--zl-sider: #0b2420;--zl-sider-mid: #0f322c;--zl-bg: #eef2f1;--zl-card: #ffffff;--zl-text: #12201d;--zl-muted: #5f6f6b;--zl-border: #d5dfdb;--zl-danger: #c0392b;--zl-danger-hover: #a93226;--zl-radius: 10px;--zl-radius-lg: 16px;--zl-shadow-sm: 0 1px 2px rgba(12, 40, 34, .04);--zl-shadow: 0 4px 20px rgba(12, 40, 34, .06);--zl-shadow-lg: 0 16px 48px rgba(12, 40, 34, .14);--zl-ring: 0 0 0 3px rgba(20, 122, 106, .18);--zl-font: "Outfit", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--zl-ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#app{margin:0;height:100%;font-family:var(--zl-font);color:var(--zl-text);background:var(--zl-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#147a6a2e;color:var(--zl-text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border:1px solid transparent;border-radius:var(--zl-radius);background:linear-gradient(180deg,var(--zl-accent) 0%,var(--zl-primary) 100%);color:#fff;cursor:pointer;font-size:14px;font-weight:500;letter-spacing:.01em;box-shadow:0 1px 2px #0c28221f,inset 0 1px #ffffff1f;transition:transform .18s var(--zl-ease),box-shadow .18s var(--zl-ease),background .18s var(--zl-ease),border-color .18s var(--zl-ease),opacity .18s var(--zl-ease)}.btn:hover:not(:disabled){background:linear-gradient(180deg,#1eb8a8 0%,var(--zl-primary-hover) 100%);box-shadow:0 4px 14px #147a6a47;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0c28221f}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--zl-primary);border-color:#147a6a73;box-shadow:none}.btn.ghost:hover:not(:disabled){background:var(--zl-primary-soft);border-color:var(--zl-primary);box-shadow:none;transform:none}.btn.danger{background:linear-gradient(180deg,#d45242 0%,var(--zl-danger) 100%);box-shadow:0 1px 2px #c0392b33}.btn.danger:hover:not(:disabled){background:linear-gradient(180deg,#de6355 0%,var(--zl-danger-hover) 100%);box-shadow:0 4px 14px #c0392b47}.btn.sm{height:30px;padding:0 10px;font-size:12px;border-radius:8px}.input{height:36px;padding:0 12px;border:1px solid var(--zl-border);border-radius:var(--zl-radius);outline:none;width:100%;max-width:100%;background:#fff;color:var(--zl-text);font-size:14px;transition:border-color .18s var(--zl-ease),box-shadow .18s var(--zl-ease)}.input:hover{border-color:#b8c7c2}.input:focus{border-color:var(--zl-primary);box-shadow:var(--zl-ring)}.input::placeholder{color:#9aa8a4}select.input{cursor:pointer}.table-scroll{width:100%;overflow:auto;border-radius:var(--zl-radius);border:1px solid var(--zl-border);background:var(--zl-card);-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;background:var(--zl-card)}.table th,.table td{border-bottom:1px solid var(--zl-border);padding:12px 14px;text-align:left;font-size:13px;vertical-align:middle}.table th{background:linear-gradient(180deg,#f4f8f6,#eef3f1);color:var(--zl-muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:none;white-space:nowrap;position:sticky;top:0;z-index:1}.table tbody tr{transition:background .15s var(--zl-ease)}.table tbody tr:hover{background:#147a6a09}.table tbody tr:last-child td{border-bottom:none}.table td{color:var(--zl-text)}.card{background:var(--zl-card);border-radius:var(--zl-radius-lg);padding:18px 20px;border:1px solid rgba(213,223,219,.85);box-shadow:var(--zl-shadow-sm),var(--zl-shadow);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--zl-primary),var(--zl-accent),transparent 70%);opacity:.85;pointer-events:none}.content>.card:has(>.table-scroll),.content>.card.page-list{display:flex;flex-direction:column;overflow:hidden;height:100%;max-height:100%}.content>.card:has(>.table-scroll)>:not(.table-scroll),.content>.card.page-list>:not(.table-scroll){flex-shrink:0}.content>.card:has(>.table-scroll)>.table-scroll,.content>.card.page-list>.table-scroll{flex:1 1 0;min-height:0;overflow:auto}.content>.card:has(>.table-scroll)>.pager,.content>.card:has(>.table-scroll)>.pager-bar,.content>.card.page-list>.pager,.content>.card.page-list>.pager-bar{margin-top:10px}.content>.card:not(:has(>.table-scroll)):not(.page-list){overflow:auto}.page-title{font-size:20px;font-weight:650;letter-spacing:-.02em;margin:0 0 16px;color:var(--zl-text)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.toolbar .page-title{margin:0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.toolbar .input,.actions .input{width:auto;min-width:132px;max-width:280px;flex:0 0 auto}.hint{color:var(--zl-muted);margin:0 0 12px;line-height:1.55;font-size:13px}.error{color:var(--zl-danger);margin-bottom:12px;font-size:13px}.ops{display:flex;gap:6px;flex-wrap:nowrap;white-space:nowrap}.form{display:flex;flex-direction:column;gap:12px}.form-item{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--zl-muted)}.form-item>span{font-weight:500}.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.field-hint{color:var(--zl-danger);font-size:12px}.line-box{border:1px solid var(--zl-border);border-radius:var(--zl-radius);padding:12px;display:flex;flex-direction:column;gap:8px;background:#fafcfb}.line-row{display:grid;grid-template-columns:1.6fr 90px 110px auto;gap:8px;align-items:center}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;flex-wrap:wrap;color:var(--zl-muted);font-size:13px}.pager-num{min-width:64px;text-align:center;color:var(--zl-text);font-weight:600;font-variant-numeric:tabular-nums}.pager-info{margin-right:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#5f6f6b47;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#5f6f6b73}
