:root{--ink:#2b2440;--ink-soft:#2b24401a;--paper:#fffdf9;--outline:2px solid var(--ink);--primary:#ff6b9d;--primary-light:#ff8fb6;--primary-dark:#e74e85;--primary-50:#fff0f6;--primary-100:#ffe0ec;--primary-200:#ffc4da;--accent-mint:#7ee0c6;--accent-lemon:#ffd86b;--accent-sky:#7cc8ff;--accent-lilac:#c3aef5;--accent-peach:#ffb38a;--success:#2fc9a5;--warning:#ffb020;--danger:#ff5b5b;--info:#8a83a8;--gray-50:#fbf6ef;--gray-100:#f5ede2;--gray-200:#ede3d5;--gray-300:#ded2c2;--gray-400:#b6a996;--gray-500:#8c8170;--gray-600:#6a6152;--gray-700:#4e4759;--gray-800:#332c46;--gray-900:#221e33;--text-primary:#2b2440;--text-secondary:#5e566f;--text-tertiary:#9a90a8;--text-inverse:#fff;--bg-body:#fff6ed;--bg-card:#fff;--bg-hover:#fff1e6;--bg-active:#ffe8f1;--border-light:#f0e4d6;--border-default:#e3d5c4;--shadow-xs:0 2px 0 #2b244012;--shadow-sm:0 4px 0 #2b24401a;--shadow-lg:0 10px 28px #2b244029;--shadow-sticker:3px 3px 0 var(--ink);--shadow-sticker-sm:2px 2px 0 var(--ink);--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--transition-fast:.14s cubic-bezier(.34, 1.4, .64, 1);--transition-normal:.24s ease;--page-max:1140px;--font-sans:"Nunito", "PingFang SC", "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei", ui-rounded, system-ui, sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{font-family:var(--font-sans);color:var(--text-primary);background-color:var(--bg-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(#2b24400e 1.3px,#0000 1.3px);background-size:18px 18px;margin:0;font-size:14px;line-height:1.65}a{color:var(--primary-dark);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary)}h1,h2,h3,h4,p{margin:0}img{max-width:100%;display:block}button{font-family:inherit;font-size:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.page{max-width:var(--page-max);margin:0 auto;padding:0 24px}.card{background:var(--bg-card);border:2px solid var(--ink);border-radius:var(--radius-lg);box-shadow:0 4px 0 var(--ink-soft)}.btn{border:2px solid var(--ink);border-radius:var(--radius-pill);height:36px;color:var(--text-primary);white-space:nowrap;box-shadow:var(--shadow-sticker-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), color var(--transition-fast);background:#fff;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--shadow-sticker);transform:translate(-1px,-1px)}.btn:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-light)}.btn-default{color:var(--text-primary);background:#fff}.btn-default:hover:not(:disabled){background:var(--primary-50)}.btn-ghost{box-shadow:none;color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){box-shadow:none;background:var(--bg-hover);color:var(--text-primary);transform:none}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.05)}.btn-lg{height:44px;padding:0 24px;font-size:15px}.btn-sm{height:30px;box-shadow:1px 1px 0 var(--ink);padding:0 14px;font-size:13px}.btn-icon{width:36px;padding:0}.input,.textarea{border:2px solid var(--border-default);border-radius:var(--radius-md);width:100%;height:40px;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;outline:none;padding:0 14px;font-size:14px}.textarea{resize:vertical;height:auto;min-height:96px;padding:10px 14px;line-height:1.7}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.input:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--primary-100)}.tag{border:1.5px solid var(--ink);border-radius:var(--radius-pill);background:var(--primary-50);height:24px;color:var(--primary-dark);white-space:nowrap;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.tag-gray{background:var(--gray-100);color:var(--gray-600)}.tag-green{color:#12796a;background:#e2fbf4}.tag-amber{color:#8a5a00;background:#fff4d6}.tag-red{color:#b32b2b;background:#ffe9e9}.tag-sky{color:#16628f;background:#e6f4ff}.empty{text-align:center;color:var(--text-tertiary);padding:52px 16px;font-size:13px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.f12{font-size:12px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.spin{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:root:root{--el-color-primary:#ff6b9d;--el-color-primary-light-3:#ff8fb6;--el-color-primary-light-5:#ffb3cd;--el-color-primary-light-7:#ffd0e0;--el-color-primary-light-8:#ffe0ec;--el-color-primary-light-9:#fff0f6;--el-color-primary-dark-2:#e74e85;--el-color-success:#2fc9a5;--el-color-warning:#ffb020;--el-color-danger:#ff5b5b;--el-border-radius-base:10px;--el-font-family:var(--font-sans)}.el-button{border-radius:var(--radius-pill);font-weight:600}.el-button.is-link{border-radius:6px;background:0 0!important}.el-table th.el-table__cell{background:var(--gray-50)!important}.el-tag{border-radius:var(--radius-pill)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent}@media (width<=767px){.page{padding:0 14px}.card{border-radius:16px}.input,.textarea,input,textarea,select,.el-input__inner.el-input__inner,.el-textarea__inner.el-textarea__inner{font-size:16px}button,.btn,a{touch-action:manipulation}.btn{height:40px}.btn-sm{height:34px}.btn-lg{height:46px}.tag{height:23px;font-size:11.5px}.btn:hover:not(:disabled){box-shadow:var(--shadow-sticker-sm);transform:none}}
