.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:999}.modal{background:#fff;border-radius:10px;width:520px;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000002e}.modal-header{padding:14px 18px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:18px;overflow-y:auto}.modal-footer{padding:12px 18px;border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end}.btn-close{background:none;border:none;font-size:22px;cursor:pointer;color:#999}.btn-close:hover{color:#333}.form-row{margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.form-row label{font-size:13px;color:#555;font-weight:500}.form-row input,.form-row textarea,.form-row select{border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit}.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:#0073e6}.form-error{background:#fef2f2;color:#b91c1c;padding:8px 12px;border-radius:6px;margin-top:10px;font-size:13px}.btn-primary{background:#0073e6;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}.btn-primary:hover{background:#005bb5}.btn-primary:disabled{background:#99c2e6;cursor:not-allowed}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}.btn-secondary:hover{background:#e8e8e8}.btn-sm{background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:4px;padding:3px 10px;font-size:12px;cursor:pointer;margin-right:4px}.btn-sm:hover{background:#e8e8e8}.btn-sm.danger{color:#b91c1c;border-color:#f3c4c4}.btn-sm.danger:hover{background:#fef2f2}.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f7fa;color:#1f2937}.nav{background:#142540;color:#fff;padding:14px 24px;display:flex;align-items:center;gap:24px}.nav h1{font-size:16px}.nav a{color:#9ad;text-decoration:none;font-size:13px;padding:6px 10px;border-radius:4px}.nav a.active,.nav a:hover{background:#1a3a5e;color:#fff}.container{max-width:1200px;margin:24px auto;padding:0 24px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card{background:#fff;padding:18px;border-radius:8px;border-left:4px solid #4d9fff;box-shadow:0 1px 3px #0000000d}.kpi-card .label{font-size:12px;color:#6b7280}.kpi-card .value{font-size:28px;font-weight:700;color:#1f2937;margin-top:6px}.kpi-card.green{border-left-color:#10b981}.kpi-card.orange{border-left-color:#f59e0b}.kpi-card.purple{border-left-color:#8b5cf6}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.module-card{background:#fff;padding:14px;border-radius:6px;box-shadow:0 1px 2px #0000000d}.module-card h3{font-size:14px;margin-bottom:6px}.module-card .cnt{font-size:20px;font-weight:600;color:#4d9fff}.module-card .cnt.zero{color:#9ca3af}.module-card a{color:#4d9fff;text-decoration:none;font-size:12px}table.data{width:100%;background:#fff;border-collapse:collapse;margin-top:16px;box-shadow:0 1px 2px #0000000d}table.data th,table.data td{padding:10px 14px;text-align:left;border-bottom:1px solid #e5e7eb;font-size:13px}table.data th{background:#f9fafb;color:#6b7280;font-weight:500}table.data tr:hover{background:#f9fafb}.spa-section{display:none}.spa-section.active{display:block}h2{margin-bottom:12px;font-size:18px}.muted{color:#6b7280;font-size:12px}
