:root{--color-brand: #C8102E;--color-brand-soft: #fff5f5;--color-brand-strong: #a30c25;--color-accent: #ffd700;--color-text: #1d1d1f;--color-text-2: #555;--color-text-3: #66666d;--color-text-4: #767680;--color-bg: #f5f5f7;--color-bg-2: #fafafa;--color-surface: #ffffff;--color-line: #e5e5e7;--color-line-soft: #f0f0f3;--color-success: #2e7d32;--color-success-bg: #e8f5e9;--color-warn: #7a4300;--color-warn-bg: #fff8e1;--color-danger: #c62828;--color-danger-bg: #ffebee;--color-info: #0d47a1;--color-info-bg: #e3f2fd;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 15, 30, .04);--shadow-sm: 0 1px 3px rgba(15, 15, 30, .05), 0 1px 2px rgba(15, 15, 30, .04);--shadow-md: 0 4px 12px rgba(15, 15, 30, .06), 0 2px 4px rgba(15, 15, 30, .04);--shadow-lg: 0 12px 32px rgba(15, 15, 30, .08), 0 4px 12px rgba(15, 15, 30, .04);--shadow-glow: 0 0 0 3px rgba(200, 16, 46, .18);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .8);--glass-blur: blur(14px) saturate(140%);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 28px;--text-3xl: 36px}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Helvetica Neue,Arial,sans-serif;font-feature-settings:"tnum" on,"ss01" on;background:radial-gradient(1200px 600px at 0% 0%,rgba(200,16,46,.04),transparent 60%),radial-gradient(900px 500px at 100% 100%,rgba(255,215,0,.05),transparent 60%),var(--color-bg);background-attachment:fixed;color:var(--color-text);font-size:var(--text-base);line-height:1.55;letter-spacing:.01em}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{letter-spacing:-.01em;font-weight:700;color:var(--color-text)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl);line-height:1.3}h3{font-size:var(--text-lg);line-height:1.4}button{cursor:pointer;font-family:inherit;font-feature-settings:inherit}input,textarea,select{font-family:inherit;font-size:inherit}a{color:var(--color-brand);text-decoration:none;transition:color .15s var(--ease-out)}a:hover{color:var(--color-brand-strong);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.surface{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-line-soft)}.surface-glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#0000002e;border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#00000052;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}:where(button,input,select,textarea,a):focus-visible{outline:none;box-shadow:var(--shadow-glow);border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;background:var(--color-line-soft);color:var(--color-text-2);letter-spacing:.02em}.badge.ACTIVE,.badge.PAID{background:var(--color-success-bg);color:var(--color-success)}.badge.SUSPENDED,.badge.SETUP{background:var(--color-warn-bg);color:var(--color-warn)}.badge.CLOSED,.badge.FAILED,.badge.VOIDED{background:var(--color-danger-bg);color:var(--color-danger)}.badge.PENDING{background:var(--color-info-bg);color:var(--color-info)}.dim{color:var(--color-text-3)}.dim.small{font-size:var(--text-xs)}button:disabled{cursor:not-allowed;opacity:.55}.btn,.btn-sm,.btn-primary,.btn-confirm,.btn-cancel,.btn-hero,.btn-add,.btn-x,.primary-btn,.danger-btn,.submit-btn,.apply-btn,.search-btn,.back-btn,.logout-btn,.close-btn,.role-btn,.ft-btn,.hd-btn,.link-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;font-family:inherit;font-weight:600;letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .15s var(--ease-out),color .15s var(--ease-out),transform .12s var(--ease-out),box-shadow .15s var(--ease-out),border-color .15s var(--ease-out)}.btn,.btn-primary,.btn-confirm,.btn-cancel,.primary-btn,.danger-btn,.submit-btn,.apply-btn,.search-btn,.back-btn,.logout-btn,.role-btn,.ft-btn{padding:8px 16px;min-height:36px;font-size:var(--text-base);border-radius:var(--radius-sm)}.btn-sm{padding:4px 10px;min-height:28px;font-size:var(--text-sm);border-radius:var(--radius-xs)}.btn-hero{padding:12px 24px;min-height:48px;font-size:var(--text-lg);border-radius:var(--radius-md)}.btn:not(:disabled):hover,.btn-sm:not(:disabled):hover,.btn-primary:not(:disabled):hover,.btn-confirm:not(:disabled):hover,.btn-cancel:not(:disabled):hover,.btn-hero:not(:disabled):hover,.primary-btn:not(:disabled):hover,.danger-btn:not(:disabled):hover,.submit-btn:not(:disabled):hover,.apply-btn:not(:disabled):hover,.search-btn:not(:disabled):hover,.back-btn:not(:disabled):hover,.role-btn:not(:disabled):hover,.ft-btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:not(:disabled):active,.btn-sm:not(:disabled):active,.btn-primary:not(:disabled):active,.btn-confirm:not(:disabled):active,.primary-btn:not(:disabled):active,.danger-btn:not(:disabled):active,.btn-hero:not(:disabled):active{transform:translateY(0);box-shadow:var(--shadow-xs)}.link-btn{padding:2px 6px;background:transparent;border:0;color:var(--color-brand);font-size:inherit;min-height:auto}.link-btn:not(:disabled):hover{color:var(--color-brand-strong);text-decoration:underline;text-underline-offset:3px}@media print{body{background:#fff}}
