:root{color-scheme:light;--bg:#f5f4f0;--panel:#fff;--panel-2:#fff;--line:#dce2e6;--muted:#657582;--dim:#71808a;--text:#1c3449;--lime:#244c66;--lime-dark:#eaf0f4;--amber:#95601c;--danger:#b44332;--mono:'Avenir Next',Avenir,system-ui,sans-serif;--sans:'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button{color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--lime);outline-offset:4px}input:focus-visible{outline:none}button{transition:background .18s,color .18s,border-color .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.icon{width:19px;height:19px;display:block;flex-shrink:0}
.primary-button{width:100%;border:1px solid var(--lime);background:var(--lime);color:#1a2518;border-radius:7px;padding:13px 15px;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:650;font-size:11px;min-height:42px}.primary-button .icon{width:16px;height:16px}.primary-button:hover:not(:disabled){background:#dfffaa;border-color:#dfffaa;box-shadow:0 0 20px #cdf78312}.primary-button:disabled{background:#7f9662;color:#172117;border-color:#7f9662;opacity:.72}#submit-guess{margin-top:10px;justify-content:space-between;padding-left:15px}.guess-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:13px;font-size:8px;color:var(--dim)}.text-button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--muted);padding:0;font-size:9px}.text-button:hover{color:var(--lime)}.text-button .icon{width:12px;height:12px}.suggestions{position:absolute;bottom:calc(100% + 9px);left:0;right:0;background:#14222b;border:1px solid #40574b;border-radius:10px;overflow:hidden;box-shadow:0 15px 45px #0006;z-index:5}.search-filter{display:flex;gap:4px;padding:10px 9px;border-bottom:1px solid var(--line)}.filter-chip{font-size:9px;padding:6px 8px;white-space:nowrap;background:none;border:1px solid transparent;color:var(--muted);border-radius:5px}.filter-chip.active{color:var(--lime);background:#28382a;border-color:#425539}.filter-chip:hover{color:var(--lime)}.options-heading{display:flex;justify-content:space-between;font:7px var(--mono);color:#81939d;letter-spacing:1px;padding:12px 14px 7px}#aircraft-options{list-style:none;margin:0;padding:0 6px 6px;max-height:221px;overflow:auto;scrollbar-width:thin;scrollbar-color:#40544b #14222b}.aircraft-option{padding:10px 9px;cursor:pointer;border:1px solid transparent;border-radius:6px;display:flex;align-items:center;gap:9px;font-size:11px;color:#cfdbdf;min-height:43px}.aircraft-option .icon{height:15px;width:15px;color:#819682}.aircraft-option .option-code{font:8px var(--mono);margin-left:auto;color:#718591}.aircraft-option.active,.aircraft-option:hover{background:#263b2e;border-color:#3e5936;color:var(--lime)}.no-options{padding:15px 10px;color:var(--muted);font-size:11px;line-height:1.5}.search-tip{display:flex;gap:4px;align-items:center;border-top:1px solid var(--line);padding:8px 12px;color:var(--dim);font-size:7px}.search-tip span{margin-left:auto}kbd{font:8px var(--mono);background:#1a2a31;padding:2px 4px;border:1px solid #34454e;border-radius:3px;color:#8da1ae}.map-error{position:absolute;top:58px;left:25px;color:var(--amber);background:#17212be6;border:1px solid #54452e;font-size:10px;padding:12px;border-radius:6px;max-width:260px}.app-footer{min-height:53px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--dim);font:8px var(--mono);letter-spacing:.4px}.app-footer>span:first-child{display:flex;align-items:center;gap:7px}.footer-led{width:4px;height:4px;border-radius:50%;background:var(--dim)}.app-footer .text-button{font:8px var(--mono)}.footer-center{font:9px var(--sans);letter-spacing:0;color:#647885}.skeleton{background:linear-gradient(90deg,#1c2932 25%,#26333a 50%,#1c2932 75%);background-size:200% 100%;animation:shimmer 2s linear infinite;border-radius:8px}.airline-skeleton{height:52px;margin-bottom:20px}.route-skeleton{height:125px;margin-bottom:20px}.facts-skeleton{height:130px}.result-badge{font:8px var(--mono);letter-spacing:1px;display:flex;align-items:center;gap:6px;margin-bottom:12px;color:var(--lime)}.result-badge.family{color:var(--amber)}.result-badge.manufacturer{color:#d2d5ab}.result-badge.miss,.result-badge.skipped{color:#e6a099}.result-badge .icon{width:14px;height:14px}.result-aircraft{font-size:25px!important;line-height:1.15!important;letter-spacing:-.8px!important;margin-bottom:6px!important}.result-subtitle{font-size:9px;color:var(--muted);line-height:1.5;margin:0 0 10px}.result-points{display:flex;align-items:center;justify-content:space-between;padding:10px 0 13px;border-top:1px solid var(--line)}.result-points strong{font:500 29px var(--mono);color:var(--lime);letter-spacing:-1px}.result-points small{font:9px var(--mono);color:var(--muted);letter-spacing:0;margin-left:4px}.result-points p{font:8px var(--mono);color:var(--muted);text-align:right;line-height:1.8;margin:0}.result-details{font-size:9px;margin:11px auto 0;display:flex;justify-content:center}.dossier.is-revealed .classified .redacted{display:none}.revealed-model-small{color:var(--lime);font:8px var(--mono);text-align:right;max-width:130px;line-height:1.5}.debrief{min-height:616px;border:1px solid var(--line);border-radius:0 0 12px 12px;background:radial-gradient(ellipse at 50% 0%,#293e272e,transparent 70%),var(--panel);padding:35px 42px}.debrief-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.debrief-title h2{font-size:32px;letter-spacing:-1px;font-weight:550;margin:10px 0}.debrief-title p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.debrief-total{text-align:right}.debrief-total strong{display:block;font:500 42px var(--mono);color:var(--lime);letter-spacing:-2px}.debrief-total span{display:block;font:9px var(--mono);color:var(--muted);margin-top:8px}.debrief-metrics{display:flex;gap:40px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:4px}.debrief-metric{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}.debrief-metric strong{font:500 15px var(--mono);color:var(--text)}.results-list{display:grid;margin-bottom:25px}.debrief-row{display:grid;grid-template-columns:30px 1.05fr 1.35fr 1.3fr 65px;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:11px}.debrief-row .round-number{font:10px var(--mono);color:var(--dim)}.debrief-row strong{font-size:11px;font-weight:500;line-height:1.5}.debrief-row small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.debrief-row .row-points{text-align:right;color:var(--lime);font:12px var(--mono)}.result-match-label{font:7px var(--mono);color:var(--lime);letter-spacing:.7px;margin-top:5px}.debrief-row.family .result-match-label{color:var(--amber)}.debrief-row.miss .result-match-label,.debrief-row.skipped .result-match-label{color:var(--danger)}.debrief-actions{display:flex;gap:10px;align-items:center}.debrief-actions .primary-button{width:auto;min-width:210px}.secondary-button{padding:12px 16px;min-height:42px;border:1px solid #435348;background:#213027;color:#d4dfcd;border-radius:7px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:8px}.secondary-button:hover{border-color:var(--lime);color:var(--lime)}.secondary-button .icon{width:15px;height:15px}.debrief-fineprint{font-size:9px;color:var(--dim);margin:18px 0 0;line-height:1.6}.modal{color:var(--text);background:#141f27;border:1px solid #425147;border-radius:15px;max-width:580px;width:calc(100% - 32px);padding:24px;box-shadow:0 25px 100px #0008;max-height:calc(100dvh - 50px);overflow:auto;scrollbar-width:thin;scrollbar-color:#3e5543 #141f27}.modal::backdrop{background:#050d13ba;backdrop-filter:blur(6px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px}.modal h2{font-size:27px;font-weight:550;letter-spacing:-.8px;margin:0 0 14px}.modal p{font-size:12px;line-height:1.8;color:#aabac3;margin:0 0 14px}.modal h3{font-size:14px;font-weight:550;margin:21px 0 10px}.modal a{color:var(--lime);text-decoration-color:#748955;text-underline-offset:3px}.icon-button{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted)}.icon-button:hover{color:var(--text);background:var(--panel-2)}.icon-button .icon{width:16px;height:16px}.rules-table{margin:18px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.rule-row{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;font-size:11px}.rule-row+.rule-row{border-top:1px solid var(--line)}.rule-row strong{color:var(--lime);font:11px var(--mono)}.rule-row:last-child strong{color:var(--amber)}.modal .primary-button{margin-top:18px}.help-step{display:flex;gap:14px;margin:17px 0}.step-no{font:12px var(--mono);color:var(--lime);background:#25362a;padding:9px;display:flex;align-items:center;justify-content:center;min-width:33px;height:33px;border-radius:7px}.help-step p{margin:0;font-size:11px}.help-step strong{font-size:12px;color:var(--text);display:block;margin-bottom:2px}.logbook-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:15px;background:#1a2a2c;border-radius:8px;margin:18px 0}.logbook-summary strong{display:block;font:22px var(--mono);color:var(--lime);margin-bottom:6px}.logbook-summary span{font-size:9px;color:var(--muted)}.logbook-entry{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);gap:12px}.logbook-entry strong{font:14px var(--mono);color:var(--lime)}.logbook-entry span{font-size:11px;color:var(--text)}.logbook-entry small{display:block;font:8px var(--mono);color:var(--muted);margin-top:5px}.empty-logbook{padding:25px;text-align:center;border:1px dashed var(--line);border-radius:9px;margin:20px 0;color:var(--muted);line-height:1.6}.modal-actions{display:flex;gap:8px;margin-top:19px}.modal-actions>*{flex:1}.modal-actions .primary-button{margin:0}.data-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:18px 0}.data-facts>div{padding:14px;background:var(--panel)}.data-facts dt{font:8px var(--mono);color:var(--muted);letter-spacing:.7px;margin-bottom:7px}.data-facts dd{margin:0;font-size:12px;color:var(--text)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:20;max-width:calc(100% - 35px);width:max-content;background:#293b2b;border:1px solid #617554;color:#e4f4d4;box-shadow:0 8px 40px #0006;padding:13px 19px;border-radius:8px;font-size:12px;line-height:1.5}.connection-error{display:flex;align-items:center;gap:15px;padding:20px;border:1px solid #715439;background:#302820;border-radius:10px;margin-top:16px}.connection-error>.icon,.connection-error>span>.icon{color:var(--amber)}.connection-error p{color:var(--muted);font-size:12px;line-height:1.6;margin:5px 0 0}.connection-error strong{font-size:13px}.connection-error button{margin-left:auto;flex-shrink:0}.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:10px;z-index:50;background:var(--lime);color:var(--bg);padding:12px;border-radius:5px}.skip-link:focus{top:10px}.no-script{position:fixed;inset:30% 15%;background:var(--panel);padding:40px;border:1px solid var(--lime);z-index:50}.is-busy #submit-guess,.is-busy #hint-button{opacity:.55}.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.app-footer button{white-space:nowrap}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}

.provider-status{display:grid;grid-template-columns:10px 1fr;gap:8px 12px;align-items:center;padding:17px;border:1px solid #34464d;border-radius:10px;margin:20px 0;background:#142128}
.provider-status.ready{border-color:#627744}
.provider-status small{grid-column:2;color:#9eafb5;font-size:12px;line-height:1.5}
.provider-status strong{font-size:14px}
.source-select-label{display:block;font:10px ui-monospace,monospace;letter-spacing:.12em;color:#b6c7ca;margin:20px 0 9px}
.source-select{font:inherit;color:#edf2eb;background:#122027;border:1px solid #3b4a50;border-radius:8px;min-height:46px;padding:10px 12px;width:100%;box-sizing:border-box}
.source-select option{background:#122027;color:#edf2eb}
.modal .source-description,.modal .fr24-fineprint{font-size:12px;line-height:1.65;color:#9dafb7}
.fr24-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.fr24-stats>div{padding:17px;background:#15232a;border:1px solid #2b3b43;border-radius:9px}
.fr24-stats strong{display:block;font-size:24px;color:#d4ff80;line-height:1.3}
.fr24-stats span{display:block;font-size:11px;color:#a1b4b8;margin-top:6px}
.desk-actions{display:grid;gap:10px;margin-top:22px}
.desk-actions button{width:100%;min-height:48px;justify-content:center;flex-wrap:wrap}
.desk-actions small{font-size:10px;opacity:.8;margin-left:auto}
.desk-message{background:#182b25;border:1px solid #506447;border-radius:8px;padding:14px;font-size:13px!important}
.desk-message.error{background:#352722;border-color:#755149;color:#f2c5b3}
.modal .fr24-attribution{font-size:11px;margin-bottom:0}
.setup-instructions code{color:#d4ff80;white-space:nowrap}
.map-attribution a{color:inherit;text-decoration:none}
.map-attribution a:hover{text-decoration:underline}
.airline-meta{flex-wrap:wrap}

/* Mobile is the base layout. The saved preference enables the wider board. */
html{scroll-padding-top:12px}body{min-width:280px}button,select,input{touch-action:manipulation}
.app-shell{max-width:600px;margin:0 auto;padding:0 max(12px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom));}
.topbar{display:grid;grid-template-areas:"brand view" "nav nav";grid-template-columns:1fr auto;gap:4px 8px;padding:8px 4px 4px;align-items:center}
.wordmark{grid-area:brand;display:flex;align-items:center;gap:8px;text-decoration:none;font-size:25px;font-weight:750;letter-spacing:-1.2px;width:max-content}
.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--lime);color:#18251a}
.brand-mark .icon{width:23px;height:23px}.brand-dot{color:var(--lime)}
.layout-select{grid-area:view;justify-self:end;font:12px var(--sans);color:#c4d1d4;background:#17232a;border:1px solid var(--line);border-radius:9px;min-height:44px;width:133px;padding:0 9px;cursor:pointer}
.layout-select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.main-nav{grid-area:nav;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;}
.nav-button{display:flex;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:8px 6px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;white-space:nowrap}
.nav-button>span{display:none}.nav-button.active{background:#203027;color:var(--lime)}.nav-button:hover{color:var(--text);background:#1b292c}
.board-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#3e5543 transparent;border-radius:14px}.game-board{min-width:0}
.session-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:0 16px;border-bottom:1px solid var(--line)}
.session-name{display:flex;align-items:center;gap:8px;font:11px var(--sans);color:var(--muted);white-space:nowrap}
.session-icon,#mode-label,.strip-divider{display:none}.round-dots{display:flex;gap:4px}.round-dot{width:18px;height:4px;border-radius:4px;background:#33414a;position:relative}
.round-dot.current,.round-dot.exact{background:var(--lime)}.round-dot.family{background:var(--amber)}.round-dot.manufacturer{background:#9ca89c}.round-dot.miss,.round-dot.skipped{background:#a96e69}
.round-dot.current:after{content:'';position:absolute;top:7px;left:7px;width:3px;height:3px;border-radius:50%;background:var(--lime)}
.session-score{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.session-score strong{font:500 20px var(--mono);color:var(--lime)}.score-label,.personal-best{display:none}.score-unit{font:11px var(--mono);color:var(--muted)}
.workspace{display:flex;flex-direction:column;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.dossier{position:relative;min-width:0;padding:14px 18px 16px}.airline-block{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-right:76px;min-height:36px}.airline-block>div:last-child{min-width:0}
.airline-avatar{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border:1px solid #53668138;border-radius:10px;background:#223140;font:14px var(--mono);color:#d0deee;position:relative;overflow:hidden}
.airline-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:white;border-radius:inherit}.airline-avatar.has-logo .airline-lettermark{visibility:hidden}
.airline-name{font-size:18px;line-height:1.25;font-weight:600;letter-spacing:-.4px}.airline-meta{display:none;margin-top:4px;color:var(--muted);font-size:10px}
.route-codes{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:10px}.airport-block{min-width:0}.airport-block:last-child{text-align:right}
.airport-code{font-size:38px;font-weight:550;line-height:1.05;letter-spacing:-1.5px}.airport-city{font-size:12px;margin-top:5px;color:#c0cdd1}.airport-name{display:none}
.route-center{display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:2px}.route-arrow{color:#667c85}.route-arrow .icon{width:20px;height:20px}
.primary-facts{display:grid;gap:3px;text-align:center;white-space:nowrap}.primary-facts .fact-label{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;clip:rect(0,0,0,0)}.primary-facts .fact-value{font-size:13px;color:#aebec4;letter-spacing:-.25px;margin:0;line-height:1.4}.primary-facts .fact-value small{font-size:10px;margin-left:3px}.primary-facts:empty,.supporting-facts:empty{display:none}
.fact{min-width:0;flex:1}.fact-label{font-size:10px;color:var(--muted)}.fact-label .icon{display:none}.fact-value{font:500 18px var(--mono);letter-spacing:-.5px;margin-top:5px}.fact-value small{font:10px var(--sans);color:var(--muted);margin-left:4px}
.flight-details{font-size:12px}.flight-details summary{position:absolute;top:10px;right:14px;list-style:none;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:44px;min-width:72px;padding:0 4px;cursor:pointer;color:var(--muted)}.flight-details summary:focus-visible{outline:2px solid var(--lime);outline-offset:2px;border-radius:5px}.detail-source{margin:16px 0 10px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.flight-details summary::-webkit-details-marker{display:none}.flight-details summary .icon{width:14px;height:14px}.flight-details[open] summary .icon{transform:rotate(180deg)}
.detail-airports{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:11px;line-height:1.5;margin:5px 0 14px}.detail-airports>span{flex:1}.detail-airports>span:last-child{text-align:right}
.supporting-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 16px}.supporting-facts .fact-value{font-size:16px;color:#c0ccd1}.flight-times{display:grid;gap:10px;padding-bottom:17px;font-size:11px;color:var(--muted)}.flight-times>span{display:flex;justify-content:space-between;gap:10px}.flight-times strong{font:11px var(--mono);color:#bbc8cd}
.map-panel{position:relative;min-width:0;min-height:0;height:clamp(320px,48svh,520px);background:#0b171e;isolation:isolate;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.map-canvas-wrap{position:absolute;inset:0 0 48px;overflow:hidden;border-bottom:1px solid var(--line)}#radar{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#radar.dragging{cursor:grabbing}
.map-topline{position:absolute;left:14px;top:12px;pointer-events:none}.map-snapshot{font-size:10px;color:#9babb2;background:#0b171eb8;border-radius:4px;padding:3px 5px}
.map-controls{position:absolute;right:9px;bottom:2px;display:flex;gap:4px}.north-indicator,.map-controls [data-action=traffic]{display:none}.map-control{display:grid;place-items:center;width:44px;height:44px;border:1px solid #30434c;border-radius:8px;color:#acbec1;background:#0e1a21e8}.map-control .icon{height:17px;width:17px}.map-control:hover{color:var(--lime);border-color:var(--lime)}
.map-attribution{position:absolute;bottom:10px;left:13px;max-width:calc(100% - 170px);font-size:8px;color:#8c9ea5;line-height:1.5}.map-attribution a{color:inherit;text-decoration:none}.map-attribution span{margin:0 2px}
.guess-panel{position:relative;z-index:2;min-width:0;padding:16px 18px 8px;background:var(--panel-2)}
.guess-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.guess-top h2{font-size:17px;font-weight:550;letter-spacing:-.3px;margin:0}.available-points{font:11px var(--mono);color:var(--muted)}.available-points span{color:var(--lime)}
.search-wrap{position:relative;display:flex;align-items:center;height:48px;border:1px solid #40515c;border-radius:9px;background:#0c171e}.search-wrap:focus-within{border-color:var(--lime);box-shadow:0 0 0 2px #cdf78312}
.search-icon{position:absolute;left:13px;color:#8b9ba5;pointer-events:none}.search-icon .icon{width:18px;height:18px}#guess-input{width:100%;height:100%;padding:0 42px 0 40px;background:transparent;border:0;color:var(--text);font-size:16px;min-width:0}#guess-input::placeholder{font-size:14px;color:#82939d}
.clear-search{position:absolute;right:0;min-width:44px;min-height:44px;display:grid;place-items:center;background:none;border:0;color:var(--muted)}.clear-search .icon{width:17px;height:17px}
.hint-button{display:flex;align-items:center;gap:7px;min-height:44px;padding:4px 0;border:0;background:none;color:#c7d1cd;font-size:12px}.hint-button .icon{height:16px;width:16px;color:var(--amber)}.hint-cost{font:11px var(--mono);color:var(--amber)}.hint-button:disabled{opacity:.5}.hint-button:hover:not(:disabled){color:var(--lime)}
.revealed-hints{display:grid;gap:7px}.revealed-hints:not(:empty){margin-bottom:12px}.hint-item{display:flex;gap:9px;padding:10px;background:#25362a;border-radius:7px}.hint-number{font:10px var(--mono);color:var(--lime);padding-top:2px}.hint-item p{font-size:12px;line-height:1.5;color:#d0dbce;margin:0}

.primary-button,.secondary-button{min-height:48px;font-size:14px;border-radius:9px;padding:12px 15px}.primary-button .icon{height:19px;width:19px}.text-button{font-size:12px;min-height:44px}.text-button .icon{width:15px;height:15px}#submit-guess{margin-top:10px}.guess-bottom{margin-top:3px;gap:12px;font-size:12px}
.suggestions{position:relative;inset:auto;margin-top:8px;border-radius:9px;box-shadow:none}.search-filter{padding:3px 6px;gap:0}.filter-chip{min-height:40px;padding:6px 8px;font-size:11px;flex:1}.options-heading{padding:8px 13px;font:10px var(--sans);letter-spacing:0}#aircraft-options{max-height:200px;max-height:clamp(132px,25dvh,240px);padding-bottom:4px;overscroll-behavior:contain}.aircraft-option{min-height:48px;font-size:14px;padding:10px 8px}.aircraft-option .option-code{font-size:10px}.search-tip{display:none}.no-options{font-size:12px}
.result-badge{font:12px var(--sans);letter-spacing:0;margin-bottom:10px}.result-aircraft{font-size:25px!important;font-weight:550;margin:0 0 10px!important}.result-subtitle{font-size:12px}.result-subtitle:empty{display:none}.result-points{margin-top:14px;padding:12px 0}.result-points p{font:11px var(--sans)}.result-points small{font-size:11px}.result-details{margin:0 auto;font-size:12px;min-height:44px}
.debrief{min-height:0;padding:22px 18px;border-radius:14px}.debrief-top{gap:16px;margin-bottom:22px}.debrief-title h2{font-size:25px;margin:0 0 7px}.debrief-total{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.debrief-total strong{font-size:36px}.debrief-total span{font:10px var(--mono);letter-spacing:0;margin:0}.debrief-metrics{justify-content:space-between;gap:16px;padding-bottom:18px}.debrief-metric{font-size:11px;gap:6px}.debrief-metric strong{font-size:16px}.debrief-row{grid-template-columns:16px minmax(0,1fr) 26px;gap:6px 10px;padding:16px 0}.debrief-row>.round-number{grid-row:1/3}.debrief-row>div:nth-child(2){grid-column:2;grid-row:1}.debrief-row>div:nth-child(3){grid-column:2;grid-row:2}.debrief-row .row-points{grid-column:3;grid-row:1/3;font-size:17px}.debrief-row strong{font-size:13px}.debrief-row small{font-size:11px}.result-match-label{font:11px var(--sans);letter-spacing:0;margin-top:3px}.debrief-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.debrief-actions .primary-button{grid-column:1/-1;width:100%;min-width:0}.results-list{margin-bottom:20px}
.modal{padding:18px 20px 24px;width:calc(100% - 20px);max-height:calc(100dvh - 24px);max-width:580px;overscroll-behavior:contain}.modal-top{justify-content:flex-end;margin-bottom:3px}.icon-button{width:44px;height:44px;border-radius:8px}.modal h2{font-size:25px}.modal p{font-size:13px;line-height:1.65}.modal-actions{flex-wrap:wrap}.modal-actions>*{min-width:110px}.logbook-summary span{font-size:11px}.logbook-entry span{font-size:13px}.logbook-entry small{font-size:10px}.rule-row{font-size:13px}.rule-row strong{font-size:13px}.data-facts dt{font:10px var(--sans);letter-spacing:0}.previous-scores{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.previous-scores summary{cursor:pointer;min-height:44px;font-size:13px;color:var(--muted)}.source-select{font-size:16px;min-height:48px}.provider-status strong{font-size:13px}.source-select-label{letter-spacing:0;font-size:11px}.desk-actions small{width:100%;margin:0}.desk-actions button{font-size:13px}.fr24-stats{gap:10px}.fr24-stats>div{padding:13px}.fr24-stats strong{font-size:23px}
.app-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 4px 0;min-height:54px}.app-footer .text-button,.help-button{font:11px var(--sans);color:var(--muted);min-height:44px;letter-spacing:0}.help-button{display:flex;align-items:center;gap:6px;padding:0;background:none;border:0}.help-button .icon{height:15px;width:15px}.connection-error{flex-wrap:wrap;padding:16px}.connection-error button{margin-left:0}.map-error{top:45px;left:15px;padding:10px;font-size:11px}.toast{bottom:max(16px,env(safe-area-inset-bottom));font-size:12px}.share-fallback{white-space:pre-wrap;overflow-wrap:anywhere;padding:15px;background:#0b171e;color:var(--lime);border-radius:8px;font:12px/1.7 var(--mono)}.inline-icon{display:inline-block!important;width:12px!important;height:12px!important;vertical-align:middle}
/* Manual desktop mode stays usable on a phone: only the board scrolls sideways. */
html[data-layout=desktop] .app-shell{max-width:1770px;padding-left:24px;padding-right:24px}
html[data-layout=desktop] .game-board{min-width:860px}
html[data-layout=desktop] .session-strip{margin-top:16px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:#111920;min-height:50px;padding:0 20px}
html[data-layout=desktop] #mode-label,html[data-layout=desktop] .score-label{display:inline}.score-label{font-size:11px;color:var(--muted);margin-right:5px}
html[data-layout=desktop] .strip-divider{display:block;width:1px;height:12px;background:var(--line)}
html[data-layout=desktop] .personal-best{display:flex;gap:6px;align-items:baseline;border-left:1px solid var(--line);padding-left:14px;margin-left:10px;font:11px var(--sans);color:var(--muted)}html[data-layout=desktop] .personal-best strong{font-size:12px;color:#becbd0}
html[data-layout=desktop] .workspace{display:grid;grid-template-columns:310px minmax(0,1fr);grid-template-rows:minmax(610px,calc(100dvh - 206px));border-radius:0 0 12px 12px}
html[data-layout=desktop] .dossier{grid-column:1;grid-row:1;padding:26px 24px;border-right:1px solid var(--line);overflow:auto;scrollbar-width:thin}
html[data-layout=desktop] .airline-block{margin-bottom:28px;gap:12px;padding-right:0}html[data-layout=desktop] .airline-meta{display:block}html[data-layout=desktop] .airline-avatar{width:46px;height:46px}html[data-layout=desktop] .airline-name{font-size:21px}html[data-layout=desktop] .airport-code{font-size:47px}html[data-layout=desktop] .airport-city{font-size:14px}html[data-layout=desktop] .airport-name{display:block;font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;margin-top:5px}
html[data-layout=desktop] .route-center{display:contents}html[data-layout=desktop] .route-codes{align-items:center}html[data-layout=desktop] .route-codes>.airport-block{grid-row:1}html[data-layout=desktop] .route-codes>.airport-block:last-child{grid-column:3}html[data-layout=desktop] .route-arrow{grid-column:2;grid-row:1;margin-top:-25px}html[data-layout=desktop] .primary-facts{grid-column:1/-1;grid-row:2;display:flex;text-align:left;white-space:normal;margin-top:16px;padding-top:21px;gap:16px;border-top:1px solid var(--line)}html[data-layout=desktop] .primary-facts .fact-label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}html[data-layout=desktop] .fact-label{font-size:11px}html[data-layout=desktop] .primary-facts .fact-value{font-size:22px;margin-top:8px;color:var(--text)}html[data-layout=desktop] .flight-details{margin-top:20px}html[data-layout=desktop] .flight-details summary{position:static;justify-content:space-between;padding:0}html[data-layout=desktop] .detail-source{display:none}html[data-layout=desktop] .detail-airports{display:none}html[data-layout=desktop] .supporting-facts{margin-top:12px}
html[data-layout=desktop] .map-panel{grid-column:2;grid-row:1;height:auto;min-height:0;border:0}
html[data-layout=desktop] .map-canvas-wrap{inset:0;border:0}
html[data-layout=desktop] .map-controls{top:55px;right:18px;bottom:auto;flex-direction:column;gap:5px}html[data-layout=desktop] .north-indicator{display:flex;flex-direction:column;align-items:center;gap:4px;color:#b7c8c9;font:10px var(--mono);padding:4px 0 10px}html[data-layout=desktop] .north-indicator svg{width:18px;height:24px}html[data-layout=desktop] [data-action=traffic]{display:grid}html[data-layout=desktop] .map-topline{left:20px;top:18px}html[data-layout=desktop] .map-attribution{bottom:14px;left:20px;max-width:45%}
html[data-layout=desktop] .guess-panel{grid-column:2;grid-row:1;align-self:end;justify-self:end;width:330px;padding:19px 20px 8px;margin:22px;border:1px solid #41514b;border-radius:12px;background:#15212bf5;box-shadow:0 12px 40px #0004;backdrop-filter:blur(14px)}
html[data-layout=desktop] .suggestions{position:absolute;left:0;right:0;bottom:calc(100% + 8px);margin:0;box-shadow:0 15px 45px #0006}html[data-layout=desktop] #aircraft-options{max-height:240px}html[data-layout=desktop] .search-tip{display:flex}html[data-layout=desktop] .guess-top h2{font-size:19px}
html[data-layout=desktop] .debrief{padding:32px 36px;border-radius:0 0 12px 12px;min-height:610px}html[data-layout=desktop] .debrief-row{grid-template-columns:26px 1fr 1.2fr 45px;gap:18px}html[data-layout=desktop] .debrief-row>*{grid-row:auto!important;grid-column:auto!important}html[data-layout=desktop] .debrief-actions{display:flex}html[data-layout=desktop] .debrief-actions .primary-button{width:auto;min-width:200px}
@media(min-width:960px){html[data-layout=desktop] .topbar{grid-template-areas:"brand nav view";grid-template-columns:1fr auto 1fr;padding:18px 0;border-bottom:1px solid var(--line);gap:20px}html[data-layout=desktop] .main-nav{display:flex;gap:5px}html[data-layout=desktop] .nav-button{padding:10px 13px;font-size:12px}html[data-layout=desktop] .nav-button>span{display:block}html[data-layout=desktop] .nav-button .icon{width:16px;height:16px}html[data-layout=desktop] .layout-select{justify-self:end}}
@media(min-width:1400px){html[data-layout=desktop] .workspace{grid-template-columns:350px minmax(0,1fr)}html[data-layout=desktop] .dossier{padding:30px}html[data-layout=desktop] .airport-code{font-size:54px}html[data-layout=desktop] .airline-name{font-size:23px}html[data-layout=desktop] .guess-panel{width:370px;margin:26px;padding:22px 23px 10px}}
@media(max-width:350px){.wordmark{font-size:22px;gap:6px}.brand-mark{width:29px;height:29px}.layout-select{width:125px;font-size:11px}.dossier{padding-left:15px;padding-right:15px}.flight-details summary{right:11px}.airport-code{font-size:34px}.guess-panel{padding-left:15px;padding-right:15px}.session-strip{padding-left:13px;padding-right:13px;gap:8px}.round-dot{width:14px}.round-dot.current:after{left:5px}.airline-name{font-size:18px}.debrief-total strong{font-size:30px}.debrief{padding:20px 15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Presentation controls share the existing header; no extra toolbar row. */
.header-tools{grid-area:view;justify-self:end;display:flex;align-items:center;gap:4px}

.sound-toggle{width:44px;height:44px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;background:#17232a;color:var(--muted)}
.sound-toggle[aria-pressed=true]{color:var(--lime)}.sound-toggle:disabled{opacity:.45}
.layout-control{position:relative;width:44px;height:44px}.layout-control>span{position:absolute;top:13px;left:13px;pointer-events:none;z-index:1;color:var(--muted);width:18px;height:18px}
.layout-control .layout-select{width:44px;min-height:44px;padding:0;appearance:none;color:transparent}.layout-control .layout-select option{color:var(--text);background:var(--panel)}
@media(max-width:379px){.topbar .brand-mark{display:none}.topbar .wordmark{font-size:22px;letter-spacing:-1px}.topbar{column-gap:4px;padding-left:0;padding-right:0}.header-tools{gap:2px}}
@media(min-width:960px){html[data-layout=desktop] .topbar{grid-template-columns:minmax(130px,1fr) auto auto;gap:16px}html[data-layout=desktop] .layout-control{width:123px}html[data-layout=desktop] .layout-control>span{display:none}html[data-layout=desktop] .layout-control .layout-select{width:123px;appearance:auto;color:#c4d1d4;padding:0 9px}html[data-layout=desktop] .nav-button{padding-left:10px;padding-right:10px}}

.layout-control>span .icon{width:18px;height:18px}

@media(max-width:959px){html[data-layout=desktop] .app-shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}

