*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#0b2a3c;color:#1b2b36}
header{display:flex;align-items:center;gap:16px;padding:8px 16px;background:#08202e;color:#fff;border-bottom:4px solid #d22630}
.logo{font-weight:900;letter-spacing:2px;font-size:22px}.logo span{color:#d22630}
header h1{font-size:18px;margin:0;font-weight:normal;flex:1}.stat{background:#123b52;padding:4px 10px;border-radius:4px;font-size:15px}
header button,.btn{font:inherit;font-size:15px;padding:6px 12px;border:0;border-radius:4px;background:#d22630;color:#fff;cursor:pointer;min-height:36px}
.btn.sec{background:#5b6b75}.btn:disabled{opacity:.45;cursor:default}
main{display:flex;gap:10px;padding:10px;align-items:flex-start}
#boardWrap{flex:1 1 62%;background:#f4f6f7;border-radius:6px;padding:6px;min-width:0}#board{width:100%;height:auto;display:block;touch-action:manipulation}
#panel{flex:1 1 38%;max-width:470px;background:#fff;border-radius:6px;padding:12px;font-size:16px;max-height:calc(100vh - 80px);overflow:auto}
#panel h2{margin:0 0 6px;font-size:19px;color:#0b2a3c;border-bottom:2px solid #d22630;padding-bottom:4px}
.steps{display:flex;gap:4px;margin-bottom:8px}.steps div{flex:1;text-align:center;font-size:13px;padding:4px;background:#dde3e6;border-radius:3px}.steps .on{background:#0b2a3c;color:#fff}.steps .done{background:#2e8b57;color:#fff}
.read{background:#0b2a3c;color:#7CFC9a;font-family:"Courier New",monospace;font-size:20px;padding:6px 10px;border-radius:4px;margin:6px 0}
table{border-collapse:collapse;width:100%;font-size:14px;margin:6px 0}th,td{border:1px solid #b8c2c8;padding:3px 5px;text-align:center}th{background:#e6ebee}
input[type=number]{font:inherit;width:110px;padding:5px;border:1px solid #889}select{font:inherit;padding:4px}
.fb{padding:6px 8px;border-radius:4px;margin:6px 0}.ok{background:#dff3e4;border-left:4px solid #2e8b57}.bad{background:#fde3e3;border-left:4px solid #d22630}.warn{background:#ffff99;border-left:4px solid #c9a000}
.tag{font-size:12px;color:#666;font-style:italic}.foot{font-size:13px;color:#555;margin-top:8px}
.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:5px 0}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:9}.modal.show{display:flex}
.card{background:#fff;max-width:760px;width:94%;max-height:90vh;overflow:auto;border-radius:6px;padding:16px 20px;font-size:16px}.card h2{color:#0b2a3c;border-bottom:3px solid #d22630;margin-top:0}
.eq{font-family:"Courier New",monospace;background:#f1f4f6;padding:6px 10px;border-radius:4px;margin:4px 0;font-size:16px}
.clk{cursor:pointer}.flow{stroke-dasharray:10 12;animation:fl var(--sp,1s) linear infinite}@keyframes fl{to{stroke-dashoffset:-22}}
.report th{background:#0b2a3c;color:#fff}
@media (max-width:860px){main{flex-direction:column}#boardWrap{width:100%}#panel{max-width:none;width:100%;max-height:none}}
@media (max-width:1100px){header{flex-wrap:wrap;gap:8px}header h1{font-size:15px}header button,.btn{font-size:14px;padding:5px 9px}#panel{font-size:15px}#panel{max-width:400px}}

.meter{background:#1d2228;color:#e8f4ea;border-radius:8px;padding:8px 10px;margin:8px 0;font-family:ui-monospace,monospace}.mh{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#9fb;gap:8px}.utog{padding:3px 8px;font-size:12px}.mrow{display:flex;gap:8px;margin-top:6px}.mc{flex:1;background:#0d1a12;border-radius:6px;padding:6px;text-align:center}.mc span{display:block;font-size:11px;color:#9fb}.mc b{display:block;font-size:18px;color:#7dff9a}.mc small{color:#8aa}
