:root{--color-primary:#1e40af;--color-secondary:#3b82f6;--color-cta:#f59e0b;--color-bg:#f8fafc;--color-surface:#fff;--color-text:#1e3a8a;--color-text-secondary:#64748b;--color-border:#e2e8f0;--color-danger:#ef4444;--color-danger-bg:#fef2f2;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--color-info-bg:#eff6ff;--radius-sm:6px;--radius-md:10px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--transition:.15s ease;--font-sans:"Fira Sans", "Segoe UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.5}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}.page{max-width:1440px;margin:0 auto;padding:16px}.page-header{text-align:center;padding:20px 16px 16px}.page-header h1{color:var(--color-primary);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.page-header .subtitle{color:var(--color-text-secondary);margin-top:4px;font-size:.75rem}.toolbar{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:16px;display:flex}.toolbar .field{flex-direction:column;flex:1;gap:4px;min-width:160px;display:flex}.toolbar .field label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.toolbar .field input,.toolbar .field select{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);height:36px;color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition);font-size:.8rem;font-family:var(--font-sans);padding:0 10px}.toolbar .field input:focus-visible,.toolbar .field select:focus-visible{border-color:var(--color-secondary);outline:none;box-shadow:0 0 0 3px #3b82f626}.toolbar .note-bar{width:100%;color:var(--color-text-secondary);background:var(--color-info-bg);border-radius:var(--radius-sm);border-left:3px solid var(--color-secondary);padding:8px 12px;font-size:.72rem}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:.8rem;font-weight:600;font-family:var(--font-sans);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;height:36px;padding:8px 18px;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 6px #1e40af4d}.btn-primary:hover{background:#1e3a8a;transform:translateY(-1px);box-shadow:0 4px 10px #1e40af59}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-ghost{color:var(--color-text-secondary);border:1.5px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-bg);border-color:var(--color-secondary)}.btn-warning{background:var(--color-cta);color:#fff}.btn-warning:hover{background:#d97706}.btn-purple{color:#fff;background:#7c3aed}.btn-purple:hover{background:#6d28d9}.action-bar{flex-wrap:wrap;justify-content:center;gap:8px;padding:16px 0;display:flex}.check-grid{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=768px){.check-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1200px){.check-grid{grid-template-columns:repeat(3,1fr)}}.unit-card{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);transition:box-shadow var(--transition), border-color var(--transition);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.unit-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-secondary)}.unit-card .card-header{align-items:center;gap:6px;display:flex}.unit-card .card-num{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.65rem;font-weight:700;display:flex}.unit-card .card-title{color:var(--color-text);font-size:.78rem;font-weight:600;line-height:1.3}.unit-card .card-body{flex-direction:column;gap:5px;display:flex}.opts-row{flex-wrap:wrap;gap:5px;display:flex}.opt-pill{cursor:pointer;transition:all var(--transition);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:.7rem;display:flex}.opt-pill:hover{border-color:var(--color-secondary);background:var(--color-info-bg)}.opt-pill input{accent-color:var(--color-primary);cursor:pointer;width:13px;height:13px}.opt-pill.is-active{border-color:var(--color-primary);background:var(--color-info-bg);color:var(--color-primary);font-weight:600}.opt-pill.is-bad{border-color:var(--color-danger)!important;background:var(--color-danger-bg)!important;color:var(--color-danger)!important}.opt-pill.is-good{border-color:var(--color-success)!important;background:var(--color-success-bg)!important;color:#059669!important}.card-input{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);height:30px;color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition);font-size:.7rem;font-family:var(--font-sans);width:100%;padding:0 8px}.card-input:focus-visible{border-color:var(--color-secondary);outline:none;box-shadow:0 0 0 3px #3b82f61f}.card-input::placeholder{color:#94a3b8;font-size:.68rem}.output-area{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin-top:16px;padding:20px}.output-area h2{text-align:center;color:var(--color-primary);margin-bottom:4px;font-size:1rem}.output-area .date-title{text-align:center;color:var(--color-text);margin-bottom:12px;font-size:.85rem;font-weight:600}.table-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--color-border);width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.75rem}.data-table thead th{background:var(--color-info-bg);color:var(--color-primary);text-align:center;border-bottom:2px solid var(--color-border);white-space:nowrap;padding:8px 6px;font-size:.7rem;font-weight:700}.data-table tbody td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:6px}.data-table tbody tr{transition:background var(--transition)}.data-table tbody tr:nth-child(2n){background:#f8fafc}.data-table tbody tr:hover{background:#eff6ff}.badge{border-radius:10px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-block}.badge-good{background:var(--color-success-bg);color:#059669}.badge-bad{background:var(--color-danger-bg);color:var(--color-danger)}.badge-muted{color:#94a3b8;background:#f1f5f9}.alert-warning{background:var(--color-danger-bg);border-left:4px solid var(--color-danger);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#b91c1c;margin-bottom:12px;padding:10px 14px;font-size:.75rem;font-weight:600}.group-title{background:var(--color-info-bg);border-radius:var(--radius-sm);color:var(--color-primary);border-left:4px solid var(--color-secondary);margin:12px 0 6px;padding:8px 12px;font-size:.78rem;font-weight:700}.group-title:first-child{margin-top:0}.status-float{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:1000;width:280px;max-height:300px;padding:12px;font-size:.72rem;position:fixed;top:20px;right:20px;overflow-y:auto}.status-float h3{color:var(--color-danger);text-align:center;border-bottom:1px solid var(--color-border);margin:0 0 10px;padding-bottom:5px;font-size:.8rem}.status-item{background:var(--color-danger-bg);border-radius:var(--radius-sm);border-left:3px solid var(--color-danger);margin:3px 0;padding:4px 6px;font-size:.68rem}.status-count{background:var(--color-danger);color:#fff;border-radius:10px;margin-left:5px;padding:2px 6px;font-size:.62rem}.modal-overlay{z-index:2000;background-color:#00000080;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal-overlay.is-visible{justify-content:center;align-items:flex-start;padding-top:5vh;display:flex}.modal-content{border-radius:var(--radius-md);width:80%;max-width:600px;box-shadow:var(--shadow-md);background-color:#fff;border:none;padding:20px}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.modal-title{color:var(--color-primary);font-size:1rem;font-weight:700}.modal-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1.5rem;font-weight:700}.modal-close:hover{color:var(--color-text)}.modal-body{margin-bottom:20px}.missing-list{background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);max-height:200px;padding:10px;overflow-y:auto}.missing-item{border-bottom:1px solid var(--color-border);padding:5px 0;font-size:.75rem}.missing-item:last-child{border-bottom:none}.modal-footer{justify-content:flex-end;gap:10px;display:flex}.nav-bar{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);gap:0;margin-bottom:16px;display:flex;overflow:hidden}.nav-bar a{text-align:center;color:var(--color-text-secondary);transition:all var(--transition);border-bottom:3px solid #0000;flex:1;padding:10px 12px;font-size:.78rem;font-weight:600}.nav-bar a:hover{background:var(--color-info-bg);color:var(--color-primary);text-decoration:none}.nav-bar a.router-link-active{color:var(--color-primary);background:var(--color-info-bg);border-bottom-color:var(--color-secondary)}.export-page{background:#fff;width:794px;min-height:1123px;padding:24px;font-family:Microsoft YaHei,PingFang SC,sans-serif}.export-header{text-align:center;margin-bottom:20px}.export-header h1{color:var(--color-primary);margin:0;font-size:16px}.export-date{color:#333;margin:8px 0;font-size:12px}.export-table{border-collapse:collapse;width:100%;font-size:10px}.export-table th,.export-table td{text-align:left;background:#fff;border:1px solid #d9e3ff;padding:4px 2px}.export-table th{color:var(--color-primary);text-align:center;background:#eff6ff;font-size:11px;font-weight:700}.export-table .red-text{color:#ff4d4f;font-weight:700}.equip-card{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:12px}.equip-card .equip-header{align-items:center;gap:6px;margin-bottom:10px;display:flex}.equip-card .equip-num{background:var(--color-secondary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.65rem;font-weight:700;display:flex}.equip-card .equip-title{color:var(--color-text);font-size:.78rem;font-weight:600}.equip-card .equip-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:.72rem;display:flex}.equip-card .equip-item:last-child{border-bottom:none}.equip-card .equip-item-label{color:var(--color-text);flex:1}.equip-card .radio-group{flex-shrink:0;gap:12px;display:flex}.equip-card .radio-group label{cursor:pointer;color:var(--color-text-secondary);align-items:center;gap:3px;font-size:.7rem;display:flex}.equip-card .radio-group input{accent-color:var(--color-primary)}.excel-area{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-top:16px;padding:16px}.excel-area h2{text-align:center;color:var(--color-primary);margin-bottom:8px;font-size:1rem}.excel-textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;white-space:pre;background:var(--color-bg);width:100%;height:300px;padding:10px;font-family:Fira Code,Consolas,monospace;font-size:.72rem}.two-col{gap:20px;width:100%;display:flex}.two-col .col{flex:1;overflow-x:auto}.export-two-col{gap:20px;width:794px;display:flex}.export-two-col .col{flex:1;width:387px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=767px){.page{padding:8px}.page-header h1{font-size:1rem}.toolbar{flex-direction:column;padding:12px}.toolbar .field{min-width:100%}.action-bar{flex-direction:column}.action-bar .btn{width:100%}.data-table{min-width:500px;font-size:.68rem}.status-float{width:200px;font-size:.68rem;right:10px}.two-col{flex-direction:column}.modal-content{width:95%}.nav-bar a{padding:8px 6px;font-size:.68rem}}
