@import "https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700&family=Noto+Serif+TC:wght@300;400;500;600;700;900&family=Noto+Sans+TC:wght@300;400;500;700&family=DM+Serif+Display:ital@0;1&family=JetBrains+Mono:wght@300;400;500&display=swap";:root{--cream:#faf5ea;--cream-deep:#f2e9d2;--cream-warm:#f5ecd7;--paper:#fffbf1;--paper-edge:#ebdfc2;--pink-50:#fbede7;--pink:#f4d2c7;--pink-200:#ecbfb1;--yellow-50:#fbf2c8;--yellow:#f2dc81;--yellow-200:#e6c95f;--camel-50:#ebddc4;--camel:#b98f5f;--camel-700:#8e6b43;--camel-900:#5f4628;--ink:#2c231b;--ink-soft:#4f4337;--ink-mute:#8c7f6f;--ink-disable:#b9ac97;--good:#6a7e4f;--warn:#c28b3a;--error:#b85544;--serif:"Shippori Mincho", "Noto Serif TC", "Songti TC", serif;--sans:"Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif;--display:"DM Serif Display", "Shippori Mincho", serif;--mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--r-sm:6px;--r:12px;--r-md:16px;--r-lg:22px;--r-xl:32px;--shadow-sm:0 1px 2px #5946280f, 0 2px 6px #5946280a;--shadow:0 2px 6px #5946280f, 0 12px 28px #59462812;--shadow-lg:0 6px 14px #59462814, 0 30px 60px #5946281a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;letter-spacing:.01em;font-size:15px}h1,h2,h3,h4,h5{font-family:var(--serif);letter-spacing:.02em;font-weight:500;line-height:1.3}p{line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;padding:0}ul,ol{list-style:none}img{max-width:100%;display:block}input,textarea,select{font:inherit;color:inherit}.chip{letter-spacing:.15em;font-size:11px;font-family:var(--mono);border:1px solid var(--paper-edge);background:var(--paper);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.chip.pink{background:var(--pink-50);border-color:var(--pink)}.chip.yellow{background:var(--yellow-50);border-color:var(--yellow)}.chip.camel{background:var(--camel-50);border-color:var(--camel);color:var(--camel-900)}.chip.ink{background:var(--ink);color:var(--cream);border-color:var(--ink)}.chip.good{border-color:var(--good);color:var(--good);background:#eef3e8}.chip.warn{border-color:var(--warn);color:var(--warn);background:#fdf3e4}.btn{font-family:var(--serif);letter-spacing:.08em;background:var(--ink);color:var(--cream);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:15px;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.btn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.camel{background:var(--camel-700)}.btn.pink{background:var(--pink-200);color:var(--camel-900)}.btn.yellow{background:var(--yellow);color:var(--ink)}.btn.ghost{color:var(--ink);border:1px solid var(--paper-edge);background:0 0}.btn.ghost:hover{background:var(--cream-deep)}.btn.sm{padding:8px 18px;font-size:13px}.btn.lg{padding:16px 32px;font-size:17px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.card{background:var(--paper);border:1px solid var(--paper-edge);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.lift{transition:transform .25s,box-shadow .25s}.lift:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.grain{position:relative}.grain:after{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.35;border-radius:inherit;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18 0 0 0 0 0.14 0 0 0 0 0.09 0 0 0 0.45 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.18'/></svg>");position:absolute;inset:0}.manuscript{background-image:linear-gradient(var(--paper-edge) 1px, transparent 1px), linear-gradient(90deg, var(--paper-edge) 1px, transparent 1px);background-size:28px 28px;background-color:var(--paper)}.imgph{background:repeating-linear-gradient(135deg, var(--cream-deep) 0 14px, var(--cream-warm) 14px 28px);color:var(--ink-mute);font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;border-radius:var(--r);justify-content:center;align-items:center;font-size:10px;display:flex;position:relative;overflow:hidden}.imgph.pink{background:repeating-linear-gradient(135deg, var(--pink-50) 0 14px, var(--pink) 14px 28px)}.imgph.yellow{background:repeating-linear-gradient(135deg, var(--yellow-50) 0 14px, var(--yellow) 14px 28px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes ttFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes progressFill{0%{width:0%}to{width:var(--target-w,100%)}}@keyframes dotsAnim{0%{content:"."}33%{content:".."}66%{content:"..."}to{content:"."}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in-up{animation:.8s cubic-bezier(.22,.7,.3,1) both fadeInUp}.fade-in{animation:.6s both fadeIn}.scale-in{animation:.5s cubic-bezier(.22,.7,.3,1) both scaleIn}.tt-fade-in{animation:.8s cubic-bezier(.22,.7,.3,1) both ttFadeIn}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.delay-6{animation-delay:.6s}.progress-track{background:var(--cream-deep);border-radius:99px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--camel), var(--pink-200));border-radius:99px;height:100%;transition:width .6s}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-mute);font-size:10px}.form-input{background:var(--paper);border:1.5px solid var(--paper-edge);border-radius:var(--r);font-family:var(--mono);color:var(--ink);outline:none;width:100%;padding:13px 16px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--camel-700);box-shadow:0 0 0 3px #8e6b431a}.form-input.error{border-color:var(--error)}.stepper{align-items:center;gap:8px;display:flex}.step-node{width:28px;height:28px;font-family:var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.step-node.done{background:var(--camel-700);color:var(--cream)}.step-node.active{background:var(--ink);color:var(--cream)}.step-node.pend{background:var(--cream-deep);color:var(--ink-mute)}.step-line{background:var(--paper-edge);width:36px;height:1px}.tt-table{border-collapse:collapse;width:100%;font-size:13px}.tt-table th{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-soft);background:var(--cream-deep);text-align:left;white-space:nowrap;padding:12px 16px;font-size:10px}.tt-table td{border-top:1px solid var(--paper-edge);vertical-align:middle;padding:13px 16px}.tt-table tbody tr{cursor:pointer;transition:background .12s}.tt-table tbody tr:hover td{background:#f2e9d24d}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--paper-edge);border-radius:99px}.sidebar-layout{min-height:100vh;display:flex}.sidebar-layout .sidebar{flex-shrink:0}.sidebar-layout .main-content{flex:1;overflow:auto}.page-enter{animation:.35s cubic-bezier(.22,.7,.3,1) both fadeInUp}@media (width<=768px){.hide-mobile{display:none!important}.btn.lg{padding:14px 24px;font-size:15px}}
