:root{--bg: #f4f1ec;--card: #ffffff;--line: #e3ddd3;--text: #2b2723;--muted: #7a7168;--accent: #3a7bd5;--err: #c0392b;font-family:-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,select,input{font:inherit}button{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 10px;cursor:pointer;color:var(--text)}button:hover{border-color:#c9bfb1}button:disabled{opacity:.4;cursor:default}button.danger{color:var(--err)}button.ghost{background:transparent}input,select{border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:#fff;width:100%;min-width:0}input.num{width:76px;text-align:right}.app{height:100vh;display:flex;flex-direction:column}.top{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}.brand{font-weight:600}.brand span{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}.tabs{display:flex;gap:4px}.tabs button.on{background:var(--text);color:#fff;border-color:var(--text)}.stats{color:var(--muted);font-size:14px}.stats .bad{color:var(--err);font-weight:600}.actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.main{flex:1;display:flex;min-height:0}.side{width:360px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--line)}.view{flex:1;min-width:0;overflow:auto;position:relative}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.hint{position:absolute;left:12px;bottom:10px;font-size:13px;color:var(--muted);background:#fffc;padding:4px 8px;border-radius:6px}.dim{font-size:12px;background:#ffffffd9;padding:1px 5px;border-radius:4px;color:var(--muted);white-space:nowrap}.dim.on{background:var(--accent);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}.card.sel{border-color:var(--accent);box-shadow:0 0 0 2px #3a7bd526}.card-h{font-weight:600;display:flex;justify-content:space-between;align-items:center}.x{border:none;background:transparent;font-size:18px;line-height:1;padding:2px 6px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.field .num{width:100%}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.run{border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:6px}.run:first-of-type{border-top:none;padding-top:0}.run-h{font-weight:500;font-size:14px}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{font-size:13px;padding:4px 8px}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.items{display:flex;flex-direction:column;gap:4px}.items-h{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.item{display:flex;align-items:center;gap:6px}.item .tag{flex:1;font-size:13px}.item .sub{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}.item .sub .num{width:56px}.tag.t-rod{color:#555}.tag.t-drawer{color:#8a5a2b}.row-btns{display:flex;gap:4px;flex-wrap:wrap}.row-btns button{font-size:13px;padding:4px 8px}.warn{font-size:13px;padding:6px 8px;border-radius:6px;cursor:pointer;background:#fdf3e1;color:#7a4f10}.warn.error{background:#fbe9e7;color:#8e2a1f}.doc{padding:16px 20px;max-width:1100px}.doc h2{margin:8px 0;font-size:20px}.note{color:var(--muted);font-size:14px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;font-size:14px;background:#fff}th,td{border:1px solid var(--line);padding:4px 8px;text-align:right;white-space:nowrap}th{background:#f7f4ef;font-weight:500}td.l,th.l{text-align:left}.sheet{margin:14px 0;break-inside:avoid}.sheet-h{font-weight:500;margin-bottom:4px}.sheet-svg{width:100%;max-width:1000px;height:auto;display:block}.print-only{display:none}@media print{.app>:not(.print-only){display:none!important}.app{height:auto}.print-only{display:block}.print-only .doc{padding:0;max-width:none}body{background:#fff}}@media(max-width:760px){.main{flex-direction:column-reverse}.side{width:100%;border-right:none;max-height:48vh}.view{min-height:52vh}.actions{margin-left:0}input.num{width:64px}}
