/* 新龙浩图纸核价：系统字体、不连外网 */
:root { --ink:#1d2733; --muted:#6b7785; --line:#d9e0e8; --brand:#0f2a4a; --blue:#1f5fa8; --bg:#f3f6fa; --yellow:#fff4c2; --changed:#e6f0fb; --red:#b42318; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.6 -apple-system,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",sans-serif; }
nav { background:var(--brand); color:#fff; display:flex; flex-wrap:wrap; gap:4px 18px; align-items:center; padding:10px 20px; }
nav a { color:#dbe7f5; text-decoration:none; }
nav a:hover { color:#fff; }
nav .brand { color:#fff; font-weight:600; margin-right:12px; }
nav .who { margin-left:auto; color:#b9c9dc; }
nav form.inline { display:inline; }
nav button.link { color:#dbe7f5; padding:0; }
nav button.link:hover { color:#fff; background:none; }
main { max-width:1180px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:22px; margin:8px 0 6px; } h2 { font-size:18px; margin:26px 0 10px; } h3 { font-size:15px; margin:14px 0 6px; } h4 { margin:10px 0 4px; }
a { color:var(--blue); }
.muted { color:var(--muted); font-size:13px; }
.err { color:var(--red); background:#fdecea; padding:8px 12px; border-radius:6px; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; }
.card > h2:first-child { margin-top:0; }
.card.warn { border-color:#f1c27d; background:#fffaf0; margin-top:16px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:760px) { .grid2 { grid-template-columns:1fr; } }
label { display:block; margin:0 0 12px; font-weight:500; }
input, select, button { font:inherit; }
input:not([type=hidden]):not([type=file]), select { border:1px solid #b8c4d2; border-radius:6px; padding:5px 8px; background:#fff; }
label input:not([type=file]) { display:block; width:100%; margin-top:4px; }
label input[type=file] { display:block; margin-top:6px; }
button, .btn { background:var(--blue); color:#fff; border:0; border-radius:6px; padding:6px 14px; cursor:pointer; text-decoration:none; display:inline-block; }
button:hover, .btn:hover { background:#174d8a; }
button.link { background:none; color:var(--blue); padding:0 4px; text-decoration:underline; }
.pick { position:relative; }
.pick input[type=file] { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.pickbtn { display:inline-block; margin:6px 10px 0 0; padding:6px 14px; border:1px solid #b8c4d2; border-radius:6px; background:#fff; color:var(--brand); cursor:pointer; font-weight:400; }
.pick:focus-within .pickbtn { outline:2px solid var(--blue); }
.picked { font-weight:400; color:var(--muted); font-size:14px; word-break:break-all; }
.login { max-width:400px; margin:60px auto; }
.login button { width:100%; padding:9px; margin-top:6px; }
.spec { padding-left:20px; margin:6px 0; } .spec li { margin:4px 0; }
table { border-collapse:collapse; width:100%; background:#fff; border:1px solid var(--line); }
th, td { border-bottom:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
th { background:#eef3f9; font-weight:600; white-space:nowrap; font-size:14px; }
td.n { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
table.steps td:nth-child(2), table.steps td:nth-child(3) { white-space:nowrap; }
td.basis { font-size:13px; color:#3d4a59; max-width:420px; }
tr.yellow td { background:var(--yellow); }
tr.changed td { background:var(--changed); }
tr.total td { font-weight:700; background:#eef6ee; }
.tag { font-size:12px; background:#dbe7f5; color:var(--brand); border-radius:4px; padding:0 6px; white-space:nowrap; }
.scroll { overflow-x:auto; }
.bar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:10px 0; }
form.inline { display:inline-flex; gap:6px; align-items:center; flex-wrap:wrap; margin:0; }
form.inline input[name=batch] { width:90px; }
.warn-line { background:var(--yellow); padding:6px 10px; border-radius:6px; }
details.edit summary { cursor:pointer; color:var(--blue); }
details.edit form { display:flex; flex-direction:column; gap:4px; margin-top:6px; min-width:170px; }
form.fill { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
form.fill input { width:110px; }
ol.doubts { padding-left:22px; } ol.doubts li { background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin:8px 0; }
ol.doubts dl { display:grid; grid-template-columns:7em 1fr; margin:6px 0 2px; gap:2px 8px; } ol.doubts dt { color:var(--muted); } ol.doubts dd { margin:0; }
ul.big li { font-size:16px; margin:6px 0; }
ol.log { font-size:13px; }
img.preview { max-width:100%; border:1px solid var(--line); background:#fff; }
.feat { background:#fff; border:1px solid var(--line); border-radius:8px; padding:6px 14px; font-size:13px; }
table.rates td:first-child { white-space:nowrap; }
.printonly { display:none; }
@media print {
  @page { size:A4; margin:12mm; }
  body { background:#fff; font-size:10px; line-height:1.45; }
  h1 { font-size:16px; } h2 { font-size:13px; margin:12px 0 6px; }
  ol.doubts dl { grid-template-columns:4.5em 1fr 3em 1fr 6em 1fr; margin:2px 0 0; }
  ol.doubts .muted { display:none; }
  nav, .noprint, .bar, details, img.preview, h2.noprint { display:none !important; }
  .printonly { display:block; }
  main { max-width:none; padding:0; }
  th, td { padding:3px 5px; }
  td.basis { max-width:none; }
  table { page-break-inside:auto; } tr { page-break-inside:avoid; }
  ol.doubts li { page-break-inside:avoid; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:4px 0; }
  tr.yellow td { background:var(--yellow) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .scroll { overflow:visible; }
}
