/* ---- STUDENT DUTY SECTION ---- */
.duty-section-header { display:flex; align-items:center; justify-content:space-between; padding:6px 12px; font-size:10px; font-weight:700; color:#f59e0b; letter-spacing:0.5px; border-bottom:1px solid var(--navy-600); background:rgba(245,158,11,.06); }
.duty-section-header .duty-edit-btn { font-size:9px; padding:2px 8px; border-radius:4px; border:1px solid rgba(245,158,11,.3); background:rgba(245,158,11,.1); color:#f59e0b; cursor:pointer; font-family:inherit; font-weight:600; transition:var(--transition); }
.duty-section-header .duty-edit-btn:hover { background:rgba(245,158,11,.2); border-color:#f59e0b; }
.duty-item { display:flex; align-items:center; padding:8px 12px; gap:10px; border-left:3px solid #f59e0b; background:rgba(245,158,11,.04); cursor:default; }
.duty-item:hover { background:rgba(245,158,11,.08); }
.duty-item .duty-badge { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:700; background:rgba(245,158,11,.15); color:#f59e0b; white-space:nowrap; }
.duty-item .duty-info { flex:1; min-width:0; }
.duty-item .duty-name { font-size:12px; font-weight:500; color:var(--slate-200); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.duty-item .duty-note { font-size:9px; color:var(--slate-400); font-style:italic; margin-top:1px; }

/* Schedule Toolbar */
.sked-toolbar { display:flex; align-items:center; gap:8px; padding:8px 16px; background:var(--navy-800); border-bottom:1px solid var(--navy-600); }
.sked-toolbar .toolbar-group { display:flex; align-items:center; gap:4px; }
.sked-toolbar .toolbar-group + .toolbar-group { border-left:1px solid var(--navy-600); padding-left:8px; }
.sked-toolbar .tb-btn { font-size:11px; padding:5px 10px; border-radius:var(--radius-sm); border:1px solid var(--navy-600); background:var(--navy-700); color:var(--slate-200); cursor:pointer; transition:var(--transition); display:flex; align-items:center; gap:4px; font-family:inherit; }
.sked-toolbar .tb-btn:hover { border-color:var(--accent); color:var(--white); }
.sked-toolbar .tb-btn.active { background:var(--accent); border-color:var(--accent); color:white; }
.sked-toolbar .tb-btn.primary { background:var(--accent); border-color:var(--accent); color:white; }
.sked-toolbar .tb-btn.primary:hover { background:var(--accent-hover); }
.sked-toolbar .tb-label { font-size:11px; color:var(--slate-400); font-weight:500; }
.sked-toolbar .spacer { flex:1; }
.sked-toolbar .date-display { font-size:13px; font-weight:600; color:var(--white); }

/* ---- SCHEDULE GRID v2 ---- */
.sked-grid { display:flex; flex-direction:column; min-width:800px; flex:1; }
.sked-grid .lines-container { display:flex; flex-direction:column; }

/* Go Headers */
.go-headers { display:grid; grid-template-columns:70px repeat(5, 1fr); gap:0; position:sticky; top:0; z-index:10; }
.go-header-cell { padding:8px 12px; background:var(--navy-800); border-bottom:2px solid var(--navy-600); border-right:1px solid var(--navy-700); text-align:center; }
.go-header-cell.line-label { text-align:left; font-size:11px; color:var(--slate-400); font-weight:600; }
.go-header-cell .go-num { font-size:13px; font-weight:700; color:var(--white); }
.go-header-cell .go-time { font-size:10px; color:var(--slate-400); margin-top:2px; }

/* Line Rows */
.sked-line { display:grid; grid-template-columns:70px repeat(5, 1fr); gap:0; border-bottom:1px solid var(--navy-700); align-items:stretch; }
.sked-line:hover { background:rgba(59,130,246,.03); }
.line-label { display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--slate-300); background:var(--navy-800); border-right:1px solid var(--navy-600); }

/* Go Slot (each cell in the grid) */
.go-slot { padding:4px; border-right:1px solid var(--navy-700); position:relative; display:flex; flex-direction:column; gap:2px; min-height:56px; }
.go-slot.drag-over { background:rgba(59,130,246,.1); outline:2px dashed var(--accent); outline-offset:-2px; }

/* Flight Card */
.flight-card { background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius-sm); padding:8px 10px; cursor:pointer; transition:var(--transition); position:relative; overflow:hidden; }
.flight-card:hover { border-color:var(--accent); transform:translateY(-1px); box-shadow:0 2px 8px rgba(0,0,0,.3); }
.flight-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; border-radius:4px 0 0 4px; background:var(--phase); }
.flight-card .ip-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.flight-card .ip-name { font-size:11px; font-weight:600; color:var(--white); }
.flight-card .ip-rank { font-size:9px; color:var(--slate-400); }
.flight-card .goes-badge { font-size:9px; font-weight:700; padding:2px 6px; border-radius:8px; background:rgba(59,130,246,.2); color:var(--accent); }
.flight-card .student-row { display:flex; align-items:center; gap:4px; padding:2px 0; }
.flight-card .student-badge { width:16px; height:16px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; color:white; flex-shrink:0; }
.flight-card .student-badge.fam { background:var(--green); }
.flight-card .student-badge.inst { background:var(--teal); }
.flight-card .student-badge.form { background:var(--purple); }
.flight-card .student-badge.cap { background:var(--blue); }
.flight-card .student-name { font-size:10px; color:var(--slate-200); flex:1; }
.flight-card .event-tag { font-size:9px; font-weight:600; padding:1px 5px; border-radius:3px; border:1px solid; }
.flight-card .event-tag.fam { background:rgba(34,197,94,.12); color:var(--green); border-color:rgba(34,197,94,.3); }
.flight-card .event-tag.inst { background:rgba(6,182,212,.12); color:var(--teal); border-color:rgba(6,182,212,.3); }
.flight-card .event-tag.form { background:rgba(168,85,247,.12); color:var(--purple); border-color:rgba(168,85,247,.3); }
.flight-card .event-tag.cap { background:rgba(59,130,246,.12); color:var(--blue); border-color:rgba(59,130,246,.3); }
.flight-card .event-tag.tbd { background:var(--navy-600); color:var(--slate-400); border-color:var(--navy-500); }

/* Spanning IP header for multi-go */
.ip-span-header { background:var(--navy-600); border:1px solid var(--navy-600); border-radius:var(--radius-sm) var(--radius-sm) 0 0; padding:3px 8px; display:flex; align-items:center; justify-content:space-between; position:relative; cursor:pointer; }
.ip-span-header:hover { filter: brightness(1.1); }
.ip-span-header::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:var(--radius-sm) 0 0 0; background:var(--phase); }
.ip-span-header .ip-name { font-size:10px; font-weight:600; color:var(--white); }
.ip-span-header .ip-rank { font-size:8px; color:var(--slate-400); margin-left:3px; }
.ip-span-header .goes-badge { font-size:8px; font-weight:700; padding:1px 5px; border-radius:8px; background:rgba(59,130,246,.2); color:var(--accent); }

/* Student sub-card (under spanning IP) */
.student-sub-card { background:var(--navy-700); border:1px solid var(--navy-600); border-top:1px dashed var(--navy-500); padding:3px 6px; cursor:pointer; transition:var(--transition); }
.student-sub-card:first-child { border-radius:0 0 0 var(--radius-sm); }
.student-sub-card:last-child { border-radius:0 0 var(--radius-sm) 0; }
.student-sub-card + .student-sub-card { border-left:1px dashed var(--navy-500); }
.student-sub-card:hover { border-color:var(--accent); }
.student-sub-card .student-row { display:flex; align-items:center; gap:4px; }
.student-sub-card .student-badge { width:14px; height:14px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:7px; font-weight:700; color:white; flex-shrink:0; }
.student-sub-card .student-badge.fam { background:var(--green); }
.student-sub-card .student-badge.inst { background:var(--teal); }
.student-sub-card .student-badge.form { background:var(--purple); }
.student-sub-card .student-badge.cap { background:var(--blue); }
.student-sub-card .student-name { font-size:10px; color:var(--slate-200); flex:1; font-weight:500; }
.student-sub-card .event-tag { font-size:8px; font-weight:600; padding:1px 4px; border-radius:3px; border:1px solid; }
.student-sub-card .event-tag.fam { background:rgba(34,197,94,.12); color:var(--green); border-color:rgba(34,197,94,.3); }
.student-sub-card .event-tag.inst { background:rgba(6,182,212,.12); color:var(--teal); border-color:rgba(6,182,212,.3); }
.student-sub-card .event-tag.form { background:rgba(168,85,247,.12); color:var(--purple); border-color:rgba(168,85,247,.3); }
.student-sub-card .event-tag.cap { background:rgba(59,130,246,.12); color:var(--blue); border-color:rgba(59,130,246,.3); }

/* Empty slot */
.empty-slot { border:1px dashed var(--navy-500); border-radius:var(--radius-sm); padding:4px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--transition); color:var(--slate-400); font-size:10px; gap:4px; flex:1; }
.empty-slot:hover { border-color:var(--accent); color:var(--accent); background:rgba(59,130,246,.05); }
.empty-slot .plus { width:14px; height:14px; border-radius:50%; border:1px solid currentColor; display:flex; align-items:center; justify-content:center; font-size:12px; line-height:1; font-weight:600; padding-bottom:1px; }

/* Syllabus grid cells */
.syl-cell { width:48px; text-align:center; font-size:9px; cursor:pointer; position:relative; border-bottom:1px solid var(--navy-700); border-right:1px solid var(--navy-700); padding:0 1px; white-space:nowrap; height:26px; line-height:26px; }
.syl-cell:hover { filter:brightness(1.3); }
.syl-cell.bulk-selected { outline:2px solid var(--accent) !important; outline-offset:-2px; background:rgba(59,130,246,.2) !important; }
.syl-row-highlight td { box-shadow:inset 0 -1px 0 var(--accent), inset 0 1px 0 var(--accent); }
.syl-row-highlight td[style*="sticky"] { background:#0f2440 !important; }
/* About page */
.about-phase { background:var(--navy-700); border:1px solid color-mix(in srgb, var(--phase-color) 30%, transparent); border-radius:10px; padding:16px 14px; text-align:center; min-width:100px; animation:aboutFadeIn 0.6s ease-out both; }
.about-phase-icon { font-size:20px; font-weight:800; color:var(--phase-color); margin-bottom:6px; }
.about-phase-label { font-size:10px; font-weight:600; color:var(--white); margin-bottom:2px; }
.about-phase-count { font-size:9px; color:var(--slate-400); }
.about-arrow { animation:aboutFadeIn 0.4s ease-out both; }
.about-card { background:var(--navy-700); border:1px solid var(--navy-600); border-radius:10px; padding:20px; transition:var(--transition); }
.about-card:hover { border-color:var(--accent); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.3); }
.about-card-icon { margin-bottom:12px; }
.about-card-title { font-size:14px; font-weight:700; color:var(--white); margin-bottom:8px; }
.about-card-desc { font-size:11px; color:var(--slate-300); line-height:1.6; }
@keyframes aboutFadeIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.syl-table { background:var(--navy-800); }
.syl-table thead th { background:var(--navy-800); }
.syl-t-ground { background:rgba(34,197,94,.06); color:var(--slate-500); }
.syl-t-sim { background:rgba(124,58,237,.06); color:var(--slate-500); }
.syl-t-flight { background:rgba(59,130,246,.06); color:var(--slate-500); }
.syl-s-COMPLETE { background:rgba(34,197,94,.25) !important; color:var(--green) !important; }
.syl-s-CANX { background:rgba(168,85,247,.25) !important; color:#a855f7 !important; }
.syl-s-NO_SHOW { background:rgba(239,68,68,.3) !important; color:#ef4444 !important; }
.syl-s-SCHEDULED { background:rgba(59,130,246,.2) !important; color:var(--accent) !important; }
.syl-s-ASSIGNED { background:rgba(59,130,246,.15) !important; color:var(--accent) !important; }
.syl-s-EXECUTING { background:rgba(245,158,11,.2) !important; color:#f59e0b !important; }
.syl-today { border:1px dashed var(--accent) !important; }
.syl-override { border:1px solid var(--green) !important; }
.syl-row { height:26px; background:var(--navy-800); }
.syl-hdr-cell { width:48px; text-align:center; font-size:8px; font-weight:600; cursor:default; border-right:1px solid var(--navy-700); }
.syl-hdr-ground { color:#22c55e; background:rgba(34,197,94,.07); }
.syl-hdr-sim { color:#7c3aed; background:rgba(124,58,237,.07); }
.syl-hdr-flight { color:#3b82f6; background:rgba(59,130,246,.07); }
.detail-content { flex:1; overflow-y:auto; padding:12px 16px; }
.detail-section { margin-bottom:16px; }
.section-title { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:8px; }
.detail-row { display:flex; justify-content:space-between; padding:4px 0; font-size:12px; }
.detail-row .label { color:var(--slate-400); }
.detail-row .value { color:var(--white); font-weight:500; }
.progress-bar { height:6px; background:var(--navy-600); border-radius:3px; overflow:hidden; margin-top:4px; }
.progress-bar .fill { height:100%; border-radius:3px; transition:width .5s ease; }
.qual-chips { display:flex; flex-wrap:wrap; gap:4px; }
.qual-chip { font-size:10px; padding:2px 6px; border-radius:4px; font-weight:500; }
.qual-chip.d { background:rgba(59,130,246,.15); color:var(--accent); }
.qual-chip.q { background:rgba(34,197,94,.15); color:var(--green); }
.qual-chip.x { background:rgba(168,85,247,.15); color:#a855f7; }
.qual-chip.s { background:rgba(100,116,139,.15); color:var(--slate-300); }
.qual-chip.expiring { background:rgba(245,158,11,.15); color:#f59e0b; }
.qual-chip.expired { background:rgba(239,68,68,.15); color:#ef4444; text-decoration:line-through; }
.avail-timeline { display:flex; height:24px; border-radius:4px; overflow:hidden; margin-top:4px; }
.avail-block { flex:1; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:600; }
.avail-block.available { background:rgba(34,197,94,.15); color:var(--green); }
.avail-block.unavailable { background:rgba(100,116,139,.15); color:var(--slate-dim); }

/* ---- EDIT PANEL (center overlay) ---- */
.edit-overlay { display:none; position:absolute; inset:0; background:rgba(10,22,40,.85); z-index:50; backdrop-filter:none; }
.edit-overlay.active { display:flex; align-items:center; justify-content:center; }
.edit-panel { background:var(--navy-800); border:1px solid var(--navy-600); border-radius:12px; width:960px; max-width:95vw; max-height:80vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.5); display:flex; flex-direction:column; }
.edit-panel .edit-header { padding:14px 20px; border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; }
.edit-panel .edit-header h2 { font-size:15px; font-weight:600; }
.edit-panel .edit-header .line-go-badge { font-size:11px; font-weight:600; padding:3px 10px; border-radius:10px; background:var(--navy-600); color:var(--slate-200); margin-left:8px; }
.edit-panel .edit-header button { background:none; border:none; color:var(--slate-400); cursor:pointer; font-size:18px; }
.edit-panel .edit-body { padding:12px 20px; flex:1; overflow-y:auto; }

/* IP Section */
.ip-section { background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius); padding:10px 14px; margin-bottom:12px; }
.ip-section .ip-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.ip-section .ip-current { display:flex; align-items:center; gap:8px; }
.ip-section .ip-current .ip-name-lg { font-size:14px; font-weight:600; }
.ip-section .ip-current .ip-rank-lg { font-size:12px; color:var(--slate-400); }
.ip-section .change-btn { font-size:11px; padding:4px 10px; border-radius:var(--radius-sm); border:1px solid var(--navy-500); background:var(--navy-600); color:var(--slate-200); cursor:pointer; transition:var(--transition); font-family:inherit; }
.ip-section .change-btn:hover { border-color:var(--accent); color:var(--white); }
.ip-section .ip-meta { display:flex; gap:16px; font-size:11px; color:var(--slate-400); }
.ip-section .ip-meta .meta-item { display:flex; align-items:center; gap:4px; }
.ip-section .ip-quals { display:flex; flex-wrap:wrap; gap:4px; margin-top:8px; }
.ip-section .ip-avail { margin-top:8px; }
.ip-section .avail-bar { display:flex; height:18px; border-radius:3px; overflow:hidden; gap:1px; }
.ip-section .avail-seg { flex:1; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:600; border-radius:2px; }
.ip-section .avail-seg.ok { background:rgba(34,197,94,.2); color:var(--green); }
.ip-section .avail-seg.busy { background:rgba(59,130,246,.2); color:var(--accent); }
.ip-section .avail-seg.off { background:rgba(100,116,139,.15); color:var(--slate-dim); }

/* Go Columns */
/* Go Management */
.go-mgmt { display:flex; align-items:center; gap:8px; margin-top:8px; padding-top:8px; border-top:1px dashed var(--navy-500); }
.go-mgmt-label { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); }
.go-mgmt-chips { display:flex; gap:4px; flex:1; }
.go-chip { display:flex; align-items:center; gap:4px; font-size:11px; font-weight:600; padding:4px 8px; border-radius:var(--radius-sm); background:var(--navy-600); color:var(--white); border:1px solid var(--navy-500); }
.go-chip.active { border-color:var(--accent); background:rgba(59,130,246,.15); }
.go-chip .go-remove { cursor:pointer; color:var(--slate-400); font-size:14px; margin-left:2px; transition:var(--transition); }
.go-chip .go-remove:hover { color:#ef4444; }
.go-mgmt-btn { font-size:11px; padding:4px 10px; border-radius:var(--radius-sm); border:1px solid var(--navy-500); background:var(--navy-600); color:var(--slate-200); cursor:pointer; font-family:inherit; transition:var(--transition); }
.go-mgmt-btn:hover { border-color:var(--accent); color:var(--white); }
.go-cascade-warning { font-size:11px; color:#f59e0b; padding:6px 10px; background:rgba(245,158,11,.08); border:1px solid rgba(245,158,11,.2); border-radius:var(--radius-sm); margin-top:6px; display:none; }

/* Change IP Panel */
.change-ip-panel { display:none; background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; max-height:300px; }
.change-ip-panel.open { display:block; }
.change-ip-panel .cip-header { padding:8px 12px; background:var(--navy-600); border-bottom:1px solid var(--navy-500); display:flex; align-items:center; gap:8px; }
.change-ip-panel .cip-header input { flex:1; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:5px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; }
.change-ip-panel .cip-header input:focus { border-color:var(--accent); }
.change-ip-panel .cip-list { max-height:230px; overflow-y:auto; }
.change-ip-panel .cip-group-header { padding:4px 12px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); background:var(--navy-700); border-bottom:1px solid var(--navy-600); border-top:1px solid var(--navy-600); }
.cip-row { display:flex; align-items:center; gap:8px; padding:6px 12px; cursor:pointer; transition:var(--transition); border-bottom:1px solid var(--navy-700); }
.cip-row:hover { background:var(--navy-600); }
.cip-row .cip-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.cip-row .cip-name { font-size:12px; font-weight:500; flex:1; }
.cip-row .cip-quals { display:flex; gap:3px; }
.cip-row .cip-status-tag { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; }
.cip-row .cip-status-tag.open { background:rgba(34,197,94,.12); color:var(--green); }
.cip-row .cip-status-tag.busy { background:rgba(59,130,246,.12); color:var(--accent); }
.cip-row .cip-status-tag.off { background:rgba(100,116,139,.1); color:var(--slate-dim); }
.cip-row.unavailable { opacity:.6; }
.cip-caution { font-size:11px; padding:6px 12px; margin:0; border-bottom:1px solid var(--navy-700); }
.cip-caution.warn { background:rgba(245,158,11,.06); color:#f59e0b; }
.cip-caution.danger { background:rgba(239,68,68,.06); color:#ef4444; }
.cip-override { display:flex; align-items:center; gap:8px; padding:6px 12px; font-size:11px; color:var(--slate-300); border-bottom:1px solid var(--navy-700); background:rgba(245,158,11,.04); }
.cip-override input[type=checkbox] { accent-color:var(--accent); }
.cip-override input[type=text] { flex:1; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:4px 8px; border-radius:4px; font-size:11px; font-family:inherit; outline:none; }

.go-columns { display:flex; gap:10px; margin-bottom:12px; }
.go-col { flex:1; background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius); overflow:hidden; }
.go-col-header { padding:8px 12px; background:var(--navy-600); font-size:12px; font-weight:600; display:flex; justify-content:space-between; }
.go-col-header .go-time-sm { font-size:10px; color:var(--slate-400); font-weight:400; }
.go-col-body { padding:10px; max-height:320px; overflow-y:auto; }

/* Any event selector */
.any-event-section { border-top:1px dashed var(--navy-500); padding-top:10px; margin-top:10px; }
.any-event-toggle { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--slate-400); cursor:pointer; margin-bottom:6px; }
.any-event-toggle:hover { color:var(--white); }
.any-event-toggle svg { width:14px; height:14px; }
.any-event-select { width:100%; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:6px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; margin-top:4px; }
.any-event-select:focus { border-color:var(--accent); }
.any-event-reason { width:100%; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:6px 10px; border-radius:var(--radius-sm); font-size:11px; font-family:inherit; outline:none; margin-top:4px; }
.any-event-reason:focus { border-color:var(--accent); }

/* Student selector in Go column */
.student-select { margin-bottom:12px; }
.student-select label { display:block; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:4px; }
.student-select select, .student-select input { width:100%; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:6px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; }
.student-select select:focus, .student-select input:focus { border-color:var(--accent); }
.student-phase-badge { display:inline-block; font-size:9px; font-weight:600; padding:2px 6px; border-radius:8px; margin-left:6px; }

/* Event radio list */
.event-list { margin-bottom:8px; }
.event-list .event-list-title { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:6px; }
.event-option { display:flex; align-items:center; gap:6px; padding:4px 6px; border-radius:var(--radius-sm); cursor:pointer; transition:var(--transition); margin-bottom:1px; }
.event-option:hover { background:var(--navy-600); }
.event-option.selected { background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.3); }
.event-option.recommended { border:1px solid rgba(34,197,94,.3); }
.event-option input[type=radio] { accent-color:var(--accent); }
.event-option .ev-code { font-size:12px; font-weight:600; color:var(--white); min-width:70px; }
.event-option .ev-name { font-size:11px; color:var(--slate-300); flex:1; }
.event-option .ev-badge { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; }
.event-option .ev-badge.rec { background:rgba(34,197,94,.15); color:var(--green); }
.event-option .ev-badge.elig { background:rgba(6,182,212,.1); color:var(--teal); }

/* Override section */
.override-section { border-top:1px dashed var(--navy-500); padding-top:8px; margin-top:8px; }
.override-section .override-toggle { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--slate-400); cursor:pointer; }
.override-section .override-toggle input { accent-color:var(--accent); }
.override-row { display:flex; gap:8px; margin-top:6px; }
.override-row input, .override-row select { flex:1; background:var(--navy-800); border:1px solid var(--navy-500); color:var(--white); padding:6px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; }

/* Warnings */
.warnings-section { margin-bottom:16px; }
.warning-item { display:flex; align-items:flex-start; gap:8px; padding:8px 12px; border-radius:var(--radius-sm); margin-bottom:4px; font-size:11px; }
.warning-item.info { background:rgba(59,130,246,.08); color:var(--accent); border:1px solid rgba(59,130,246,.2); }
.warning-item.caution { background:rgba(245,158,11,.08); color:#f59e0b; border:1px solid rgba(245,158,11,.2); }
.warning-item.conflict { background:rgba(239,68,68,.08); color:#ef4444; border:1px solid rgba(239,68,68,.2); }
.warning-item .warn-icon { font-size:14px; flex-shrink:0; }

/* Notes & options */
.edit-field { margin-bottom:12px; }
.edit-field label { display:block; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:4px; }
.edit-field textarea { width:100%; background:var(--navy-700); border:1px solid var(--navy-600); color:var(--white); padding:8px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; resize:vertical; min-height:50px; }
.edit-field textarea:focus { border-color:var(--accent); }
.lock-toggle { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--slate-300); cursor:pointer; padding:4px 0; }
.lock-toggle input { accent-color:var(--accent); }

/* Edit footer */
.edit-actions { display:flex; align-items:center; padding:12px 20px; border-top:1px solid var(--navy-600); }
.edit-actions .delete-btn { font-size:11px; padding:6px 12px; border-radius:var(--radius-sm); border:1px solid rgba(239,68,68,.3); background:rgba(239,68,68,.08); color:#ef4444; cursor:pointer; font-family:inherit; transition:var(--transition); }
.edit-actions .delete-btn:hover { background:rgba(239,68,68,.15); }
.edit-actions .spacer { flex:1; }
.edit-actions .action-btns { display:flex; gap:8px; }
.edit-actions button { padding:7px 16px; border-radius:var(--radius-sm); font-size:12px; font-weight:600; cursor:pointer; border:1px solid var(--navy-600); background:var(--navy-700); color:var(--slate-200); font-family:inherit; transition:var(--transition); }
.edit-actions button.primary { background:var(--accent); border-color:var(--accent); color:white; }
.edit-actions button:hover { transform:translateY(-1px); }

/* ---- DASHBOARD ---- */
.dash-content { padding:24px; max-width:1100px; }
.dash-greeting { font-size:20px; font-weight:700; margin-bottom:2px; }
.dash-subtitle { font-size:13px; color:var(--slate-400); margin-bottom:20px; }
.dash-upload-row { display:flex; gap:16px; margin-bottom:24px; }
.drop-zone { flex:1; border:2px dashed var(--navy-500); border-radius:var(--radius); padding:32px; text-align:center; cursor:pointer; transition:var(--transition); background:var(--navy-800); }
.drop-zone:hover { border-color:var(--accent); background:rgba(59,130,246,.04); }
.drop-zone .drop-icon { font-size:32px; margin-bottom:8px; color:var(--accent); }
.drop-zone .drop-title { font-size:14px; font-weight:600; margin-bottom:4px; }
.drop-zone .drop-sub { font-size:11px; color:var(--slate-400); }
.upload-status { width:220px; background:var(--navy-800); border:1px solid var(--navy-600); border-radius:var(--radius); padding:16px; display:flex; flex-direction:column; gap:10px; }
.upload-status-item { display:flex; align-items:center; justify-content:space-between; font-size:12px; }
.upload-status-item .us-label { color:var(--slate-300); }
.upload-status-item .us-value { font-weight:600; }
.upload-status-item .us-value.fresh { color:var(--green); }
.upload-status-item .us-value.stale { color:#f59e0b; }
.upload-status-item .us-time { font-size:10px; color:var(--slate-400); }

.readiness-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px; }
.readiness-card { background:var(--navy-800); border:1px solid var(--navy-600); border-radius:var(--radius); padding:16px; transition:var(--transition); cursor:pointer; }
.readiness-card:hover { border-color:var(--accent); }
.readiness-card .rc-title { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:8px; }
.readiness-card .rc-value { font-size:24px; font-weight:700; }
.readiness-card .rc-sub { font-size:11px; color:var(--slate-400); margin-top:4px; }

.dash-actions { display:flex; gap:8px; }
.dash-action-btn { padding:10px 20px; border-radius:var(--radius); border:1px solid var(--navy-600); background:var(--navy-700); color:var(--white); font-size:13px; font-weight:600; cursor:pointer; transition:var(--transition); font-family:inherit; }
.dash-action-btn:hover { border-color:var(--accent); }
.dash-action-btn.primary { background:var(--accent); border-color:var(--accent); }

/* ---- PERSONNEL ---- */
.personnel-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:16px; height:100%; }
.personnel-panel { background:var(--navy-800); border:1px solid var(--navy-600); border-radius:var(--radius); display:flex; flex-direction:column; overflow:hidden; }
.personnel-panel .pp-header { padding:12px 16px; border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; }
.personnel-panel .pp-header h3 { font-size:14px; font-weight:600; }
.personnel-panel .pp-header .pp-count { font-size:12px; color:var(--slate-400); }
.personnel-panel .pp-body { flex:1; overflow-y:auto; padding:4px 0; }
.phase-group { margin-bottom:4px; }
.phase-group-header { padding:6px 16px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); background:var(--navy-700); display:flex; justify-content:space-between; cursor:pointer; }
.phase-group-header .pg-count { color:var(--slate-300); }
.personnel-row { display:flex; align-items:center; padding:7px 16px; gap:10px; cursor:pointer; transition:var(--transition); border-left:3px solid transparent; }
.personnel-row:hover { background:var(--navy-700); }
.personnel-row .pr-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.personnel-row .pr-name { font-size:12px; font-weight:500; flex:1; }
.personnel-row .pr-meta { font-size:10px; color:var(--slate-400); }
.personnel-row .pr-event { font-size:10px; font-weight:600; padding:2px 6px; border-radius:4px; background:var(--navy-600); color:var(--slate-200); }
.personnel-row .pr-pct { font-size:10px; color:var(--slate-400); min-width:30px; text-align:right; }
.personnel-row .pr-status { font-size:10px; font-weight:600; padding:2px 6px; border-radius:4px; }
.personnel-row .pr-status.avail { background:rgba(34,197,94,.12); color:var(--green); }
.personnel-row .pr-status.leave { background:rgba(239,68,68,.1); color:#ef4444; }
.personnel-row .pr-status.watch { background:rgba(168,85,247,.12); color:var(--purple); }
.personnel-row .pr-status.snivel { background:rgba(245,158,11,.1); color:#f59e0b; }

/* ---- CREW FINDER DRAWER ---- */
.quals-drawer { position:fixed; right:-760px; top:var(--top-bar); bottom:var(--dock); width:740px; background:var(--navy-800); border-left:1px solid var(--navy-600); box-shadow:-8px 0 30px rgba(0,0,0,.4); z-index:80; transition:right var(--transition); display:flex; flex-direction:column; }
.quals-drawer.open { right:0; }
.quals-drawer .drawer-header { padding:14px 16px; border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.quals-drawer .drawer-header h3 { font-size:14px; font-weight:600; }
.quals-drawer .drawer-header button { background:none; border:none; color:var(--slate-400); cursor:pointer; font-size:18px; }
.quals-drawer .drawer-body { flex:1; overflow:auto; padding:0; }
.quals-table { width:100%; border-collapse:separate; border-spacing:0; font-size:11px; }
.quals-table th { padding:8px 6px; text-align:center; font-weight:600; font-size:10px; color:var(--slate-300); background:var(--navy-700); border-bottom:2px solid var(--navy-600); position:sticky; top:0; z-index:5; white-space:nowrap; }
.quals-table th:first-child { text-align:left; min-width:160px; padding-left:12px; }
.quals-table td { padding:6px 4px; text-align:center; border-bottom:1px solid var(--navy-700); }
.quals-table td:first-child { text-align:left; font-weight:500; color:var(--white); font-size:11px; padding-left:12px; white-space:nowrap; }
.quals-table tr:hover td { background:var(--navy-600); }
.qual-cell { display:inline-flex; align-items:center; justify-content:center; width:28px; height:22px; border-radius:4px; font-size:10px; font-weight:700; }
.qual-cell.current { background:rgba(34,197,94,.15); color:var(--green); }
.qual-cell.expiring { background:rgba(245,158,11,.15); color:#f59e0b; }
.qual-cell.expired { background:rgba(239,68,68,.15); color:#ef4444; }
.qual-cell.none { background:transparent; color:var(--navy-500); }
.quals-backdrop { display:none; position:fixed; inset:0; z-index:79; }
.quals-backdrop.open { display:block; }

/* ---- WEEKEND/CCX DRAWER ---- */
.wccx-drawer { position:fixed; right:-820px; top:var(--top-bar); bottom:var(--dock); width:800px; background:var(--navy-800); border-left:1px solid var(--navy-600); box-shadow:-8px 0 30px rgba(0,0,0,.4); z-index:80; transition:right var(--transition); display:flex; flex-direction:column; }
.wccx-drawer.open { right:0; }
.wccx-drawer .drawer-header { padding:14px 16px; border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.wccx-drawer .drawer-header h3 { font-size:14px; font-weight:600; }
.wccx-drawer .drawer-header button { background:none; border:none; color:var(--slate-400); cursor:pointer; font-size:18px; }
.wccx-drawer .drawer-tabs { display:flex; border-bottom:1px solid var(--navy-600); flex-shrink:0; }
.wccx-drawer .drawer-tab { flex:1; padding:10px 16px; font-size:12px; font-weight:600; text-align:center; color:var(--slate-400); background:none; border:none; cursor:pointer; border-bottom:2px solid transparent; transition:var(--transition); font-family:inherit; }
.wccx-drawer .drawer-tab:hover { color:var(--white); background:var(--navy-700); }
.wccx-drawer .drawer-tab.active-ccx { color:var(--teal); border-bottom-color:var(--teal); }
.wccx-drawer .drawer-tab.active-wknd { color:#f59e0b; border-bottom-color:#f59e0b; }
.wccx-drawer .drawer-body { flex:1; overflow:auto; padding:16px; }
.wccx-backdrop { display:none; position:fixed; inset:0; z-index:79; }
.wccx-backdrop.open { display:block; }

/* CCX eligible table */
.ccx-eligible-table { width:100%; border-collapse:separate; border-spacing:0; font-size:11px; margin-top:12px; }
.ccx-eligible-table th { padding:8px 8px; text-align:left; font-weight:600; font-size:10px; color:var(--slate-300); background:var(--navy-700); border-bottom:2px solid var(--navy-600); position:sticky; top:0; z-index:5; text-transform:uppercase; letter-spacing:.5px; }
.ccx-eligible-table td { padding:6px 8px; border-bottom:1px solid var(--navy-700); color:var(--slate-200); }
.ccx-eligible-table tr:hover td { background:var(--navy-600); }
.ccx-eligible-badge { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; }
.ccx-eligible-badge.yes { background:rgba(6,182,212,.15); color:var(--teal); }
.ccx-eligible-badge.no { background:rgba(239,68,68,.12); color:#ef4444; }

/* CCX pairs */
.ccx-pair-row { display:grid; grid-template-columns:32px 1fr 1fr 2fr; gap:8px; align-items:center; padding:8px; background:var(--navy-700); border-radius:var(--radius-sm); margin-bottom:6px; }
.ccx-pair-row select { background:var(--navy-900); border:1px solid var(--navy-600); color:var(--white); padding:6px 8px; border-radius:var(--radius-sm); font-size:11px; font-family:inherit; outline:none; }
.ccx-pair-row select:focus { border-color:var(--teal); }
.ccx-pair-num { font-size:11px; font-weight:700; color:var(--slate-400); text-align:center; }
.ccx-events-preview { font-size:10px; color:var(--teal); font-family:monospace; }

/* Dark theme number inputs in weekend ops */
.wccx-drawer input[type="number"] {
  background:var(--navy-900); border:1px solid var(--navy-600); color:var(--white);
  width:48px; padding:4px 6px; font-size:12px; text-align:center;
  border-radius:var(--radius-sm); font-family:inherit; outline:none;
  -webkit-appearance:textfield; -moz-appearance:textfield; appearance:textfield;
}
.wccx-drawer input[type="number"]:focus { border-color:#f59e0b; }
.wccx-drawer input[type="number"]::-webkit-inner-spin-button,
.wccx-drawer input[type="number"]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }

/* Dark theme date inputs */
.wccx-drawer input[type="date"] { color-scheme:dark; }
.wccx-drawer input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(0.7); cursor:pointer; }

/* Weekend ops grid */
.wknd-grid { width:100%; border-collapse:separate; border-spacing:0; font-size:11px; margin-top:12px; }
.wknd-grid th { padding:8px 8px; text-align:center; font-weight:600; font-size:10px; color:var(--slate-300); background:var(--navy-700); border-bottom:2px solid var(--navy-600); text-transform:uppercase; letter-spacing:.5px; }
.wknd-grid th:first-child { text-align:left; min-width:140px; }
.wknd-grid th:last-child { text-align:left; min-width:120px; }
.wknd-grid td { padding:6px 8px; border-bottom:1px solid var(--navy-700); text-align:center; }
.wknd-grid td:first-child { text-align:left; font-weight:500; color:var(--white); }
.wknd-grid td:last-child { text-align:left; }
.wknd-grid tr:hover td { background:var(--navy-600); }
.wknd-grid input[type=number] { width:48px; background:var(--navy-900); border:1px solid var(--navy-600); color:var(--white); padding:4px 6px; border-radius:4px; font-size:12px; font-family:inherit; text-align:center; outline:none; }
.wknd-grid input[type=number]:focus { border-color:#f59e0b; }
.wknd-grid input[type=text] { width:100%; background:var(--navy-900); border:1px solid var(--navy-600); color:var(--white); padding:4px 6px; border-radius:4px; font-size:11px; font-family:inherit; outline:none; }
.wknd-grid input[type=text]:focus { border-color:#f59e0b; }
.wknd-totals { display:flex; gap:16px; padding:12px 0; font-size:12px; font-weight:600; color:var(--slate-200); }
.wknd-totals span { color:#f59e0b; }

/* Drawer action buttons */
.wccx-btn { padding:8px 16px; border-radius:var(--radius-sm); font-size:12px; font-weight:600; cursor:pointer; border:none; font-family:inherit; transition:var(--transition); }
.wccx-btn.primary-ccx { background:var(--teal); color:#fff; }
.wccx-btn.primary-ccx:hover { background:#0891b2; }
.wccx-btn.primary-wknd { background:#f59e0b; color:#000; }
.wccx-btn.primary-wknd:hover { background:#d97706; }
.wccx-btn.secondary { background:var(--navy-700); color:var(--slate-200); border:1px solid var(--navy-600); }
.wccx-btn.secondary:hover { border-color:var(--slate-400); color:var(--white); }

/* Schedule card accents for CCX/Weekend */
.sked-line.ccx-line .ip-span-header { border-left:3px solid var(--teal); }
.sked-line.wknd-line .ip-span-header { border-left:3px solid #f59e0b; }
.ccx-badge, .wknd-badge { font-size:8px; font-weight:700; padding:1px 5px; border-radius:3px; margin-left:4px; letter-spacing:.5px; vertical-align:middle; }
.ccx-badge { background:rgba(6,182,212,.2); color:var(--teal); }
.wknd-badge { background:rgba(245,158,11,.2); color:#f59e0b; }
.blocked-go { background:repeating-linear-gradient(135deg, var(--navy-700), var(--navy-700) 4px, var(--navy-600) 4px, var(--navy-600) 8px) !important; opacity:0.5; pointer-events:none; }
.blocked-go .empty-slot { color:var(--slate-500); }
.blocked-go::after { content:'BLOCKED'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:9px; font-weight:700; color:var(--slate-500); letter-spacing:1px; }

/* Crew Finder filter bar */
.finder-bar { padding:12px 16px; border-bottom:1px solid var(--navy-600); display:flex; flex-direction:column; gap:8px; flex-shrink:0; }
.finder-bar label { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); }
.finder-bar select { width:100%; background:var(--navy-700); border:1px solid var(--navy-600); color:var(--white); padding:8px 10px; border-radius:var(--radius-sm); font-size:12px; font-family:inherit; outline:none; }
.finder-bar select:focus { border-color:var(--accent); }
.finder-legend { display:flex; gap:12px; font-size:10px; color:var(--slate-400); }
.finder-legend .leg-item { display:flex; align-items:center; gap:4px; }
.finder-legend .leg-dot { width:8px; height:8px; border-radius:2px; }
.finder-legend .leg-dot.avail { background:var(--green); }
.finder-legend .leg-dot.sched { background:var(--accent); }
.finder-legend .leg-dot.unavail { background:var(--slate-dim); }

/* Crew Finder table enhancements */
.finder-row { transition:var(--transition); }
.finder-row.available td { }
.finder-row.scheduled td:first-child { color:var(--accent); }
.finder-row.unavailable td { opacity:.5; }
.finder-row .assign-badge { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; white-space:nowrap; }
.finder-row .assign-badge.open { background:rgba(34,197,94,.12); color:var(--green); }
.finder-row .assign-badge.booked { background:rgba(59,130,246,.12); color:var(--accent); }
.finder-row .assign-badge.off { background:rgba(100,116,139,.1); color:var(--slate-dim); }
.finder-row .contact-btn { font-size:10px; padding:3px 8px; border-radius:4px; border:1px solid rgba(245,158,11,.3); background:rgba(245,158,11,.08); color:#f59e0b; cursor:pointer; font-family:inherit; transition:var(--transition); }
.finder-row .contact-btn:hover { background:rgba(245,158,11,.15); }

/* ---- CREW & AVAILABILITY ---- */
.crew-view { display:flex; flex-direction:column; height:100%; }
.crew-tabs { display:flex; gap:0; padding:0 16px; background:var(--navy-800); border-bottom:1px solid var(--navy-600); }
.crew-tab { padding:10px 20px; font-size:13px; font-weight:600; color:var(--slate-400); cursor:pointer; border-bottom:2px solid transparent; transition:var(--transition); }
.crew-tab:hover { color:var(--white); }
.crew-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.crew-tab .tab-count { font-size:11px; font-weight:400; color:var(--slate-400); margin-left:4px; }
.crew-grid { flex:1; overflow:auto; }
.crew-table { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:12px; }
.crew-table th { padding:8px 6px; text-align:center; font-weight:600; font-size:11px; color:var(--slate-300); background:var(--navy-800); border-bottom:2px solid var(--navy-600); position:sticky; top:0; z-index:5; }
.crew-table th:first-child { text-align:left; }
.crew-table th:last-child { text-align:left; }
.crew-table td { padding:8px 6px; border-bottom:1px solid var(--navy-700); }
.crew-table td:first-child { font-weight:500; }
.crew-table td:nth-child(2), .crew-table td:nth-child(3) { text-align:center; }
.crew-table tr:hover td { background:var(--navy-700); }
.crew-table .cr-name { display:flex; align-items:center; gap:8px; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.crew-table .cr-name .cr-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.crew-table .cr-status { font-size:10px; font-weight:600; padding:2px 8px; border-radius:8px; text-align:center; }
.crew-table .cr-status.active { background:rgba(34,197,94,.12); color:var(--green); }
.crew-table .cr-status.leave { background:rgba(239,68,68,.1); color:#ef4444; }
.crew-table .cr-status.snivel { background:rgba(245,158,11,.1); color:#f59e0b; }
.crew-table .cr-status.watch { background:rgba(168,85,247,.12); color:var(--purple); }
.crew-table .cr-status.hold { background:rgba(239,68,68,.1); color:#ef4444; }
.go-cell { text-align:center; }
.go-avail { display:inline-flex; align-items:center; justify-content:center; width:40px; height:26px; border-radius:4px; cursor:pointer; font-size:10px; font-weight:700; transition:var(--transition); }
.go-avail:hover { transform:scale(1.1); }
.go-avail.yes { background:rgba(34,197,94,.15); color:var(--green); }
.go-avail.no { background:rgba(100,116,139,.12); color:var(--slate-dim); }
.go-avail.partial { background:rgba(245,158,11,.12); color:#f59e0b; }
.crew-table .cr-notes { font-size:11px; color:var(--slate-400); font-style:italic; }
.crew-table .go-first { padding-left:12px; }
.crew-status-select { background:var(--navy-700); border:1px solid var(--navy-600); border-radius:8px; font-size:10px; font-weight:600; padding:2px 8px 2px 4px; cursor:pointer; outline:none; font-family:inherit; text-align:center; color:var(--slate-200); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='6'%3E%3Cpath d='M0 0l4 6 4-6z' fill='%236b7a8d'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 4px center; -webkit-appearance:none; appearance:none; }
.crew-status-select option, .org-select option { background:var(--navy-700); color:var(--slate-200); }
.org-select { color:var(--accent) !important; }
.crew-status-select.active { background:rgba(34,197,94,.12); color:var(--green); border-color:rgba(34,197,94,.3); }
.crew-status-select.leave { background:rgba(239,68,68,.1); color:#ef4444; border-color:rgba(239,68,68,.3); }
.crew-status-select.watch { background:rgba(168,85,247,.12); color:var(--purple); border-color:rgba(168,85,247,.3); }
.crew-status-select.snivel { background:rgba(245,158,11,.1); color:#f59e0b; border-color:rgba(245,158,11,.3); }
.crew-status-select.dnif { background:rgba(239,68,68,.1); color:#ef4444; border-color:rgba(239,68,68,.3); }
.crew-status-select.medical { background:rgba(236,72,153,.1); color:#ec4899; border-color:rgba(236,72,153,.3); }
.crew-filter-bar { display:flex; align-items:center; gap:4px; margin-top:8px; margin-bottom:8px; padding:8px 16px; flex-wrap:wrap; }
.crew-filter-btn { background:var(--navy-700); border:1px solid var(--navy-600); color:var(--slate-300); border-radius:var(--radius-sm); padding:4px 12px; font-size:11px; font-weight:600; cursor:pointer; font-family:inherit; transition:var(--transition); }
.crew-filter-btn:hover { background:var(--navy-600); color:var(--white); }
.crew-filter-btn.active { background:var(--accent); color:var(--white); border-color:var(--accent); }
.crew-search-input { background:var(--navy-700); border:1px solid var(--navy-600); color:var(--slate-200); border-radius:var(--radius-sm); padding:4px 10px; font-size:11px; font-family:inherit; outline:none; min-width:160px; margin-left:12px; }
.crew-search-input::placeholder { color:var(--slate-500); }

/* ---- DATE PICKER ---- */
.date-picker { display:flex; align-items:center; gap:4px; background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius-sm); padding:2px; }
.date-picker .dp-btn { background:none; border:none; color:var(--slate-300); cursor:pointer; padding:4px 6px; border-radius:4px; font-size:13px; transition:var(--transition); }
.date-picker .dp-btn:hover { background:var(--navy-600); color:var(--white); }
.date-picker .dp-date { padding:4px 10px; font-size:13px; font-weight:600; color:var(--white); cursor:pointer; border-radius:4px; transition:var(--transition); }
.date-picker .dp-date:hover { background:var(--navy-600); }
.date-picker .dp-today { font-size:10px; padding:3px 8px; border-radius:4px; background:var(--navy-600); color:var(--slate-300); cursor:pointer; border:none; font-family:inherit; transition:var(--transition); }
.date-picker .dp-today:hover { color:var(--white); }

/* ---- VERSION MANAGER ---- */
.version-manager { display:flex; align-items:center; gap:6px; }
.version-badge { display:flex; align-items:center; gap:6px; background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius-sm); padding:4px 10px; cursor:pointer; transition:var(--transition); position:relative; }
.version-badge:hover { border-color:var(--accent); }
.version-badge .vb-status { width:8px; height:8px; border-radius:50%; }
.version-badge .vb-status.draft { background:#f59e0b; }
.version-badge .vb-status.review { background:var(--accent); }
.version-badge .vb-status.final { background:var(--green); }
.version-badge .vb-name { font-size:12px; font-weight:600; color:var(--white); }
.version-badge .vb-arrow { font-size:10px; color:var(--slate-400); }
.version-dropdown { display:none; position:absolute; top:100%; left:0; margin-top:6px; background:var(--navy-700); border:1px solid var(--navy-600); border-radius:var(--radius); box-shadow:0 8px 24px rgba(0,0,0,.4); min-width:240px; z-index:90; overflow:hidden; }
.version-dropdown.open { display:block; }
.version-dropdown .vd-header { padding:8px 12px; border-bottom:1px solid var(--navy-600); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); }
.version-dropdown .vd-item { display:flex; align-items:center; gap:8px; padding:8px 12px; cursor:pointer; transition:var(--transition); font-size:12px; }
.version-dropdown .vd-item:hover { background:var(--navy-600); }
.version-dropdown .vd-item.active { background:rgba(59,130,246,.1); }
.version-dropdown .vd-item .vd-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.version-dropdown .vd-item .vd-info { flex:1; }
.version-dropdown .vd-item .vd-name { font-weight:500; color:var(--white); }
.version-dropdown .vd-item .vd-meta { font-size:10px; color:var(--slate-400); }
.version-dropdown .vd-item .vd-tag { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; }
.version-dropdown .vd-item .vd-tag.draft { background:rgba(245,158,11,.12); color:#f59e0b; }
.version-dropdown .vd-item .vd-tag.review { background:rgba(59,130,246,.12); color:var(--accent); }
.version-dropdown .vd-item .vd-tag.final { background:rgba(34,197,94,.12); color:var(--green); }
.version-dropdown .vd-actions { padding:8px 12px; border-top:1px solid var(--navy-600); display:flex; gap:6px; }
.version-dropdown .vd-actions button { flex:1; padding:6px; border-radius:var(--radius-sm); border:1px solid var(--navy-600); background:var(--navy-800); color:var(--slate-200); font-size:11px; font-family:inherit; cursor:pointer; transition:var(--transition); }
.version-dropdown .vd-actions button:hover { border-color:var(--accent); }
.version-dropdown .vd-actions button.primary { background:var(--accent); border-color:var(--accent); color:white; }

/* ---- SIM BOARD ---- */
.sim-board { padding:16px; display:flex; flex-direction:column; gap:16px; }
.sim-section { background:var(--navy-800); border:1px solid var(--navy-600); border-radius:var(--radius); overflow:hidden; }
.sim-section-header { padding:10px 16px; background:var(--navy-700); border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; }
.sim-section-header h4 { font-size:13px; font-weight:600; }
.sim-section-header .ss-count { font-size:11px; color:var(--slate-400); }
.sim-row { display:flex; align-items:center; padding:10px 16px; gap:12px; border-bottom:1px solid var(--navy-700); transition:var(--transition); }
.sim-row:last-child { border-bottom:none; }
.sim-row:hover { background:var(--navy-700); }
.sim-row .sr-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.sim-row .sr-name { font-size:12px; font-weight:500; min-width:180px; }
.sim-row .sr-event { font-size:11px; font-weight:600; padding:3px 8px; border-radius:4px; }
.sim-row .sr-phase { font-size:10px; color:var(--slate-400); min-width:80px; }
.sim-row .sr-partner { font-size:10px; color:var(--slate-400); }
.vtd-group { padding:0; }
.vtd-group-header { padding:6px 16px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; background:var(--navy-700); border-bottom:1px solid var(--navy-600); display:flex; align-items:center; gap:6px; }
.vtd-group-header .vtd-phase-dot { width:6px; height:6px; border-radius:50%; }

/* ---- DRAG AND DROP ---- */
.dragging { opacity:.5; transform:scale(.95); }

/* ---- IP Monthly Watchbill Grid ---- */
.swb-container { padding:0; }
.swb-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--navy-600); background:var(--navy-800); }
.swb-title { font-size:14px; font-weight:700; color:var(--white); letter-spacing:.3px; }
.swb-nav { display:flex; align-items:center; gap:8px; }
.swb-nav-btn { background:var(--navy-700); border:1px solid var(--navy-500); color:var(--slate-300); padding:5px 12px; border-radius:4px; cursor:pointer; font-size:12px; font-family:inherit; transition:var(--transition); }
.swb-nav-btn:hover { border-color:var(--accent); color:var(--white); }
.swb-month-label { font-size:13px; font-weight:600; color:var(--slate-300); min-width:120px; text-align:center; }
.swb-grid-wrap { overflow-x:auto; padding:0; }
.swb-week-label { padding:8px 16px 4px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); background:var(--navy-800); border-bottom:1px solid var(--navy-700); }
.swb-grid { width:100%; border-collapse:separate; border-spacing:0; font-size:12px; table-layout:fixed; }
.swb-grid th { padding:6px 4px; text-align:center; font-weight:600; font-size:10px; color:var(--slate-400); background:var(--navy-800); border-bottom:2px solid var(--navy-600); position:sticky; top:0; z-index:5; white-space:nowrap; }
.swb-grid th:first-child { text-align:left; padding-left:12px; min-width:140px; width:140px; }
.swb-grid th.swb-weekend { background:rgba(59,130,246,.06); }
.swb-grid td { padding:4px 3px; border-bottom:1px solid var(--navy-700); text-align:center; vertical-align:middle; height:32px; }
.swb-grid td:first-child { text-align:left; padding-left:12px; font-weight:600; font-size:11px; color:var(--slate-300); white-space:nowrap; }
.swb-grid td.swb-weekend { background:rgba(59,130,246,.04); }
.swb-grid tr:hover td { background:var(--navy-700); }
.swb-grid tr:hover td.swb-weekend { background:rgba(59,130,246,.08); }
.swb-cell { position:relative; min-width:70px; cursor:pointer; border-radius:3px; padding:3px 4px; transition:var(--transition); }
.swb-cell:hover { background:var(--navy-600); }
.swb-cell.swb-empty { color:var(--slate-400); font-size:11px; }
.swb-cell.swb-assigned { color:var(--white); font-weight:500; font-size:11px; }
.swb-cell.swb-na { color:var(--navy-500); font-size:11px; cursor:default; }
.swb-cell.swb-na:hover { background:transparent; }
.swb-cell.swb-auto { border:1px dashed #f59e0b; color:#f59e0b; }
.swb-cell.swb-conflict { background:rgba(239,68,68,.15); outline:1px solid rgba(239,68,68,.4); }
.swb-cell .swb-duty-count { position:absolute; top:-4px; right:-2px; font-size:8px; background:var(--navy-600); color:var(--slate-400); border-radius:6px; padding:0 4px; line-height:14px; }
.swb-tooltip { position:fixed; background:var(--navy-700); border:1px solid var(--navy-500); color:var(--white); padding:6px 10px; border-radius:4px; font-size:11px; z-index:9999; pointer-events:none; white-space:nowrap; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.swb-dropdown { position:fixed; background:var(--navy-700); border:1px solid var(--navy-500); border-radius:6px; z-index:9999; box-shadow:0 8px 24px rgba(0,0,0,.4); min-width:200px; max-height:260px; overflow:hidden; display:flex; flex-direction:column; }
.swb-dropdown input { background:var(--navy-800); border:none; border-bottom:1px solid var(--navy-600); color:var(--white); padding:8px 10px; font-size:12px; font-family:inherit; outline:none; }
.swb-dropdown input::placeholder { color:var(--slate-400); }
.swb-dropdown-list { overflow-y:auto; max-height:220px; }
.swb-dropdown-item { padding:6px 10px; cursor:pointer; font-size:12px; color:var(--slate-300); display:flex; justify-content:space-between; align-items:center; }
.swb-dropdown-item:hover { background:var(--navy-600); color:var(--white); }
.swb-dropdown-item.swb-ineligible { color:var(--slate-400); opacity:.5; cursor:not-allowed; }
.swb-dropdown-item .swb-item-count { font-size:10px; color:var(--slate-400); }
.swb-dropdown-remove { padding:6px 10px; cursor:pointer; font-size:11px; color:#ef4444; border-top:1px solid var(--navy-600); font-weight:600; }
.swb-dropdown-remove:hover { background:rgba(239,68,68,.1); }
.swb-legend { padding:8px 16px; font-size:10px; color:var(--slate-400); display:flex; gap:16px; border-top:1px solid var(--navy-700); }
.swb-legend span { display:flex; align-items:center; gap:4px; }
.swb-legend .swb-legend-swatch { width:12px; height:12px; border-radius:2px; display:inline-block; }

/* ---- IP Highlight on hover ---- */
.sked-line.highlighted { background:rgba(59,130,246,.08); outline:1px solid rgba(59,130,246,.3); outline-offset:-1px; }

/* ---- Personnel edit enhancements ---- */
.pr-org-tag { font-size:9px; padding:1px 5px; border-radius:4px; font-weight:600; }
.pr-org-tag.wing { background:rgba(168,85,247,.12); color:var(--purple); }
.pr-org-tag.fitu { background:rgba(6,182,212,.12); color:var(--teal); }
.pr-org-tag.reserve { background:rgba(245,158,11,.12); color:#f59e0b; }
.go-avail.editable { cursor:pointer !important; }
.go-cell { cursor:pointer; }
.go-avail.editable:hover { outline:2px solid var(--accent); outline-offset:1px; }
.hold-toggle { font-size:10px; padding:3px 8px; border-radius:4px; border:1px solid var(--navy-500); background:var(--navy-600); color:var(--slate-200); cursor:pointer; font-family:inherit; transition:var(--transition); }
.hold-toggle:hover { border-color:var(--accent); }

/* ---- Progression View ---- */
.prog-container { display:flex; height:100%; gap:0; }
.prog-flow-area { flex:1; overflow-x:auto; overflow-y:auto; padding:16px; background:var(--navy-900); }
.prog-toolbar { display:flex; align-items:center; gap:12px; padding:10px 16px; border-bottom:1px solid var(--navy-600); background:var(--navy-800); flex-shrink:0; }
.prog-toolbar select { background:var(--navy-700); border:1px solid var(--navy-600); color:var(--white); padding:5px 10px; border-radius:4px; font-size:11px; font-family:inherit; }
.prog-toolbar label { font-size:10px; font-weight:600; color:var(--slate-400); text-transform:uppercase; letter-spacing:.5px; }
.prog-toolbar .prog-toggle { font-size:11px; color:var(--slate-300); cursor:pointer; display:flex; align-items:center; gap:4px; }
.prog-toolbar .prog-toggle input { accent-color:var(--accent); }
.prog-flow { display:flex; gap:2px; min-width:max-content; align-items:flex-start; }
.prog-phase-col { min-width:180px; max-width:220px; background:var(--navy-800); border:1px solid var(--navy-600); border-radius:8px; flex-shrink:0; }
.prog-phase-header { padding:10px 12px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; border-bottom:1px solid var(--navy-600); display:flex; align-items:center; justify-content:space-between; cursor:pointer; user-select:none; }
.prog-phase-header .phase-count { font-size:10px; font-weight:500; color:var(--slate-400); }
.prog-phase-header.gs { color:#22c55e; }
.prog-phase-header.fam { color:#3b82f6; }
.prog-phase-header.inst { color:#06b6d4; }
.prog-phase-header.form { color:#a855f7; }
.prog-phase-header.cap { color:#f59e0b; }
.prog-phase-events { max-height:600px; overflow-y:auto; padding:6px; }
.prog-phase-events.collapsed { display:none; }
.prog-event { padding:6px 8px; border-radius:4px; margin-bottom:3px; cursor:pointer; border:1px solid transparent; transition:var(--transition); font-size:11px; display:flex; align-items:center; gap:6px; }
.prog-event:hover { background:var(--navy-700); border-color:var(--navy-500); }
.prog-event.selected { background:var(--navy-600); border-color:var(--accent); box-shadow:0 0 8px rgba(59,130,246,.3); }
.prog-event.gate { border-left:3px solid #f59e0b; }
.prog-event.check { border-left:3px solid #ef4444; }
.prog-event.solo { border-left:3px solid #22c55e; }
.prog-event.completed { opacity:.5; }
.prog-event.ignored { opacity:.4; background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(100,116,139,.08) 3px,rgba(100,116,139,.08) 6px); }
.prog-event.ignored .ev-code { text-decoration:line-through; }
.prog-event .ev-code { font-weight:600; color:var(--white); min-width:65px; }
.prog-event .ev-name { color:var(--slate-300); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prog-event .ev-type { font-size:9px; font-weight:600; padding:1px 4px; border-radius:3px; flex-shrink:0; }
.prog-event .ev-type.flight { background:rgba(59,130,246,.15); color:var(--accent); }
.prog-event .ev-type.sim { background:rgba(168,85,247,.15); color:var(--purple); }
.prog-event .ev-type.ground { background:rgba(34,197,94,.15); color:var(--green); }
.prog-event .ev-qual { font-size:8px; color:var(--slate-400); margin-left:auto; }
.prog-branch { display:flex; flex-direction:column; gap:2px; }
.prog-branch-label { font-size:9px; font-weight:600; color:var(--slate-400); text-transform:uppercase; padding:2px 8px; text-align:center; }
.prog-arrow { display:flex; align-items:center; color:var(--navy-500); font-size:16px; padding:0 4px; flex-shrink:0; align-self:center; }
.prog-detail { width:320px; border-left:1px solid var(--navy-600); background:var(--navy-800); flex-shrink:0; display:flex; flex-direction:column; overflow-y:auto; }
.prog-detail-header { padding:12px 14px; border-bottom:1px solid var(--navy-600); font-size:13px; font-weight:600; color:var(--white); display:flex; align-items:center; justify-content:space-between; }
.prog-detail-body { flex:1; overflow-y:auto; padding:12px 14px; }
.prog-detail-section { margin-bottom:16px; }
.prog-detail-section h4 { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--slate-400); margin-bottom:8px; }
.prog-field { margin-bottom:8px; }
.prog-field label { display:block; font-size:10px; font-weight:500; color:var(--slate-400); margin-bottom:2px; }
.prog-field .val { font-size:12px; color:var(--white); }
.prog-alert-card { background:rgba(245,158,11,.08); border:1px solid rgba(245,158,11,.3); border-radius:8px; padding:12px; margin-bottom:12px; }
.prog-alert-card .alert-title { font-size:12px; font-weight:600; color:#f59e0b; margin-bottom:4px; }
.prog-alert-card .alert-count { font-size:20px; font-weight:700; color:var(--white); }
.prog-alert-card .alert-sub { font-size:10px; color:var(--slate-400); margin-top:4px; }
.prog-alert-student { display:flex; align-items:center; justify-content:space-between; padding:6px 8px; background:var(--navy-700); border-radius:4px; margin-bottom:4px; font-size:11px; }
.prog-alert-student .stu-name { color:var(--white); font-weight:500; }
.prog-alert-student .stu-action { display:flex; gap:4px; }
.prog-alert-student .route-btn { font-size:9px; font-weight:600; padding:2px 8px; border-radius:4px; cursor:pointer; border:none; font-family:inherit; }
.prog-alert-student .route-btn.inst { background:rgba(6,182,212,.15); color:#06b6d4; }
.prog-alert-student .route-btn.form { background:rgba(168,85,247,.15); color:#a855f7; }
.prog-alert-student .route-btn:hover { opacity:.8; }
.prog-sim-controls { display:flex; gap:6px; margin-bottom:12px; }
.prog-sim-btn { padding:5px 12px; border-radius:4px; font-size:11px; font-weight:600; cursor:pointer; border:none; font-family:inherit; transition:var(--transition); }
.prog-sim-btn.primary { background:var(--accent); color:white; }
.prog-sim-btn.secondary { background:var(--navy-700); color:var(--slate-300); border:1px solid var(--navy-500); }
.prog-sim-btn:hover { opacity:.85; }
.prog-sim-btn:disabled { opacity:.4; cursor:not-allowed; }
.prog-progress-bar { height:6px; background:var(--navy-700); border-radius:3px; overflow:hidden; margin:8px 0; }
.prog-progress-fill { height:100%; border-radius:3px; transition:width .3s ease; }
.prog-route-col { margin-bottom:8px; }
.prog-route-header { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; padding:6px 8px; border-radius:4px 4px 0 0; display:flex; align-items:center; justify-content:space-between; }
.prog-route-header.unassigned { background:rgba(245,158,11,.1); color:#f59e0b; }
.prog-route-header.inst { background:rgba(6,182,212,.1); color:#06b6d4; }
.prog-route-header.form { background:rgba(168,85,247,.1); color:#a855f7; }
.prog-route-list { border:1px solid var(--navy-600); border-top:none; border-radius:0 0 4px 4px; max-height:200px; overflow-y:auto; }
.prog-route-item { display:flex; align-items:center; justify-content:space-between; padding:4px 8px; border-bottom:1px solid var(--navy-700); font-size:10px; }
.prog-route-item:last-child { border-bottom:none; }
.prog-route-item .ri-name { color:var(--white); font-weight:500; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prog-route-item .ri-pct { color:var(--slate-400); margin:0 6px; min-width:30px; text-align:right; }
.prog-route-item .ri-actions { display:flex; gap:2px; flex-shrink:0; }
.prog-route-item .ri-btn { font-size:8px; font-weight:700; padding:1px 5px; border-radius:3px; cursor:pointer; border:none; font-family:inherit; }
.prog-route-item .ri-btn.to-inst { background:rgba(6,182,212,.15); color:#06b6d4; }
.prog-route-item .ri-btn.to-form { background:rgba(168,85,247,.15); color:#a855f7; }
.prog-route-item .ri-btn.clear { background:rgba(239,68,68,.1); color:#ef4444; }
.prog-route-item .ri-btn:hover { opacity:.7; }

/* ---- Loading Indicator ---- */
.loading-overlay { display:none; position:fixed; inset:0; background:rgba(10,22,40,.7); z-index:9998; align-items:center; justify-content:center; backdrop-filter:blur(2px); }
.loading-overlay.active { display:flex; }
.loading-spinner { display:flex; flex-direction:column; align-items:center; gap:12px; }
.loading-spinner .spinner { width:36px; height:36px; border:3px solid var(--navy-600); border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.loading-spinner .loading-text { font-size:12px; color:var(--slate-300); }
.go-slot.search-match { outline:2px solid var(--accent); outline-offset:-2px; border-radius:var(--radius-sm); z-index:2; position:relative; }
.go-slot.search-match .ip-span-header { background:rgba(59,130,246,0.15); }
.go-slot.search-match .student-sub-card { background:rgba(59,130,246,0.1); }
.go-slot.search-dim { opacity:0.3; }

/* -- Presence Bar -- */
.presence-bar{display:flex;align-items:center;gap:8px;padding:4px 12px;background:var(--navy-900);border-bottom:1px solid var(--navy-700);font-size:11px;color:var(--slate-400);min-height:28px;}
.presence-bar .presence-label{font-weight:600;color:var(--slate-300);white-space:nowrap;}
.presence-bar .presence-chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.presence-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:600;color:#fff;animation:chipIn .3s ease;}
.presence-chip .chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 2s infinite;}
@keyframes chipIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
.presence-bar .presence-none{color:var(--slate-500);font-style:italic;}
.go-slot.presence-cursor { box-shadow:inset 0 0 0 2px var(--cursor-color, #3b82f6); position:relative; z-index:2; }
.go-slot.presence-cursor::after { content:attr(data-cursor-user); position:absolute; top:-14px; left:2px; font-size:8px; padding:0 4px; border-radius:2px; color:white; background:var(--cursor-color, #3b82f6); white-space:nowrap; z-index:10; pointer-events:none; }
