:root,[data-theme="bloomberg"] {
  color-scheme:dark;
  --bg:#0c1420;--surface:#121e2c;--surface-soft:#162333;--hover:#1a2b3d;--line:#263747;
  --text:#e7edf3;--muted:#a0adbb;--quiet:#8291a2;--accent:#75cfb4;--accent-bg:#1c3b36;--warning:#e2b56b;
  --shadow:0 24px 80px #0008;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
}
[data-theme="obsidian"]{--bg:#111318;--surface:#1a1d24;--surface-soft:#20252e;--hover:#282f39;--line:#333c46;--accent:#82cbb4;--accent-bg:#233e36;}
[data-theme="gold"]{--bg:#161510;--surface:#201f19;--surface-soft:#29271f;--hover:#333127;--line:#3c392d;--accent:#d9c48c;--accent-bg:#3d3623;}
[data-theme="light"]{color-scheme:light;--bg:#f5f6f8;--surface:#fff;--surface-soft:#f1f4f6;--hover:#f3f7f6;--line:#e1e6ea;--text:#182936;--muted:#52616e;--quiet:#647482;--accent:#16775e;--accent-bg:#e4f3ed;--warning:#946019;--shadow:0 24px 80px #18293626;}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
body{font:14px/1.55 var(--font);background:var(--bg);color:var(--text);min-width:300px;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}button{cursor:pointer}button,select,input{border:1px solid var(--line);border-radius:7px}button{background:transparent}button:hover{background:var(--hover)}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
select,input{background:var(--surface);padding:7px 10px}select{max-width:100%}a,.text-button{color:var(--accent)}.text-button{border:0;background:none;padding:3px 0;font-size:12px}.text-button:hover{text-decoration:underline;background:none}.button{padding:7px 14px}.icon-button{width:34px;height:34px;font-size:24px;line-height:1}
.app-layout{max-width:1280px;margin:auto;padding:24px 32px 16px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-size:26px;color:var(--accent);border:1px solid var(--line);border-radius:10px;width:44px;height:44px;text-align:center;line-height:42px}.brand h1{font-size:20px;letter-spacing:.4px;font-weight:650}.brand p{font-size:12px;color:var(--quiet);margin-top:2px}.header-actions{display:flex;gap:12px;align-items:center}.status-button{border:0;display:flex;align-items:center;gap:7px;padding:7px 2px;font-size:12px;color:var(--muted)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--warning)}.status-dot.connected{background:var(--accent)}.status-dot.offline{background:#df8f87}.notice{margin-top:14px;padding:10px 14px;border:1px solid var(--line);border-left:3px solid var(--warning);background:var(--surface);border-radius:6px;color:var(--muted);font-size:12px}
.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0}.view-tabs{display:flex;border-bottom:1px solid var(--line);gap:24px}.tab-btn{border:0;border-bottom:2px solid transparent;border-radius:0;padding:9px 0;color:var(--muted);font-size:15px}.tab-btn.active{color:var(--text);border-bottom-color:var(--accent);font-weight:650}.tab-btn:hover{background:none;color:var(--text)}.quiet-label{font-size:11px;color:var(--quiet);font-variant-numeric:tabular-nums}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0 17px}.section-heading h2{font-size:20px;font-weight:600;letter-spacing:.2px}.section-heading p{color:var(--muted);font-size:12px;margin-top:5px}.section-heading p strong{color:var(--text);font-size:15px;font-weight:650}.inline-control{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);white-space:nowrap}.inline-control select{min-width:118px;color:var(--text)}
.table-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;color:var(--quiet);font-size:11px;border-bottom:1px solid var(--line)}.table-toolbar .text-button{font-size:11px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{padding:13px 20px;color:var(--quiet);font-size:11px;font-weight:500;background:var(--surface-soft)}th span:not(.sr-only){font-size:10px;display:block}td{padding:15px 20px;border-top:1px solid var(--line);font-size:13px}tbody tr{cursor:pointer}tbody tr:hover{background:var(--hover)}tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.num-cell{text-align:right;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}th.num-cell{font-family:var(--font)}.product-name{font-weight:600;font-size:14px}.product-code{color:var(--quiet);font-size:10px;margin-left:9px;letter-spacing:.5px}.pair-label{font-variant-numeric:tabular-nums}.row-caption{display:block;font-size:10px;color:var(--quiet);margin-top:2px}.rate-value{font-size:19px;font-weight:650;letter-spacing:-.2px}.rate-positive{color:var(--accent)}.rate-muted{color:var(--muted)}.row-action{font-size:12px;color:var(--quiet);text-align:right}.row-action span{margin-left:7px;color:var(--accent)}.product-table th,.product-table td{padding-left:16px;padding-right:16px}.product-table .rate-value{font-size:16px}.show-more{display:block;width:100%;padding:13px;border:0;border-top:1px solid var(--line);border-radius:0;color:var(--muted);font-size:12px}.empty-state{text-align:center;padding:50px 20px;color:var(--muted)}.empty-state strong{display:block;color:var(--text);font-size:17px;font-weight:500;margin-bottom:6px}.view-footnote{font-size:11px;color:var(--quiet);margin-top:13px;display:flex;justify-content:space-between;gap:16px}.app-footer{display:flex;align-items:center;gap:12px;color:var(--quiet);font-size:10px;margin-top:30px;padding-top:16px;border-top:1px solid var(--line)}.app-footer .text-button{font-size:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{position:fixed;inset:0;margin:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);width:min(540px,calc(100vw - 36px));max-height:88vh;overflow:auto}dialog::backdrop{background:#0008}.detail-dialog{width:min(740px,calc(100vw - 36px))}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.dialog-header h2{font-size:18px;font-weight:600}.dialog-body{padding:22px 24px}.eyebrow{font-size:11px;color:var(--quiet);margin-bottom:3px}.detail-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.detail-hero .rate-value{font-size:30px}.detail-label{color:var(--muted);font-size:11px}.detail-hero-note{color:var(--muted);font-size:12px;text-align:right}.cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-bottom:22px}.cost-item{padding:12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px}.cost-item span{display:block;font-size:11px;color:var(--muted)}.cost-item strong{display:block;margin-top:4px;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quote-card h3{font-size:12px;font-weight:500;color:var(--muted);margin-bottom:8px}.quote-card strong{display:block;font-size:20px;font-weight:550;font-variant-numeric:tabular-nums}.quote-card p{font-size:11px;color:var(--muted);margin-top:5px}.quote-time-note{font-size:10px;color:var(--quiet);overflow-wrap:anywhere;margin-top:6px}.detail-fold{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.detail-fold summary{font-size:13px;cursor:pointer;color:var(--muted)}.detail-fold p{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.8}.fee-list,.status-list{margin-top:16px}.fee-list>div,.status-list>div{display:flex;justify-content:space-between;gap:24px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.fee-list dt,.status-list dt{color:var(--muted)}.fee-list dd,.status-list dd{text-align:right;font-variant-numeric:tabular-nums}.timeline-item{margin-top:12px;padding:12px;background:var(--surface-soft);border-radius:7px;display:flex;justify-content:space-between;gap:15px;font-size:12px}.timeline-item p{font-size:11px;margin-top:3px;color:var(--muted)}.spec-note{font-size:11px;color:var(--quiet);line-height:1.8;margin-top:16px;overflow-wrap:anywhere}.settings-body section+section{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.settings-body h3{font-size:12px;color:var(--quiet);font-weight:500;margin-bottom:8px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:9px 0;font-size:13px}.setting-row small{display:block;font-size:10px;color:var(--quiet)}.setting-help{font-size:11px;color:var(--quiet);margin-top:8px}.rate-control{display:flex;gap:8px;align-items:center}.rate-control input{width:78px;text-align:right}.snapshot-stale .rate-value{color:var(--quiet)}.snapshot-stale .price-column{color:var(--quiet);opacity:.65}
@media(max-width:850px){.app-layout{padding:18px 20px}.section-heading{gap:14px}.product-table th,.product-table td{padding:12px}.overview-table th,.overview-table td{padding:14px}.term-column{display:none}}
@media(max-width:560px){.app-layout{padding:16px 14px}.app-header{gap:10px;padding-bottom:16px}.brand-mark{display:none}.brand h1{font-size:18px}.brand p{max-width:200px}.header-actions{gap:8px}.status-button{font-size:10px}.section-heading{align-items:flex-start;flex-wrap:wrap;margin-top:20px}.section-heading h2{font-size:18px}.inline-control{font-size:11px}.view-toolbar{margin:14px 0}.view-tabs{gap:22px}.tab-btn{font-size:14px}.quiet-label{font-size:10px}.table-toolbar{padding:10px 12px;font-size:10px;flex-wrap:wrap;gap:2px}.overview-table th,.overview-table td{padding:13px 10px}.product-code{display:block;margin-left:0}.rate-value{font-size:17px}.overview-table .row-action{font-size:0}.overview-table .row-action span{font-size:17px;margin:0}.view-footnote{display:block;line-height:2}.view-footnote .text-button{margin-left:6px}.app-footer{flex-wrap:wrap;gap:4px 10px}.dialog-body,.dialog-header{padding:18px}.quote-grid{gap:12px}.quote-card strong{font-size:17px}.cost-grid{gap:7px}.detail-hero .rate-value{font-size:26px}}
.warehouse-badge{display:block;max-width:220px;margin-top:6px;padding:2px 7px;border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);font-size:10px;font-weight:500;line-height:1.6;color:var(--muted);white-space:normal;text-align:left;cursor:pointer}.warehouse-badge.transition{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,var(--line))}.warehouse-badge:hover{background:var(--hover)}.warehouse-other{display:block;margin-top:4px;font-size:10px;color:var(--warning)}.warehouse-rules-dialog{width:min(820px,calc(100vw - 36px))}.warehouse-help{font-size:11px;color:var(--quiet);line-height:1.7}.warehouse-rule{border-bottom:1px solid var(--line)}.warehouse-rule>summary{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:16px 0;cursor:pointer;font-size:13px;list-style:none}.warehouse-rule>summary::after{content:"+";font-size:17px;color:var(--quiet)}.warehouse-rule[open]>summary::after{content:"−"}.warehouse-rule>summary>span:first-child{flex:1}.warehouse-rule>summary strong{font-weight:550}.warehouse-rule>summary small{display:block;font-size:10px;color:var(--quiet);margin-top:3px}.warehouse-months{max-width:48%;font-size:11px;color:var(--muted);text-align:right}.warehouse-rule-content{padding:0 0 18px;font-size:12px;color:var(--muted);line-height:1.8}.warehouse-rule-content p+p{margin-top:8px}.warehouse-rule-content ul,.warehouse-evidence ul{padding-left:18px;margin:10px 0}.warehouse-source{border-top:1px solid var(--line);padding-top:10px;margin-top:12px;font-size:11px;line-height:1.7}.warehouse-source p{color:var(--quiet)}.warehouse-source blockquote{border-left:2px solid var(--line);padding-left:10px;margin:8px 0;color:var(--muted);white-space:pre-line}.warehouse-upcoming{padding:10px;border-left:2px solid var(--warning);background:var(--surface-soft);margin-top:10px;font-size:12px}.warehouse-inspection{padding:14px 16px;margin-bottom:24px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);font-size:11px;color:var(--muted);line-height:1.75}.warehouse-inspection.has-transition{border-left:3px solid var(--warning)}.warehouse-inspection-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:7px}.warehouse-inspection h3{font-size:13px;color:var(--text);font-weight:550}.warehouse-inspection-heading>span{font-size:10px;color:var(--quiet)}.warehouse-inspection p+p{margin-top:6px}.warehouse-summary{font-size:12px;color:var(--text)}.warehouse-window{font-size:10px;color:var(--quiet)}.warehouse-window strong{font-weight:500;color:var(--muted)}.warehouse-event{padding:8px 0;margin-top:8px;border-top:1px solid var(--line)}.warehouse-event-date{display:block;font-size:10px;color:var(--quiet)}.warehouse-evidence{margin-top:10px}.warehouse-evidence>summary{cursor:pointer;font-size:11px;color:var(--accent)}.warehouse-inspection .warehouse-help{margin-top:10px;font-size:10px}@media(max-width:560px){.warehouse-inspection{padding:12px}.warehouse-inspection-heading{flex-wrap:wrap;gap:2px}.warehouse-rule>summary{gap:10px}.warehouse-months{max-width:52%}}
.warehouse-expiry-hint{display:block;max-width:240px;padding:0;margin-top:5px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:10px;line-height:1.6;white-space:normal;text-align:left;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer}.warehouse-expiry-hint:hover{color:var(--text);background:transparent}.warehouse-expiry-section{border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:24px;font-size:11px;color:var(--muted);line-height:1.75;background:var(--surface)}.warehouse-expiry-section h3{font-size:13px;font-weight:550;color:var(--text)}.warehouse-expiry-section p+p{margin-top:6px}.expiry-coverage{font-size:10px;color:var(--quiet)}.expiry-quantity{display:flex;align-items:baseline;gap:10px;margin:10px 0}.expiry-quantity strong{font-size:18px;color:var(--text);font-weight:550;font-variant-numeric:tabular-nums}.expiry-quantity span{font-size:10px;color:var(--quiet)}.expiry-uncovered,.expiry-unavailable{color:var(--warning);font-size:11px}.expiry-source-links{font-size:11px;margin-top:10px}.expiry-table-scroll{margin:14px 0;border:1px solid var(--line);border-radius:7px}.expiry-table caption{text-align:left;padding:8px 10px;font-size:10px;color:var(--quiet);white-space:normal;background:var(--surface-soft)}.expiry-table th,.expiry-table td{padding:9px 10px;font-size:11px}.expiry-table tbody tr{cursor:default}.expiry-table tbody tr:hover{background:transparent}.expiry-table .expiry-relevant{background:var(--surface-soft)}.warehouse-expiry-fold{border:1px solid var(--line);border-radius:8px;padding:0 14px;margin-bottom:22px}.warehouse-expiry-fold>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;font-size:13px;cursor:pointer;list-style:none}.warehouse-expiry-fold>summary::after{content:"+";font-size:17px;color:var(--quiet)}.warehouse-expiry-fold[open]>summary::after{content:"−"}.warehouse-expiry-fold>summary>span{flex:1}.warehouse-expiry-fold>summary small{font-size:10px;color:var(--quiet)}#warehouse-expiry-catalog{padding-bottom:14px}.expiry-report-heading{display:flex;justify-content:space-between;gap:14px;font-size:11px;margin-bottom:10px;color:var(--muted)}.expiry-report-heading strong{font-weight:550;color:var(--text)}#warehouse-expiry-detail:focus-visible{outline:2px solid var(--accent);outline-offset:3px;scroll-margin-top:85px}@media(max-width:560px){.warehouse-expiry-section{padding:12px}.warehouse-expiry-fold>summary{flex-wrap:wrap;gap:4px 10px}.warehouse-expiry-fold>summary small{flex-basis:100%;order:1}.expiry-table th,.expiry-table td{padding:8px}.expiry-quantity{flex-wrap:wrap;gap:2px 10px}}
