:root{--bg:#f6f7f9;--panel:#fff;--text:#1c2430;--muted:#667085;--border:#d9dee5;--accent:#0f5f8c;--accent-text:#fff;--warn-bg:#fff6e0;--warn-text:#7a4b00;--err-bg:#fdecec;--err-text:#9b1c1c;--row-text-bg:#eef3f8;--row-total-bg:#f2f2f2}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 system-ui,Segoe UI,Tahoma,sans-serif}.container{max-width:1400px;margin:0 auto;padding:20px 16px 60px}.nav{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 16px;display:flex}.brand{color:var(--accent);font-weight:700;text-decoration:none}.nav-right{align-items:center;gap:12px;margin-inline-start:auto;display:flex}h1{margin:4px 0 16px;font-size:22px}h2{margin:0 0 12px;font-size:17px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}label{flex-direction:column;gap:4px;font-weight:500;display:flex}input,select{font:inherit;border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;padding:7px 9px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;border-radius:6px;padding:8px 14px}button:disabled{opacity:.5;cursor:default}button.secondary{color:var(--accent);background:#fff}button.link{color:var(--accent);background:0 0;border:none;padding:0}.auth{max-width:380px;margin:40px auto}.auth form{flex-direction:column;gap:12px;display:flex}.error{background:var(--err-bg);color:var(--err-text);white-space:pre-wrap;border-radius:6px;margin:8px 0;padding:8px 12px}.warn{background:var(--warn-bg);color:var(--warn-text);border-radius:6px;margin:8px 0;padding:8px 12px}.notice{border-left:3px solid var(--accent);background:var(--row-text-bg);margin:8px 0;padding:6px 12px}.table-wrap{border:1px solid var(--border);border-radius:6px;max-height:70vh;overflow:auto}table{border-collapse:collapse;background:#fff;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:5px 8px}th{z-index:1;white-space:nowrap;background:#f0f2f5;position:sticky;top:0}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.desc{white-space:pre-wrap;unicode-bidi:plaintext;min-width:280px;max-width:560px}tr.text td{background:var(--row-text-bg);font-weight:600}tr.total td{background:var(--row-total-bg);font-style:italic}tr.header-row td{background:#dcecf8;font-weight:700}tr.selectable{cursor:pointer}tr.selectable:hover td{outline:1px solid var(--accent)}.badge{background:#eef0f3;border-radius:10px;padding:1px 7px;font-size:12px;display:inline-block}.badge.warn{background:var(--warn-bg);color:var(--warn-text);margin:0}.badge.ok{color:#1e6b35;background:#e6f4ea}.stats{flex-wrap:wrap;gap:18px;display:flex}.stats div b{font-size:18px;display:block}ul.plain{margin:0;padding:0;list-style:none}ul.plain li{border-bottom:1px solid var(--border);padding:8px 0}a{color:var(--accent)}.mapping-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tabs button{color:var(--text);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0}.tabs button[aria-selected=true]{background:var(--panel);border-color:var(--border);color:var(--accent);margin-bottom:-1px;font-weight:600}.tabs .tab-link{align-self:center;margin-inline-start:8px;padding:6px 12px;font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px;display:flex}.toolbar .filters{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.form-grid .wide{grid-column:1/-1}textarea{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:6px;min-height:60px;padding:7px 9px}.field-error{color:var(--err-text);font-size:13px;font-weight:400}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true],fieldset[aria-invalid=true]{border-color:var(--err-text)}fieldset.choices{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:12px;margin:0;padding:6px 10px;display:flex}fieldset.choices legend{padding-inline:4px;font-weight:500}fieldset.choices label{flex-direction:row;align-items:center;gap:6px;font-weight:400}.success{color:#1e6b35;background:#e6f4ea;border-radius:6px;margin:8px 0;padding:8px 12px}.actions{flex-wrap:wrap;gap:6px;display:flex}.actions button{padding:4px 10px}button.danger{color:var(--err-text);border-color:var(--err-text);background:#fff}.badge.err{background:var(--err-bg);color:var(--err-text)}.modal-backdrop{z-index:50;background:#141c2873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border-radius:8px;flex-direction:column;gap:10px;width:min(520px,100%);padding:18px;display:flex;box-shadow:0 10px 30px #00000040}.dialog-subject{background:var(--row-text-bg);border-radius:6px;margin:0;padding:8px 10px;font-size:15px}.modal .buttons{justify-content:flex-end;gap:8px;display:flex}.editor{border-inline-start:4px solid var(--accent)}.user-text{unicode-bidi:plaintext}@media (max-width:768px){.toolbar{flex-direction:column;align-items:stretch}}.ws h1{font-size:26px}.steps{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.step{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:8px 12px;font-size:14px}.step.current{border-color:var(--accent);background:#e6f3f8;font-weight:700}.step.done{color:#1e6b35}.step.off{color:var(--muted);background:#f1f2f4}.step-no{min-width:20px;font-weight:700;display:inline-block}.step-tag{color:var(--muted);margin-inline-start:6px;font-size:12px}.ws-card{padding:20px 22px}.ws-blocker{background:#fdecec;border:2px solid #c62828;border-radius:10px;margin-bottom:12px;padding:16px 20px}.ws-blocker h2{color:#9b1c1c}.ws-bar{background:var(--panel);border:1px solid var(--border);z-index:5;border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;padding:12px 16px;display:flex;position:sticky;top:0}.ws-counter{border-radius:8px;padding:4px 10px;font-size:18px;font-weight:700}.ws-nav{gap:8px;margin-inline-start:auto;display:flex}.ws-nav button{padding:10px 16px;font-size:15px}.ws-main{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:16px;margin-bottom:16px;display:grid}.ws-drawing{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.viewer-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.viewer-svg{border:1px solid var(--border);touch-action:none;background:#fbfcfd;border-radius:6px;width:100%;height:66vh;max-height:720px}.viewer-svg:focus-visible{outline:3px solid var(--accent)}.q-panel{background:var(--panel);border:2px solid var(--accent);border-radius:10px;max-height:calc(100vh - 90px);padding:18px 20px;position:sticky;top:72px;overflow:auto}.q-empty{font-size:16px}.q-title{margin:6px 0 8px;font-size:20px}.q-explain{color:var(--muted);margin:0 0 10px}.q-h{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:10px 0 4px;font-size:14px}.q-list{margin:0;padding-inline-start:18px}.q-problems li{color:#9b1c1c}.q-question{background:#e6f3f8;border-radius:8px;margin:14px 0 10px;padding:10px 12px;font-size:17px;font-weight:700}.q-form{flex-direction:column;gap:14px;display:flex}.q-label{flex-direction:column;gap:6px;font-size:15px;font-weight:600;display:flex}.q-input{background:#fff;border:2px solid #b8c2cc;border-radius:8px;padding:10px 12px;font-size:16px}.q-input:focus-visible{outline:3px solid var(--accent);border-color:var(--accent)}textarea.q-input{min-height:84px}.q-unit-row{align-items:center;gap:8px;display:flex}.q-unit-row .q-input{flex:1}.q-unit{font-weight:700}.q-check{flex-direction:row;align-items:flex-start;gap:8px;font-weight:500}.q-choices{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.q-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.q-primary{padding:12px 20px;font-size:16px;font-weight:700}.danger-link{color:var(--err-text);text-decoration:underline}.q-status{border-radius:6px;align-items:center;gap:6px;margin:0;padding:3px 9px;font-size:13px;font-weight:700;display:inline-flex}.q-red{color:#9b1c1c;background:#fdecec}.q-amber{color:#7a4b00;background:#fff4e0}.q-green{color:#1e6b35;background:#e6f4ea}.q-grey{color:#4a4f57;background:#eef0f3}.q-blocked{color:#7a4b00;background:#fff4e0;border-radius:8px;margin:0;padding:10px 12px}.q-fallback{background:#f4f6f8;border-inline-start:4px solid #7a7f87;padding:8px 12px}.q-decision{background:#f4f9f5;border-radius:8px;padding:10px 12px}.q-note{color:var(--muted)}.ws-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.ws-item{text-align:start;width:100%;color:var(--text);border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.ws-item.is-sel{border:2px solid var(--accent)}@media (max-width:900px){.ws-main{grid-template-columns:1fr}.q-panel{max-height:none;position:static}.viewer-svg{height:52vh}.ws-nav{margin-inline-start:0}}.pilot-banner{color:#8e1b1b;background:#fdecea;border-bottom:2px solid #c62828;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:8px 16px;font-size:14px;display:flex}.feedback-button{padding:6px 10px;font-size:14px}.feedback-done{font-size:14px}.fb-context{overflow-wrap:anywhere;font-size:13px}.fb-list{gap:10px;padding:0;list-style:none;display:grid}.fb-item{margin:0}.fb-head{margin:0 0 6px}.fb-message{white-space:pre-wrap;overflow-wrap:anywhere}.fb-triage{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.fb-note{flex:260px}
