/* Scoped to the OGL tool; shared site tokens and user theme remain authoritative. */
body[data-app="ogl-shipping-calculator"] { background:var(--bg); }
body[data-app="ogl-shipping-calculator"] .wrap { max-width:1184px; width:calc(100% - 64px); }
body[data-app="ogl-shipping-calculator"] .hdr-in { max-width:1184px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ogl-page { --ogl-blue:#0866df; --ogl-navy:#112d4b; --ogl-soft:#eff5fd; color:var(--tx); padding:20px 0 56px; }
.ogl-page *, .ogl-page *::before, .ogl-page *::after { box-sizing:border-box; }
.ogl-page button, .ogl-page input, .ogl-page textarea { font:inherit; }
.ogl-page button { cursor:pointer; }
.ogl-page button:disabled { cursor:not-allowed; opacity:.45; }
.ogl-page :focus-visible { outline:3px solid #70aaf5; outline-offset:4px; }
.ogl-page [hidden] { display:none !important; }
.ogl-page a { text-underline-offset:4px; }
.ogl-overline { font-size:12px; font-weight:700; letter-spacing:.12em; color:var(--tx-3); margin:0 0 14px; }
.ogl-hero { display:grid; grid-template-columns:1fr auto; align-items:end; gap:32px; margin:12px 0 36px; }
.ogl-hero h1 { font-size:clamp(28px,3.6vw,43px); line-height:1.25; letter-spacing:-.025em; margin:0 0 18px; font-weight:800; }
.ogl-lead { font-size:17px; line-height:1.8; color:var(--tx-2); margin:0; }
.ogl-version { border-left:2px solid var(--line-2); padding:8px 0 8px 24px; display:grid; gap:7px; font-size:12px; color:var(--tx-3); }
.ogl-version strong { font:600 23px/1.4 Consolas, "Courier New", monospace; color:var(--tx); letter-spacing:.03em; }
.ogl-version a { color:var(--tx-2); margin-top:7px; }
.ogl-workspace { background:var(--surface); border:1px solid var(--line-2); border-radius:16px; overflow:hidden; box-shadow:0 18px 52px #16355009; }
.ogl-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 28px; border-bottom:1px solid var(--line); }
.ogl-tabs { display:flex; gap:28px; }
.ogl-tabs button { border:0; border-bottom:3px solid transparent; background:none; color:var(--tx-3); font-weight:700; padding:22px 0 18px; font-size:17px; }
.ogl-tabs button[aria-selected="true"] { border-bottom-color:var(--ogl-blue); color:var(--tx); }
.ogl-tabs button span { font-size:11px; font-weight:500; margin-left:6px; }
.ogl-text-link, .ogl-text-button { font-size:13px; color:var(--ogl-blue); }
.ogl-text-button { border:0; background:transparent; padding:4px 0; text-decoration:underline; text-underline-offset:4px; }
.ogl-rate-bar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; background:var(--surface-2); padding:16px 28px; border-bottom:1px solid var(--line); font-size:13px; }
.ogl-rate-bar label { font-weight:600; }
.ogl-rate-input { display:flex; align-items:center; gap:8px; font-family:Consolas,monospace; }
.ogl-rate-input input { width:136px; border:1px solid var(--line-2); border-radius:5px; background:var(--surface); color:var(--tx); padding:7px 10px; font-size:14px; }
.ogl-rate-bar p { flex:1; min-width:220px; margin:0; color:var(--tx-3); font-size:12px; line-height:1.7; }
.ogl-single-layout { display:grid; grid-template-columns:1.08fr 1fr; }
#ogl-single-form { padding:30px; }
.ogl-panel-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ogl-panel-heading h2 { font-size:18px; margin:0; }
.ogl-help { font-size:12px; line-height:1.8; color:var(--tx-3); margin:12px 0; }
.ogl-fields { display:grid; gap:14px; margin:22px 0; }
.ogl-fields-two { grid-template-columns:1fr 1fr; }
.ogl-fields-three { grid-template-columns:1fr 1fr 1fr; }
.ogl-field { display:grid; gap:9px; min-width:0; font-size:13px; font-weight:600; }
.ogl-input-wrap { display:flex; align-items:center; border:1px solid var(--line-2); border-radius:7px; background:var(--surface-2); padding:0 11px; transition:border-color .15s; }
.ogl-input-wrap:focus-within { border-color:var(--ogl-blue); }
.ogl-input-wrap input { width:100%; min-width:0; padding:13px 0; border:0; outline:none; background:none; color:var(--tx); font-size:17px; font-weight:500; font-variant-numeric:tabular-nums; }
.ogl-input-wrap > span { flex-shrink:0; font-size:11px; color:var(--tx-3); font-weight:400; margin-left:4px; }
.ogl-input-wrap input::placeholder { color:var(--tx-3); opacity:.75; font-size:14px; }
.ogl-input-wrap input[aria-invalid="true"] { color:#bd3e35; }
.ogl-primary { display:flex; justify-content:center; align-items:center; gap:36px; border:1px solid var(--ogl-blue); border-radius:7px; background:var(--ogl-blue); color:#fff; padding:13px 24px; font-size:15px; font-weight:700; min-height:48px; }
.ogl-primary:hover { background:#075bc7; }
#ogl-single-form .ogl-primary { width:100%; margin-top:25px; }
.ogl-single-result { background:var(--ogl-navy); color:#f3f7fb; padding:32px; display:flex; flex-direction:column; }
.ogl-single-result > .ogl-overline { color:#adc5dd; font-size:12px; }
.ogl-single-result p { font-size:13px; line-height:1.8; color:#bed0e1; }
.ogl-empty-total { font:500 56px/1.3 Consolas,monospace; margin:25px 0; }
.ogl-empty-total span { display:block; font-size:14px; font-weight:400; line-height:1.7; color:#bed0e1; margin-top:8px; }
.ogl-total { font:500 clamp(36px,4vw,54px)/1.2 Consolas,monospace; margin:22px 0 8px; letter-spacing:-.04em; }
.ogl-total small { font-size:24px; margin-right:7px; }
.ogl-result-label { font-size:13px; color:#b7cce1; }
.ogl-money-parts { display:grid; grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid #ffffff25; border-bottom:1px solid #ffffff25; padding:20px 0; margin:23px 0; }
.ogl-money-parts dt { font-size:12px; color:#adc5dd; }
.ogl-money-parts dd { margin:7px 0 0; font:500 23px/1.4 Consolas,monospace; }
.ogl-breakdown { display:grid; grid-template-columns:auto 1fr; gap:9px 20px; margin:0; font-size:12px; line-height:1.7; }
.ogl-breakdown dt { color:#b7cce1; }
.ogl-breakdown dd { margin:0; overflow-wrap:anywhere; }
.ogl-single-result .ogl-alert { background:#fff2e9; color:#7f3922; border:1px solid #e4ad8a; border-radius:6px; padding:14px 18px; }
.ogl-alert ul { padding-left:18px; margin:8px 0; }
.ogl-alert { background:#fff2e9; color:#7f3922; padding:16px; line-height:1.8; }
.ogl-workspace-foot { padding:16px 28px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:4px 30px; }
.ogl-workspace-foot p { margin:0; font-size:11px; line-height:1.8; color:var(--tx-3); }
.ogl-batch-input, .ogl-batch-results { padding:28px; }
.ogl-batch-input > label { font-size:13px; font-weight:600; }
#ogl-batch-text { display:block; resize:vertical; min-height:168px; width:100%; padding:16px; border:1px solid var(--line-2); border-radius:7px; background:var(--surface-2); color:var(--tx); font:13px/1.8 Consolas,"Microsoft YaHei",monospace; white-space:pre; tab-size:13; overflow:auto; }
.ogl-batch-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:16px; }
.ogl-secondary, .ogl-file-button { position:relative; display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 16px; border:1px solid var(--line-2); border-radius:6px; background:var(--surface); color:var(--tx-2); font-size:13px; cursor:pointer; }
.ogl-secondary:hover, .ogl-file-button:hover { border-color:var(--ogl-blue); color:var(--ogl-blue); }
.ogl-file-button input { position:absolute; inset:0; width:100%; opacity:0; cursor:pointer; }
.ogl-file-button:focus-within { outline:3px solid #70aaf5; outline-offset:3px; }
.ogl-batch-message { margin:14px 0 0; font-size:13px; color:var(--tx-2); }
.ogl-batch-message[data-error="true"] { color:#b0372d; background:#fff1e8; border-left:3px solid #ba5b35; padding:10px 14px; }
.ogl-batch-results { border-top:1px solid var(--line); }
#ogl-batch-count { color:var(--tx-3); font-size:13px; font-weight:400; margin-left:7px; }
.ogl-summary { display:flex; flex-wrap:wrap; gap:18px 32px; border-left:3px solid var(--ogl-blue); padding:10px 18px; margin:24px 0; background:var(--surface-2); }
.ogl-summary p { margin:0; font-size:12px; color:var(--tx-3); }
.ogl-summary strong { display:block; color:var(--tx); font:600 23px/1.6 Consolas,"Microsoft YaHei",monospace; }
.ogl-table-scroll { width:100%; max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:7px; }
.ogl-page table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
.ogl-page th { font-weight:600; }
.ogl-page td, .ogl-page th { border-bottom:1px solid var(--line); padding:14px 16px; vertical-align:top; }
.ogl-page thead { background:var(--surface-2); color:var(--tx-2); font-size:12px; }
.ogl-page tbody tr:last-child td, .ogl-page tbody tr:last-child th { border-bottom:0; }
.ogl-page tbody tr:hover { background:var(--surface-2); }
.ogl-results-table { min-width:800px; }
.ogl-results-table td:first-child { min-width:120px; max-width:200px; overflow-wrap:anywhere; white-space:pre-wrap; }
.ogl-results-table td:nth-child(2) { min-width:165px; }
.ogl-results-table td:nth-child(n+3):nth-child(-n+5) { font-variant-numeric:tabular-nums; white-space:nowrap; }
.ogl-results-table td:last-child { min-width:170px; max-width:280px; font-size:12px; }
.ogl-results-table small { display:block; font-size:11px; margin-top:4px; color:var(--tx-3); }
.ogl-results-table tr[data-invalid="true"] td:last-child { color:#ad3c2e; }
.ogl-results-table .ogl-sum-cell { font-weight:700; }
.ogl-next { margin:48px 0; }
.ogl-section-heading { margin:0 0 22px; }
.ogl-section-heading .ogl-overline { margin:0 0 8px; }
.ogl-section-heading h2 { font-size:25px; line-height:1.5; margin:0; letter-spacing:-.015em; }
.ogl-next-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.ogl-next-tool { padding:24px 28px 24px 0; }
.ogl-next-tool + .ogl-next-tool { padding-left:28px; border-left:1px solid var(--line-2); }
.ogl-next-tool .ogl-overline { color:var(--ogl-blue); font-size:11px; }
.ogl-next-tool h3 { font-size:18px; margin:8px 0 12px; }
.ogl-next-tool p { color:var(--tx-2); line-height:1.85; font-size:14px; }
.ogl-next-tool a { font-size:13px; font-weight:600; color:var(--ogl-blue); }
.ogl-daily-link { font-size:13px; color:var(--tx-3); line-height:1.9; }
.ogl-daily-link a { margin-left:12px; }
.ogl-explain { border-top:1px solid var(--line-2); padding-top:36px; }
.ogl-explain > p { font-size:14px; line-height:1.9; color:var(--tx-2); }
.ogl-formulas { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:22px; }
.ogl-formulas p { margin:0; padding:18px 22px; border-left:3px solid var(--line-2); background:var(--surface); }
.ogl-formulas span { display:block; color:var(--tx-3); font-size:12px; margin-bottom:8px; }
.ogl-formulas strong { font-weight:600; font-size:15px; }
.ogl-rate-table { min-width:780px; }
.ogl-rate-table caption { text-align:left; padding:16px; font-weight:600; background:var(--surface); }
.ogl-rate-table small { display:block; font-size:11px; color:var(--tx-3); font-weight:400; margin-top:4px; }
.ogl-source { padding:22px 0; font-size:13px; line-height:1.9; }
.ogl-source p { margin:8px 0 0; color:var(--tx-3); }
.ogl-faq { margin:30px 0; }
.ogl-faq details { border-bottom:1px solid var(--line-2); padding:17px 0; }
.ogl-faq summary { cursor:pointer; font-size:15px; font-weight:600; line-height:1.8; }
.ogl-faq details p { color:var(--tx-2); font-size:14px; line-height:1.95; max-width:900px; }
@media(max-width:900px) {
  body[data-app="ogl-shipping-calculator"] .wrap { width:calc(100% - 40px); }
  .ogl-hero { grid-template-columns:1fr; gap:22px; }
  .ogl-version { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; border-left:0; border-top:1px solid var(--line-2); padding:16px 0 0; }
  .ogl-version strong { font-size:16px; }
  .ogl-version a { margin:0; }
  .ogl-single-layout { grid-template-columns:1fr 1fr; }
  #ogl-single-form, .ogl-single-result { padding:24px; }
}
@media(max-width:680px) {
  body[data-app="ogl-shipping-calculator"] .wrap { width:calc(100% - 28px); }
  .ogl-page { padding-top:8px; }
  .ogl-hero { margin:8px 0 24px; }
  .ogl-hero h1 { font-size:29px; }
  .ogl-lead { font-size:15px; }
  .ogl-version { font-size:11px; }
  .ogl-toolbar { padding:0 16px; }
  .ogl-tabs { gap:22px; }
  .ogl-tabs button { font-size:15px; padding:17px 0; }
  .ogl-tabs button span { display:none; }
  .ogl-toolbar > a { font-size:11px; }
  .ogl-rate-bar { padding:15px 18px; gap:8px 12px; }
  .ogl-rate-bar p { flex-basis:100%; min-width:0; }
  .ogl-single-layout, .ogl-next-grid, .ogl-formulas { grid-template-columns:1fr; }
  #ogl-single-form, .ogl-single-result, .ogl-batch-input, .ogl-batch-results { padding:22px 18px; }
  .ogl-fields { gap:10px; }
  .ogl-input-wrap { padding:0 8px; }
  .ogl-fields-three .ogl-input-wrap input { font-size:16px; }
  .ogl-workspace-foot { padding:16px 18px; }
  .ogl-next { margin:32px 0; }
  .ogl-next-tool, .ogl-next-tool + .ogl-next-tool { padding:22px 0; border-left:0; }
  .ogl-next-tool + .ogl-next-tool { border-top:1px solid var(--line-2); }
  .ogl-next-tool h3 { font-size:17px; }
  .ogl-daily-link a { display:block; margin:3px 0 0; }
  .ogl-section-heading h2 { font-size:23px; }
  .ogl-formulas { gap:10px; }
  .ogl-batch-actions { gap:10px; }
  .ogl-batch-actions .ogl-primary { width:100%; }
  .ogl-panel-heading h2 { font-size:17px; }
  .ogl-summary { gap:14px 24px; }
  .ogl-page td, .ogl-page th { padding:12px; }
}
