:root { --fc-line:#2b303a; --fc-panel:#15181f; --fc-muted:#8490a0; }

/* Keep native menus readable and consistent with the dark application UI. */
select, select option { color-scheme:dark; }
select option { color:#e6eaf0; background-color:#20242c; }
#appToast { position:fixed!important; right:20px!important; bottom:76px!important; z-index:100000!important; max-width:min(420px,calc(100vw - 40px)); }

.rating-badge { border:1px solid currentColor; }
.rating-badge[data-rating="S0"] { color:#475569!important; background:#47556922!important; }
.rating-badge[data-rating="S1"] { color:#1D4ED8!important; background:#1D4ED822!important; }
.rating-badge[data-rating="S2"] { color:#22C55E!important; background:#22C55E22!important; }
.rating-badge[data-rating="S3"] { color:#6D28D9!important; background:#6D28D922!important; }
.rating-badge[data-rating="C1"] { color:#B91C1C!important; background:#B91C1C22!important; }
.rating-badge[data-rating="C3"] { color:#9F1239!important; background:#9F123922!important; }
.rating-badge[data-rating="I1"] { color:#0E7490!important; background:#0E749022!important; }
.rating-badge[data-rating="I3"] { color:#6B21A8!important; background:#6B21A822!important; }
.rating-badge[data-rating="SUP"] { color:#A16207!important; background:#A1620722!important; }
.rating-badge[data-rating="ADM"] { color:#7F1D1D!important; background:#7F1D1D22!important; }


.catalog-live-note,.utc-pill { display:inline-flex; align-items:center; gap:7px; border:1px solid #255c47; background:#11241e; color:#72d2a6; padding:7px 10px; border-radius:999px; font-size:11px; font-weight:700; }
.catalog-live-note i { font-size:7px; }
.catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.catalog-card { min-width:0; overflow:hidden; border:1px solid var(--border-color); border-radius:14px; background:var(--card-bg); box-shadow:0 8px 24px #0002; }
.catalog-card-preview { height:180px; background:#0d0e12; border-bottom:1px solid var(--border-color); }
.catalog-card-preview svg { width:100%; height:100%; }
.catalog-card-body { padding:16px; }
.catalog-card-body h2 { margin:9px 0 4px; font-size:17px; color:#f8fafc; }
.catalog-card-body p { margin:0; color:#9aa4b2; font-size:12px; }
.catalog-card-meta { display:flex; gap:12px; margin-top:12px; color:#758092; font-size:11px; }
.catalog-card-actions { display:flex; gap:8px; margin-top:15px; }
.catalog-card-actions button { padding:7px 12px; }
.catalog-empty { grid-column:1/-1; text-align:center; padding:76px 18px; border:1px dashed #363c47; border-radius:16px; color:#8490a0; }
.catalog-empty i { font-size:34px; margin-bottom:14px; }
.catalog-empty h2 { font-size:18px; color:#d8dee8; margin:0 0 8px; }
.catalog-empty p { font-size:12px; }
.qs-status { display:inline-flex; align-items:center; vertical-align:middle; margin-left:8px; padding:3px 8px; border-radius:999px; font-size:9px; line-height:1.4; font-weight:700; white-space:nowrap; }
.qs-status-live { color:#82ddb1; border:1px solid #28714f; background:#11271d; }
.qs-status-draft { color:#f4c36a; border:1px solid #805b20; background:#2b2110; }
.qs-card-publish { color:#93c5fd; background:#14243b; border:1px solid #294c7d; border-radius:7px; padding:5px 8px; font-size:10px; cursor:pointer; }
.qs-card-publish:hover { background:#1b3558; }
.publish-button { display:inline-flex; gap:7px; align-items:center; padding:8px 11px; border:1px solid #256c4d; border-radius:8px; color:#a7f3d0; background:#123024; font-size:12px; font-weight:700; white-space:nowrap; cursor:pointer; }
.publish-button:hover { background:#194332; }
.publish-state-label { max-width:190px; color:#8a95a5; font-size:9px; line-height:1.3; }
.published-preview-canvas { width:100%; max-height:58vh; aspect-ratio:14/9; background:#0d0e12; border:1px solid var(--border-color); border-radius:10px; overflow:hidden; }
.published-preview-canvas svg { width:100%; height:100%; }
.published-preview-info { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:12px; color:#9aa4b2; font-size:11px; }
.assignment-list { list-style:none; padding:0; display:grid; gap:7px; }
.assignment-list li { border:1px solid var(--border-color); background:#11141a; border-radius:7px; padding:9px 11px; }

.calendar-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:16px; flex-wrap:wrap; }
.calendar-nav,.calendar-view-switch { display:flex; align-items:center; gap:7px; }
.calendar-nav button,.calendar-view-switch button { color:#c4ccd7; background:#191c23; border:1px solid #303540; border-radius:7px; padding:7px 10px; font-size:11px; cursor:pointer; }
.calendar-nav button:hover,.calendar-view-switch button:hover { background:#222733; }
.calendar-view-switch button.active { color:#bfdbfe; border-color:#2563eb; background:#14284b; }
#calendarRangeLabel { min-width:170px; text-align:center; color:#e7ebf1; font-size:12px; }
.utc-pill { padding:6px 9px; color:#93c5fd; background:#13243d; border-color:#294a79; }
#calendarRoot { display:flex; flex-direction:column; gap:14px; min-height:100%; }
.calendar-time-grid { --hour-height:48px; display:grid; grid-template-columns:58px repeat(var(--calendar-days),minmax(115px,1fr)); grid-template-rows:42px auto; min-width:850px; border-top:1px solid var(--fc-line); border-left:1px solid var(--fc-line); background:#12151b; }
#calendarRoot:has(.calendar-time-grid) { overflow:auto; }
.calendar-time-corner { grid-column:1; grid-row:1; border-right:1px solid var(--fc-line); border-bottom:1px solid var(--fc-line); }
.calendar-day-heading { display:flex; justify-content:center; align-items:center; gap:8px; border-right:1px solid var(--fc-line); border-bottom:1px solid var(--fc-line); color:#c7ced8; font-size:11px; }
.calendar-day-heading span { color:#808b9a; }
.calendar-day-heading.today strong { color:#60a5fa; }
.calendar-time-labels { grid-column:1; grid-row:2; height:1152px; display:grid; grid-template-rows:repeat(24,var(--hour-height)); border-right:1px solid var(--fc-line); }
.calendar-time-labels span { position:relative; top:-7px; padding-right:7px; text-align:right; color:#798494; font-size:9px; }
.calendar-day-column { position:relative; grid-row:2; height:1152px; overflow:hidden; border-right:1px solid var(--fc-line); background:#15181e; }
.calendar-hour-lines { position:absolute; inset:0; background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) - 1px),#2b303a calc(var(--hour-height) - 1px),#2b303a var(--hour-height)); pointer-events:none; }
.calendar-positioned-event { position:absolute; left:3px; right:3px; z-index:1; overflow:hidden; }
.calendar-event { display:flex; height:100%; overflow:hidden; border:1px solid #285d9c; border-left:3px solid #60a5fa; border-radius:6px; background:#173459; color:#e8f2ff; box-shadow:0 2px 6px #0004; }
.calendar-event-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; padding:6px 7px; overflow:hidden; color:inherit; text-align:left; background:transparent; border:0; cursor:pointer; }
.calendar-event-main strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.calendar-event-main span { color:#a8c9ef; font-size:9px; }
.calendar-event-signup { width:28px; flex:none; align-self:stretch; border:0; border-left:1px solid #ffffff1a; color:#bfdbfe; background:#ffffff09; cursor:pointer; }
.calendar-event-signup:hover { background:#ffffff1a; }
.calendar-month-grid { display:grid; grid-template-columns:repeat(7,minmax(95px,1fr)); grid-auto-rows:minmax(112px,1fr); min-width:750px; border-top:1px solid var(--fc-line); border-left:1px solid var(--fc-line); background:#13161c; }
#calendarRoot:has(.calendar-month-grid) { overflow:auto; }
.calendar-month-weekday { position:sticky; top:0; z-index:3; padding:9px 12px; border-right:1px solid var(--fc-line); border-bottom:1px solid var(--fc-line); color:#8f9aaa; background:#171a21; font-size:10px; font-weight:700; }
.calendar-month-day { min-width:0; padding:6px; border-right:1px solid var(--fc-line); border-bottom:1px solid var(--fc-line); }
.calendar-month-day.outside { background:#101217; }
.calendar-month-day.outside .calendar-day-number { color:#5c6572; }
.calendar-month-day.today { box-shadow:inset 0 0 0 1px #3b82f6; }
.calendar-day-number { width:25px; height:25px; margin-bottom:4px; border:0; border-radius:50%; color:#cbd5e1; background:transparent; font-size:11px; cursor:pointer; }
.calendar-day-number:hover { background:#26364d; }
.calendar-month-event { display:block; width:100%; overflow:hidden; margin:3px 0; padding:4px 6px; color:#dbeafe; background:#18365b; border:0; border-left:2px solid #60a5fa; border-radius:4px; font-size:9px; text-align:left; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; }
.calendar-month-event time { color:#9ec5f3; font-weight:700; }
.calendar-corrections { display:grid; gap:7px; padding:12px; border:1px solid #76581c; border-radius:10px; background:#211b10; }
.calendar-corrections > div:first-child { display:flex; justify-content:space-between; gap:10px; color:#f5d58a; font-size:11px; }
.calendar-corrections > div:first-child span { color:#b7a47a; }
.calendar-correction { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid #47391f; border-radius:7px; }
.calendar-correction div { display:flex; flex-direction:column; gap:3px; }
.calendar-correction strong { color:#e9e1cf; font-size:11px; }
.calendar-correction span { color:#aaa08d; font-size:10px; }
.calendar-correction button { color:#f5d58a; background:#372b14; border:1px solid #745c2b; border-radius:6px; padding:6px 9px; font-size:10px; cursor:pointer; }

.event-time-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.event-time-grid input { color:#dbeafe; color-scheme:dark; }
.event-time-help { margin-top:7px; color:#7f8b9a; font-size:10px; }
.event-time-review-note { margin-top:8px; padding:8px 10px; border:1px solid #76581c; border-radius:7px; color:#f2d18a; background:#211b10; font-size:11px; }

.sim-post-tabs { margin:0 0 16px; border:1px solid var(--border-color); border-radius:10px; overflow:hidden; background:#14171d; }
.sim-tab-buttons { display:flex; gap:4px; padding:5px; border-bottom:1px solid var(--border-color); background:#11141a; }
.sim-tab-buttons button { padding:8px 12px; color:#a0aaba; background:transparent; border:1px solid transparent; border-radius:7px; font-size:11px; cursor:pointer; }
.sim-tab-buttons button.active { color:#dbeafe; border-color:#34527a; background:#182b45; }
.sim-tab-panel { display:none; padding:12px; }
.sim-tab-panel.active { display:block; }
.sim-tab-panel .form-group { margin:0; }
.sim-tab-hint { margin:0 0 9px; color:#8a95a5; font-size:11px; }
.sim-quicksheet-picker { display:grid; gap:7px; }
.sim-sheet-choice { display:flex; align-items:center; gap:10px; padding:9px 10px; border:1px solid #303641; border-radius:8px; background:#171a21; cursor:pointer; }
.sim-sheet-choice:hover { border-color:#456080; }
.sim-sheet-choice input { width:16px; height:16px; accent-color:#3b82f6; }
.sim-sheet-choice > span { display:flex; flex:1; flex-direction:column; gap:3px; min-width:0; }
.sim-sheet-choice strong { color:#e4e9ef; font-size:11px; }
.sim-sheet-choice small { overflow:hidden; color:#8692a2; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.sim-sheet-preview { color:#93c5fd; background:#15243a; border:1px solid #294668; border-radius:6px; padding:5px 8px; font-size:9px; cursor:pointer; }
.sim-sheet-empty { padding:16px 10px; color:#858f9d; border:1px dashed #3a414d; border-radius:8px; font-size:11px; text-align:center; }
.sim-link-modal-content { max-width:620px; }
.sim-link-modal-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; }
.sim-link-modal-head h3 { color:#fff; font-size:16px; }
.sim-link-modal-head p { margin-top:4px; color:#8994a3; font-size:10px; }
.sim-link-modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.sim-link-modal-actions button { padding:8px 12px; }
.sim-quicksheets-button { white-space:nowrap; }
.user-rating-select { max-width:110px; padding:6px!important; }
.fc-language-control { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; padding:7px 8px; color:#8490a0; background:#101217; border:1px solid var(--border-color); border-radius:8px; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.fc-language-options { display:flex; gap:4px; padding:3px; background:#101217; border:1px solid #292e38; border-radius:7px; }
.fc-language-options button { min-width:34px; padding:5px 7px; color:#8994a3; background:transparent; border:0; border-radius:5px; font:inherit; letter-spacing:0; cursor:pointer; }
.fc-language-options button:hover { color:#e7edf6; background:#222733; }
.fc-language-options button.active { color:#dcecff; background:#1d3551; box-shadow:inset 0 0 0 1px #355678; }
.fc-language-options button:focus-visible { outline:2px solid #60a5fa; outline-offset:2px; }
#localPreviewBanner { position:fixed; z-index:200; right:12px; bottom:12px; display:flex; align-items:center; gap:8px; padding:8px 13px; color:#bfdbfe; background:#112642ee; border:1px solid #32659d; border-radius:999px; box-shadow:0 6px 20px #0006; font-size:10px; font-weight:700; pointer-events:none; white-space:nowrap; }

@media (max-width:1050px) {
  .calendar-toolbar { justify-content:flex-start; }
  .calendar-time-grid { grid-template-columns:48px repeat(var(--calendar-days),minmax(150px,1fr)); }
  .event-time-grid { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  #calendarRangeLabel { min-width:130px; }
  .calendar-corrections > div:first-child { flex-direction:column; }
  #localPreviewBanner { left:8px; right:8px; justify-content:center; white-space:normal; }
  .catalog-grid { grid-template-columns:1fr; }
}

/* Access controls and the shared resource library */
.fc-brand-mark,.fc-sidebar-mark { display:inline-flex; width:28px; height:28px; flex:0 0 28px; margin-right:9px; vertical-align:middle; }
.fc-brand-mark svg,.fc-sidebar-mark svg { display:block; width:100%; height:100%; }
.fc-sidebar-mark { width:23px; height:23px; flex-basis:23px; margin-right:9px; }
.auth-title { display:flex; align-items:center; justify-content:center; gap:4px; }
.sidebar-brand { gap:0; }
.fc-vatsim-login { width:100%; margin-top:10px; padding:10px 12px; display:flex; align-items:center; justify-content:center; gap:9px; color:#8c98aa; background:#151a24; border:1px solid #303a4b; border-radius:8px; font-size:12px; font-weight:700; cursor:not-allowed; }
.fc-vatsim-login:disabled { opacity:.72; }
.fc-vatsim-dot { width:9px; height:9px; border-radius:50%; background:#58a5e8; box-shadow:0 0 10px #58a5e844; }
.fc-vatsim-lock { margin-left:auto; font-size:10px; }
.fc-vatsim-status { margin:8px 0 0; color:#758196; font-size:10px; line-height:1.5; }
.fc-repo-filters { display:flex; align-items:center; gap:10px; margin-left:auto; }
.fc-search-wrap { width:min(240px,25vw); min-width:145px; display:flex; align-items:center; gap:8px; padding:0 11px; color:#798597; background:#15181e; border:1px solid #2b3038; border-radius:8px; }
.fc-search-wrap input,.fc-software-toolbar input { width:100%; min-width:0; padding:9px 0; color:#e7edf6; background:transparent; border:0; outline:0; font-size:12px; }
.fc-template-filter { display:flex; align-items:center; gap:7px; padding:8px 10px; color:#a9caff; background:#142137; border:1px solid #30496b; border-radius:8px; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap; }
.fc-template-filter input { appearance:none; flex:none; width:16px; height:16px; margin:0; border:1px solid #657184; border-radius:4px; background:#242b36; cursor:pointer; }
.fc-template-filter input:checked { border-color:#94a3b8; background:#64748b; }
.fc-template-filter input:checked::after { content:""; display:block; width:4px; height:8px; margin:1px 0 0 5px; border:solid #f8fafc; border-width:0 2px 2px 0; transform:rotate(45deg); }
.fc-template-filter input:focus-visible { outline:2px solid #93c5fd; outline-offset:2px; }
.tag.funksim { color:#a5f3fc!important; background:#164e63!important; border-color:#0e7490!important; }
.tag.template { color:#c4b5fd!important; background:#312e81!important; border-color:#6d5bd0!important; }
.fc-created-by { display:flex; align-items:center; gap:5px; margin:7px 0 9px; color:#8490a0; font-size:10px; }
.fc-created-by strong { color:#cbd5e1; font-weight:700; }
.fc-empty-state { grid-column:1/-1; padding:24px; color:#8490a0; text-align:center; background:#15181e; border:1px dashed #343a45; border-radius:12px; font-size:12px; }
.fc-readonly-card { cursor:pointer; }
.fc-grant-access { padding:7px 12px; color:#d6f1ff; background:#176b91; border:1px solid #2997c3; border-radius:7px; font-size:11px; font-weight:800; cursor:pointer; }
.fc-grant-access:hover { background:#1b7da7; }
.fc-access-modal .modal-content { max-width:560px; }
.fc-access-section-title { grid-column:1/-1; margin:9px 0 2px; padding-bottom:6px; color:#91c5fd; border-bottom:1px solid #2f3948; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.fc-access-option { display:flex; align-items:center; gap:9px; min-height:34px; padding:6px 8px; color:#d7dce4; background:#151920; border:1px solid #29303a; border-radius:7px; font-size:12px; cursor:pointer; }
.fc-access-option input { width:15px; height:15px; accent-color:#38bdf8; }
#smdAccessList { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px!important; max-height:350px!important; }
.fc-event-display-mode { display:flex; gap:3px; padding:3px; background:#15181e; border:1px solid #2b3038; border-radius:8px; }
.fc-event-display-mode button { padding:6px 9px; color:#929bab; background:transparent; border:0; border-radius:6px; font-size:10px; font-weight:700; cursor:pointer; white-space:nowrap; }
.fc-event-display-mode button.active { color:#dbeafe; background:#22344c; }
.fc-event-card { min-width:0; }
.fc-event-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:8px; }
.fc-event-date { margin-top:5px; color:#84b8ff; font-family:monospace; font-size:11px; }
.fc-event-count { padding:4px 7px; color:#bfdbfe; background:#172a43; border-radius:999px; font-size:9px; white-space:nowrap; }
.fc-event-positions { display:flex; flex-wrap:wrap; gap:5px; margin:11px 0 6px; padding:10px; background:#11141a; border:1px solid #292e38; border-radius:8px; }
.fc-muted { color:#758195; font-size:11px; }
.fc-signup-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; }
.fc-station-name { color:#eef2f7; font-family:monospace; font-weight:800; }
.fc-locked-label { color:#fb7185; font-size:11px; font-weight:700; }
.fc-staffed-label { color:#dbeafe; font-size:12px; font-weight:700; }
.fc-software-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.fc-software-toolbar>div { display:flex; align-items:center; gap:8px; }
.fc-software-toolbar input,.fc-software-toolbar select { width:210px; padding:9px 11px; color:#e6eaf0; background:#171a20; border:1px solid #2d333d; border-radius:8px; font-size:11px; }
.fc-software-toolbar input { padding:9px 11px; }
.fc-software-toolbar select { width:150px; }
.fc-software-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(275px,1fr)); gap:14px; }
.fc-software-card { display:flex; flex-direction:column; min-height:260px; padding:17px; background:#171a20; border:1px solid #292e38; border-radius:12px; box-shadow:0 8px 20px #0002; }
.fc-software-card-head { display:flex; align-items:center; gap:12px; }
.fc-software-icon { display:grid; width:40px; height:40px; place-items:center; color:#9bdcff; background:#12304a; border:1px solid #23506f; border-radius:11px; font-size:17px; }
.fc-software-family { margin-bottom:3px; color:#8290a4; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.fc-software-card h2 { color:#f0f4f9; font-size:14px; }
.fc-software-tags { display:flex; gap:6px; margin:13px 0 9px; }
.fc-software-tag { padding:4px 7px; color:#a5d8f8; background:#152b3a; border:1px solid #264459; border-radius:999px; font-size:9px; }
.fc-software-instructions { min-height:52px; color:#a0a9b6; font-size:11px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.fc-software-meta { display:flex; justify-content:space-between; gap:10px; margin-top:auto; padding:12px 0 9px; color:#758195; font-size:9px; }
.fc-software-meta span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-software-actions { display:flex; gap:8px; }
.fc-software-actions .btn-download-glow { flex:1; padding:8px 10px; font-size:11px; }
.fc-modal-overlay { z-index:80; }
.fc-profile-clickable { cursor:pointer; border-radius:7px; transition:background .16s,box-shadow .16s; }
.fc-profile-clickable:hover,.fc-profile-clickable:focus-visible { background:#1a202a; box-shadow:0 0 0 5px #1a202a; outline:none; }
.fc-profile-trigger { width:100%; margin:8px 0 2px; padding:7px 9px; color:#b8c9df; background:#151a22; border:1px solid #2b3442; border-radius:7px; font-size:10px; font-weight:700; cursor:pointer; }
.fc-profile-trigger:hover { color:#e4efff; border-color:#456183; background:#1b2635; }
.fc-profile-overlay { position:fixed; inset:0; z-index:1300; display:flex; align-items:center; justify-content:center; padding:16px; background:#06080ddd; backdrop-filter:blur(5px); }
.fc-profile-modal { width:min(480px,calc(100vw - 28px)); max-height:92vh; overflow:auto; padding:22px; color:#e6eaf0; background:radial-gradient(ellipse at top,#1b2533 0%,#171a20 55%,#13161b 100%); border:1px solid #354252; border-radius:14px; box-shadow:0 25px 75px #000c; }
.fc-profile-modal>header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.fc-profile-modal h2 { color:#fff; font-size:17px; }
.fc-profile-modal h3 { margin:0 0 12px; color:#dce7f5; font-size:13px; }
.fc-profile-modal header p { margin-top:5px; color:#8c98a9; font-size:10px; }
.fc-profile-field { display:grid; gap:6px; margin:12px 0; }
.fc-profile-field label { color:#b5c0ce; font-size:10px; font-weight:800; }
.fc-profile-field input { width:100%; padding:9px 10px; color:#e6eaf0; background:#11151c; border:1px solid #323c49; border-radius:7px; font-size:12px; }
.fc-profile-field input:focus { border-color:#5285c4; outline:2px solid #28507b66; }
.fc-profile-field input[readonly] { color:#8995a5; background:#171b22; }
.fc-profile-field small { color:#7f8b9b; font-size:9px; line-height:1.5; }
.fc-profile-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:12px; }
.fc-profile-divider { height:1px; margin:17px 0; background:#2b323d; }
.fc-profile-status { min-height:18px; margin:7px 0 2px; color:#9fc8ff; font-size:10px; line-height:1.5; }
.fc-profile-status[data-type="error"] { color:#fda4af; }
.fc-profile-status[data-type="success"] { color:#86efac; }
.fc-user-login { display:block; margin-top:2px; color:#788596; font-size:9px; font-weight:500; }
.fc-software-modal,.fc-wheel-modal { width:min(620px,calc(100vw - 28px)); max-height:90vh; overflow:auto; }
.fc-software-modal header,.fc-wheel-modal header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.fc-software-modal h2,.fc-wheel-modal h2 { color:#fff; font-size:16px; }
.fc-software-modal header p,.fc-wheel-modal header p { margin-top:4px; color:#8490a0; font-size:10px; }
.fc-software-modal form { display:grid; gap:12px; }
.fc-software-modal label { display:grid; gap:6px; color:#aeb8c6; font-size:10px; font-weight:700; }
.fc-software-modal input,.fc-software-modal select,.fc-software-modal textarea { width:100%; padding:9px 10px; color:#e6eaf0; background:#13161c; border:1px solid #323945; border-radius:7px; font-size:11px; }
.fc-software-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fc-modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
#softwareUploadStatus { min-height:16px; color:#9ecbff; font-size:10px; }
.fc-stats-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.fc-stat-summary-card { display:flex; flex-direction:column; gap:8px; padding:13px 16px; background:#171a20; border:1px solid #292e38; border-radius:10px; }
.fc-stat-summary-card span { color:#8a95a5; font-size:10px; }
.fc-stat-summary-card strong { color:#f5f7fb; font-size:22px; }
.fc-stats-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; }
.fc-stat-card { padding:15px; background:#171a20; border:1px solid #292e38; border-radius:11px; }
.fc-stat-top { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.fc-stat-top h2 { margin-bottom:6px; color:#f1f5f9; font-size:14px; }
.fc-stat-top .rating-badge { display:inline-flex; padding:2px 6px; border:1px solid; border-radius:999px; font-size:9px; font-weight:800; }
.fc-stat-events { color:#91a0b4; font-size:10px; }
.fc-stat-metrics { display:flex; gap:26px; margin:16px 0 11px; }
.fc-stat-metrics div { display:grid; gap:3px; }
.fc-stat-metrics strong { color:#f5f7fb; font-size:19px; }
.fc-stat-metrics span { color:#8290a3; font-size:9px; }
.fc-stat-bar { height:5px; overflow:hidden; background:#252a33; border-radius:99px; }
.fc-stat-bar span { display:block; height:100%; border-radius:99px; }
.fc-stat-positions { display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
.fc-stat-positions span { padding:4px 6px; color:#b8c3d2; background:#20242c; border-radius:6px; font-size:9px; }
.fc-stat-positions b { margin-left:4px; color:#e6efff; }
.btn-event-wheel { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; color:#f4dfaa; background:#362d1a; border:1px solid #806b37; border-radius:7px; font-size:10px; font-weight:800; cursor:pointer; transition:background .18s,border-color .18s,transform .18s; }
.btn-event-wheel:hover:not(:disabled) { background:#4a3c20; border-color:#d2ad59; transform:translateY(-1px); }
.btn-event-wheel:disabled { opacity:.42; cursor:not-allowed; }
#eventWheelModal.fc-event-wheel-overlay { z-index:1200!important; }
.fc-event-wheel-modal { width:min(920px,calc(100vw - 30px)); max-height:92vh; overflow:auto; padding:24px; border:1px solid #33445a; background:radial-gradient(ellipse at top,#1b2a3c 0%,#17191f 52%,#121419 100%); box-shadow:0 28px 90px #000c; }
.fc-event-wheel-modal>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.fc-event-wheel-modal h2 { margin:3px 0 5px; color:#fff; font-size:21px; }
.fc-event-wheel-modal header p { color:#9eafc4; font-size:11px; }
.fc-wheel-kicker { color:#d5b86b; font-size:9px; font-weight:900; letter-spacing:.18em; }
.fc-event-wheel-content { display:grid; grid-template-columns:minmax(280px,1.1fr) minmax(270px,.9fr); align-items:center; gap:28px; }
.fc-wheel-stage { position:relative; width:min(100%,460px); aspect-ratio:1; margin:auto; padding:16px; border:1px solid #435a73; border-radius:50%; background:radial-gradient(circle,#293b51 0%,#191a1d 66%); box-shadow:0 0 0 6px #111319,0 0 0 7px #344a63,0 14px 40px #0009; }
.fc-wheel-pointer { position:absolute; z-index:4; top:-4px; left:50%; transform:translateX(-50%); color:#f0cc6a; font-size:36px; line-height:1; filter:drop-shadow(0 3px 4px #000b); }
.fc-wheel-disc { position:relative; width:100%; height:100%; overflow:hidden; border-radius:50%; transform:rotate(0deg); }
.fc-wheel-disc canvas { display:block; width:100%; height:100%; }
.fc-wheel-hub { position:absolute; top:50%; left:50%; display:grid; width:20%; aspect-ratio:1; place-items:center; transform:translate(-50%,-50%); border:4px solid #e3c56f; border-radius:50%; color:#f5dfa0; background:radial-gradient(circle at 35% 30%,#55452a,#1b1d22 75%); box-shadow:0 0 0 5px #111319,0 5px 14px #000b; font-size:clamp(11px,2vw,18px); font-weight:1000; letter-spacing:.08em; }
.fc-wheel-side { min-width:0; }
.fc-wheel-participants { display:flex; flex-wrap:wrap; align-items:center; gap:7px; max-height:190px; overflow:auto; margin:0 0 12px; padding:12px; background:#11141a; border:1px solid #303640; border-radius:10px; }
.fc-wheel-participants>strong { width:100%; margin-bottom:3px; color:#d8dee8; font-size:11px; }
.fc-wheel-participants label { display:flex; align-items:center; gap:6px; padding:5px 8px; color:#c1c9d4; background:#1b2028; border:1px solid #303845; border-radius:6px; font-size:10px; }
.fc-wheel-participants input { accent-color:#d1b05a; }
.fc-wheel-empty { width:100%; color:#9ca6b3; font-size:10px; }
.fc-wheel-status { min-height:36px; margin:9px 2px; color:#9ba6b5; font-size:11px; line-height:1.5; }
.fc-wheel-result { margin:12px 0; padding:12px; color:#f6e3aa; background:#382d17; border:1px solid #a3843c; border-radius:9px; font-size:13px; font-weight:800; line-height:1.5; }
.fc-event-wheel-modal .fc-modal-actions { flex-wrap:wrap; }
.btn-wheel-spin { display:inline-flex; align-items:center; gap:7px; padding:9px 14px; color:#1a1b1d; background:linear-gradient(135deg,#f0d37b,#b98935); border:1px solid #f0d37b; border-radius:8px; font-size:11px; font-weight:900; cursor:pointer; box-shadow:0 5px 15px #c3923633; }
.btn-wheel-spin:hover:not(:disabled) { filter:brightness(1.08); transform:translateY(-1px); }
.btn-wheel-spin:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width:700px) { .fc-event-wheel-content { grid-template-columns:1fr; gap:20px; } .fc-wheel-stage { width:min(100%,370px); } .fc-event-wheel-modal { padding:18px; } }

@media (max-width:1050px) {
  #viewRepo header { flex-wrap:wrap; }
  .fc-repo-filters { order:3; width:100%; margin-left:0; }
  .fc-event-display-mode button { padding:6px; }
}
@media (max-width:700px) {
  .fc-search-wrap { width:100%; }
  .fc-repo-filters { flex-wrap:wrap; }
  .fc-software-toolbar,.fc-software-toolbar>div { align-items:stretch; flex-direction:column; }
  .fc-software-toolbar input,.fc-software-toolbar select { width:100%; }
  .fc-stats-summary { grid-template-columns:1fr; }
  #smdAccessList { grid-template-columns:1fr; }
  .fc-event-display-mode { order:2; }
  .fc-software-form-grid { grid-template-columns:1fr; }
}

/* Operations hotfix refinements */
#viewSoftware>header { flex-wrap:wrap; align-items:center; gap:14px; }
#softwareToolbar.fc-software-toolbar { margin:0 0 0 auto; flex:1 1 520px; justify-content:flex-end; }
#softwareToolbar.fc-software-toolbar>div { flex:1 1 300px; justify-content:flex-end; }
#softwareToolbar.fc-software-toolbar input { width:min(260px,30vw); }
#softwareToolbar.fc-software-toolbar select { width:170px; }
.fc-software-actions [data-software-edit],.fc-software-actions [data-software-delete] { flex:none; min-width:36px; }
.fc-grant-access { color:#fff; background:#343943; border:1px solid #4b515d; box-shadow:none; }
.fc-grant-access:hover { background:#414752; border-color:#626a78; }
.fc-access-option input { appearance:none; flex:none; width:16px; height:16px; margin:0; border:1px solid #596170; border-radius:4px; background:#252a33; cursor:pointer; }
.fc-access-option input:checked { border-color:#8a94a3; background:#667080; }
.fc-access-option input:checked::after { content:""; display:block; width:4px; height:8px; margin:1px 0 0 5px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.user-rating-select { color:#e6eaf0!important; background:#171a20!important; border-color:#343a45!important; }
.user-rating-select option { color:#e6eaf0; background:#171a20; }
.fc-event-wheel-launcher { display:grid; flex:none; width:38px; height:36px; place-items:center; margin-left:7px; color:#fff; background:#41464f; border:1px solid #5a616c; border-radius:8px; font-size:15px; cursor:pointer; box-shadow:none; }
.fc-event-wheel-launcher:hover { background:#4c535e; border-color:#707987; }
.fc-event-wheel-launcher[hidden] { display:none!important; }
.fc-wheel-picker { width:min(430px,calc(100vw - 28px)); padding:20px; }
.fc-wheel-picker header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.fc-wheel-picker h2 { color:#fff; font-size:16px; }
.fc-wheel-picker header p { margin-top:4px; color:#8a96a7; font-size:10px; }
.fc-wheel-picker label { display:grid; gap:6px; margin:11px 0; color:#aeb8c6; font-size:10px; font-weight:700; }
.fc-wheel-picker select { width:100%; padding:9px 10px; color:#e6eaf0; background:#13161c; border:1px solid #323945; border-radius:7px; font-size:11px; }
.fc-sheet-create { color:#e7eaf0; background:#343943; border:1px solid #4b515d; box-shadow:none; }
.fc-sheet-create:hover { background:#414752; border-color:#626a78; }
.qs-card-publish { color:#e6f2ff; background:#245b91; border:1px solid #3578b6; border-radius:7px; padding:6px 9px; font-size:10px; font-weight:700; cursor:pointer; }
.qs-card-publish:hover { background:#2c6ca8; }
.qs-card-publish.is-published { color:#d9f0ff; background:#173d64; border-color:#64b8ef; box-shadow:0 0 10px #60bdf044; }
.qs-card-publish.is-published:hover { background:#20517d; box-shadow:0 0 14px #60bdf066; }
.fc-stat-bar span { background-repeat:no-repeat; background-position:left center; }
.sim-link-modal-content { max-width:700px; }
.assigned-sheet-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px; background:#171a20; border:1px solid #2d333d; border-radius:9px; }
.assigned-sheet-info { display:grid; gap:4px; min-width:0; }
.assigned-sheet-info strong { color:#e9edf4; font-size:12px; }
.assigned-sheet-info span { color:#8490a0; font-size:10px; }
.assigned-sheet-actions { display:flex; flex:none; gap:7px; }
.assigned-sheet-actions button { padding:7px 10px; font-size:10px; }
.sim-link-modal-actions { display:flex; justify-content:flex-end; margin-top:14px; }
#saveStatus { margin-left:4px; }
@media (max-width:1050px) {
  #viewSoftware>header { align-items:flex-start; }
  #softwareToolbar.fc-software-toolbar { width:100%; margin:0; justify-content:flex-start; }
  #softwareToolbar.fc-software-toolbar>div { justify-content:flex-start; }
}
@media (max-width:700px) {
  #softwareToolbar.fc-software-toolbar>div { width:100%; }
  #softwareToolbar.fc-software-toolbar input,#softwareToolbar.fc-software-toolbar select { width:100%; }
  #softwareToolbar.fc-software-toolbar { align-items:stretch; flex-direction:column; }
  .assigned-sheet-row { align-items:stretch; flex-direction:column; }
  .assigned-sheet-actions { justify-content:flex-end; }
}


/* Shared page heading treatment */
.fc-page-header { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.fc-page-header > div:first-child { min-width:0; }
.fc-page-header h1 { margin:0; color:#fff!important; font-size:18px!important; font-weight:700!important; line-height:1.3; }
.fc-page-header p { margin:2px 0 0!important; color:var(--text-muted)!important; font-size:12px!important; line-height:1.45; }
