:root {
  --ink: #212121;
  --forest: #212121;
  --forest-deep: #171717;
  --sage: #969696;
  --mist: #eeeeee;
  --paper: #f4f4f2;
  --white: #fff;
  --gold: #d4af37;
  --gold-light: #ffc827;
  --gold-deep: #765b00;
  --gold-soft: #fff8df;
  --line: #e1e1e1;
  --muted: #696969;
  --graphite: #535353;
  --danger: #9d3c34;
  --success: #2e705c;
  font-family: "Noto Sans TC", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  min-height: 76px;
  padding: 0 clamp(22px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  color: var(--white);
  background: rgba(23, 23, 23, .97);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  backdrop-filter: blur(12px);
}

.brand { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold-light);
  color: var(--gold-light);
  font: 700 14px/1 Georgia, "Noto Serif TC", serif;
  letter-spacing: .08em;
}
.brand strong, .brand small { display: block; letter-spacing: .16em; }
.brand strong { font: 600 19px/1.3 Georgia, "Noto Serif TC", serif; }
.brand small { margin-top: 3px; color: #c4c4c4; font-size: 9px; letter-spacing: .25em; }
.site-header nav { display: flex; align-items: stretch; align-self: stretch; }
.site-header nav button, .site-header nav a {
  min-width: 104px;
  padding: 0 18px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #d9d9d9;
  background: transparent;
  font-size: 13px;
  text-decoration: none;
  display: grid;
  place-items: center;
}
.site-header nav button:hover, .site-header nav button.active, .site-header nav a:hover { color: var(--white); border-bottom-color: var(--gold); }

.view { display: none; }
.view.active { display: block; }
.hero {
  min-height: 620px;
  padding: clamp(70px, 8vw, 120px) clamp(24px, 7vw, 110px);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .65fr);
  align-items: end;
  gap: clamp(48px, 9vw, 140px);
  color: var(--white);
  background:
    linear-gradient(105deg, rgba(23, 23, 23, .98) 0%, rgba(53, 53, 53, .9) 52%, rgba(83, 83, 83, .72) 100%),
    radial-gradient(circle at 85% 20%, rgba(255, 200, 39, .9) 0%, #535353 48%, #171717 100%);
  position: relative;
  overflow: hidden;
}
.hero::after {
  content: "";
  position: absolute;
  right: -12vw;
  top: -20vw;
  width: 55vw;
  height: 55vw;
  border: 1px solid rgba(212, 175, 55, .32);
  border-radius: 50%;
  box-shadow: 0 0 0 80px rgba(212, 175, 55, .04), 0 0 0 160px rgba(212, 175, 55, .025);
}
.hero-copy, .process-card { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 14px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .2em; }
.hero .eyebrow { color: var(--gold-light); }
.hero h1, .dashboard-heading h1 {
  margin: 0;
  font: 500 clamp(40px, 5.4vw, 76px)/1.18 "Noto Serif TC", serif;
  letter-spacing: .02em;
}
.hero-copy > p:not(.eyebrow) { max-width: 680px; margin: 28px 0 0; color: #e5e5e5; font-size: 17px; line-height: 1.9; }
.hero-facts { margin-top: 42px; display: flex; flex-wrap: wrap; gap: 10px; }
.hero-facts span { padding: 8px 13px; border: 1px solid rgba(212, 175, 55, .45); color: #eeeeee; font-size: 12px; }
.process-card { padding: 30px; border: 1px solid rgba(212, 175, 55, .42); background: rgba(23, 23, 23, .46); }
.process-card ol { margin: 0; padding: 0; list-style: none; }
.process-card li { padding: 17px 0; display: grid; grid-template-columns: 42px 1fr; gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.process-card li:last-child { border-bottom: 0; }
.process-card strong { color: var(--gold-light); font-family: "Noto Serif TC", serif; }
.process-card span { color: #eeeeee; font-size: 13px; }
.process-card span b { display: block; margin-bottom: 4px; color: var(--white); font-size: 14px; }

.request-shell { width: min(1180px, calc(100% - 40px)); margin: -42px auto 100px; position: relative; z-index: 2; }
.form-section, .price-check { padding: clamp(30px, 5vw, 60px); border: 1px solid var(--line); border-bottom: 0; background: var(--white); }
.form-section:last-child { border-bottom: 1px solid var(--line); }
.section-heading { margin-bottom: 34px; display: flex; align-items: flex-start; gap: 18px; }
.section-heading > span { min-width: 34px; color: var(--gold); font: 600 13px/1.6 "Noto Serif TC", serif; border-bottom: 1px solid var(--gold); }
.section-heading h2, .price-check h2, .management-form h2 { margin: 0; font: 600 28px/1.35 "Noto Serif TC", serif; }
.section-heading p, .price-check p, .dashboard-heading > p, .advisor-heading p { margin: 8px 0 0; color: var(--muted); line-height: 1.7; }
.product-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.product-option { min-height: 148px; padding: 24px; display: flex; align-items: flex-start; gap: 18px; border: 1px solid var(--line); background: #fafafa; transition: .18s ease; cursor: pointer; }
.product-option:hover, .product-option.selected { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); background: var(--gold-soft); }
.product-option input { position: absolute; opacity: 0; pointer-events: none; }
.option-icon { flex: 0 0 46px; height: 46px; display: grid; place-items: center; color: var(--forest); border: 1px solid var(--gold); font: 600 18px/1 "Noto Serif TC", serif; }
.product-option strong, .product-option small, .product-option em { display: block; }
.product-option strong { font: 600 20px/1.4 "Noto Serif TC", serif; }
.product-option small { margin-top: 2px; color: var(--gold); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.product-option em { margin-top: 15px; color: var(--muted); font-size: 13px; font-style: normal; line-height: 1.6; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 24px; }
.compact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid label, .access-card label, .management-form label, .action-form label,
.supplier-check-form label { display: grid; gap: 8px; color: var(--graphite); font-size: 12px; font-weight: 600; letter-spacing: .03em; }
.form-grid label.wide { grid-column: 1 / -1; }
.location-field.wide { grid-column: 1 / -1; }
.location-field { position: relative; display: grid; gap: 8px; }
.location-field > label { color: var(--graphite); font-size: 12px; font-weight: 600; letter-spacing: .03em; }
.location-input-wrap { position: relative; }
.location-input-wrap input { padding-right: 46px; }
.search-mark { position: absolute; right: 15px; top: 50%; translate: 0 -54%; color: var(--gold); font: 600 24px/1 Georgia, serif; pointer-events: none; }
.location-selection { min-height: 18px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.6; }
.location-selection.selected { color: var(--success); }
.location-suggestions {
  position: absolute;
  z-index: 15;
  left: 0;
  right: 0;
  top: 69px;
  max-height: 390px;
  overflow-y: auto;
  border: 1px solid #aebbb5;
  background: var(--white);
  box-shadow: 0 18px 40px rgba(33, 33, 33, .16);
}
.location-result {
  width: 100%;
  min-height: 72px;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 0;
  border-bottom: 1px solid #e2e6e3;
  color: var(--ink);
  background: var(--white);
  text-align: left;
}
.location-result:last-child { border-bottom: 0; }
.location-result:hover, .location-result.active { background: var(--gold-soft); }
.location-type { padding: 6px 4px; color: var(--gold-deep); border: 1px solid var(--gold); font-size: 10px; text-align: center; }
.location-result-copy { min-width: 0; display: grid; gap: 2px; }
.location-result-copy strong { overflow: hidden; font: 600 14px/1.5 "Noto Serif TC", serif; text-overflow: ellipsis; white-space: nowrap; }
.location-result-copy small { overflow: hidden; color: var(--graphite); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.location-result-copy em { overflow: hidden; color: var(--muted); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.location-code { color: var(--gold); font: 600 12px/1 Georgia, serif; }
.location-empty { min-height: 74px; padding: 17px; display: grid; align-content: center; gap: 4px; color: var(--muted); font-size: 12px; }
.location-empty strong, .location-empty span { display: block; }
.location-empty strong { color: var(--ink); }
.form-grid input, .form-grid select, .form-grid textarea,
.access-card input, .key-form input, .management-form input, .management-form select,
.action-form input, .action-form select, .action-form textarea,
.supplier-check-form input, .supplier-check-form select, .supplier-check-form textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid #ccd3cf;
  border-radius: 0;
  color: var(--ink);
  background: var(--white);
  outline: none;
  font-size: 14px;
  font-weight: 400;
}
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(212, 175, 55, .18); }
.conditional.hidden, .hidden { display: none !important; }
.bot-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.consent { grid-template-columns: auto 1fr !important; align-items: start; font-weight: 400 !important; line-height: 1.7; }
.consent input { width: 18px; height: 18px; margin-top: 2px; }
.consent a { color: var(--forest); text-underline-offset: 3px; }
.inline-option { align-self: end; min-height: 47px; padding: 12px; border: 1px solid var(--line); background: #fafafa; }
.form-grid label > small { color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.6; }

.price-check { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 26px; color: var(--white); background: var(--forest); border-color: var(--forest); }
.price-check .eyebrow { color: var(--gold-light); }
.price-check p { color: #cad6d1; }
.outline-button, .primary-button {
  min-height: 46px;
  padding: 12px 21px;
  border: 1px solid var(--gold);
  color: var(--forest-deep);
  background: var(--gold);
  font-weight: 600;
  letter-spacing: .04em;
}
.outline-button { border-color: currentColor; color: var(--forest); background: transparent; }
.price-check .outline-button { color: var(--gold-light); }
.primary-button:hover { border-color: var(--gold-light); background: var(--gold-light); }
.outline-button:hover { background: rgba(212, 175, 55, .12); }
.price-result { grid-column: 1 / -1; padding: 20px 22px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px 20px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); }
.price-result strong { color: var(--gold-light); font: 600 22px/1.4 "Noto Serif TC", serif; }
.price-result span { color: #d5dfdb; font-size: 13px; }
.price-result.has-price strong { font-size: 30px; }

.submit-row { margin-top: 34px; padding-top: 26px; display: flex; justify-content: space-between; align-items: center; gap: 28px; border-top: 1px solid var(--line); }
.submit-row p { max-width: 670px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.notice-box { margin-top: 24px; padding: 20px; color: var(--forest); border: 1px solid #9bbbad; background: #edf7f2; line-height: 1.7; }
.notice-box.error { color: var(--danger); border-color: #d6aaa5; background: #fff1ef; }
.notice-box.warning { color: #71551d; border-color: #d8c17c; background: #fff9e8; }

.dashboard-view { min-height: calc(100vh - 76px); padding: clamp(56px, 7vw, 90px) clamp(20px, 6vw, 90px) 100px; background: #eeeeee; }
.dashboard-heading { max-width: 1100px; margin: 0 auto 34px; }
.dashboard-heading h1 { color: var(--forest); font-size: clamp(36px, 5vw, 58px); }
.access-card { max-width: 1100px; margin: 0 auto; padding: 28px; display: grid; grid-template-columns: 1fr 1.5fr auto; align-items: end; gap: 18px; border: 1px solid var(--line); background: var(--white); }
.stored-inquiries { max-width: 1100px; margin: 0 auto 14px; padding: 18px 22px; display: grid; grid-template-columns: auto minmax(230px, 1fr); align-items: center; gap: 8px 18px; border: 1px solid var(--line); background: #fffdf7; }
.stored-inquiries label { color: var(--graphite); font-size: 12px; font-weight: 600; }
.stored-inquiries select { width: 100%; padding: 10px 12px; border: 1px solid #ccd3cf; background: var(--white); }
.stored-inquiries small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; line-height: 1.6; }
.tracking-result { max-width: 1100px; margin: 24px auto 0; }
.empty-state { min-height: 160px; padding: 38px; display: grid; place-items: center; color: var(--muted); border: 1px dashed #b9c3be; background: rgba(255,255,255,.65); text-align: center; }
.tracking-card { padding: clamp(26px, 4vw, 44px); border: 1px solid var(--line); background: var(--white); }
.status-banner { padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--white); background: var(--forest); }
.status-banner strong { font: 600 22px/1.4 "Noto Serif TC", serif; }
.status-banner span { color: #d6e0dc; font-size: 12px; }
.detail-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.detail-grid div { min-height: 78px; padding: 15px; background: var(--white); }
.detail-grid small, .detail-grid strong { display: block; }
.detail-grid small { color: var(--muted); font-size: 10px; letter-spacing: .06em; }
.detail-grid strong { margin-top: 7px; font-size: 14px; }
.detail-grid.full-detail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail-grid.full-detail strong { line-height: 1.55; overflow-wrap: anywhere; }
.request-detail-section { margin-top: 26px; }
.request-detail-section h3 { margin: 0 0 10px; color: var(--forest); font: 600 18px/1.4 "Noto Serif TC", serif; }
.request-detail-section .detail-grid { margin-top: 0; }
.tracking-toolbar { padding: 14px 0; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 10px; color: var(--muted); font-size: 11px; }
.tracking-toolbar button { padding: 7px 10px; border: 1px solid var(--line); color: var(--forest); background: var(--white); }
.timeline { margin: 32px 0 0; padding: 0; list-style: none; }
.timeline li { padding: 0 0 24px 24px; position: relative; border-left: 1px solid var(--gold); }
.timeline li::before { content: ""; position: absolute; left: -5px; top: 2px; width: 9px; height: 9px; background: var(--gold); border-radius: 50%; }
.timeline strong, .timeline span { display: block; }
.timeline span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.quote-card { margin-top: 24px; padding: 24px; border: 1px solid var(--gold); background: #fffdf7; }
.quote-card .quote-top { display: flex; justify-content: space-between; gap: 24px; }
.quote-card h3 { margin: 0; font: 600 23px/1.4 "Noto Serif TC", serif; }
.quote-amount { color: var(--forest); font: 600 28px/1 "Noto Serif TC", serif; }
.quote-card p { color: var(--muted); font-size: 13px; line-height: 1.7; white-space: pre-line; }
.quote-card .primary-button { margin-top: 10px; }
.quote-disclaimer { margin-top: 14px; padding: 12px 14px; color: #71551d; border-left: 3px solid var(--gold); background: var(--gold-soft); font-size: 12px; line-height: 1.65; }
.booking-card { margin-top: 24px; padding: 22px; border-left: 4px solid var(--success); background: #edf5f1; }

.advisor-heading { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.key-form { min-width: min(420px, 100%); display: flex; gap: 10px; }
.advisor-console { border: 1px solid var(--line); background: var(--white); }
.console-tabs { display: flex; overflow-x: auto; border-bottom: 1px solid var(--line); background: #eeeeee; }
.console-tabs button { padding: 17px 24px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; white-space: nowrap; }
.console-tabs button.active { color: var(--forest); border-bottom-color: var(--gold); background: var(--white); }
.console-panel { display: none; }
.console-panel.active { display: block; }
.orders-layout { min-height: 620px; display: grid; grid-template-columns: minmax(290px, .7fr) minmax(500px, 1.3fr); }
.orders-layout > aside { border-right: 1px solid var(--line); }
.list-toolbar { min-height: 57px; padding: 13px 17px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); }
.list-toolbar button { padding: 6px 10px; border: 1px solid var(--line); color: var(--muted); background: var(--white); font-size: 11px; }
.advisor-list button { width: 100%; padding: 18px; display: grid; gap: 6px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.advisor-list button:hover, .advisor-list button.active { background: var(--gold-soft); }
.advisor-list button strong { display: flex; justify-content: space-between; gap: 12px; }
.advisor-list button em { color: var(--gold); font-size: 11px; font-style: normal; }
.advisor-list button span, .advisor-list button small { color: var(--muted); font-size: 11px; }
.advisor-detail { padding: 30px; }
.advisor-detail.empty-state { margin: 30px; }
.advisor-summary h2 { margin: 0; font: 600 27px/1.4 "Noto Serif TC", serif; }
.advisor-summary > p { color: var(--muted); }
.workflow-actions { margin: 24px 0; display: flex; flex-wrap: wrap; gap: 9px; }
.workflow-actions button { padding: 9px 12px; border: 1px solid var(--forest); color: var(--forest); background: transparent; font-size: 12px; }
.workflow-actions button.danger { color: var(--danger); border-color: var(--danger); }
.action-forms { display: grid; gap: 18px; }
.action-form { padding: 22px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; border: 1px solid var(--line); background: #fafafa; }
.action-form h3, .action-form p, .action-form button, .action-form .wide { grid-column: 1 / -1; }
.action-form h3 { margin: 0; font: 600 19px/1.4 "Noto Serif TC", serif; }
.action-form p { margin: 0; color: var(--muted); font-size: 12px; }
.advisor-history { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.advisor-history article { padding: 18px; border: 1px solid var(--line); background: #fafafa; }
.advisor-history h3 { margin: 0 0 12px; font: 600 17px/1.4 "Noto Serif TC", serif; }
.advisor-history ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.advisor-history li + li { margin-top: 8px; }
.advisor-history li strong, .advisor-history li span { display: block; }
.sourcing-workspace { margin-top: 26px; padding: 22px; border: 1px solid var(--gold); background: #fffdf7; }
.sourcing-workspace > p { margin: 8px 0 16px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.subsection-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.subsection-heading small, .supplier-check-heading small { color: var(--gold); font-size: 9px; letter-spacing: .12em; }
.subsection-heading h3, .supplier-check-heading h4 { margin: 2px 0 0; font: 600 20px/1.4 "Noto Serif TC", serif; }
.subsection-heading > button, .sourcing-copy-actions button { padding: 8px 11px; border: 1px solid var(--forest); color: var(--forest); background: var(--white); font-size: 11px; }
.sourcing-copy-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#sourcing-summary-preview { margin: 14px 0 22px; padding: 15px; overflow: auto; border: 1px solid var(--line); color: var(--graphite); background: var(--white); font: 11px/1.7 ui-monospace, monospace; white-space: pre-wrap; }
.supplier-comparison { margin: 18px 0 24px; border: 1px solid var(--line); background: var(--white); }
.supplier-comparison > .subsection-heading { padding: 16px 18px; border-bottom: 1px solid var(--line); }
.supplier-comparison > .subsection-heading span { color: var(--danger); font-size: 10px; }
.comparison-scroll { overflow-x: auto; }
.supplier-comparison table { width: 100%; border-collapse: collapse; font-size: 11px; }
.supplier-comparison th, .supplier-comparison td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.supplier-comparison thead th { color: var(--muted); background: #f4f4f2; }
.supplier-comparison tbody button { padding: 6px 9px; border: 1px solid var(--forest); color: var(--forest); background: var(--white); font-size: 10px; }
.supplier-comparison details { padding: 12px 18px; color: var(--muted); font-size: 11px; }
.supplier-comparison details ul { line-height: 1.7; }
.supplier-comparison details li + li { margin-top: 7px; }
.supplier-comparison details li strong, .supplier-comparison details li span { display: block; }
.supplier-check-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 14px; }
.supplier-check-form { min-width: 0; padding: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 10px; border: 1px solid var(--line); background: var(--white); }
.supplier-check-heading { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.supplier-portal-link, .supplier-portal-missing { font-size: 10px; }
.supplier-portal-link { color: var(--forest); }
.supplier-portal-missing { color: var(--muted); }
.supplier-check-form label { min-width: 0; }
.supplier-check-form input, .supplier-check-form select, .supplier-check-form textarea { min-width: 0; max-width: 100%; }
.supplier-check-form .wide, .supplier-check-form > button { grid-column: 1 / -1; }
.supplier-check-form textarea { resize: vertical; }
.supplier-check-form .disabled-field { display: none; }
.supplier-calculation { grid-column: 1 / -1; padding: 12px; display: grid; gap: 3px; color: var(--muted); background: var(--mist); font-size: 10px; }
.supplier-calculation strong { color: var(--forest); font-size: 13px; }
.supplier-calculation small { line-height: 1.55; }

.management-grid { padding: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.management-form { padding: 26px; border: 1px solid var(--line); background: #fafafa; }
.management-form > .form-grid { margin-top: 24px; grid-template-columns: repeat(2, 1fr); }
.management-form .primary-button { margin-top: 20px; }
.form-warning { color: var(--muted); font-size: 11px; line-height: 1.6; }
.rate-list { max-height: 720px; overflow: auto; }
.rate-item { padding: 16px; border-bottom: 1px solid var(--line); }
.rate-item strong { display: flex; justify-content: space-between; gap: 14px; }
.rate-item p { margin: 6px 0; color: var(--muted); font-size: 12px; }
.rate-item button { padding: 5px 9px; border: 1px solid var(--danger); color: var(--danger); background: transparent; font-size: 10px; }
.supplier-grid { padding: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.supplier-card { padding: 24px; border: 1px solid var(--line); }
.supplier-card h2 { margin: 0; font: 600 22px/1.4 "Noto Serif TC", serif; }
.supplier-card .readiness { margin: 18px 0; padding: 8px 10px; display: inline-block; color: var(--forest); background: var(--mist); font-size: 10px; letter-spacing: .05em; }
.supplier-card dl { margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 9px; font-size: 12px; }
.supplier-card dt { color: var(--muted); }
.supplier-card dd { margin: 0; }
.notification-list { padding: 28px; }
.notification-item { padding: 15px; display: grid; grid-template-columns: 150px 1fr auto; gap: 18px; border-bottom: 1px solid var(--line); font-size: 12px; }
.notification-item span { color: var(--muted); }

.public-info-section { padding: clamp(60px, 8vw, 100px) clamp(24px, 7vw, 110px); background: #f1f1f1; scroll-margin-top: 90px; }
.public-info-section > .section-heading { max-width: 1180px; margin-left: auto; margin-right: auto; }
.faq-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.faq-grid article { padding: 24px; border: 1px solid var(--line); background: var(--white); }
.faq-grid h3 { margin: 0 0 10px; font: 600 18px/1.45 "Noto Serif TC", serif; }
.faq-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.contact-band { padding: clamp(46px, 6vw, 72px) clamp(24px, 7vw, 110px); display: flex; justify-content: space-between; align-items: center; gap: 30px; color: var(--white); background: var(--forest); scroll-margin-top: 90px; }
.contact-band h2 { margin: 0; font: 600 clamp(26px, 3vw, 40px)/1.4 "Noto Serif TC", serif; }
.contact-band p:not(.eyebrow) { color: #cad6d1; }
.contact-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.contact-actions a { color: var(--gold-light); font: 600 17px/1.5 "Noto Serif TC", serif; text-decoration: none; }

.request-dialog { width: min(980px, calc(100% - 28px)); max-height: calc(100vh - 36px); padding: 0; border: 1px solid var(--gold); color: var(--ink); background: var(--white); box-shadow: 0 30px 90px rgba(0,0,0,.38); }
.request-dialog::backdrop { background: rgba(12, 20, 17, .78); backdrop-filter: blur(4px); }
.dialog-heading { padding: 28px 32px 20px; border-bottom: 1px solid var(--line); }
.dialog-heading h2 { margin: 0; font: 600 30px/1.4 "Noto Serif TC", serif; }
.dialog-heading > p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.confirmation-summary { max-height: 52vh; padding: 0 32px 24px; overflow-y: auto; }
.confirmation-summary .detail-grid { margin-top: 24px; }
.dialog-actions { padding: 20px 32px 28px; display: flex; justify-content: flex-end; gap: 12px; border-top: 1px solid var(--line); }
.credential-box { margin: 16px 32px 0; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; }
.credential-box label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.credential-box input { width: 100%; padding: 12px; border: 1px solid var(--line); color: var(--forest); background: #fafafa; font-family: ui-monospace, monospace; }
.credential-box button { min-height: 43px; padding: 8px 12px; border: 1px solid var(--forest); color: var(--forest); background: var(--white); }
.success-dialog > .notice-box { margin: 18px 32px; }

footer { padding: 38px clamp(20px, 6vw, 90px); display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.35fr; gap: 34px; color: #c4c4c4; background: var(--forest-deep); font-size: 10px; letter-spacing: .05em; line-height: 1.65; }
footer div { display: grid; align-content: start; gap: 7px; }
footer strong { color: var(--white); font: 600 13px/1.5 "Noto Serif TC", serif; letter-spacing: .03em; }
footer a { color: inherit; text-underline-offset: 3px; }

.policy-page { background: #ededeb; }
.policy-header { position: static; }
.policy-main { width: min(980px, calc(100% - 36px)); margin: 56px auto 80px; padding: clamp(28px, 5vw, 64px); border: 1px solid var(--line); background: var(--white); }
.policy-main h1 { margin: 0; color: var(--forest); font: 600 clamp(32px, 5vw, 52px)/1.3 "Noto Serif TC", serif; }
.policy-main .policy-lead { margin: 18px 0 34px; padding: 18px 20px; color: var(--graphite); border-left: 4px solid var(--gold); background: var(--gold-soft); line-height: 1.8; }
.policy-main section { padding: 26px 0; border-top: 1px solid var(--line); }
.policy-main h2 { margin: 0 0 12px; font: 600 23px/1.45 "Noto Serif TC", serif; }
.policy-main h3 { margin: 22px 0 8px; font-size: 16px; }
.policy-main p, .policy-main li, .policy-main dd { color: var(--graphite); font-size: 14px; line-height: 1.85; }
.policy-main ul, .policy-main ol { padding-left: 22px; }
.policy-main dl { display: grid; grid-template-columns: 180px 1fr; gap: 10px 18px; }
.policy-main dt { color: var(--forest); font-weight: 700; }
.policy-main dd { margin: 0; }
.policy-main a { color: var(--gold-deep); text-underline-offset: 3px; }
.policy-meta { margin-top: 10px; color: var(--muted); font-size: 12px; }
.policy-nav { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.policy-note { padding: 16px 18px; color: #71551d; border: 1px solid #d8c17c; background: #fff9e8; }

@media (max-width: 900px) {
  .site-header { align-items: stretch; flex-direction: column; gap: 0; padding-top: 14px; }
  .site-header nav { min-height: 50px; justify-content: space-between; }
  .site-header nav button, .site-header nav a { min-width: 0; flex: 1; padding: 0 8px; }
  .hero { grid-template-columns: 1fr; min-height: 0; }
  .process-card { max-width: 520px; }
  .compact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .access-card { grid-template-columns: 1fr; }
  .advisor-heading { align-items: stretch; flex-direction: column; }
  .orders-layout { grid-template-columns: 1fr; }
  .orders-layout > aside { max-height: 320px; overflow: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .management-grid { grid-template-columns: 1fr; }
  .supplier-grid { grid-template-columns: 1fr; }
  .supplier-check-grid { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: repeat(2, 1fr); }
  footer { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .brand small { display: none; }
  .hero { padding: 62px 22px 86px; }
  .hero h1 { font-size: 42px; }
  .request-shell { width: calc(100% - 20px); margin-top: -28px; }
  .form-section, .price-check { padding: 26px 20px; }
  .product-options, .form-grid, .compact-grid { grid-template-columns: 1fr; }
  .form-grid label.wide { grid-column: auto; }
  .location-field.wide { grid-column: auto; }
  .price-check { grid-template-columns: 1fr; }
  .price-result { grid-column: auto; }
  .submit-row { align-items: stretch; flex-direction: column; }
  .dashboard-view { padding-left: 10px; padding-right: 10px; }
  .dashboard-heading { padding: 0 12px; }
  .stored-inquiries { grid-template-columns: 1fr; }
  .stored-inquiries small { grid-column: auto; }
  .detail-grid { grid-template-columns: 1fr 1fr; }
  .detail-grid.full-detail { grid-template-columns: 1fr; }
  .quote-card .quote-top { flex-direction: column; }
  .key-form { min-width: 0; flex-direction: column; }
  .advisor-detail { padding: 16px; }
  .action-form { grid-template-columns: 1fr; }
  .action-form > * { grid-column: auto !important; }
  .management-grid { padding: 12px; }
  .management-form > .form-grid { grid-template-columns: 1fr; }
  .notification-item { grid-template-columns: 1fr; gap: 5px; }
  .advisor-history, .faq-grid { grid-template-columns: 1fr; }
  .subsection-heading { align-items: flex-start; flex-direction: column; }
  .contact-band { align-items: flex-start; flex-direction: column; }
  .contact-actions { align-items: flex-start; }
  .dialog-heading, .confirmation-summary, .dialog-actions { padding-left: 18px; padding-right: 18px; }
  .credential-box, .success-dialog > .notice-box { margin-left: 18px; margin-right: 18px; }
  .dialog-actions { flex-direction: column-reverse; }
  footer { grid-template-columns: 1fr; }
  .policy-main dl { grid-template-columns: 1fr; gap: 3px; }
}

@media print {
  .site-header, .hero, .request-shell, .public-info-section, .contact-band, footer,
  .access-card, .tracking-toolbar, .dialog-actions, .credential-box button { display: none !important; }
  body, .dashboard-view { background: var(--white); }
  .view.active, .tracking-result { display: block !important; }
  .request-dialog[open] { position: static; width: 100%; max-height: none; border: 0; box-shadow: none; }
  .request-dialog[open] .confirmation-summary { max-height: none; overflow: visible; }
}

/* Infinity Tour portfolio design system v2 */
@media screen {
  :root { font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; }
  .site-header { height: 78px; min-height: 78px; padding-top: 0; color: #17221d; background: rgb(251 250 246 / 97%); border-bottom-color: rgb(23 34 29 / 16%); }
  .brand-lockup { min-width: 0; display: inline-flex; align-items: center; }
  .brand-home { height: 46px; padding-right: 14px; display: inline-flex; align-items: center; border-right: 1px solid rgb(23 34 29 / 16%); }
  .brand-home img { width: auto; height: 36px; display: block; }
  .product-home { padding-left: 14px; display: grid; color: #17221d; line-height: 1.12; text-decoration: none; }
  .product-home strong { font: 600 15px "Noto Serif TC", Georgia, serif; letter-spacing: .12em; }
  .product-home small { margin-top: 4px; color: #66736c; font-size: 8px; letter-spacing: .24em; }
  .site-header nav button, .site-header nav a { color: #45534c; font-size: 12px; }
  .site-header nav button:hover, .site-header nav button.active, .site-header nav a:hover { color: #17221d; border-bottom-color: var(--gold); }
  .hero { height: 620px; min-height: 620px; background: linear-gradient(115deg, #101d17 0%, #1b3429 62%, #315443 100%); }
  .hero h1, .dashboard-heading h1 { font-family: "Noto Serif TC", Georgia, serif; font-size: clamp(40px, 5.4vw, 76px); line-height: 1.12; }
  footer { min-height: 180px; background: #0d1b15; }
}
@media screen and (max-width: 900px) {
  .site-header { height: 70px; min-height: 70px; padding: 0 16px; flex-direction: row; align-items: center; }
  .site-header nav { display: none; }
  .process-card { display: none; }
  .hero { height: 620px; min-height: 620px; display: grid; grid-template-columns: 1fr; align-items: center; }
}
@media screen and (max-width: 640px) {
  .brand-home { height: 42px; padding-right: 10px; }
  .brand-home img { height: 31px; }
  .product-home { padding-left: 10px; }
  .product-home strong { font-size: 13px; }
  .product-home small { display: block; font-size: 7px; }
  .hero { padding: 62px 22px; }
  .hero h1 { font-size: clamp(36px, 11vw, 42px); }
}

/* Infinity Tour portfolio design system v2.1 — compact charcoal / gold */
@media screen {
  .site-header {
    color: #fff;
    background: rgba(31, 31, 30, .98);
    border-bottom-color: rgba(200, 169, 106, .48);
  }
  .brand-home { border-right-color: rgba(200, 169, 106, .42); }
  .product-home { color: #fff; }
  .product-home small { color: #ffc827; }
  .site-header nav button, .site-header nav a { color: #dedad1; }
  .site-header nav button:hover, .site-header nav button.active, .site-header nav a:hover { color: #fff; border-bottom-color: #d4af37; }
  .hero {
    height: 310px;
    min-height: 310px;
    padding: 24px clamp(24px, 7vw, 110px);
    grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
    align-items: center;
    gap: clamp(28px, 6vw, 80px);
    background: linear-gradient(105deg, #1d1d1c 0%, #2b2b29 58%, #3a3935 100%);
  }
  .hero h1, .dashboard-heading h1 { font-size: clamp(34px, 3.3vw, 46px); line-height: 1.12; }
  .hero-copy > p:not(.eyebrow) { margin-top: 12px; font-size: 14px; line-height: 1.55; }
  .hero-facts { margin-top: 14px; gap: 6px; }
  .hero-facts span { padding: 5px 8px; font-size: 10px; }
  .process-card { padding: 12px 18px; }
  .process-card .eyebrow { margin-bottom: 3px; }
  .process-card li { padding: 5px 0; grid-template-columns: 30px 1fr; gap: 7px; }
  .process-card span { font-size: 10px; line-height: 1.35; }
  .process-card span b { display: inline; margin: 0 5px 0 0; font-size: 11px; }
}
@media screen and (max-width: 900px) {
  .site-header { height: 68px; min-height: 68px; }
  .hero { height: 330px; min-height: 330px; padding: 26px 22px; grid-template-columns: 1fr; gap: 0; }
  .hero-copy { min-width: 0; }
  .hero h1 { font-size: clamp(29px, 8.2vw, 34px); }
  .hero-copy > p:not(.eyebrow) { margin-top: 10px; font-size: 13px; line-height: 1.5; }
  .hero-facts { margin-top: 12px; gap: 5px; }
  .hero-facts span { padding: 4px 7px; font-size: 9px; }
}

/* Infinity Tour portfolio design system v2.2 — desktop width and rhythm */
@media screen and (min-width: 901px) {
  .site-header,
  .hero,
  .public-info-section {
    padding-inline: max(24px, calc((100vw - 1200px) / 2));
  }
  .hero .eyebrow { font-size: 12px; }
  .hero-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.58; }
  .hero-facts span { font-size: 12px; }
  .process-card span { font-size: 11.5px; line-height: 1.4; }
  .process-card span b { font-size: 12.5px; }
  .request-shell { width: min(1200px, calc(100% - 48px)); margin: 24px auto 72px; }
  .form-section,
  .price-check { padding: 40px; }
  .section-heading { margin-bottom: 26px; }
  .public-info-section { padding-top: 64px; padding-bottom: 72px; }
  .public-info-section > .section-heading { max-width: 1200px; }
}
