:root{--bg:#f7f4ee;--surface:#ffffff;--surface-soft:#fbfaf7;--text:#1f2933;--muted:#687385;--line:#ded7cc;--gold:#b98518;--silver:#6f7f8d;--blue:#1f6feb;--green:#137a43;--red:#bd2f2f;--amber:#9a6700;--shadow:0 12px 32px rgba(40,33,21,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{width:min(1440px,100%);margin:0 auto;padding:24px}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:20px;gap:20px;align-items:end;padding:24px 0 18px}.hero h1{margin:0;font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:0}.hero p{margin:10px 0 0;font-size:18px}.hero p,.top-meta{color:var(--muted)}.top-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:14px}.top-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.section{margin-top:22px}.section-title{margin:0 0 12px;font-size:22px;letter-spacing:0}.grid{display:grid;grid-gap:16px;gap:16px}.price-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px}.card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-title{margin:0;font-size:18px}.card-subtitle{margin:5px 0 0;color:var(--muted);font-size:13px}.big-price{margin:18px 0 6px;font-size:clamp(30px,5vw,48px);font-weight:800;line-height:1;letter-spacing:0;overflow-wrap:anywhere}.unit{font-size:15px;font-weight:600}.meta-list,.unit{color:var(--muted)}.meta-list{display:grid;grid-gap:8px;gap:8px;margin-top:16px;font-size:13px}.meta-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #eee8df;padding-top:8px}.meta-row span:last-child{text-align:right;color:var(--text);overflow-wrap:anywhere}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;border:1px solid var(--line);padding:5px 9px;font-size:12px;font-weight:700;background:var(--surface-soft);color:var(--text)}.badge.ok{border-color:rgba(19,122,67,.25);background:rgba(19,122,67,.09);color:var(--green)}.badge.stale{border-color:rgba(154,103,0,.28);background:rgba(154,103,0,.1);color:var(--amber)}.badge.blocked,.badge.error,.badge.negative{border-color:rgba(189,47,47,.24);background:rgba(189,47,47,.09);color:var(--red)}.badge.positive{border-color:rgba(19,122,67,.24);background:rgba(19,122,67,.09);color:var(--green)}.badge.neutral{color:var(--muted)}.status-bar{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.refresh-controls,.status-bar{display:flex;gap:10px;flex-wrap:wrap}.refresh-controls{align-items:center;justify-content:flex-end}.icon-button,.primary-button{min-height:40px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;gap:8px;padding:9px 12px;font-weight:700}.primary-button{border-color:var(--blue);background:var(--blue);color:white}.primary-button:disabled{opacity:.58;cursor:not-allowed}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:28px}.login-eyebrow{margin:0 0 8px;color:var(--gold);font-weight:800;letter-spacing:0}.login-panel h1{margin:0;font-size:34px;line-height:1.12;letter-spacing:0}.login-subtitle{margin:12px 0 0;color:var(--muted);line-height:1.7}.login-form{display:grid;grid-gap:12px;gap:12px;margin-top:24px}.login-form label{font-size:14px;font-weight:800;color:var(--muted)}.login-form input{min-height:46px;border:1px solid var(--line);background:var(--surface-soft)}.login-error,.login-form input{border-radius:8px;padding:10px 12px}.login-error{border-left:4px solid var(--red);background:rgba(189,47,47,.08);color:var(--red);font-weight:700}.notice{border-left:4px solid var(--amber);background:#fff9ec;padding:12px 14px;border-radius:8px;color:#6f4a00}.rongtong-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.rtj-table-wrap{margin-top:16px;overflow-x:auto;border:1px solid #eee8df;border-radius:8px}.rtj-table{width:100%;min-width:760px;border-collapse:collapse;font-size:14px}.rtj-table td,.rtj-table th{padding:12px 10px;border-bottom:1px solid #eee8df;text-align:right;white-space:nowrap}.rtj-table th{background:var(--surface-soft);color:var(--muted);font-size:12px}.rtj-table td:first-child,.rtj-table th:first-child{text-align:left}.rtj-table td:first-child span,.rtj-table td:first-child strong{display:block}.rtj-table td:first-child span{margin-top:3px;color:var(--muted);font-size:12px}.rtj-table tr:last-child td{border-bottom:0}.positive-text{color:var(--green);font-weight:700}.negative-text{color:var(--red);font-weight:700}.disclaimer{background:#fff8e8;border:1px solid #ead8a7;border-radius:8px;padding:14px 16px;color:#604200;font-weight:700}.chart{min-height:320px}.mini-chart{min-height:130px;margin-top:12px}.compare-form{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:12px;gap:12px;align-items:end}.field{display:grid;grid-gap:6px;gap:6px}.field label{font-weight:700;color:var(--muted);font-size:13px}.field input,.field select{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--surface)}.compare-result{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:16px}.stat{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.stat span{display:block;color:var(--muted);font-size:12px;font-weight:700}.stat strong{display:block;margin-top:6px;font-size:20px;overflow-wrap:anywhere}.skeleton{min-height:160px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent),#e9e2d7;background-size:220px 100%,100% 100%;animation:shimmer 1.3s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:-220px 0,0 0}to{background-position:calc(220px + 100%) 0,0 0}}@media (max-width:1100px){.price-grid,.three-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.app-shell{padding:16px}.hero{grid-template-columns:1fr}.top-meta{align-items:flex-start}.top-actions{justify-content:flex-start}.compare-form,.compare-result,.price-grid,.rongtong-meta,.three-grid,.two-grid{grid-template-columns:1fr}.refresh-controls{justify-content:flex-start}}