:root {
  color-scheme: dark;
  --bg: #081014;
  --panel: #101b20;
  --panel-2: #15252b;
  --line: #274048;
  --text: #eef8f5;
  --muted: #91aaa8;
  --mint: #69e5bb;
  --mint-dark: #0d5b47;
  --amber: #ffc66d;
  --red: #ff7f7f;
  --blue: #7db7ff;
  font-family: Inter, "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; color: var(--text); background: radial-gradient(circle at 80% -10%, #183b3e 0, transparent 34%), var(--bg); }
button, input, select { font: inherit; }
.topbar { min-height: 92px; padding: 20px clamp(20px, 4vw, 64px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(8,16,20,.78); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 10; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(22px, 3vw, 34px); letter-spacing: -.03em; }
h2 { margin-bottom: 8px; }
.eyebrow, .step-label { color: var(--mint); letter-spacing: .14em; font-size: 11px; font-weight: 800; margin-bottom: 5px; }
.shell { width: min(1180px, calc(100% - 32px)); margin: 32px auto 80px; }
.panel { border: 1px solid var(--line); border-radius: 18px; padding: clamp(20px, 3vw, 34px); background: linear-gradient(145deg, rgba(21,37,43,.94), rgba(12,22,27,.96)); box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.narrow { width: min(560px, 100%); margin: 7vh auto; }
.muted { color: var(--muted); line-height: 1.6; }
.hidden { display: none !important; }
label { display: grid; gap: 8px; color: #c9dcda; font-weight: 650; margin: 18px 0; }
.field-hint { margin: -10px 0 14px; color: var(--muted); font-size: 13px; }
input, select { width: 100%; color: var(--text); background: #091519; border: 1px solid #38515a; border-radius: 10px; padding: 12px 13px; outline: none; }
input:focus, select:focus { border-color: var(--mint); box-shadow: 0 0 0 3px rgba(105,229,187,.12); }
.button { border: 1px solid #3b5660; color: var(--text); background: #1a2d34; border-radius: 10px; padding: 10px 15px; cursor: pointer; font-weight: 750; transition: .18s ease; }
.button:hover { transform: translateY(-1px); border-color: #5f7f89; }
.button:disabled { cursor: wait; opacity: .52; transform: none; }
.button.primary { color: #06241c; border-color: var(--mint); background: var(--mint); }
.button.danger { border-color: #8a4f53; background: #4f252a; color: #ffd7d7; }
.button.ghost { background: transparent; }
.button.small { padding: 7px 10px; font-size: 12px; }
.top-actions, .section-head, .inline-form, .copy-row { display: flex; align-items: center; gap: 12px; }
.section-head { justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
.pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 800; }
.pill.neutral { color: #bcd2d0; background: #1b3035; }
.pill.good { color: #00271c; background: var(--mint); }
.pill.warning { color: #332000; background: var(--amber); }
.pill.error { color: #3c0909; background: var(--red); }
.notice { display: flex; flex-direction: column; gap: 5px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line); margin: 16px 0; line-height: 1.55; }
.notice.warning { color: #ffe5b9; background: #322510; border-color: #775928; }
.notice.neutral { color: #c7dedb; background: #0c1b20; }
.form-error { min-height: 22px; color: #ffaaaa; margin: 14px 0 0; }
.qr-box { width: 244px; max-width: 100%; margin: 22px auto; padding: 14px; border-radius: 14px; background: white; }
.qr-box svg { display: block; width: 100%; height: auto; }
.copy-row { justify-content: space-between; background: #091519; border: 1px solid var(--line); padding: 10px; border-radius: 10px; overflow: hidden; }
.copy-row code { overflow: hidden; text-overflow: ellipsis; }
pre { white-space: pre-wrap; background: #071216; padding: 16px; border-radius: 10px; border: 1px solid var(--line); line-height: 1.7; }
.overview-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.metric { background: #0e1a1f; border: 1px solid var(--line); border-radius: 14px; padding: 18px; }
.metric strong { display: block; font-size: 28px; margin-bottom: 3px; }
.metric span { color: var(--muted); font-size: 13px; }
.tabs { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 16px; padding-bottom: 2px; }
.tab { flex: 0 0 auto; color: var(--muted); border: 1px solid transparent; background: transparent; border-radius: 9px; padding: 10px 13px; cursor: pointer; font-weight: 750; }
.tab.active { color: #06241c; background: var(--mint); }
.card-list { display: grid; gap: 12px; }
.card { border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: rgba(7,18,22,.58); }
.card-head { display: flex; justify-content: space-between; gap: 16px; }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.meta { color: var(--muted); font-size: 13px; line-height: 1.7; }
.description { color: #dcebe8; line-height: 1.6; white-space: pre-wrap; }
.compact .card { padding: 13px 15px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: 12px; letter-spacing: .05em; }
.download-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 24px; }
.download-card { display: flex; flex-direction: column; gap: 6px; min-height: 120px; padding: 20px; color: var(--text); text-decoration: none; border-radius: 14px; border: 1px solid var(--line); background: #0b181d; }
.download-card:hover { border-color: var(--mint); }
.download-card span { color: var(--muted); }
hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }
#toast { position: fixed; right: 22px; bottom: 22px; max-width: 420px; padding: 13px 16px; border-radius: 10px; background: #d8fff2; color: #06241c; font-weight: 750; opacity: 0; transform: translateY(16px); pointer-events: none; transition: .2s ease; z-index: 50; }
#toast.show { opacity: 1; transform: none; }
@media (max-width: 840px) { .overview-grid, .download-grid { grid-template-columns: repeat(2, 1fr); } .topbar { position: static; } }
@media (max-width: 560px) { .shell { width: min(100% - 20px, 1180px); margin-top: 16px; } .overview-grid, .download-grid { grid-template-columns: 1fr; } .section-head, .inline-form { align-items: stretch; flex-direction: column; } .topbar { padding: 16px; } .eyebrow { display: none; } }
