.app-icon[data-v-5dcbce0b]{flex:none;display:inline-block;vertical-align:middle}.toast-host[data-v-71005b61]{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.toast[data-v-71005b61]{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:var(--r-pill);background:#ffffffd9;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);box-shadow:var(--shadow-lg);border:1px solid var(--line);font-size:15px;font-weight:500;color:var(--ink-800)}.toast--success[data-v-71005b61]{color:var(--success)}.toast--error[data-v-71005b61]{color:var(--danger)}.toast--info[data-v-71005b61]{color:var(--brand-600)}.toast-enter-active[data-v-71005b61],.toast-leave-active[data-v-71005b61]{transition:all .4s var(--ease-out)}.toast-enter-from[data-v-71005b61]{opacity:0;transform:translateY(-16px)}.toast-leave-to[data-v-71005b61]{opacity:0;transform:translateY(-10px)}:root{--brand-700: #0746CC;--brand-600: #0a5bff;--brand-500: #2c7bff;--brand-400: #5b97ff;--accent-cyan: #00d1ff;--accent-violet: #7c5cff;--brand-gradient: linear-gradient(120deg, #0a5bff 0%, #00d1ff 100%);--brand-gradient-soft: linear-gradient(120deg, rgba(10, 91, 255, .1), rgba(0, 209, 255, .1));--glow: radial-gradient(circle, rgba(10, 91, 255, .18), transparent 60%);--ink-900: #0a0e1a;--ink-800: #161c2c;--ink-700: #2a3142;--ink-600: #404a60;--ink-500: #5b6478;--ink-400: #8a93a6;--ink-300: #b9c0cf;--ink-200: #d8dee9;--line: #e6eaf2;--surface: #ffffff;--surface-2: #f5f7fb;--surface-3: #edf1f8;--success: #00b368;--warning: #ff9f0a;--danger: #ff453a;--info: #0a84ff;--font-sans: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Inter", system-ui, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", "Cascadia Code", Consolas, monospace;--fs-display-1: clamp(40px, 7vw, 88px);--fs-display-2: clamp(32px, 5vw, 60px);--fs-h1: clamp(28px, 4vw, 46px);--fs-h2: clamp(24px, 3vw, 34px);--fs-h3: 22px;--fs-lead: clamp(17px, 1.6vw, 21px);--fs-body: 17px;--fs-sm: 15px;--fs-cap: 13px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--sp-9: 96px;--sp-10: 128px;--r-sm: 12px;--r-md: 18px;--r-lg: 24px;--r-xl: 32px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(10, 30, 60, .04), 0 2px 10px rgba(10, 30, 60, .05);--shadow-md: 0 8px 30px rgba(10, 40, 80, .08);--shadow-lg: 0 24px 70px rgba(10, 40, 80, .14);--shadow-glow: 0 24px 90px rgba(10, 91, 255, .28);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-inout: cubic-bezier(.65, .05, .36, 1);--dur-fast: .2s;--dur-base: .42s;--dur-slow: .72s;--container: 1200px;--container-wide: 1440px;--nav-h: 70px;--page-x: clamp(20px, 5vw, 80px)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.65;color:var(--ink-800);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}a{color:inherit;text-decoration:none}img,svg,video{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}ul,ol{list-style:none}h1,h2,h3,h4{line-height:1.12;font-weight:600;letter-spacing:-.02em;color:var(--ink-900)}p{text-wrap:pretty}::selection{background:#0a5bff29;color:var(--ink-900)}:focus-visible{outline:2px solid var(--brand-600);outline-offset:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ink-200);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--ink-300);background-clip:content-box}#app{min-height:100vh}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--page-x)}.container-wide{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--page-x)}.section{padding-block:clamp(64px,9vw,140px);position:relative}.section-sm{padding-block:clamp(48px,6vw,88px)}.page-header+.section{padding-top:clamp(36px,5vw,72px)}.bg-soft{background:radial-gradient(circle at 14% 0%,rgba(10,91,255,.045),transparent 28%),radial-gradient(circle at 88% 18%,rgba(0,209,255,.045),transparent 30%),linear-gradient(180deg,#f8fbff 0%,var(--surface-2) 100%)}.bg-mesh{background:radial-gradient(60% 50% at 80% 0%,rgba(0,209,255,.08),transparent 70%),radial-gradient(50% 50% at 10% 20%,rgba(10,91,255,.07),transparent 70%)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-cap);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-600)}.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}.eyebrow:before{content:"";width:22px;height:2px;border-radius:2px;background:var(--brand-gradient)}.section-head{max-width:720px;margin-inline:auto;margin-bottom:var(--sp-8);text-align:center}.section-head .eyebrow{margin-bottom:var(--sp-3)}.section-title{font-size:var(--fs-display-2);letter-spacing:-.03em}.section-lead{margin-top:var(--sp-4);font-size:var(--fs-lead);color:var(--ink-500);line-height:1.6}.text-gradient{background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.text-muted{color:var(--ink-500)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 28px;border-radius:var(--r-pill);font-size:16px;font-weight:500;letter-spacing:-.01em;position:relative;overflow:hidden;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base),background var(--dur-base)}.btn svg{width:18px;height:18px}.btn-primary{background:var(--brand-gradient);color:#fff;box-shadow:0 8px 24px #0a5bff47}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translate(-130%);transition:transform .7s var(--ease-out)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 38px #0a5bff61}.btn-primary:hover:after{transform:translate(130%)}.btn-ghost{background:#fff9;color:var(--ink-800);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-ghost:hover{transform:translateY(-2px);border-color:var(--brand-400);box-shadow:var(--shadow-md)}.btn-text{height:auto;padding:0;color:var(--brand-600);font-weight:500;overflow:visible}.btn-text:hover{gap:12px}.btn-lg{height:58px;padding:0 34px;font-size:17px}.btn-sm{height:42px;padding:0 18px;font-size:14px}.btn-block{width:100%}.card{background:linear-gradient(180deg,#fffffffa,#fafcfffa),var(--surface);border:1px solid rgba(216,226,244,.92);border-radius:var(--r-lg);box-shadow:0 1px 2px #0a1e3c09,0 10px 28px #0a28500e;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base)}.card-hover:hover{transform:translateY(-7px);box-shadow:0 24px 70px #0a285024;border-color:#0a5bff40}.glass{background:#ffffffc2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.85);box-shadow:0 18px 60px #0a285017}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-pill);font-size:13px;font-weight:500;color:var(--brand-600);background:#0a5bff14}.chip-muted{color:var(--ink-500);background:var(--surface-3)}.grid{display:grid;gap:var(--sp-5)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1023px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--reveal-delay, 0s);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.reveal-fade{opacity:0;transition:opacity .9s var(--ease-out);transition-delay:var(--reveal-delay, 0s)}.reveal-fade.is-visible{opacity:1}.reveal-scale{opacity:0;transform:scale(.94);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--reveal-delay, 0s)}.reveal-scale.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal,.reveal-fade,.reveal-scale{transition:opacity .4s ease;transform:none}}.divider{height:1px;background:var(--line);border:0}.hidden{display:none!important}.mono{font-family:var(--font-mono)}.skeleton{background:linear-gradient(100deg,var(--surface-3) 30%,var(--surface-2) 50%,var(--surface-3) 70%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.form-grid{display:grid;gap:18px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px}.field__label{font-size:14px;font-weight:500;color:var(--ink-700)}.field__label .req{color:var(--danger);margin-left:2px}.input,.textarea,.select{width:100%;height:50px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);font-size:15px;font-family:inherit;color:var(--ink-900);transition:border-color .2s,box-shadow .2s}.textarea{height:auto;min-height:130px;padding:14px 16px;resize:vertical;line-height:1.6}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:42px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238A93A6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 4px #0a5bff1a}.input::placeholder,.textarea::placeholder{color:var(--ink-300)}.field--error .input,.field--error .textarea,.field--error .select{border-color:var(--danger);box-shadow:0 0 0 4px #ff453a14}.field__err{font-size:12px;color:var(--danger)}.form-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,52px);align-items:start}.form-card{padding:clamp(28px,4vw,44px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.form-aside{position:sticky;top:calc(var(--nav-h) + 20px)}.form-actions{margin-top:8px}@media(max-width:860px){.form-layout{grid-template-columns:1fr}.form-aside{position:static}}@media(max-width:640px){.form-row-2{grid-template-columns:1fr}}.admin-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:26px}.admin-title{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink-900)}.admin-sub{color:var(--ink-500);font-size:14px;margin-top:4px}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.admin-card--pad{padding:clamp(20px,3vw,32px)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:640px}.table th{text-align:left;font-size:13px;font-weight:600;color:var(--ink-500);padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:14px 18px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-800);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .15s}.table tbody tr:hover td{background:var(--surface-2)}.table__thumb{width:56px;height:42px;object-fit:cover;border-radius:8px;background:var(--surface-3)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge--new{background:#0a5bff1a;color:var(--brand-600)}.badge--processing{background:#ff9f0a24;color:#b7791f}.badge--done{background:#00b3681f;color:var(--success)}.badge--muted{background:var(--surface-3);color:var(--ink-500)}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:10px;color:var(--ink-500);transition:all .2s}.icon-btn:hover{background:var(--surface-2);color:var(--ink-900)}.icon-btn--danger:hover{background:#ff453a1a;color:var(--danger)}.row-actions{display:flex;gap:4px}.admin-empty{text-align:center;padding:64px 0;color:var(--ink-400)}.admin-empty :deep(svg),.admin-empty svg{margin:0 auto 14px;color:var(--ink-300)}.admin-form-section{padding:clamp(20px,3vw,32px)}.admin-form-section+.admin-form-section{border-top:1px solid var(--line)}.admin-form-section__title{font-size:16px;font-weight:600;margin-bottom:18px;color:var(--ink-900)}.repeat{display:flex;flex-direction:column;gap:12px}.repeat__row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.repeat__row--2{grid-template-columns:1fr 1fr auto}.repeat__row--3{grid-template-columns:1.4fr 1fr 1fr auto}.repeat__card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}.repeat__card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.save-bar{display:flex;justify-content:flex-end;margin-top:20px}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--ink-700)}.checkbox input{width:18px;height:18px;accent-color:var(--brand-600)}.checkbox-group{display:flex;gap:24px;flex-wrap:wrap}.detail-list{display:flex;flex-direction:column}.detail-row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-row:last-child{border-bottom:none}.detail-row__k{color:var(--ink-500);font-size:14px}.detail-row__v{color:var(--ink-900);font-size:14px;white-space:pre-wrap;word-break:break-word}.status-select{height:38px;padding:0 30px 0 12px;font-size:13px;border-radius:9px;min-width:110px}
