.notification-stack{position:fixed;z-index:30;bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));width:min(390px,calc(100vw - 24px));max-height:min(55dvh,calc(100dvh - 112px));display:flex;flex-direction:column-reverse;gap:8px;overflow-y:auto;overscroll-behavior:contain;pointer-events:none;padding:8px 2px 2px;color:var(--text);font:12px/1.45 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.notification{display:flex;align-items:center;gap:var(--button-gap);flex-shrink:0;padding:6px 6px 6px 12px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;box-shadow:0 3px 14px #10203430;pointer-events:auto;animation:notification-enter .16s ease-out}.notification .notification-icon{color:var(--warning-text);flex:none}.notification-success .notification-icon{color:#379970}.notification-info .notification-icon{color:var(--blue)}.notification-stack .notification p{flex:1;min-width:0;margin:0;padding:0;font:inherit;color:inherit;overflow-wrap:anywhere}.notification-stack .notification button{flex:none;min-height:40px;border:0;border-radius:4px;padding:0 10px;font:inherit;color:var(--blue);background:transparent}.notification button:hover:not(:disabled){background:var(--hover)}.notification .notification-dismiss{width:36px;padding:0;color:var(--muted)}.notification-spinner{animation:workspace-spin .8s linear infinite}.workspace-recovery{align-content:center;gap:20px}.workspace-recovery>div{display:flex;align-items:center;gap:24px;color:#fff}.workspace-recovery strong{font-size:25px}.workspace-recovery button{border-radius:4px;padding:0 16px}@keyframes notification-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.notification-stack{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));max-height:50dvh}.notification-stack .notification button{min-height:44px}}@media(prefers-reduced-motion:reduce){.notification,.notification-spinner{animation:none}}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20344c;background:#a4bfd5;font-synthesis:none;font-size:13px;--navy:#22374e;--blue:#337fbd;--line:#dce3e9;--muted:#6c7c8e;--shadow:0 4px 20px #142d4528;--drawer:320px;--button-gap:8px;--map-controls-top:158px;--board-edge:16px;--board-control-width:46px;--board-control-height:48px}*{box-sizing:border-box}html,body,#root,.board{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden}button,input{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:0;cursor:pointer;color:inherit;background:transparent;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:hover{background:#e8f1f8}button:active{background:#d9e9f5}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #318ddb;outline-offset:2px}a{color:#276b9d}svg{flex-shrink:0}h2,h3,p{margin:0}h2{font-size:18px;font-weight:650;letter-spacing:-.5px}h3{font-size:14px}small{font-size:11px}strong{font-weight:650}.map.maplibregl-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:#a4bfd5}.topbar{position:absolute;top:0;left:0;right:0;height:72px;padding:0 var(--board-edge);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;background:var(--navy);color:#fff;box-shadow:0 2px 8px #08213c30;z-index:20;padding-top:env(safe-area-inset-top)}.identity{display:flex;gap:8px;align-items:center;white-space:nowrap;grid-column:1;grid-row:1;justify-self:start}.identity strong{display:block;font-size:20px;letter-spacing:-.6px}.identity .brand-subtitle{margin-left:8px;font-size:9px;font-weight:500;letter-spacing:1.6px;color:#c2d4e5}time{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}time b{font-size:9px;color:#aebfce;margin-left:3px}.top-actions{display:flex;gap:var(--button-gap);align-items:center;flex-shrink:0;grid-column:2;grid-row:1;justify-self:end}.topbar button:hover{background:#ffffff18}.topbar-action{font-size:12px;gap:8px;color:#d8e0e9;padding:0 12px;border:0;border-radius:5px;white-space:nowrap;flex-shrink:0}.traffic-status.connected svg{color:#75d4a0}.traffic-status small{border:1px solid #63758a;padding:3px 5px;border-radius:3px;color:#c8d4df;font-size:9px}.icon-button{width:46px;min-width:46px;border-radius:5px;padding:0}.drawer-tabs{position:absolute;z-index:18;top:88px;left:var(--board-edge);right:var(--board-edge);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--button-gap);pointer-events:none}.drawer-tabs>button{pointer-events:auto;background:#fffffff5;box-shadow:0 2px 9px #2139522b;border-radius:4px;padding:0 13px;font-size:12px;gap:9px;border:1px solid #cdd7e0;min-width:0;max-width:100%;white-space:nowrap}.drawer-tabs>button:first-child{justify-self:start}.drawer-tabs>button:last-child{justify-self:end}.drawer-tabs>button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-tabs button.active{background:#337fbd;color:#fff;border-color:#337fbd}.drawer-tabs b{flex-shrink:0;font-size:10px;display:grid;place-items:center;min-width:22px;height:22px;background:#edf2f6;border-radius:4px;color:#456078}.drawer-tabs .active b{background:#ffffff24;color:#fff}.drawer{position:absolute;top:144px;bottom:42px;width:var(--drawer);background:#f9fbfc;z-index:16;box-shadow:var(--shadow);display:flex;flex-direction:column;animation:slide-in .2s ease-out;border:1px solid #d5dfe7;border-radius:0 6px 6px 0}.left-drawer{left:0;border-left:0;transform-origin:left}.right-drawer{right:0;border-right:0;border-radius:6px 0 0 6px;transform-origin:right}.drawer-heading{padding:17px 16px;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;border-bottom:1px solid var(--line);background:#fff;gap:8px}.drawer-heading .icon-button{min-width:34px;width:34px;grid-row:1}.drawer-heading>div{grid-area:1/2;text-align:center}.left-drawer .drawer-heading>.icon-button{grid-column:3}.right-drawer .drawer-heading>.icon-button{grid-column:1}.drawer-heading>.count-badge{grid-area:1/3;justify-self:end}.left-drawer .drawer-heading>.count-badge{grid-column:1;justify-self:start}.eyebrow{font-size:8px;letter-spacing:1.4px;font-weight:650;color:var(--muted);display:block;margin-bottom:7px}.count-badge{display:grid;place-items:center;min-width:28px;height:28px;border-radius:4px;background:#e9f0f6;color:#4c6a84;font-size:12px;font-weight:400;line-height:1}.drawer-content{overflow-y:auto;flex:1;overscroll-behavior:contain}.feed-summary{padding:16px;background:#f0f5f9;border-bottom:1px solid var(--line)}.feed-summary>div{display:flex;align-items:center;gap:7px;font-size:11px}.feed-summary>div>span:last-child{margin-left:auto;color:var(--muted);font-size:10px}.status-dot{height:7px;width:7px;border-radius:50%;background:#ac8b54}.status-dot.good{background:#379970}.switch-label{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:11px;color:#516a80;min-height:40px}.switch-label input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:38px;height:22px;border-radius:20px;background:#b5c1cc;position:relative;cursor:pointer;margin:0}.switch-label input:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}.switch-label input:checked{background:var(--blue)}.switch-label input:checked:before{transform:translate(16px)}.empty-state{padding:40px 24px;text-align:center;color:var(--muted)}.empty-state>svg{color:#9cabb9;margin-bottom:15px}.empty-state h3{color:#435b71;font-size:13px;margin-bottom:10px}.empty-state p{font-size:11px;line-height:1.8}.empty-state.compact{padding:27px 30px}.empty-line{padding:20px;color:var(--muted);font-size:11px}.traffic-row{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);gap:var(--button-gap)}.row-main{justify-content:flex-start;flex:1;text-align:left;padding:8px 5px;gap:14px;min-width:0;border-radius:4px}.row-main>span:last-child{display:flex;flex-direction:column;gap:5px;min-width:0}.row-main strong{font-size:12px}.row-main strong small{font-size:10px;color:#7a8ca0;margin-left:6px}.row-main span span,.row-main small{font-size:10px;color:#6d8092}.visibility-toggle{min-width:46px;border:1px solid #d9e2e9;border-radius:4px;color:#8a9eae}.visibility-toggle.on{color:#337fbd;background:#eaf3fa;border-color:#b7d5eb}.drawer-footer{flex-shrink:0;padding:15px;border-top:1px solid var(--line);font-size:9px;color:#74889a;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff}.drawer-footer a{margin-left:auto;font-size:9px;text-decoration:none}.drawer-footer p{font-size:10px;line-height:1.6;flex-basis:100%;margin-top:3px}.section-label{display:flex;justify-content:space-between;background:#edf2f6;padding:12px 16px;font-size:9px;letter-spacing:1px;color:#6b8195;font-weight:600}.strip-row{display:flex;text-align:left;width:100%;padding:16px 14px;gap:10px;border-bottom:1px solid var(--line);min-height:77px}.strip-row.selected{background:#e8f2fa}.strip-color{width:7px;align-self:stretch;border-radius:2px;border:1px solid #0002;min-height:37px}.strip-row>div{flex:1;display:flex;flex-direction:column;gap:6px}.strip-row strong{font-size:12px}.strip-row strong span{font-weight:400;text-transform:capitalize;color:#7c8b97;margin-left:4px;font-size:11px}.strip-row small{color:#7f90a0;font-size:10px}.strip-state{font-size:9px;padding:4px 6px;background:#edf2f6;color:#66829a;border-radius:3px}.map-controls{gap:0;padding:0;position:absolute;right:var(--board-edge);top:var(--map-controls-top);z-index:12;background:#fff;display:flex;flex-direction:column;border-radius:4px;box-shadow:var(--shadow);border:1px solid #d2dde6;overflow:hidden;transition:right .2s}.map-controls.drawer-is-open{right:calc(var(--drawer) + var(--board-edge))}.map-controls.left-controls{left:var(--board-edge);right:auto;transition:left .2s}.map-controls.left-controls.drawer-is-open{left:calc(var(--drawer) + var(--board-edge));right:auto}.map-controls button{width:var(--board-control-width);height:var(--board-control-height);padding:0}.map-controls button>svg{width:20px}.map-controls>span{height:1px;background:#dbe4eb;margin:0 8px}.range-icon{font-weight:700;font-size:16px;display:flex;flex-direction:column;gap:0;line-height:16px}.range-icon small{font-size:8px;font-weight:500}.bottom-toolbar{position:absolute;bottom:38px;left:50%;transform:translate(-50%);z-index:22;display:flex;background:#fff;border:1px solid #d2dce5;box-shadow:var(--shadow);border-radius:6px;padding:5px;gap:var(--button-gap);white-space:nowrap}.bottom-toolbar button{min-height:49px;border-radius:4px;padding:0 16px;font-size:12px;font-weight:550}.bottom-toolbar .add-aircraft{background:#337fbd;color:#fff;min-width:165px}.bottom-toolbar .add-aircraft:hover{background:#286da5}.hold-board{color:#5f7589}.hold-board[aria-pressed=true]{color:#a36a0f;background:#fff2d8}.board-count{color:#70879c}.board-count small{font-size:10px;margin-left:-6px}.aircraft-menu,.add-menu{position:absolute;bottom:108px;left:50%;transform:translate(-50%);width:350px;z-index:23;background:#fff;border-radius:7px;border:1px solid #cedae4;box-shadow:0 10px 35px #14304a30;overflow:hidden}.menu-heading{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.menu-heading>div{flex:1}.menu-heading strong{display:block;font-size:13px}.menu-heading small{display:block;margin-top:5px;color:var(--muted);font-size:10px;text-transform:capitalize}.menu-heading .icon-button{min-width:36px;width:36px;min-height:38px}.color-swatch{width:17px;height:17px;border:3px solid #263b50;box-shadow:0 0 0 1px #20344c2b;border-radius:50%;flex-shrink:0}.speed-input{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:13px 18px;font-size:11px;color:#6b8093}.speed-input input[readonly]{cursor:default}.menu-actions{display:flex;gap:var(--button-gap);border-top:1px solid var(--line);padding:5px}.menu-actions button{flex:1;flex-direction:column;gap:6px;font-size:10px;min-height:62px;border-radius:4px}.danger{color:#bc524e}.report-facts{display:flex;padding:20px;gap:40px;font-size:13px;font-weight:600}.report-facts small{display:block;font-size:8px;letter-spacing:1px;color:#7890a3;margin-bottom:7px;font-weight:500}.wide-button{width:100%;border-top:1px solid var(--line);font-size:11px;color:#698196}.category-option{display:flex;width:100%;padding:12px 18px;text-align:left;border-bottom:1px solid #e5ebf0;gap:14px;min-height:75px}.category-option:last-child{border:0}.category-option>span:nth-child(2){flex:1}.category-option strong{display:block;font-size:13px}.category-option small{display:block;margin-top:5px;color:#8293a1;font-size:10px}.category-option>b{font-size:16px;font-weight:600;color:#3f6686}.category-option>b small{display:inline;font-size:10px;font-weight:400}.category-plane{width:42px;height:42px;background:#f0f5f9;border-radius:50%;display:grid;place-items:center;color:#597e9c}.placement-bar{position:absolute;bottom:38px;left:50%;transform:translate(-50%);z-index:24;background:#fff;display:flex;align-items:center;padding:9px 12px;gap:var(--button-gap);box-shadow:var(--shadow);border:1px solid #bfccda;border-radius:6px;max-width:calc(100% - 30px);width:max-content}.placement-bar>div{max-width:350px}.placement-bar strong{display:block;font-size:12px}.placement-bar small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}.step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eaf3fb;color:#347fbb;font-size:15px;font-weight:600;flex-shrink:0}.primary{background:#337fbd;color:#fff;border-radius:4px;padding:0 16px;font-size:12px}.primary:hover{background:#2b6fa5}.aircraft-marker{width:52px;height:52px;background:transparent!important;border:0;border-radius:50%;padding:0;cursor:pointer}.aircraft-dot{width:19px;height:19px;background:var(--color);border:3px solid #20354b;border-radius:50%;box-shadow:0 0 0 2px #ffffffda,0 3px 8px #08213c65}.aircraft-marker.selected .aircraft-dot{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--color),0 3px 8px #08213c65}.aircraft-marker.held .aircraft-dot:after{content:"";display:block;box-sizing:border-box;width:6px;height:7px;border-left:2px solid #20354b;border-right:2px solid #20354b;margin:3px auto}.traffic-marker{width:48px;height:48px;padding:0;background:transparent!important}.traffic-symbol{display:block;width:23px;height:23px;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12%202%2021%2021%2012%2016%203%2021Z'%20fill='%23ffffff'%20stroke='%23163e5a'%20stroke-width='1.6'%20stroke-linejoin='round'/%3e%3c/svg%3e") center/contain no-repeat;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 1px 2px #173b5670);transform-origin:center}.traffic-marker.direction-unknown .traffic-symbol{width:14px;height:14px;background:#fff;border:2px solid #163e5a;border-radius:50%}.traffic-icon{width:15px;height:15px;display:inline-block;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12%202%2021%2021%2012%2016%203%2021Z'%20fill='%23ffffff'%20stroke='%23163e5a'%20stroke-width='1.6'%20stroke-linejoin='round'/%3e%3c/svg%3e") center/contain no-repeat;flex-shrink:0;margin:2px}.manual-legend{height:9px;width:9px;display:inline-block;border-radius:50%;background:#69b4e7;border:1px solid #345d7b;flex-shrink:0}.airport-marker{width:28px;height:28px;pointer-events:none;-webkit-user-select:none;user-select:none}.airport-marker img{display:block;width:100%;height:100%}.map-legend{position:absolute;left:16px;bottom:53px;background:#fffffff0;border:1px solid #d0dce7;border-radius:3px;display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:9px;color:#698196;pointer-events:none;z-index:10}.map-legend .traffic-icon{margin-left:7px}.maplibregl-ctrl-bottom-left{bottom:8px!important;left:6px!important}.maplibregl-ctrl-scale{background:#ffffffcf!important;border-color:#617b8f!important;color:#435d72!important;font-size:9px!important}.maplibregl-ctrl-attrib{font-size:9px!important;background:#ffffffe0!important}.toast{position:absolute;top:148px;left:50%;transform:translate(-50%);z-index:30;background:#233c54;color:#fff;border-radius:5px;box-shadow:var(--shadow);padding:8px 10px 8px 16px;font-size:11px;max-width:90%;display:flex;align-items:center;gap:var(--button-gap)}.toast button{min-height:36px;min-width:36px;color:#fff}.toast button:hover{background:#ffffff15}.map-error{position:absolute;top:80px;left:50%;transform:translate(-50%);z-index:25;background:#fff4dc;color:#85632f;padding:9px 15px;border:1px solid #d0b27e;border-radius:4px;max-width:80%;font-size:11px}.storage-notice{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:10px;background:#fff3d6;padding:5px 10px;z-index:25;white-space:nowrap}.loading-map{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#e8f0f699;pointer-events:none;font-size:12px;color:#456c89}.modal-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:#112b4760;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:50;padding:20px}.info-panel{background:#fff;width:440px;max-width:100%;border-radius:7px;box-shadow:0 15px 60px #09234255;max-height:90vh;overflow:auto}.info-panel h2{flex:1;font-size:18px}.info-panel p{padding:0 22px;margin-top:20px;font-size:12px;line-height:1.8;color:#6a7f92}.info-panel p strong{color:#344f66}.info-panel .info-sources{padding:18px 22px;background:#f0f5f9;font-size:10px}.info-panel a{text-decoration:none}@keyframes slide-in{0%{opacity:.5;scale:.98 1}to{opacity:1;scale:1}}@media(min-width:1500px){:root{--drawer:350px}}@media(min-width:851px)and (max-width:1200px){.traffic-status small{display:none}.traffic-status span{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(min-width:851px)and (max-width:1050px){.top-actions{gap:var(--button-gap)}.traffic-status span{max-width:50px}}@media(max-width:1050px){.identity .brand-subtitle{display:none}.topbar{gap:12px}.map-legend{display:none}}@media(max-width:700px){:root{--map-controls-top:137px;--board-edge:10px;--board-control-width:44px;--board-control-height:46px}.topbar{height:64px;gap:5px}.identity{gap:8px}.identity strong{font-size:17px}.top-actions{gap:var(--button-gap)}.top-actions>.icon-button{width:var(--board-control-width);min-width:var(--board-control-width)}.topbar-action{gap:5px;font-size:10px}.traffic-status small{display:none}.traffic-status svg{width:15px}.drawer-tabs{top:76px;grid-template-columns:44px 44px minmax(0,1fr);gap:var(--button-gap)}.drawer-tabs>button{width:44px;min-width:44px;padding:0;min-height:44px}.drawer-tabs>button>span,.drawer-tabs>button>b{display:none}.drawer-tabs>button>svg{width:17px}.drawer{top:130px;bottom:108px;width:min(340px,calc(100% - 18px))}.drawer-heading{padding:11px 16px}.map-controls.drawer-is-open{right:var(--board-edge);visibility:hidden}.map-controls.left-controls,.map-controls.left-controls.drawer-is-open{left:var(--board-edge);right:auto}.bottom-toolbar{bottom:calc(26px + env(safe-area-inset-bottom));gap:var(--button-gap);padding:4px;max-width:calc(100% - 20px)}.bottom-toolbar button{padding:0 12px;min-height:50px}.bottom-toolbar .add-aircraft{min-width:145px}.board-count{gap:5px}.hold-board span{display:none}.hold-board{width:49px}.aircraft-menu,.add-menu{bottom:calc(98px + env(safe-area-inset-bottom));width:min(350px,calc(100% - 20px));z-index:25}.placement-bar{bottom:calc(28px + env(safe-area-inset-bottom));gap:var(--button-gap);padding:8px 9px;max-width:calc(100% - 18px)}.placement-bar>div{max-width:200px}.placement-bar strong{font-size:11px}.placement-bar small{font-size:9px}.placement-bar .icon-button{width:35px;min-width:35px}.placement-bar .primary{padding:0 10px}.step-number{width:29px;height:29px}.toast{top:128px;font-size:10px;width:max-content;max-width:92%}.map-error{top:128px;width:90%;text-align:center}.storage-notice{font-size:9px;white-space:normal;bottom:4px;width:80%;text-align:center}.maplibregl-ctrl-attrib{font-size:8px!important}.maplibregl-ctrl-bottom-left{bottom:2px!important}.maplibregl-ctrl-scale{max-width:70px!important}.menu-actions button{min-height:65px}.category-option{min-height:72px}}@media(max-width:380px){.topbar{gap:4px}.identity strong{font-size:15px}.top-actions{gap:var(--button-gap)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.registration-field{padding:12px 18px 0}.registration-label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;color:#6b8093}.optional-label{color:#91a0ae;font-size:10px}.registration-control{position:relative}.registration-control input{width:100%;height:46px;border:1px solid #cfdae4;border-radius:4px;padding:0 48px 0 12px;background:#f8fafc;color:#294963;font-size:15px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}.registration-control input::placeholder{text-transform:none;font-weight:400;letter-spacing:0;color:#91a0ae}.registration-toggle{position:absolute;right:1px;top:1px;width:44px;min-height:44px;border-left:1px solid #dce3e9;border-radius:0 3px 3px 0;color:#597e9c}.registration-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.add-menu .registration-field{padding-bottom:14px;border-bottom:1px solid var(--line)}.registration-suggestions{margin-top:7px;border:1px solid #d6e1eb;border-radius:4px;overflow:hidden;background:#fff}.registration-suggestion-heading{display:flex;align-items:center;gap:6px;padding:9px 10px;background:#edf4fa;color:#57758e;font-size:10px}.registration-suggestion-heading small{margin-left:auto;font-size:9px}.registration-options{max-height:156px;overflow-y:auto;overscroll-behavior:contain}.registration-option{width:100%;min-height:52px;justify-content:flex-start;padding:9px 10px;text-align:left;border-top:1px solid #e5ebf0;gap:8px}.registration-option strong{font-size:12px;letter-spacing:.3px}.registration-option small{margin-left:auto;color:#718597;font-size:9px;white-space:nowrap}.registration-option svg{color:#337fbd}.registration-option.highlighted{background:#e7f2fb}.registration-empty{padding:12px 10px;font-size:11px;color:#718597;line-height:1.6}.add-menu-actions{display:flex;justify-content:flex-end;gap:var(--button-gap);padding:10px 18px}.add-menu-actions .primary{min-width:100px;border-radius:5px}.add-menu.placement-details{bottom:calc(38px + env(safe-area-inset-bottom))}.aircraft-type-field{display:flex;flex-direction:column;gap:8px;padding:12px 18px 14px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.aircraft-type-field input{width:100%;height:46px;border:1px solid var(--field-border);border-radius:4px;padding:0 12px;background:var(--field-surface);color:var(--text);font-size:15px;font-weight:600;text-transform:uppercase}.aircraft-type-field input::placeholder{text-transform:none;font-weight:400;color:var(--muted)}.aircraft-menu,.add-menu{max-height:calc(100dvh - 192px);overflow-y:auto;overscroll-behavior:contain}@media(max-width:700px){.aircraft-menu,.add-menu{max-height:calc(100dvh - 174px - env(safe-area-inset-bottom))}}.section-toggle{width:100%;min-height:46px;text-align:left;border-bottom:1px solid var(--line)}.section-toggle-meta{display:flex;align-items:center;gap:10px}.section-toggle-meta svg{transition:transform .15s ease}.section-toggle[aria-expanded=true] .section-toggle-meta svg{transform:rotate(90deg)}.aircraft-marker,.traffic-marker{z-index:2}.map.placing .aircraft-marker,.map.placing .traffic-marker{pointer-events:none}.map[data-placing-aircraft] :is(.aircraft-marker:not(.waypoint-aircraft),.traffic-marker){opacity:var(--placement-traffic-opacity)}.waypoint-drag-hint{position:absolute;left:50%;top:146px;transform:translate(-50%);z-index:26;background:#22374ef2;color:#fff;padding:12px 16px;border-radius:5px;font-size:12px;box-shadow:var(--shadow);pointer-events:none;max-width:90%;text-align:center}.maplibregl-canvas{touch-action:none}@media(max-width:700px){.waypoint-drag-hint{top:128px;font-size:11px}}.traffic-registration,.aircraft-registration{position:absolute;top:40px;left:50%;transform:translate(-50%);width:max-content;max-width:150px;padding:3px 6px;border-radius:3px;background:#22374ef2;color:#fff;font-size:10px;font-weight:650;letter-spacing:.35px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 4px #08213c40;pointer-events:none}.altitude-reference{padding:0 20px 16px;color:#6b8093;font-size:10px;line-height:1.6}.reported-menu .report-facts{gap:20px;flex-wrap:wrap}.waypoint-menu-hint{padding:16px 18px;color:#6b8093;font-size:11px;line-height:1.6}.waypoint-menu .menu-heading>svg{color:#337fbd}.waypoint-menu .menu-actions button{flex-direction:row;font-size:12px;min-height:52px}.route-waypoint-menu .menu-heading{min-height:63px;padding:8px 18px;border-bottom:0}.aircraft-registration{top:42px}.traffic-registration-field .registration-control input{padding-right:12px}.traffic-registration-hint{margin-top:8px;font-size:10px;line-height:1.5;color:#718597}.reset-registration{min-height:46px;padding:0 8px;margin:3px 0 0 -8px;border-radius:4px;color:#337fbd;font-size:11px}.aircraft-marker{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.aircraft-marker.dragging{cursor:grabbing}.aircraft-marker.dragging .aircraft-dot{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--color),0 3px 8px #08213c65}.registration-option-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.registration-option-meta>span:first-child:not(:last-child){font-weight:600;color:inherit}.feedback-stack{position:absolute;top:148px;left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 28px);width:max-content;pointer-events:none}.feedback-stack .toast{position:static;transform:none;max-width:100%;width:auto;pointer-events:auto}.move-undo{gap:var(--button-gap);padding:8px 8px 8px 16px;border:1px solid #59738d}.move-undo-label{display:flex;flex-direction:column;gap:5px;min-width:0;max-width:240px}.move-undo-label strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-undo-label small{font-size:10px;color:#c5d8e9;line-height:1.4}.toast .undo-action{min-height:48px;padding:0 13px;background:#ffffff18;border:1px solid #9ab5cd;border-radius:4px;white-space:nowrap;font-weight:600;flex-shrink:0}.toast .undo-action:hover{background:#ffffff2b}.toast .dismiss-undo{min-width:44px;min-height:48px;border-radius:4px;flex-shrink:0}@media(max-width:700px){.feedback-stack{top:128px;max-width:calc(100% - 20px)}.move-undo{gap:var(--button-gap);padding-left:10px}.move-undo-label{max-width:150px}.move-undo-label strong{font-size:11px}.toast .undo-action{padding:0 10px}.move-undo-label small{font-size:9px}}.aircraft-actions{justify-content:flex-start}.aircraft-actions>button{flex:0 1 calc((100% - 2 * var(--button-gap))/3);min-width:0;padding:0 6px}.traffic-conversion p{font-size:11px;line-height:1.6;color:var(--muted);margin:9px 18px 14px}.traffic-conversion .conversion-speeds{margin:10px 18px 14px}.conversion-speeds{display:flex;gap:var(--button-gap);margin-top:10px}.conversion-speeds button{flex:1;min-height:64px;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:4px}.conversion-speeds strong{font-size:12px}.conversion-speeds span{font-size:11px;color:var(--muted)}.aircraft-altitude,.traffic-altitude{position:absolute;bottom:42px;left:50%;transform:translate(-50%);width:max-content;max-width:180px;padding:3px 6px;border-radius:3px;background:#22374ef2;color:#fff;font-size:10px;font-weight:650;letter-spacing:.25px;line-height:1.3;white-space:nowrap;box-shadow:0 1px 4px #08213c40;pointer-events:none}.traffic-altitude{bottom:40px}.altitude-field{margin-top:14px;padding:14px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.aircraft-type-field+:is(.altitude-field,.pattern-altitude-readout){margin-top:0;border-top:0}.altitude-field-heading{display:flex;gap:8px;align-items:center;font-size:11px;color:#6b8093;margin-bottom:9px}.altitude-reference-picker{display:flex;height:40px;border:1px solid #cfdae4;border-radius:5px;overflow:hidden;background:#f8fafc}.altitude-reference-picker button{flex:1;min-height:0;height:100%;padding:0 5px;font-size:11px;white-space:nowrap}.altitude-reference-picker button+button{border-left:1px solid #cfdae4}.altitude-reference-picker button[aria-pressed=true]{background:#337fbd;color:#fff;font-weight:600}.altitude-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:11px;color:#6b8093}.altitude-entry>div{position:relative;width:100%;flex-shrink:0}.altitude-entry input,.speed-input input{width:100%;min-width:0;height:48px;padding:0 8px;border:1px solid #cfdae4;border-radius:4px;background:#f8fafc;color:#294963;font-size:15px;font-weight:600}.altitude-entry input[aria-invalid=true]{border-color:#bc524e}.altitude-field-hint{margin-top:8px;font-size:10px;line-height:1.5;color:var(--muted)}.altitude-field-hint.invalid{color:#bc524e}.altitude-field-footer{display:grid;gap:8px;margin-top:6px;font-size:9px;line-height:1.5;color:var(--muted)}.altitude-field-footer button{flex:1;min-width:0;min-height:48px;padding:0 10px;margin:0;border:1px solid var(--line);border-radius:5px;white-space:nowrap;font-size:10px;color:#337fbd}.add-menu .altitude-field{padding-top:12px}.altitude-field-footer>div{display:flex;align-items:center;gap:var(--button-gap);width:100%}.altitude-field-footer>div:empty{display:none}.map-controls .reset-map-view{flex-direction:column;gap:1px;min-height:48px;color:var(--blue);border-top:1px solid var(--line)}.map-controls .reset-map-view small{font-size:10px;font-weight:650}.map-controls .ground-view{flex-direction:column;gap:1px}.map-controls .ground-view small{font-size:9px;font-weight:600}.map-controls .map-lock-toggle[aria-pressed=true]{background:#337fbd;color:#fff}.map-controls .map-lock-toggle[aria-pressed=true]:hover{background:#286da5}.map-controls button:disabled:hover{background:transparent}select:not([multiple]):not([size]),select[size="1"]:not([multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-inline-end:40px;cursor:pointer}select:disabled{cursor:not-allowed}select:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media(forced-colors:active){select:not([multiple]):not([size]),select[size="1"]:not([multiple]){-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background-image:none;padding-inline-end:12px}}.traffic-feed-recovery{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.traffic-feed-recovery p{font-size:11px;line-height:1.6;color:var(--muted)}.traffic-feed-recovery button{min-height:44px;padding:0 12px;border-radius:5px;background:var(--surface);color:var(--text);font-size:11px}.row-main strong .traffic-source-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:600;line-height:12px;letter-spacing:.2px;color:var(--muted);background:var(--surface-subtle);padding:2px 5px;border-radius:3px;margin-left:4px;vertical-align:middle;white-space:nowrap}.traffic-source-badge>.traffic-quality-status{margin-left:0;flex-shrink:0}.left-drawer .drawer-content>.traffic-row:last-child{border-bottom:0}.traffic-source-help{font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px}.identity .brand-home{padding:0 12px;border:0;border-radius:5px;min-height:46px;text-align:left;color:inherit}.info-panel .info-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:24px 22px;margin-top:20px;color:var(--muted);font-size:11px;line-height:1.8}.empty-state .traffic-feed-retry{margin-top:12px;padding:0 12px;min-height:44px;border-radius:5px;background:var(--surface);color:var(--text);font-size:11px}.manual-strip-row{padding:0;gap:var(--button-gap);align-items:center}.manual-strip-row .strip-main{flex:1;min-width:0;align-self:stretch;justify-content:flex-start;text-align:left;gap:10px;padding:16px 14px}.strip-main .strip-details{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px;overflow-wrap:anywhere}.strip-main .strip-color,.strip-main .strip-state{flex-shrink:0}.aircraft-menu-heading{padding:8px 10px;gap:var(--button-gap)}.aircraft-menu-toggle{flex:1;min-width:0;min-height:46px;padding:6px 8px;gap:12px;border-radius:5px;text-align:left}.aircraft-menu-title{flex:1;min-width:0}.aircraft-menu-title strong,.aircraft-menu-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aircraft-menu-heading>.icon-button{flex-shrink:0;min-height:46px}.aircraft-menu.is-collapsed>.aircraft-menu-heading{border-bottom:0}.aircraft-menu-content[hidden]{display:none}.numeric-input-error{display:block;color:#b84c48;font-size:10px;line-height:1.5;font-weight:400;letter-spacing:0;text-transform:none;margin-top:4px}[data-theme=dark] .numeric-input-error{color:#f3a49e}input[aria-invalid=true]{border-color:#b84c48}.topbar button{min-height:var(--board-control-height);height:var(--board-control-height)}.topbar .icon-button{width:var(--board-control-width);min-width:var(--board-control-width);padding:0}.topbar :is(.topbar-action,.brand-home){padding:0 12px}.aircraft-edit-controls{min-width:0;margin:0;padding:0;border:0}.map-controls .north-map-view{flex-direction:column;gap:1px;color:var(--blue)}.map-controls .north-map-view svg{width:18px;height:18px}.map-controls .north-map-view small{font-size:9px;line-height:12px}:root{color-scheme:light;--surface:#fff;--surface-subtle:#f0f5f9;--field-surface:#f8fafc;--field-border:#cfdae4;--text:#20344c;--hover:#e8f1f8;--selected-surface:#e8f2fa;--selected-text:#235b87;--warning-surface:#fff0d9;--warning-text:#9d491f;--warning-border:#e5d0ac;--danger:#bc524e;--modal-shade:#112b4760;--select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c7c8e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}:root[data-theme=dark]{color-scheme:dark;color:#e2eaf1;background:#101821;--navy:#111c29;--blue:#3d8fc9;--line:#304357;--muted:#a0b1c2;--shadow:0 4px 20px #0006;--surface:#182635;--surface-subtle:#203244;--field-surface:#101d2b;--field-border:#486078;--text:#e2eaf1;--hover:#293f54;--selected-surface:#294760;--selected-text:#e5f1fa;--warning-surface:#42361f;--warning-text:#f1d49b;--warning-border:#8d7444;--danger:#ff9f99;--modal-shade:#030a13a6;--select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0b1c2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");scrollbar-color:#4b6179 #142130}.theme-toggle{border:0}.theme-toggle[aria-pressed=true]{color:#f3d299;background:#ffffff0b}[data-theme=dark] .map{background:#0d1927}[data-theme=dark] a{color:#8ac8f6}[data-theme=dark] button:hover{background:#293f54}[data-theme=dark] button:active{background:#344d64}[data-theme=dark] .topbar button:hover{background:#ffffff18}[data-theme=dark] :is(.drawer,.drawer-heading,.drawer-footer,.map-controls,.bottom-toolbar,.aircraft-menu,.add-menu,.placement-bar,.info-panel,.registration-suggestions){background:var(--surface);border-color:var(--line)}[data-theme=dark] .drawer-tabs>button{background:#182635f5;border-color:#415971;box-shadow:var(--shadow)}[data-theme=dark] .drawer-tabs>button:hover{background:#293f54}[data-theme=dark] .drawer-tabs>button.active{background:#337fbd;border-color:#66ade0;color:#fff}[data-theme=dark] :is(.drawer-tabs b,.count-badge,.strip-state){background:#2a4056;color:#c2d9ed}[data-theme=dark] .drawer-tabs .active b{background:#ffffff24;color:#fff}[data-theme=dark] :is(.feed-summary,.section-label,.info-panel .info-sources,.registration-suggestion-heading){background:#203244;color:#afc7db}[data-theme=dark] .section-toggle:hover{background:#293f54}[data-theme=dark] :is(.switch-label,.empty-state h3,.hold-board,.board-count,.speed-input,.wide-button,.registration-label,.registration-toggle,.altitude-reference,.waypoint-menu-hint){color:#b0c5d8}[data-theme=dark] :is(.row-main span span,.row-main small,.row-main strong small,.strip-row strong span,.strip-row small,.drawer-footer,.report-facts small,.category-option small,.optional-label,.registration-option small,.registration-empty,.traffic-registration-hint,.info-panel p){color:var(--muted)}[data-theme=dark] .info-panel p strong{color:#e2eaf1}[data-theme=dark] :is(.speed-input input,.registration-control input){background:#101d2b;border-color:#486078;color:#e2eaf1}[data-theme=dark] .registration-control input::placeholder{color:#92a8bd}[data-theme=dark] :is(.registration-toggle,.registration-option,.category-option){border-color:var(--line)}[data-theme=dark] :is(.registration-option.highlighted,.strip-row.selected){background:#294760}[data-theme=dark] :is(.registration-option svg,.reset-registration,.waypoint-menu .menu-heading>svg){color:#8ac8f6}[data-theme=dark] .visibility-toggle{border-color:#486078;color:#a0b6c9}[data-theme=dark] .visibility-toggle.on{background:#243f56;border-color:#5081a7;color:#8ac8f6}[data-theme=dark] :is(.category-plane,.step-number){background:#29435c;color:#abd6f7}[data-theme=dark] .category-option>b{color:#abd6f7}[data-theme=dark] .hold-board[aria-pressed=true]{background:#4b3b20;color:#f1cd83}[data-theme=dark] .danger{color:#ff9f99}[data-theme=dark] .map-controls>span{background:var(--line)}[data-theme=dark] :is(.primary,.bottom-toolbar .add-aircraft){background:#337fbd;color:#fff}[data-theme=dark] :is(.primary:hover,.bottom-toolbar .add-aircraft:hover){background:#428ec8}[data-theme=dark] .map-legend{background:#182635f0;border-color:#415971;color:#b0c5d8}[data-theme=dark] .traffic-symbol{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 1px 2px #0008)}[data-theme=dark] :is(.traffic-registration,.aircraft-registration){background:#101c2df2;color:#e5f0fa;box-shadow:0 0 0 1px #57718b,0 2px 5px #0006}[data-theme=dark] .toast{background:#263e56;border:1px solid #57718b}[data-theme=dark] :is(.map-error,.storage-notice){background:#42361f;color:#f1d49b;border-color:#8d7444}[data-theme=dark] .loading-map{background:#101821bb;color:#b0c5d8}[data-theme=dark] .modal-shade{background:var(--modal-shade)}[data-theme=dark] .waypoint-drag-hint{background:#182b3ef2;border:1px solid #57718b}[data-theme=dark] .maplibregl-ctrl-scale{background:#182635e6!important;border-color:#8aa7c2!important;color:#d5e5f3!important}[data-theme=dark] .maplibregl-ctrl-attrib{background:#182635eb!important;color:#b0c5d8}[data-theme=dark] .maplibregl-ctrl-attrib a{color:#c7e2f7}[data-theme=dark] .maplibregl-ctrl-attrib-button{filter:invert(1)}@media(max-width:420px){.traffic-status span{display:none}.traffic-status{width:44px;padding:0}.traffic-status svg{width:18px}}[data-theme=dark] :is(.aircraft-altitude,.traffic-altitude){background:#101c2df2;color:#e5f0fa;box-shadow:0 0 0 1px #57718b,0 2px 5px #0006}[data-theme=dark] :is(.altitude-field-heading,.altitude-entry){color:#b0c5d8}[data-theme=dark] :is(.altitude-reference-picker,.altitude-entry input){background:#101d2b;border-color:#486078;color:#e2eaf1}[data-theme=dark] .altitude-reference-picker button+button{border-color:#486078}[data-theme=dark] .altitude-reference-picker button[aria-pressed=true]{background:#337fbd;color:#fff}[data-theme=dark] .altitude-field-footer button{color:#8ac8f6}[data-theme=dark] .altitude-field-hint.invalid{color:#ff9f99}[data-theme=dark] .altitude-entry input[aria-invalid=true]{border-color:#ff9f99}.airport-marker{--waypoint-color:#f501ff;width:48px;height:48px;min-height:48px;padding:0;border:0;border-radius:50%;background:transparent!important;pointer-events:auto;cursor:pointer;z-index:1}.airport-marker>.airport-waypoint-dot{pointer-events:none}.airport-qfu-label{white-space:nowrap;background:#22374ef2;color:#fff;border-radius:3px;pointer-events:none}.airport-qfu-labels{pointer-events:none;visibility:hidden}.map:has(.airport-marker:focus-visible) .airport-qfu-labels{visibility:visible}@media(hover:hover){.map:has(.airport-marker:hover) .airport-qfu-labels{visibility:visible}}.airport-qfu-labels:not([hidden]){display:flex;flex-direction:column;align-items:center;gap:3px}.airport-marker:disabled{opacity:1;pointer-events:none}.airport-menu-layout{position:absolute;top:var(--map-controls-top);left:16px;width:390px;max-width:calc(100% - 32px);display:flex;align-items:flex-start;gap:var(--button-gap);z-index:24;pointer-events:none}.airport-menu-layout.has-toolbar{width:calc(390px + 48px + var(--button-gap))}.airport-menu{position:relative;flex:1;min-width:0;max-height:calc(100dvh - var(--map-controls-top) - 108px);overflow:auto;overscroll-behavior:contain;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);pointer-events:auto}.airport-menu-layout.has-toolbar>.airport-menu{max-height:calc(100dvh - var(--map-controls-top) - 150px)}.airport-code{font-size:10px;margin-left:8px;color:#ad21b2;letter-spacing:.6px}.airport-menu .menu-heading{position:sticky;top:0;background:inherit;z-index:2}.airport-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 14px;gap:var(--button-gap)}.airport-tabs>button{flex:1;min-height:50px;border-bottom:3px solid transparent;font-size:12px;color:var(--muted)}.airport-tabs>button[aria-selected=true]{border-color:#b425bd;color:#9e21a6;font-weight:650}.airport-tabs span{padding:2px 6px;background:#f4e9f6;border-radius:4px;font-size:10px}.airport-panel{padding:14px}.airport-help{font-size:11px;line-height:1.6;color:var(--muted)}.runway-list{margin:10px 0}.runway-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.runway-option>div:first-child{min-width:0}.runway-option strong{font-size:13px}.runway-option small{display:block;margin-top:5px;font-size:10px;line-height:1.4;color:var(--muted)}.runway-directions{display:flex;gap:var(--button-gap);flex-shrink:0}.runway-directions button{min-height:54px;min-width:55px;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:5px;padding:5px}.runway-directions button[aria-pressed=true]{background:#337fbd;border-color:#337fbd;color:#fff}.runway-directions button[aria-pressed=true] small{color:#e0eef9}.pattern-side{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.pattern-create{margin-bottom:14px}.pattern-create-toggle{width:100%;min-height:46px;padding:0 12px;border-radius:5px;gap:10px}.pattern-create-toggle>span{flex:1;text-align:left}.pattern-create-toggle[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.pattern-create-options{margin-top:8px;padding:0 10px;border:1px solid var(--line);border-radius:5px}.pattern-create-options[hidden]{display:none}.pattern-create-runway{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.pattern-create-runway:last-child{border-bottom:0}.pattern-create-runway>span{font-size:11px;color:var(--muted)}.pattern-create-runway>div{display:flex;gap:var(--button-gap);flex-shrink:0}.pattern-create-runway button{min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:4px;font-size:12px}.pattern-filter{margin:0 0 10px}.pattern-group+.pattern-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.pattern-group>h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:11px;font-weight:600;color:var(--muted)}.pattern-group>h3>span{min-width:20px;padding:3px 5px;text-align:center;border:1px solid var(--line);border-radius:4px;font-size:10px}.pattern-group>.airport-empty{margin:0;padding:10px 0;text-align:left}.pattern-side button{flex:1;min-height:46px;font-size:12px}.pattern-side button[aria-pressed=true]{background:#edf4fa;color:#276a9e;font-weight:600}.saved-pattern{display:flex;align-items:flex-start;flex-wrap:wrap;gap:0 var(--button-gap);padding:8px 0;border-bottom:1px solid var(--line)}.saved-pattern:last-child{border-bottom:0}.pattern-summary{flex:1;min-width:0}.pattern-name-input,.pattern-editor-heading input{display:block;width:100%;height:46px;margin-top:6px;border:1px solid #cfdae4;border-radius:4px;background:#f8fafc;color:#294963;font:inherit;font-size:14px;font-weight:600;padding:0 10px}.pattern-name-input{height:44px;margin:0;padding:0 8px;font-size:12px;min-width:0}.saved-pattern-details{flex-basis:100%;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}.pattern-row-actions{display:flex;flex-shrink:0;gap:var(--button-gap)}.pattern-row-actions>button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:4px}.pattern-row-actions>button[aria-pressed=true]{color:#9e21a6;background:#fbf0fc}.airport-empty{font-size:12px;line-height:1.7;padding:22px 9px;color:var(--muted);text-align:center}.pattern-editor-bar{position:absolute;bottom:36px;left:50%;transform:translate(-50%);width:440px;max-width:calc(100% - 24px);max-height:48dvh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);padding:14px 16px;z-index:24}.pattern-editor-bar.is-collapsed{padding:8px 10px}.pattern-editor-top{display:flex;align-items:center;gap:var(--button-gap)}.pattern-editor-top>.pattern-editor-toggle{flex:1;min-width:0}.pattern-editor-top>.icon-button{flex-shrink:0;width:36px;min-width:36px;min-height:46px}.pattern-editor-toggle{width:100%;min-height:46px;padding:6px 8px;gap:12px;border-radius:5px;text-align:left}.pattern-editor-toggle>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650}.pattern-editor-bar:not(.is-collapsed)>.pattern-editor-top{margin-bottom:10px}.pattern-editor-content[hidden]{display:none}.pattern-editor-heading{display:flex;align-items:flex-start;gap:12px}.pattern-editor-fields{display:grid;gap:12px;flex:1;min-width:0}.pattern-previous-altitude{display:block;margin-top:6px;line-height:1.5;color:var(--muted)}.pattern-editor-heading label{flex:1;min-width:0;font-size:10px;color:var(--muted)}.pattern-editor-details{display:block;margin-top:6px;font-size:10px;color:var(--muted);line-height:1.6}.pattern-editor-content>p{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 0}.pattern-editor-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--button-gap)}.pattern-editor-actions>button{border:1px solid var(--line);border-radius:4px;min-height:48px;padding:0 14px}.pattern-editor-actions>.primary{border-color:#337fbd}.pattern-editor-actions>.icon-button{padding:0}.pattern-handle{width:48px;height:48px;min-height:48px;padding:0;background:transparent!important;border:0;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;z-index:6}.pattern-grip{width:15px;height:15px;border:2px solid #b51ec0;background:#fff;border-radius:3px;box-shadow:0 0 0 2px #fffb,0 2px 7px #0005;pointer-events:none}.pattern-leg .pattern-grip{width:11px;height:11px;border-radius:50%;background:#f501ff;border-color:#fff;box-shadow:0 0 0 1px #b51ec0,0 2px 7px #0005}.pattern-leg-label,.pattern-map-label{background:#fff2fff0;border:1px solid #c471c9;color:#7c1b83;border-radius:3px;padding:3px 6px;font-size:10px;line-height:1.4;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px #0002}.pattern-leg-label{position:absolute;top:39px;left:50%;transform:translate(-50%)}.pattern-map-label{max-width:190px;overflow:hidden;text-overflow:ellipsis}.map.editing-pattern :is(.aircraft-marker,.traffic-marker,.airport-marker){pointer-events:none}.board.editing-pattern .drawer-tabs{display:none}[data-theme=dark] :is(.airport-menu,.pattern-editor-bar){background:#182635;border-color:var(--line)}[data-theme=dark] .airport-code{color:#f694fb}[data-theme=dark] .airport-tabs>button[aria-selected=true]{color:#f694fb;border-color:#f501ff}[data-theme=dark] .airport-tabs span{background:#4d2854}[data-theme=dark] .pattern-side button[aria-pressed=true]{background:#294760;color:#c2dff4}[data-theme=dark] :is(.pattern-name-input,.pattern-editor-heading input){background:#101d2b;border-color:#486078;color:#e2eaf1}[data-theme=dark] .pattern-row-actions>button[aria-pressed=true]{color:#f694fb;background:#392940}[data-theme=dark] :is(.pattern-leg-label,.pattern-map-label){background:#301e36f5;border-color:#ab5fb3;color:#f6b6ff}[data-theme=dark] .airport-qfu-label{background:#101c2df2;box-shadow:0 0 0 1px #57718b}@media(max-width:700px){.airport-menu-layout{left:10px;max-width:calc(100% - 20px)}.airport-menu-layout.has-toolbar{width:calc(390px + 46px + var(--button-gap))}.airport-menu{max-height:calc(100dvh - var(--map-controls-top) - 106px - env(safe-area-inset-bottom))}.airport-menu-layout.has-toolbar>.airport-menu{max-height:calc(100dvh - var(--map-controls-top) - 150px - env(safe-area-inset-bottom))}.pattern-editor-bar{bottom:calc(26px + env(safe-area-inset-bottom));padding:11px 12px}.pattern-editor-heading{gap:8px}.pattern-editor-actions>button{font-size:11px;padding:0 10px}.runway-directions button{min-width:50px}}.airport-qfu-label,.aircraft-registration,.aircraft-registration-group>.aircraft-circuit-count,.traffic-registration,.aircraft-altitude,.traffic-altitude,.pattern-map-label,.pattern-leg-label{box-sizing:border-box;height:19px;padding:2px 5px;border:1px solid transparent;font:650 10px/13px Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.35px;white-space:nowrap}.pattern-map-label,.pattern-leg-label{border-color:#c471c9}.aircraft-registration-group{position:absolute;top:42px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;width:max-content;pointer-events:none}.aircraft-registration-group>.aircraft-registration{position:static;transform:none}.aircraft-registration-group>.aircraft-circuit-count{min-width:19px;padding:0 4px;border-color:#879eaf;border-radius:3px;font-variant-numeric:tabular-nums;letter-spacing:0;box-shadow:0 1px 4px #08213c40}[data-theme=dark] .aircraft-registration-group>.aircraft-circuit-count{border-color:transparent;box-shadow:0 0 0 1px #57718b,0 2px 5px #0006}.aircraft-registration-group[hidden],.aircraft-circuit-count[hidden]{display:none}.labels-on-hover:not(:hover):not(:focus-visible)>:is(.aircraft-registration-group,.aircraft-altitude,.traffic-registration,.traffic-altitude){visibility:hidden}.airport-points-editor{min-width:0}.airport-points-title h3{display:flex;align-items:center;gap:10px;font-size:13px;margin:0}.airport-points-source{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-points-source>div:first-child{display:grid;gap:5px;min-width:0}.airport-points-source strong{font-size:12px;font-weight:600}.airport-points-source span{font-size:11px;color:var(--muted)}.airport-points-source .spinning{animation:workspace-spin .8s linear infinite}.airport-point-actions{display:flex;align-items:center;gap:var(--button-gap);flex-shrink:0}.airport-point-actions>button,.airport-point-actions>a{display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:4px}.airport-point-actions>a{color:var(--muted);text-decoration:none}.airport-point-actions>a:hover{background:var(--hover);color:var(--text)}.airport-points-list{display:grid;gap:8px}.airport-point-row{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-point-heading{display:flex;align-items:center;gap:var(--button-gap);padding:6px 8px}.airport-point-toggle{flex:1;display:flex;justify-content:flex-start;min-width:0;min-height:48px;padding:6px 4px;gap:10px;border-radius:4px;text-align:left}.airport-point-chevron{flex-shrink:0;color:var(--muted);transition:transform .15s ease}.airport-point-toggle[aria-expanded=true]>.airport-point-chevron{transform:rotate(90deg)}.airport-point-icon{width:22px;height:22px;flex-shrink:0}.airport-point-waypoint{display:grid;place-items:center}.route-waypoint-icon{--waypoint-color:#fff}.airport-point-summary{display:grid;gap:5px;min-width:0}.airport-point-summary>strong{font-size:12px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.airport-point-summary>small{font-size:10px;line-height:1.4;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.airport-point-origin{display:inline-block;vertical-align:middle;margin-left:6px;padding:1px 5px;border-radius:3px;background:var(--surface-subtle);color:var(--muted);font-size:9px;font-weight:550;letter-spacing:.2px}.airport-point-details{border:0;border-top:1px solid var(--line);margin:0;padding:16px;min-width:0}.airport-point-details[hidden]{display:none}.airport-point-fields.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.airport-point-name{grid-column:1/-1}.airport-point-coordinates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}.airport-point-coordinates dt{margin:0 0 6px;font-size:10px;color:var(--muted)}.airport-point-coordinates dd{margin:0;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.airport-point-links{display:flex;flex-wrap:wrap;gap:var(--button-gap);margin-top:12px}.airport-point-links>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:4px;color:var(--muted);text-decoration:none;font-size:11px}.airport-point-links>a:hover{color:var(--text);background:var(--hover)}.airport-points-review{margin-bottom:16px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-point-review-toggle{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:12px;text-align:left;border-radius:5px;font-size:12px}.airport-point-review-toggle>svg{flex-shrink:0;color:var(--muted);transition:transform .15s ease}.airport-point-review-toggle[aria-expanded=true]>svg{transform:rotate(90deg)}.airport-point-review-toggle small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.airport-point-review-body{border-top:1px solid var(--line);padding:0 12px 12px}.airport-point-differences{max-height:280px;overflow:auto;overscroll-behavior:contain}.airport-point-differences>div{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.airport-point-differences>div:last-child{border:0}.airport-point-review-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--button-gap);margin-top:12px}.airport-point-review-actions>.workspace-guidance{flex:1 1 200px;margin:0;font-size:11px}.airport-point-review-actions>button{min-height:44px}.airport-points-empty{display:grid;justify-items:center;gap:10px;padding:28px 16px;border:1px dashed var(--line);border-radius:6px;color:var(--muted);text-align:center}.airport-points-empty strong{font-size:12px;color:var(--text)}.airport-points-empty p{margin:0;font-size:11px;line-height:1.6}.airport-fix-marker{display:grid;place-items:center;width:20px;height:20px;pointer-events:none}.airport-fix-label{position:absolute;left:25px;top:1px;height:19px;max-width:170px;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;border:1px solid transparent;border-radius:3px;background:#22374ef2;color:#fff;font:650 10px/13px Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.35px;white-space:nowrap;box-shadow:0 1px 4px #08213c40}.airport-fix-marker.airport-waypoint-marker{width:14px;height:14px;min-height:14px;padding:0;border:0;border-radius:50%;background:transparent}.airport-waypoint-dot{display:block;box-sizing:border-box;width:14px;height:14px;border:2px solid #1e3b55;border-radius:50%;background:var(--waypoint-color,#00e5ff)}.airport-waypoint-marker>.airport-fix-label{left:19px;top:50%;transform:translateY(-50%);visibility:hidden;pointer-events:none}.airport-waypoint-marker:is(.is-hovered,:focus-visible)>.airport-fix-label{visibility:visible}@media(hover:hover){.map:has(:is(.aircraft-marker,.traffic-marker):hover) :is(.airport-fix-label,.ground-node-label,.airport-qfu-labels){visibility:hidden}}@media(hover:hover){.map:has(.airport-marker:hover) :is(.airport-fix-label,.ground-node-label){visibility:hidden}}.airport-waypoint-marker:focus-visible{outline:2px solid #fff;outline-offset:3px}.point-info-menu .menu-heading>div{min-width:0}.point-info-menu .menu-heading{min-height:63px;padding:8px 18px;border-bottom:0}.point-info-menu .menu-heading strong,.point-info-menu .menu-heading small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.point-info-menu .menu-heading>.icon-button{flex-shrink:0}.point-info-coordinates{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 18px;border-top:1px solid var(--line);background:var(--surface-subtle);color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.point-info-coordinates small{font-size:9px;color:inherit;margin-right:4px}[data-theme=dark] .airport-fix-label{background:#101c2df2;color:#e5f0fa;box-shadow:0 0 0 1px #57718b,0 2px 5px #0006}@media(max-width:600px){.airport-point-heading{gap:4px}.airport-point-toggle{gap:6px}.airport-point-icon{width:18px;height:18px}.airport-point-details{padding:12px}.airport-point-coordinates,.airport-point-fields.form-grid,.airport-point-differences .airport-aip-values{grid-template-columns:1fr}.airport-point-origin{margin-left:3px}}@media(prefers-reduced-motion:reduce){.airport-point-chevron,.airport-point-review-toggle>svg{transition:none}}.map-layers-menu{position:absolute;top:146px;right:74px;width:344px;max-width:calc(100% - 92px);max-height:calc(100dvh - 182px);overflow:auto;overscroll-behavior:contain;z-index:24;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow)}.map-layers-menu .menu-heading{position:sticky;top:0;background:inherit;z-index:2}.map-layers-menu .menu-heading>div{flex:1}.map-layers-content{--map-content-padding:16px;padding:var(--map-content-padding)}.basemap-options{min-width:0;padding:0;margin:calc(-1 * var(--map-content-padding)) calc(-1 * var(--map-content-padding)) 0;border:0;display:grid;gap:0}.basemap-options legend{width:100%;padding:16px var(--map-content-padding) 12px;border-bottom:1px solid var(--line);font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.basemap-options>.basemap-option{width:100%;justify-content:flex-start;min-height:74px;padding:12px var(--map-content-padding);text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;gap:12px;color:var(--text)}.basemap-options>.basemap-option:last-of-type{border-bottom:0}.basemap-description{min-width:0;flex:1;display:grid;gap:4px}.basemap-options strong{font-size:13px;line-height:1.3}.basemap-options small{font-size:11px;color:var(--muted);line-height:1.4}.basemap-preview{display:block;flex:none;width:42px;height:42px;border:1px solid #b5c7d1;border-radius:4px;overflow:hidden;background-color:#e0e6d2}.basemap-preview--osm{background-image:linear-gradient(35deg,transparent 35%,#fff 36% 40%,transparent 41%),linear-gradient(120deg,#c0d79f,#c0d79f 30%,#e2e8cf 31%,#e2e8cf 57%,#accbd9 58%,#accbd9 67%,#e7e0cb 68%)}.basemap-preview--ign-plan{background-image:linear-gradient(35deg,transparent 35%,#fff 36% 40%,transparent 41%),linear-gradient(120deg,#c8d2b3,#c8d2b3 30%,#e1e5d6 31%,#e1e5d6 57%,#bbcdd3 58%,#bbcdd3 67%,#e0ddd0 68%)}.basemap-preview--ign-photo{background-image:linear-gradient(20deg,#395242,#395242 28%,#6a7850 29%,#6a7850 58%,#50665a 59%,#50665a 79%,#8c8b73 80%)}.basemap-options>button[aria-checked=true],.basemap-options>button[aria-pressed=true]{background:var(--selected-surface);color:var(--selected-text)}.basemap-options>.basemap-option:not(:disabled):hover{background:var(--hover)}.basemap-options>.basemap-option:focus-visible{outline-offset:-3px}.basemap-options>button:disabled[aria-checked=true]{opacity:1}.basemap-options>button:disabled:not([aria-checked=true]){background:transparent}.basemap-help{padding-top:10px}.map-layer-section{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.map-layer-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:12px}.map-view-choice{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:9px}.map-view-choice button{flex:1;min-height:48px;font-weight:600}.map-view-choice button[aria-pressed=true]{background:#337fbd;color:#fff}.map-layer-help{font-size:10px;line-height:1.65;color:var(--muted);margin:5px 0}.map-layer-switch{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-size:12px}.map-layer-switch>span{display:flex;align-items:center;gap:8px}.aerial-night-option{padding:0 var(--map-content-padding) 8px calc(var(--map-content-padding) + 54px);margin:0;font-size:11px;background:var(--selected-surface)}.map-layer-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:40px;height:24px;margin:0;border-radius:20px;background:#aebdca;position:relative;cursor:pointer}.map-layer-switch input:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}.map-layer-switch input:checked{background:#337fbd}.map-layer-switch input:checked:before{transform:translate(16px)}.map-layer-switch input:disabled{opacity:.4;cursor:not-allowed}.map-layer-opacity{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px}.map-layer-opacity output{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted)}.map-layer-opacity input{width:100%;height:38px;margin:0;accent-color:#337fbd}.map-layer-error{border:1px solid #e6c79e;background:#fff5e6;color:#845b25;padding:10px 12px;border-radius:5px;font-size:11px;line-height:1.6;margin:10px 0}.map-controls .map-layers-toggle{position:relative;flex-direction:column;gap:1px;min-height:48px}.map-controls .map-layers-toggle small{font-size:9px;font-weight:600}.map-controls .map-layers-toggle[aria-expanded=true]{background:#337fbd;color:#fff}[data-theme=dark] .map-layers-menu{background:#182635}[data-theme=dark] .basemap-preview{border-color:#62778a;filter:brightness(.8)}[data-theme=dark] .map-layer-error{background:#42361f;color:#f1d49b;border-color:#8d7444}[data-theme=dark] .map-layer-disconnect{color:#ffada8}@media(max-width:700px){.map-layers-menu{top:130px;right:64px;max-width:calc(100% - 74px);max-height:calc(100dvh - 165px)}.map-layers-content{--map-content-padding:12px}}@media(max-height:560px){.map-layers-menu{top:80px;max-height:calc(100dvh - 96px)}.map-controls{max-height:calc(100dvh - 170px);overflow-y:auto}.map-controls button{flex-shrink:0}}.account-page{height:100%;overflow:auto;display:grid;place-items:center;background:radial-gradient(ellipse at top,#294560,#101c2a);padding:28px;color:var(--text)}.workspace-loading{height:100%;display:grid;place-items:center;background:var(--surface-subtle)}.workspace-spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:workspace-spin .8s linear infinite}@keyframes workspace-spin{to{transform:rotate(360deg)}}.auth-card{width:440px;max-width:100%;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:10px;color:var(--blue);margin-bottom:32px}.auth-brand strong{font-size:25px;color:var(--text)}.auth-brand span{font-size:9px;letter-spacing:2px;margin-left:auto;color:var(--muted)}.auth-card h1{font-size:22px;margin:0 0 12px;letter-spacing:-.5px}.auth-card p{font-size:13px;line-height:1.7;margin:12px 0;color:var(--muted)}.auth-card form{display:grid;gap:18px;margin-top:24px}.auth-card label,.management-form label{display:grid;gap:8px;min-width:0;font-size:12px;line-height:1.5;color:var(--muted)}.auth-card input,.management input,.management select{height:46px;min-width:0;border:1px solid var(--field-border);border-radius:4px;padding:0 12px;background:var(--field-surface);color:var(--text);font:inherit;width:100%}:is(.management,.auth-card) input::placeholder{color:var(--muted);opacity:1}.management :is(input,select):focus-visible{outline:3px solid var(--blue);outline-offset:2px}.management :is(input,select):disabled{opacity:.5;cursor:not-allowed}.auth-card .primary{min-height:48px}.auth-card .auth-note{font-size:11px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.auth-card button:not(.primary){min-height:48px;padding:0 16px;border:0;border-radius:4px;font-size:12px;color:var(--text)}.auth-card button:not(.primary):hover:not(:disabled){background:var(--hover)}.auth-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:var(--button-gap);margin-top:24px}.auth-actions>button{width:100%;min-width:0;min-height:48px;white-space:normal}.text-action{margin-top:10px}.setup-link{display:flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;margin-top:24px}.form-message,.management-message{color:var(--warning-text)!important;background:var(--warning-surface);border:1px solid var(--warning-border);border-radius:5px;padding:12px;line-height:1.6}.shared-status{position:absolute;left:16px;bottom:31px;font-size:10px;color:#eaf5ff;background:#22374ef0;padding:3px 7px;border-radius:3px;z-index:15}.sync-error,.workspace-error{position:absolute;z-index:55;top:78px;left:50%;transform:translate(-50%);width:min(650px,calc(100% - 30px));background:var(--warning-surface);color:var(--warning-text);border:1px solid var(--warning-border);border-radius:7px;padding:12px;box-shadow:var(--shadow);display:flex;gap:var(--button-gap);align-items:center;flex-wrap:wrap;font-size:12px}.sync-error span{flex-basis:100%;line-height:1.6}.sync-error button{border:1px solid var(--warning-border);border-radius:4px;padding:0 12px}.management-shade{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-shade);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;padding:28px;display:grid;place-items:center}.management-page{height:100%;padding:28px;display:grid;place-items:center;background:var(--surface-subtle)}.management-shade,.management-page{min-width:0;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding:clamp(10px,2vw,28px)}.management{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;width:100%;max-width:1100px;min-width:0;height:min(100%,900px);max-height:100%;min-height:0;display:flex;flex-direction:column;box-shadow:var(--shadow);overflow:hidden}.management>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;flex-shrink:0;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.management>header>div{min-width:0}.management .eyebrow{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.management h1{font-size:20px;letter-spacing:-.5px;margin:5px 0 8px;overflow-wrap:anywhere}.management header p{font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.management>header .icon-button{flex-shrink:0;border:1px solid var(--line);border-radius:4px}.management-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--button-gap);flex-shrink:0;max-width:100%;margin-left:auto}.management-signout{padding:0 12px;border:1px solid var(--line);border-radius:4px;font-size:12px;white-space:nowrap}.management nav{display:flex;flex-wrap:wrap;flex-shrink:0;padding:8px 24px;border-bottom:1px solid var(--line);gap:var(--button-gap);background:var(--surface-subtle)}.management nav button{padding:0 18px;border:1px solid transparent;border-radius:4px;font-size:12px;font-weight:550;color:var(--muted)}.management nav button[aria-pressed=true]{background:#337fbd;border-color:#337fbd;color:#fff}.management button:not(.primary):not([aria-pressed=true]):hover:not(:disabled){background:var(--hover)}.management-content{padding:24px;overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;min-width:0;overflow-wrap:anywhere}.management-section-title{display:flex;min-height:46px;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 16px}.management-section-title>button:not(.primary){border:1px solid var(--line);border-radius:4px;padding:0 12px;font-size:12px}.management-message{margin:12px 24px 0;font-size:12px;min-width:0;overflow-wrap:anywhere}.airport-card,.user-card{display:flex;align-items:center;gap:var(--button-gap);border:1px solid var(--line);border-radius:6px;padding:12px;margin-bottom:10px;background:var(--surface);flex-wrap:wrap}.airport-card>div,.user-card>div{flex:1 1 200px;min-width:0;max-width:100%}.airport-card strong,.user-card strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.airport-card small,.user-card small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.user-card>small{margin-top:0;align-self:center}.airport-card button,.user-card button,.runway-editor>button.danger{border:1px solid var(--line);border-radius:4px;padding:8px 12px;font-size:11px;min-width:0;max-width:100%;white-space:normal}.airport-card button[aria-pressed=true]{border-color:var(--blue);background:var(--selected-surface);color:var(--selected-text)}.airport-view-actions{display:inline-flex;align-items:stretch;max-width:100%;flex-shrink:0}.airport-view-actions>button:focus-visible{position:relative;z-index:1}.airport-demo-menu{position:fixed;z-index:80;display:grid;gap:var(--button-gap);width:180px;max-width:calc(100vw - 24px);padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.airport-demo-menu>button{display:flex;justify-content:flex-start;width:100%;min-height:46px;padding:0 12px;border:0;border-radius:4px;font-size:12px}.airport-demo-menu>button:hover,.airport-demo-menu>button:focus{background:var(--hover)}.user-card select{width:auto;max-width:180px;font-size:12px}.management-form{border:1px solid var(--line);border-radius:6px;padding:20px;margin-top:20px;background:var(--surface-subtle);min-width:0;max-width:100%}.management-form h2{font-size:16px;margin-bottom:20px}.oaci-settings,.screen-policy-settings{margin-top:0}.screen-policy-settings+.oaci-settings,.traffic-provider-settings+.oaci-settings{margin-top:20px}.management-form.screen-policy-settings>.workspace-guidance{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}.management .screen-policy-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;color:var(--text);cursor:pointer}.management .screen-policy-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;flex-shrink:0;width:42px;height:24px;padding:0;margin:0;border:0;border-radius:20px;background:var(--field-border);cursor:pointer}.screen-policy-switch input:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}.management .screen-policy-switch input:checked{background:var(--blue)}.screen-policy-switch input:checked:before{transform:translate(18px)}.oaci-settings a{display:inline-flex;align-items:center;gap:6px;color:var(--blue)}.oaci-status{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--text)}.oaci-status>svg{flex-shrink:0;color:var(--blue)}.oaci-status strong,.oaci-status span{display:block;font-size:13px;line-height:1.6}.oaci-status span{color:var(--muted);overflow-wrap:anywhere}.management-form+:is(.user-card,.airport-card){margin-top:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--button-gap);margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.form-actions button{padding:8px 18px;border:1px solid var(--line);border-radius:4px;font-size:12px;min-width:0;max-width:100%}.oaci-actions{align-items:center;gap:16px}.oaci-actions>.workspace-guidance{flex:1 1 320px;min-width:0;margin:0}.oaci-action-buttons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--button-gap);max-width:100%;margin-left:auto}.runway-accordion{min-width:0;margin:8px 0;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.runway-accordion-heading{margin:0;font:inherit}.runway-toggle{display:grid;grid-template-columns:17px auto minmax(0,1fr);width:100%;min-height:52px;gap:10px;padding:10px 12px;border-radius:5px;text-align:left}.runway-toggle>strong{font-size:12px;font-weight:600}.runway-toggle>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:11px;font-weight:400;color:var(--muted)}.runway-toggle>svg{color:var(--muted);transition:transform .15s ease}.runway-toggle[aria-expanded=true]{border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;background:var(--surface-subtle)}.runway-toggle[aria-expanded=true]>svg{transform:rotate(90deg)}.runway-editor{min-width:0;border:0;padding:14px;margin:0;background:var(--surface);border-radius:0 0 5px 5px}.runway-editor[hidden]{display:none}.runway-editor>button.danger{margin-top:8px}.checkbox-label{display:flex!important;align-items:center;gap:10px;min-height:44px;margin-top:12px;cursor:pointer}.checkbox-label input{width:20px;height:20px;flex-shrink:0;margin:0;padding:0;accent-color:var(--blue)}.management .checkbox-label{color:var(--text)}.management .primary{color:#fff;border-color:transparent}.management .danger{color:var(--danger)}.airport-removal{width:min(480px,calc(100% - 32px));max-height:calc(100% - 32px);margin:auto;padding:24px;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow)}.airport-removal::backdrop{background:var(--modal-shade);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.airport-removal h2{font-size:20px;margin:0 0 8px;overflow-wrap:anywhere}.airport-removal p{font-size:13px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere;margin:12px 0}.airport-removal .airport-removal-name{color:var(--text);font-weight:600}.workspace-guidance{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 18px}.drawer-tabs>.board-access{justify-self:center}.airport-assignments{border:1px solid var(--line);border-radius:6px;padding:12px;margin:16px 0;background:var(--surface);min-width:0}.airport-assignments legend{font-size:12px;color:var(--muted);max-width:100%;overflow-wrap:anywhere}.airport-assignments .checkbox-label{margin:0;min-height:44px;gap:10px}.membership-row+.membership-row{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.membership-controls{display:flex;align-items:center;gap:16px;padding:0 0 8px 30px;flex-wrap:wrap}.membership-controls select{width:auto;min-width:0;max-width:100%;flex:1 1 160px}.management-form>.workspace-guidance{margin:16px 0}.app-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app-settings-grid>.management-form{margin:0;padding:16px}.app-settings-grid>.oaci-settings,.app-settings-grid>.airport-directory-settings{grid-column:1/-1}.app-settings .management-form h2{font-size:14px;margin:0 0 10px}.app-settings .management-form>.workspace-guidance{margin:10px 0 0}.app-settings .screen-policy-settings>.workspace-guidance{padding-top:10px}.app-settings .oaci-settings-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px}.app-settings .oaci-settings-heading h2,.app-settings .oaci-status{margin:0}.app-settings .oaci-status{gap:8px}.app-settings .oaci-status strong,.app-settings .oaci-status span{font-size:12px;line-height:1.4}.app-settings .oaci-settings>label{margin-top:10px}.app-settings .oaci-actions{margin-top:12px;padding-top:12px;gap:12px}@media(max-width:700px){.app-settings-grid{grid-template-columns:minmax(0,1fr)}.app-settings-grid>.management-form{padding:12px}}.airport-code-input{display:flex;align-items:stretch;min-width:0;height:46px;border:1px solid var(--field-border);border-radius:4px;background:var(--field-surface);color:var(--text)}.airport-code-prefix{display:flex;align-items:center;padding:0 14px;border-right:1px solid var(--field-border);border-radius:3px 0 0 3px;background:var(--surface-subtle);font-weight:650;letter-spacing:.08em;flex-shrink:0;-webkit-user-select:none;user-select:none}.management .airport-code-input>input{flex:1;width:0;min-width:0;height:44px;border:0;border-radius:0 3px 3px 0;background:transparent;letter-spacing:.08em}.airport-code-input:focus-within{outline:3px solid var(--blue);outline-offset:2px}.management .airport-code-input>input:focus-visible{outline:none}.airport-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 20px;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-identity div{min-width:0}.airport-identity dt{font-size:11px;color:var(--muted);margin-bottom:6px}.airport-identity dd{font-size:13px;margin:0;overflow-wrap:anywhere}.airport-form output{display:flex;align-items:center;min-height:46px;padding:0 12px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px;font-weight:650;color:var(--text)}.airport-form .form-message button{margin-left:10px;padding:0 12px}.airport-form .workspace-guidance a{color:inherit}.airport-settings-tabs{display:flex;gap:var(--button-gap);padding:4px;margin:0 0 20px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-settings-tabs>button{flex:1;min-width:0;min-height:46px;padding:8px 12px;border-radius:4px;font-size:12px;font-weight:550;color:var(--muted)}.management .airport-settings-tabs>button[aria-selected=true],.management .airport-settings-tabs>button[aria-selected=true]:hover:not(:disabled){background:var(--blue);color:#fff}.airport-settings-tabs>button>span{min-width:22px;padding:2px 5px;border-radius:4px;background:var(--surface-subtle);font-size:10px;font-variant-numeric:tabular-nums}.airport-settings-tabs>button[aria-selected=true]>span{background:#ffffff24;color:inherit}.airport-settings-panel{min-width:0}.airport-settings-panel[hidden]{display:none}.airport-settings-panel>.workspace-guidance{margin:16px 0}.airport-aip{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.airport-aip-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.airport-aip-heading h3{font-size:13px;margin:0 0 6px}.airport-aip-heading p{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;color:var(--muted)}.airport-aip-heading a{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;color:inherit}.airport-aip-heading>button,.airport-aip-actions>button,.airport-aip-select{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:4px;font-size:12px;gap:8px}.airport-aip-toggle{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:12px 8px;margin-top:12px;text-align:left;border-radius:4px;font-size:12px}.airport-aip-toggle>svg{flex-shrink:0;transition:transform .15s ease}.airport-aip-toggle[aria-expanded=true]>svg{transform:rotate(90deg)}.airport-aip-toggle span{min-width:0}.airport-aip-toggle small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.airport-aip-review{padding-top:12px}.airport-aip-select{margin-bottom:12px}.airport-aip-staged{font-size:12px;color:var(--blue);margin:12px 0 0}.management-form .airport-aip-change{display:flex;align-items:flex-start;gap:12px;padding:14px 0;margin:0;border-top:1px solid var(--line);cursor:pointer}.management-form .airport-aip-change.is-readonly{cursor:default}.management-form .airport-aip-change>input{flex:none;width:18px;height:18px;padding:0;margin-top:3px;accent-color:var(--blue)}.airport-aip-change>span{flex:1;min-width:0}.airport-aip-change strong{font-size:12px}.airport-aip-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px;font-size:12px;font-weight:400;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}.airport-aip-values small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.airport-aip-actions{display:flex;flex-wrap:wrap;gap:var(--button-gap);margin-top:16px}.airport-aip-checked{font-size:11px;color:var(--muted);margin:12px 0 0}.airport-aip .spinning{animation:workspace-spin .8s linear infinite}@media(max-width:600px){.airport-aip-values{grid-template-columns:1fr}.airport-aip{padding:12px}}@media(prefers-reduced-motion:reduce){.airport-aip-toggle>svg{transition:none}.airport-aip .spinning{animation:none}}@media(max-width:850px){.topbar{grid-template-columns:auto minmax(0,1fr)}.top-actions{grid-column:2}.management-shade,.management-page{padding:10px}.management{height:100%}.management-content{padding:16px}.management>header{padding:18px}.form-grid{grid-template-columns:1fr}.management-form{padding:14px}.auth-card{padding:24px}}@media(max-width:600px){.management>header{padding:12px;gap:10px}.management-signout{width:44px;min-width:44px;min-height:44px;padding:0}.management-signout>span{display:none}.management>header .icon-button{width:44px;min-width:44px;min-height:44px}.management h1{font-size:18px;margin:4px 0}.management-content{padding:12px}.management-message{margin:12px 16px 0}.airport-card>div,.user-card>div{flex-basis:100%}.airport-card>button,.user-card>button{flex:1 1 auto}.user-card>select{width:100%;max-width:none}.airport-identity{grid-template-columns:1fr}.management nav{padding:8px 16px}.management nav button{flex:1}.management-section-title h2{font-size:16px}.form-actions button{flex:1}.membership-controls{padding-left:0;gap:8px}}.runway-editor .runway-lighting-toggle{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:48px;margin-top:12px;cursor:pointer}.runway-editor .runway-lighting-toggle input{width:20px;height:20px;min-height:20px;flex:none;padding:0;accent-color:var(--blue)}.runway-coordinates{border:1px solid var(--line);border-radius:6px;margin-top:12px;background:var(--surface)}.runway-coordinates>summary{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border-radius:5px;list-style:none;cursor:pointer;font-size:12px;font-weight:550;color:var(--text);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.runway-coordinates>summary::-webkit-details-marker{display:none}.runway-coordinates>summary:hover{background:var(--hover)}.runway-coordinates>summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.runway-coordinates>summary>svg{color:var(--muted);transition:transform .15s ease}.runway-coordinates[open]>summary{border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;background:var(--surface-subtle)}.runway-coordinates[open]>summary>svg{transform:rotate(90deg)}.runway-coordinates-body{padding:14px;min-width:0}.runway-end-coordinates h4{font-size:12px;margin:12px 0}.runway-end-coordinates+.runway-end-coordinates{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.runway-coordinates-body>button{border:1px solid var(--line);border-radius:4px;margin-top:12px;padding:8px 12px;font-size:11px;color:var(--muted);max-width:100%}@media(prefers-reduced-motion:reduce){.runway-coordinates>summary>svg,.runway-toggle>svg{transition:none}}.oaci-refresh-status{display:flex;align-items:center;gap:var(--button-gap);margin:12px 0;flex-wrap:wrap}.oaci-refresh-status .workspace-guidance{flex:1;margin:0}.oaci-refresh-status>button{padding:0 12px;min-height:44px;border-radius:5px;background:var(--surface-subtle);font-size:12px}.user-card>.invitation-actions{flex:0 1 auto;display:flex;align-items:center;justify-content:flex-end;gap:var(--button-gap,8px);flex-wrap:wrap}.invitation-actions>span{font-size:13px;color:var(--muted)}.screen-gated-app{width:100%;height:100%;background:var(--surface-subtle)}.screen-warning{padding:0;margin:auto;width:440px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.screen-warning::backdrop{background:var(--modal-shade);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.screen-warning .menu-heading{padding:18px 22px}.screen-warning .menu-heading>svg{color:var(--warning-text)}.screen-warning h2{line-height:1.4}.screen-warning h2:focus{outline:none}.screen-warning p{color:var(--muted)}.screen-warning-actions{padding:18px 22px 0;display:flex;justify-content:flex-start}.screen-warning-actions>button{min-height:46px;padding:8px 18px;border-radius:4px;font-size:12px}@media(max-height:450px){.screen-warning{max-height:calc(100dvh - 20px)}.screen-warning .menu-heading{padding:12px 22px}.screen-warning p{margin-top:12px}.screen-warning .info-footer{margin-top:12px;min-height:56px;padding:16px 22px}}
