*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#111827;background:#f3f4f6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.page-center{background:#f3f4f6;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.main-content{max-width:860px;margin:0 auto;padding:32px 20px}.header{z-index:10;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1100px;margin:0 auto;padding:14px 20px;display:flex}.header-title{color:#111827;white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:700;display:inline-flex}.header-logo{object-fit:cover;border-radius:50%;flex-shrink:0;width:28px;height:28px}.header-nav{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nav-link{color:#6b7280;border-bottom:2px solid #0000;padding:6px 2px;font-size:14px;font-weight:600;text-decoration:none}.nav-link:hover{color:#374151}.nav-link.active{color:#2563eb;border-bottom-color:#2563eb}.qrz-link{color:inherit;border-bottom:1px dotted #9ca3af;text-decoration:none}.qrz-link:hover{color:#2563eb;border-bottom-color:#2563eb}.header-user{color:#9ca3af;font-size:13px}.header-tools{border-top:1px solid #f3f4f6;justify-content:center;padding:8px 20px;display:flex}.net-clocks{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;display:flex}.net-clock{align-items:baseline;gap:6px;display:flex}.net-clock-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.net-clock-time{color:#111827;font-family:Consolas,Courier New,monospace;font-size:15px;font-weight:600}.net-timer{align-items:center;gap:8px;display:flex}.net-timer-time{color:#111827;text-align:right;min-width:44px;font-family:Consolas,Courier New,monospace;font-size:15px;font-weight:700}.net-timer-time.flashing{color:#dc2626;animation:1s ease-in-out infinite timerFlash}@keyframes timerFlash{0%,to{opacity:1}50%{opacity:.3}}.net-timer-btn{padding:4px 12px;font-size:13px}.big-clock-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:56px;min-height:calc(100vh - 140px);padding:40px 20px;display:flex}.big-clock-row{flex-wrap:wrap;justify-content:center;gap:clamp(24px,8vw,100px);display:flex}.big-clock-label{color:#6b7280;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-size:clamp(14px,2vw,20px);font-weight:700}.big-clock-time{color:#111827;font-family:Consolas,Courier New,monospace;font-size:clamp(36px,9vw,96px);font-weight:700;line-height:1}.big-timer-time{color:#111827;font-family:Consolas,Courier New,monospace;font-size:clamp(64px,18vw,180px);font-weight:800;line-height:1}.big-timer-time.flashing{color:#dc2626;animation:1s ease-in-out infinite timerFlash}.big-timer-buttons{justify-content:center;gap:16px;margin-top:24px;display:flex}.big-timer-btn{padding:16px 40px;font-size:20px}.text-size-control{background:#f3f4f6;border-radius:8px;gap:2px;padding:2px;display:flex}.text-size-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 9px;font-size:13px;font-weight:700}.text-size-btn:hover{color:#374151}.text-size-btn.active{color:#2563eb;background:#fff;box-shadow:0 1px 2px #00000014}.card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#2563eb}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{color:#374151;background:#f3f4f6;border:1px solid #e5e7eb}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-danger-sm{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.btn-danger-sm:hover:not(:disabled){background:#fecaca}.w-full{justify-content:center;width:100%}.status-pill{border-radius:999px;align-items:center;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.status-pill-open{color:#1d4ed8;background:#dbeafe}.status-pill-final{color:#15803d;background:#dcfce7}.spinner{border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:16px}.form-group label{color:#374151;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input,.form-group select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:10px 12px;font-size:15px;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.divider{text-align:center;color:#9ca3af;align-items:center;margin:20px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid #e5e7eb;flex:1}.divider span{padding:0 12px}.error-box{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;margin-top:4px;padding:10px 14px;font-size:13px}.info-box{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:14px 16px;font-size:13px}.disclaimer-box{color:#6b7280;background:#eff6ff;border:1px solid #bfdbfe;border-left:3px solid #2563eb;border-radius:8px;margin-top:28px;padding:16px 18px;font-size:12.5px;line-height:1.6}.disclaimer-box strong{color:#111827;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;display:block}.hint{color:#9ca3af;text-align:center;margin-top:12px;font-size:12px}.user-table{border-collapse:collapse;width:100%;font-size:14px}.user-table th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb;padding:10px 12px;font-size:12px;font-weight:700}.user-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:12px}.user-table tr:last-child td{border-bottom:none}.user-table tr:hover td{background:#f9fafb}.you-badge{color:#0369a1;background:#e0f2fe;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.role-select{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:5px 8px;font-size:13px}.add-controller-form{max-width:420px}.sheet-toolbar{flex-wrap:wrap;align-items:flex-end;gap:24px;display:flex}.checkin-table{border-collapse:separate;border-spacing:0;width:auto;min-width:100%;font-size:14px}.checkin-table thead{top:var(--app-header-height,0px);z-index:5;position:sticky}.checkin-table th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:#fff;border-bottom:1px solid #e5e7eb;padding:8px 10px;font-size:12px;font-weight:700}.checkin-table td{vertical-align:middle;white-space:nowrap;border-bottom:1px solid #f3f4f6;padding:8px 10px;transition:background 1.8s}.operator-row.inactive td{color:#9ca3af;background:#f9fafb}.operator-row.search-highlight td{background:#fef08a}.operator-row.row-responded td{background:#dcfce7}.operator-row.row-no-response td{background:#fef3c7}.inactive-header-row td{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;background:#f3f4f6;border-top:2px solid #d1d5db;border-bottom:1px solid #e5e7eb;padding:10px;font-size:12px;font-weight:700}.checkin-table input[type=checkbox]{cursor:pointer;width:18px;height:18px}.checkin-table.text-large td,.checkin-table.text-large .comments-input,.checkin-table.text-large .location-input{font-size:17px}.checkin-table.text-large td{padding:12px 10px}.checkin-table.text-large input[type=checkbox]{width:22px;height:22px}.checkin-table.text-xlarge td,.checkin-table.text-xlarge .comments-input,.checkin-table.text-xlarge .location-input{font-size:20px}.checkin-table.text-xlarge td{padding:16px 10px}.checkin-table.text-xlarge input[type=checkbox]{width:26px;height:26px}.comments-input,.location-input{border:1px solid #d1d5db;border-radius:6px;width:100%;min-width:160px;padding:6px 8px;font-size:14px}.location-input{min-width:120px}.identity-input{border:1px solid #d1d5db;border-radius:6px;width:100%;min-width:100px;padding:6px 8px;font-size:14px}.identity-edit-group{align-items:center;gap:6px;display:flex}.edit-icon-btn{color:#6b7280;cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;flex-shrink:0;padding:2px 7px;font-size:13px;line-height:1.6}.edit-icon-btn:hover{color:#374151;background:#f3f4f6}.edit-icon-btn:disabled{opacity:.5;cursor:not-allowed}.edit-icon-btn-danger:hover:not(:disabled){color:#dc2626;background:#fee2e2;border-color:#fca5a5}.comments-input:disabled,.location-input:disabled{background:#f9fafb}.add-operator-form{border-top:1px solid #e5e7eb;margin-top:24px;padding-top:20px}.add-operator-fields{flex-wrap:wrap;gap:10px;display:flex}.add-operator-fields input{border:1px solid #d1d5db;border-radius:8px;flex:1;min-width:140px;padding:10px 12px;font-size:14px}.preamble-text{white-space:pre-wrap;color:#111827;font-family:inherit;font-size:15px;line-height:1.7}.preamble-textarea{resize:vertical;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:14px;font-family:inherit;font-size:15px;line-height:1.6}.preamble-textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.preamble-text.text-large,.preamble-textarea.text-large{font-size:19px}.preamble-text.text-xlarge,.preamble-textarea.text-xlarge{font-size:23px}.weather-note{border-bottom:1px solid #e5e7eb;padding:12px 0}.weather-note:last-child{border-bottom:none}.weather-note-meta{color:#6b7280;margin-bottom:4px;font-size:12px}.weather-note-text{color:#111827;white-space:pre-wrap;font-size:14px;line-height:1.5}.tabs{border-bottom:2px solid #e5e7eb;margin-bottom:20px;display:flex}.tab-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:10px;font-size:14px;font-weight:600;transition:color .15s,border-color .15s}.tab-btn.active{color:#2563eb;border-bottom-color:#2563eb}.tab-btn:hover:not(.active){color:#374151}.public-callsign-list{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;list-style:none;display:grid}.public-callsign-list li{color:#1d4ed8;text-align:center;background:#eff6ff;border-radius:8px;padding:10px;font-size:15px;font-weight:700}.roster-list{max-width:360px;margin:20px auto 0;padding:0;font-size:15px;list-style:none}.roster-list li{text-align:center;border-bottom:1px solid #f3f4f6;padding:6px 0}.roster-list li:last-child{border-bottom:none}.stats-date-list{white-space:normal;color:#374151;grid-template-rows:repeat(13,auto);grid-template-columns:repeat(4,minmax(140px,1fr));grid-auto-flow:column;gap:6px 16px;margin:0;padding:10px 0;font-size:13px;list-style:none;display:grid}.public-attendance-table th,.public-attendance-table td{text-align:center}.public-attendance-table .stats-date-list{text-align:center;justify-content:center}.print-only{display:none}.print-header h1{margin-bottom:4px;font-size:20px}.print-header p{color:#374151;font-size:13px}@media print{.no-print{display:none!important}.print-only{display:block}body{background:#fff}.main-content{max-width:none;padding:0}.card{box-shadow:none;padding:0}.checkin-table thead{display:table-header-group}.checkin-table tr{break-inside:avoid}.checkin-table,.checkin-table th,.checkin-table td{font-size:11px!important}.checkin-table th,.checkin-table td{padding:3px 6px!important}.checkin-table input[type=checkbox]{width:12px!important;height:12px!important}}
