:root{--btn-height:48px;--btn-radius:12px;--btn-padding-inline:24px;--btn-gap:10px;--btn-font-size:15px;--btn-font-weight:600;--btn-focus-ring:rgba(234,88,12,.22);--btn-outline-bg:#fff;--btn-outline-border:#cbd5e1;--btn-outline-text:#475569;--btn-outline-hover-bg:#f8fafc;--btn-outline-hover-border:#94a3b8;--btn-outline-hover-text:#1e293b;--btn-primary-bg:#e67e22;--btn-primary-hover-bg:#d97706;--btn-primary-text:#fff;--btn-primary-shadow:rgba(230,126,34,.24);--btn-primary-shadow-hover:rgba(230,126,34,.34);--btn-outline-primary-bg:#fff;--btn-outline-primary-border:#e67e22;--btn-outline-primary-text:#d97706;--btn-outline-primary-hover-bg:#fff7ed;--btn-ghost-bg:transparent;--btn-ghost-text:#64748b;--btn-ghost-hover-bg:#f1f5f9;--btn-ghost-hover-text:#1e293b;--btn-auth-bg:linear-gradient(135deg,#e67e22,#ea580c);--btn-auth-hover-bg:linear-gradient(135deg,#d97706,#ea580c);--btn-auth-shadow:rgba(234,88,12,.25);--btn-nav-bg:hsla(0,0%,100%,.7);--btn-nav-border:rgba(148,163,184,.28);--btn-nav-shadow:0 10px 24px rgba(15,23,42,.08);--btn-nav-hover-bg:hsla(0,0%,100%,.92);--btn-nav-active-bg:#e2e8f0;--btn-nav-active-text:#0f172a}.btn,.btn-inline,.btn-link,.btn-nav,.btn-submit{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid transparent;border-radius:var(--btn-radius);color:#0f172a;cursor:pointer;display:inline-flex;font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);gap:var(--btn-gap);justify-content:center;letter-spacing:.01em;line-height:1.1;min-height:var(--btn-height);padding:0 var(--btn-padding-inline);text-decoration:none;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),background-color .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease,filter .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn-inline:focus-visible,.btn-link:focus-visible,.btn-nav:focus-visible,.btn-submit:focus-visible,.btn:focus-visible{outline:3px solid var(--btn-focus-ring);outline-offset:3px}.btn-inline.is-disabled,.btn-inline:disabled,.btn-link.is-disabled,.btn-nav.is-disabled,.btn-submit:disabled,.btn:disabled,[aria-disabled=true].btn-inline,[aria-disabled=true].btn-link,[aria-disabled=true].btn-nav{background:linear-gradient(#e2e8f0f5,#e2e8f0f5),repeating-linear-gradient(-45deg,#ffffff75,#ffffff75 8px,#cbd5e15c 0 16px)!important;border-color:#cbd5e1!important;box-shadow:none;color:#94a3b8!important;cursor:not-allowed;opacity:1;pointer-events:none;text-shadow:none;transform:none}.btn-inline:not(:disabled):hover,.btn-link:not(.is-disabled):hover,.btn-nav:not(.is-disabled):hover,.btn-submit:hover:not(:disabled),.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-inline:not(:disabled):active,.btn-link:not(.is-disabled):active,.btn-nav:not(.is-disabled):active,.btn-submit:active:not(:disabled),.btn:active:not(:disabled){transform:translateY(0)}.btn-inline.btn-outline,.btn-link.btn-outline,.btn-nav.btn-outline,.btn.btn-outline{background:var(--btn-outline-bg);border-color:var(--btn-outline-border);color:var(--btn-outline-text)}.btn-inline.btn-outline:not(:disabled):hover,.btn-link.btn-outline:not(.is-disabled):hover,.btn-nav.btn-outline:not(.is-disabled):hover,.btn.btn-outline:hover:not(:disabled){background:var(--btn-outline-hover-bg);border-color:var(--btn-outline-hover-border);color:var(--btn-outline-hover-text)}.btn-inline.btn-primary,.btn-link.btn-auth,.btn-link.btn-primary,.btn-submit,.btn.btn-auth,.btn.btn-primary{background:var(--btn-primary-bg);border-color:transparent;box-shadow:0 4px 12px var(--btn-primary-shadow);color:var(--btn-primary-text)}.btn-inline.btn-primary:not(:disabled):hover,.btn-link.btn-primary:not(.is-disabled):hover,.btn.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover-bg);box-shadow:0 6px 16px var(--btn-primary-shadow-hover);transform:translateY(-2px)}.btn-inline.btn-auth,.btn-link.btn-auth,.btn-submit,.btn.btn-auth{background:var(--btn-auth-bg);box-shadow:0 4px 12px var(--btn-auth-shadow);font-size:16px;font-weight:700;min-height:52px}.btn-inline.btn-auth:not(:disabled):hover,.btn-link.btn-auth:not(.is-disabled):hover,.btn-submit:hover:not(:disabled),.btn.btn-auth:hover:not(:disabled){background:var(--btn-auth-hover-bg);box-shadow:0 8px 20px #ea580c4d;transform:translateY(-2px)}.btn-submit:disabled,.btn.btn-auth:disabled{background:#cbd5e1}.btn-inline.btn-outline-primary,.btn-link.btn-outline-primary,.btn.btn-outline-primary{background:var(--btn-outline-primary-bg);border-color:var(--btn-outline-primary-border);box-shadow:0 2px 8px #e67e2214;color:var(--btn-outline-primary-text)}.btn-inline.btn-outline-primary:not(:disabled):hover,.btn-link.btn-outline-primary:not(.is-disabled):hover,.btn.btn-outline-primary:hover:not(:disabled){background:var(--btn-outline-primary-hover-bg);box-shadow:0 6px 16px #e67e2224}.btn-inline.btn-ghost,.btn-link.btn-ghost,.btn-nav.btn-ghost,.btn.btn-ghost{background:var(--btn-ghost-bg);border-color:transparent;color:var(--btn-ghost-text)}.btn-inline.btn-ghost:not(:disabled):hover,.btn-link.btn-ghost:not(.is-disabled):hover,.btn-nav.btn-ghost:not(.is-disabled):hover,.btn.btn-ghost:hover:not(:disabled){background:var(--btn-ghost-hover-bg);color:var(--btn-ghost-hover-text)}.btn-link.btn-success-lg,.btn.btn-success-lg{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:transparent;border-radius:16px;box-shadow:0 8px 20px #22c55e4d;color:#fff;font-size:20px;font-weight:700;min-height:64px;padding:0 48px}.btn-link.btn-success-lg:not(.is-disabled):hover,.btn.btn-success-lg:hover:not(:disabled){box-shadow:0 12px 28px #22c55e66;transform:translateY(-4px)}.btn-inline{border-radius:10px;font-size:13px;font-weight:600;min-height:36px;padding:0 14px}.btn-nav{background:var(--btn-nav-bg);border-color:var(--btn-nav-border);border-radius:999px;box-shadow:var(--btn-nav-shadow);color:#334155;font-size:14px;min-height:42px;padding:0 18px}.btn-nav:hover:not(.is-disabled){background:var(--btn-nav-hover-bg);color:#0f172a}.btn-nav.btn-nav--active{background:var(--btn-nav-active-bg);border-color:transparent;box-shadow:none;color:var(--btn-nav-active-text)}@media(max-width:640px){.btn,.btn-link,.btn-submit{width:100%}.btn-inline,.btn-nav{width:auto}}:root{--primary-orange:#f47f20;--text-primary:#333;--text-secondary:#666}body{font-family:Noto Sans TC,sans-serif;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7f9}*{box-sizing:border-box}@media print{.layout-default{background-color:#fff!important}.app-footer,.app-header{display:none!important}}
