*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:#0f1419;color:#e7e9ea;line-height:1.5}#root{min-height:100vh}a{color:#1d9bf0;text-decoration:none}.app-shell{max-width:640px;margin:0 auto;padding:1.5rem 1.5rem 5rem}.app-main{min-height:calc(100vh - 8rem)}.card{background:#16181c;border:1px solid #2f3336;border-radius:8px;padding:1.25rem;margin-bottom:1rem;box-shadow:none;display:block;color:inherit}h1,h2{margin-top:0}label{display:block;font-size:.875rem;color:#71767b;margin-bottom:.25rem}input,select,textarea{width:100%;padding:.625rem .75rem;margin-bottom:1rem;border:1px solid #2f3336;border-radius:8px;background:#0f1419;color:#e7e9ea;font-size:1rem}.password-input-wrap{position:relative;margin-bottom:1rem}.password-input-wrap input{margin-bottom:0;padding-right:3.5rem}.password-toggle{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);padding:.25rem .5rem;background:transparent;border:none;border-radius:4px;color:#71767b;font-size:.8125rem;font-weight:500;box-shadow:none}.password-toggle:hover:not(:disabled){background:#16181c;color:#e7e9ea}.password-toggle:active:not(:disabled){transform:translateY(-50%) scale(.98);background:#1c1f23}button{padding:.625rem 1.25rem;border:none;border-radius:6px;background:#1d9bf0;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:none;transition:background .08s ease,transform .08s ease,border-color .08s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:hover:not(:disabled){background:#1a8cd8}button:active:not(:disabled){transform:scale(.98);background:#1681bf}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.secondary{background:#16181c;border:1px solid #2f3336;color:#e7e9ea}button.secondary:hover:not(:disabled){background:#1c1f23;border-color:#536471}button.secondary:active:not(:disabled){background:#2f3336;border-color:#71767b}button.btn-sm{padding:.4rem .875rem;font-size:.875rem}a.link-button{display:inline-block;padding:.625rem 1.25rem;border-radius:6px;background:#1d9bf0;color:#fff;font-weight:600;box-shadow:none;transition:background .08s ease,transform .08s ease}a.link-button:hover{background:#1a8cd8;color:#fff}a.link-button:active{transform:scale(.98);background:#1681bf}.app-header{max-width:640px;margin:0 auto;padding:1rem 1.5rem 0;display:flex;justify-content:flex-end}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:0;background:#16181c;border-top:1px solid #2f3336;padding:.5rem;z-index:100}.bottom-nav a{flex:1;max-width:120px;text-align:center;padding:.5rem;color:#71767b;font-size:.875rem;font-weight:600;border-radius:6px}.bottom-nav a.active{color:#e7e9ea;background:#2f3336}.error{color:#f4212e;font-size:.875rem}.success{color:#00ba7c}.muted{color:#71767b;font-size:.875rem}.home-header h1{margin-bottom:.25rem}.continue-card .card-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#1d9bf0;margin-bottom:.35rem}.section-hint{margin-top:-.5rem}.airport-list,.scenario-list{list-style:none;padding:0;margin:0}.airport-list li,.scenario-list li{margin-bottom:.5rem}.airport-card:hover,.continue-card:hover,.scenario-card:hover{border-color:#536471;background:#1c1f23}.airport-card:active,.continue-card:active,.scenario-card:active{background:#22262a}.airport-card-row{display:flex;justify-content:space-between;margin-bottom:.25rem}.scenario-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.difficulty-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;padding:.15rem .5rem;border-radius:4px}.difficulty-easy .difficulty-badge,.difficulty-badge.difficulty-easy{background:#0d2b1f;color:#00ba7c}.difficulty-medium .difficulty-badge,.difficulty-badge.difficulty-medium{background:#2b220d;color:#ffad1f}.difficulty-hard .difficulty-badge,.difficulty-badge.difficulty-hard{background:#2b0d0d;color:#f4212e}.scenario-aircraft{margin:.35rem 0 .75rem}.progress-label{display:block;margin-top:.35rem;font-size:.8rem}.scenario-variant-summary-list,.scenario-overview-list{list-style:none;margin:.75rem 0 0;padding:.5rem 0 0;border-top:1px solid #2f3336}.scenario-variant-summary-list li+li,.scenario-overview-list li+li{margin-top:.35rem}.variant-path-summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.variant-path-summary-compact{font-size:.85rem}.variant-path-summary-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.variant-path-summary-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variant-path-summary-via,.variant-path-summary-count{font-size:.75rem;flex-shrink:0}.variant-path-summary-active .variant-path-summary-count{color:#1d9bf0}.variant-path-summary-complete .variant-path-summary-count{color:#00ba7c}.progress-bar{height:6px;background:#2f3336;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#71767b;border-radius:3px;transition:width .2s ease}.difficulty-easy .progress-fill{background:#00ba7c}.difficulty-medium .progress-fill{background:#ffad1f}.difficulty-hard .progress-fill{background:#f4212e}.variant-list{list-style:none;padding:0;margin:0}.variant-list li{margin-bottom:.75rem}.variant-list a{display:block;padding:.75rem 1rem;background:#16181c;border:1px solid #2f3336;border-radius:6px;color:inherit;box-shadow:none}.variant-list a:hover{border-color:#536471;background:#1c1f23}.variant-list a:active{background:#2f3336}.variant-card{background:#16181c;border:1px solid #2f3336;border-radius:8px;padding:1rem}.variant-card-main strong{display:block;margin-bottom:.15rem}.variant-route{margin:0 0 .25rem;font-size:.875rem}.variant-status{margin:0 0 .5rem;font-size:.875rem}.variant-progress-bar{margin-bottom:.75rem}.variant-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.branch-path-list{list-style:none;margin:.75rem 0 0;padding:0;border-top:1px solid #2f3336}.branch-path-section-label{margin:.75rem 0 0;font-size:.8rem}.branch-path-list-runtime{margin-top:.25rem;border-top:none}.path-runtime-hint{font-size:.8rem;max-width:14rem;text-align:right;line-height:1.35}.branch-path-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #2f3336}.branch-path-item:last-child{border-bottom:none;padding-bottom:0}.branch-path-label{display:flex;flex-direction:column;gap:.15rem;min-width:0}.branch-path-label strong{font-size:.9rem}.branch-path-label .muted{font-size:.8rem}.branch-path-item .variant-card-actions,.branch-path-item .button-link{flex-shrink:0}.branch-path-complete{border-color:#1a3d2e;background:#0f1a14}.path-complete-badge{font-size:.75rem;font-weight:600;color:#00ba7c}.variant-active-path{margin:0 0 .5rem;font-size:.875rem}.button-link{display:inline-block;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;text-align:center;text-decoration:none}.button-link.primary{background:#1d9bf0;color:#fff}.button-link.primary:hover{background:#1a8cd8}.button-link.secondary{background:transparent;border:1px solid #2f3336;color:#e7e9ea}.button-link.secondary:hover{background:#1c1f23;border-color:#536471}.scenario-detail-header{margin-bottom:1rem}.scenario-progress-card{margin-bottom:1.5rem}.scenario-progress-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.scenario-progress-hint{margin:.75rem 0 0;font-size:.875rem}.badge-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.badge{font-size:.75rem;padding:.35rem .65rem;border-radius:4px;font-weight:600}.badge-earned{background:#0d2b1f;color:#00ba7c}.badge-locked{background:#1c1f23;color:#71767b;border:1px dashed #2f3336}.radio-mode{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#080b0f;overflow:hidden}.radio-topbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #1a1f24;background:#0a0e12}.radio-scenario{flex-shrink:0;margin:0;padding:.5rem 1rem}.radio-chat-shell{flex:1;min-height:0;display:flex;flex-direction:column}.radio-transcript-area{flex:1;min-height:0;overflow-y:auto;padding:0 1rem}.radio-error{padding-top:.5rem}.radio-back{color:#71767b;font-size:.875rem}.radio-freq{text-align:center}.freq-label{display:block;font-size:.65rem;color:#71767b;letter-spacing:.08em}.freq-value{font-family:ui-monospace,monospace;font-size:1.1rem;font-weight:700;color:#1d9bf0}.static-badge{font-size:.65rem;color:#536471;letter-spacing:.1em}.static-live{color:#00ba7c}.ptt-hint{margin:0 0 .25rem;font-size:.75rem}.ptt-inline{margin:0;padding:.45rem .9rem;font-size:.85rem;font-weight:700;background:#2f3336;border:1px solid #404448;color:#e7e9ea;touch-action:none;-webkit-user-select:none;user-select:none}.ptt-inline.ptt-active{background:#c41e3a;border-color:#e05050;box-shadow:0 0 8px #c41e3a73}.ptt-inline:disabled{opacity:.5;cursor:not-allowed}.radio-scenario{margin-bottom:0}.transcript{padding:.5rem 0 1rem;display:flex;flex-direction:column;gap:1rem}.situation-block{border-radius:12px;border:1px solid #8b3a3a;background:linear-gradient(180deg,#1f1212,#161010);overflow:hidden}.situation-header{padding:.75rem 1rem;background:#3d1f1f;border-bottom:1px solid #8b3a3a}.situation-header .situation-label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#e88;margin-bottom:.35rem}.situation-header p{margin:0;font-size:.9rem;color:#e7e9ea;line-height:1.45}.situation-chat{padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.chat-row{display:flex}.chat-tower{justify-content:flex-start}.chat-student{justify-content:flex-end}.chat-expected{justify-content:center}.chat-bubble{max-width:85%;padding:.55rem .75rem;border-radius:12px;border:1px solid transparent}.chat-tower .chat-bubble{background:#2a2d30;border-color:#404448;border-bottom-left-radius:4px}.chat-student .chat-bubble{background:#152a4a;border-color:#215e99;border-bottom-right-radius:4px}.chat-expected .chat-bubble{max-width:95%;background:#1a2332;border-color:#2f3f55;border-style:dashed}.chat-role{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#71767b;margin-bottom:.2rem}.chat-bubble p{margin:0;font-size:.9rem;line-height:1.4;color:#e7e9ea}.debrief-block .situation-header{display:flex;justify-content:space-between;align-items:baseline}.situation-block-active{border-color:#8b3a3a}.chat-active{display:flex;flex-direction:column;gap:.5rem;padding-top:.25rem;border-top:1px dashed #5c2d2d;margin-top:.25rem}.chat-compose{justify-content:flex-end}.chat-compose-form{width:100%;max-width:100%;display:flex;flex-direction:column;gap:.5rem}.chat-compose-form textarea{width:100%;margin:0;padding:.65rem .75rem;border-radius:12px 12px 4px;border:1px solid #215e99;background:#152a4a;color:#e7e9ea;font-size:.9rem;line-height:1.4;resize:none;font-family:inherit}.chat-compose-form textarea:focus{outline:none;border-color:#4a8fd4}.chat-compose-actions{display:flex;justify-content:flex-end;gap:.5rem}.chat-compose-actions button{margin:0;padding:.45rem .9rem;font-size:.85rem}.chat-continue{justify-content:center;padding:.5rem 0}.chat-continue button{margin:0;background:transparent;border:1px solid #8b3a3a;color:#e88;font-size:.85rem;padding:.4rem 1rem}.chat-continue button:hover:not(:disabled){background:#3d1f1f}.chat-hint .chat-bubble{max-width:100%;background:#1a2332;border-color:#2f3f55;border-style:dashed}.chat-bubble-error{background:#2a1a1a!important;border-color:#5c2d2d!important}.chat-bubble-error p{margin-bottom:.5rem}.chat-bubble-error button{margin:0;font-size:.85rem}.chat-status{text-align:center;padding:.5rem;margin:0}.debrief-transmission-type{margin:.15rem 0 0;font-size:.9rem;color:#e7e9ea;font-weight:600}.debrief-prompt{margin:0 0 .5rem;padding:0 .25rem;font-size:.85rem}.debrief-missing{margin:0;padding:.5rem .75rem .75rem;font-size:.85rem}.transcript-line{margin-bottom:.75rem;padding:.65rem .75rem;border-radius:6px;background:#11161b;border:1px solid #1a1f24}.transcript-tower{border-color:#1a3050}.transcript-student{border-color:#1a2b1a}.transcript-situation{border-color:#2a2a1a}.transcript-role{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#71767b;margin-bottom:.25rem}.student-panel{border-color:#1d9bf0}.student-turn-label{font-weight:700;color:#1d9bf0;margin:0 0 .25rem}.feedback-panel h2{font-size:1.1rem}.feedback-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.stat{text-align:center;padding:.5rem;background:#0f1419;border-radius:6px;border:1px solid #2f3336}.stat-value{display:block;font-size:1.25rem;font-weight:700}.stat-label{font-size:.7rem;color:#71767b;text-transform:uppercase}.feedback-fix{margin:.75rem 0}.preferred-box{background:#0d1f33;border:1px solid #1d9bf0;border-radius:6px;padding:.75rem;margin:1rem 0}.preferred-box p{margin:.35rem 0 0;font-family:ui-monospace,monospace;font-size:.9rem}.hint-box{margin-top:1rem;padding:.75rem;background:#1a2332;border:1px dashed #71767b;border-radius:8px}.button-row{display:flex;gap:.5rem;flex-wrap:wrap}.button-row button{margin-bottom:0}.situation-label{font-size:.875rem;color:#71767b;margin-bottom:.25rem}.validation-ok{color:#00ba7c}.validation-fail{color:#ff7a00}.debrief-summary{text-align:center}.score-total{font-size:1.25rem}.debrief-step-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
