:root{font-family:"Segoe UI","Microsoft YaHei",sans-serif;color-scheme:dark}
*{box-sizing:border-box} [hidden]{display:none!important}
html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}
.app{display:grid;grid-template-columns:88px minmax(390px,470px) minmax(0,1fr);height:100vh;min-height:560px;background:#101517;color:#f3f6f7}
.rail{z-index:5;display:flex;flex-direction:column;background:#212425;border-right:1px solid #4e5355;box-shadow:3px 0 12px #0005}
.rail-top{height:66px;display:grid;place-items:center;border-bottom:1px solid #4b5052;color:#9db6c1;font-size:12px;font-weight:800;letter-spacing:.24em}
.rail-group{display:flex;flex-direction:column;overflow:auto;min-height:0;padding:8px 0}
.rail-btn{height:71px;flex:none;width:100%;border:0;border-left:4px solid transparent;background:transparent;color:#b5b9bb;font-weight:800;font-size:15px;letter-spacing:.02em;display:grid;place-items:center}
.rail-btn .rail-icon{line-height:1}.rail-btn span:last-child{display:none}.rail-btn:hover{background:#32383b;color:white}.rail-btn.active{background:#81b9d4;color:white;border-left-color:#b5dff2;text-shadow:0 1px 1px #2d5364}
.rail-btn[data-category="ZOOM"]{height:58px;font-size:12px}.rail-btn[data-category="FAV"]{font-size:27px}.rail-bottom{margin-top:auto;padding:12px;border-top:1px solid #444b4e;display:grid;place-items:center}
.rail-bottom button{height:43px;width:54px;border:1px solid #53616a;border-radius:4px;background:#30383c;color:#e5f2f6;font-size:24px}
.charts{z-index:4;display:flex;flex-direction:column;min-height:0;background:#343e43;box-shadow:5px 0 14px #0006}
.charts-top{height:77px;flex:none;display:flex;align-items:center;gap:12px;padding:12px 17px;border-bottom:1px solid #555f64;background:#30393e}
.airport-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:3px 0;border:0;background:none;color:white;text-align:left}
.airport-toggle small{display:block;color:#8dbbd1;font-size:11px;font-weight:800;letter-spacing:.13em}.airport-toggle strong{display:block;font-size:19px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
.airport-toggle .down{font-size:22px;color:#8cb9ce}.count-pill{border-radius:12px;background:#45565e;color:#c7d6dc;padding:4px 8px;font-size:11px;white-space:nowrap}
.library-line{height:44px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:0 17px;background:#30393e;border-bottom:1px solid #485258}
.library-line button{border:0;background:none;color:#bcd7e5;display:flex;align-items:center;gap:8px;min-width:0;padding:4px 0}.library-line button:hover{color:white}.library-line button span{font-size:18px}.library-line button strong{font-size:12px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-line small{font-size:10px;color:#8ca3af;white-space:nowrap}
.search-box{height:39px;flex:none;display:flex;align-items:center;gap:8px;margin:11px 14px 7px;padding:0 11px;border:1px solid #66737a;border-radius:4px;color:#c6d9e2;background:#2a3439}
.search-box>span{font-size:23px;line-height:1}.search-box input{flex:1;min-width:0;border:0;outline:0;background:none;color:white;font-size:12px}.search-box input::placeholder{color:#a9b8bf}.search-box kbd{font:10px "Segoe UI",sans-serif;color:#a9b8bf;border:1px solid #66737a;border-radius:3px;padding:1px 4px}
.filter-note{height:31px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#c8dce6;font-size:11px;font-weight:800}.filter-note button{border:0;background:none;color:#8bc7e5;font-size:10px}
.chart-list{flex:1;min-height:0;overflow:auto;scrollbar-color:#aeb4b7 #323b40;scrollbar-width:thin}
.chart-item{position:relative;display:flex;align-items:flex-start;gap:8px;width:100%;min-height:93px;padding:18px 14px 15px 20px;border:0;border-bottom:2px solid #273137;background:#38444a;color:#f4f7f8;text-align:left}
.chart-item:nth-child(even){background:#354046}.chart-item:hover{background:#48565e}.chart-item.active{background:#52626b;box-shadow:inset 4px 0 #8ccbe9}
.chart-main{flex:1;min-width:0}.chart-title{font-size:17px;font-weight:800;line-height:1.35;word-break:break-word;letter-spacing:.005em}.chart-meta{font-size:10px;color:#b6c7cf;margin-top:8px;display:flex;align-items:center;gap:8px}.chart-tag{display:inline-flex;min-width:31px;align-items:center;justify-content:center;padding:2px 4px;background:#54798c;color:#e5f4fb;border-radius:3px;font-size:9px;font-weight:800}.star-button{align-self:center;border:0;background:none;color:#88adbf;font-size:26px;line-height:1;padding:2px 4px}.star-button.saved{color:#56bbf4}.star-button:hover{color:#85d0f7}
.charts-foot{height:29px;flex:none;display:flex;align-items:center;padding:0 16px;border-top:1px solid #535f65;background:#30393e;color:#9eb1ba;font-size:10px}.list-empty{padding:22px 20px;color:#bac6cc;font-size:13px;line-height:1.6}
.airports{position:absolute;z-index:20;left:88px;top:77px;bottom:24px;width:470px;background:#27343b;border:1px solid #6b7d86;box-shadow:10px 10px 30px #0009;display:flex;flex-direction:column}
.drawer-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid #556973}.drawer-head strong{font-size:15px}.drawer-head button{border:0;background:none;color:#d4e2e8;font-size:27px}.section-label{padding:15px 17px 8px;color:#9ebdca;font-size:11px;display:flex;justify-content:space-between}.airport-list{overflow:auto;flex:1;padding:0 8px 12px}.airport-item{width:100%;padding:12px 12px;border:0;border-bottom:1px solid #41525a;background:none;color:#e1eef2;text-align:left;display:flex;justify-content:space-between;align-items:center}.airport-item:hover,.airport-item.active{background:#466170}.airport-code{font-size:14px;font-weight:800}.airport-name{display:block;margin-top:2px;color:#b3c9d1;font-size:11px}.airport-n{font-size:11px;color:#9db7c4}
.airport-search-box{height:40px;margin:12px 12px 0;padding:0 10px;display:flex;align-items:center;gap:7px;border:1px solid #627985;border-radius:4px;background:#202f37;color:#b9d5e2}.airport-search-box span{font-size:23px;line-height:1}.airport-search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#f0f8fb;font-size:13px}.airport-search-box input::placeholder{color:#a4bcc8}.airport-search-box input::-webkit-search-cancel-button{cursor:pointer}
#mobileAirport{display:none}
.viewer{position:relative;min-width:0;min-height:0;background:#111717}.viewer-body{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;background:#151d21}.viewer-body.drawing{cursor:crosshair}.viewer-body.panning{cursor:grabbing}
.stage{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.sheet{position:relative;background:white;box-shadow:0 7px 35px #000b}.sheet canvas,.sheet img{display:block}.pdf-tiles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.pdf-tiles canvas{position:absolute;pointer-events:none}.sheet img{width:100%;height:100%}#drawLayer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;touch-action:none}
body[data-theme=dark] .sheet{background:#050607}body[data-theme=dark] #pdfCanvas,body[data-theme=dark] #imageChart,body[data-theme=dark] .pdf-tiles canvas{filter:invert(1) hue-rotate(180deg)}
.viewer-header{position:absolute;top:0;left:0;right:0;height:56px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#242c30d9;backdrop-filter:blur(6px);border-bottom:1px solid #56636a;pointer-events:auto}
.viewer-heading{min-width:0}.eyebrow{color:#91b4c3;font-size:10px;font-weight:800;letter-spacing:.12em}.view-title{margin-top:2px;color:#fff;font-size:16px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-header-actions{display:flex;align-items:center;gap:8px}.page-info{color:#c5d8e1;font-size:11px}.icon-button{height:34px;width:34px;border:1px solid #637782;border-radius:4px;background:#33434b;color:#d4e3e9;font-size:20px}.icon-button.saved{color:#65c6f5}
.viewer-tools{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);min-height:47px;padding:5px 8px;display:flex;align-items:center;gap:4px;background:#2c353ad9;border:1px solid #6a7a82;border-radius:5px;box-shadow:0 4px 16px #0008;overflow:auto;white-space:nowrap;scrollbar-width:thin}.tool-group{display:flex;align-items:center;gap:2px}.tool,.fit-button{flex:none;width:31px;height:32px;border:0;border-radius:3px;background:transparent;color:#deebef;font-size:20px}.tool:hover,.fit-button:hover{background:#4c6673}.tool.active{background:#7ab2ce;color:white}.divider{flex:none;width:1px;height:24px;background:#7a8a91;margin:0 5px}.swatch{width:20px;height:20px;margin:0 2px;border:0;border-radius:50%;background:var(--swatch)}.swatch.active{outline:2px solid #d9e7ec;outline-offset:2px}#pagination,#zoomLabel{min-width:33px;text-align:center;color:#d5e4ea;font-size:11px}.fit-button{width:38px;border:1px solid #6d808a;font-size:11px}
.empty-view{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#e7f1f4;padding:20px}.empty-mark{display:grid;place-items:center;width:76px;height:76px;border:1px solid #506d7b;border-radius:5px;background:#283840;color:#a1d7f0;font-size:42px;margin-bottom:22px}.empty-eyebrow{color:#86b8ce;font-size:11px;font-weight:800;letter-spacing:.18em}.empty-view h1{font-size:26px;margin:12px 0 5px}.empty-view p{color:#a9bcc5;font-size:13px}.primary-button{border:0;border-radius:4px;background:#82c3e2;color:#102936;padding:11px 18px;font-size:13px;font-weight:800;margin-top:14px}.busy{position:absolute;top:70px;left:50%;transform:translateX(-50%);border:1px solid #8298a3;border-radius:4px;background:#33464fd9;color:white;padding:7px 12px;font-size:12px}.toast{position:fixed;left:50%;bottom:72px;z-index:50;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#48606b;color:white;padding:9px 14px;border-radius:4px;font-size:12px;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}
body[data-theme=light]{color-scheme:light}body[data-theme=light] .app{background:#d8e3e9;color:#263e4a}body[data-theme=light] .rail{background:#d5e1e7;border-color:#b4c4cc}body[data-theme=light] .rail-top{color:#5b8498;border-color:#b4c4cc}body[data-theme=light] .rail-btn{color:#506f7e}body[data-theme=light] .rail-btn.active{color:white}body[data-theme=light] .charts{background:#e4edf1}body[data-theme=light] .charts-top,body[data-theme=light] .library-line,body[data-theme=light] .charts-foot{background:#d8e5eb;border-color:#bbccd5}body[data-theme=light] .airport-toggle{color:#263e4a}body[data-theme=light] .chart-item{background:#e4edf1;color:#263e4a;border-color:#c9d9e0}body[data-theme=light] .chart-item:nth-child(even){background:#dce8ee}body[data-theme=light] .chart-item.active{background:#c5dfe9}body[data-theme=light] .chart-meta{color:#617e8b}body[data-theme=light] .search-box{background:#eef5f8;border-color:#b7cbd5}body[data-theme=light] .search-box input{color:#263e4a}body[data-theme=light] .viewer-body{background:#c3d0d6}body[data-theme=light] .viewer-header,body[data-theme=light] .viewer-tools{background:#e7eff2e8;border-color:#b3c6cf}body[data-theme=light] .view-title{color:#263e4a}body[data-theme=light] .tool,body[data-theme=light] .fit-button{color:#395a69}body[data-theme=light] .tool.active{color:white}body[data-theme=light] #pagination,body[data-theme=light] #zoomLabel{color:#395a69}body[data-theme=light] .icon-button{background:#e1edf2;color:#416879;border-color:#a9c1cd}body[data-theme=light] .empty-view{color:#243c49}body[data-theme=light] .empty-view p{color:#5f7b89}body[data-theme=light] .airports{background:#e2edf2;border-color:#a8bfca}body[data-theme=light] .airport-item{color:#263e4a;border-color:#c4d6df}body[data-theme=light] .airport-item:hover,body[data-theme=light] .airport-item.active{background:#c8e0e9}
body[data-theme=light] .airport-search-box{background:#edf6f9;border-color:#b2c9d4;color:#53798b}body[data-theme=light] .airport-search-box input{color:#263e4a}
@media(max-width:960px){.app{grid-template-columns:68px minmax(245px,32vw) minmax(0,1fr)}.rail-btn{height:60px;font-size:13px}.airports{left:68px;width:min(390px,80vw)}.chart-title{font-size:15px}.chart-item{min-height:82px}}
@media(max-width:650px){.app{grid-template-columns:54px minmax(160px,36vw) minmax(0,1fr)}.rail-btn{height:51px;font-size:11px}.rail-top{height:52px}.charts-top{height:62px;padding:8px}.airport-toggle strong{font-size:14px}.library-line{height:36px;padding:0 8px}.library-line small{display:none}.search-box{margin:8px}.chart-item{padding:12px 7px 10px 9px;min-height:68px}.chart-title{font-size:12px}.chart-meta{display:none}.star-button{font-size:18px}.airports{left:54px;top:62px}.viewer-header{height:44px;padding:0 6px}.eyebrow{display:none}.view-title{font-size:12px}.viewer-tools{left:6px;bottom:6px;max-width:calc(100% - 12px)}.icon-button{width:27px;height:27px;font-size:16px}}

/* iPhone: keep the original EFB rail while the chart list slides over the viewer. */
#mobileChartsButton{display:none;border:0;background:none;color:inherit;font-size:18px;line-height:1}
@media(max-width:650px){
  html,body,.app{height:100dvh;min-height:0}
  .app{display:grid;grid-template-columns:54px minmax(0,1fr)}
  .rail{grid-column:1;grid-row:1;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .rail-top{height:50px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center}
  .rail-top span{font-size:9px}
  #mobileChartsButton{display:block}
  .charts{position:fixed;left:54px;top:0;bottom:0;width:calc(100vw - 54px);max-width:380px;z-index:15;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);transform:translateX(calc(-100% - 54px));transition:transform .2s ease;box-shadow:6px 0 22px #0008}
  body.mobile-list-open .charts{transform:translateX(0)}
  .viewer{grid-column:2;grid-row:1}
  .airports{position:fixed;left:54px;right:0;top:calc(env(safe-area-inset-top) + 62px);bottom:env(safe-area-inset-bottom);width:calc(100vw - 54px);max-width:380px}
  .viewer-header{top:env(safe-area-inset-top);height:48px;padding:0 8px}
  .viewer-tools{left:6px;right:6px;bottom:calc(7px + env(safe-area-inset-bottom));max-width:none;min-height:43px}
  .tool,.fit-button{height:30px}
  .toast{bottom:calc(68px + env(safe-area-inset-bottom))}
  .empty-view{padding:55px 18px 75px}
  .empty-view h1{font-size:20px}
  .empty-view p{font-size:12px}
}

.import-dialog{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#071014c7;backdrop-filter:blur(8px)}
.import-card{width:min(420px,100%);padding:18px;border:1px solid #58717d;border-radius:10px;background:#26343b;color:#eef7fa;box-shadow:0 20px 60px #000a}.import-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.import-head strong{font-size:18px}.import-head button{border:0;background:none;color:#dcebef;font-size:28px}.import-card>p{margin:5px 0 16px;color:#aec4cd;font-size:12px;line-height:1.6}.import-option{display:flex;flex-direction:column;align-items:flex-start;width:100%;margin:8px 0;padding:14px;border:1px solid #57717d;border-radius:7px;background:#334750;color:#f0f8fb;text-align:left}.import-option b{font-size:14px}.import-option small{margin-top:5px;color:#aac2cd;font-size:11px}.import-option:disabled{opacity:.45}.import-progress{margin-top:15px}.import-progress>div{display:flex;justify-content:space-between;font-size:11px}.import-progress progress{width:100%;height:8px;margin:8px 0}.import-progress small{color:#9fb6c0;font-size:10px}
body[data-theme=light] .import-card{background:#e4eef2;color:#294451}body[data-theme=light] .import-option{background:#d4e6ed;color:#294451}
@media(max-width:650px){.import-dialog{padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom))}.import-card{max-height:90dvh;overflow:auto}.library-line button strong{max-width:160px}}
.native-pdf{position:absolute;inset:56px 0 62px;width:100%;height:calc(100% - 118px);border:0;background:#fff;z-index:1}
@media(max-width:650px){.native-pdf{inset:calc(48px + env(safe-area-inset-top)) 0 calc(57px + env(safe-area-inset-bottom));height:auto}}

body[data-theme=dark] .native-pdf{filter:invert(1) hue-rotate(180deg)}
body[data-theme=light] .native-pdf{filter:none}
@media(max-width:650px){.native-pdf{top:calc(48px + env(safe-area-inset-top));bottom:auto;left:0;right:0;width:100%;height:calc(100% - 105px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
.icon-button,.rail-bottom button,.tools-toggle{display:grid;place-items:center;padding:0}
.icon-button svg,.rail-bottom button svg,.tools-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tools-toggle{display:none;position:absolute;z-index:12;width:46px;height:46px;border:1px solid #6d818b;border-radius:8px;background:#2d4049e8;color:#d9edf5;box-shadow:0 5px 18px #0008}
@media(max-width:650px){
  .rail-bottom{display:none}
  .viewer-header-actions{flex:none;gap:6px;height:100%}
  .page-info{min-width:31px;text-align:right}
  .icon-button{flex:none;width:36px;height:36px;border-radius:7px}
  .icon-button svg{width:20px;height:20px}
  .tools-toggle{display:grid;right:8px;bottom:calc(8px + env(safe-area-inset-bottom))}
  .viewer-tools{left:8px;right:8px;bottom:calc(62px + env(safe-area-inset-bottom));max-width:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .16s ease,transform .16s ease,visibility .16s;padding:7px;background:#27373eeF}
  body.tools-open .viewer-tools{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
  body.tools-open .tools-toggle{background:#79b9d7;color:#fff}
  .viewer-tools .tool,.viewer-tools .fit-button{width:34px;height:34px}
}

.rail-bottom{display:none!important}

.rail-icon svg,.bookmark-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.rail-btn[data-category="FAV"] .rail-icon{display:grid;place-items:center}.rail-btn[data-category="FAV"]{font-size:15px}
.star-button{display:grid;place-items:center}.star-button .bookmark-icon{width:25px;height:25px}.star-button.saved .bookmark-icon,.icon-button.saved .bookmark-icon{fill:currentColor}
.icon-button .bookmark-icon{width:21px;height:21px}
body[data-theme=light] .page-info{color:#456675;font-weight:700}
body[data-theme=light] .tools-toggle{background:#e5eff3eF;color:#365d6f;border-color:#9eb8c4}
body[data-theme=light].tools-open .tools-toggle{background:#72b4d3;color:#fff}


.icon-button svg{width:19px;height:19px;display:block;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}body.focus-view .app{grid-template-columns:minmax(0,1fr)}body.focus-view .rail,body.focus-view .charts{display:none}body.focus-view .viewer{grid-column:1}


/* v2 translucent EFB navigation */
body[data-theme=dark] .rail{background:rgba(22,27,29,.84);border-color:rgba(153,174,184,.24);box-shadow:3px 0 18px #0008;backdrop-filter:blur(12px) saturate(.82);-webkit-backdrop-filter:blur(12px) saturate(.82)}
body[data-theme=dark] .charts{background:rgba(42,50,54,.82);border-right:1px solid rgba(164,186,197,.25);box-shadow:7px 0 24px #0008;backdrop-filter:blur(14px) saturate(.82);-webkit-backdrop-filter:blur(14px) saturate(.82)}
body[data-theme=dark] .charts-top,body[data-theme=dark] .library-line,body[data-theme=dark] .charts-foot{background:rgba(36,43,47,.72);border-color:rgba(172,191,200,.22)}
body[data-theme=dark] .search-box{background:rgba(24,31,34,.62);border-color:rgba(157,183,196,.38)}
body[data-theme=dark] .chart-item,body[data-theme=dark] .chart-item:nth-child(even){background:rgba(47,56,61,.63);border-color:rgba(17,24,27,.52)}
body[data-theme=dark] .chart-item:hover{background:rgba(75,89,96,.76)}body[data-theme=dark] .chart-item.active{background:rgba(83,102,112,.82);box-shadow:inset 4px 0 #72bee2}
body[data-theme=dark] .viewer-header{background:rgba(29,36,39,.78);border-color:rgba(161,181,190,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body[data-theme=dark] .viewer-body{background:#101719}
body.panel-collapsed .charts{transform:translateX(calc(-100% - 12px));pointer-events:none}body.panel-collapsed .airports{display:none}
.charts{transition:transform .22s ease}
@media(max-width:650px){
 .app{display:block;position:relative;background:#101719}
 .viewer{position:absolute;inset:0;z-index:0}
 .rail{position:absolute;left:0;top:0;bottom:0;width:54px;z-index:20}
 .charts{left:54px;background:rgba(42,50,54,.78)}
 .viewer-header{left:54px}
 body.focus-view .viewer-header{left:0}
 body.focus-view .viewer{position:absolute;inset:0}
 body.focus-view .rail,body.focus-view .charts{display:none}
 .rail-btn{color:#c4c9cb;text-shadow:0 1px 2px #0008}
 .rail-btn:hover{background:rgba(62,73,78,.62)}
 .rail-btn.active{background:rgba(112,181,214,.88);border-left-color:#bce9fb;color:#fff}
}

/* v2.1 reference night palette */
body[data-theme=dark] .charts{background:rgba(51,62,68,.96);border-right-color:#536168;box-shadow:8px 0 24px #0009;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
body[data-theme=dark] .charts-top{background:rgba(47,57,62,.97);border-color:#56636a}
body[data-theme=dark] .library-line,body[data-theme=dark] .charts-foot{background:rgba(48,58,63,.97);border-color:#536168}
body[data-theme=dark] .search-box{background:rgba(40,50,55,.96);border-color:#718089}
body[data-theme=dark] .filter-note{background:rgba(51,62,68,.96)}
body[data-theme=dark] .chart-item,body[data-theme=dark] .chart-item:nth-child(even){background:rgba(55,67,73,.96);border-color:#29343a}
body[data-theme=dark] .chart-item:nth-child(even){background:rgba(52,64,70,.96)}
body[data-theme=dark] .chart-item:hover{background:rgba(70,85,93,.97)}
body[data-theme=dark] .chart-item.active{background:rgba(82,101,111,.98);box-shadow:inset 4px 0 #73c2e7}
@media(max-width:650px){body[data-theme=dark] .charts{background:rgba(51,62,68,.95)}}

/* v2.2 compact mobile drawing tray */
@media(max-width:650px){
 .viewer{grid-column:1/-1!important;grid-row:1!important}
 .viewer-tools{left:62px;right:8px;overflow-x:hidden;justify-content:flex-start}
 body.focus-view .viewer-tools{left:8px}
 .viewer-tools #prevPage,.viewer-tools #nextPage,.viewer-tools #pagination,.viewer-tools #zoomOut,.viewer-tools #zoomIn,.viewer-tools #zoomLabel,.viewer-tools #fit{display:none}
 .viewer-tools .tool-group.main-tools{flex:none}
 .viewer-tools .tool-group.main-tools .tool{width:32px}
 .viewer-tools .tool-group.colors .swatch{width:18px;height:18px;margin:0 3px}
 .viewer-tools .divider:nth-of-type(n+3){display:none}
}
@media(max-width:650px){
 .viewer-tools{padding:5px 6px;gap:2px}
 .viewer-tools .tool,.viewer-tools .fit-button{width:28px;height:32px;font-size:18px}
 .viewer-tools .tool-group{gap:1px}
 .viewer-tools .tool-group.main-tools .tool{width:28px}
 .viewer-tools .tool-group.colors .swatch{width:16px;height:16px;margin:0 2px}
 .viewer-tools .divider{margin:0 3px}
}

/* v2.4 full viewport and safe-area colors */
html{background:#101719}body{position:fixed;inset:0;width:100%;height:100%;min-height:100%;background:#101719}body[data-theme=light]{background:#d8e3e9}body[data-theme=dark]{background:#101719}.app{position:fixed!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important}.rail-top{display:grid!important;place-items:center!important}.rail-top #mobileChartsButton{margin:0}
@supports(height:100dvh){html,body{height:100dvh}.app{height:100dvh!important}}

/* v2.5 unified iPhone safe areas */
@media(max-width:650px){
 body{background:#101719}
 body::before,body::after{content:"";position:fixed;left:0;right:0;z-index:40;pointer-events:none}
 body::before{top:0;height:env(safe-area-inset-top);background:#1d2427}
 body::after{bottom:0;height:env(safe-area-inset-bottom);background:#101719}
 body[data-theme=light]{background:#c3d0d6}
 body[data-theme=light]::before{background:#d4e1e7}
 body[data-theme=light]::after{background:#c3d0d6}
 .rail{top:env(safe-area-inset-top);padding-top:0}
 .charts{top:env(safe-area-inset-top);padding-top:0}
 .viewer-header{top:env(safe-area-inset-top)}
}

/* v3 unified flat UI, responsive drawing tray */
.app{height:var(--app-height,100dvh)!important}
.rail,.charts,.airports,.viewer-header,.viewer-tools,.tools-toggle,.icon-button,.chart-item,.search-box,.import-card,.import-dialog{box-shadow:none!important;text-shadow:none!important}
.sheet{box-shadow:0 9px 28px rgba(0,0,0,.48)!important}
.tool svg,.color-tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.color-tool{position:relative}.color-tool input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.color-tool #colorDot{position:absolute;right:2px;bottom:2px;width:8px;height:8px;border:1px solid #fff;border-radius:50%}
.tool-settings{position:absolute;z-index:24;right:8px;bottom:calc(120px + env(safe-area-inset-bottom));width:min(280px,calc(100% - 70px));padding:12px;border:1px solid #657780;border-radius:7px;background:rgba(38,49,54,.97);color:#e8f3f7}
.tool-settings strong{display:block;margin-bottom:9px;font-size:13px}.tool-settings label{display:grid;grid-template-columns:56px 1fr 38px;align-items:center;gap:7px;margin:7px 0;font-size:11px}.tool-settings input{width:100%}.tool-settings output{text-align:right;color:#9fd6ef;font-size:10px}
body[data-theme=light] .tool-settings{background:rgba(232,241,245,.98);color:#2c4c5b;border-color:#a8bec9}
@media(max-width:650px){.rail-top{height:62px!important}.charts-top{height:62px}.viewer-tools{display:flex;flex-wrap:wrap;align-content:center;overflow:visible;white-space:normal;min-height:82px}.viewer-tools #prevPage,.viewer-tools #nextPage,.viewer-tools #pagination,.viewer-tools #zoomOut,.viewer-tools #zoomIn,.viewer-tools #zoomLabel,.viewer-tools #fit{display:flex;align-items:center;justify-content:center}.viewer-tools #pagination,.viewer-tools #zoomLabel{display:inline-block}.viewer-tools .divider:nth-of-type(n+3){display:block}.viewer-tools .tool-group.main-tools .tool{width:30px}.tools-toggle{display:grid}}
@media(hover:none) and (pointer:coarse){
 .tools-toggle{display:grid;right:8px;bottom:calc(8px + env(safe-area-inset-bottom))}
 .viewer-tools{left:62px;right:8px;bottom:calc(62px + env(safe-area-inset-bottom));max-width:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .16s ease,transform .16s ease,visibility .16s;padding:6px;background:rgba(39,55,62,.96);overflow:auto}
 body.focus-view .viewer-tools{left:8px}
 body.tools-open .viewer-tools{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
 body.tools-open .tools-toggle{background:#79b9d7;color:#fff}
}
@media(hover:none) and (pointer:coarse) and (orientation:landscape){.viewer-tools{flex-wrap:nowrap;min-height:44px}.tool-settings{bottom:calc(114px + env(safe-area-inset-bottom))}}

@media(hover:none) and (pointer:coarse){.rail-top{height:62px!important}.charts-top{height:62px!important}}


/* v3.1 coherent and lightweight drawing controls */
.viewer-tools{contain:layout paint;will-change:auto}.tray-row,.control-cluster{display:flex;align-items:center;justify-content:center;gap:3px;flex:none}.control-cluster{height:36px;padding:1px 4px;border:1px solid rgba(132,158,170,.34);border-radius:5px;background:rgba(16,25,29,.22)}.viewer-tools .fit-button{width:42px!important;white-space:nowrap}.viewer-tools #pagination,.viewer-tools #zoomLabel{min-width:38px;line-height:32px}.viewer-tools .divider{height:27px}
body[data-theme=light] .control-cluster{background:rgba(214,229,236,.58);border-color:rgba(95,128,143,.3)}
@media(max-width:650px) and (orientation:portrait){.viewer-tools{flex-direction:column!important;flex-wrap:nowrap!important;gap:4px;min-height:84px!important}.tray-row{width:100%;height:34px}.draw-row{justify-content:center}.view-row{justify-content:center}.tool-settings{bottom:calc(158px + env(safe-area-inset-bottom))}}
@media(hover:none) and (pointer:coarse) and (orientation:landscape){.viewer-tools{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:5px;min-height:48px}.tray-row{height:36px}.tool-settings{bottom:calc(118px + env(safe-area-inset-bottom))}}

.color-tool{display:grid!important;place-items:center}.color-tool input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;pointer-events:auto!important;cursor:pointer}


/* v3.1.2 header alignment and compact fit button */
@media(hover:none) and (pointer:coarse){.rail-top{height:48px!important}.viewer-header{height:48px!important}}
.viewer-tools .fit-button{width:38px!important;height:30px!important;font-size:10px!important;line-height:1!important;padding:0 3px!important;white-space:nowrap!important}


/* v3.1.3 desktop drawing tray toggle */
.tools-toggle{display:grid}
@media(hover:hover) and (pointer:fine){
 .viewer-tools{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
 body.tools-open .viewer-tools{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
 .tools-toggle{right:14px;bottom:14px}
 body.tools-open .tools-toggle{bottom:72px;background:#79b9d7;color:#fff}
}

/* v3.1.4 desktop: collapse the chart column instead of translating its contents */
@media(min-width:651px){
 body.panel-collapsed .app{grid-template-columns:88px 0 minmax(0,1fr)!important}
 body.panel-collapsed .charts{width:0;min-width:0;overflow:hidden;opacity:0;visibility:hidden;transform:none!important}
 body.panel-collapsed .viewer{grid-column:3}
 .app{transition:grid-template-columns .2s ease}
 .charts{transition:opacity .14s ease,visibility .14s ease}
}

/* v3.1.5 desktop aligned header and vertical drawing launcher */
@media(min-width:651px){
 .rail-top,.charts-top,.viewer-header{height:56px!important}
}
@media(hover:hover) and (pointer:fine){
 .viewer-tools{
  left:auto!important;right:14px!important;bottom:70px!important;
  width:54px!important;max-width:54px!important;max-height:calc(100% - 140px);
  min-height:0!important;padding:7px 5px!important;
  flex-direction:column!important;align-items:center!important;gap:5px!important;
  overflow-x:hidden!important;overflow-y:auto!important;white-space:normal!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(18px) scaleY(.35)!important;transform-origin:bottom center;
  transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility .18s!important;
 }
 body.tools-open .viewer-tools{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateY(0) scaleY(1)!important;
 }
 .viewer-tools .tray-row,.viewer-tools .tool-group,.viewer-tools .control-cluster{
  width:100%;height:auto!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;gap:3px!important;
 }
 .viewer-tools .tool,.viewer-tools .fit-button{width:36px!important;height:32px!important}
 .viewer-tools .divider{width:30px!important;height:1px!important;margin:3px 0!important}
 .viewer-tools #pagination,.viewer-tools #zoomLabel{min-width:34px!important;line-height:25px!important}
 .viewer-tools .control-cluster{padding:4px 2px!important}
 .viewer-tools .fit-button{font-size:10px!important}
 .tools-toggle{right:14px!important;bottom:14px!important}
 body.tools-open .tools-toggle{right:14px!important;bottom:14px!important}
 .tool-settings{right:78px!important;bottom:70px!important}
}

/* iPad 1.0: Windows 3.1.5 layout with a touch-friendly vertical launcher */
@media(min-width:651px) and (hover:none) and (pointer:coarse){
 .rail-top,.charts-top,.viewer-header{height:56px!important}
 .viewer-tools{left:auto!important;right:14px!important;bottom:70px!important;width:58px!important;max-width:58px!important;max-height:calc(100% - 140px);min-height:0!important;padding:7px 6px!important;display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;gap:5px!important;overflow-x:hidden!important;overflow-y:auto!important;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px) scaleY(.35)!important;transform-origin:bottom center;transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility .18s!important}
 body.tools-open .viewer-tools{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scaleY(1)!important}
 .viewer-tools .tray-row,.viewer-tools .tool-group,.viewer-tools .control-cluster{width:100%;height:auto!important;display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:3px!important}
 .viewer-tools .tool,.viewer-tools .fit-button{width:38px!important;height:34px!important}
 .viewer-tools .divider{display:block!important;width:32px!important;height:1px!important;margin:3px 0!important}
 .viewer-tools #prevPage,.viewer-tools #nextPage,.viewer-tools #pagination,.viewer-tools #zoomOut,.viewer-tools #zoomIn,.viewer-tools #zoomLabel,.viewer-tools #fit{display:flex!important;align-items:center!important;justify-content:center!important}
 .viewer-tools #pagination,.viewer-tools #zoomLabel{min-width:36px!important;line-height:26px!important}
 .viewer-tools .control-cluster{padding:4px 2px!important}
 .tools-toggle{display:grid!important;right:14px!important;bottom:14px!important}
 body.tools-open .tools-toggle{right:14px!important;bottom:14px!important}
 .tool-settings{right:82px!important;bottom:70px!important}
}
