:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#0f172a;background:#f1f5f9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:7px 11px}button:hover{background:#f1f5f9}header{height:64px;display:flex;align-items:center;gap:12px;padding:0 20px;background:#020617;color:#fff}header h1{font-size:17px;margin:0 0 3px}header p{font-size:12px;color:#94a3b8;margin:0}.mark{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#06b6d4;color:#082f49;font-size:22px;font-weight:bold}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:14px}.ghost{color:#fff;background:transparent;border-color:#475569}.cyan{background:#06b6d4;border-color:#06b6d4;color:#062735;font-weight:600}.toolbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 20px;background:#fff;border-bottom:1px solid #cbd5e1}.toolbar input{height:36px;width:150px;border:1px solid #cbd5e1;border-radius:7px;padding:0 10px}.toolbar #year{width:92px}.toolbar select{padding:5px;border:1px solid #cbd5e1;border-radius:5px}.primary{background:#1d4ed8;color:white;border-color:#1d4ed8}.verified{margin-left:auto;font-size:14px;font-weight:600}.calibration{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:10px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.calibration label{display:grid;grid-template-columns:52px 1fr 38px;align-items:center;gap:6px;font-size:13px}.hidden{display:none!important}main{display:grid;grid-template-columns:46% 54%;min-height:calc(100vh - 125px)}.image-panel{display:flex;min-width:0;flex-direction:column;background:#1e293b;border-right:1px solid #94a3b8}.panel-title{height:44px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid #cbd5e1;background:#fff;font-size:14px}.image-panel .panel-title{background:#1e293b;color:#e2e8f0;border-color:#475569}.panel-title>div{margin-left:auto}.panel-title button{padding:3px 9px;background:transparent;color:inherit;border-color:transparent}.image-stage{height:calc(100vh - 202px);overflow:auto;padding:18px;background-color:#263244;background-image:linear-gradient(45deg,#2f3b4d 25%,transparent 25%),linear-gradient(-45deg,#2f3b4d 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2f3b4d 75%),linear-gradient(-45deg,transparent 75%,#2f3b4d 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}#imageWrap{position:relative;width:max-content;max-width:100%;margin:auto;transform-origin:top center;transition:.15s}#sourceImage{display:block;max-width:100%;max-height:calc(100vh - 235px);background:#fff;box-shadow:0 15px 35px #0008}#region{position:absolute;border:2px solid #3b82f6;background:#3b82f60d;pointer-events:none}#focusBox{position:absolute;border:2px solid #f43f5e;background:#fb718533;box-shadow:0 0 0 1px #fff;pointer-events:none}#position{padding:9px 15px;background:#0f172a;color:#cbd5e1;font-size:12px}.table-panel{min-width:0;background:#fff}.legend{font-size:12px;color:#475569;display:flex;align-items:center;gap:5px}.legend span{width:11px;height:11px;margin-left:8px;border-radius:2px}.amber{background:#fde68a}.blue{background:#cffafe}.gray{background:#e2e8f0}.table-wrap{height:calc(100vh - 205px);overflow:auto}table{border-collapse:collapse;width:100%;min-width:730px;table-layout:fixed;text-align:center;font-size:12px}th,td{height:25px;border:1px solid #cbd5e1}thead{position:sticky;top:0;z-index:5;background:#0f172a;color:#fff}thead th:first-child,tbody th{position:sticky;left:0;z-index:4;width:43px}thead th:first-child{background:#0f172a}tbody th{background:#f8fafc;color:#475569}td{padding:0}td input{width:100%;height:100%;border:0;outline:0;text-align:center;background:transparent;padding:1px 2px}td.active{box-shadow:inset 0 0 0 2px #e11d48}.low{background:#fef3c7}.edited{background:#cffafe}.invalid{background:repeating-linear-gradient(135deg,#e2e8f0,#e2e8f0 4px,#f8fafc 4px,#f8fafc 8px)}.monthly th,.monthly td{height:31px;background:#eff6ff;border-top:2px solid #2563eb;font-weight:bold}.table-panel footer{height:40px;display:flex;align-items:center;padding:0 14px;background:#f8fafc;border-top:1px solid #cbd5e1;color:#475569;font-size:13px}.table-panel footer span{margin-left:auto}#message{font-size:13px;color:#047857}@media(max-width:1000px){main{grid-template-columns:1fr}.image-stage{height:560px}.table-wrap{height:720px}.calibration{grid-template-columns:1fr 1fr}.header-actions #count{display:none}}@media(max-width:620px){header{padding:0 10px}header p,.ghost{display:none}.toolbar{padding:9px}.verified{margin-left:0}.calibration{grid-template-columns:1fr}main{display:block}.image-stage{height:420px}.legend{display:none}}
.monthly th,.monthly td{height:31px}.mismatch{background:#fee2e2!important;box-shadow:inset 0 0 0 1px #ef4444}.annual th,.annual td{height:40px;background:#f8fafc;border-top:2px solid #0f766e}.annual-cell label{display:flex;align-items:center;justify-content:center;gap:4px;font-size:10px}.annual-cell input{width:58px;height:24px;border:1px solid #cbd5e1;border-radius:3px}.annual-cell .date-input{width:68px}.check-summary{padding:7px!important;text-align:left;color:#0f766e;font-weight:700}
