:root{--bg:#111315;--panel:#171a1e;--panel2:#1d2126;--line:#30363d;--line2:#3b434d;--text:#e7ebef;--muted:#949eaa;--blue:#2f80ed;--blue2:#5da2f1;--shadow:0 14px 38px rgba(0,0,0,.48);font-family:"Segoe UI",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}
#appShell{height:100vh;display:grid;grid-template-rows:48px auto minmax(0,1fr) 26px;background:#111315}.titlebar{display:flex;align-items:center;background:#171a1e;border-bottom:1px solid #30363d;padding:0 10px;gap:16px;box-shadow:0 2px 12px rgba(0,0,0,.22);z-index:50}.brand{display:flex;align-items:center;gap:9px;min-width:205px}.brandLogo{width:32px;height:32px;border-radius:7px;display:block;box-shadow:0 0 0 1px #67a8ee35,0 4px 12px #0008}.brand b{display:block;font-size:15px}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:1px}.menuBar{display:flex;align-items:center;gap:2px}.menuBtn,.toolBtn{border:1px solid transparent;background:transparent;color:#d7dce3;padding:7px 10px;border-radius:4px;cursor:pointer}.menuBtn:hover,.toolBtn:hover{background:#272c33;border-color:#343b45}.quickActions{margin-left:auto;display:flex;align-items:center;gap:6px}.quickActions select{background:#22262c;color:#e6eaf0;border:1px solid #3b424c;border-radius:4px;padding:6px}.toolBtn{border-color:#3a414b;background:#22262c}.toolBtn.accent{background:#2f80ed;border-color:#4b9cff;color:white}.plotMenuBtn{position:relative;padding-right:24px}.plotMenuBtn:after{content:'▾';position:absolute;right:8px;top:7px;color:#87919c;font-size:10px}.plotMenuBtn.active{background:#24374f;border-color:#3d78b8}.plotMenuBtn.active:after{content:'▴';color:#77b7f7}
.plotRibbon{height:142px;display:flex;background:#1a1d21;border-bottom:1px solid var(--line);z-index:40;transition:height .18s ease,opacity .18s ease;overflow:hidden}.plotRibbon.collapsed{height:0;opacity:0;border-bottom:0}.ribbonHeader{width:76px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#cfd5dd}.ribbonHeader span{font-size:14px;font-weight:600}.ribbonHeader small{font-size:10px;color:var(--muted);margin-top:4px;text-align:center}.plotGallery{display:flex;gap:9px;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:7px 10px}.galleryGroup{flex:none;display:flex;flex-direction:column;border-right:1px solid #343a43;padding-right:9px;min-width:max-content}.galleryGroup:last-child{border-right:0}.galleryGroupTitle{height:18px;text-align:center;color:#8f9ba7;font-size:9px;text-transform:uppercase;letter-spacing:.7px;line-height:16px}.galleryGroupItems{display:flex;gap:3px;align-items:stretch}.plotCard{width:75px;height:105px;flex:none;border:1px solid transparent;border-radius:5px;background:transparent;color:#cfd4db;padding:3px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.plotCard:hover{background:#252a31;border-color:#3a424c}.plotCard.active{background:#24374f;border-color:#4b8bd3;box-shadow:inset 0 0 0 1px #2f80ed55}.plotThumb{width:64px;height:60px;border-radius:3px;background:#f7f8fa;display:grid;place-items:center;overflow:hidden}.plotThumb svg{width:61px;height:54px}.plotCard span{font-size:9px;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plotGallery::-webkit-scrollbar{height:8px}.plotGallery::-webkit-scrollbar-thumb{background:#3d444d;border-radius:6px}
.workspace{position:relative;min-height:0;overflow:hidden;display:grid;grid-template-columns:238px minmax(0,1fr) 346px;background:radial-gradient(circle at 50% 25%,#202328 0,#15171a 48%,#111315 100%);transition:grid-template-columns .18s ease}.workspace.mappingHidden{grid-template-columns:0 minmax(0,1fr) 346px}.workspace.inspectorHidden{grid-template-columns:238px minmax(0,1fr) 0}.workspace.mappingHidden.inspectorHidden{grid-template-columns:0 minmax(0,1fr) 0}.mappingDock,.inspectorDock{min-width:0;overflow:hidden;background:#171a1e;border-color:#30363d;display:flex;flex-direction:column;position:relative;z-index:20}.mappingDock{border-right:1px solid #30363d}.inspectorDock{border-left:1px solid #30363d}.dockHeader{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 9px 0 12px;background:linear-gradient(#23282e,#1c2025);border-bottom:1px solid #343b44}.dockHeader>div:first-child{min-width:0}.dockHeader b{display:block;font-size:12px}.dockHeader small{display:block;color:#8f99a5;font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dockIconBtn,.resetBtn{border:1px solid #3d4650;background:#242a31;color:#d7dce3;border-radius:4px;cursor:pointer;height:27px}.dockIconBtn{width:27px;font-size:18px}.resetBtn{padding:0 8px;font-size:10px}.dockHeaderActions{display:flex;gap:5px;align-items:center}.dockBody{padding:10px;overflow:auto;flex:1;min-height:0}.mappingFields{display:flex;flex-direction:column;gap:9px}.mappingField{display:flex;flex-direction:column;gap:4px}.mappingField label{font-size:10px;color:#aab3bd;display:flex;justify-content:space-between;gap:6px}.mappingField label span{color:#607080}.mappingField select{width:100%;background:#101317;border:1px solid #3b434d;color:#e7ebef;border-radius:4px;padding:7px}.buildBtn{width:100%;margin-top:12px;background:#2f80ed;color:#fff;border:1px solid #5799e8;padding:8px 12px;border-radius:4px;cursor:pointer;font-weight:600}.buildBtn:hover{background:#3f8bec}.mappingHint{margin-top:9px;color:#727e8a;font-size:9px;line-height:1.45}.plotStage{position:relative;min-width:0;overflow:auto;padding:18px}.plotFrame{width:min(1180px,calc(100% - 16px));min-width:590px;margin:0 auto;background:#cfd3d7;padding:12px;border:1px solid #464d56;box-shadow:0 10px 26px rgba(0,0,0,.35)}#plot{width:100%;height:calc(100vh - 118px);min-height:520px;background:#fff}.welcome{max-width:650px;margin:13vh auto;text-align:center;color:#9ea7b1}.welcomeLogo{width:72px;height:72px;margin-bottom:13px;filter:drop-shadow(0 12px 22px rgba(0,0,0,.3))}.welcome h1{font-size:26px;color:#edf1f5;margin:0 0 8px}.welcome p{line-height:1.65;margin:0 0 18px}.welcome button{background:#2f80ed;border:1px solid #5ca3f1;color:white;padding:9px 18px;border-radius:5px;cursor:pointer}.dropHint{margin-top:12px;color:#687482;font-size:11px}.edgeButton{position:absolute;z-index:35;top:50%;transform:translateY(-50%);width:25px;height:52px;border:1px solid #3e4853;background:#20262d;color:#cfd6de;cursor:pointer;font-size:18px;box-shadow:0 6px 18px #0007}.leftEdge{left:0;border-left:0;border-radius:0 6px 6px 0}.rightEdge{right:0;border-right:0;border-radius:6px 0 0 6px}.dropOverlay{position:absolute;inset:12px;z-index:90;background:rgba(18,24,31,.9);border:2px dashed #3e8ee5;border-radius:9px;display:grid;place-items:center;backdrop-filter:blur(3px)}.dropOverlay>div{text-align:center;color:#dceafa}.dropOverlay img{display:block;width:70px;height:70px;margin:0 auto 10px}.dropOverlay b{display:block;font-size:20px}.dropOverlay span{display:block;margin-top:6px;color:#91a6ba}
.inspectorBody{padding:9px;background:#15181c;overflow:auto;min-height:0;flex:1}.quickStyle{border:1px solid #3d4650;border-radius:5px;background:#1a1f24;margin-bottom:9px;padding:8px}.quickStyleTitle{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.quickStyleTitle b{font-size:11px}.quickStyleTitle span{font-size:9px;color:#76828e}.quickGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quickGrid .wide{grid-column:1/-1}.inspectorLabel{display:block;font-size:9px;color:#9fa8b2}.inspectorLabel input,.inspectorLabel select,.inspectorLabel textarea{width:100%;margin-top:3px;background:#0f1215;color:#e7ebef;border:1px solid #3b434d;border-radius:3px;padding:5px 6px}.inspectorLabel textarea{resize:vertical;min-height:52px}.inlineChecks{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.checkChip{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#c6cdd5;background:#20262c;border:1px solid #343c45;padding:4px 6px;border-radius:4px}.checkChip input{margin:0;width:auto}.inspectorSection{border:1px solid #343b44;border-radius:4px;margin-bottom:8px;overflow:hidden;background:#171a1e}.inspectorSection summary{list-style:none;cursor:pointer;background:#23282e;padding:8px 9px;font-size:10px;font-weight:600;color:#dfe4ea;display:flex;align-items:center;justify-content:space-between}.inspectorSection summary::-webkit-details-marker{display:none}.inspectorSection summary:after{content:'›';color:#75818d;font-size:16px;transition:transform .15s}.inspectorSection[open] summary:after{transform:rotate(90deg)}.inspectorGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px}.inspectorGrid .wide{grid-column:1/-1}.objectToolbar{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:0 8px 8px}.miniBtn{border:1px solid #3b4652;background:#222932;color:#dce2e8;border-radius:4px;padding:6px 5px;font-size:9px;cursor:pointer}.miniBtn:hover{border-color:#568fcf;background:#25364a}.dangerMini{border-color:#704148;color:#efb3b9}.objectList{padding:0 8px 8px}.objectItem{display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid #313943;background:#111418;padding:5px 6px;margin-top:4px;border-radius:3px;font-size:9px;color:#b6c0ca}.objectItem button{border:0;background:transparent;color:#d27982;cursor:pointer}.applyStyle{position:sticky;bottom:0;width:100%;padding:8px;border-radius:4px;border:1px solid #55a0ef;background:#2f80ed;color:white;font-weight:600;cursor:pointer;box-shadow:0 -8px 20px #15181c}.applyStyle:hover{background:#3f8bec}
.floatWindow{position:absolute;background:#1a1e23;border:1px solid #4b535e;border-radius:4px;box-shadow:var(--shadow);z-index:70;min-width:360px;min-height:220px;overflow:hidden}.floatWindow.activeWindow{z-index:80;border-color:#637080}.worksheetWindow{left:22px;bottom:22px;width:650px;height:330px}.floatWindow.maximized{left:10px!important;top:10px!important;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important;right:auto!important;bottom:auto!important}.floatTitle{height:34px;background:linear-gradient(#292e35,#22262c);border-bottom:1px solid #3c434d;display:flex;align-items:center;justify-content:space-between;padding:0 7px 0 9px;cursor:move;user-select:none}.floatTitle>div:first-child{display:flex;align-items:center;gap:7px}.floatTitle b{font-size:12px}.floatTitle small{color:#9ca5af;margin-left:4px}.windowIcon{color:#6ca6ea}.windowActions{display:flex;gap:3px}.windowActions button{width:25px;height:22px;border:0;border-radius:3px;background:transparent;color:#c5cbd3;cursor:pointer;font-size:15px;line-height:1}.windowActions button:hover{background:#3a4048;color:white}.windowBody{height:calc(100% - 34px);overflow:auto}.resizeHandle{position:absolute;width:16px;height:16px;right:0;bottom:0;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 45%,#5b6570 46% 52%,transparent 53% 63%,#5b6570 64% 70%,transparent 71%)}.dataPane{background:#111418;padding:0}.sheetMeta{padding:7px 10px;background:#1c2025;border-bottom:1px solid #343a43;color:#aab2bc;position:sticky;top:0;z-index:3}.dataPane table{border-collapse:separate;border-spacing:0;min-width:100%;font:12px Consolas,"Courier New",monospace}.dataPane th,.dataPane td{border-right:1px solid #343a43;border-bottom:1px solid #343a43;padding:5px 8px;white-space:nowrap;min-width:92px}.dataPane th{position:sticky;top:29px;background:#272c33;color:#eef1f5;z-index:2;text-align:center;font-family:"Segoe UI",Arial}.dataPane td{color:#d2d7dd;background:#15181c}.dataPane tr:nth-child(even) td{background:#171b20}.rowNum{position:sticky;left:0!important;z-index:4!important;min-width:44px!important;width:44px!important;background:#242930!important;color:#9da6b1!important;text-align:right!important;font-family:"Segoe UI",Arial!important}.corner{left:0;z-index:5!important}.toast{position:absolute;right:18px;bottom:18px;z-index:150;max-width:430px;padding:10px 14px;border-radius:5px;border:1px solid #485461;background:#20262d;color:#e8edf3;box-shadow:0 12px 30px #0008;font-size:12px}.toast.success{border-color:#2c8f68;background:#18372c}.toast.error{border-color:#a94d55;background:#402327}.toast.info{border-color:#3c78b3;background:#1d3043}.statusBar{height:26px;background:#171a1e;border-top:1px solid #30363d;display:flex;align-items:center;gap:18px;padding:0 10px;color:#9ca5af;font-size:10px;z-index:100}.statusBar .spacer{flex:1}.statusBar span:not(.spacer){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#appShell:not(.galleryCollapsed) #plot{height:calc(100vh - 260px);min-height:420px}@media(max-width:1100px){.workspace{grid-template-columns:210px minmax(0,1fr) 320px}.workspace.mappingHidden{grid-template-columns:0 minmax(0,1fr) 320px}.workspace.inspectorHidden{grid-template-columns:210px minmax(0,1fr) 0}.brand{min-width:178px}.brand small{display:none}}@media(max-width:820px){.menuBar{display:none}.workspace{grid-template-columns:0 minmax(0,1fr) 0}.mappingDock,.inspectorDock{position:absolute;top:0;bottom:0;width:min(88vw,340px);z-index:60}.mappingDock{left:0}.inspectorDock{right:0}.workspace.mappingHidden .mappingDock,.workspace.inspectorHidden .inspectorDock{display:none}.quickActions .toolBtn:not(.accent){display:none}.plotRibbon{height:134px}.galleryGroupTitle{display:none}.plotCard{width:70px}}

/* mapping, export, and about refinements */
.mappingTitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px}.mappingTitle>span{display:inline-flex;align-items:center;gap:5px;color:#d5dbe2;font-weight:600}.mappingTitle input{accent-color:#2f80ed}.mappingTitle em{font-style:normal;font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:#667483}.mappingControl{transition:opacity .15s ease}.mappingControl.disabledMapping{opacity:.42}.mappingControl.disabledMapping select,.mappingControl.disabledMapping .multiSwitch,.mappingControl.disabledMapping .multiPicker{pointer-events:none}.multiSwitch{margin-top:5px;display:flex;align-items:center;gap:5px;font-size:9px;color:#9da8b4;cursor:pointer}.multiSwitch input,.multiPicker input{accent-color:#2f80ed}.multiPicker{max-height:154px;overflow:auto;margin-top:5px;border:1px solid #343d47;border-radius:4px;background:#101317;padding:4px}.multiPicker label{display:flex!important;justify-content:flex-start!important;align-items:center;gap:5px;padding:4px 5px;border-radius:3px;color:#bdc6cf!important;cursor:pointer}.multiPicker label:hover{background:#202832}.multiPicker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiPicker::-webkit-scrollbar{width:7px}.multiPicker::-webkit-scrollbar-thumb{background:#3b4651;border-radius:6px}
.aboutWindow{left:50%;top:50%;transform:translate(-50%,-50%);width:500px;height:430px}.aboutWindow.maximized{transform:none}.aboutBody{padding:28px;text-align:center;background:radial-gradient(circle at 50% 0,#222c36,#15191e 62%)}.aboutLogo{width:210px;max-width:80%;height:auto;margin:4px auto 10px}.aboutBody h2{font-size:23px;margin:4px 0 2px}.aboutLead{color:#96a5b5;margin:0 0 20px}.aboutCard{display:flex;flex-direction:column;gap:6px;padding:13px;border:1px solid #35414d;background:#11161b;border-radius:6px}.aboutCard span{font-size:11px;color:#9ba8b5;line-height:1.5}.aboutContact{display:grid;grid-template-columns:85px 1fr;text-align:left;gap:8px 12px;margin:18px auto 0;max-width:360px;font-size:11px}.aboutContact span{color:#7f8b97}.aboutContact a{color:#72aff2;text-decoration:none}.aboutContact a:hover{text-decoration:underline}.quickActions select#exportDpi{min-width:82px}.quickActions{min-width:0}.menuBar{min-width:0}.menuBtn{white-space:nowrap}
@media(max-width:1320px){.brand{min-width:170px}.menuBtn{padding-left:7px;padding-right:7px;font-size:11px}.quickActions{gap:4px}.quickActions .toolBtn{padding-left:7px;padding-right:7px}.quickActions select{max-width:90px;font-size:10px}}

/* v0.7 multi-sheet workbook UI */
.sheetTopbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;background:#20252b;border-bottom:1px solid #3b424b;position:sticky;top:0;z-index:7}.sheetTabs{display:flex;align-items:center;gap:2px;overflow:auto;min-width:0;flex:1}.sheetTab{border:1px solid #3d444e;background:#181c21;color:#aeb7c1;padding:5px 10px;border-radius:3px 3px 0 0;white-space:nowrap;cursor:pointer;font-size:11px}.sheetTab:hover{background:#2a3037;color:#fff}.sheetTab.active{background:#315b88;border-color:#4a82ba;color:#fff}.sheetTools{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.sheetTools button,.sheetTools select{border:1px solid #414a55;background:#262c33;color:#d5dbe2;border-radius:3px;padding:4px 7px;font-size:10px;cursor:pointer}.sheetTools button:hover{background:#343c45}.sheetMeta{top:35px}.dataPane th{top:64px}.emptySheet{padding:30px;text-align:center;color:#89949f}.saveDataWindow{left:50%;top:50%;transform:translate(-50%,-50%);width:520px;height:430px}.saveDataWindow.maximized{transform:none}.saveDataBody{padding:18px;background:#15191e}.saveDataActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.saveDataActions button,.saveSelectedBtn{border:1px solid #3e4853;background:#242a31;color:#e7ebef;border-radius:5px;padding:10px;cursor:pointer}.saveDataActions button.primary{grid-column:1/-1;background:#285f96;border-color:#3f7fb9}.saveDataActions button:hover,.saveSelectedBtn:hover{filter:brightness(1.12)}.saveDataSelectTitle{display:flex;flex-direction:column;gap:3px;margin:18px 0 8px}.saveDataSelectTitle span{color:#8f9aa6;font-size:10px}.saveDataSheetList{border:1px solid #353d46;background:#101318;border-radius:4px;max-height:170px;overflow:auto;padding:7px}.saveDataSheetList label{display:flex;align-items:center;gap:7px;padding:6px 5px;border-bottom:1px solid #262c32;font-size:11px}.saveDataSheetList label:last-child{border-bottom:0}.saveDataSheetList em{color:#7f8994;font-size:9px}.saveSelectedBtn{width:100%;margin-top:10px;background:#2c6aa3;border-color:#4388c5}

/* v0.8 file dropdown, multi-plot workspace, QRIS donation */
.menuDropdownWrap{position:relative;display:inline-flex}.fileMenuBtn{padding-right:24px;position:relative}.fileMenuBtn:after{content:'▾';position:absolute;right:8px;top:7px;color:#87919c;font-size:10px}.fileDropdown{position:absolute;top:38px;left:0;width:230px;background:#1c2025;border:1px solid #414953;border-radius:5px;box-shadow:0 14px 34px #000a;padding:5px;z-index:250}.fileDropdown button{width:100%;height:34px;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#e3e8ee;border-radius:4px;padding:0 10px;cursor:pointer;text-align:left}.fileDropdown button:hover{background:#2a3139}.fileDropdown button span{font-size:9px;color:#7f8b97}.menuSeparator{height:1px;background:#343b44;margin:4px 5px}.fileMenuBtn.menuOpen{background:#28313b;border-color:#46515d}
.plotWorkspaceBar{position:sticky;top:0;z-index:18;margin:-18px -18px 12px;padding:7px 10px;background:#171a1ef2;border-bottom:1px solid #373e47;display:flex;align-items:center;gap:8px;backdrop-filter:blur(6px)}.plotTabs{display:flex;align-items:center;gap:3px;min-width:0;overflow:auto;flex:1}.plotTab{border:1px solid #39414a;background:#20252b;color:#aeb7c1;border-radius:4px 4px 0 0;height:29px;padding:0 12px;cursor:pointer;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.plotTab:hover{background:#293038;color:#eef2f6}.plotTab.active{background:#315f8f;border-color:#4c8ecb;color:#fff}.plotWorkspaceActions{display:flex;gap:4px;flex:none}.plotWorkspaceActions button{height:28px;border:1px solid #3d4650;background:#242a31;color:#cfd6de;border-radius:4px;padding:0 8px;cursor:pointer;font-size:10px}.plotWorkspaceActions button:hover{background:#313942;border-color:#536170}.plotWorkspaceActions #newPlotDoc{background:#275f96;border-color:#3b7fbc;color:#fff}
.plotWorkspaceBar:not(.hidden)+.edgeButton~.welcome{margin-top:11vh}.plotWorkspaceBar:not(.hidden)~.plotFrame #plot{height:calc(100vh - 158px)}
.aboutWindow{height:650px}.aboutBody{padding:24px}.donationCard{margin:20px auto 4px;max-width:430px;display:grid;grid-template-columns:1fr 150px;gap:16px;align-items:center;padding:14px;border:1px solid #35414d;background:#10151a;border-radius:8px;text-align:left}.donationText{display:flex;flex-direction:column;gap:5px}.donationText b{font-size:13px;color:#eef2f6}.donationText span{font-size:11px;color:#95a4b3}.donationText strong{font-size:14px;color:#72aff2;letter-spacing:.3px}.donationText small{font-size:9px;line-height:1.45;color:#768493}.donationText code{color:#a8c5e4}.qrisImage{width:150px;height:150px;object-fit:contain;background:#fff;border-radius:7px;border:5px solid #fff;box-shadow:0 5px 18px #0007}
@media(max-width:960px){.plotWorkspaceActions button:not(#newPlotDoc){display:none}.donationCard{grid-template-columns:1fr}.qrisImage{margin:auto}.aboutWindow{height:min(650px,90vh)}}

/* v0.9 edit history, per-series style, and minimized graph dock */
.historyBtn:disabled{opacity:.38;cursor:not-allowed}.historyBtn:not(:disabled):hover{background:#2b333c;border-color:#536170}.seriesInspectorGrid{padding-bottom:4px}.seriesStyleActions{display:flex;gap:6px;flex-wrap:wrap}.seriesStyleActions .miniBtn{flex:1;min-width:80px}.seriesStyleHint{font-size:9px;line-height:1.45;color:#7f8b97;padding:3px 1px 0}.minimizedPlotDock{position:absolute;left:9px;bottom:9px;z-index:45;display:flex;gap:5px;max-width:calc(100% - 18px);overflow:auto;padding:5px;background:#121519dd;border:1px solid #343c45;border-radius:6px;box-shadow:0 7px 20px #0008;backdrop-filter:blur(6px)}.minimizedPlotChip{height:29px;max-width:180px;display:flex;align-items:center;gap:6px;border:1px solid #3c4651;background:#22282f;color:#cbd3dc;border-radius:4px;padding:0 9px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.minimizedPlotChip span{color:#6ca6ea}.minimizedPlotChip:hover{background:#315f8f;border-color:#4c8ecb;color:white}.minimizedWorkspace{height:calc(100% - 46px);display:grid;place-items:center;text-align:center;color:#86929e}.minimizedWorkspace>div{display:flex;flex-direction:column;gap:6px}.minimizedWorkspace b{color:#cbd3db;font-size:15px}.minimizedWorkspace span{font-size:10px}.plotWorkspaceActions #minimizePlotDoc{background:#202830}.plotWorkspaceActions #minimizePlotDoc:hover{background:#354454}

/* v1.0 advanced scientific plotting workspace */
.menuCaret{position:relative;padding-right:22px}.menuCaret:after{content:'▾';position:absolute;right:7px;top:7px;color:#87919c;font-size:10px}.menuPanel{top:38px;min-width:240px}.toolWindow{left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,86vw);height:min(620px,82vh)}.toolWindow.maximized{transform:none}.toolWindowBody{padding:14px;overflow:auto;background:#15191e}.toolSection{border:1px solid #343d47;background:#171b20;border-radius:6px;margin-bottom:10px;overflow:hidden}.toolSection>h3{font-size:11px;margin:0;padding:9px 11px;background:#23282f;border-bottom:1px solid #343d47}.toolGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.toolGrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.toolGrid .wide{grid-column:1/-1}.toolLabel{font-size:9px;color:#9da8b4}.toolLabel input,.toolLabel select,.toolLabel textarea{display:block;width:100%;margin-top:4px;background:#0f1215;border:1px solid #3b434d;color:#e7ebef;border-radius:4px;padding:6px}.toolActions{display:flex;gap:7px;flex-wrap:wrap;padding:0 10px 10px}.toolActions button,.advancedBtn{border:1px solid #46515d;background:#242b33;color:#dce3ea;border-radius:4px;padding:7px 10px;cursor:pointer;font-size:10px}.toolActions button.primary,.advancedBtn.primary{background:#2f80ed;border-color:#5799e8;color:#fff}.toolActions button.danger{border-color:#704148;color:#efb3b9}.toolActions button:hover,.advancedBtn:hover{filter:brightness(1.12)}.managerList{padding:8px 10px}.managerRow{display:grid;grid-template-columns:auto minmax(90px,1fr) repeat(4,auto);gap:6px;align-items:center;padding:6px;border-bottom:1px solid #2e353e;font-size:10px}.managerRow:last-child{border-bottom:0}.managerRow input[type=text],.managerRow select{min-width:0;background:#0f1215;border:1px solid #39424c;color:#e2e7ec;border-radius:3px;padding:5px}.managerRow button{border:1px solid #3e4853;background:#242a31;color:#cdd5dd;border-radius:3px;padding:4px 6px;cursor:pointer}.panelPreview{display:grid;gap:6px;padding:10px;background:#101318;border:1px solid #343c45;border-radius:5px}.panelCell{min-height:74px;background:#20262d;border:1px dashed #506172;border-radius:4px;display:grid;place-items:center;color:#9dacba;font-size:10px;padding:6px;text-align:center}.statBox{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.statItem{background:#101419;border:1px solid #303943;border-radius:4px;padding:7px}.statItem b{display:block;font-size:12px}.statItem span{font-size:8px;color:#81909e;text-transform:uppercase}.seriesTable{width:100%;border-collapse:collapse;font-size:9px}.seriesTable th,.seriesTable td{border-bottom:1px solid #2e353d;padding:5px;text-align:left}.seriesTable input[type=color]{width:28px;height:24px;padding:1px}.seriesTable input[type=text],.seriesTable select,.seriesTable input[type=number]{width:100%;background:#0f1215;color:#e4e8ed;border:1px solid #39414a;border-radius:3px;padding:4px}.symbolPicker{display:flex;gap:5px;flex-wrap:wrap}.symbolPicker button{min-width:29px;height:28px;font-size:14px}.figureEstimate{font-size:10px;color:#74b2f3;background:#10161d;border:1px solid #31455b;padding:7px;border-radius:4px}.worksheetToolbarV1{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:5px 7px;background:#181d22;border-bottom:1px solid #333b44;position:sticky;top:35px;z-index:6}.worksheetToolbarV1 button,.worksheetToolbarV1 select,.worksheetToolbarV1 input{border:1px solid #3d4650;background:#252b32;color:#d9dfe5;border-radius:3px;padding:4px 6px;font-size:9px}.worksheetSearch{margin-left:auto;min-width:150px}.sheetMeta.v1{top:65px}.dataPane.v1 th{top:94px}.roleBadge{display:inline-block;margin-left:4px;padding:1px 3px;border-radius:3px;background:#294d72;color:#bfe0ff;font-size:7px;vertical-align:middle}.maskedRow{opacity:.48}.selectedWorksheetRow td{background:#24415e!important}.pointInspectorCard{border:1px solid #3b4650;background:#101418;border-radius:5px;padding:8px;font-size:10px}.pointInspectorCard .kv{display:grid;grid-template-columns:80px 1fr;gap:4px 8px;margin-bottom:7px}.paletteRow{display:flex;gap:5px;flex-wrap:wrap}.paletteSwatch{width:26px;height:26px;border:1px solid #65717d;border-radius:4px;cursor:pointer;position:relative}.paletteSwatch input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.inspectorSection[data-section]{scroll-margin-top:8px}.selectedObjectBadge{display:inline-flex;gap:5px;align-items:center;background:#18314b;border:1px solid #356b9f;color:#bfe0ff;border-radius:4px;padding:4px 6px;font-size:9px}.themeCheck{color:#6fafea;font-weight:700}.layerBadge{font-size:8px;background:#2b3948;color:#9ec7ef;border-radius:3px;padding:1px 4px;margin-left:5px}.breakMark{font-size:10px;color:#c47d7d}.templateCard{border:1px solid #343d47;background:#15191e;border-radius:5px;padding:8px;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}.templateCard b{font-size:10px}.templateCard span{display:block;color:#7f8b97;font-size:8px;margin-top:2px}.templateCard button{border:1px solid #41505f;background:#222a33;color:#dbe2e9;border-radius:3px;padding:5px 7px;font-size:9px;cursor:pointer}

/* app UI themes - graph styling remains independent */
body.theme-light{--bg:#d9dde2;--panel:#f3f4f5;--panel2:#e8ebee;--line:#c0c6cc;--line2:#aeb6be;--text:#1d2329;--muted:#65717c;--shadow:0 12px 32px rgba(40,50,60,.22);color-scheme:light;background:#d9dde2;color:#1d2329}
body.theme-light #appShell{background:#d9dde2}.theme-light .titlebar{background:#f4f5f6;border-color:#bfc5cb;box-shadow:0 2px 9px #66778822}.theme-light .brand b,.theme-light .menuBtn,.theme-light .toolBtn{color:#252b31}.theme-light .menuBtn:hover,.theme-light .toolBtn:hover{background:#e0e4e8;border-color:#bdc4cb}.theme-light .toolBtn,.theme-light .quickActions select{background:#eceff1;border-color:#b9c1c8;color:#23292f}.theme-light .plotRibbon{background:#eef0f2;border-color:#bcc3ca}.theme-light .galleryGroup{border-color:#c6ccd2}.theme-light .galleryGroupTitle{color:#697680}.theme-light .plotCard{color:#313940}.theme-light .plotCard:hover{background:#dde3e8;border-color:#b6c0c9}.theme-light .workspace{background:radial-gradient(circle at 50% 25%,#f2f3f4 0,#e2e5e8 52%,#d7dbe0 100%)}.theme-light .mappingDock,.theme-light .inspectorDock{background:#f4f5f6;border-color:#bdc4cb}.theme-light .dockHeader{background:linear-gradient(#f7f8f9,#e4e7ea);border-color:#bbc2c9}.theme-light .dockHeader b{color:#20262b}.theme-light .dockHeader small{color:#6b7781}.theme-light .dockBody,.theme-light .inspectorBody{background:#f0f2f4}.theme-light .mappingField label,.theme-light .inspectorLabel{color:#4d5964}.theme-light .mappingField select,.theme-light .inspectorLabel input,.theme-light .inspectorLabel select,.theme-light .inspectorLabel textarea,.theme-light .toolLabel input,.theme-light .toolLabel select,.theme-light .toolLabel textarea{background:#fff;color:#20262c;border-color:#b9c1c9}.theme-light .quickStyle,.theme-light .inspectorSection,.theme-light .toolSection{background:#f7f8f9;border-color:#c3c9cf}.theme-light .quickStyleTitle b,.theme-light .inspectorSection summary{color:#252b31}.theme-light .inspectorSection summary,.theme-light .toolSection>h3{background:#e5e8eb;border-color:#c4cad0;color:#252b31}.theme-light .checkChip{background:#e6eaed;border-color:#c3c9cf;color:#30383f}.theme-light .fileDropdown{background:#f7f8f9;border-color:#b9c1c8;box-shadow:0 12px 28px #55667733}.theme-light .fileDropdown button{color:#252b31}.theme-light .fileDropdown button:hover{background:#e3e7ea}.theme-light .plotWorkspaceBar{background:#f1f3f4f2;border-color:#bcc3ca}.theme-light .plotTab{background:#e4e7ea;border-color:#b9c0c7;color:#404a53}.theme-light .plotTab.active{background:#3372ad;color:#fff;border-color:#286598}.theme-light .plotWorkspaceActions button{background:#e7eaed;color:#31383f;border-color:#b9c1c8}.theme-light .floatWindow{background:#f4f5f6;border-color:#9ea7af}.theme-light .floatTitle{background:#e8ebee;border-color:#bac1c7;color:#1f252a}.theme-light .windowBody,.theme-light .toolWindowBody,.theme-light .saveDataBody{background:#f4f5f6;color:#252b31}.theme-light .dataPane table{background:#fff}.theme-light .dataPane th{background:#e7eaed;color:#242a30}.theme-light .dataPane td{background:#fff;color:#30363b;border-color:#d8dde1}.theme-light .sheetTopbar,.theme-light .worksheetToolbarV1{background:#e7eaed;border-color:#c3c9cf}.theme-light .sheetTab{background:#f5f6f7;color:#46515b;border-color:#bcc4cb}.theme-light .sheetTab.active{background:#3372ad;color:#fff}.theme-light .sheetTools button,.theme-light .sheetTools select,.theme-light .worksheetToolbarV1 button,.theme-light .worksheetToolbarV1 select,.theme-light .worksheetToolbarV1 input{background:#fff;color:#30373d;border-color:#b7c0c8}.theme-light .statusBar{background:#e3e6e9;color:#4f5b66;border-color:#c2c8ce}.theme-light .aboutBody{background:radial-gradient(circle at 50% 0,#fff,#eef0f2 65%)}.theme-light .aboutCard,.theme-light .donationCard{background:#fff;border-color:#c2c8ce;color:#252b31}.theme-light .aboutBody h2,.theme-light .donationText b{color:#20262c}.theme-light .toolWindowBody .toolSection,.theme-light .pointInspectorCard,.theme-light .statItem,.theme-light .panelPreview{background:#fff;border-color:#c5ccd2}.theme-light .managerRow input[type=text],.theme-light .managerRow select,.theme-light .seriesTable input[type=text],.theme-light .seriesTable select,.theme-light .seriesTable input[type=number]{background:#fff;color:#252b31;border-color:#b9c1c8}
@media(max-width:1050px){.toolGrid.three{grid-template-columns:1fr 1fr}.quickActions #viewWorksheetBtn,.quickActions #viewInspectorBtn{display:none}}@media(max-width:700px){.toolGrid,.toolGrid.three{grid-template-columns:1fr}.toolGrid .wide{grid-column:auto}.toolWindow{width:94vw;height:84vh}}

/* v1.1 deploy-ready UI */
.themeToggle{width:34px;height:18px;border:1px solid #4b5662;border-radius:999px;background:#242a31;position:relative;padding:0;cursor:pointer;flex:0 0 auto;box-shadow:inset 0 1px 3px #0007}.themeToggleKnob{position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#d6dde5;transition:.18s ease;box-shadow:0 1px 3px #0008}.themeToggle.isLight{background:#d8dde2;border-color:#aeb7c0}.themeToggle.isLight .themeToggleKnob{transform:translateX(16px);background:#f4b942}.theme-light .themeToggle{background:#d8dde2;border-color:#aeb7c0}.statusBar{gap:12px}.layerManagerHead{color:#8e9aa5}.switchCell{display:flex;justify-content:center;align-items:center}.switchCell input{accent-color:#438bd1}.layerAxisOptions{margin:0 10px 8px 44px;padding:6px 8px;border:1px dashed #35404b;border-radius:4px;display:flex;gap:12px;font-size:9px;color:#8d99a5}.layerAxisOptions label{display:flex;align-items:center;gap:5px}.layerAxisOptions select{background:#0f1215;border:1px solid #39424c;color:#e2e7ec;border-radius:3px;padding:4px}.layerAxisOptions.mutedAxisOptions{opacity:.38}.theme-light .layerAxisOptions select{background:#fff;color:#252b31;border-color:#b9c1c8}.theme-light .themeToggleKnob{background:#f4b942}

/* v1.1 deploy-ready refinements */
.themeToggle{width:34px;height:18px;border:1px solid #4b5662;border-radius:999px;background:#242a31;position:relative;padding:0;cursor:pointer;flex:0 0 auto;box-shadow:inset 0 1px 3px #0007}.themeToggleKnob{position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#d7dde4;transition:.18s ease;box-shadow:0 1px 3px #0008}.themeToggle.isLight{background:#d6dce2;border-color:#a9b3bd}.themeToggle.isLight .themeToggleKnob{transform:translateX(16px);background:#f1b83e}.statusBar{gap:12px}.layerSecondarySettings{margin:0 10px 8px 44px;padding:6px 8px;border:1px dashed #35404b;border-radius:4px;display:flex;gap:12px;font-size:9px;color:#8d99a5}.layerSecondarySettings label{display:flex;align-items:center;gap:5px}.layerSecondarySettings select{background:#0f1215;border:1px solid #39424c;color:#e2e7ec;border-radius:3px;padding:4px}.layerSecondarySettings.disabledSecondary{opacity:.35}.layerHead{color:#87939f}.theme-light .layerSecondarySettings select{background:#fff;color:#252b31;border-color:#b9c1c8}

.axisTickHint{font-size:11px;line-height:1.45;color:var(--muted);padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel2,#171b20)}
