:root{color-scheme:light;--bg:#f4f5f7;--panel:#ffffff;--text:#171a1f;--muted:#626a73;--line:#d9dde3;--line-strong:#c3c9d1;--focus:#1f6feb;--success-bg:#e8f5ee;--success-text:#17633a;--warning-bg:#fff4ce;--warning-text:#7a5600;--danger-bg:#fde8e8;--danger-text:#9f2323;--info-bg:#e8f1fb;--info-text:#24577f;--neutral-bg:#edf0f3;--neutral-text:#3d454d}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Arial,Noto Sans TC,Microsoft JhengHei,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.button{align-items:center;border:1px solid var(--line-strong);border-radius:6px;cursor:pointer;display:inline-flex;height:40px;justify-content:center;min-width:82px;padding:0 14px;white-space:nowrap}.button:disabled{background:#c6cbd2;border-color:#c6cbd2;color:#ffffff;cursor:not-allowed}.button.primary{background:#171a1f;border-color:#171a1f;color:#ffffff}.button.secondary{background:#ffffff;color:#171a1f}.centerState,.loginPage{align-items:center;display:flex;min-height:100vh;justify-content:center;padding:24px}.loginPanel{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:24px;gap:24px;max-width:420px;padding:28px;width:100%}.eyebrow{color:var(--muted);margin:0 0 6px}.loginPanel h1,.pageHeader h1{letter-spacing:0;margin:0}.formStack{display:grid;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:6px;gap:6px;min-width:0}.field span{color:var(--muted);font-size:13px}.field input,.field select{background:#ffffff;border:1px solid var(--line-strong);border-radius:6px;height:40px;min-width:0;padding:0 10px}.field input:focus,.field select:focus{border-color:var(--focus);outline:2px solid rgba(31,111,235,.14)}.inlineError{background:var(--danger-bg);border:1px solid #f2b8b8;border-radius:6px;color:var(--danger-text);padding:10px 12px}.appFrame{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:#ffffff;border-right:1px solid var(--line);padding:20px 16px}.brand{display:grid;grid-gap:4px;gap:4px;margin-bottom:24px}.brand span{color:var(--muted);font-size:13px}.brand strong{font-size:18px}.navItem{border-radius:6px;display:block;padding:10px 12px}.navItem.active{background:#edf0f3;font-weight:700}.mainFrame{min-width:0}.topbar{align-items:center;background:#ffffff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:64px;padding:12px 24px}.topbar div{display:grid;grid-gap:2px;gap:2px;min-width:0}.topbar span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{display:grid;grid-gap:18px;gap:18px;padding:24px}.pageHeader{align-items:flex-end;display:flex;justify-content:space-between;gap:16px}.pageHeader p,.pageHeader span{color:var(--muted);margin:6px 0 0}.backLink{color:var(--muted);display:inline-block;font-size:14px;margin-bottom:8px}.filterBar{align-items:end;background:#ffffff;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(130px,1fr)) auto;padding:16px}.filterActions{display:flex;gap:8px}.stateBox{background:#ffffff;border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;padding:18px}.errorBox{color:var(--danger-text)}.tableWrap{background:#ffffff;border:1px solid var(--line);border-radius:8px;overflow-x:auto}.dataTable{border-collapse:collapse;min-width:1040px;width:100%}.dataTable td,.dataTable th{border-bottom:1px solid var(--line);max-width:180px;overflow:hidden;padding:12px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dataTable th{color:var(--muted);font-size:13px;font-weight:700}.dataTable tbody tr{cursor:pointer}.dataTable tbody tr:hover{background:#f8f9fb}.statusBadge{border-radius:999px;display:inline-flex;font-size:13px;font-weight:700;min-height:26px;padding:4px 10px;white-space:nowrap}.statusBadge.success{background:var(--success-bg);color:var(--success-text)}.statusBadge.warning{background:var(--warning-bg);color:var(--warning-text)}.statusBadge.danger{background:var(--danger-bg);color:var(--danger-text)}.statusBadge.info{background:var(--info-bg);color:var(--info-text)}.statusBadge.refunded{background:#dee2e6;color:#25292e}.statusBadge.neutral{background:var(--neutral-bg);color:var(--neutral-text)}.pagination{align-items:center;display:flex;gap:12px;justify-content:flex-end}.detailStack{display:grid;grid-gap:16px;gap:16px}.infoPanel,.summaryBand{background:#ffffff;border:1px solid var(--line);border-radius:8px}.summaryBand{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));padding:18px}.infoPair,.summaryBand div{display:grid;grid-gap:6px;gap:6px;min-width:0}.infoPair span,.summaryBand span{color:var(--muted);font-size:13px}.infoPair strong,.summaryBand strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.infoPanel{padding:18px}.infoPanel h2{font-size:18px;letter-spacing:0;margin:0 0 14px}.infoGrid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:880px){.appFrame{display:block}.sidebar{align-items:center;border-bottom:1px solid var(--line);border-right:0;display:flex;justify-content:space-between;padding:12px 16px}.brand{margin-bottom:0}.brand strong{font-size:16px}.navItem{padding:8px 10px}.pageHeader,.topbar{align-items:start;flex-direction:column}.content{padding:16px}.filterBar{grid-template-columns:1fr 1fr}.filterActions,.primaryFilter{grid-column:1/-1}.filterActions{justify-content:flex-end}.tableWrap{background:transparent;border:0;overflow:visible}.dataTable,.dataTable tbody,.dataTable td,.dataTable thead,.dataTable tr{display:block;min-width:0;width:100%}.dataTable thead{display:none}.dataTable tr{background:#ffffff;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:10px}.dataTable td{border-bottom:0;max-width:none;padding:6px 0;white-space:normal}.infoGrid,.summaryBand{grid-template-columns:1fr}.infoPair strong,.summaryBand strong{white-space:normal}}@media (max-width:560px){.filterBar{grid-template-columns:1fr}.secondaryFilter{display:none}.pagination{justify-content:space-between}}