.app-icon[data-v-cc8c5ec4]{display:inline-block;vertical-align:middle;flex:0 0 auto}:root{--bg: #f6f4ee;--paper: #fbf9f4;--card: #ffffff;--ink: #152238;--ink2: #3b4860;--muted: #76809a;--faint: #a9aebe;--line: #e7e2d6;--line2: #d6d0c0;--navy: #182747;--navy2: #22355c;--navy-soft: #edf0f7;--accent: #de5a2c;--accent-hover: #c94e23;--accent-soft: #fbede6;--green: #12855c;--green-soft: #e6f3ec;--gold: #a87a34;--gold-soft: #faf2e1;--danger: #c0392b;--danger-soft: #fdeceb;--r: 16px;--r-sm: 10px;--r-lg: 20px;--sh: 0 1px 2px rgba(21, 34, 56, .04), 0 10px 26px rgba(21, 34, 56, .05);--sh2: 0 2px 6px rgba(21, 34, 56, .06), 0 20px 46px rgba(21, 34, 56, .1);--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", Georgia, serif;--font-mono: "SF Mono", "JetBrains Mono", Consolas, monospace;--rail-width: 236px;--topbar-height: 62px;--content-max: 1200px}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%}body{min-width:1180px;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.62;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:600}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{border:none;background:none;padding:0;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid rgba(24,39,71,.55);outline-offset:2px}::selection{background:#de5a2c2e}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#dbd5c6;border-radius:9px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#c7c0ae;background-clip:content-box}.mono,.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.tiny{font-size:11.5px;color:var(--muted);line-height:1.6}.eyebrow{font-size:10.5px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase}.h1{font-family:var(--font-serif);font-size:26px;line-height:1.35;letter-spacing:-.01em}.h2{font-size:17px;line-height:1.4}.h3{font-size:14px}.sub{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.62}.text-accent{color:var(--accent)}.text-green{color:var(--green)}.text-danger{color:var(--danger)}.row{display:flex;align-items:center;gap:10px}.row-top{display:flex;align-items:flex-start;gap:10px}.wrap{flex-wrap:wrap}.spacer{flex:1}.divider{height:1px;background:var(--line);margin:16px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:11px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}.card.flat{background:var(--paper)}.card.hoverable{transition:border-color .16s,box-shadow .16s,transform .16s}.card.hoverable:hover{border-color:#cbc4b2;box-shadow:var(--sh);transform:translateY(-2px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 17px;border-radius:11px;border:1px solid var(--line);background:#fff;font-size:13.5px;line-height:1;white-space:nowrap;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.btn:hover{border-color:var(--line2);background:#fcfbf7}.btn:disabled{opacity:.42}.btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn-primary:hover:not(:disabled){background:var(--navy2);border-color:var(--navy2)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-line{border-color:var(--line2)}.btn-ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn-ghost:hover{background:#f0ede3;color:var(--ink)}.btn-danger{border-color:#efd2ce;background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{border-color:#e4b6b1;background:#fbdedb}.btn-sm{height:32px;padding:0 12px;font-size:12.5px;border-radius:9px}.btn-lg{height:46px;padding:0 22px;font-size:14.5px;border-radius:12px}.btn-block{width:100%}.link-btn{border:none;background:none;color:var(--muted);font-size:12.5px;transition:color .15s}.link-btn:hover{color:var(--ink)}.link-accent{color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 7px;border-radius:6px;font-size:10.5px;background:#f2efe6;color:var(--ink2);white-space:nowrap}.tag-navy{background:var(--navy-soft);color:var(--navy)}.tag-accent{background:var(--accent-soft);color:#b2461d}.tag-green{background:var(--green-soft);color:var(--green)}.tag-gold{background:var(--gold-soft);color:var(--gold)}.tag-line{background:#fff;border:1px solid var(--line);color:var(--muted)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12.5px;color:var(--ink2);display:inline-flex;align-items:center;gap:5px;transition:.15s}.chip:hover{border-color:var(--line2)}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.chip:disabled{opacity:.45}.field{margin-bottom:15px}.label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12.5px;color:var(--ink2)}.label .req{color:var(--accent);font-size:10.5px}.input,.textarea,.select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fdfcf9;padding:10px 12px;font-size:13.5px;outline:none;transition:border-color .15s,background .15s,box-shadow .15s}.input{height:42px}.select{height:42px;cursor:pointer}.textarea{min-height:96px;resize:vertical;line-height:1.7}.input:focus,.textarea:focus,.select:focus{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px #18274712}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:disabled,.textarea:disabled,.select:disabled{background:#f4f2eb;color:var(--muted)}.hint{margin-top:5px;font-size:11.5px;color:var(--faint)}.field-error{margin-top:5px;font-size:11.5px;color:var(--danger)}.table-wrap{overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:#fff}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{padding:11px 16px;background:var(--paper);border-bottom:1px solid var(--line);color:var(--muted);font-size:11.5px;font-weight:500;letter-spacing:.04em;text-align:left}.table td{padding:13px 16px;border-bottom:1px solid #f3f0e7;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#fdfcf8}.empty{border:1px dashed var(--line2);border-radius:13px;padding:32px 18px;text-align:center;color:var(--muted);font-size:13px}.empty .empty-icon{opacity:.5;margin-bottom:8px}.empty .empty-title{color:var(--ink2);font-size:13.5px;margin-bottom:4px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:#111b2d70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(560px,100%);max-height:88vh;overflow-y:auto;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh2);padding:22px 24px}.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.modal-head .h2{flex:1}.modal-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.toast-host{position:fixed;right:24px;bottom:24px;z-index:200;display:flex;flex-direction:column;gap:9px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:9px;min-width:220px;max-width:380px;padding:11px 14px;border-radius:12px;background:var(--navy);color:#fff;font-size:12.8px;line-height:1.5;box-shadow:var(--sh2);pointer-events:auto;cursor:pointer}.toast svg{flex:0 0 auto;margin-top:2px}.toast-success{background:#176b4f}.toast-error{background:#a83c30}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(8px)}.skeleton{border-radius:8px;background:linear-gradient(90deg,#eee9dd 25%,#f6f2e9 37%,#eee9dd 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(24,39,71,.18);border-top-color:var(--navy);animation:spin .7s linear infinite;flex:0 0 15px}.spinner.on-dark{border-color:#ffffff47;border-top-color:#fff}.page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px}.page-head .page-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em}.page-head .page-sub{color:var(--muted);font-size:12.8px;margin-top:4px}.page-head .page-actions{margin-left:auto;display:flex;align-items:center;gap:9px}
