body{box-sizing:border-box;margin:0;padding:0}:root{--primary:#ec003f;--primary-hover:#c40033;--primary-light:#ec003f1a;--success:#10b981;--success-hover:#059669;--danger:#ef4444;--danger-hover:#dc2626;--warning:#f59e0b;--bg-body:#0b0f19;--bg-card:#141a2da6;--bg-card-hover:#1a2239cc;--bg-input:#111827;--border:#ffffff14;--border-hover:#ffffff26;--text-main:#f1f5f9;--text-muted:#94a3b8;--text-white:#fff;--shadow-premium:0 8px 32px 0 #0000005e;--glass-bg:#0f172a99;--table-header-bg:#1e293b;--table-row-odd:#1e293b33;--table-row-even:#0f172a33;--table-hover:#ec003f0d}[data-theme=light]{--bg-body:#f8fafc;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-input:#fff;--border:#e2e8f0;--border-hover:#cbd5e1;--text-main:#0f172a;--text-muted:#62748d;--text-white:#fff;--shadow-premium:0 10px 25px -5px #0000000d, 0 8px 10px -6px #0000000d;--glass-bg:#ffffffb3;--table-header-bg:#e2e8f0;--table-row-odd:#fff;--table-row-even:#f8fafc;--table-hover:#ec003f0a}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,sans-serif}body{background-color:var(--bg-body);color:var(--text-main);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-body)}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow-premium);border-radius:16px}.login-screen{z-index:1000;background:linear-gradient(135deg,#ec003f14,#0000 38%),linear-gradient(#f8fafc 0%,#eef2f7 100%);justify-content:center;align-items:center;width:100%;height:100%;padding:32px;display:flex;position:fixed;top:0;left:0;overflow:auto}.login-shell{background:#fff;border:1px solid #94a3b847;border-radius:8px;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);width:100%;max-width:1040px;min-height:560px;animation:.4s cubic-bezier(.16,1,.3,1) fadeInScale;display:grid;overflow:hidden;box-shadow:0 24px 70px #0f172a24}.login-identity{color:#0f172a;text-align:center;background:linear-gradient(#fffffff0,#ffffffc7),linear-gradient(135deg,#ec003f29,#10b98114);border-right:1px solid #e2e8f0;flex-direction:column;justify-content:center;align-items:center;gap:30px;padding:52px;display:flex;position:relative}.login-logo-wrap{background:#fff;border:6px solid #fff;border-radius:50%;place-items:center;width:132px;height:132px;display:grid;overflow:hidden;box-shadow:0 18px 40px #0f172a24,0 0 0 1px #e2e8f0}.login-emblem{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.login-kicker{color:var(--primary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;font-size:.78rem;font-weight:800}.login-title{letter-spacing:0;color:#0f172a;max-width:620px;margin:0;font-size:clamp(1.85rem,4vw,3rem);font-weight:800;line-height:1.12}.login-subtitle{color:#475569;max-width:560px;margin-top:18px;font-size:1.02rem;line-height:1.6}.login-meta{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.login-meta span{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;min-height:30px;padding:6px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.login-panel{background:#fff;flex-direction:column;justify-content:center;gap:32px;padding:52px 46px;display:flex}.login-panel-header{align-items:center;gap:14px;display:flex}.login-panel-mark{background:var(--primary);color:#fff;letter-spacing:0;border-radius:8px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-weight:900;display:inline-flex;box-shadow:0 12px 22px #ec003f38}.login-panel-header h2{color:#0f172a;margin:0;font-size:1.55rem;line-height:1.2}.login-panel-header p{color:#64748b;margin-top:4px;font-size:.95rem}.login-form{flex-direction:column;gap:18px;display:flex}.login-form .form-group{margin-bottom:0}.login-form .input-control{color:#0f172a;background:#f8fafc;border-color:#dbe4ef;height:52px;padding-right:52px}.login-form .input-control::placeholder{color:#94a3b8}.login-form .form-label{color:#334155}.login-form .password-toggle{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;right:12px}.login-form .password-toggle:hover{color:#0f172a;background:#e2e8f0}.login-submit{width:100%;height:52px;margin-top:2px}@media (width<=900px){.login-screen{align-items:flex-start;padding:18px}.login-shell{grid-template-columns:1fr;min-height:auto}.login-identity{border-bottom:1px solid #e2e8f0;border-right:none;padding:34px 24px}.login-logo-wrap{width:112px;height:112px}.login-title{font-size:1.55rem}.login-subtitle{margin-top:12px;font-size:.92rem}.login-panel{padding:32px 24px}}@media (width<=480px){.login-screen{padding:10px}.login-identity{gap:22px;padding:28px 18px}.login-logo-wrap{border-width:5px;width:96px;height:96px}.login-panel{padding:28px 18px}.login-panel-header{align-items:flex-start}.login-panel-header h2{font-size:1.32rem}.login-meta span{font-size:.75rem}}.form-group{text-align:left;margin-bottom:20px;position:relative}.form-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.input-control{background-color:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-main);border-radius:8px;outline:none;padding:12px 16px;font-size:1rem}.input-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input-password-wrapper{position:relative}.password-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text-main)}.btn{background-color:var(--primary);color:var(--text-white);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:700;transition:transform .1s,background-color .2s;display:inline-flex;box-shadow:0 4px 14px #ec003f66}.btn:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn-secondary{border:1px solid var(--border);color:var(--text-main);box-shadow:none;background-color:#0000}.btn-secondary:hover{background-color:var(--border);color:var(--text-main)}.btn-success{background-color:var(--success);box-shadow:0 4px 14px #10b98166}.btn-success:hover{background-color:var(--success-hover)}.btn-danger{background-color:var(--danger);box-shadow:0 4px 14px #ef444466}.btn-danger:hover{background-color:var(--danger-hover)}.login-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:11px 12px;font-size:.9rem;font-weight:700;line-height:1.4}header{border-bottom:1px solid var(--border);z-index:100;background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);justify-content:space-between;align-items:center;padding:15px 30px;display:flex;position:sticky;top:0}.logo-section{align-items:center;gap:10px;display:flex}.logo-icon{background-color:var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.2rem;font-weight:800;display:flex;box-shadow:0 0 15px #ec003f4d}.logo-title-block{flex-direction:column;gap:2px;min-width:0;display:flex}.logo-title{letter-spacing:.3px;font-size:1rem;font-weight:800;line-height:1.25}.logo-subtitle{color:var(--text-muted);letter-spacing:.2px;font-size:.74rem;font-weight:600}.logo-subtitle span{color:var(--primary)}@media (width<=640px){.logo-title{font-size:.82rem}.logo-subtitle{font-size:.66rem}}.header-actions{align-items:center;gap:15px;display:flex}.tab-bar-container{background-color:var(--bg-card);border-bottom:1px solid var(--border);padding:10px 30px}.tab-bar{gap:8px;max-width:800px;list-style:none;display:flex}.tab-item{flex:1}.tab-btn{width:100%;color:var(--text-muted);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:.9rem;font-weight:700;display:flex}.tab-btn:hover{color:var(--text-main);background-color:var(--primary-light)}.tab-btn.active{color:var(--text-white);background-color:var(--primary);box-shadow:0 4px 12px #ec003f4d}.app-viewport{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:30px;position:relative}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:30px;display:grid}.compact-stats-grid{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin-bottom:16px}@media (width<=900px){.compact-stats-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}.stat-card{align-items:center;gap:20px;padding:24px;display:flex}.compact-stat-card{padding:14px 16px}.stat-icon{background-color:var(--primary-light);width:54px;height:54px;color:var(--primary);border-radius:12px;justify-content:center;align-items:center;display:flex}.stat-info{flex:1}.stat-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:.85rem;font-weight:600}.stat-value{font-size:1.8rem;font-weight:800}.compact-stat-card .stat-value{font-size:1.45rem}.stats-two-panels{flex-direction:column;gap:16px;display:flex}.stats-list-section{padding:14px}.stats-section-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:8px;display:flex}.stats-section-header h3{font-size:1rem;font-weight:800}.stats-section-header span{color:var(--text-muted);font-size:.82rem;font-weight:700}.stats-section-layout{grid-template-columns:190px minmax(0,1fr);gap:10px;display:grid}@media (width<=900px){.stats-section-layout{grid-template-columns:1fr}}.stats-group-list{flex-direction:column;gap:5px;max-height:430px;padding-right:4px;display:flex;overflow:auto}.stats-group-item{border:1px solid var(--border);min-height:30px;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex}.stats-group-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;font-weight:700;overflow:hidden}.stats-group-item strong{background:var(--primary);color:var(--text-white);text-align:center;border-radius:999px;min-width:24px;padding:2px 6px;font-size:.72rem}.stats-group-item.active,.stats-group-item:hover{border-color:var(--primary);background:var(--primary-light)}.stats-table-wrap{border-radius:8px;max-height:430px}.stats-compact-table{table-layout:fixed;width:max-content;min-width:1270px}.stats-compact-table th,.stats-compact-table td{padding:5px 6px;font-size:.76rem;line-height:1.25}.stats-compact-table th{z-index:15;white-space:normal;overflow-wrap:anywhere;text-align:center;top:0}.stats-compact-table th:first-child,.stats-compact-table td:first-child{text-align:center;width:42px}.stats-compact-table .stats-col-tenThanh{width:82px}.stats-compact-table .stats-col-hoTen{z-index:8;background:inherit;width:190px;position:sticky;left:0}.stats-compact-table th:nth-child(3){z-index:18;background:var(--table-header-bg);position:sticky;left:0}.stats-compact-table .stats-col-teamId{text-align:center;width:66px}.stats-compact-table .stats-col-gioiTinh{text-align:center;width:76px}.stats-compact-table .stats-col-ngaySinh,.stats-compact-table .stats-col-dienThoai{width:104px;min-width:104px}.stats-compact-table .stats-col-diaChi{width:190px}.stats-compact-table .stats-col-giaoXu,.stats-compact-table .stats-col-giaoHat{width:125px}.stats-editable-value{width:100%;min-height:24px;color:var(--text-main);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;font:inherit;background:0 0;border:1px solid #0000;border-radius:5px;padding:2px 4px;overflow:hidden}.stats-editable-value:hover,.stats-editable-value:focus{border-color:var(--primary);background:var(--table-hover);outline:none}.stats-inline-control{min-width:74px;padding:4px 5px;font-size:.76rem}.stats-detail-grid{grid-template-columns:1fr 2fr;gap:30px;display:grid}@media (width<=900px){.stats-detail-grid{grid-template-columns:1fr}}.parish-list-container{max-height:500px;padding-right:8px;overflow-y:auto}.parish-item{cursor:pointer;border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 16px;display:flex}.parish-item:hover,.parish-item.active{background-color:var(--primary-light);border-color:var(--primary)}.parish-name{font-weight:600}.parish-count{background-color:var(--primary);color:#fff;border-radius:20px;padding:2px 8px;font-size:.8rem;font-weight:700}.parish-details-pane{min-height:350px;padding:24px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-wrapper{min-width:280px;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input{border-radius:8px;width:100%;padding:10px 16px 10px 42px}.table-responsive{border:1px solid var(--border);border-radius:12px;width:100%;max-height:600px;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%}.table-responsive>table{width:max-content;min-width:100%}.table-responsive>table th,.table-responsive>table td{min-width:110px}th{background-color:var(--table-header-bg);color:var(--text-main);text-transform:uppercase;z-index:10;border-bottom:2px solid var(--border);white-space:nowrap;padding:14px 18px;font-size:.85rem;font-weight:700;position:sticky;top:0}td{border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 18px;font-size:.9rem}tr:nth-child(odd){background-color:var(--table-row-odd)}tr:nth-child(2n){background-color:var(--table-row-even)}tr:hover{background-color:var(--table-hover)}.sheet-column-header{justify-content:space-between;align-items:center;gap:8px;min-width:150px;display:flex;position:relative}.column-label-btn{color:inherit;cursor:pointer;text-align:left;min-width:0;font:inherit;text-transform:inherit;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:3px;display:flex}.column-label-btn span:first-child{text-overflow:ellipsis;max-width:180px;overflow:hidden}.column-type-pill{color:var(--text-muted);text-transform:none;font-size:.68rem;font-weight:600}.column-actions{align-items:center;gap:4px;display:inline-flex}.column-menu-btn,.column-delete-btn{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.column-menu-btn:hover,.column-delete-btn:hover{background:var(--bg-card-hover);color:var(--text-main);border-color:var(--border)}.column-format-menu{z-index:30;border:1px solid var(--border);background:var(--bg-card);min-width:220px;box-shadow:var(--shadow-premium);border-radius:8px;padding:12px;position:absolute;top:calc(100% + 8px);right:0}.sheet-cell{outline:none}.sheet-cell.selected{box-shadow:inset 0 0 0 2px var(--primary);background:var(--table-hover)}.sheet-cell.editing{box-shadow:inset 0 0 0 2px var(--primary);padding:6px}.checkbox-cell{text-align:center}.sheet-checkbox{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.sheet-checkbox-label{cursor:pointer;align-items:center;gap:10px;font-weight:600;display:inline-flex}.passfail-badge{border-radius:999px;justify-content:center;align-items:center;min-width:76px;padding:3px 8px;font-size:.78rem;font-weight:800;display:inline-flex}.passfail-badge.pass{color:var(--success);background:#10b98124}.passfail-badge.fail{color:var(--danger);background:#ef444424}.passfail-editing-cell{white-space:normal;min-width:240px}.fail-reason-panel{border:1px solid var(--border);background:var(--bg-input);border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:8px;display:flex}.fail-reason-panel label{color:var(--text-main);text-transform:none;align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.fail-reason-panel input[type=checkbox]{accent-color:var(--primary)}.add-trainee-modal{max-width:920px;max-height:min(86vh,820px);overflow:auto}.add-trainee-section{margin-bottom:14px}.add-section-title{color:var(--text-main);margin-bottom:10px;font-size:.92rem;font-weight:800}.add-trainee-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-group-full{grid-column:1/-1}.add-trainee-modal .form-group{margin-bottom:0}.add-trainee-details{border:1px solid var(--border);border-radius:8px;margin-top:12px;padding:10px 12px}.add-trainee-details summary{cursor:pointer;color:var(--text-main);font-size:.9rem;font-weight:800}.add-trainee-details[open] summary{margin-bottom:12px}.compact-checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.add-checkbox-label{border:1px solid var(--border);background:var(--bg-input);border-radius:8px;min-height:42px;padding:8px 10px}.passfail-add-field{flex-direction:column;gap:8px;display:flex}.add-fail-reason-panel .input-control{padding:8px 10px;font-size:.86rem}.add-form-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}@media (width<=760px){.add-trainee-grid,.compact-checkbox-grid{grid-template-columns:1fr}}.editable-cell{cursor:pointer;min-height:24px;position:relative}.editable-cell:hover:after{content:"✎";color:var(--primary);font-size:.85rem;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.cell-input,.cell-select{background-color:var(--bg-input);border:1px solid var(--primary);width:100%;color:var(--text-main);border-radius:4px;outline:none;padding:6px 10px;font-size:.9rem}.teams-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:25px;margin-top:25px;display:grid}.team-card{border-left:5px solid var(--primary);flex-direction:column;padding:20px;display:flex}.teams-list{flex-direction:column;gap:18px;display:flex}.team-table-wrap{border-radius:8px;max-height:none}.team-editable-value{width:100%;min-height:28px;color:var(--text-main);cursor:pointer;text-align:left;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px}.team-editable-value:hover,.team-editable-value:focus{border-color:var(--primary);background:var(--table-hover);outline:none}.team-inline-control{min-width:120px;padding:4px 8px;font-size:.85rem}.compact-select{width:auto;min-width:150px;display:inline-block}.segmented-control{border:1px solid var(--border);background:var(--bg-input);border-radius:8px;align-items:center;display:inline-flex;overflow:hidden}.segmented-control button{border:none;border-right:1px solid var(--border);min-height:38px;color:var(--text-muted);cursor:pointer;background:0 0;padding:0 12px;font-size:.85rem;font-weight:800}.segmented-control button:last-child{border-right:none}.segmented-control button.active,.segmented-control button:hover{background:var(--primary);color:var(--text-white)}.compact-teams-list{gap:12px}.compact-team-card{border-radius:8px;padding:12px}.compact-team-header{gap:10px;margin-bottom:8px;padding-bottom:8px}.compact-team-header .team-name{white-space:nowrap;font-size:1rem}.team-quick-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.mini-action-btn{border:1px solid var(--border);min-height:28px;color:var(--text-main);cursor:pointer;background:0 0;border-radius:6px;padding:0 9px;font-size:.76rem;font-weight:800}.mini-action-btn:hover{border-color:var(--primary);background:var(--primary-light)}.compact-table-wrap{border-radius:6px;max-height:560px}.compact-team-table{table-layout:fixed;width:max-content;min-width:100%}.compact-team-table.input-group-attendance{min-width:1040px}.compact-team-table.input-group-score{min-width:1430px}.compact-team-table.input-group-all{min-width:1900px}.compact-team-table th,.compact-team-table td{text-overflow:ellipsis;padding:5px 6px;font-size:.78rem;line-height:1.25;overflow:hidden}.compact-team-table th{z-index:15;white-space:normal;overflow-wrap:anywhere;text-align:center;top:0}.compact-team-table .col-stt{text-align:center;width:42px;min-width:42px}.compact-team-table .col-saint{width:88px;min-width:88px}.compact-team-table .col-name{z-index:8;background:inherit;width:190px;min-width:190px;position:sticky;left:0}.compact-team-table th.col-name{z-index:18;background:var(--table-header-bg)}.compact-team-table .col-parish{width:110px;min-width:110px}.compact-team-table .col-phone{width:104px;min-width:104px}.compact-team-table .col-team{width:70px;min-width:70px}.compact-team-table .attendance-col,.compact-team-table .attendance-cell{text-align:center;width:58px;min-width:58px}.compact-team-table .score-col,.compact-team-table .score-cell{text-align:center;width:96px;min-width:96px}.attendance-toggle{border:1px solid var(--border-hover);background:var(--bg-input);width:24px;height:24px;color:var(--text-white);cursor:pointer;border-radius:5px;font-size:.9rem;font-weight:900;line-height:1}.attendance-toggle.checked{border-color:var(--success);background:var(--success)}.team-score-value{width:100%;min-height:26px;color:var(--text-main);cursor:pointer;text-align:center;font:inherit;background:0 0;border:1px solid #0000;border-radius:5px;padding:3px 5px}.team-score-value:hover,.team-score-value:focus{border-color:var(--primary);background:var(--table-hover);outline:none}.team-score-input{text-align:center;min-width:64px;padding:4px 5px;font-size:.78rem}.empty-state{text-align:center;color:var(--text-muted);width:100%;padding:50px 0}.team-card.team-female{border-left-color:#ec4899}.team-card.team-male{border-left-color:#3b82f6}.team-header{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.team-name{font-size:1.15rem;font-weight:700}.team-badge{text-transform:uppercase;border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:700}.team-badge-female{color:#ec4899;background-color:#ec489926}.team-badge-male{color:#3b82f6;background-color:#3b82f626}.team-table{width:100%}.team-table th{border-bottom:1px solid var(--border);background:0 0;padding:8px 10px;font-size:.75rem}.team-table td{border-bottom:1px dashed var(--border);padding:8px 10px;font-size:.8rem}.team-table tr:hover{background:#ffffff05}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;top:0;left:0}.modal-card{width:100%;max-width:500px;padding:30px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-size:1.25rem;font-weight:700}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.5rem}.modal-close:hover{color:var(--text-main)}.export-panel-grid,.export-workspace{grid-template-columns:1fr 2fr;gap:30px;display:grid}@media (width<=900px){.export-panel-grid,.export-workspace{grid-template-columns:1fr}}.export-controls,.export-preview{padding:25px}.panel-title{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:10px;font-size:1.1rem;font-weight:700}.export-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width<=640px){.export-filter-grid{grid-template-columns:1fr}}.export-preset-row{flex-wrap:wrap;gap:8px;display:flex}.compact-btn{width:auto;padding:8px 12px;font-size:.85rem}.export-column-list{border:1px solid var(--border);border-radius:8px;max-height:240px;padding:10px;overflow-y:auto}.export-preview{flex-direction:column;min-width:0;display:flex}.export-preview-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;padding-bottom:10px;display:flex}.export-preview-header .panel-title{border-bottom:none;margin-bottom:0;padding-bottom:0}.export-counts{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.export-preview-table{flex:1;max-height:620px}.options-list{flex-direction:column;gap:15px;display:flex}.option-item{cursor:pointer;align-items:center;gap:10px;display:flex}.checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500}.toast-stack{z-index:2000;flex-direction:column;gap:10px;width:min(420px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast-card{border:1px solid var(--border);border-left:4px solid var(--primary);background:var(--bg-card);color:var(--text-main);box-shadow:var(--shadow-premium);-webkit-backdrop-filter:blur(14px);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 14px 14px 16px;animation:.2s slideUp;display:flex}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-content{min-width:0}.toast-title{margin-bottom:3px;font-size:.9rem;font-weight:800}.toast-message{color:var(--text-muted);font-size:.86rem;line-height:1.4}.toast-actions{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.toast-action-btn{border:1px solid var(--primary);background:var(--primary);color:var(--text-white);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:.78rem;font-weight:800}.toast-close-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;font-size:1.1rem;line-height:1}.toast-close-btn:hover{color:var(--text-main);border-color:var(--border-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media print{body{color:#000!important;background:#fff!important;padding:0!important}.no-print,header,.tab-bar-container,.toolbar,.btn,.modal-overlay{display:none!important}.app-viewport{max-width:100%!important;padding:0!important}.teams-grid{display:block!important}.team-card{page-break-after:always;box-shadow:none!important;color:#000!important;background:#fff!important;border:1px solid #000!important;border-left-width:6px!important;margin:0 0 30px!important;padding:20px!important}.team-card:last-child{page-break-after:avoid}table{border-collapse:collapse!important;width:100%!important}th{color:#000!important;background-color:#f1f5f9!important;border-bottom:2px solid #000!important;font-weight:700!important}td,th{color:#000!important;border:1px solid #000!important;padding:8px 12px!important;font-size:13px!important}.team-header{border-bottom:2px solid #000!important;margin-bottom:15px!important;padding-bottom:8px!important}.team-name{color:#000!important;font-size:1.4rem!important}.team-badge{color:#000!important;background:0 0!important;border:1px solid #000!important}.print-letterhead{page-break-after:avoid;flex-direction:column;align-items:center;gap:4px;margin-bottom:22px;display:flex!important}.print-letterhead-logo{object-fit:contain;width:72px;height:72px;margin-bottom:4px}.print-letterhead-org,.print-letterhead-diocese{text-transform:uppercase;font-size:15px;font-weight:800;color:#000!important}.print-letterhead-title{text-transform:uppercase;margin-top:10px;font-size:17px;font-weight:800;color:#000!important}.print-only{display:block!important}.print-team-block{page-break-after:always;margin:0 0 24px}.print-team-block:last-child{page-break-after:avoid}.print-team-title{color:#000;border-bottom:2px solid #000;margin-bottom:10px;padding-bottom:6px;font-size:1.2rem;font-weight:800}.print-static-table{border-collapse:collapse;width:100%}.print-static-table th,.print-static-table td{color:#000;text-align:left;border:1px solid #000;padding:6px 10px;font-size:13px}.print-static-table th{text-align:center;background-color:#f1f5f9;font-weight:700}.print-static-table td:first-child{text-align:center}.print-fs-small .print-static-table th,.print-fs-small .print-static-table td{padding:4px 6px!important;font-size:10px!important}.print-fs-medium .print-static-table th,.print-fs-medium .print-static-table td{font-size:13px!important}.print-fs-large .print-static-table th,.print-fs-large .print-static-table td{padding:8px 12px!important;font-size:16px!important}}.print-only{display:none}.print-preview-content .print-team-block{margin-bottom:22px}.print-preview-content .print-team-title{border-bottom:2px solid var(--border);margin-bottom:8px;padding-bottom:6px;font-size:1.05rem;font-weight:800}.print-preview-content .print-static-table{border-collapse:collapse;width:100%;margin-bottom:4px}.print-preview-content .print-static-table th,.print-preview-content .print-static-table td{border:1px solid var(--border);text-align:left;padding:6px 10px;font-size:.82rem}.print-preview-content.print-fs-small .print-static-table th,.print-preview-content.print-fs-small .print-static-table td{font-size:.7rem}.print-preview-content.print-fs-large .print-static-table th,.print-preview-content.print-fs-large .print-static-table td{font-size:.94rem}.print-preview-content .print-static-table th{background:var(--table-header-bg);text-align:center;font-weight:800}.print-preview-content .print-static-table td:first-child{text-align:center}.header-logo{object-fit:cover;border:2px solid var(--primary);border-radius:50%;width:42px;height:42px;box-shadow:0 0 8px #ec003f33}.app-footer{border-top:1px solid var(--border);text-align:center;background:var(--bg-card);color:var(--text-muted);margin-top:auto;padding:30px 20px;font-size:.85rem;line-height:1.6}.app-footer a{color:var(--primary);font-weight:600;text-decoration:none;transition:color .2s}.app-footer a:hover{color:var(--primary-hover);text-decoration:underline}.scan-overlay{-webkit-backdrop-filter:blur(12px);z-index:1100;background:#040811d9;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.scan-card{border:1px solid #ffffff1a;flex-direction:column;gap:20px;width:100%;max-width:850px;padding:35px;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;display:flex;box-shadow:0 20px 50px #00000080}.scanner-animation-wrapper{flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:40px 20px;display:flex}.scanner-box{border:2px dashed var(--primary);background:#ec003f0d;border-radius:12px;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative;overflow:hidden}.scanner-laser{background:linear-gradient(to right, transparent, var(--primary), transparent);width:100%;height:4px;box-shadow:0 0 12px 3px var(--primary);animation:2s ease-in-out infinite laserScan;position:absolute;top:0;left:0}.scanner-icon-svg{color:var(--primary);opacity:.85;animation:2s infinite alternate pulseGlow}.scanner-progress-container{background:#ffffff0d;border-radius:3px;width:100%;max-width:400px;height:6px;margin-top:10px;overflow:hidden}.scanner-progress-bar{background:linear-gradient(90deg, var(--primary), #f59e0b);border-radius:3px;height:100%;transition:width .1s linear}.scanner-status-text{color:var(--text-main);text-align:center;font-size:1.1rem;font-weight:700}.scanner-substatus{color:var(--text-muted);text-align:center;margin-top:-12px;font-size:.85rem}@keyframes laserScan{0%{top:0%}50%{top:100%}to{top:0%}}@keyframes pulseGlow{0%{filter:drop-shadow(0 0 5px #ec003f33);transform:scale(.95)}to{filter:drop-shadow(0 0 20px #ec003f99);transform:scale(1.05)}}.scan-results-container{flex-direction:column;gap:20px;display:flex}.scan-summary-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.scan-summary-card{border:1px solid var(--border);text-align:center;background:#ffffff08;border-radius:10px;padding:15px}.scan-summary-val{color:var(--primary);font-size:1.6rem;font-weight:800}.scan-summary-lbl{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.scan-mapping-section{grid-template-columns:1fr 1fr;gap:20px;max-height:200px;padding-right:5px;display:grid;overflow-y:auto}@media (width<=768px){.scan-mapping-section{grid-template-columns:1fr;max-height:250px}}.scan-mapping-card{border:1px solid var(--border);background:#ffffff05;border-radius:10px;padding:15px}.scan-mapping-title{text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:.85rem;font-weight:700}.scan-mapping-list{flex-direction:column;gap:8px;display:flex}.scan-mapping-item{background:#ffffff05;border-radius:6px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:.85rem;display:flex}.scan-mapping-item .label-excel{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:500;overflow:hidden}.scan-mapping-item .arrow{color:var(--primary);font-weight:700}.scan-mapping-item .label-db{color:var(--success);font-weight:600}.scan-mapping-item .label-custom{color:var(--warning);font-weight:600}.scan-preview-table-container{border:1px solid var(--border);border-radius:8px;max-height:180px;overflow:auto}.scan-preview-table{border-collapse:collapse;width:100%;font-size:.8rem}.scan-preview-table th{background:var(--table-header-bg);color:var(--text-main);padding:8px 12px;font-weight:700}.scan-preview-table td{border-bottom:1px solid var(--border);padding:8px 12px}.passfail-option-row{gap:8px;display:flex}.passfail-option-row.compact{gap:6px}.passfail-option-btn{border:1px solid var(--border);background:var(--bg-input);color:var(--text-main);cursor:pointer;border-radius:6px;flex:1;padding:6px 12px;font-size:.82rem;font-weight:700}.passfail-option-btn.pass:hover,.passfail-option-btn.pass.active{border-color:var(--success);color:var(--success);background:#10b98124}.passfail-option-btn.fail:hover,.passfail-option-btn.fail.active{border-color:var(--danger);color:var(--danger);background:#ef444424}.passfail-option-btn.clear{color:var(--text-muted);flex:none}.passfail-option-btn.clear:hover{border-color:var(--border-hover);background:var(--bg-card-hover);color:var(--text-main)}.passfail-settings-panel{margin-bottom:20px;padding:16px 18px}.passfail-settings-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:10px;display:flex}.passfail-settings-header strong{font-size:1rem;display:block}.passfail-settings-header span{color:var(--text-muted);font-size:.82rem}.passfail-settings-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px;display:grid}.bulk-fail-panel{margin-top:12px}.print-letterhead{text-align:center;flex-direction:column;align-items:center;gap:4px;margin-bottom:18px;display:none}.print-letterhead-logo{object-fit:contain;width:64px;height:64px;margin-bottom:4px}.print-letterhead-org,.print-letterhead-diocese{text-transform:uppercase;color:var(--text-main);font-size:.95rem;font-weight:800}.print-letterhead-title{text-transform:uppercase;color:var(--text-main);margin-top:8px;font-size:1.05rem;font-weight:800}.mini-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}
