.app-icon[data-v-1110af84]{display:block;flex-shrink:0}.confirm-dialog[data-v-26949912]{max-width:440px}.confirm-message[data-v-26949912]{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-primary);word-break:break-word}.confirm-note[data-v-26949912]{display:flex;align-items:flex-start;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:var(--lh-sm);background:var(--bg-elevated);color:var(--text-secondary)}.confirm-note.is-danger[data-v-26949912]{background:var(--danger-soft);color:var(--danger)}.confirm-require[data-v-26949912]{margin-top:var(--sp-4)}.page-enter-active,.page-leave-active{transition:opacity .18s ease,transform .18s ease}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0}.toast-stack{position:fixed;top:calc(var(--header-h) + var(--sp-3));left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:var(--sp-2);pointer-events:none;width:min(92vw,420px)}.toast{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--bg-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow);font-size:var(--fs-sm);line-height:var(--lh-sm);pointer-events:auto}.toast-icon{flex-shrink:0;width:20px;height:20px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary)}.toast-success{border-color:var(--success-line)}.toast-success .toast-icon{background:var(--success-soft);color:var(--success)}.toast-error,.toast-warning{border-color:var(--warning-line)}.toast-error .toast-icon,.toast-warning .toast-icon{background:var(--warning-soft);color:var(--warning)}.toast-error{border-color:var(--danger-line)}.toast-error .toast-icon{background:var(--danger-soft);color:var(--danger)}.toast-text{flex:1;color:var(--text-primary);word-break:break-word}.toast-action{flex-shrink:0;height:28px;padding:0 var(--sp-2);border-radius:var(--r-sm);color:var(--primary);font-size:var(--fs-sm);font-weight:600;transition:background var(--transition)}.toast-action:hover{background:var(--primary-soft)}.toast-enter-active,.toast-leave-active{transition:all .24s var(--ease-out)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-12px) scale(.97)}@media (max-width: 899px){.toast-stack{top:auto;bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));width:min(94vw,420px)}.toast-enter-from,.toast-leave-to{transform:translateY(12px) scale(.97)}}:root{color-scheme:dark;--bg-base: #0a1120;--bg-surface: #131e31;--bg-elevated: #1b2940;--bg-hover: #22334e;--border: #2a3b57;--border-strong: #3b5175;--text-primary: #eaf0fb;--text-secondary: #a9b9d3;--text-muted: #8a9bb8;--primary: #38bdf8;--primary-hover: #4dc7fb;--primary-dim: #0ea5e9;--primary-ink: #04202e;--primary-soft: rgba(56, 189, 248, .14);--primary-line: rgba(56, 189, 248, .34);--success: #34d399;--success-soft: rgba(52, 211, 153, .14);--success-line: rgba(52, 211, 153, .4);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .14);--warning-line: rgba(251, 191, 36, .4);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--danger-line: rgba(248, 113, 113, .42);--paper: #ffffff;--paper-ink: #111827;--paper-text: #374151;--paper-muted: #5b6572;--paper-line: #e5e7eb;--paper-line-strong: #9ca3af;--fs-caption: 12px;--fs-sm: 13px;--fs-body: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-display: 28px;--lh-caption: 1.5;--lh-sm: 1.55;--lh-body: 1.65;--lh-md: 1.5;--lh-lg: 1.45;--lh-xl: 1.3;--lh-display: 1.2;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--shadow-sm: 0 1px 2px rgba(3, 7, 18, .4);--shadow: 0 8px 24px rgba(3, 7, 18, .38);--shadow-lg: 0 24px 56px rgba(3, 7, 18, .52);--shadow-paper: 0 24px 60px rgba(0, 0, 0, .45);--overlay: rgba(3, 7, 18, .72);--header-h: 56px;--sidebar-w: 232px;--sidebar-rail: 64px;--content-max: 1200px;--tap: 44px;--icon-btn: 32px;--transition: .18s cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6,p,figure{margin:0}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--primary-hover)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:inherit}img{max-width:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:inherit}.btn:focus-visible{outline-offset:2px;box-shadow:0 0 0 4px var(--primary-soft)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5)}.card-title{font-size:var(--fs-md);font-weight:600;line-height:var(--lh-md);margin-bottom:var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.muted{color:var(--text-muted)}.text-sm{font-size:var(--fs-caption);line-height:var(--lh-caption)}.num{font-variant-numeric:tabular-nums}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:var(--sp-2)}.gap-12{gap:var(--sp-3)}.gap-16{gap:var(--sp-4)}.grow{flex:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:40px;padding:0 var(--sp-4);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn:disabled{opacity:1;background:var(--bg-elevated);border-color:var(--border);color:var(--text-muted);box-shadow:none;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary-dim)}.btn-ghost{background:var(--bg-elevated);border-color:var(--border);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.btn-danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.btn-danger:hover:not(:disabled){background:#f8717138}.btn-sm{height:32px;padding:0 var(--sp-3);font-size:var(--fs-caption)}.btn-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--icon-btn);height:var(--icon-btn);flex-shrink:0;padding:0;border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);transition:background var(--transition),color var(--transition)}.btn-icon:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.danger:hover{background:var(--danger-soft);color:var(--danger)}.field{margin-bottom:var(--sp-4)}.field-label{display:block;font-size:var(--fs-caption);font-weight:500;line-height:var(--lh-caption);color:var(--text-secondary);margin-bottom:var(--sp-1)}.field-label .req{color:var(--danger);margin-left:2px}.input,.select,.textarea{width:100%;height:40px;padding:0 var(--sp-3);background:var(--bg-base);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--fs-body);transition:border-color var(--transition),box-shadow var(--transition)}.textarea{height:auto;min-height:96px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:var(--lh-body)}.select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a9b9d3' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;padding-right:var(--sp-8)}.select option{background:var(--bg-surface);color:var(--text-primary)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--danger-line)}.field-error{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--danger);margin-top:var(--sp-1)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.75);cursor:pointer}input[type=checkbox],input[type=radio]{accent-color:var(--primary);cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-4)}.form-grid .full{grid-column:1 / -1}.tag{display:inline-flex;align-items:center;gap:var(--sp-1);height:24px;padding:0 var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:500;line-height:1;background:var(--bg-hover);color:var(--text-secondary);white-space:nowrap;border:1px solid transparent}.tag-cat{--cat: var(--primary);background:color-mix(in srgb,var(--cat) 18%,var(--bg-surface));border-color:color-mix(in srgb,var(--cat) 38%,transparent);color:color-mix(in srgb,var(--cat) 55%,white)}@supports not (background: color-mix(in srgb,red,blue)){.tag-cat{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}}.tag-draft{background:var(--warning-soft);border-color:var(--warning-line);color:var(--warning)}.tag-attach{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary)}.chip{position:relative;display:inline-flex;align-items:center;gap:var(--sp-1);height:32px;padding:0 var(--sp-3);border-radius:var(--r-pill);background:var(--bg-elevated);border:1px solid var(--border);font-size:var(--fs-caption);color:var(--text-secondary);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip.active{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary)}.app-shell{display:flex;min-height:100vh}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.page-body{flex:1;padding:var(--sp-6);max-width:var(--content-max);width:100%;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.page-lead{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary)}.page-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.empty{padding:var(--sp-10) var(--sp-5);text-align:center;color:var(--text-muted)}.empty-icon{color:var(--text-muted);opacity:.6;margin-bottom:var(--sp-3);display:flex;justify-content:center}.empty-title{font-size:var(--fs-body);line-height:var(--lh-md);color:var(--text-primary);margin-bottom:var(--sp-1)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);animation:fade-in .16s ease}.modal{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:100%;max-width:620px;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modal-in .2s var(--ease-out)}.modal-head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);font-size:var(--fs-md);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.modal-body{padding:var(--sp-5);overflow-y:auto;flex:1}.modal-foot{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--sp-2)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.22);border-top-color:currentColor;border-radius:var(--r-pill);animation:spin .7s linear infinite}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-hover) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 1279px){.page-body{padding:var(--sp-5) var(--sp-4)}}@media (max-width: 899px){.page-body{padding:var(--sp-4) var(--sp-3)}.page-head{margin-bottom:var(--sp-4)}.card{padding:var(--sp-4)}.desktop-only{display:none!important}}@media (min-width: 900px){.mobile-only{display:none!important}}@media (max-width: 639px){.form-grid{grid-template-columns:1fr}.modal-mask{align-items:flex-end;padding:0}.modal{max-height:92vh;border-radius:var(--r-lg) var(--r-lg) 0 0}}@media (pointer: coarse),(max-width: 899px){.btn,.btn-sm{height:var(--tap)}.btn-icon{width:var(--tap);height:var(--tap)}.btn-icon:after{display:none}.chip{height:36px}.input,.select{height:var(--tap)}}@media (hover: none){.card:active,.exp-row:active,.att-card:active{transform:scale(.995);border-color:var(--border-strong)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@page{size:A4;margin:0}@media print{.no-print{display:none!important}body.is-printing-resume{background:var(--paper)}body.is-printing-resume .sidebar,body.is-printing-resume .topbar,body.is-printing-resume .drawer-mask,body.is-printing-resume .toast-stack{display:none!important}body.is-printing-resume .app-shell,body.is-printing-resume .main-area{display:block;min-height:0}body.is-printing-resume .page-body{padding:0;max-width:none}}
