:root{--paper: #f2efe6;--paper-deep: #e9e4d6;--ink: #1c2620;--ink-soft: #5c665e;--line: #b9b2a0;--line-strong: #1c2620;--orange: #d9480f;--green: #2b7a3d;--red: #b31f1f;--amber: #9a6700;--mono: "IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--sans: "IBM Plex Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(28,38,32,.035) 31px 32px);color:var(--ink);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;line-height:1.55}button,input,select,fieldset{font:inherit;color:inherit}.sheet{max-width:1020px;margin:0 auto;padding:34px 22px 70px}.masthead{border:2.5px solid var(--line-strong);background:#fffdf7;padding:26px 30px 24px;position:relative}.masthead:after{content:"";position:absolute;inset:5px;border:1px solid var(--line);pointer-events:none}.mast-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.doc-code{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase}.masthead h1{margin:0;font-size:clamp(24px,4.5vw,34px);letter-spacing:.06em;font-weight:700}.masthead h1:before{content:"◈ ";color:var(--orange)}.mast-sub{margin:10px 0 0;color:var(--ink-soft);font-size:13.5px;max-width:640px}.panel{border:1.5px solid var(--line-strong);background:#fffdf7;margin-top:22px}.panel-head{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1.5px solid var(--line-strong);background:var(--paper-deep)}.sec-no{font-family:var(--mono);font-size:12px;font-weight:600;color:#fffdf7;background:var(--ink);padding:2px 7px}.panel-head h2{margin:0;font-size:15px;letter-spacing:.08em;flex:1}.ghost-btn{font-size:12.5px;border:1.5px solid var(--ink);background:transparent;padding:4px 12px;cursor:pointer;letter-spacing:.05em;transition:background .15s,color .15s}.ghost-btn:hover{background:var(--ink);color:#fffdf7}.req-grid,.sup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px;padding:18px}.req-grid{padding-bottom:22px}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft)}.field input,.field select{border:1.5px solid var(--line);background:#fff;padding:6px 9px;font-family:var(--mono);font-size:13.5px}.field input:focus,.field select:focus,.name-input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 2px #d9480f2e}.field.check{flex-direction:row;align-items:center;gap:8px;padding-top:16px}.field.check input{width:16px;height:16px;accent-color:var(--green)}.span2{grid-column:span 2}.supplier-block{border:1.2px dashed var(--line);margin:16px 18px;padding:0 14px 6px}.supplier-block legend{display:flex;align-items:center;gap:10px;padding:0 6px}.name-input{border:1.5px solid var(--line);background:#fff;padding:4px 10px;font-weight:700;width:180px}.del-btn{border:none;background:none;color:var(--red);cursor:pointer;font-size:14px;padding:2px 6px}.del-btn:hover{background:#f6e4e4}.empty{padding:22px 18px;color:var(--ink-soft);font-size:13.5px;margin:0}.footnote{margin:0;padding:10px 18px 14px;font-size:12px;color:var(--ink-soft);border-top:1px dashed var(--line)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;text-align:left;padding:8px 12px;background:var(--paper-deep);border-bottom:1.5px solid var(--line-strong);white-space:nowrap}td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:#d9480f0a}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.cell-strong{font-weight:700}.td-ok{color:var(--green);font-family:var(--mono);font-size:12.5px}.td-bad{color:var(--red);font-weight:700;font-family:var(--mono);font-size:12.5px}.td-warn{color:var(--amber);font-family:var(--mono);font-size:12.5px}.composite{font-weight:700;font-size:15px}.row-winner td{background:#2b7a3d12}.row-winner td:first-child{box-shadow:inset 3px 0 0 var(--green)}.stamp{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.15em;padding:2px 9px;border:2px solid currentColor;border-radius:3px;transform:rotate(-3deg);font-family:var(--mono)}.stamp-pass{color:var(--green)}.stamp-fail{color:var(--red)}.profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;padding:18px}.profile-card{border:1.2px solid var(--line);padding:12px 14px;background:#fff}.profile-card h4{margin:0 0 10px;font-size:13px;letter-spacing:.05em}.bar-row{display:grid;grid-template-columns:34px 1fr 38px;gap:8px;align-items:center;margin:5px 0}.bar-label{font-size:11px;color:var(--ink-soft)}.bar-track{height:8px;background:var(--paper-deep);border:1px solid var(--line)}.bar-fill{display:block;height:100%}.bar-fill.hi{background:var(--green)}.bar-fill.mid{background:var(--amber)}.bar-fill.lo{background:var(--red)}.bar-num{font-family:var(--mono);font-size:11.5px;text-align:right}.rules{padding:14px 18px;border-bottom:1px dashed var(--line);background:#1c262008}.rules p{margin:3px 0;font-size:12.5px;font-family:var(--mono);color:var(--ink-soft)}.verdict-box{padding:18px;border-top:1px dashed var(--line)}.verdict-box.verdict-warn{background:#b31f1f0d}.verdict-main{margin:0 0 6px;font-size:16px}.verdict-main b{color:var(--orange)}.verdict-sub{margin:3px 0 0;font-size:13px;color:var(--ink-soft)}.nego-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;padding:18px}.nego-card{border:1.2px solid var(--line);background:#fff;padding:12px 14px}.nego-card h4{margin:0 0 8px;font-size:13.5px}.nego-card ul{margin:0;padding-left:0;list-style:none}.nego-card li{font-size:12.5px;color:var(--ink-soft);padding:3px 0 3px 14px;position:relative}.nego-card li:before{content:"▸";position:absolute;left:0;color:var(--orange)}.colophon{margin-top:26px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-soft)}@media(max-width:560px){.span2{grid-column:span 1}.panel{border-left:none;border-right:none}.sheet{padding:20px 0 60px}}
