:root{color-scheme:light;--ink:#17243a;--muted:#6c7c94;--blue:#235ae8;--line:#e4eaf3}*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:var(--ink);font:15px/1.6 'Segoe UI','Microsoft YaHei',sans-serif}header{height:82px;background:white;border-bottom:1px solid var(--line);padding:0 max(24px,calc((100vw - 1080px)/2));display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:13px;align-items:center;font-weight:700;font-size:19px}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:400}.logo{display:grid;place-items:center;background:var(--blue);color:white;border-radius:12px;width:43px;height:43px;font-size:34px}main{max-width:1080px;margin:0 auto;padding:48px 24px}.eyebrow{font-size:10px;color:var(--muted);letter-spacing:2px;font-weight:700;margin:0 0 10px}h1{font-size:30px;line-height:1.3;margin:0 0 12px;letter-spacing:-.5px}.intro{font-size:13px;color:var(--muted);margin-bottom:30px}h2{font-size:17px;margin:0 0 24px}.staff-grid{display:grid;grid-template-columns:340px 1fr;gap:24px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:29px;box-shadow:0 5px 20px #2946700c}label{display:block;font-size:13px;font-weight:600;margin:0 0 9px}label:not(:first-child){margin-top:22px}input,select,button{font:inherit}input,select{display:block;width:100%;border:1px solid #d8e1ef;border-radius:9px;padding:11px 13px;min-height:46px;background:white;color:var(--ink)}.unit-input{position:relative}.unit-input input{padding-right:54px}.unit-input span{position:absolute;right:15px;top:12px;color:var(--muted);font-size:13px}.primary{display:block;border:0;border-radius:9px;background:var(--blue);color:#fff;padding:12px 18px;width:100%;margin-top:26px;cursor:pointer;font-size:13px;font-weight:600}button:disabled{opacity:.55;cursor:wait}.small,.foot{font-size:11px;color:var(--muted);line-height:1.8}.small{margin:20px 0 0}.foot{margin-top:24px}.result{background:linear-gradient(125deg,#fff,#f7faff)}.result-top{display:flex;justify-content:space-between;align-items:start;gap:14px}.badge{background:#e9f0ff;border-radius:20px;padding:4px 13px;color:#325fb9;font-size:12px}.price{display:flex;align-items:baseline;gap:10px;margin:8px 0 28px;color:#203f75;font-variant-numeric:tabular-nums}.price>span{font-size:29px}.price output{font-size:58px;font-weight:700;letter-spacing:-2px}.price small{font-size:13px;color:var(--muted)}.totals{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);font-size:13px}.totals span{color:var(--muted)}.totals strong{font-size:16px;font-variant-numeric:tabular-nums}.fx{background:#eef3fd;border-radius:10px;padding:15px 18px;margin-top:14px}.fx>span{font-size:11px;color:var(--muted);display:block}.fx strong{font-size:15px}.fx p{font-size:10px;color:var(--muted);margin:4px 0}.error{background:#fff0ec;border-radius:8px;padding:10px;color:#b1533a;font-size:12px}.admin{max-width:920px}.admin #login-panel{max-width:480px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid label{font-size:12px;margin:0}.settings-grid input{margin-top:8px}h3{font-size:15px;margin:30px 0 15px}.text-button{background:transparent;color:var(--blue);border:0;padding:9px 0;font-size:12px;cursor:pointer}#save-status{color:#21816b;font-size:12px}[hidden]{display:none!important}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid #9ebcff;outline-offset:3px}@media(max-width:700px){header{height:73px;padding:0 18px}main{padding:30px 17px}h1{font-size:25px}.staff-grid{grid-template-columns:1fr;gap:18px}.card{padding:23px}.price output{font-size:49px}.settings-grid{grid-template-columns:1fr}.price{margin-top:3px}.intro{font-size:12px}}

.company-card{border:1px solid #dbe2ef;border-radius:12px;padding:20px;margin:16px 0}.compare-card{margin-top:24px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #e5e9f0;white-space:pre-line;min-width:85px}th{background:#f3f6fc}td:first-child{min-width:180px}

.company-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-top:24px;align-items:start}.company-price{font-size:38px;font-weight:800;color:#214275;margin:20px 0}.company-results .totals{gap:10px}.company-results .totals strong{text-align:right}.company-results h2{overflow-wrap:anywhere}@media(max-width:640px){.company-results{grid-template-columns:1fr}}

/* 顶部横向货物输入与汇率，物流公司每行最多四家 */
main.staff{max-width:1500px}.staff-grid{grid-template-columns:minmax(0,3fr) minmax(260px,1fr);align-items:start;gap:20px}.staff-grid .card{padding:22px}.staff-grid h2{margin-bottom:16px}.cargo-horizontal{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:16px;align-items:end}.cargo-horizontal .cargo-field{min-width:0}.cargo-horizontal label{margin:0 0 8px;font-size:12px}.cargo-horizontal .primary{margin:0;min-height:46px;white-space:nowrap}.staff-grid .small{margin-top:12px}.staff-grid .fx{margin-top:0}.company-results{grid-template-columns:repeat(4,minmax(0,1fr))}.company-results .card{padding:22px}.company-price{font-size:32px;overflow-wrap:anywhere}.company-results .totals{flex-wrap:wrap}.company-results .totals strong{margin-left:auto}.company-results .result-top{flex-wrap:wrap}
@media(max-width:1250px){.company-results{grid-template-columns:repeat(3,minmax(0,1fr))}.cargo-horizontal{grid-template-columns:1fr 1fr}.staff-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}}
@media(max-width:950px){.company-results{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-grid{grid-template-columns:1fr}.cargo-horizontal{grid-template-columns:1fr 1fr 1.5fr auto}}
@media(max-width:700px){.cargo-horizontal{grid-template-columns:1fr 1fr}.company-results{grid-template-columns:1fr}.brand{font-size:15px}.logo{display:none}}
@media(max-width:420px){.cargo-horizontal{grid-template-columns:1fr}}

@media(max-width:700px){header{height:auto;min-height:73px;gap:16px;padding-top:12px;padding-bottom:12px}.brand{min-width:0;overflow-wrap:anywhere;line-height:1.4}header>.text-button{flex-shrink:0}.company-results .card{min-width:0}.company-results input{min-width:0}.admin input{min-width:0}main{width:100%}}
