:root{--brand:#E6157A;--brand-deep:#A10E56;--accent:#06B6D4;--bg:#FBF9FC;--ink:#1E1622;--card:#FFFFFF;--line:rgba(30,22,34,0.09);--muted:rgba(30,22,34,0.62);--danger:#B4452F;--pine:var(--brand);--pine-deep:var(--brand-deep);--pollen:var(--accent);--moss:#F5B8D6;--shadow-xs:0 1px 2px rgba(30,22,34,.05);--shadow-sm:0 1px 2px rgba(30,22,34,.04),0 2px 8px rgba(30,22,34,.06);--shadow-md:0 2px 4px rgba(30,22,34,.05),0 10px 24px rgba(30,22,34,.09);--shadow-lg:0 16px 40px rgba(30,22,34,.14);--line-strong:rgba(30,22,34,.16);--tint:color-mix(in srgb,var(--brand) 7%,transparent);--tint-hover:color-mix(in srgb,var(--brand) 12%,transparent);--ring:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent);--r-sm:8px;--r-md:10px;--r-lg:14px;--t:.15s ease}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-noto-sans-tc),sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font:inherit}.admin-shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.admin-shell:has(.admin-nav.is-collapsed){grid-template-columns:60px 1fr}.admin-nav{background:var(--pine-deep);color:#F2F5F0;padding:16px 12px;display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:hidden}.admin-nav-head{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 14px}.admin-nav .brand{font-weight:700;font-size:1.15rem;letter-spacing:.02em;white-space:nowrap}.admin-collapse-btn{background:rgba(255,255,255,.1);color:#fff;border:none;cursor:pointer;width:28px;height:28px;border-radius:8px;font-size:.9rem;flex-shrink:0}.admin-collapse-btn:hover{background:rgba(255,255,255,.2)}.admin-mobile-close{display:none}.admin-nav-scroll{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.admin-nav-scroll::-webkit-scrollbar{width:5px}.admin-nav-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:9px}.admin-nav-group{margin-bottom:6px}.admin-group-label{width:100%;display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;cursor:pointer;font-size:.92rem;font-weight:700;letter-spacing:.03em;color:rgba(242,245,240,.92);padding:12px 12px 7px;font-family:inherit}.admin-group-label:hover{color:#fff}.admin-fold-caret{transition:transform .2s;font-size:.8rem}.admin-fold-caret.is-folded{transform:rotate(-90deg)}.admin-group-icon{font-size:1.1rem}.admin-group-items{display:flex;flex-direction:column;gap:2px}.admin-nav a{display:block;padding:8px 12px 8px 22px;border-radius:10px;font-size:.86rem;color:rgba(242,245,240,.72);text-decoration:none;white-space:nowrap;transition:background var(--t),color var(--t)}.admin-nav a:hover{background:rgba(255,255,255,.08);color:#fff}.admin-nav a.active{background:var(--pine);color:#fff;font-weight:600;box-shadow:0 2px 10px rgba(230,21,122,.35)}.admin-nav-footer{padding:12px;font-size:.78rem;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-nav-footer.is-link{display:flex;align-items:center;justify-content:space-between;gap:8px;color:inherit;text-decoration:none;border-radius:10px;margin:0 6px 6px;padding:10px 12px;transition:background .15s,opacity .15s}.admin-nav-footer.is-link:hover{background:rgba(255,255,255,.08);opacity:1}.admin-nav-footer-text{overflow:hidden;text-overflow:ellipsis}.admin-nav-footer-icon{flex-shrink:0;font-size:.82rem}.admin-nav.is-collapsed .admin-group-label{justify-content:center;padding:10px 0 6px;font-size:0;cursor:default;pointer-events:none;border-top:1px solid rgba(255,255,255,.08);margin-top:6px}.admin-nav.is-collapsed .admin-group-icon{font-size:.95rem;opacity:.55}.admin-nav.is-collapsed .admin-fold-caret{display:none}.admin-nav.is-collapsed .admin-group-items a,.admin-nav.is-collapsed .admin-nav a{display:flex;align-items:center;justify-content:center;padding:10px 0;margin:1px 6px;border-radius:10px}.admin-item-icon{font-size:1.15rem;line-height:1}.admin-scrim,.admin-topbar{display:none}.admin-main{padding:34px 40px;max-width:1100px;min-width:0}.admin-main h1{font-size:1.5rem;margin-bottom:4px}.admin-main .sub{color:var(--muted);font-size:.92rem;margin-bottom:26px}@media (max-width:820px){.admin-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.admin-shell:has(.admin-nav.is-collapsed){grid-template-columns:1fr}.admin-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--pine-deep);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:30}.admin-hamburger{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0}.admin-topbar-brand{font-weight:700}.admin-nav{position:fixed;top:0;left:0;z-index:50;width:260px;transform:translateX(-100%);transition:transform .25s ease}.admin-nav.is-mobile-open{transform:translateX(0)}.admin-nav.is-collapsed{width:260px}.admin-nav.is-collapsed .admin-nav a{justify-content:flex-start;text-align:left;padding:8px 12px 8px 22px;margin:0}.admin-nav.is-collapsed .admin-group-label{justify-content:space-between;padding:12px 12px 7px;font-size:.92rem;pointer-events:auto;cursor:pointer;border-top:none;margin-top:0}.admin-collapse-btn{display:none}.admin-mobile-close{display:block;background:rgba(255,255,255,.1);color:#fff;border:none;cursor:pointer;width:28px;height:28px;border-radius:8px}.admin-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}.admin-main{padding:20px 16px}}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.panel h2{font-size:1.05rem;margin-bottom:14px;letter-spacing:-.01em}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:22px}@media (max-width:820px){.stat-row{grid-template-columns:repeat(2,1fr);gap:10px}}@media (max-width:400px){.stat-row{grid-template-columns:1fr}}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t)}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat .label{font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.02em}.stat .value{font-size:1.8rem;font-weight:700;color:var(--pine-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.25}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th{text-align:left;font-weight:600;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line-strong);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase}table.data td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}table.data tbody tr{transition:background var(--t)}table.data tbody tr:hover td{background:var(--tint)}table.data tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.01em;background:var(--bg);border:1px solid var(--line);white-space:nowrap}.badge.green{background:rgba(230,21,122,.1);color:var(--pine);border-color:rgba(230,21,122,.25)}.badge.amber{background:rgba(228,161,27,.12);color:#8a6206;border-color:rgba(228,161,27,.3)}.badge.red{background:rgba(180,69,47,.1);color:var(--danger);border-color:rgba(180,69,47,.25)}.btn{display:inline-block;padding:9px 20px;border-radius:999px;border:none;font-weight:600;font-size:.92rem;letter-spacing:.01em;transition:background var(--t),box-shadow var(--t),transform var(--t),color var(--t)}.btn:focus-visible{outline:2px solid var(--pine);outline-offset:2px;box-shadow:var(--ring)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--pine);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--pine-deep);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;border:1.5px solid var(--pine);color:var(--pine)}.btn-ghost:hover{background:var(--tint-hover)}.btn-danger{background:transparent;border:1.5px solid var(--danger);color:var(--danger)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.field{margin-bottom:14px}.field label{display:block;font-size:.84rem;font-weight:600;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--ink);transition:border-color var(--t),box-shadow var(--t)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--pine);box-shadow:var(--ring)}.field .err{color:var(--danger);font-size:.8rem;margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.alert{border-radius:var(--r-md);padding:12px 16px;font-size:.88rem;margin-bottom:16px;border-left-width:3px}.alert.error{background:rgba(180,69,47,.08);color:var(--danger);border:1px solid rgba(180,69,47,.2);border-left:3px solid var(--danger)}.alert.ok{background:var(--tint);color:var(--pine);border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);border-left:3px solid var(--pine)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:40px 20px;color:var(--muted)}.empty-icon{width:46px;height:46px;display:grid;place-items:center;margin-bottom:6px;border-radius:999px;background:var(--tint);font-size:1.35rem}.empty-title{font-weight:600;color:var(--ink);font-size:.95rem}.empty-sub{font-size:.86rem;max-width:30em;line-height:1.7}.empty .btn{margin-top:10px}.skeleton{position:relative;overflow:hidden;background:var(--line);border-radius:var(--r-sm)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--card) 65%,transparent),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px;margin-bottom:10px}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}.section-nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:10px 0;margin-bottom:18px;scrollbar-width:none;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.section-nav::-webkit-scrollbar{display:none}.section-nav a{flex:0 0 auto;padding:6px 13px;border-radius:999px;font-size:.82rem;font-weight:600;color:var(--muted);white-space:nowrap;border:1px solid var(--line);background:var(--card);transition:color var(--t),background var(--t),border-color var(--t),box-shadow var(--t)}.section-nav a:hover{color:var(--ink);border-color:var(--line-strong)}.section-nav a.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:var(--shadow-sm)}.section-target{scroll-margin-top:72px}@media (max-width:820px){.section-nav{top:48px}.section-target{scroll-margin-top:116px}}.chip-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.chip-row+.chip-row{margin-top:10px}.chip-label{font-size:.8rem;margin-right:2px}.chip,.chip-label{color:var(--muted);font-weight:600}.chip{display:inline-block;padding:5px 13px;border-radius:999px;font-size:.82rem;white-space:nowrap;background:var(--card);border:1px solid var(--line);transition:color var(--t),background var(--t),border-color var(--t),box-shadow var(--t)}.chip:hover{color:var(--ink);border-color:var(--line-strong)}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:var(--shadow-sm)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td.tnum,th.tnum{text-align:right}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.82rem;margin:18px 0}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:400px;margin:0}.auth-brand{font-weight:700;color:var(--brand);letter-spacing:.02em;margin-bottom:16px}.buy-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow-sm);padding:20px 22px;margin:18px 0 8px}.buy-price{font-size:1.9rem;font-weight:700;color:var(--brand-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.buy-progress{height:8px;background:var(--line);border-radius:999px;overflow:hidden}.buy-progress>div{height:100%;background:var(--brand)}.section-card{border:1.5px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;background:#fff}.section-card .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-card .head .name{font-weight:700;font-size:.95rem}.section-card .head .ops{display:flex;gap:6px}.icon-btn{border:1px solid var(--line);background:var(--bg);border-radius:var(--r-sm);width:30px;height:30px;font-size:.85rem;transition:border-color var(--t),color var(--t),background var(--t)}.icon-btn:hover{border-color:var(--pine);color:var(--pine);background:var(--tint)}.list-item{border:1px dashed var(--moss);border-radius:10px;padding:12px;margin-bottom:8px;background:var(--bg)}.wizard-q{font-size:1.15rem;font-weight:700;margin-bottom:14px}.wizard-progress{height:6px;background:var(--line);border-radius:999px;margin-bottom:22px;overflow:hidden}.wizard-progress>div{height:100%;background:var(--pollen);transition:width .3s ease}.hero{max-width:1080px;margin:0 auto;padding:84px 24px 64px;text-align:center}.hero .eyebrow{display:inline-block;font-size:.85rem;letter-spacing:.04em;color:var(--brand-deep);background:rgba(230,21,122,.08);padding:6px 16px;border-radius:999px;margin-bottom:22px}.hero h1{font-size:clamp(2rem,5.2vw,3.4rem);line-height:1.25;letter-spacing:-.01em;margin-bottom:20px}.hero h1 em{font-style:normal;color:var(--brand)}.hero .lede{font-size:clamp(1rem,1.9vw,1.15rem);line-height:2;color:var(--muted);margin-bottom:32px}.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.features,.growth{max-width:1080px;margin:0 auto;padding:64px 24px}.features h2,.growth h2{font-size:clamp(1.4rem,3vw,2rem);text-align:center;margin-bottom:36px;letter-spacing:-.01em}.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:18px;gap:18px}.stage{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 22px;box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t)}.stage:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.stage .tag{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--brand);margin-bottom:10px}.stage h3{font-size:1.05rem;margin-bottom:8px}.stage p{font-size:.9rem;line-height:1.8;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:20px;gap:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 24px;box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.card h3{font-size:1.1rem;margin-bottom:10px}.card p{font-size:.92rem;line-height:1.85;color:var(--muted)}@media (max-width:720px){.hero{padding:56px 20px 44px}.features,.growth{padding:44px 20px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:active,.card:hover,.course-card:hover,.stage:hover,.stat:hover{transform:none}}