:root{
    --brick:#b85c2e; --brick-dark:#94481f; --brick-soft:#f4e4d9;
    --ink:#211c18; --ink-soft:#403a34;
    --paper:#f5f2ec; --panel:#ffffff; --panel-2:#fbf9f6;
    --line:#e8e1d7; --line-2:#d8d0c4; --muted:#8b8378; --muted-2:#a59c90;
    --k-red:#d93b2b; --g-green:#2e8b57; --half-gray:#9a958e;
    --zF:#e23b2e; --zG:#f08a2c; --zH:#2bb6d6; --zI:#f2cf2a; --zS:#8e44ad;
    --steel:#2f6f9f; --steel-soft:#e2edf4;
    --focus:rgba(184,92,46,.26);
    --r-sm:6px; --r:9px; --r-lg:14px; --r-pill:999px;
    --sh-1:0 1px 2px rgba(33,26,20,.07);
    --sh-2:0 6px 18px rgba(33,26,20,.10);
    --sh-3:0 14px 40px rgba(33,26,20,.18);
    --mono:'JetBrains Mono','Consolas',monospace;
    --sans:'Inter','Segoe UI',system-ui,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{font-family:var(--sans);background:var(--paper);color:var(--ink);display:flex;flex-direction:column;overflow:hidden;-webkit-font-smoothing:antialiased}
  button{font-family:inherit}
  ::selection{background:var(--brick-soft)}

  /* ---------------- header (jasna belka z konfiguratorem) ---------------- */
  header{display:flex;align-items:center;gap:18px;padding:0 18px;height:64px;background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 2px 14px rgba(40,30,20,.05);flex:0 0 auto;z-index:20}
  .brand{display:flex;align-items:baseline;gap:11px;min-width:0;flex:0 0 auto}
  header .logo{font-weight:800;letter-spacing:.04em;font-size:16px;white-space:nowrap}
  header .logo b{color:var(--brick)}
  header input#projName{display:none}
  .view-switch{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;min-width:252px;height:52px;padding:4px;background:linear-gradient(180deg,#fff 0%,#f6f1ea 100%);border:1px solid #e8dccd;border-radius:999px;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 8px 18px rgba(73,47,26,.08);overflow:hidden;isolation:isolate}
  .view-switch::after{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:rgba(184,92,46,.16);transform:translateX(0);opacity:0;transition:transform .18s ease,opacity .18s ease;z-index:0}
  .view-switch[data-hover="editor"]::after{transform:translateX(100%);opacity:1}
  .view-switch[data-hover="project"]::after{transform:translateX(0);opacity:1}
  .view-switch-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:linear-gradient(180deg,#cf7238 0%,#b85c2e 100%);box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 10px 18px rgba(136,62,24,.28);transform:translateX(0);transition:transform .24s cubic-bezier(.22,.61,.36,1),background .18s ease,box-shadow .18s ease;z-index:1}
  .view-switch[data-active="editor"] .view-switch-thumb{transform:translateX(100%)}
  .view-switch button{position:relative;z-index:2;min-width:96px;height:44px;border:none;border-radius:999px;background:transparent;color:#8e8478;font:800 12px/1 var(--sans);cursor:pointer;white-space:nowrap;transition:color .18s ease,transform .18s ease;-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 10px}
  .view-switch button .sub{font-size:9px;line-height:1;color:inherit;font-weight:700;opacity:.82}
  .view-switch button[aria-pressed="true"]{color:#fff}
  .view-switch button[aria-pressed="false"]{color:#8e8478}
  .view-switch[data-hover="project"] button[data-view="project"],
  .view-switch[data-hover="editor"] button[data-view="editor"]{color:#b85c2e}
  .view-switch button:focus-visible{outline:none}
  .view-switch button:active{background:transparent;transform:scale(.985)}
  .editor-view-switch{margin-left:auto;flex:0 0 auto}


  /* ===== przełączniki kontekstowe (pod aktywną kartą konfiguratora) ===== */
  #topModes{display:flex;flex-direction:column;gap:12px;margin:13px 0 0}
  #topModes:empty{display:none}
  #topModes .appblock{display:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 13px;box-shadow:var(--sh-2);margin:0}
  body.app-fast #topModes #fastMapBlock{display:block}
  body.slopeview-struct #topModes #slopeModeBlock{display:none!important}
  #topModes .modeHead{margin:0 0 9px}
  #topModes #modeHint{margin:9px 0 0}

  /* segmented control */
  .segmented{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#2a2520;border:1px solid #3a342e;border-radius:var(--r-pill);padding:3px;gap:2px}
  /* nowoczesny przełącznik trybów z animowanym suwakiem */
  #appSwitch{width:500px;position:relative;gap:0;padding:4px;background:#262019;border-color:#3d362e}
  #appSwitch .seg-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/4);border-radius:calc(var(--r-pill) - 2px);
    z-index:0;background:var(--brick);box-shadow:0 2px 8px rgba(0,0,0,.28);
    transition:transform .26s cubic-bezier(.34,1.2,.4,1), background .2s}
  #appSwitch[data-active="roofedit"] .seg-thumb{transform:translateX(0);background:var(--brick)}
  #appSwitch[data-active="slopes"] .seg-thumb{transform:translateX(100%);background:var(--brick)}
  #appSwitch[data-active="wind"]   .seg-thumb{transform:translateX(200%);background:var(--zG)}
  #appSwitch[data-active="fast"]   .seg-thumb{transform:translateX(300%);background:var(--steel)}
  #appSwitch button{position:relative;z-index:1;border:none;background:transparent;color:#a99e90;font-size:12.5px;font-weight:600;
    min-width:0;padding:7px 10px;border-radius:calc(var(--r-pill) - 2px);cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:auto auto;align-items:center;justify-items:start;column-gap:7px;row-gap:1px;white-space:nowrap;letter-spacing:.005em;
    transition:color .2s,opacity .2s,background .2s}
  #appSwitch button .gl{grid-row:1/3;font-size:15px;line-height:1;opacity:.85;transition:opacity .2s,transform .2s}
  #appSwitch button .tx{grid-column:2;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;line-height:1.05}
  #appSwitch button .mode-sub{grid-column:2;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:9.5px;font-weight:800;line-height:1;color:#cdbfac;opacity:.82}
  #appSwitch button .drop-caret{grid-column:3;grid-row:1/3;font-size:10px;line-height:1;color:#d8cab8;opacity:.85;transition:transform .18s,opacity .18s}
  #appSwitch button.menu-open .drop-caret{transform:rotate(180deg);opacity:1}
  #appSwitch button:hover{color:#efe7dc}
  #appSwitch button.has-menu:hover{background:rgba(255,255,255,.06)}
  #appSwitch button.active{color:#fff;font-weight:700}
  #appSwitch button.active .mode-sub{color:#fff;opacity:.9}
  #appSwitch button.active .gl{opacity:1;transform:scale(1.08)}
  /* pozostałe segmented (gdyby były) */
  .segmented:not(#appSwitch) button{border:none;background:transparent;color:#cabfb3;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:var(--r-pill);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
  .segmented:not(#appSwitch) button .gl{font-size:14px;line-height:1}
  .segmented:not(#appSwitch) button:hover{color:#fff}
  .segmented:not(#appSwitch) button.active{background:var(--brick);color:#fff;box-shadow:var(--sh-1)}
  body.app-fast #toolToolbar #btnLayers.active,body.app-fast #toolToolbar #btnExport.active,body.app-fast #toolToolbar #btnUnderlayMenu.active{background:var(--steel)}
  body.app-fast #btnTools.active,body.app-fast #tools button.active{background:var(--steel)}

  /* ---------------- layout ---------------- */
  #main{flex:1;display:flex;min-height:0;position:relative}
  #editorDrawingBar{height:74px;flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 12px rgba(40,30,20,.05);z-index:15;min-width:0}
  body:not(.workspace-home) #editorDrawingBar{display:none}
  body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #editorDrawingBar,
  body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #editorDrawingBar{display:flex;position:fixed;left:40px;right:40px;top:78px;z-index:2545;height:78px;margin:0;border:1px solid #d4d9df;border-radius:12px;background:#fff}
  body.theme-night.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #editorDrawingBar,
  body.theme-night.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #editorDrawingBar{background:#202632!important;border-color:#3d4454!important;box-shadow:0 10px 28px rgba(0,0,0,.24)!important}
  body.theme-night:not(.workspace-home) #editorDrawingBar{background:#202632;border-color:#3d4454;box-shadow:0 10px 28px rgba(0,0,0,.24)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-title{color:#f4f6fb}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-title span,
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-meta small{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tab{background:#252c39;border-color:#3d4454;color:#f4f6fb}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tab:hover{border-color:#00a5a7;background:#1f3440;color:#fff}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tab.active{border-color:#00a5a7;background:#103b3f;box-shadow:inset 0 -3px 0 #00a5a7}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tabs{scrollbar-color:#00a5a7 rgba(255,255,255,.12)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tabs::-webkit-scrollbar-track{background:rgba(255,255,255,.12)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tabs::-webkit-scrollbar-thumb{background:#00a5a7;border-color:rgba(255,255,255,.12)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-tabs::-webkit-scrollbar-thumb:hover{background:#20d3c8}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-thumb{background:#171b24;border-color:#4a5365}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale-state.ok{background:rgba(53,189,121,.18);color:#8ff0bd}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale-state.missing{background:rgba(245,158,11,.16);color:#f7c66a}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale{background:#252c39;border-color:#3d4454;color:#f4f6fb}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale small{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale:hover{background:#1f3440;border-color:#00a5a7;color:#fff}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale.ok{border-color:rgba(53,189,121,.45);background:rgba(53,189,121,.12)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-scale.missing{border-color:rgba(245,158,11,.38);background:rgba(245,158,11,.1)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-pdf{background:#1f3440;color:#20d3c8}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-page-select{background:#1f3440;border-color:#00a5a7;color:#dff9fb}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-add{background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-module-toggle{background:linear-gradient(135deg,#12383f,#202632 62%);border-color:#00a5a7;color:#f4f6fb}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-module-menu{background:#171b24;border-color:#3d4454;box-shadow:0 18px 38px rgba(0,0,0,.38)}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-module-option{color:#dbe3ef}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-module-option:hover{background:#1f3440;border-color:#00a5a7}
  body.theme-night:not(.workspace-home) #editorDrawingBar .edb-module-option.active{background:#103b3f;border-color:#00a5a7}
  #editorDrawingBar[hidden]{display:none!important}
  body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #appSwitch,
  body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #appSwitch{display:none!important}
  body.editor-drawing-bar-visible.mode-advanced[data-project-tab="advanced"]:not(.workspace-home) header{height:0;min-height:0;padding-top:0;padding-bottom:0;border-bottom:none;overflow:visible}
  #editorDrawingBar .edb-module{position:relative;min-width:218px;max-width:236px;flex:0 0 218px}
  #editorDrawingBar .edb-module-toggle{width:100%;height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(135deg,#fff,#f3f7f8 68%);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 8px 18px rgba(15,26,43,.08);cursor:pointer;text-align:left}
  #editorDrawingBar .edb-module-toggle:hover,
  #editorDrawingBar .edb-module.open .edb-module-toggle{border-color:#00a5a7;box-shadow:0 0 0 2px rgba(0,165,167,.16),0 10px 20px rgba(15,26,43,.12)}
  #editorDrawingBar .edb-module-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#00a5a7;color:#071316;font:900 17px/1 var(--sans);box-shadow:0 6px 14px rgba(0,165,167,.22)}
  #editorDrawingBar .edb-module-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
  #editorDrawingBar .edb-module-copy small{font-size:9.5px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}
  #editorDrawingBar .edb-module-copy b{font-size:13px;line-height:1.05;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #editorDrawingBar .edb-module-caret{font-size:13px;font-weight:900;color:var(--muted);transition:transform .16s ease}
  #editorDrawingBar .edb-module.open .edb-module-caret{transform:rotate(180deg)}
  #editorDrawingBar .edb-module-menu{position:absolute;left:0;top:calc(100% + 8px);width:260px;z-index:2605;padding:7px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);box-shadow:0 18px 38px rgba(15,26,43,.18)}
  #editorDrawingBar .edb-module-menu[hidden]{display:none!important}
  #editorDrawingBar .edb-module-option{width:100%;min-height:48px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:7px 9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
  #editorDrawingBar .edb-module-option:hover{background:#eef8f8;border-color:#b9dfe2}
  #editorDrawingBar .edb-module-option.active{background:#e3f5f5;border-color:#00a5a7}
  #editorDrawingBar .edb-module-option .edb-module-icon{width:30px;height:30px;border-radius:8px;font-size:15px}
  #editorDrawingBar .edb-title{display:flex;flex-direction:column;gap:2px;min-width:96px;color:var(--ink)}
  #editorDrawingBar .edb-title b{font-size:13px;font-weight:850}
  #editorDrawingBar .edb-title span{font-size:10.5px;color:var(--muted);font-weight:700;white-space:nowrap}
  #editorDrawingBar .edb-tabs{display:flex;align-items:stretch;gap:8px;min-width:0;flex:1 1 auto;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#00a5a7 rgba(15,26,43,.14);padding:1px 2px 7px}
  #editorDrawingBar .edb-tabs::-webkit-scrollbar{height:8px}
  #editorDrawingBar .edb-tabs::-webkit-scrollbar-track{background:rgba(15,26,43,.12);border-radius:999px}
  #editorDrawingBar .edb-tabs::-webkit-scrollbar-thumb{background:#00a5a7;border:2px solid rgba(15,26,43,.12);border-radius:999px}
  #editorDrawingBar .edb-tabs::-webkit-scrollbar-thumb:hover{background:#20d3c8}
  #editorDrawingBar .edb-tabs::-webkit-scrollbar-button{display:none;width:0;height:0}
  #editorDrawingBar .edb-tab-wrap{position:relative;display:flex;align-items:stretch;flex:0 0 auto}
  #editorDrawingBar .edb-tab{height:56px;min-width:190px;max-width:270px;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:8px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:#fbfaf8;color:var(--ink);box-shadow:none;text-align:left;flex:0 0 auto}
  #editorDrawingBar .edb-tab-wrap.has-pages .edb-tab{min-width:278px;max-width:300px;padding-right:96px}
  #editorDrawingBar .edb-tab:hover{border-color:var(--brick);background:#fff;color:var(--ink)}
  #editorDrawingBar .edb-tab.active{border-color:var(--brick);background:#fff4ed;box-shadow:inset 0 -3px 0 var(--brick)}
  #editorDrawingBar .edb-thumb{width:54px;height:42px;border-radius:6px;border:1px solid var(--line-2);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--brick-dark);font:850 11px/1 var(--sans)}
  #editorDrawingBar .edb-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  #editorDrawingBar .edb-pdf{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#f8ebe4;color:#9f4320}
  #editorDrawingBar .edb-meta{min-width:0;display:flex;flex-direction:column;gap:3px}
  #editorDrawingBar .edb-meta b{font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #editorDrawingBar .edb-meta small{font-size:10px;line-height:1;color:var(--muted);font-weight:750}
  #editorDrawingBar .edb-tab-wrap.has-pages .edb-meta{gap:2px}
  #editorDrawingBar .edb-page-label{display:none}
  #editorDrawingBar .edb-page-select{position:absolute;right:8px;bottom:10px;width:84px;height:22px;border:1px solid rgba(0,165,167,.38);border-radius:999px;background:#eef8f8;color:#0f3440;font:900 10px/1 var(--sans);padding:0 20px 0 8px;outline:none}
  #editorDrawingBar .edb-page-select:focus{border-color:#00a5a7;box-shadow:0 0 0 2px rgba(0,165,167,.16)}
  #editorDrawingBar .edb-scale-state{display:inline-flex;align-items:center;width:max-content;max-width:100%;height:15px;padding:0 6px;border-radius:999px;font-size:9px;line-height:1;font-weight:900;white-space:nowrap}
  #editorDrawingBar .edb-tab-wrap.has-pages .edb-scale-state{margin-top:1px}
  #editorDrawingBar .edb-scale-state.ok{background:rgba(37,148,93,.14);color:#1f7a4d}
  #editorDrawingBar .edb-scale-state.missing{background:rgba(180,83,9,.12);color:#9a4d08}
  #editorDrawingBar .edb-nav{width:32px;height:42px;padding:0;border-radius:8px;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  #editorDrawingBar .edb-scale{height:42px;min-width:108px;padding:5px 10px;border-radius:8px;border:1px solid var(--line-2);background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;font-weight:900;line-height:1;white-space:nowrap;flex:0 0 auto}
  #editorDrawingBar .edb-scale span{font-size:12px}
  #editorDrawingBar .edb-scale small{font-size:9px;color:var(--muted);font-weight:900}
  #editorDrawingBar .edb-scale:hover{border-color:#00a5a7;background:#eef8f8;color:#071316}
  #editorDrawingBar .edb-scale.ok{border-color:rgba(37,148,93,.45);background:rgba(37,148,93,.09)}
  #editorDrawingBar .edb-scale.missing{border-color:rgba(180,83,9,.35);background:rgba(180,83,9,.08)}
  #editorDrawingBar .edb-add{height:42px;border-radius:8px;background:var(--ink);border-color:var(--ink);color:#fff;font-weight:800;white-space:nowrap;flex:0 0 auto}
  #editorDrawingBar .edb-add:hover{background:var(--brick);border-color:var(--brick);color:#fff}
  #sidebar{width:316px;flex:0 0 auto;background:transparent;border-right:none;overflow-y:auto;padding:14px 13px 40px;font-size:12.5px}
  #canvasWrap{flex:1;position:relative;min-width:0;background:#efeae3}
  #svgHost{position:absolute;inset:0 0 40px 0;cursor:default;touch-action:none}
  #svgHost>svg{position:relative;z-index:1}
  #svgHost.has-pdf-underlay>svg{background:transparent!important}
  #svgHost.has-cad-underlay>svg{background:transparent!important}
  .editor-cad-underlay{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#fff;color:transparent}
  .editor-cad-underlay canvas{display:block;width:100%!important;height:100%!important;pointer-events:none}
  .editor-cad-underlay[data-status="loading"]::after{content:"Ladowanie DWG...";position:absolute;left:14px;bottom:64px;padding:6px 9px;border-radius:6px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--muted);font:800 11px/1 var(--sans);box-shadow:var(--sh-1)}
  .editor-cad-underlay[data-status="error"]::after{content:"Nie mozna odczytac tego DWG. Zapisz plik jako DXF albo starszy DWG i dodaj ponownie.";position:absolute;left:24px;right:24px;top:50%;transform:translateY(-50%);padding:16px 18px;border-radius:8px;background:rgba(255,255,255,.96);border:1px solid #ef9a9a;color:#9a1b1b;font:900 14px/1.35 var(--sans);text-align:center;box-shadow:var(--sh-2)}
  .editor-pdf-underlay{display:none!important;position:absolute;z-index:0;pointer-events:none;overflow:hidden;background:transparent;border:0;box-shadow:none;transform-origin:0 0;will-change:transform}
  .editor-pdf-underlay img{width:100%;height:100%;border:0;display:block;pointer-events:none;background:#fff;object-fit:fill}
  #schedulePanel{width:480px;flex:0 0 auto;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;padding:16px 16px 32px;font-size:12px;display:flex;flex-direction:column;gap:10px}
  #schedulePanel.hidden{display:none}
  #sidebar::-webkit-scrollbar,#schedulePanel::-webkit-scrollbar{width:10px}
  #sidebar::-webkit-scrollbar-thumb,#schedulePanel::-webkit-scrollbar-thumb{background:#ded5c8;border-radius:10px;border:3px solid var(--panel)}

  /* ---------------- inspector sections ---------------- */
  #sidebar h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;
    padding:14px 16px 12px;margin:0;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line)}
  #sidebar h3:first-of-type{border-top:none}
  #sidebar h3.sec-head{cursor:pointer;user-select:none;justify-content:space-between}
  #sidebar h3.sec-head:hover{color:var(--ink)}
  #sidebar h3.sec-head::after{content:'';width:7px;height:7px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(-45deg);transition:transform .18s;opacity:.55}
  #sidebar h3.sec-head.open::after{transform:rotate(45deg)}
  #sidebar .sec-body{padding:0 16px 14px}
  #sidebar .sec-body.collapsed{display:none}
  .modeHead{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 8px;font-weight:700;display:flex;align-items:center;gap:8px}
  .appblock{padding:0;border-top:none;margin:0 0 13px}
  .appblock[data-app="slopes"],.appblock[data-app="fast"]{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:13px 14px;box-shadow:var(--sh-2)}
  #sidebar .cfg-card{box-shadow:var(--sh-2)}
  /* desktop: konfigurator pływa nad projektem (płótno pod spodem) */
  @media(min-width:901px){
    #sidebar{position:absolute;left:0;top:0;height:100%;z-index:7;pointer-events:none;
      scrollbar-width:none}
    #sidebar::-webkit-scrollbar{width:0;height:0}
    #sidebar>*{pointer-events:auto}
    #toolToolbar{left:calc(50% + 158px)}
  }
  .appblock:first-child{border-top:none}
  .infocard{background:linear-gradient(180deg,#fdf6f0,#fbf9f6);border:1px solid var(--brick-soft);border-radius:var(--r);padding:10px 12px;font-size:11.5px;color:var(--ink-soft);line-height:1.55}
  .infocard b{color:var(--brick-dark)}

  /* rows / inputs */
  .row{display:flex;align-items:center;gap:8px;margin:8px 0;flex-wrap:wrap}
  .row label{flex:1;min-width:104px;color:var(--ink-soft);font-size:12px}
  .row input[type=number],.row select{width:94px;padding:6px 8px;border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:var(--mono);font-size:12px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
  .row input[type=number]:focus,.row select:focus{outline:none;border-color:var(--brick);box-shadow:0 0 0 3px var(--focus)}
  .row select{cursor:pointer}
  .row input[type=range]{flex:1;accent-color:var(--brick)}
  .hint{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0}

  /* buttons */
  button{font-size:12px;padding:8px 11px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;cursor:pointer;color:var(--ink);font-weight:500;transition:border-color .14s,background .14s,color .14s,transform .05s}
  button:hover{border-color:var(--brick);color:var(--brick-dark);background:var(--panel-2)}
  button:active{transform:translateY(1px)}
  button.primary{background:var(--brick);border-color:var(--brick);color:#fff;font-weight:600}
  button.primary:hover{background:var(--brick-dark);border-color:var(--brick-dark);color:#fff}
  .btnrow{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0 2px}
  .btnrow button{flex:1;min-width:78px}

  /* mode switch (radial/linear) as segmented */
  .toolgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  #modeSwitch{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px;gap:3px;position:relative}
  #modeSwitch button{border:none;background:transparent;border-radius:var(--r-pill);font-weight:600;color:var(--muted);padding:7px 6px;position:relative;z-index:1;transition:color .25s}
  #modeSwitch button:hover{color:var(--ink)}
  #modeSwitch button.active{color:#fff}
  #slopeViewSwitch{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px;gap:3px;position:relative}
  #slopeViewSwitch button{border:none;background:transparent;border-radius:var(--r-pill);font-weight:600;color:var(--muted);padding:7px 6px;cursor:pointer;position:relative;z-index:1;transition:color .25s}
  #slopeViewSwitch button:hover{color:var(--ink)}
  #slopeViewSwitch button.active{color:#fff}
  /* przesuwany wskaźnik aktywnej zakładki — płynne przejście */
  #modeSwitch::before,#slopeViewSwitch::before{content:'';position:absolute;z-index:0;top:3px;bottom:3px;left:3px;width:calc(50% - 4.5px);
    border-radius:var(--r-pill);box-shadow:var(--sh-1);transition:transform .32s cubic-bezier(.34,1.3,.5,1),background .25s}
  #modeSwitch::before{background:var(--ink)}
  #slopeViewSwitch::before{background:var(--brick)}
  body.app-fast #slopeViewSwitch::before{background:var(--steel)}
  #modeSwitch.is-b::before,#slopeViewSwitch.is-b::before{transform:translateX(calc(100% + 3px))}
  #fastMapSwitch{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px}
  #fastMapSwitch button{border:none;background:transparent;border-radius:var(--r-pill);font-weight:600;color:var(--muted);padding:7px 3px;cursor:pointer;font-size:10.5px;transition:.18s;font-family:inherit}
  #fastMapSwitch button:hover{color:var(--ink)}
  #fastMapSwitch button.active{background:var(--steel);color:#fff;box-shadow:0 1px 4px rgba(20,58,82,.3)}

  /* toggle switches for layers */
  .check{display:flex;align-items:center;gap:10px;margin:1px 0;cursor:pointer;user-select:none;padding:6px 0;font-size:12px;color:var(--ink-soft)}
  .check input{appearance:none;-webkit-appearance:none;position:relative;width:34px;height:20px;border-radius:var(--r-pill);background:#d9d0c3;cursor:pointer;flex:0 0 auto;transition:background .16s}
  .check input::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform .16s}
  .check input:checked{background:var(--brick)}
  .check input:checked::after{transform:translateX(14px)}
  .check input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus)}

  /* advanced details */
  details.sub{margin:9px 0 2px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r)}
  details.sub > summary{font-weight:600;color:var(--ink-soft);list-style:none;padding:9px 11px;cursor:pointer;font-size:11.5px;display:flex;align-items:center;gap:7px}
  details.sub > summary::-webkit-details-marker{display:none}
  details.sub > summary::before{content:'';width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);opacity:.55;transition:transform .16s}
  details.sub[open] > summary{color:var(--brick-dark)}
  details.sub[open] > summary::before{transform:rotate(45deg)}
  details.sub .row{padding:0 11px}
  details.sub .hint{padding:2px 11px}
  details.sub > .row:last-child{padding-bottom:11px}

  /* ---------------- floating canvas chrome ---------------- */
  #toolToolbar{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:8;
    display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);
    border-radius:var(--r-lg);padding:5px;box-shadow:var(--sh-2)}
  #tools{display:flex;gap:3px;position:relative}
  #tools[hidden]{display:flex}            /* desktop: atrybut hidden ignorowany (pasek zawsze widoczny) */
  #tools .tools-h{display:none}
  #tools .tl-label{display:none}
  #toolToolbar .tool-group{display:flex;align-items:center;justify-content:center;gap:3px;position:relative;flex:0 0 auto;min-width:58px;padding:0 6px;border-right:1px solid var(--line);box-sizing:border-box}
  #toolToolbar .tool-group:last-of-type{border-right:none}
  body.mode-advanced #toolToolbar .tool-group{padding-top:13px}
  body.mode-advanced #toolToolbar .tool-group::before{content:attr(data-group);position:absolute;top:0;left:4px;right:4px;text-align:center;font-size:8px;line-height:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:clip;pointer-events:none}
  body.mode-advanced #toolToolbar .tool-group[data-group="Odwodnienie"],
  body.mode-advanced #toolToolbar .tool-group[data-group="Przesuwanie"]{min-width:88px}
  body.mode-advanced #toolToolbar .tool-group[data-toolbar-wide="true"]{min-width:88px}
  #btnTools{display:none}
  #tools button{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);
    align-items:center;justify-content:center;font-size:17px;color:var(--ink-soft);position:relative}
  #tools button:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #tools button.active{background:var(--ink);color:#fff}
  #tools .hole-mode-wrap{position:relative;display:flex}
  #tools #btnHoleMenu{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);align-items:center;justify-content:center;font-size:17px;color:var(--ink-soft);position:relative}
  #tools #btnHoleMenu:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #tools #btnHoleMenu.active{background:var(--ink);color:#fff}
  #tools #holeModePop{left:0;right:auto;width:244px;padding:7px;display:flex;flex-direction:column;gap:3px}
  #tools #holeModePop[hidden]{display:none}
  #tools #holeModePop .pop-h{padding:4px 8px 7px;margin-bottom:4px;display:block}
  #tools #holeModePop button{box-sizing:border-box;width:100%;height:auto;min-height:34px;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:700;text-align:left;white-space:nowrap}
  #tools #holeModePop button:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #tools #holeModePop button.active{background:var(--brick-soft);color:var(--brick-dark)}
  #tools #holeModePop button .ext{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 6px;white-space:nowrap}
  #tools #holeModePop button:hover .ext{color:var(--brick-dark);border-color:var(--brick-soft)}
  #tools .adv-drainage-wrap{position:relative;display:flex}
  #tools #btnDrainageMenu{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);align-items:center;justify-content:center;font-size:17px;color:var(--ink-soft);position:relative}
  #tools #btnDrainageMenu:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #tools #btnDrainageMenu.active{background:var(--ink);color:#fff}
  #tools #drainagePop{left:0;right:auto;width:270px;padding:7px;display:flex;flex-direction:column;gap:3px}
  #tools #drainagePop[hidden]{display:none}
  #tools #drainagePop .pop-h{padding:4px 8px 7px;margin-bottom:4px;display:block}
  #tools #drainagePop button{box-sizing:border-box;width:100%;height:auto;min-height:34px;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:700;text-align:left;white-space:nowrap}
  #tools #drainagePop button:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #tools #drainagePop button .ext{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 6px;white-space:nowrap}
  #tools #drainagePop button:hover .ext{color:var(--brick-dark);border-color:var(--brick-soft)}
  body.mode-basic #tools .adv-drainage-wrap{display:none!important}
  body.mode-advanced #tools button[data-tool="drain"],body.mode-advanced #tools button[data-tool="gutter"]{display:none!important}
  body.app-wind #tools button.active{background:var(--zG)}
  .railsep{width:1px;height:24px;background:var(--line);margin:0 3px;flex:0 0 auto}
  #toolToolbar #btnUndo{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);font-size:16px;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;position:relative}
  #toolToolbar #btnUndo:hover{background:var(--brick-soft);color:var(--brick-dark)}

  /* tooltips */
  [data-tip]::after{content:attr(data-tip);position:absolute;top:46px;left:50%;transform:translateX(-50%) translateY(4px);
    background:var(--ink);color:#fff;font-size:11px;font-weight:500;padding:4px 9px;border-radius:6px;white-space:nowrap;
    opacity:0;pointer-events:none;transition:opacity .14s,transform .14s;z-index:30}
  [data-tip]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}
  #zoomCtl [data-tip]{position:relative}
  #zoomCtl [data-tip]::after{top:50%;left:auto;right:calc(100% + 8px);transform:translateY(-50%) translateX(4px)}
  #zoomCtl [data-tip]:hover::after{transform:translateY(-50%) translateX(0)}

  /* hint strip */
  #toolHint{position:absolute;top:64px;left:50%;transform:translateX(-50%);z-index:7;max-width:min(560px,82%);
    background:rgba(33,28,24,.9);color:#fff;font-size:11.5px;line-height:1.45;padding:7px 13px;border-radius:var(--r-pill);
    text-align:center;pointer-events:none}
  #toolHint:empty{display:none}

  #modeBadge{position:absolute;left:14px;top:14px;background:var(--brick);color:#fff;font-size:11.5px;font-weight:600;
    padding:6px 12px;border-radius:var(--r-pill);pointer-events:none;box-shadow:var(--sh-1);z-index:6}
  body.mode-advanced #modeBadge{display:none}
  #statusBar{position:absolute;left:14px;bottom:8px;background:rgba(33,28,24,.86);color:#fff;font-family:var(--mono);
    font-size:11px;padding:5px 11px;border-radius:var(--r-pill);pointer-events:none;z-index:6}
  #zoomCtl{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;z-index:6;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-1)}
  #zoomCtl button{width:36px;height:34px;font-size:16px;font-weight:600;border:none;border-radius:0;background:transparent;color:var(--ink-soft)}
  #zoomCtl button:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #zoomCtl #btnHelpZoom{display:none}
  #zoomCtl button+button{border-top:1px solid var(--line)}

  #panelToggle{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:5;width:24px;height:96px;padding:0;
    border:1px solid var(--line);border-right:none;border-radius:10px 0 0 10px;background:var(--panel);cursor:pointer;
    display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-1)}
  #panelToggle span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9.5px;letter-spacing:.14em;color:var(--muted);user-select:none;font-weight:700}
  #panelToggle:hover{background:var(--panel-2)}
  #panelToggle:hover span{color:var(--brick-dark)}

  /* empty state */
  #emptyState{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:4;pointer-events:none}
  #emptyState.show{display:flex}
  #emptyState .es{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);
    padding:26px 30px;max-width:350px;text-align:center;pointer-events:auto}
  #emptyState .es .ic{font-size:34px;line-height:1}
  #emptyState .es h2{font-size:15.5px;margin:12px 0 6px;font-weight:700}
  #emptyState .es p{font-size:12.5px;color:var(--muted);line-height:1.55;margin-bottom:18px}
  #emptyState .es-actions{display:flex;gap:8px}
  #emptyState .es-actions button{flex:1;padding:9px}
  #emptyState .os-advanced{display:block;margin:10px auto 0;border:none;background:transparent;color:var(--muted);font-size:11.5px;font-weight:800;text-decoration:underline;cursor:pointer}
  #emptyState .os-advanced:hover{color:var(--brick-dark)}

  /* wind legend */
  #windLegend{position:absolute;right:14px;bottom:14px;background:rgba(255,255,255,.96);border:1px solid var(--line);
    border-radius:var(--r);padding:9px 11px;font-size:10.5px;box-shadow:var(--sh-2);pointer-events:none;line-height:1.7;display:none;z-index:6}
  body.app-wind #windLegend{display:block}
  #windLegend b{font-family:var(--sans);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:5px}
  #windLegend .lz{display:flex;align-items:center;gap:7px}
  #windLegend .sw{width:13px;height:13px;border:1px solid rgba(0,0,0,.2);border-radius:3px;flex:0 0 auto}
  #fastLegend{position:absolute;right:14px;bottom:14px;background:rgba(255,255,255,.96);border:1px solid var(--line);
    border-radius:var(--r);padding:9px 11px;font-size:10.5px;box-shadow:var(--sh-2);pointer-events:none;line-height:1.4;display:none;z-index:6;width:194px}
  body.app-fast #fastLegend{display:block}
  #fastLegend b{font-family:var(--sans);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:5px}
  #fastLegend .fl-bar{height:10px;border-radius:5px;border:1px solid rgba(0,0,0,.12);margin:1px 0 3px}
  #fastLegend .fl-ends{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--ink-soft);font-weight:700}
  #fastLegend .fl-note{font-size:9px;color:var(--muted-2);margin:5px 0 6px;line-height:1.35;text-transform:none;letter-spacing:0;font-weight:400}
  #fastLegend .fl-z{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:6px}
  #fastLegend .fl-z span{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--ink-soft)}
  #fastLegend .fl-z i{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.2);display:inline-block}
  #fastLegend .fl-z .fl-zt{font-weight:400;color:var(--muted-2);font-size:9px;flex-basis:100%}

  /* ---------------- schedule panel (zestawienie) ---------------- */
  #schedulePanel{gap:13px}
  #schedulePanel h3{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:700;
    margin:5px 0 0;display:flex;align-items:center;gap:9px}
  #schedulePanel h3:first-child{margin-top:0}
  #schedulePanel h3::after{content:'';flex:1;height:1px;background:var(--line)}

  /* validation cards */
  #warnBox{display:flex;flex-direction:column;gap:8px}
  .warn{position:relative;background:#fdf6e3;border:1px solid #ecd9a6;border-radius:var(--r);
    padding:11px 13px 11px 38px;font-size:11.5px;color:#6e5410;line-height:1.5}
  .warn::before{content:'!';position:absolute;left:11px;top:10px;width:18px;height:18px;border-radius:50%;
    background:#e0a72e;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
  .warn.err{background:#fde7e3;border-color:#e8a594;color:#8a1f0c}
  .warn.err::before{background:#c62828}
  .warn.ok{background:#eef7f1;border-color:#cbe6d4;color:#1d5c33}
  .warn.ok::before{content:'✓';background:var(--g-green);font-size:10px}
  .warn .warn-t{display:block;font-weight:700;font-size:12px;line-height:1.35;margin-bottom:2px}
  .warn .warn-b{display:block;font-size:11px;line-height:1.55;opacity:.95}
  .warn .warn-t .warn-roof{background:var(--brick-soft);color:var(--brick-dark);opacity:1}
  .warn .warn-t .warn-scope{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
    background:rgba(0,0,0,.07);border-radius:5px;padding:1px 6px;margin-right:7px;vertical-align:1px;opacity:.8}
  /* liczniki błędów/ostrzeżeń na płótnie */
  #issueBadges{position:absolute;right:18px;bottom:52px;z-index:9;display:none;gap:16px;align-items:flex-start}
  .ibadge{display:none;flex-direction:column;align-items:center;gap:6px;border:none;background:none;padding:0;cursor:pointer}
  .ib-disc{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-weight:800;font-size:20px;color:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.24),inset 0 1.5px 0 rgba(255,255,255,.32);transition:transform .15s,box-shadow .15s}
  .ibadge:hover .ib-disc{transform:translateY(-2px) scale(1.06);box-shadow:0 14px 30px rgba(0,0,0,.3)}
  .ibadge:active .ib-disc{transform:translateY(0) scale(1)}
  .ib-lbl{font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--ink-soft);background:rgba(255,255,255,.94);
    padding:2px 10px;border-radius:9px;box-shadow:0 2px 7px rgba(0,0,0,.13);white-space:nowrap}
  .ibadge-err .ib-disc{background:radial-gradient(circle at 36% 30%,#e8615a,#c62828)}
  .ibadge-warn .ib-disc{background:radial-gradient(circle at 36% 30%,#f4c659,#e0a72e);color:#3a2d08}
  /* gdy są uwagi — unieś legendę nad liczniki, by się nie nachodziły */
  body.has-issues #windLegend,body.has-issues #fastLegend{bottom:14px}
  #issueBadges{transition:opacity .2s,transform .2s}
  body.tt-menu-open #issueBadges{opacity:0;transform:translateY(14px);pointer-events:none}
  /* wysuwany panel Błędy i ostrzeżenia (chowany do boku) */
  #issuesScrim{position:fixed;inset:0;background:rgba(20,16,12,.26);z-index:55;border:none}
  #issuesScrim[hidden]{display:none}
  #issuesPanel{position:fixed;top:0;right:0;bottom:0;width:min(390px,93vw);z-index:60;background:var(--panel);
    border-left:1px solid var(--line);box-shadow:-12px 0 36px rgba(0,0,0,.22);transform:translateX(101%);
    transition:transform .34s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:9px;padding:16px 16px 28px;overflow-y:auto}
  #issuesPanel.open{transform:none}
  /* ===== panel Roof Takeoff ===== */
  #takeoffScrim{position:fixed;inset:0;background:rgba(20,16,12,.26);z-index:55;border:none}
  #takeoffScrim[hidden]{display:none}
  #takeoffPanel{position:fixed;top:0;right:0;bottom:0;width:min(560px,96vw);z-index:60;background:var(--panel);
    border-left:1px solid var(--line);box-shadow:-12px 0 36px rgba(0,0,0,.22);transform:translateX(101%);
    transition:transform .34s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:10px;padding:16px 16px 28px;overflow-y:auto}
  #takeoffPanel.open{transform:none}
  .tk-tabs{display:flex;gap:5px;flex-wrap:wrap}
  .tk-tabs button{font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:99px;cursor:pointer;border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink-soft)}
  .tk-tabs button:hover{background:#fff;border-color:var(--brick-soft)}
  .tk-tabs button.active{background:var(--brick);border-color:var(--brick);color:#fff}
  #takeoffBody{display:flex;flex-direction:column;gap:11px}
  .tk-sub{font-size:11.5px;color:var(--muted)}
  .tk-note{font-size:11.5px;color:var(--ink-soft);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;line-height:1.5}
  .tk-note.sm{font-size:10.5px;color:var(--muted)}
  .tk-empty{font-size:12.5px;color:var(--muted);padding:18px;text-align:center;background:var(--panel-2);border-radius:8px}
  .tk-empty.sm{padding:10px;font-size:11.5px}
  .tk-group{border:1px solid var(--line);border-radius:8px;overflow:hidden}
  .tk-gh{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted);padding:6px 11px;background:var(--panel-2);border-bottom:1px solid var(--line)}
  .tk-row{display:flex;align-items:center;gap:8px;padding:6px 11px;font-size:12px;border-bottom:1px solid var(--line)}
  .tk-row:last-child{border-bottom:none}
  .tk-row .tk-k{color:var(--ink-soft)}
  .tk-row .tk-v{margin-left:auto;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
  .tk-row.big{background:#fbf7f2}
  .tk-row.big .tk-v{font-size:14px;color:var(--brick-dark);font-weight:800}
  .tk-th{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--brick);margin:4px 0 -2px}
  .tk-add{display:flex;flex-wrap:wrap;gap:6px}
  .tk-addbtn{font-size:11.5px;font-weight:700;padding:7px 10px;border-radius:8px;cursor:pointer;border:1px solid var(--brick);background:var(--brick-soft);color:var(--brick-dark)}
  .tk-addbtn:hover{background:var(--brick);color:#fff}
  .tk-tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
  .tk-tbl{border-collapse:collapse;width:100%;font-size:11.5px}
  .tk-tbl th,.tk-tbl td{border-bottom:1px solid var(--line);padding:5px 7px;text-align:left;white-space:nowrap}
  .tk-tbl th{background:var(--panel-2);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}
  .tk-tbl tr:last-child td{border-bottom:none}
  .tk-tbl input[type=number]{width:58px;height:26px;border:1px solid var(--line-2);border-radius:6px;padding:0 5px;font-size:11.5px;font-family:inherit;background:var(--panel-2)}
  .tk-tbl input:focus,.tk-tbl select:focus{border-color:var(--brick);outline:none;background:#fff}
  .tk-tbl select{height:26px;border:1px solid var(--line-2);border-radius:6px;font-size:11px;font-family:inherit;background:var(--panel-2);max-width:130px}
  .tk-tbl .tk-lbl{font-size:9px;font-weight:800;color:var(--brick-dark);background:var(--brick-soft);border-radius:4px;padding:1px 4px}
  .tk-mini{width:24px;height:24px;padding:0;border:1px solid var(--line-2);background:var(--panel);border-radius:6px;cursor:pointer;color:var(--ink-soft);font-size:12px}
  .tk-mini:hover{border-color:var(--brick);color:var(--brick-dark)}
  .tk-mini.del:hover{border-color:var(--k-red);color:var(--k-red)}
  .tk-issues{display:flex;flex-direction:column;gap:5px}
  .tk-iss{font-size:11.5px;padding:7px 10px;border-radius:7px;line-height:1.4}
  .tk-iss.err{background:#fde7e3;color:#8a1f0c;border:1px solid #e8a594}
  .tk-iss.warn{background:#fdf6e3;color:#7a5b12;border:1px solid #ecd9a6}
  .tk-dash{border:1px solid var(--line);border-radius:8px;overflow:hidden}
  .tk-dash-h{font-size:12px;font-weight:800;color:var(--ink);padding:7px 11px;background:var(--panel-2);border-bottom:1px solid var(--line)}
  .tk-dash-row{display:flex;align-items:center;gap:9px;padding:6px 11px;font-size:12px;border-bottom:1px solid var(--line)}
  .tk-dash-row:last-child{border-bottom:none}
  .tk-dash-row .tk-dot{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;background:var(--line-2)}
  .tk-dash-row .tk-mn{color:var(--ink-soft)}
  .tk-dash-row .tk-ms{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted-2)}
  .tk-st-empty .tk-dot{background:#fff;border:1.5px solid var(--line-2);color:var(--muted-2)}
  .tk-st-draft .tk-dot{background:var(--steel)} .tk-st-ready .tk-dot{background:var(--g-green)}
  .tk-st-warning .tk-dot{background:var(--zG)} .tk-st-error .tk-dot{background:var(--k-red)}
  .tk-exp{display:flex;flex-direction:column;gap:7px}
  .tk-exp button{padding:10px 12px;border-radius:8px;font-weight:800;font-size:12.5px;cursor:pointer;border:1px solid var(--brick);background:var(--brick);color:#fff;text-align:left}
  .tk-exp button.sec{background:var(--panel);color:var(--brick-dark);border-color:var(--line-2)}
  .tk-exp button:hover{filter:brightness(1.05)}
  .tk-wip{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--zG);color:#fff;border-radius:4px;padding:1px 5px;margin-left:6px}
  .tk-genout{margin-top:4px}
  #toolToolbar #btnTakeoff{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);color:var(--ink-soft);display:flex;align-items:center;justify-content:center}
  #toolToolbar #btnTakeoff:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #toolToolbar #btnTakeoff,
  #takeoffPanel,
  #takeoffScrim{display:none!important}
  /* ===== Podkład jako osobne okienko (modal) ===== */
  #underlayScrim{position:fixed;inset:0;background:rgba(20,16,12,.34);z-index:70;border:none}
  #underlayScrim[hidden]{display:none}
  #underlayPop.umodal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:71;
    width:min(500px,94vw);max-width:94vw;max-height:88vh;overflow:auto;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:0;margin:0}
  #underlayPop.umodal[hidden]{display:none}
  #underlayPop.umodal .um-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px 10px;border-bottom:1px solid var(--line)}
  #underlayPop.umodal .um-head .pop-h{font-size:13.5px;font-weight:800;color:var(--ink);margin:0;border:none;padding:0}
  #underlayPop.umodal .um-body{padding:13px 15px}
  #underlayPop.umodal .um-intro{font-size:12px;color:var(--ink-soft);line-height:1.5;margin:0 0 11px}
  #underlayPop.umodal .btnrow{display:flex;gap:8px;margin:0 0 8px}
  #underlayPop.umodal .btnrow button{flex:1}
  #underlayPop.umodal .row{display:flex;align-items:center;gap:10px;margin:10px 0}
  #underlayPop.umodal .row label{font-size:12px;color:var(--ink-soft);flex:0 0 auto;min-width:108px}
  #underlayPop.umodal .row input[type=range]{flex:1}
  #underlayPop.umodal .row input[type=number]{width:88px}
  #underlayPop.umodal .cfg-wide{width:100%}
  #underlayPop.umodal .hint{font-size:11px;color:var(--muted);line-height:1.5;margin-top:10px;background:var(--panel-2);border-radius:8px;padding:8px 10px}
  #underlayPop.umodal .um-foot{padding:11px 15px 14px;border-top:1px solid var(--line);display:flex;gap:8px}
  #underlayPop.umodal .um-foot button{padding:12px;border-radius:var(--r);font-weight:800;font-size:13px;cursor:pointer;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-soft)}
  #underlayPop.umodal .um-foot .primary{flex:1.5;border-color:var(--brick);background:var(--brick);color:#fff}
  #underlayPop.umodal .um-foot button[disabled]{opacity:.45;cursor:default;filter:none}
  #underlayPop.umodal .um-foot .primary:hover{filter:brightness(1.05)}
  #calibScrim{position:fixed;inset:0;background:rgba(20,16,12,.32);z-index:82}
  #calibScrim[hidden],#calibPop[hidden]{display:none}
  #calibPop{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:83;width:min(360px,92vw);
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);overflow:hidden}
  #calibPop .cp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px 10px;border-bottom:1px solid var(--line)}
  #calibPop .cp-title{font-size:13.5px;font-weight:900;color:var(--ink)}
  #calibPop .cp-body{padding:14px 15px}
  #calibPop .cp-body p{font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0 0 12px}
  #calibPop .cp-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}
  #calibPop input{width:100%;height:42px;border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;font-size:16px;font-weight:800;font-family:var(--mono);background:#fff}
  #calibPop .cp-unit{font-size:12px;font-weight:900;color:var(--brick-dark)}
  #calibPop .cp-foot{display:flex;gap:8px;padding:11px 15px 14px;border-top:1px solid var(--line)}
  #calibPop .cp-foot button{flex:1;padding:11px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--panel);font-weight:800;cursor:pointer;color:var(--ink-soft)}
  #calibPop .cp-foot .primary{background:var(--brick);border-color:var(--brick);color:#fff}
  #underlayPop.umodal .uw-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 0 12px}
  #underlayPop.umodal .uw-step{display:flex;align-items:center;gap:6px;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--muted);font-size:10.5px;font-weight:800}
  #underlayPop.umodal .uw-step .no{width:18px;height:18px;flex:0 0 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line-2);font-size:10px;color:var(--muted)}
  #underlayPop.umodal .uw-step span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #underlayPop.umodal .uw-step.active{background:var(--brick-soft);border-color:var(--brick);color:var(--brick-dark)}
  #underlayPop.umodal .uw-step.done{background:#eef7f1;border-color:#b9dcc5;color:#1f6b3a}
  #underlayPop.umodal .uw-step.done .no{background:var(--g-green);border-color:var(--g-green);color:#fff}
  #underlayPop.umodal .uw-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px;margin:0 0 10px}
  #underlayPop.umodal .uw-card h3{font-size:14px;margin:0 0 6px;color:var(--ink)}
  #underlayPop.umodal .uw-card p{font-size:12px;line-height:1.5;color:var(--ink-soft);margin:0 0 10px}
  #underlayPop.umodal .uw-quick-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
  #underlayPop.umodal .uw-quick-row input[type=range]{width:100%}
  #underlayPop.umodal .uw-quick-val{min-width:48px;text-align:right;font-size:12px;font-weight:900;color:var(--brick-dark)}
  #underlayInlineCtl{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);z-index:14;
    display:grid;gap:8px;min-width:270px;background:rgba(33,28,24,.96);color:#fff;border-radius:12px;
    padding:11px 13px;box-shadow:var(--sh-2);border:1px solid rgba(255,255,255,.08)}
  #underlayInlineCtl[hidden]{display:none!important}
  #underlayInlineCtl .uic-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:800}
  #underlayInlineCtl .uic-head b{font-size:11px;font-weight:800}
  #underlayInlineCtl .uic-head span{font-size:11px;font-weight:900;color:#f3d4bf}
  #underlayInlineCtl input[type=range]{width:100%;margin:0}
  #underlayPop.umodal .uw-status{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0 0 10px}
  #underlayPop.umodal .uw-status.ok{color:#1f6b3a;background:#eef7f1;border-color:#b9dcc5}
  #underlayPop.umodal .uw-status.warn{color:#7a5b12;background:#fdf6e3;border-color:#ecd9a6}
  #underlayPop[data-stage="load"] .uw-card:not(.uw-load),
  #underlayPop[data-stage="adjust"] .uw-card:not(.uw-adjust),
  #underlayPop[data-stage="calibrate"] .uw-card:not(.uw-calibrate),
  #underlayPop[data-stage="draw"] .uw-card:not(.uw-draw){display:none}
  @media (max-width:560px){#underlayPop.umodal .uw-steps{grid-template-columns:1fr 1fr}#underlayPop.umodal .um-foot{flex-direction:column}}
  /* po wybraniu metody na starcie pasek narzędzi jest ukryty aż do wyboru — patrz reguła osm-none */
  .ip-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .ip-title{font-size:14px;font-weight:800;letter-spacing:.01em;color:var(--ink)}
  .ip-sub{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;margin:-4px 0 4px}
  .ip-filter{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
  .ip-filter button{font-size:11px;font-weight:700;padding:5px 10px;border-radius:99px;cursor:pointer;
    border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink-soft)}
  .ip-filter button:hover{background:#fff;border-color:var(--brick-soft)}
  .ip-filter button.active{background:var(--brick);border-color:var(--brick);color:#fff}
  .ip-close{width:30px;height:30px;flex:0 0 auto;border-radius:50%;border:1px solid var(--line);background:var(--panel-2);
    font-size:13px;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:.15s}
  .ip-close:hover{color:var(--ink);border-color:var(--brick-soft);background:#fff}
  #issuesBox{display:flex;flex-direction:column;gap:8px}
  /* przycisk chowania legendy — tylko mobile, w trybach z legendą */
  #legendToggle{display:none;position:absolute;left:12px;bottom:62px;z-index:8;font-size:11px;font-weight:700;
    padding:7px 13px;border-radius:var(--r-pill);border:1px solid var(--line);background:rgba(255,255,255,.97);
    color:var(--ink-soft);box-shadow:var(--sh-1);cursor:pointer}
  body.legend-collapsed #windLegend>:not(b),body.legend-collapsed #fastLegend>:not(b){display:none}
  body.legend-collapsed #windLegend>b,body.legend-collapsed #fastLegend>b{margin-bottom:0}
  #windLegend>b,#fastLegend>b{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;user-select:none;pointer-events:auto}
  #windLegend>b::after,#fastLegend>b::after{content:'▾';font-size:9px;color:var(--muted-2);font-weight:700;transition:transform .22s;font-family:sans-serif}
  body.legend-collapsed #windLegend>b::after,body.legend-collapsed #fastLegend>b::after{transform:rotate(-90deg)}
  /* nowoczesne suwakowe przejścia między etapami konfiguratora */
  @keyframes wizSlideR{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
  @keyframes wizSlideL{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
  #sidebar .cfg-card.wiz-active.wiz-fwd{animation:wizSlideR .36s cubic-bezier(.16,1,.3,1)}
  #sidebar .cfg-card.wiz-active.wiz-bwd{animation:wizSlideL .36s cubic-bezier(.16,1,.3,1)}
  /* zakładki prawego panelu */
  .rp-tabs{display:flex;gap:4px;margin:-2px 0 2px}
  .rp-tab{flex:1;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:10.5px;font-weight:700;
    padding:8px 6px;border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;
    text-transform:uppercase;letter-spacing:.04em;transition:.15s}
  .rp-tab:hover{color:var(--ink);border-color:var(--brick-soft)}
  .rp-tab.active{background:var(--brick);border-color:var(--brick);color:#fff}
  .rp-tab .rp-be,.rp-tab .rp-bw{font-family:var(--mono);font-style:normal;font-size:10px;font-weight:800;border-radius:9px;padding:1px 6px;color:#fff}
  .rp-tab .rp-be{background:#c62828}
  .rp-tab .rp-bw{background:#e0a72e;color:#3a2d08}
  .rp-tab.active .rp-be,.rp-tab.active .rp-bw{box-shadow:0 0 0 1.5px rgba(255,255,255,.65)}
  .rp-view{display:flex;flex-direction:column;gap:12px}
  .rp-view.hidden{display:none}
  #issuesBox{display:flex;flex-direction:column;gap:8px}

  /* key-value calc card (wiatr) */
  .wkv{font-family:var(--mono);font-size:11px;background:var(--panel-2);border:1px solid var(--line);
    border-radius:var(--r);padding:11px 13px;margin:0;line-height:1.75;color:var(--ink-soft)}
  .wkv b{color:var(--brick-dark);font-weight:700}
  .wparams{display:grid;grid-template-columns:1fr 1fr;gap:3px 16px;font-size:10.5px;background:var(--panel-2);
    border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;margin:0 0 8px}
  .wparams .wp{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dashed var(--line)}
  .wparams .wp:last-child,.wparams .wp:nth-last-child(2){border-bottom:none}
  .wparams .wp span{color:var(--muted)}
  .wparams .wp b{color:var(--brick-dark);font-weight:700;font-family:var(--mono);white-space:nowrap}
  .wnote{font-size:10px;color:var(--muted);font-family:var(--mono);margin:0 0 8px}
  .wnorm{font-size:10.5px;color:var(--brick-dark);background:var(--brick-soft,#fbeede);border-radius:6px;padding:5px 9px;margin:0 0 8px}
  .wnorm b{font-weight:800}
  h3.wsec{font-size:12px;font-weight:800;color:var(--ink);margin:16px 0 8px}
  table.wind th small{font-size:8px;font-weight:600;opacity:.85;display:block}

  /* tables — borderless, row-separated, tabular numerals */
  #schedHost{overflow-x:auto}
  #schedHost::-webkit-scrollbar{height:8px}
  #schedHost::-webkit-scrollbar-thumb{background:#ded5c8;border-radius:8px;border:2px solid var(--panel)}
  table.sched,table.wind{width:100%;border-collapse:separate;border-spacing:0;font-family:var(--sans);
    font-size:10px;font-variant-numeric:tabular-nums;margin:1px 0}
  table.sched th,table.wind th{background:transparent;font-size:8.5px;text-transform:uppercase;letter-spacing:.02em;
    font-weight:700;color:var(--muted);text-align:right;padding:5px 5px 8px;border-bottom:1.5px solid var(--line-2);
    white-space:nowrap;vertical-align:bottom;line-height:1.25}
  table.sched td,table.wind td{padding:8px 5px;text-align:right;border-bottom:1px solid var(--line);
    white-space:nowrap;color:var(--ink-soft);vertical-align:middle}
  table.sched th:first-child,table.wind th:first-child,
  table.sched td:first-child,table.wind td:first-child{text-align:left}
  table.sched td:first-child{font-weight:600;color:var(--ink)}
  table.sched tr:not(.grpHead):not(.grpSum):not(.total):hover td{background:#faf6f2}
  table.wind tr:not(.sumrow):not(:first-child):hover td{background:#f5fafb}

  /* group header — eyebrow instead of a filled bar */
  tr.grpHead td{background:transparent;color:var(--brick-dark);font-weight:700;text-align:left;
    font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;padding:16px 6px 6px;border-bottom:1.5px solid var(--brick-soft)}
  /* group subtotal — quiet emphasis */
  tr.grpSum td{background:var(--panel-2);font-weight:700;color:var(--ink);border-bottom:1.5px solid var(--line-2)}
  tr.grpSum td:first-child{color:var(--muted);font-weight:700;text-transform:uppercase;font-size:9.5px;letter-spacing:.05em}

  /* summary pill (RAZEM) */
  tr.total td,table.wind tr.sumrow td{background:var(--ink);color:#fff;font-weight:700;border:none;padding:11px 8px}
  tr.total td:first-child,table.wind tr.sumrow td:first-child{border-radius:var(--r) 0 0 var(--r);
    text-transform:uppercase;font-size:9.5px;letter-spacing:.05em}
  tr.total td:last-child,table.wind tr.sumrow td:last-child{border-radius:0 var(--r) var(--r) 0}

  /* wind zone accent bars */
  table.wind tr.zF td:first-child,table.wind tr.zG td:first-child,
  table.wind tr.zH td:first-child,table.wind tr.zI td:first-child,table.wind tr.zS td:first-child{padding-left:12px}
  table.wind tr.zF td:first-child{box-shadow:inset 3px 0 var(--zF)}
  table.wind tr.zG td:first-child{box-shadow:inset 3px 0 var(--zG)}
  table.wind tr.zH td:first-child{box-shadow:inset 3px 0 var(--zH)}
  table.wind tr.zI td:first-child{box-shadow:inset 3px 0 var(--zI)}
  table.wind tr.zS td:first-child{box-shadow:inset 3px 0 var(--zS)}
  table.wind tr.zFp td:first-child{box-shadow:inset 3px 0 #0f9d8f}
  table.wind tr.zGp td:first-child{box-shadow:inset 3px 0 #15a89a}
  table.wind tr.zFp td:first-child,table.wind tr.zGp td:first-child{padding-left:12px}

  /* shape thumbnail in element cell */
  table.sched td:first-child > div{margin:5px 0 1px}
  table.sched td:first-child svg{display:block;width:100%;max-width:54px;height:auto}

  /* svg interactive */
  svg text{user-select:none}
  .vtx{fill:#fff;stroke:var(--ink);stroke-width:1.5;cursor:grab}
  .vtx:hover{fill:var(--brick)}
  .drainSym{cursor:grab}

  /* module section toggling (JS-driven) */
  #sidebar h3[data-app], #sidebar .appblock[data-app], #sidebar .cfg-card[data-app]{display:none}
  #tools button[data-app]{display:none}
  body.app-slopes #tools button[data-app~="slopes"],
  body.app-wind   #tools button[data-app~="wind"],
  #tools button[data-app~="both"]{display:flex}

  /* extra toolbar buttons (redo / help) — share undo styling */
  #toolToolbar #btnRedo,#toolToolbar #btnHelp{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);font-size:16px;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;position:relative}
  #toolToolbar #btnRedo:hover,#toolToolbar #btnHelp:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #toolToolbar #btnHelp{font-weight:700}
  #toolToolbar #btnUndo:disabled,#toolToolbar #btnRedo:disabled{opacity:.3;cursor:default}
  #toolToolbar #btnUndo:disabled:hover,#toolToolbar #btnRedo:disabled:hover{background:transparent;color:var(--ink-soft)}

  /* file / view controls — same family as tool icons, some open a popover */
  .tmenu{position:relative;display:flex;align-items:center}
  #toolToolbar #btnLayers,#toolToolbar #btnExport,#toolToolbar #btnLoad,#toolToolbar #btnUnderlayMenu{width:38px;height:38px;padding:0;border:none;background:transparent;border-radius:var(--r);color:var(--ink-soft);display:flex;align-items:center;justify-content:center}
  #toolToolbar #btnLayers:hover,#toolToolbar #btnExport:hover,#toolToolbar #btnLoad:hover,#toolToolbar #btnUnderlayMenu:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #toolToolbar #btnLayers.active,#toolToolbar #btnExport.active,#toolToolbar #btnUnderlayMenu.active{background:var(--ink);color:#fff}
  body.app-wind #toolToolbar #btnLayers.active,body.app-wind #toolToolbar #btnExport.active,body.app-wind #toolToolbar #btnUnderlayMenu.active{background:var(--zG)}

  /* popovers anchored under their trigger button */
  #toolToolbar .menu{position:absolute;top:calc(100% + 8px);right:0;z-index:9;max-width:88vw;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2)}
  #toolToolbar .menu[hidden]{display:none}
  #toolToolbar .menu .pop-h{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;
    padding:5px 0 7px;margin-bottom:1px;border-bottom:1px solid var(--line)}
  .pop-h .pop-note{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted-2);font-size:9px;margin-left:6px}

  #layersPop{width:286px;padding:7px 13px 9px}
  #layersPop .check{padding:5px 0;margin:0;font-size:12px}
  #layersPop [data-app]{display:none}
  body.app-slopes #layersPop [data-app="slopes"]{display:block}
  body.app-wind   #layersPop [data-app="wind"]{display:block}
  body.app-fast   #layersPop [data-app="fast"]{display:block}

  /* export / save / load menu */
  #exportPop{width:246px;padding:6px}
  #loadPop{width:268px;padding:6px;max-height:min(72vh,560px);overflow:auto}
  #exportPop .pop-h,#loadPop .pop-h{padding:4px 8px 7px;margin-bottom:4px}
  #exportPop button,#loadPop button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;
    border:none;background:transparent;border-radius:var(--r-sm);padding:9px 10px;font-size:12.5px;font-weight:500;
    color:var(--ink-soft);text-align:left;transition:background .12s,color .12s}
  #exportPop button:hover,#loadPop button:hover{background:var(--brick-soft);color:var(--brick-dark)}
  #exportPop button .ext,#loadPop button .ext{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);
    background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 6px;flex:0 0 auto;white-space:nowrap}
  #exportPop button:hover .ext,#loadPop button:hover .ext{color:var(--brick-dark);border-color:var(--brick-soft)}
  #exportPop .menu-sep,#loadPop .menu-sep{height:1px;background:var(--line);margin:5px 4px}
  #exportPop button.danger{color:#a32d1c}
  #exportPop button.danger:hover{background:#fdf1ec;color:#a32d1c}
  #exportPop button.danger .ext{display:none}

  /* podkład popover */
  #underlayPop{width:258px;padding:8px 12px 10px}
  #underlayPop .btnrow{margin:8px 0 6px}
  #underlayPop .cfg-wide{width:100%;margin:0 0 4px}
  #underlayPop .row{margin:8px 0}
  #underlayPop .row label{font-size:11.5px}
  #underlayPop .hint{margin:7px 0 0}

  /* ---------- configurator (parametry) ---------- */
  #sidebar .cfg-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-lg);
    padding:2px 13px 12px;margin:2px 16px 12px}
  #sidebar .cfg-head{display:flex;align-items:center;gap:9px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;
    color:var(--brick-dark);font-weight:700;padding:11px 0 9px;margin-bottom:4px;border-bottom:1px solid var(--line)}
  /* zwijanie etapów konfiguratora */
  #sidebar .cfg-card[data-wiz] .cfg-head{cursor:pointer;user-select:none;padding-right:24px;position:relative}
  #sidebar .cfg-card .cfg-sum{display:none;min-width:0;font-size:10.5px;font-weight:800;color:var(--muted);
    text-transform:none;letter-spacing:0;white-space:nowrap;text-align:right;align-items:center;justify-content:flex-end;gap:6px}
  body.app-wind #sidebar .cfg-card .cfg-sum{color:var(--zG)} body.app-fast #sidebar .cfg-card .cfg-sum{color:var(--steel)}
  #sidebar .cfg-card .cfg-sum.done{color:var(--g-green)!important}
  #sidebar .cfg-card .cfg-sum.todo{color:#9a6d00!important}
  #sidebar .cfg-card .cfg-sum .sum-txt{font-variant-numeric:tabular-nums;line-height:1}
  #sidebar .cfg-card .cfg-sum .sum-bar{width:32px;height:5px;border-radius:99px;background:var(--line);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.03)}
  #sidebar .cfg-card .cfg-sum .sum-fill{display:block;height:100%;width:0;border-radius:inherit;background:var(--brick);transition:width .25s ease}
  body.app-wind #sidebar .cfg-card .cfg-sum .sum-fill{background:var(--zG)} body.app-fast #sidebar .cfg-card .cfg-sum .sum-fill{background:var(--steel)}
  #sidebar .cfg-card .cfg-sum.done .sum-fill{background:var(--g-green)!important}
  #sidebar .cfg-chevron, #sidebar .cfg-card .cfg-chevron{position:absolute;right:2px;top:50%;transform:translateY(-50%);transition:transform .2s ease;
    color:var(--muted);font-size:10px;line-height:1;pointer-events:none}
  #sidebar .cfg-card.collapsed .cfg-chevron{position:static;grid-column:4;transform:rotate(-90deg);justify-self:end}
  #sidebar .cfg-card.collapsed .cfg-sum{display:inline-flex;grid-column:3;justify-self:end}
  #sidebar .cfg-card.collapsed .cfg-head{margin-bottom:0;border-bottom:none;display:grid;grid-template-columns:18px minmax(0,1fr) auto 12px;grid-auto-rows:min-content;column-gap:8px;align-items:center;padding:10px 0;min-height:44px}
  #sidebar .cfg-card.collapsed > :not(.cfg-head){display:none!important}
  #sidebar .cfg-card.collapsed{padding-top:2px;padding-bottom:2px}
  /* tytuł etapu: w jednej linii, po zwinięciu ucinany wielokropkiem; pomocnicze „?”/„i” chowane */
  #sidebar .cfg-head .cfg-title{flex:0 1 auto}
  #sidebar .cfg-card.collapsed .cfg-head .cfg-title{grid-column:2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #sidebar .cfg-card.collapsed .cfg-head .guide-q,
  #sidebar .cfg-card.collapsed .cfg-head .db-i{display:none}
  #sidebar .cfg-head .ic{flex:0 0 auto;display:flex;color:var(--brick)}
  #sidebar .cfg-card.collapsed .cfg-head .ic{grid-column:1;justify-self:center}
  #sidebar :is(.cfg-head,.modeHead) .guide-q{flex:0 0 auto;width:17px;height:17px;padding:0;border-radius:50%;border:1.5px solid var(--brick);
    background:#fff;color:var(--brick);font-size:11px;font-weight:800;line-height:1;letter-spacing:0;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;transition:.15s}
  #sidebar :is(.cfg-head,.modeHead) .guide-q:hover,#sidebar :is(.cfg-head,.modeHead) .guide-q.on{background:var(--brick);color:#fff}
  body.app-wind #sidebar :is(.cfg-head,.modeHead) .guide-q{border-color:var(--zG);color:var(--zG)}
  body.app-wind #sidebar :is(.cfg-head,.modeHead) .guide-q:hover,body.app-wind #sidebar :is(.cfg-head,.modeHead) .guide-q.on{background:var(--zG);color:#fff}
  body.app-fast #sidebar :is(.cfg-head,.modeHead) .guide-q{border-color:var(--steel);color:var(--steel)}
  body.app-fast #sidebar :is(.cfg-head,.modeHead) .guide-q:hover,body.app-fast #sidebar :is(.cfg-head,.modeHead) .guide-q.on{background:var(--steel);color:#fff}
  #sidebar .cfg-card .row{margin:7px 0;flex-wrap:nowrap}
  #sidebar .cfg-card .row.hidden{display:none!important}
  #sidebar .cfg-card .row .db-i{flex:0 0 auto;width:18px;height:18px;margin-left:6px;border-radius:50%;
    border:1px solid var(--brick);color:var(--brick);background:var(--bg);font:italic 700 11px/1 Georgia,'Times New Roman',serif;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.12s}
  #sidebar .cfg-card .row .db-i.hidden{display:none}
  #sidebar .cfg-card .row .db-i:hover{background:var(--brick);color:#fff}
  body.app-fast .cfg-card .row .db-i{border-color:var(--steel);color:var(--steel)}
  body.app-fast .cfg-card .row .db-i:hover{background:var(--steel);color:#fff}
  .db-info-box{margin:-2px 0 8px 24px;padding:9px 11px;border:1px solid var(--line);border-left:3px solid var(--brick);
    border-radius:9px;background:var(--bg);font-size:11px;color:var(--ink-soft);line-height:1.55}
  body.app-fast .db-info-box{border-left-color:var(--steel)}
  .db-info-box.hidden{display:none}
  .db-info-box b{color:var(--ink)}
  .db-info-box .u{display:block;margin-top:5px;color:var(--muted);font-size:10px}
  .db-info-box .row{margin:5px 0}
  .db-info-box .dbrow{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:4px 0;font-size:11px}
  .db-info-box .dbrow .dbl{color:var(--ink-soft)} .db-info-box .dbrow .dbv{font-weight:700;color:var(--ink)}
  .db-info-box .dbwide{margin:6px 0} .db-info-box .dbwide label{display:block;font-size:11px;color:var(--ink-soft);margin-bottom:3px}
  .db-info-box .dbwide input{width:100%;padding:7px 9px;font-family:'JetBrains Mono',monospace;font-size:11px}
  .db-info-box .lenchips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
  .db-info-box .lenchips:empty{display:none}
  .model-desc{font-size:11px;line-height:1.45;color:var(--ink-soft);background:var(--brick-soft);border-left:3px solid var(--brick);
    border-radius:0 7px 7px 0;padding:7px 10px;margin:2px 0 4px}
  body.app-fast .model-desc{background:var(--steel-soft);border-left-color:var(--steel)}
  .model-desc:empty{display:none} .model-desc b{color:var(--ink)}
  .db-info-box .lenchips .chip{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:600;color:var(--ink-soft);
    background:var(--panel-2,#f3efe7);border:1px solid var(--line);border-radius:6px;padding:2px 6px;line-height:1.5}
  body.app-fast .db-info-box .lenchips .chip{background:var(--steel-soft)}
  .db-info-box .lenchips .chip .cu{color:var(--muted);font-weight:500;margin-left:1px}
  .db-info-box input.edited{background:var(--brick-soft);border-color:var(--brick);box-shadow:inset 0 0 0 1px var(--brick);font-weight:700}
  body.app-fast .db-info-box input.edited{background:var(--steel-soft);border-color:var(--steel);box-shadow:inset 0 0 0 1px var(--steel)}
  .db-info-box input.edited + .edited-tag, .db-info-box .edited-note{color:var(--brick);font-size:10px;font-weight:700}
  /* ===== prowadzony konfigurator: jedno pytanie naraz ===== */
  /* licznik kroku w obrębie sekcji: „Ustawienie X z N” + pasek */
  .q-prog{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 11px}
  .q-prog .q-txt{font-size:11px;font-weight:700;color:var(--ink-soft)}
  .q-prog .q-txt b{font-variant-numeric:tabular-nums}
  .q-prog .q-done-tag{display:none;font-size:10px;font-weight:800;color:var(--g-green);letter-spacing:.02em}
  .q-prog .q-bar{flex-basis:100%;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
  .q-prog .q-fill{height:100%;width:0;border-radius:3px;background:var(--brick);transition:width .3s ease}
  body.app-wind .q-prog .q-fill{background:var(--zG)} body.app-fast .q-prog .q-fill{background:var(--steel)}
  .cfg-card.q-finished .q-prog .q-done-tag{display:inline}
  .cfg-card.q-finished .q-prog .q-fill{background:var(--g-green)!important}
  /* checklista: każde pytanie ma kółko statusu → zielony ptaszek po ustawieniu */
  #sidebar .cfg-card .row[data-q]{position:relative;padding-left:24px;padding-top:3px;padding-bottom:3px;border-radius:9px;transition:.18s}
  #sidebar .cfg-card .row[data-q]::before{content:'';position:absolute;left:4px;top:50%;transform:translateY(-50%);
    width:14px;height:14px;border-radius:50%;border:1.7px solid var(--line-2);background:var(--panel);box-sizing:border-box;
    display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;line-height:1;transition:.15s}
  #sidebar .cfg-card .row[data-q].is-set::before{content:'✓';border-color:var(--g-green);background:var(--g-green)}
  /* pytanie aktywne — podświetlone i w pełni widoczne */
  #sidebar .cfg-card .row[data-q].q-active{background:var(--brick-soft);padding-top:8px;padding-bottom:8px;margin:9px -6px;padding-left:30px;box-shadow:inset 3px 0 0 var(--brick)}
  body.app-wind .cfg-card .row[data-q].q-active{background:#fbeede;box-shadow:inset 3px 0 0 var(--zG)}
  body.app-fast .cfg-card .row[data-q].q-active{background:var(--steel-soft);box-shadow:inset 3px 0 0 var(--steel)}
  #sidebar .cfg-card .row[data-q].q-active::before{left:9px;border-color:var(--brick)}
  body.app-wind .cfg-card .row[data-q].q-active::before{border-color:var(--zG)}
  body.app-fast .cfg-card .row[data-q].q-active::before{border-color:var(--steel)}
  /* pytania jeszcze niedostępne — wyszarzone i nieaktywne */
  #sidebar .cfg-card .row[data-q].q-locked{opacity:.4;filter:grayscale(.5);pointer-events:none}
  /* podpowiedź pod aktywnym pytaniem, prostym językiem */
  .q-help{display:none;font-size:11px;line-height:1.5;color:var(--muted);margin:-2px -6px 4px;padding:0 8px 2px 30px}
  .row[data-q].q-active + .q-help{display:block}
  body.app-wind .row[data-q].q-active + .q-help{padding-left:30px}
  /* sekcja zaawansowana */
  #sidebar .cfg-card details.adv{margin:12px 0 2px;border-top:1px dashed var(--line);padding-top:9px;display:none}
  #sidebar .cfg-card.q-finished details.adv{display:block}
  #sidebar .cfg-card details.adv > summary{font-size:10.5px;font-weight:700;color:var(--muted);cursor:pointer;list-style:none;
    text-transform:uppercase;letter-spacing:.06em;padding:3px 0}
  #sidebar .cfg-card details.adv > summary::-webkit-details-marker{display:none}
  #sidebar .cfg-card details.adv > summary::before{content:'＋ ';color:var(--muted-2)}
  #sidebar .cfg-card details.adv[open] > summary::before{content:'－ '}
  #sidebar .cfg-card details.sub .row{padding-left:18px}
  #sidebar .cfg-card .row label{font-size:11.5px;color:var(--ink-soft);min-width:0}
  #sidebar .cfg-card .row input[type=number],#sidebar .cfg-card .row select{width:98px;padding:7px 9px}
  #sidebar .cfg-card .row input[type=range]{accent-color:var(--brick)}
  #sidebar .cfg-card .check{padding:8px 0 2px;font-size:11.5px;border-top:1px solid var(--line);margin-top:6px}
  #sidebar .cfg-card details.sub{margin:10px 0 0;background:var(--panel);border-color:var(--line)}
  #sidebar .cfg-card .hint{margin:8px 0 0}
  #structHint{margin:2px -6px 6px;padding:7px 10px;border-radius:8px;background:var(--brick-soft);color:var(--ink-soft);font-size:11px;line-height:1.5}
  body.app-wind #structHint{background:#fbeede} body.app-fast #structHint{background:var(--steel-soft)}
  #structHint b{color:var(--brick)}
  #structHint.hidden{display:none}
  /* przełącznik warstwy spadków: pokaż edytor stref tylko w widoku konstrukcyjnym */
  #structPanel{display:none}
  body.slopeview-struct.app-slopes #structPanel{display:block}
  body.slopeview-struct #wizStep1, body.slopeview-struct #slopeModeBlock{display:none}
  #btnAddStruct{width:100%;background:var(--steel);border-color:var(--steel);color:#fff;margin:2px 0 4px;
    padding:9px;border-radius:var(--r);font-weight:700;font-size:12px;cursor:pointer;border:1px solid}
  #btnAddStruct:hover{filter:brightness(1.05)}
  #structList{margin-top:6px}
  #structList .struct-empty{font-size:11.5px;color:var(--muted);line-height:1.5;padding:6px 2px}
  .struct-item{border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin:8px 0;background:var(--panel)}
  .struct-item .si-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:12px;color:#1f5278;margin-bottom:7px}
  .struct-item .si-head .si-del{font-size:11px;font-weight:700;color:var(--zF);background:none;border:none;cursor:pointer;padding:2px 4px}
  .struct-item .si-row{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:11.5px;color:var(--ink-soft)}
  .struct-item .si-row label{min-width:64px}
  .struct-item .si-row input[type=number]{width:74px;padding:6px 8px;border:1px solid var(--line-2);border-radius:7px;font:inherit;font-size:12px}
  .struct-item .si-dir{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px}
  .struct-item .si-dir button{padding:6px 0;border:1px solid var(--line-2);background:var(--panel-2);border-radius:7px;
    cursor:pointer;font-size:14px;line-height:1;color:var(--ink-soft)}
  .struct-item .si-dir button.on{background:var(--steel);border-color:var(--steel);color:#fff}
  .struct-item .si-dir button.mid{visibility:hidden}
  #sidebar .cfg-card .dual{display:flex;gap:6px;flex:0 0 auto}
  #sidebar .cfg-card .dual input{width:48px!important}

  #pHasStructWrap{margin:2px 0 6px;font-size:11.5px}
  .callout{font-size:11.5px;line-height:1.5;background:#eef4f8;border:1px solid #cfe0ea;border-left:3px solid var(--steel);
    border-radius:9px;padding:9px 11px;margin:0 0 10px;color:#2a3f4d}
  .steps{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
  .steps .stp{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;line-height:1.45;color:var(--ink-soft)}
  .steps .num{flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:var(--steel);color:#fff;font-size:11px;
    font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
  .btn-done{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;
    padding:10px 12px;font-size:12.5px;font-weight:800;cursor:pointer;border-radius:10px;border:1px solid #1f8f4d;
    background:#23a05a;color:#fff}
  .btn-done:hover{filter:brightness(1.05)}
  #sidebar .cfg-card .row[data-q].q-skip{display:none}
  #wParapetWrap{margin:8px 0 0;font-size:11.5px}
  .subpanel{display:none;margin:8px 0 4px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--zG);
    border-radius:10px;background:var(--panel-2);animation:subIn .18s ease}
  @keyframes subIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .subpanel-hd{font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--brick-dark);text-transform:uppercase;margin-bottom:8px}
  .subpanel .row{margin:0 0 8px}
  .subpanel .wiz-next{width:100%;justify-content:center}
  .btn-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;
    padding:9px 12px;font-size:12px;font-weight:700;cursor:pointer;border-radius:10px;
    border:1px solid var(--brick);background:var(--brick);color:#fff;margin-top:4px}
  .btn-action:hover{filter:brightness(1.06)}
  body.app-wind .btn-action{background:var(--zG);border-color:var(--zG)}
  .subpanel-hint{font-size:10.5px;color:var(--muted);line-height:1.45;margin-top:8px}
  #parapetList,#basicParapetList{display:flex;flex-direction:column;gap:6px;margin-top:8px}
  .pp-item{display:flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:11.5px}
  .pp-item .pp-len{color:var(--muted);flex:1}
  .pp-item input{width:58px}
  .pp-item button{border:none;background:transparent;color:#b3402b;font-weight:700;cursor:pointer;font-size:14px}
  .pp-empty{font-size:11px;color:var(--muted);padding:4px 2px}
  #schedulePanel table.sched .iso,#schedulePanel table.sched td>div>svg.iso{margin:6px auto 2px}
  /* zestawienia mieszczą się w panelu bez przewijania poziomego */
  #schedulePanel table.sched,#schedulePanel table.wind{table-layout:fixed}
  #schedulePanel table.sched th,#schedulePanel table.sched td,
  #schedulePanel table.wind th,#schedulePanel table.wind td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  #schedulePanel table.sched td,#schedulePanel table.wind td{padding:6px 3px;font-size:9px}
  #schedulePanel table.sched th,#schedulePanel table.wind th{font-size:8px;padding:5px 2px 7px}
  /* większe rysunki kształtek w pierwszej kolumnie */
  #schedulePanel table.sched.with-iso th:first-child,#schedulePanel table.sched.with-iso td:first-child{width:36%}
  #schedulePanel table.sched.with-iso td:first-child svg.iso{max-width:none;width:100%;margin:7px auto 3px}
  /* naprzemienne podświetlanie kolumn — lepsza czytelność szerokich zestawień */
  #schedulePanel table.sched.with-iso tr:not(.grpHead):not(.grpSum):not(.total) td:nth-child(even),
  #schedulePanel table.sched.with-iso th:nth-child(even),
  #schedulePanel table.wind tbody tr:not(.sumrow) td:nth-child(even),
  #schedulePanel table.wind thead th:nth-child(even){background:rgba(33,28,24,.055)}
  #schedulePanel table.sched.with-iso tr:not(.grpHead):not(.grpSum):not(.total):hover td,
  #schedulePanel table.wind tbody tr:not(.sumrow):hover td{background:#f1ede7}
  .rtm-hint2{margin:2px 0 4px;line-height:1.5}
  .wiz-bar{height:5px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:12px}
  .wiz-fill{height:100%;width:25%;background:linear-gradient(90deg,var(--brick),var(--steel));border-radius:99px;transition:width .35s cubic-bezier(.4,0,.2,1)}
  .wiz-steps{display:flex;gap:3px;position:relative;padding-bottom:7px}
  .wiz-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:none;
    cursor:pointer;padding:2px;border-radius:var(--r-sm);color:var(--muted);font-family:inherit;position:relative}
  .wiz-step+.wiz-step::before{content:'';position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0;transition:background .4s ease}
  .wiz-step.done+.wiz-step::before,.wiz-step.done::before{background:var(--g-green)}
  .wiz-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:700;background:var(--line);color:var(--muted-2);transition:.2s;position:relative;z-index:1}
  .wiz-lbl{font-size:9.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
  .wiz-step.done{color:var(--ink-soft)}
  .wiz-step.done .wiz-dot{background:var(--g-green);color:#fff}
  /* BIEŻĄCY etap — wyraźny znacznik „tu jesteś”, nadrzędny nawet gdy wszystkie ukończone */
  .wiz-step.active{color:var(--brick)}
  .wiz-step.active .wiz-lbl{font-weight:800}
  .wiz-step.active .wiz-dot,.wiz-step.done.active .wiz-dot{background:var(--brick);color:#fff;transform:scale(1.22);
    box-shadow:0 0 0 4px var(--brick-soft),0 3px 10px rgba(184,92,46,.38)}
  body.app-wind .wiz-step.active{color:var(--zG)}
  body.app-wind .wiz-step.active .wiz-dot,body.app-wind .wiz-step.done.active .wiz-dot{background:var(--zG);box-shadow:0 0 0 4px rgba(0,0,0,.06),0 3px 10px rgba(0,0,0,.22)}
  body.app-fast .wiz-step.active{color:var(--steel)}
  body.app-fast .wiz-step.active .wiz-dot,body.app-fast .wiz-step.done.active .wiz-dot{background:var(--steel);box-shadow:0 0 0 4px rgba(20,58,82,.14),0 3px 10px rgba(20,58,82,.3)}
  .wiz-step:hover .wiz-dot{filter:brightness(.96)}
  /* suwany wskaźnik bieżącego etapu — płynnie jedzie między krokami */
  .wiz-rail-ind{position:absolute;left:0;bottom:0;height:3px;width:22px;border-radius:3px;background:var(--brick);
    transform:translateX(0);z-index:3;pointer-events:none;
    transition:transform .42s cubic-bezier(.34,1.28,.5,1),width .32s cubic-bezier(.34,1.28,.5,1),background .3s}
  body.app-wind .wiz-rail-ind{background:var(--zG)}
  body.app-fast .wiz-rail-ind{background:var(--steel)}
  /* płynne wejście kart konfiguratora i panelu konstrukcyjnego */
  @keyframes wizIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  #sidebar .cfg-card.wiz-active{animation:wizIn .34s cubic-bezier(.16,1,.3,1)}
  body.slopeview-struct.app-slopes #structPanel{animation:wizIn .32s cubic-bezier(.16,1,.3,1)}

  .wiz-guide.hidden{display:none}
  .wiz-guide{font-size:11.5px;line-height:1.5;color:var(--ink-soft);background:var(--brick-soft);
    border-radius:var(--r-sm);padding:8px 11px;margin:0 0 11px}
  body.app-wind .wiz-guide{background:#fbeede}
  body.app-fast .wiz-guide{background:var(--steel-soft)}
  .wiz-nav{display:flex;gap:8px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
  .wiz-nav button{flex:1;padding:9px 8px;border-radius:var(--r);font-weight:700;font-size:12px;cursor:pointer;
    border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-family:inherit;transition:.15s}
  .wiz-nav .wiz-next{flex:1.6;background:var(--brick);color:#fff;border-color:var(--brick)}
  body.app-wind .wiz-nav .wiz-next{background:var(--zG);border-color:var(--zG)}
  body.app-fast .wiz-nav .wiz-next{background:var(--steel);border-color:var(--steel)}
  .wiz-nav .wiz-next:hover{filter:brightness(1.05)}
  .wiz-nav .wiz-back:hover{background:var(--panel-2)}
  .wiz-nav button[disabled]{opacity:.35;cursor:default;filter:none}
  /* aktywna karta wyróżniona, pozostała w tej samej zakładce przygaszona */
  #sidebar .cfg-card.wiz-active{border-color:var(--brick);box-shadow:0 0 0 2px var(--brick-soft)}
  body.app-wind #sidebar .cfg-card.wiz-active{border-color:var(--zG);box-shadow:0 0 0 2px #fbeede}
  body.app-fast #sidebar .cfg-card.wiz-active{border-color:var(--steel);box-shadow:0 0 0 2px var(--steel-soft)}
  #sidebar .cfg-card.wiz-dim{opacity:.5}
  #sidebar .cfg-card.wiz-dim:hover{opacity:1}

  /* toasts — non-blocking feedback */
  #toastHost{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:40;
    display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;max-width:90%}
  .toast{display:flex;align-items:center;gap:9px;background:var(--ink);color:#fff;font-size:12.5px;font-weight:500;
    padding:10px 16px;border-radius:var(--r-pill);box-shadow:var(--sh-3);pointer-events:auto;line-height:1.4;
    max-width:440px;opacity:0;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease}
  .toast.show{opacity:1;transform:translateY(0)}
  .toast .ti{flex:0 0 auto;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;background:rgba(255,255,255,.2)}
  .toast.ok{background:#1f6b3f}
  .toast.err{background:#a32d1c}

  /* keyboard shortcuts sheet */
  /* ===== Panel poszyc dachu ===== */
  #sidebar #roofPanel .roof-list{display:flex;flex-direction:column;gap:4px;margin:4px 0 8px}
  .roof-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;cursor:pointer;background:var(--panel-2);transition:border-color .12s,background .12s}
  .roof-item:hover{border-color:var(--brick)}
  .roof-item.active{border-color:var(--brick);background:var(--brick-soft);box-shadow:inset 3px 0 0 var(--brick)}
  .roof-item.hid{opacity:.5}
  .roof-item .ri-name{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .roof-item .ri-lvl{font-size:10px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:1px 6px;flex:0 0 auto}
  .roof-item .ri-acts{display:flex;gap:1px;flex:0 0 auto}
  .roof-item .ri-ic{width:26px;height:26px;padding:0;border:none;background:transparent;border-radius:6px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
  .roof-item .ri-ic:hover{background:var(--brick-soft)}
  .roof-btns,.roof-fit{display:flex;gap:6px;margin:6px 0}
  .roof-btns .rb,.roof-btns .rb-add,.roof-fit .rb{flex:1;font-size:11.5px;padding:7px 5px;border:1px solid var(--line);border-radius:7px;background:var(--panel);cursor:pointer;color:var(--ink-soft);font-family:inherit}
  .roof-btns .rb-add{background:var(--brick);color:#fff;border-color:var(--brick);font-weight:600}
  .roof-btns .rb-add:hover{background:var(--brick-dark)}
  .roof-btns .rb:hover,.roof-fit .rb:hover{border-color:var(--brick);color:var(--brick-dark)}
  .roof-btns .rb-del:hover{border-color:#c0392b;color:#c0392b;background:#fbecea}
  .roof-btns .rb:disabled{opacity:.4;cursor:default}
  .roof-btns .rb:disabled:hover{border-color:var(--line);color:var(--ink-soft);background:var(--panel)}
  .roof-fields{margin-top:4px}
  .roof-fields .row2{display:flex;gap:8px}
  .roof-fields .row2 .row{flex:1}
  .roof-hint{font-size:10.5px;color:var(--muted);line-height:1.5;margin:4px 0 2px}
  .lblnote{font-weight:400;color:var(--muted-2);font-size:10px}
  #sidebar #roofPanel details.r-adv{margin:9px 0 2px;border-top:1px dashed var(--line);padding-top:9px}
  #sidebar #roofPanel details.r-adv > summary{font-size:10.5px;font-weight:700;color:var(--muted);cursor:pointer;list-style:none;text-transform:uppercase;letter-spacing:.04em}
  #sidebar #roofPanel details.r-adv > summary::-webkit-details-marker{display:none}
  #sidebar #roofPanel details.r-adv > summary::before{content:'\FF0B  ';color:var(--muted-2)}
  #sidebar #roofPanel details.r-adv[open] > summary::before{content:'\FF0D  '}
  #sidebar #roofPanel details.r-adv .hint{font-size:10.5px;color:var(--muted);line-height:1.5;margin:4px 0 2px}
  .sched-ctx{font-size:11px;color:var(--brick-dark);font-weight:700;margin:-2px 0 0}
  .sched-ctx:empty{display:none}

  /* ===== Modal zakresu wydruku ===== */
  #printOverlay{position:absolute;inset:0;z-index:51;display:none;align-items:center;justify-content:center;
    background:rgba(33,28,24,.42)}
  #printOverlay.show{display:flex}
  #printOverlay .po-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);
    width:min(440px,92%);max-height:88%;overflow:auto;padding:20px 22px 22px}
  #printOverlay h2{font-size:15px;font-weight:700;margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px}
  #printOverlay .hsub{font-size:11.5px;color:var(--muted);margin:4px 0 8px;line-height:1.5}
  #printOverlay .hclose{width:28px;height:28px;padding:0;border-radius:50%;font-size:13px;line-height:1;
    border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);flex:0 0 auto;cursor:pointer}
  #printOverlay .hclose:hover{border-color:var(--brick);color:var(--brick-dark)}
  #printOverlay .po-grp{font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin:14px 0 6px}
  #printOverlay .po-aud{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:4px 0 2px}
  #printOverlay .po-tmpl{grid-template-columns:repeat(2,1fr)}
  #printOverlay .po-aud button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:9px 10px;border:1px solid var(--line);
    border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;transition:border-color .12s,background .12s}
  #printOverlay .po-aud button .ai{font-size:16px}
  #printOverlay .po-aud button small{font-weight:500;color:var(--muted);font-size:9.5px;line-height:1.3}
  #printOverlay .po-aud button:hover{border-color:var(--brick)}
  #printOverlay .po-aud button.active{border-color:var(--brick);background:#fbeee7;box-shadow:inset 0 0 0 1px var(--brick)}
  #printOverlay .po-date{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink);margin:8px 0 2px}
  #printOverlay .po-date input{flex:0 0 auto;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--bg);color:var(--ink)}
  #printOverlay .po-mode{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;margin:5px 0;border:1px solid var(--line);
    border-radius:9px;cursor:pointer;background:var(--panel-2)}
  #printOverlay .po-mode:hover{border-color:var(--brick)}
  #printOverlay .po-mode input{margin-top:2px;flex:0 0 auto}
  #printOverlay .po-mode span{display:flex;flex-direction:column;gap:1px;font-size:12.5px;color:var(--ink)}
  #printOverlay .po-mode small{font-size:10.5px;color:var(--muted);font-weight:400}
  #printOverlay .po-listwrap{margin:2px 0 4px}
  #printOverlay .po-list{display:flex;flex-direction:column;gap:3px;max-height:200px;overflow:auto;
    border:1px solid var(--line);border-radius:9px;padding:6px;background:var(--panel-2)}
  #printOverlay .po-row{display:flex;align-items:center;gap:9px;padding:5px 7px;border-radius:7px;cursor:pointer;font-size:12px}
  #printOverlay .po-row:hover{background:var(--brick-soft)}
  #printOverlay .po-row.dis{opacity:.45;cursor:default}
  #printOverlay .po-row.dis:hover{background:transparent}
  #printOverlay .po-nm{flex:1;font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #printOverlay .po-lv{font-size:10px;color:var(--muted);flex:0 0 auto}
  #printOverlay .check{padding:5px 0;font-size:12px}
  #printOverlay .po-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
  #printOverlay .po-primary{flex:1 1 100%;padding:11px;font-size:13px;font-weight:600;border:none;border-radius:9px;
    background:var(--brick);color:#fff;cursor:pointer}
  #printOverlay .po-primary:hover{background:var(--brick-dark)}
  #printOverlay .po-sec{flex:1;padding:9px 8px;font-size:12px;border:1px solid var(--line);border-radius:8px;
    background:var(--panel);color:var(--ink-soft);cursor:pointer;font-family:inherit}
  #printOverlay .po-sec:hover{border-color:var(--brick);color:var(--brick-dark)}

  /* ===== Modal bazy materiałów ===== */
  #dbOverlay{position:absolute;inset:0;z-index:53;display:none;align-items:center;justify-content:center;background:rgba(33,28,24,.42)}
  #dbOverlay.show{display:flex}
  #dbOverlay .db-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);width:min(560px,94%);max-height:90%;display:flex;flex-direction:column;overflow:hidden}
  #dbOverlay h2{font-size:15px;font-weight:700;margin:0;padding:18px 20px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
  #dbOverlay .hclose{width:28px;height:28px;padding:0;border-radius:50%;font-size:13px;line-height:1;border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);flex:0 0 auto;cursor:pointer}
  #dbOverlay .hclose:hover{border-color:var(--brick);color:var(--brick-dark)}
  #dbOverlay .db-sub{font-size:11.5px;color:var(--muted);padding:4px 20px 0;line-height:1.5}
  #dbOverlay .db-tabs{display:flex;gap:6px;padding:12px 20px 0;flex:0 0 auto}
  #dbOverlay .db-tab{flex:1;padding:8px 6px;border:1px solid var(--line);border-bottom:none;border-radius:9px 9px 0 0;background:var(--bg);color:var(--ink-soft);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
  #dbOverlay .db-tab.active{background:var(--panel);color:var(--brick-dark);box-shadow:inset 0 -2px 0 var(--brick)}
  #dbOverlay .db-body{padding:14px 20px 18px;overflow:auto;border-top:1px solid var(--line)}
  #dbOverlay .db-brand{font-weight:700;font-size:12.5px;color:var(--ink);margin:13px 0 4px;display:flex;align-items:center;gap:6px}
  #dbOverlay .db-brand:first-child{margin-top:0}
  #dbOverlay .bd-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--brick-soft);color:var(--brick-dark);border-radius:4px;padding:1px 5px}
  #dbOverlay .db-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;margin:3px 0;font-size:11.5px;background:var(--panel-2)}
  #dbOverlay .di-main{flex:1;min-width:0}
  #dbOverlay .di-nm{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
  #dbOverlay .di-meta{color:var(--muted);font-size:10.5px;margin-top:1px;line-height:1.35}
  #dbOverlay .di-del{padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);background:#fff;color:#b3401f;cursor:pointer;flex:0 0 auto;font:inherit;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}
  #dbOverlay .di-del:hover{background:#fbeae5;border-color:#d6664a}
  #dbOverlay .di-acts{display:flex;flex-direction:column;gap:3px;flex:0 0 auto;align-items:stretch}
  #dbOverlay .di-ed{padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);background:#fff;color:var(--brick-dark);cursor:pointer;font:inherit;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}
  #dbOverlay .di-ed:hover{border-color:var(--brick);background:var(--brick-soft)}
  #dbOverlay .db-add .dbcancel{background:var(--panel-2);color:var(--ink-soft);border:1px solid var(--line);margin-top:6px}
  #dbOverlay .db-add .dbcancel:hover{border-color:var(--brick);color:var(--brick-dark);background:var(--brick-soft)}
  #dbOverlay input[disabled]{background:var(--bg);color:var(--ink-soft);opacity:.85}
  .dbhint{font-size:10.5px;color:var(--muted);line-height:1.4}
  #dbOverlay .db-empty{font-size:11px;color:var(--muted);font-style:italic;padding:3px 2px}
  #dbOverlay .db-add{margin-top:16px;border:1px dashed var(--line-2);border-radius:10px;padding:12px 13px;background:var(--bg)}
  #dbOverlay .db-add h3{font-size:12px;font-weight:700;margin:0 0 8px;color:var(--brick-dark)}
  #dbOverlay .db-add .row{display:flex;align-items:center;gap:8px;margin:5px 0}
  #dbOverlay .db-add .row>label{flex:0 0 120px;font-size:11.5px;color:var(--ink-soft)}
  #dbOverlay .db-add .row input,#dbOverlay .db-add .row select{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:12px;background:var(--panel);color:var(--ink)}
  #dbOverlay .db-add .kinds{display:flex;flex-wrap:wrap;gap:9px;flex:1}
  #dbOverlay .db-add .kinds label{flex:0 0 auto;display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink);cursor:pointer}
  #dbOverlay .db-add .kinds input{flex:0 0 auto}
  #dbOverlay .db-add .dbhint{font-size:10.5px;color:var(--muted);margin-top:6px;line-height:1.4}
  #dbOverlay .db-addbtn{width:100%;margin-top:10px;padding:9px;border:none;border-radius:8px;background:var(--brick);color:#fff;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
  #dbOverlay .db-addbtn:hover{background:var(--brick-dark)}
  .db-edit{margin:2px 0 9px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--brick-dark);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;width:100%;text-align:left;display:flex;align-items:center;gap:7px}
  .db-edit:hover{border-color:var(--brick);background:var(--brick-soft)}
  .db-edit .di{font-size:13px}

  /* ===== Dolny pasek zakladek poszyc ===== */
  #roofTabbar{position:absolute;left:0;right:0;bottom:0;height:40px;z-index:7;display:flex;align-items:stretch;gap:0;
    background:var(--panel);border-top:1px solid var(--line);padding:0 8px;box-shadow:0 -2px 8px rgba(33,28,24,.05)}
  #roofTabs{display:flex;align-items:flex-end;gap:3px;overflow-x:auto;overflow-y:hidden;flex:0 1 auto;min-width:0;
    scrollbar-width:thin;padding-top:5px}
  #roofTabs::-webkit-scrollbar{height:5px}
  #roofTabs::-webkit-scrollbar-thumb{background:#ded5c8;border-radius:6px}
  .rt-tab{display:flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 12px;border:1px solid var(--line);
    border-bottom:none;border-radius:9px 9px 0 0;background:var(--panel-2);cursor:pointer;white-space:nowrap;
    color:var(--ink-soft);font-size:12.5px;max-width:200px;position:relative;top:1px;transition:background .12s,border-color .12s}
  .rt-tab:hover{background:#fff;border-color:var(--brick)}
  .rt-tab.active{background:#fff;border-color:var(--brick);border-bottom:1px solid #fff;color:var(--ink);font-weight:600;
    box-shadow:0 -2px 0 var(--brick) inset;z-index:2}
  .rt-tab.hid{opacity:.55;font-style:italic}
  .rt-tab .rt-name{overflow:hidden;text-overflow:ellipsis;max-width:140px}
  .rt-tab.from-other-file{background:color-mix(in srgb,var(--panel-2) 86%,#00a5a7 14%)}
  .rt-tab .rt-file{font-size:9px;font-weight:900;color:#fff;background:#2b7bbb;border-radius:999px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
  .rt-tab .rt-lvl{font-size:9.5px;font-weight:600;color:var(--brick-dark);background:var(--brick-soft);border-radius:4px;padding:1px 5px}
  .rt-tab .rt-flag{font-size:10px;opacity:.8}
  /* ===== status gotowości poszycia na zakładce ===== */
  .rt-tab .rt-status{flex:0 0 auto;min-width:17px;height:17px;border-radius:50%;border:none;cursor:pointer;padding:0;
    display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;line-height:1;color:#fff;
    background:var(--line-2);font-variant-numeric:tabular-nums}
  .rt-tab .rt-status:hover{filter:brightness(1.08);box-shadow:0 0 0 2px rgba(0,0,0,.08)}
  .rt-tab .rt-status[data-level="empty"]{background:#fff;border:1.5px solid var(--line-2);color:var(--muted-2)}
  .rt-tab .rt-status[data-level="draft"]{background:var(--steel)}
  .rt-tab .rt-status[data-level="ready"]{background:var(--g-green)}
  .rt-tab .rt-status[data-level="warning"]{background:var(--zG);min-width:auto;padding:0 6px;border-radius:9px;gap:2px}
  .rt-tab .rt-status[data-level="error"]{background:var(--k-red);min-width:auto;padding:0 6px;border-radius:9px;gap:2px}
  /* subtelny akcent ramki zakładki wg statusu (nie nadpisuje aktywnej) */
  .rt-tab.rt-tab--error:not(.active){border-color:#e8a594}
  .rt-tab.rt-tab--warning:not(.active){border-color:#ecd9a6}
  .rt-tab.rt-tab--ready:not(.active){border-color:#cbe6d4}
  .rt-tab .rt-cog{width:18px;height:18px;padding:0;border:none;background:transparent;border-radius:5px;font-size:11px;
    color:var(--muted);cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1;flex:0 0 auto}
  .rt-tab.active .rt-cog{display:flex}
  .rt-tab .rt-cog:hover{background:var(--brick-soft);color:var(--brick-dark)}
  .rt-rename{height:24px;font-size:12.5px;border:1px solid var(--brick);border-radius:5px;padding:0 6px;width:130px;
    font-family:inherit;color:var(--ink);outline:none}
  .rt-add{width:30px;height:30px;flex:0 0 auto;margin:5px 0 0 4px;border:1px dashed var(--line-2);background:transparent;
    border-radius:8px;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;align-self:flex-end}
  .rt-add:hover{border-color:var(--brick);color:var(--brick);background:var(--brick-soft)}
  .rt-spacer{flex:1 1 auto;min-width:8px}
  .rt-tool{width:32px;height:30px;flex:0 0 auto;align-self:center;border:1px solid var(--line);background:var(--panel);
    border-radius:8px;font-size:15px;color:var(--ink-soft);cursor:pointer;position:relative;margin-left:5px}
  .rt-tool:hover{border-color:var(--brick);color:var(--brick-dark);background:var(--brick-soft)}
  .rt-bgmenu{position:relative;display:flex;align-items:center}
  #roofBgPop{position:absolute;bottom:calc(100% + 8px);right:0;z-index:9;width:230px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:7px 13px 9px}
  #roofBgPop[hidden]{display:none}
  #roofBgPop .check{padding:5px 0;margin:0;font-size:12px}

  /* ===== Menu kontekstowe zakladki ===== */
  #roofTabMenu{position:absolute;z-index:40;width:288px;max-width:92vw;background:var(--panel);border:1px solid var(--line);
    border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:13px 15px 14px}
  #roofTabMenu[hidden]{display:none}
  #roofTabMenu .rtm-h{display:flex;align-items:center;justify-content:space-between;font-size:10px;text-transform:uppercase;
    letter-spacing:.12em;color:var(--muted);font-weight:700;margin-bottom:9px}
  #roofTabMenu .rtm-x{width:24px;height:24px;padding:0;border-radius:50%;border:1px solid var(--line-2);background:#fff;
    color:var(--ink-soft);font-size:11px;line-height:1;cursor:pointer}
  #roofTabMenu .rtm-x:hover{border-color:var(--brick);color:var(--brick-dark)}
  #roofTabMenu .rtm-row{display:flex;flex-direction:column;gap:3px;margin:7px 0}
  #roofTabMenu .rtm-row label{font-size:11px;color:var(--ink-soft);font-weight:500}
  #roofTabMenu .rtm-note{color:var(--muted-2);font-weight:400;font-size:9.5px}
  #roofTabMenu .rtm-row input{height:32px;border:1px solid var(--line-2);border-radius:7px;padding:0 9px;font-size:13px;
    font-family:inherit;color:var(--ink);background:var(--panel-2);width:100%}
  #roofTabMenu .rtm-row input:focus{border-color:var(--brick);outline:none;background:#fff}
  #roofTabMenu .rtm-row2{display:flex;gap:8px}
  #roofTabMenu .rtm-row2 .rtm-row{flex:1}
  #roofTabMenu .rtm-check{padding:8px 0 2px;font-size:11.5px}
  #roofTabMenu .rtm-sep{height:1px;background:var(--line);margin:10px 0 8px}
  #roofTabMenu .rtm-acts{display:flex;gap:6px;margin-bottom:8px}
  #roofTabMenu .rtm-b{flex:1;font-size:11.5px;padding:8px 4px;border:1px solid var(--line);border-radius:7px;
    background:var(--panel);color:var(--ink-soft);cursor:pointer;font-family:inherit}
  #roofTabMenu .rtm-b:hover{border-color:var(--brick);color:var(--brick-dark)}
  #roofTabMenu .rtm-del{width:100%;font-size:12px;padding:9px;border:1px solid #e3b7af;border-radius:8px;
    background:#fbecea;color:#b23b2c;cursor:pointer;font-family:inherit;font-weight:600}
  #roofTabMenu .rtm-del:hover:not(:disabled){background:#f6d9d4;border-color:#c0392b}
  #roofTabMenu .rtm-del:disabled{opacity:.4;cursor:default}
  #roofTabMenu .rtm-hint{font-size:10px;color:var(--muted);line-height:1.5;margin-top:9px}
  @media (max-width:900px){ #roofTabbar{padding:0 6px} .rt-tab{max-width:150px} }

  #helpOverlay{position:absolute;inset:0;z-index:50;display:none;align-items:center;justify-content:center;
    background:rgba(33,28,24,.42)}
  #helpOverlay.show{display:flex}
  #helpOverlay .hs{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);
    width:min(440px,92%);max-height:84%;overflow:auto;padding:20px 22px 22px}
  #helpOverlay h2{font-size:15px;font-weight:700;margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px}
  #helpOverlay .hsub{font-size:11.5px;color:var(--muted);margin:4px 0 6px;line-height:1.5}
  #helpOverlay .hgrp{font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin:16px 0 2px}
  #helpOverlay .hrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0;font-size:12.5px;color:var(--ink-soft);border-top:1px solid var(--line)}
  #helpOverlay .keys{display:flex;gap:4px;flex:0 0 auto}
  #helpOverlay kbd{font-family:var(--mono);font-size:11px;background:var(--panel-2);border:1px solid var(--line-2);
    border-bottom-width:2px;border-radius:5px;padding:2px 7px;color:var(--ink);min-width:16px;text-align:center;line-height:1.4}
  #helpOverlay .hclose{width:28px;height:28px;padding:0;border-radius:50%;font-size:13px;line-height:1;
    border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);flex:0 0 auto}
  #helpOverlay .hclose:hover{border-color:var(--brick);color:var(--brick-dark)}

  @media (prefers-reduced-motion:reduce){ .toast{transition:none} }

  /* responsive */
  @media (max-width:900px){
    header{height:auto;flex-wrap:wrap;gap:10px;padding:10px 12px}
    .brand{order:1}
    header input#projName{order:2;margin-left:auto;width:160px}
    .segmented{order:3;margin:0 auto 0 0}
    #appSwitch{width:100%}
    header .sub{display:none}
    #main{flex-direction:column}
    #canvasWrap{order:1;flex:0 0 auto;height:52vh;min-height:300px;border-bottom:1px solid var(--line)}
    #sidebar{order:2;width:100%;border-right:none;max-height:none}
    #schedulePanel{order:3;width:100%;border-left:none;border-top:1px solid var(--line);max-height:none}
    #toolToolbar{max-width:calc(100% - 20px)}
    body{overflow:auto;height:auto;min-height:100%}
    [data-tip]::after{display:none}
  }

  /* telefony — pasek narzędzi, zoom i menu dopasowane do wąskiego ekranu */
  @media (max-width:600px){
    header{padding:9px 11px;gap:8px}
    header input#projName{width:128px}
    .segmented button,#appSwitch button{padding:7px 6px;font-size:11px;gap:5px}
    #appSwitch button .gl{font-size:13px}
    .segmented button .tx,#appSwitch button .tx{overflow:hidden;text-overflow:ellipsis;max-width:100%}
    #canvasWrap{height:56vh;min-height:280px}
    #schedulePanel.hidden{display:none}
    /* pasek narzędzi: pełna szerokość, zawijanie, większe pola dotyku */
    #toolToolbar{left:7px;right:7px;transform:none;max-width:none;top:9px;
      flex-wrap:wrap;justify-content:center;gap:3px;row-gap:3px;padding:5px}
    #toolToolbar .railsep{display:none}
    /* narzędzia edycji zwinięte w jeden przycisk-launcher */
    #btnTools{display:flex;align-items:center;gap:7px;height:40px;padding:0 13px;border:none;cursor:pointer;
      background:var(--ink);color:#fff;border-radius:var(--r);font-size:18px;line-height:1}
    body.app-wind #btnTools.active{background:var(--zG)}
    #btnTools.active{background:var(--brick)}
    #btnTools .tl-cv{font-size:11px;opacity:.85}
    #tools{position:fixed;left:50%;top:104px;transform:translateX(-50%);flex-direction:column;
      width:min(290px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
      box-shadow:var(--sh-2);padding:6px;gap:1px;z-index:9}
    #tools[hidden]{display:none}
    #underlayInlineCtl{position:static;left:auto;top:auto;transform:none;display:grid;gap:7px;min-width:0;background:#211c18;color:#fff;border-radius:10px;padding:10px 12px;margin:2px 4px 4px;box-shadow:none;border:none}
    #underlayInlineCtl[hidden]{display:none!important}
    #underlayInlineCtl .uic-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:800}
    #underlayInlineCtl .uic-head b{font-size:11px;font-weight:800}
    #underlayInlineCtl .uic-head span{font-size:11px;font-weight:900;color:#f3d4bf}
    #underlayInlineCtl input[type=range]{width:100%;margin:0}
    #tools .tools-h{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);
      font-weight:700;padding:5px 8px 7px;border-bottom:1px solid var(--line);margin-bottom:3px}
    #tools button{width:100%;height:auto;justify-content:flex-start;gap:13px;padding:11px 13px;font-size:19px;border-radius:var(--r-sm)}
    #tools button .tl-label{display:inline;font-size:13.5px;font-weight:600;font-family:var(--sans);color:inherit}
    #tools button.active{background:var(--ink);color:#fff}
    #tools .hole-mode-wrap{width:100%;display:block;position:relative}
    #tools #btnHoleMenu{width:100%;height:auto;justify-content:flex-start;gap:13px;padding:11px 13px;font-size:19px;border-radius:var(--r-sm)}
    #tools #btnHoleMenu .tl-label{display:inline;font-size:13.5px;font-weight:600;font-family:var(--sans);color:inherit}
    #tools #holeModePop{position:static;width:100%;max-width:none;box-shadow:none;border:1px solid var(--line);border-radius:var(--r-sm);margin:3px 0 2px;padding:5px;background:var(--panel-2)}
    body.app-wind #tools button.active{background:var(--zG)}
    #tools button,
    #toolToolbar #btnUndo,#toolToolbar #btnRedo,
    #toolToolbar #btnLoad,#toolToolbar #btnExport,#toolToolbar #btnLayers,#toolToolbar #btnUnderlayMenu{min-width:40px}
    #toolToolbar #btnUndo,#toolToolbar #btnRedo,
    #toolToolbar #btnLoad,#toolToolbar #btnExport,#toolToolbar #btnLayers,#toolToolbar #btnUnderlayMenu{width:40px;height:40px}
    /* badge „Edycja", pasek współrzędnych i uchwyt panelu chowamy na telefonie */
    #modeBadge,#statusBar,#panelToggle{display:none}
    /* zoom: chowamy + i − (przybliżanie szczypnięciem), zostaje „dopasuj widok" + „?" */
    #zoomCtl{top:auto;bottom:50px;right:14px;flex-direction:row}
    #issueBadges{top:60px;right:10px;bottom:auto;left:auto;gap:12px}
    body.has-issues #windLegend,body.has-issues #fastLegend{bottom:14px}
    #zoomCtl button{width:44px;height:44px;font-size:19px}
    #zoomCtl #zin,#zoomCtl #zout{display:none}
    /* „?" (skróty / gesty) ląduje w miejscu zoomu — w klastrze dół-prawo */
    #toolToolbar #btnHelp{display:none}
    #zoomCtl #btnHelpZoom{display:none}   /* skróty klawiszowe nieprzydatne na mobile */
    #schedulePanel table.sched td,#schedulePanel table.wind td{padding:5px 2px;font-size:8.5px}
    #schedulePanel table.sched th,#schedulePanel table.wind th{font-size:7.5px;padding:4px 2px 6px}
    /* menu jako wyśrodkowany panel pod paskiem — nie ucieka poza ekran */
    #toolToolbar .menu{position:fixed;left:50%;right:auto;top:104px;transform:translateX(-50%);
      width:min(360px,93vw);max-width:93vw;max-height:66vh;overflow:auto}
    #layersPop,#underlayPop,#exportPop{width:min(360px,93vw)}
  }

  /* checklista postępu — zawsze widoczna u góry lewego panelu */
  #wizChecklist{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
    box-shadow:var(--sh-2);padding:11px 12px 9px;margin-bottom:12px}
  #wizChecklist .wc-h{font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--muted);margin-bottom:8px}
  #wizChecklist .wc-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;
    padding:5px 6px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;color:var(--ink-soft);line-height:1.2}
  #wizChecklist .wc-item:hover{background:var(--panel-2)}
  #wizChecklist .wc-item.cur{background:var(--brick-soft);color:var(--brick-dark);font-weight:800}
  #wizChecklist .wc-item.locked{opacity:.5;cursor:default}
  #wizChecklist .wc-item.locked:hover{background:none}
  #wizChecklist .wc-box{width:18px;height:18px;flex:0 0 18px;border-radius:5px;border:2px solid var(--line-2);
    display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;background:#fff}
  #wizChecklist .wc-item.done .wc-box{background:var(--g-green);border-color:var(--g-green)}
  #wizChecklist .wc-item.err .wc-box{background:var(--k-red);border-color:var(--k-red)}
  #wizChecklist .wc-item.warn .wc-box{background:var(--zG);border-color:var(--zG)}
  #wizChecklist .wc-num{font-variant-numeric:tabular-nums;color:var(--muted-2);font-weight:700;font-size:11px;min-width:14px}
  /* globalny pasek nawigacji „Wstecz / Dalej" — przyklejony na dole panelu */
  /* karty kroków rysunkowych (Obrys / Odwodnienie) i kontrolnych */
  .step-cta{display:flex;flex-direction:column;gap:7px;margin:10px 0 2px}
  .step-cta button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;
    padding:11px 12px;border-radius:var(--r);font-weight:700;font-size:12.5px;cursor:pointer;
    border:1px solid var(--brick);background:var(--brick);color:#fff;transition:filter .15s}
  .step-cta button.sec{background:var(--panel);color:var(--brick-dark);border-color:var(--line-2)}
  .step-cta button:hover{filter:brightness(1.04)}
  .step-cta button.on{box-shadow:0 0 0 3px var(--brick-soft)}
  #stepDrain .step-cta button{background:var(--panel);color:var(--brick-dark);border-color:var(--line-2)}
  #stepDrain .step-cta button.on{background:var(--brick);border-color:var(--brick);color:#fff;box-shadow:0 0 0 3px var(--brick-soft)}
  #stepObstacles .step-cta button.on{background:var(--brick);border-color:var(--brick);color:#fff;box-shadow:0 0 0 3px var(--brick-soft)}
  .step-stat{font-size:11.5px;font-weight:700;padding:8px 11px;border-radius:8px;margin-top:9px;line-height:1.4}
  .step-stat.ok{color:#1f6b3a;background:#e9f5ed}
  .step-stat.todo{color:var(--brick-dark);background:var(--brick-soft)}
  .step-stat.err{color:#9a1b12;background:#fdeceb}
  .step-tip{font-size:11.5px;line-height:1.5;color:var(--ink-soft);background:var(--panel-2);
    border:1px solid var(--line);border-radius:8px;padding:9px 11px;margin-top:8px}
  /* pytanie startowe kroku 1 (podkład / rzut) */
  .step-ask{background:var(--brick-soft);border:1px solid var(--brick);border-radius:var(--r);padding:11px 12px;margin-top:10px}
  .step-ask.answered{display:none}
  .step-ask .sa-q{font-weight:800;font-size:13px;color:var(--brick-dark);margin-bottom:3px}
  .step-ask .sa-d{font-size:11.5px;line-height:1.5;color:var(--ink-soft);margin-bottom:2px}
  .step-ask .step-cta{margin-bottom:0}
  #sidebar #stepCheck,
  #sidebar #stepPrint{display:none!important}
  /* krok Sprawdzenie */
  .chk-grid{display:flex;flex-direction:column;gap:5px;margin:8px 0}
  .chk-line{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--ink-soft);padding:5px 7px;border-radius:7px;background:var(--panel-2)}
  .chk-line .chk-ic{width:17px;height:17px;flex:0 0 17px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}
  .chk-line.ok .chk-ic{background:var(--g-green)} .chk-line.bad .chk-ic{background:var(--line-2)}
  .chk-counts{display:flex;gap:8px;margin:9px 0}
  .chk-counts .cc{flex:1;text-align:center;border-radius:9px;padding:9px 6px;font-weight:800;font-size:12px;border:1px solid var(--line)}
  .chk-counts .cc .n{display:block;font-size:20px;line-height:1.1}
  .chk-counts .cc.err{background:#fdeceb;color:#9a1b12;border-color:#f3c3bd}
  .chk-counts .cc.warn{background:#fdf4e7;color:#9a5b12;border-color:#f0d9b3}
  .chk-counts .cc.zero{background:#e9f5ed;color:#1f6b3a;border-color:#bfe2cc}
  .chk-issue{border-left:5px solid var(--zG);background:#fdf4e7;border-radius:8px;padding:8px 10px;margin-bottom:7px}
  .chk-issue.err{border-left-color:var(--k-red);background:#fdeceb}
  .chk-issue .ci-t{font-weight:800;font-size:11.5px;margin-bottom:2px}
  .chk-issue .ci-scope{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--muted-2);margin-right:6px}
  .chk-issue .ci-b{font-size:11px;line-height:1.4;color:var(--ink-soft);margin-bottom:5px}
  .chk-issue .ci-acts{display:flex;gap:6px;flex-wrap:wrap}
  .chk-issue .ci-acts button{font-size:10.5px;font-weight:700;padding:5px 9px;border-radius:7px;cursor:pointer;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-soft)}
  .chk-issue .ci-acts button:hover{background:var(--panel-2)}
  /* podsumowanie statusów poszyć (krok Sprawdzenie) */
  .rdy-sum{margin:10px 0 4px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
  .rdy-sum .rdy-hd{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted);
    padding:7px 10px;background:var(--panel-2);border-bottom:1px solid var(--line)}
  .rdy-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;cursor:pointer;
    padding:7px 10px;font-size:12px;border-bottom:1px solid var(--line)}
  .rdy-row:last-child{border-bottom:none}
  .rdy-row:hover{background:var(--panel-2)}
  .rdy-row .rdy-dot{flex:0 0 auto;min-width:17px;height:17px;border-radius:50%;display:inline-flex;align-items:center;
    justify-content:center;font-size:10px;font-weight:800;color:#fff;background:var(--line-2)}
  .rdy-row .rdy-dot[data-level="empty"]{background:#fff;border:1.5px solid var(--line-2);color:var(--muted-2)}
  .rdy-row .rdy-dot[data-level="draft"]{background:var(--steel)}
  .rdy-row .rdy-dot[data-level="ready"]{background:var(--g-green)}
  .rdy-row .rdy-dot[data-level="warning"]{background:var(--zG)}
  .rdy-row .rdy-dot[data-level="error"]{background:var(--k-red)}
  .rdy-row .rdy-nm{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rdy-row .rdy-lb{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted-2);white-space:nowrap}
  /* krok Wydruk */
  .tmpl-pick{display:flex;flex-direction:column;gap:8px;margin:9px 0}
  .tmpl-pick button{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:11px 12px;
    border-radius:var(--r);border:2px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink)}
  .tmpl-pick button .tp-ic{font-size:19px;line-height:1}
  .tmpl-pick button .tp-t{font-weight:800;font-size:12.5px;display:block;margin-bottom:1px}
  .tmpl-pick button .tp-d{font-size:11px;color:var(--muted);line-height:1.4;display:block}
  .tmpl-pick button.active{border-color:var(--steel);background:var(--steel-soft)}
  /* ukrywanie narzędzi i bloków nieistotnych dla danego kroku */
  .cfg-card .wiz-nav{display:none}                 /* nawigacja przeniesiona do globalnego paska */
  body:not(.editor-module-slopes) #tools button[data-tool="origin"],
  body:not(.editor-module-slopes) #tools button[data-tool="cellEdit"]{display:none!important}
  body:not(.editor-module-slopes) #tools .tool-group[data-group="Spadki"]{display:none!important}
  #toolToolbar #btnUnderlayMenu{display:none!important}
  body.wiz-k-outline #tools button[data-tool="drain"],
  body.wiz-k-outline #tools button[data-tool="gutter"],
  body.wiz-k-outline #tools button[data-tool="struct"],
  body.wiz-k-outline #tools button[data-tool="origin"],
  body.wiz-k-outline #tools button[data-tool="cellEdit"]{display:none}
  body.wiz-k-drain #tools button[data-tool="outline"],
  body.wiz-k-drain #tools button[data-tool="struct"],
  body.wiz-k-drain #tools button[data-tool="origin"],
  body.wiz-k-drain #tools button[data-tool="cellEdit"],
  body.wiz-k-drain #tools button[data-tool="parapet"]{display:none}
  /* kroki Spadki / Strefy wiatrowe / Sprawdzenie / Wydruk — narzędzia rysunkowe niepotrzebne */
  body.wiz-k-slopes #tools button[data-tool="drain"],
  body.wiz-k-slopes #tools button[data-tool="gutter"],
  body.wiz-k-slopes #tools button[data-tool="parapet"]{display:none}
  body.wiz-k-wind #tools button[data-tool="drain"],
  body.wiz-k-wind #tools button[data-tool="gutter"],
  body.wiz-k-wind #tools button[data-tool="struct"],
  body.wiz-k-wind #tools button[data-tool="origin"],
  body.wiz-k-wind #tools button[data-tool="cellEdit"]{display:none}
  body.wiz-k-check #tools button[data-tool="outline"],
  body.wiz-k-check #tools button[data-tool="hole"],
  body.wiz-k-check #tools button[data-tool="drain"],
  body.wiz-k-check #tools button[data-tool="gutter"],
  body.wiz-k-check #tools button[data-tool="struct"],
  body.wiz-k-check #tools button[data-tool="origin"],
  body.wiz-k-check #tools button[data-tool="cellEdit"],
  body.wiz-k-check #tools button[data-tool="parapet"],
  body.wiz-k-check #tools button[data-tool="underlay"],
  body.wiz-k-print #tools button[data-tool="outline"],
  body.wiz-k-print #tools button[data-tool="hole"],
  body.wiz-k-print #tools button[data-tool="drain"],
  body.wiz-k-print #tools button[data-tool="gutter"],
  body.wiz-k-print #tools button[data-tool="struct"],
  body.wiz-k-print #tools button[data-tool="origin"],
  body.wiz-k-print #tools button[data-tool="cellEdit"],
  body.wiz-k-print #tools button[data-tool="parapet"],
  body.wiz-k-print #tools button[data-tool="underlay"]{display:none}
  body.wiz-k-check #tools .hole-mode-wrap,
  body.wiz-k-print #tools .hole-mode-wrap,
  body.wiz-k-outline.osm-none #tools .hole-mode-wrap,
  body.wiz-k-outline.osm-dimensions #tools .hole-mode-wrap{display:none}

  /* ===================== KREATOR KROKU 1 — OBRYS DACHU ===================== */
  /* ekran startowy: 3 kafelki metod */
  #emptyState .es#osStart{max-width:760px;width:min(760px,92vw);text-align:left;padding:24px 26px}
  .os-kick{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--brick);margin-bottom:6px}
  .os-h{font-size:19px;font-weight:800;margin:0 0 4px;color:var(--ink)}
  .os-sub{font-size:12.5px;color:var(--muted);margin:0 0 16px;line-height:1.5}
  .os-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .os-tile{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;cursor:pointer;
    background:var(--panel-2);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:15px 14px 14px;transition:border-color .14s,box-shadow .14s,transform .08s}
  .os-tile:hover{border-color:var(--brick);box-shadow:var(--sh-2);transform:translateY(-2px)}
  .os-tile.feat{border-color:var(--brick);box-shadow:0 0 0 3px var(--brick-soft)}
  .os-tile .os-ic{font-size:23px;line-height:1}
  .os-tile .os-tt{font-size:13.5px;font-weight:800;color:var(--ink)}
  .os-tile .os-td{font-size:11.5px;color:var(--muted);line-height:1.45;flex:1}
  .os-tile .os-btn{margin-top:8px;align-self:stretch;text-align:center;background:var(--panel);border:1px solid var(--line-2);
    border-radius:var(--r);padding:8px 10px;font-size:12px;font-weight:800;color:var(--brick-dark)}
  .os-tile.feat .os-btn{background:var(--brick);border-color:var(--brick);color:#fff}
  .os-tile:hover .os-btn{background:var(--brick);border-color:var(--brick);color:#fff}
  .os-example{margin:15px auto 0;display:block;background:none;border:none;color:var(--muted);font-size:12px;
    text-decoration:underline;cursor:pointer;font-family:inherit}
  .os-example:hover{color:var(--brick-dark)}

  /* dolny pasek akcji podczas rysowania */
  #outlineActionBar{position:absolute;left:50%;transform:translateX(-50%);bottom:50px;z-index:8;
    display:flex;align-items:center;gap:14px;max-width:min(720px,94vw);
    background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:9px 13px}
  #outlineActionBar[hidden]{display:none}
  #outlineActionBar .oab-l{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
  #outlineActionBar .oab-l b{font-size:12.5px;font-weight:800;color:var(--ink);white-space:nowrap}
  #outlineActionBar .oab-l span{font-size:11px;color:var(--muted);line-height:1.3}
  #outlineActionBar .oab-r{display:flex;align-items:center;gap:7px;flex:0 0 auto}
  #outlineActionBar .oab-snap{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--ink-soft);
    background:var(--panel-2);border:1px solid var(--line);border-radius:99px;padding:5px 9px;cursor:pointer;white-space:nowrap}
  #outlineActionBar button{padding:8px 11px;border-radius:var(--r);font-weight:800;font-size:12px;cursor:pointer;
    border:1px solid var(--line-2);background:var(--panel);color:var(--ink-soft);white-space:nowrap}
  #outlineActionBar button:hover{background:var(--panel-2)}
  #outlineActionBar button.primary{background:var(--brick);border-color:var(--brick);color:#fff}
  #outlineActionBar button.primary:hover{filter:brightness(1.05)}
  #outlineActionBar button.danger{border-color:#e4b3a5;background:#fff3f0;color:#9a3d22}
  #outlineActionBar button.danger:hover{background:#ffe6dc;color:#7d2f1b}
  #outlineActionBar button[disabled]{opacity:.4;cursor:default;filter:none}

  /* etykieta przy kursorze (długość / komunikat) */
  #drawTag{position:absolute;z-index:9;pointer-events:none;transform:translate(12px,14px);
    background:var(--ink);color:#fff;font-size:11px;font-weight:700;padding:4px 8px;border-radius:7px;
    box-shadow:var(--sh-2);white-space:nowrap;font-variant-numeric:tabular-nums}
  #drawTag[hidden]{display:none}
  #drawTag.err{background:var(--k-red)}
  #drawTag .dt-sub{opacity:.75;font-weight:600;margin-left:5px}

  /* panel prowadzenia po lewej (#outlineGuide) */
  #outlineGuide .ol-pick{font-size:11.5px;line-height:1.5;color:var(--ink-soft);background:var(--panel-2);
    border:1px solid var(--line);border-radius:8px;padding:10px 11px}
  #outlineGuide .ol-pick b{color:var(--brick-dark)}
  #outlineGuide .ol-method{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--brick);margin:2px 0 8px}
  #outlineGuide .ol-steps{display:flex;flex-direction:column;gap:5px;margin:0 0 10px}
  #outlineGuide .ol-step{display:flex;gap:8px;align-items:flex-start;font-size:11.8px;line-height:1.4;color:var(--ink-soft)}
  #outlineGuide .ol-step .n{flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:var(--brick-soft);color:var(--brick-dark);
    font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}
  #outlineGuide .ol-step.done{color:var(--muted-2)}
  #outlineGuide .ol-step.done .n{background:var(--g-green);color:#fff}
  #outlineGuide .ol-step.done .n::after{content:'✓'}
  #outlineGuide .ol-step.done .n span{display:none}
  #outlineGuide .ol-cta{display:flex;flex-direction:column;gap:7px;margin:4px 0 2px}
  #outlineGuide .ol-cta button{width:100%;padding:10px 12px;border-radius:var(--r);font-weight:800;font-size:12.5px;cursor:pointer;
    border:1px solid var(--brick);background:var(--brick);color:#fff}
  #outlineGuide .ol-cta button.sec{background:var(--panel);color:var(--brick-dark);border-color:var(--line-2)}
  #outlineGuide .ol-cta button.active{background:var(--brick-soft);border-color:var(--brick);color:var(--brick-dark);box-shadow:inset 0 0 0 1px var(--brick)}
  #outlineGuide .ol-cta button.active::before{content:'✓';margin-right:7px;color:var(--g-green);font-weight:900}
  #outlineGuide .ol-cta button:not(.sec).active{background:var(--brick);border-color:var(--brick);color:#fff;box-shadow:0 0 0 3px rgba(184,92,46,.18)}
  #outlineGuide .ol-cta button:not(.sec).active::before{color:#fff}
  #outlineGuide .ol-cta button.done{background:#eef7f1;border-color:#b9dcc5;color:#1f6b3a;box-shadow:inset 0 0 0 1px rgba(31,107,58,.08)}
  #outlineGuide .ol-cta button.done::before{content:'✓';margin-right:7px;color:#1f6b3a;font-weight:900}
  #outlineGuide .ol-cta button.danger{border-color:#e4b3a5;background:#fff3f0;color:#9a3d22}
  #outlineGuide .ol-cta button.danger:hover{background:#ffe6dc;color:#7d2f1b}
  #outlineGuide .ol-cta button:hover{filter:brightness(1.04)}
  #outlineGuide .ol-underlay-controls{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;margin:0 0 10px;display:grid;gap:8px}
  #outlineGuide .ol-underlay-controls label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:var(--ink-soft)}
  #outlineGuide .ol-underlay-controls input[type=range]{grid-column:1 / -1;width:100%}
  #outlineGuide .ol-underlay-controls input[type=number]{width:86px;height:32px;border:1px solid var(--line-2);border-radius:8px;padding:0 8px;font-family:var(--mono);font-size:12px;font-weight:800}
  #outlineGuide .ol-draw-controls{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;margin:0 0 10px;display:grid;gap:8px}
  #outlineGuide .ol-draw-controls .snap{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--ink-soft);cursor:pointer}
  #outlineGuide .ol-draw-controls .snap input{width:16px;height:16px;accent-color:var(--brick)}
  #outlineGuide .ol-draw-controls .actions{display:grid;grid-template-columns:1fr;gap:7px}
  #outlineGuide .ol-draw-controls button{width:100%;min-height:38px;border-radius:9px;font-size:12px;font-weight:900}
  #outlineGuide .ol-draw-controls button.primary{background:var(--brick);border-color:var(--brick);color:#fff}
  #outlineGuide .ol-draw-controls button.danger{border-color:#e4b3a5;background:#fff3f0;color:#9a3d22}
  #outlineGuide .ol-draw-controls button.danger:hover{background:#ffe6dc;color:#7d2f1b}
  #outlineGuide .ol-draw-controls button[disabled]{opacity:.45;cursor:default}
  /* checklista poprawności obrysu */
  #outlineGuide .ol-valid{margin:11px 0 2px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
  #outlineGuide .ol-valid .vh{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted);
    padding:6px 10px;background:var(--panel-2);border-bottom:1px solid var(--line)}
  #outlineGuide .ol-valid .vr{display:flex;align-items:center;gap:7px;padding:5px 10px;font-size:11.5px;border-bottom:1px solid var(--line)}
  #outlineGuide .ol-valid .vr:last-child{border-bottom:none}
  #outlineGuide .ol-valid .vr .vd{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--line-2)}
  #outlineGuide .ol-valid .vr.ok .vd{background:var(--g-green)} #outlineGuide .ol-valid .vr.warn .vd{background:var(--zG)} #outlineGuide .ol-valid .vr.err .vd{background:var(--k-red)}
  #outlineGuide .ol-valid .vr .vk{color:var(--ink-soft)} #outlineGuide .ol-valid .vr .vv{margin-left:auto;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
  /* sukces */
  #outlineGuide .ol-success{border:1px solid #cbe6d4;background:#eef7f1;border-radius:var(--r-lg);padding:12px 13px;margin-bottom:10px}
  #outlineGuide .ol-success .sh{font-size:14px;font-weight:800;color:#1d5c33;margin-bottom:7px;display:flex;align-items:center;gap:6px}
  #outlineGuide .ol-success .sm{display:flex;gap:7px;margin-bottom:10px}
  #outlineGuide .ol-success .sm .sc{flex:1;text-align:center;background:#fff;border:1px solid #cbe6d4;border-radius:8px;padding:7px 4px}
  #outlineGuide .ol-success .sm .sc .n{display:block;font-size:16px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
  #outlineGuide .ol-success .sm .sc .k{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  #outlineGuide .ol-roofs{margin-top:10px;border:1px solid #cbe6d4;border-radius:10px;background:rgba(255,255,255,.55);padding:9px}
  #outlineGuide .ol-roofs .or-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;
    font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--muted)}
  #outlineGuide .ol-roof-list{display:grid;gap:6px;max-height:178px;overflow:auto;padding-right:2px}
  #outlineGuide .ol-roof{display:grid;gap:7px;width:100%;border:1px solid var(--line-2);background:#fff;color:var(--ink);
    border-radius:10px;padding:8px 9px;text-align:left;font-family:inherit}
  #outlineGuide .ol-roof:hover{border-color:var(--teal);background:var(--teal-soft)}
  #outlineGuide .ol-roof.active{border-color:var(--teal);background:#eaf8f7;box-shadow:inset 0 0 0 1px rgba(0,143,149,.16)}
  #outlineGuide .ol-roof .or-main{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer;font-family:inherit}
  #outlineGuide .ol-roof .or-dot{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:var(--line);color:var(--ink-soft);font-size:10.5px;font-weight:900}
  #outlineGuide .ol-roof.active .or-dot{background:var(--teal);color:#fff}
  #outlineGuide .ol-roof .or-text{display:grid;gap:2px;min-width:0}
  #outlineGuide .ol-roof .or-name{font-size:12px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #outlineGuide .ol-roof .or-meta{font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #outlineGuide .ol-roof .or-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}
  #outlineGuide .ol-roof .or-actions button{min-height:30px;border-radius:8px;border:1px solid var(--line-2);background:#fff;color:var(--teal);font-family:inherit;font-size:10.5px;font-weight:900;padding:5px 6px;cursor:pointer}
  #outlineGuide .ol-roof .or-actions button:hover{background:var(--teal);border-color:var(--teal);color:#fff}
  #outlineGuide .ol-roof .or-actions button.danger{color:#9b2c17;border-color:#f0b9ac}
  #outlineGuide .ol-roof .or-actions button.danger:hover{background:#9b2c17;border-color:#9b2c17;color:#fff}
  #outlineGuide .ol-roof .or-actions button:disabled{opacity:.45;cursor:not-allowed}
  #outlineGuide .ol-add-roof{width:100%;margin-top:8px;min-height:38px;border-radius:9px;border:1px dashed var(--brick);background:#fff;color:var(--brick-dark);
    font-family:inherit;font-size:12px;font-weight:900;cursor:pointer}
  #outlineGuide .ol-add-roof:hover{background:var(--brick-soft)}
  /* kreator wymiarowy */
  #outlineGuide .dim-shapes{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:4px 0 11px}
  #outlineGuide .dim-shapes button{position:relative;padding:11px 8px;border-radius:var(--r);border:1.5px solid var(--line);
    background:var(--panel-2);cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-soft)}
  #outlineGuide .dim-shapes button.active{border-color:var(--brick);background:var(--brick-soft);color:var(--brick-dark)}
  #outlineGuide .dim-shapes button[disabled]{opacity:.55;cursor:default}
  #outlineGuide .dim-shapes button .soon{position:absolute;top:4px;right:5px;font-size:8px;font-weight:800;text-transform:uppercase;
    letter-spacing:.05em;color:var(--muted-2);background:var(--line);border-radius:4px;padding:1px 4px}
  #outlineGuide .dim-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:7px 0}
  #outlineGuide .dim-row label{min-width:0;font-size:11px;font-weight:700;color:var(--ink-soft);display:flex;flex-direction:column;gap:3px}
  #outlineGuide .dim-row input{box-sizing:border-box;width:100%;min-width:0;height:34px;border:1px solid var(--line-2);border-radius:8px;padding:0 9px;font-size:13px;font-family:inherit;color:var(--ink);background:var(--panel-2)}
  #outlineGuide .dim-help{font-size:10.5px;line-height:1.4;color:var(--muted);margin:5px 0 9px}
  #outlineGuide .dim-row input:focus{border-color:var(--brick);outline:none;background:#fff}
  #outlineGuide .dim-canvas-note{font-size:11px;line-height:1.45;color:var(--muted);border:1px dashed var(--line-2);border-radius:10px;padding:9px 10px;margin:8px 0 10px;background:rgba(255,255,255,.55)}
  .dim-input-wrap{display:flex;align-items:center;gap:3px;background:rgba(255,250,245,.96);border:1px solid #b85c2e;border-radius:8px;box-shadow:0 2px 7px rgba(68,40,22,.12);height:28px;padding:2px 6px;box-sizing:border-box;font-family:Inter,Segoe UI,sans-serif;color:#5f311c}
  .dim-input-wrap .dim-prefix{font-size:10px;font-weight:900;white-space:nowrap}
  .dim-input-wrap .dim-unit{font-size:10px;font-weight:800;white-space:nowrap}
  .dim-input-wrap input{width:54px;height:22px;border:0;background:transparent;padding:0 2px;font-size:12px;font-weight:900;color:#1c1917;font-family:JetBrains Mono,monospace;outline:none;text-align:center}
  .dim-input-wrap input::-webkit-outer-spin-button,.dim-input-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
  #outlineGuide .ol-changemethod{margin-top:10px;background:none;border:none;color:var(--muted);font-size:11.5px;
    cursor:pointer;text-decoration:underline;font-family:inherit;padding:2px 0}
  #outlineGuide .ol-changemethod:hover{color:var(--brick-dark)}


  /* kontekstowy toolbar wg metody (krok Obrys) — domyślnie chowamy narzędzia rysunkowe */
  body.wiz-k-outline.osm-none #tools button[data-tool="outline"],
  body.wiz-k-outline.osm-none #tools button[data-tool="hole"],
  body.wiz-k-outline.osm-none #tools button[data-tool="underlay"],
  body.wiz-k-outline.osm-dimensions #tools button[data-tool="outline"],
  body.wiz-k-outline.osm-dimensions #tools button[data-tool="hole"],
  body.wiz-k-outline.osm-dimensions #tools button[data-tool="underlay"]{display:none}
  body.wiz-k-outline.osm-manual #tools button[data-tool="underlay"]{display:none}

  /* Pasek narzędzi („menu kontekstowe") jest ukryty na ekranie startowym (brak wybranej metody)
     i pojawia się dopiero po wybraniu sposobu utworzenia obrysu z kafelków. */
  body.wiz-k-outline.osm-none #toolToolbar{display:none!important}

  /* ===== MOBILE: Krok 1 (obrys) — minimalny ekran, prowadzi kreator + dolne okienko ===== */
  @media (max-width:900px){
    /* w tym kroku chowamy: pasek narzędzi, listę poszyć, zestawienie kształtek,
       plakietki błędów/ostrzeżeń i podpowiedź narzędzia — wszystko potrzebne jest w okienku */
    body.wiz-k-outline #toolToolbar{display:none!important}
    body.wiz-k-outline #roofTabbar{display:none!important}
    body.wiz-k-outline #schedulePanel{display:none!important}
    body.wiz-k-outline #issueBadges{display:none!important}
    body.wiz-k-outline #toolHint{display:none!important}

    /* wybór metody (osm-none): puste płótno schowane, ekran startowy płynie naturalnie */
    body.wiz-k-outline.osm-none #canvasWrap{height:auto;min-height:0;border-bottom:none;background:none}
    body.wiz-k-outline.osm-none #svgHost{display:none}
    body.wiz-k-outline.osm-none #emptyState.show{position:static;inset:auto;display:flex;pointer-events:auto;padding:10px 8px 4px;align-items:stretch}
    body.wiz-k-outline.osm-none #emptyState .es#osStart{width:auto;max-width:none}
    body.wiz-k-outline.osm-none #zoomCtl,
    body.wiz-k-outline.osm-none #outlineActionBar{display:none!important}
  }
  @media (max-width:600px){
    /* zwarte kafelki metody na wąskim ekranie */
    #emptyState .es#osStart{padding:16px 15px}
    .os-tile{padding:12px 13px}
    .os-tile .os-ic{font-size:21px}
    .os-tile .os-tt{font-size:13px}
    .os-tile .os-td{font-size:11px}
    /* pasek narzędzi: dołóż przycisk Takeoff do spójnego rozmiaru i zmieść w jednym rzędzie */
    #toolToolbar{gap:2px}
    #toolToolbar #btnTakeoff{width:40px;height:40px;min-width:40px}
  }
  /* po wybraniu metody chowamy centralny ekran startowy (kafelki) — nie zasłania płótna/podkładu */
  body.wiz-k-outline.osm-manual #emptyState,
  body.wiz-k-outline.osm-underlay #emptyState,
  body.wiz-k-outline.osm-dimensions #emptyState{display:none!important}

  /* responsywność — małe ekrany */
  @media (max-width:760px){
    #emptyState .es#osStart{max-width:94vw}
    .os-grid{grid-template-columns:1fr}
    .os-tile .os-td{flex:none}
    #outlineActionBar{flex-direction:column;align-items:stretch;gap:8px;bottom:46px;width:94vw}
    #outlineActionBar .oab-r{flex-wrap:wrap;justify-content:flex-end}
    #outlineActionBar .oab-r button{flex:1 1 auto}
    header input#projName{order:2;width:auto;flex:0 1 42%;max-width:46%;min-width:104px;margin:0}
  }

  /* ===== Online-ready project workspace shell ===== */
  #projectWorkspace{position:fixed;inset:0;z-index:2500;background:#f3efe9;color:var(--ink);display:none;overflow:auto}
  body.workspace-home #projectWorkspace{display:block}
  #projectWorkspace *{box-sizing:border-box}
  .ws-shell{min-height:100vh;display:grid;grid-template-columns:320px minmax(0,1fr);background:linear-gradient(90deg,#211c18 0,#211c18 320px,#f3efe9 320px)}
  .ws-rail{padding:20px 18px;color:#f7efe4;border-right:1px solid rgba(255,255,255,.12)}
  body.workspace-home:not(.workspace-board) .ws-shell{display:block;background:#f3efe9}
  body.workspace-home:not(.workspace-board) .ws-rail{display:none}
  body.workspace-home:not(.workspace-board) .ws-main{min-height:100vh}
  .ws-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}
  .ws-brand b{font-size:18px;letter-spacing:.06em}
  .ws-brand span{color:#d87b4a}
  .ws-brand small{display:block;margin-top:3px;color:#b8aa99;font-size:10px;text-transform:uppercase;letter-spacing:.12em}
  .ws-new{width:100%;border:0;border-radius:8px;background:#b85c2e;color:#fff;padding:12px 14px;font-weight:900;cursor:pointer}
  .ws-rail-tools{display:grid;gap:8px;margin-top:14px}
  .ws-rail-tools input,.ws-rail-tools select{width:100%;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.08);color:#f7efe4;padding:0 11px;font:inherit}
  .ws-rail-tools input::placeholder{color:#c4b7a8}
  .ws-rail-tools select option{color:#1f1a16}
  .ws-project-list{display:flex;flex-direction:column;gap:8px;margin-top:18px}
  .ws-project-empty{border:1px dashed rgba(255,255,255,.16);border-radius:8px;padding:12px;color:#c4b7a8;font-size:11.5px;line-height:1.4}
  .ws-project-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);border-radius:8px;padding:11px 12px;transition:border-color .18s ease,background .18s ease}
  .ws-project-item:hover,.ws-project-item.active{border-color:#d87b4a;background:rgba(216,123,74,.16)}
  .ws-project-card{width:100%;text-align:left;border:none;background:transparent;color:#f7efe4;border-radius:0;padding:0;cursor:pointer;min-width:0}
  .ws-project-card b{display:block;font-size:13.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ws-project-card small{display:block;margin-top:5px;color:#c4b7a8;font-size:11px}
  .ws-project-meta{display:block;margin-top:8px;color:#c4b7a8;font-size:11px;font-weight:800}
  .ws-project-fav{width:22px;height:26px;border:0;background:transparent;color:#5e7898;font-size:22px;line-height:1;cursor:pointer;padding:0;margin-top:0}
  .ws-project-fav:hover,.ws-project-fav.active{color:#f2b600}
  .ws-project-menu-wrap{position:relative}
  .ws-project-more{width:40px;height:40px;min-height:40px;border:none;border-radius:8px;background:transparent;color:#f7efe4;font-size:20px;line-height:1;cursor:pointer}
  .ws-project-more:hover,.ws-project-more.open{background:rgba(255,255,255,.12)}
  .ws-project-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:210px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);display:none;z-index:20}
  .ws-project-menu.open{display:block}
  .ws-project-menu label{display:grid;gap:6px;padding:4px 4px 8px;font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  .ws-project-menu select{height:36px;border:1px solid var(--line-2);border-radius:8px;padding:0 10px;font:inherit;color:var(--ink);background:#fff}
  .ws-project-menu button{width:100%;border:none;background:transparent;border-radius:8px;padding:10px 11px;text-align:left;color:var(--ink);font:700 12px/1.2 var(--sans);cursor:pointer}
  .ws-project-menu button:hover{background:#fbf2ea;color:#7b3f22}
  .ws-project-menu button.danger{color:#9a3d22}
  .ws-project-menu button.danger:hover{background:#fff3f0}
  body.workspace-board #projectWorkspace{background:#f6f7f9;color:#1b2a41}
  body.workspace-board .ws-shell{display:block;min-height:100vh;background:#f6f7f9}
  body.workspace-board .ws-main{display:none}
  body.workspace-board .ws-rail{min-height:100vh;padding:10px;color:#1b2a41;border-right:0;background:#f6f7f9;display:grid;grid-template-columns:auto auto minmax(320px,620px) minmax(0,1fr);grid-template-rows:auto auto;gap:6px 10px;align-items:start;align-content:start}
  body.workspace-board .ws-brand{margin:0;align-items:center;color:#1b2a41}
  body.workspace-board .ws-brand b{font-size:20px;letter-spacing:0;font-weight:500}
  body.workspace-board .ws-brand b::before{content:"Projekty";font:500 21px/1 var(--sans)}
  body.workspace-board .ws-brand b,body.workspace-board .ws-brand small{font-size:0}
  body.workspace-board .ws-brand b span{display:none}
  body.workspace-board .ws-brand::after{content:"⚙";font-size:14px;margin-left:8px;color:#26364f}
  body.workspace-board .ws-new{display:none}
  body.workspace-board .ws-rail-tools{position:fixed;left:50%;top:8px;z-index:2555;transform:translateX(-50%);margin:0;display:grid;grid-template-columns:minmax(260px,1fr) 38px;gap:0;width:min(760px,50vw)}
  body.workspace-board .ws-rail-tools input{height:40px;border:1px solid #80b7ca;border-radius:4px 0 0 4px;background:#fff;color:#26364f;padding-left:38px;font-size:14px}
  body.workspace-board .ws-rail-tools::before{content:"⌕";position:absolute;margin:8px 0 0 13px;font-size:23px;line-height:1;color:#26364f;z-index:1}
  body.workspace-board .ws-rail-tools select{height:40px;border:1px solid #80b7ca;border-left:0;border-radius:0 4px 4px 0;background:#fff;color:#26364f;width:38px;padding:0;font-size:0}
  body.workspace-board .ws-rail-tools select option{font-size:13px}
  body.workspace-board .ws-project-list{grid-column:1 / -1;align-self:start;margin-top:6px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(330px,400px);gap:40px;overflow:auto;padding:8px 0 24px}
  body.workspace-board .ws-project-column{display:flex;flex-direction:column;min-width:0}
  body.workspace-board .ws-project-column-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:end;margin-bottom:16px}
  body.workspace-board .ws-project-column-head b{font-size:20px;line-height:1.15;color:#031126;font-weight:750}
  body.workspace-board .ws-stage-add{width:28px;height:28px;border:0;background:transparent;color:#4b5563;font-size:26px;line-height:1;font-weight:850;cursor:pointer;border-radius:4px}
  body.workspace-board .ws-stage-add:hover{background:#e8ebef;color:#031126}
  body.workspace-board .ws-project-column-head .count{grid-column:2;grid-row:2;font-size:16px;color:#031126;font-weight:850;text-align:center;line-height:1}
  body.workspace-board .ws-project-column-head .bar{grid-column:1;grid-row:2;height:16px;background:#d4d6da;margin-right:70px}
  body.workspace-board .ws-project-add-card{border:1px solid #d4d9df;background:#fff;padding:13px 10px 10px;margin-bottom:20px}
  body.workspace-board .ws-project-add-card label{display:grid;gap:9px;font-size:15px;font-weight:800;color:#031126}
  body.workspace-board .ws-project-add-card input{height:34px;border:0;border-bottom:1px solid #008893;padding:0 0 2px;background:#fff;color:#1b2a41;font:400 15px/1 var(--sans);outline:none}
  body.workspace-board .ws-project-add-card input::placeholder{color:#9aa4b2}
  body.workspace-board .ws-project-add-actions{display:flex;align-items:center;gap:10px;margin-top:12px}
  body.workspace-board .ws-project-add-actions button{height:40px;border:0;border-radius:4px;padding:0 13px;font:800 15px/1 var(--sans);cursor:pointer}
  body.workspace-board .ws-project-add-actions .add{background:#7b4a74;color:#fff}
  body.workspace-board .ws-project-add-actions .edit{background:#e1e5ea;color:#1b2a41}
  body.workspace-board .ws-project-add-actions .trash{margin-left:auto;width:40px;padding:0;background:#e1e5ea;color:#1b2a41;font-size:18px}
  body.workspace-board .ws-project-item{position:relative;grid-template-columns:auto minmax(0,1fr) 24px;border:1px solid #d4d9df;border-radius:0;background:#fff;padding:13px 12px 12px 16px;min-height:94px;box-shadow:none}
  body.workspace-board .ws-project-item[draggable="true"]{cursor:grab}
  body.workspace-board .ws-project-item.dragging{opacity:.48;transform:rotate(-1deg);box-shadow:0 18px 34px rgba(17,24,39,.18);cursor:grabbing}
  body.workspace-board .ws-project-column.drag-over{background:rgba(0,136,147,.06);outline:2px dashed rgba(0,136,147,.38);outline-offset:8px}
  body.workspace-board .ws-project-item + .ws-project-item{border-top:0}
  body.workspace-board .ws-project-item.active{border-color:#d4d9df;background:#fff}
  body.workspace-board .ws-project-item:hover{border-color:#aeb6c1;background:#f8fafc}
  body.workspace-board .ws-project-card{color:#1b2a41}
  body.workspace-board .ws-project-card b{font-size:19px;font-weight:650;line-height:1.25}
  body.workspace-board .ws-project-card b::before{content:none}
  body.workspace-board .ws-project-card small{margin-top:7px;color:#5f6f84;font-size:15px}
  body.workspace-board .ws-project-card small::before{content:"♟";margin-right:7px;color:#667}
  body.workspace-board .ws-project-meta{margin-top:22px;color:#008893;font-weight:800;font-size:15px}
  body.workspace-board .ws-project-meta .clock{display:none}
  body.workspace-board .ws-project-menu-wrap{align-self:start;justify-self:end}
  body.workspace-board .ws-project-more{width:18px;height:26px;min-height:26px;border:0;border-radius:3px;background:transparent;color:#1b2a41;font-size:22px;font-weight:800;line-height:1}
  body.workspace-board .ws-project-item .ws-project-more{opacity:0;pointer-events:none;transition:opacity .15s ease,background .15s ease,color .15s ease}
  body.workspace-board .ws-project-item:hover .ws-project-more,
  body.workspace-board .ws-project-item:focus-within .ws-project-more,
  body.workspace-board .ws-project-more.open{opacity:1;pointer-events:auto}
  body.workspace-board .ws-project-more:hover,body.workspace-board .ws-project-more.open{background:transparent;color:#008893}
  body.workspace-board .ws-project-empty{border:1px dashed #cfd5dd;color:#657386;background:#fff;border-radius:0}
  .ws-theme-toggle{display:none;position:fixed;right:18px;top:8px;z-index:2600;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border:1px solid #d6dce5;border-radius:999px;background:#fff;box-shadow:0 8px 24px rgba(18,24,36,.10)}
  body.workspace-home .ws-theme-toggle{display:inline-grid}
  .ws-theme-toggle span{min-width:54px;padding:8px 12px;border-radius:999px;color:#647084;font:850 12px/1 var(--sans);text-align:center}
  .ws-theme-toggle[data-theme="day"] .day,.ws-theme-toggle[data-theme="night"] .night{background:#b85c2e;color:#fff;box-shadow:0 5px 15px rgba(184,92,46,.22)}
  body.theme-night.workspace-home #projectWorkspace,
  body.theme-night.workspace-home .ws-shell,
  body.theme-night.workspace-home:not(.workspace-board) .ws-shell,
  body.theme-night.workspace-home:not(.workspace-board) .ws-main{background:#1b1f2a;color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-panel{background:#252a36;border-color:#3d4454;box-shadow:none}
  body.theme-night.workspace-home:not(.workspace-board) .ws-panel-head{border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) .ws-title h1,
  body.theme-night.workspace-home:not(.workspace-board) .ws-panel-head h2{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-project-tabs{border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) .ws-project-tabs button{background:#303747;color:#dbe3ef}
  body.theme-night.workspace-home:not(.workspace-board) .ws-project-tabs button:hover{border-color:#00a5a7;color:#fff}
  body.theme-night.workspace-home:not(.workspace-board) .ws-project-tabs button.active{background:#00a5a7;border-color:#00a5a7;color:#fff}
  body.theme-night.workspace-home:not(.workspace-board) .ws-files-view{background:#202530;border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) .ws-files-view button{color:#aeb7c7}
  body.theme-night.workspace-home:not(.workspace-board) .ws-files-view button:hover{color:#fff}
  body.theme-night.workspace-home:not(.workspace-board) .ws-files-view button.active{background:#00a5a7;color:#071316;box-shadow:0 8px 18px rgba(0,165,167,.18)}
  body.theme-night.workspace-home:not(.workspace-board) .ws-empty{background:#202530;border-color:#40495d;color:#aeb7c7}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone b{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone .dz-note{color:#dbe3ef}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone .dz-hover{color:#20d3c8}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone:hover,
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone:focus-visible,
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone.drag{border-color:#00a5a7;background:#1f3440;color:#f4f6fb;box-shadow:0 0 0 3px rgba(0,165,167,.16)}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dashboard-card{background:#252a36;border-color:#3d4454;box-shadow:none}
  body.theme-night.workspace-home:not(.workspace-board) .ws-dashboard-card span{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-title p,
  body.theme-night.workspace-home:not(.workspace-board) .ws-panel label,
  body.theme-night.workspace-home:not(.workspace-board) .ws-route span{color:#aeb7c7}
  body.theme-night.workspace-home:not(.workspace-board) .ws-route,
  body.theme-night.workspace-home:not(.workspace-board) .ws-dropzone,
  body.theme-night.workspace-home:not(.workspace-board) .ws-file,
  body.theme-night.workspace-home:not(.workspace-board) .ws-advanced-editor-btn{background:#202530;border-color:#3d4454;color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-name,
  body.theme-night.workspace-home:not(.workspace-board) .ws-file b{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file small,
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-edit .ext{color:#c7d1df}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file:hover{border-color:#5f6b7f;background:#252d3a}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file .ic{background:#171b24;border-color:#3d4454;color:#aeb7c7}
  body.theme-night.workspace-home:not(.workspace-board) .ws-editor-toggle{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-chip{background:#252a36;border-color:#4a5365;color:#dbe3ef}
  body.theme-night.workspace-home:not(.workspace-board) .ws-chip.active{background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-more{background:#252a36;border-color:#4a5365;color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-more:hover,
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-more.open{background:#1f3440;border-color:#00a5a7;color:#20d3c8}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-menu{background:#252a36;border-color:#3d4454;color:#f4f6fb;box-shadow:0 14px 34px rgba(0,0,0,.32)}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-menu button{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-menu button:hover{background:#1f3440;color:#20d3c8}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-menu button.danger{color:#ffb4a8}
  body.theme-night.workspace-home:not(.workspace-board) .ws-file-menu button.danger:hover{background:#3a2630;color:#ffd0ca}
  body.theme-night.workspace-home:not(.workspace-board) textarea,
  body.theme-night.workspace-home:not(.workspace-board) input,
  body.theme-night.workspace-home:not(.workspace-board) select{background:#171b24!important;border-color:#4a5365!important;color:#f4f6fb!important}
  body.theme-night.workspace-board #projectWorkspace,
  body.theme-night.workspace-board .ws-shell,
  body.theme-night.workspace-board .ws-rail{background:#1b1f2a;color:#f4f6fb}
  body.theme-night.workspace-board .global-project-menu button{color:#f4f6fb}
  body.theme-night.workspace-board .global-project-menu button:hover{color:#20d3c8}
  body.theme-night.workspace-board .ws-rail-tools input{background:#171b24;border-color:#40495d;color:#f4f6fb}
  body.theme-night.workspace-board .ws-rail-tools input::placeholder{color:#9aa6ba}
  body.theme-night.workspace-board .ws-rail-tools select{background:#202536;border-color:#40495d;color:#f4f6fb}
  body.theme-night.workspace-board .ws-rail-tools::before{color:#f4f6fb}
  body.theme-night.workspace-board .ws-project-column-head b,
  body.theme-night.workspace-board .ws-project-column-head .count{color:#f4f6fb}
  body.theme-night.workspace-board .ws-project-column-head .bar{background:#414756}
  body.theme-night.workspace-board .ws-stage-add{color:#c4ccda}
  body.theme-night.workspace-board .ws-stage-add:hover{background:#303747;color:#fff}
  body.theme-night.workspace-board .ws-project-item{background:#252a36;border-color:#3d4454}
  body.theme-night.workspace-board .ws-project-item + .ws-project-item{border-top:0}
  body.theme-night.workspace-board .ws-project-item.active{background:#252a36;border-color:#3d4454}
  body.theme-night.workspace-board .ws-project-item:hover{background:#2b3140;border-color:#576176}
  body.theme-night.workspace-board .ws-project-card,
  body.theme-night.workspace-board .ws-project-card:hover,
  body.theme-night.workspace-board .ws-project-card:focus{background:transparent;color:#f4f6fb}
  body.theme-night.workspace-board .ws-project-card b::before{color:#ffd23f}
  body.theme-night.workspace-board .ws-project-fav{color:#8fa0ba}
  body.theme-night.workspace-board .ws-project-fav:hover,
  body.theme-night.workspace-board .ws-project-fav.active{color:#ffd23f}
  body.theme-night.workspace-board .ws-project-card small{color:#aeb7c7}
  body.theme-night.workspace-board .ws-project-card small::before{color:#9aa6ba}
  body.theme-night.workspace-board .ws-project-meta{color:#00d7c6}
  body.theme-night.workspace-board .ws-project-more{color:#e8edf7}
  body.theme-night.workspace-board .ws-project-more:hover,
  body.theme-night.workspace-board .ws-project-more.open{color:#00d7c6}
  body.theme-night.workspace-board .ws-project-empty{background:#202530;border-color:#40495d;color:#aeb7c7}
  body.theme-night.workspace-board .ws-project-add-card,
  body.theme-night.workspace-board .ws-project-menu{background:#252a36;border-color:#3d4454;color:#f4f6fb}
  body.theme-night.workspace-board .ws-project-add-card label,
  body.theme-night.workspace-board .ws-project-menu label{color:#c4ccda}
  body.theme-night.workspace-board .ws-project-add-card input,
  body.theme-night.workspace-board .ws-project-menu select{background:#171b24;color:#f4f6fb;border-color:#4a5365}
  body.theme-night.workspace-board .ws-project-menu button{color:#f4f6fb}
  body.theme-night.workspace-board .ws-project-menu button:hover{background:#303747;color:#20d3c8}
  body.theme-night .ws-theme-toggle{background:#252a36;border-color:#3d4454;box-shadow:0 8px 24px rgba(0,0,0,.28)}
  body.theme-night .ws-theme-toggle span{color:#aeb7c7}
  body.theme-night .ws-theme-toggle[data-theme="night"] .night{background:#00a5a7;color:#071316}
  body.theme-day{
    --brick:#008893;--brick-dark:#006f78;--brick-soft:#e5f4f6;
    --ink:#031126;--ink-soft:#1b2a41;--paper:#f6f7f9;
    --panel:#ffffff;--panel-2:#f7fafc;--line:#d4d9df;--line-2:#c8d0da;
    --muted:#5f6f84;--muted-2:#7d8ba0;--focus:rgba(0,136,147,.22);
    --steel:#2f5f7f;--steel-soft:#e6eef4;
  }
  body.theme-day .ws-theme-toggle[data-theme="day"] .day{background:#008893;color:#fff;box-shadow:0 5px 15px rgba(0,136,147,.22)}
  body.theme-day .ws-files-view{background:#fff;border-color:#d4d9df}
  body.theme-day .ws-files-view button{color:#5f6f84}
  body.theme-day .ws-files-view button.active{background:#008893;color:#fff;box-shadow:0 8px 18px rgba(0,136,147,.18)}
  body.theme-day .ws-dropzone:hover,
  body.theme-day .ws-dropzone:focus-visible,
  body.theme-day .ws-dropzone.drag{border-color:#008893;background:#e5f4f6;color:#006f78;box-shadow:0 0 0 3px rgba(0,136,147,.12)}
  body.theme-day .ws-dropzone .dz-hover{color:#006f78}
  body.theme-day.ws-drag-files::before{background:rgba(229,244,246,.86);box-shadow:inset 0 0 0 4px rgba(0,136,147,.28)}
  body.theme-day.ws-drag-files::after{background:#008893;color:#fff}
  body.theme-day .ws-chip.active{background:#008893;border-color:#008893;color:#fff}
  body.theme-day .ws-mode button.active{border-color:#008893;background:#e5f4f6;box-shadow:inset 0 0 0 1px #008893}
  body.theme-day .ws-underlay-item:hover,
  body.theme-day .ws-underlay-item.active{border-color:#008893;background:#e5f4f6}
  body.theme-day .ws-underlay-item.active{box-shadow:inset 0 0 0 1px rgba(0,136,147,.18)}
  body.theme-day .ws-underlay-item.active .ws-underlay-pick{background:#008893;border-color:#008893;color:#fff}
  body.theme-day .ws-file-more:hover,
  body.theme-day .ws-file-more.open{border-color:#008893;color:#006f78}
  body.theme-day .ws-file-menu button:hover{background:#e5f4f6;color:#006f78}
  body.theme-day.workspace-home #projectWorkspace,
  body.theme-day.workspace-home .ws-shell,
  body.theme-day.workspace-home:not(.workspace-board) .ws-shell,
  body.theme-day.workspace-home:not(.workspace-board) .ws-main{background:#f6f7f9;color:#1b2a41}
  body.theme-day.workspace-home:not(.workspace-board) .global-project-menu button{color:#008893}
  body.theme-day.workspace-home:not(.workspace-board) .ws-panel,
  body.theme-day.workspace-home:not(.workspace-board) .ws-dashboard-card{background:#fff;border-color:#d4d9df;box-shadow:none}
  body.theme-day.workspace-home:not(.workspace-board) .ws-panel-head{border-color:#d4d9df}
  body.theme-day.workspace-home:not(.workspace-board) .ws-route,
  body.theme-day.workspace-home:not(.workspace-board) .ws-dropzone,
  body.theme-day.workspace-home:not(.workspace-board) .ws-file,
  body.theme-day.workspace-home:not(.workspace-board) .ws-advanced-editor-btn{background:#fff;border-color:#d4d9df;color:#1b2a41}
  body.theme-day.workspace-home:not(.workspace-board) textarea,
  body.theme-day.workspace-home:not(.workspace-board) input,
  body.theme-day.workspace-home:not(.workspace-board) select{background:#fff!important;border-color:#c8d0da!important;color:#1b2a41!important}
  body.theme-day:not(.workspace-home){background:#f6f7f9;color:#031126}
  body.theme-day:not(.workspace-home) header{background:#fff;border-bottom-color:#d4d9df;box-shadow:none;color:#031126}
  body.theme-day:not(.workspace-home) #main{background:#f6f7f9}
  body.theme-day:not(.workspace-home) #canvasWrap{background:#f6f7f9}
  body.theme-day:not(.workspace-home) #sidebar{background:transparent;color:#1b2a41}
  body.theme-day:not(.workspace-home) #schedulePanel{background:#f6f7f9;color:#1b2a41}
  body.theme-day:not(.workspace-home) #sidebar .cfg-card,
  body.theme-day:not(.workspace-home) #topModes .appblock,
  body.theme-day:not(.workspace-home) #toolToolbar,
  body.theme-day:not(.workspace-home) #outlineGuide{background:#fff;border-color:#d4d9df;box-shadow:none}
  body.theme-day:not(.workspace-home) .segmented:not(#appSwitch){background:#e5e9ef;border-color:#d4d9df}
  body.theme-day:not(.workspace-home) .segmented:not(#appSwitch) button{color:#1b2a41}
  body.theme-day:not(.workspace-home) #appSwitch{
    background:#eef2f6;
    border-color:#cfd6df;
    box-shadow:0 8px 22px rgba(15,35,55,.08)
  }
  body.theme-day:not(.workspace-home) #appSwitch .seg-thumb{background:#008893}
  body.theme-day:not(.workspace-home) #appSwitch[data-active="roofedit"] .seg-thumb,
  body.theme-day:not(.workspace-home) #appSwitch[data-active="slopes"] .seg-thumb{background:#008893}
  body.theme-day:not(.workspace-home) #appSwitch button{color:#526174}
  body.theme-day:not(.workspace-home) #appSwitch button .mode-sub{color:#66758a;opacity:.95}
  body.theme-day:not(.workspace-home) #appSwitch button .drop-caret{color:#66758a}
  body.theme-day:not(.workspace-home) #appSwitch button:hover{background:#ddeff2;color:#006f78}
  body.theme-day:not(.workspace-home) #appSwitch button.active{color:#fff}
  body.theme-day:not(.workspace-home) #appSwitch button.active .mode-sub,
  body.theme-day:not(.workspace-home) #appSwitch button.active .drop-caret{color:#fff}
  .ws-main{padding:22px clamp(18px,3vw,34px);min-width:0}
  .ws-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;position:relative;min-height:58px}
  .ws-title h1{margin:0;font-size:25px;line-height:1.1}
  .ws-title p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
  .ws-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end;transform:none}
  body.workspace-home .ws-actions{position:fixed;top:6px;right:18px;z-index:40}
  .ws-project-tabs{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 12px;padding:3px 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}
  .ws-project-tabs::-webkit-scrollbar{width:0;height:0;display:none}
  .ws-project-tabs::before,.ws-project-tabs::after{content:"";height:1px;background:#cfd4dc;flex:1 1 96px;min-width:44px}
  .ws-project-tabs button{border:1px solid transparent;border-radius:4px;background:#e5e9ef;color:#1b2a41;padding:6px 10px;min-height:30px;font:850 12px/1 var(--sans);cursor:pointer;white-space:nowrap}
  .ws-project-tabs button:hover{border-color:#9bc8d2;color:#008893}
  .ws-project-tabs button.active{background:#f7fafc;color:#10213a;border-color:#008893}
  .ws-tab-pane{display:none}
  body[data-project-tab="dashboard"] [data-project-tab-panel="dashboard"],
  body[data-project-tab="files"] [data-project-tab-panel="files"],
  body[data-project-tab="docs"] [data-project-tab-panel="docs"],
  body[data-project-tab="takeoff"] [data-project-tab-panel="takeoff"],
  body[data-project-tab="print"] [data-project-tab-panel="print"]{display:block}
  .ws-grid.ws-tab-pane{display:none}
  body[data-project-tab="files"] [data-project-tab-panel="files"].ws-grid{display:grid;grid-template-columns:minmax(0,1fr)}
  .ws-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}
  .ws-dashboard-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;box-shadow:var(--sh-1)}
  .ws-dashboard-card b{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  .ws-dashboard-card span{display:block;margin-top:9px;font-size:22px;font-weight:900;color:var(--ink)}
  .ws-note-panel{margin-top:14px}
  .ws-note-panel #wsNote{min-height:128px;font-size:16px;line-height:1.6;font-weight:650;padding:16px 16px}
  .ws-note-panel #wsNote::placeholder{font-size:15px;font-weight:650}
  .ws-editor-pane{max-width:560px}
  .ws-editor-pane .ws-advanced-editor-btn{box-shadow:none}
  .ws-project-tools{display:grid;gap:10px}
  .ws-project-tools label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  .ws-project-tools select{height:38px;border:1px solid var(--line-2);border-radius:8px;padding:0 10px;font:inherit;color:var(--ink);background:#fff}
  .ws-project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ws-project-actions .ws-btn:last-child{grid-column:1 / -1}
  .ws-btn{border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;font-size:12px;font-weight:850;cursor:pointer}
  .ws-btn:hover{border-color:#b85c2e;color:#7b3f22}
  .ws-btn.primary{background:#b85c2e;border-color:#b85c2e;color:#fff}
  .ws-btn.success{background:#2f8f57;border-color:#2f8f57;color:#fff}
  .ws-btn.success:hover{background:#267549;border-color:#267549;color:#fff}
  .ws-btn.dark{background:#25201c;border-color:#25201c;color:#fff}
  .ws-btn.danger{background:#fff3f0;border-color:#e4b3a5;color:#9a3d22}
  .ws-btn:disabled{opacity:.45;cursor:default}
  .ws-advanced-editor-btn{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);box-shadow:var(--sh-1);padding:13px 15px;font:850 14px/1.15 var(--sans);cursor:pointer;text-align:center}
  .ws-advanced-editor-btn span{display:block}
  .ws-advanced-editor-btn small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:850}
  .ws-advanced-editor-btn:hover{border-color:#b85c2e;color:#7b3f22}
  .ws-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
  .ws-panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh-1);min-width:0}
  .ws-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid var(--line)}
  .ws-panel-head h2{font-size:14px;margin:0}
  .ws-panel-body{padding:14px 15px}
  .ws-form{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:12px}
  .ws-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  .ws-form input,.ws-form select{height:38px;border:1px solid var(--line-2);border-radius:8px;padding:0 10px;font:inherit;color:var(--ink);background:#fff}
  .ws-form textarea{min-height:88px;border:1px solid var(--line-2);border-radius:10px;padding:11px 12px;font:inherit;color:var(--ink);background:#fff;resize:vertical;line-height:1.45}
  .ws-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
  .ws-step{border:1px solid var(--line);border-radius:8px;background:#fbfaf8;padding:10px;min-height:74px}
  .ws-step b{display:flex;align-items:center;gap:7px;font-size:12px}
  .ws-step b::before{content:attr(data-no);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e8ded1;color:#6d5b4b;font-size:11px;font-weight:900}
  .ws-step.done b::before{background:#2f8f54;color:#fff}
  .ws-step.active{border-color:#b85c2e;background:#fff5ee}
  .ws-step p{margin:7px 0 0;color:var(--muted);font-size:11.5px;line-height:1.35}
  .ws-file-list{display:grid;gap:12px}
  .ws-files-toolbar{display:flex;justify-content:flex-end;margin:0 0 12px}
  .ws-files-view{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:#fbfaf8}
  .ws-files-view button{height:32px;min-width:86px;border:none;border-radius:999px;background:transparent;color:#8e8478;font:800 11px/1 var(--sans);cursor:pointer;padding:0 12px}
  .ws-files-view button.active{background:#b85c2e;color:#fff;box-shadow:0 8px 18px rgba(136,62,24,.18)}
  .ws-dropzone{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:96px;border:1px dashed var(--line-2);border-radius:8px;background:#fbfaf8;padding:18px 18px;margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.45;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}
  .ws-dropzone b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:4px;transition:opacity .15s}
  .ws-dropzone .dz-note{transition:opacity .15s}
  .ws-dropzone .dz-hover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#7b3f22;font-size:15px;font-weight:900;opacity:0;transition:opacity .15s;pointer-events:none}
  .ws-dropzone:hover,.ws-dropzone:focus-visible,.ws-dropzone.drag{border-color:#b85c2e;background:#fff5ee;color:#7b3f22;box-shadow:0 0 0 3px rgba(184,92,46,.12)}
  .ws-dropzone:hover b,.ws-dropzone:hover .dz-note,.ws-dropzone:focus-visible b,.ws-dropzone:focus-visible .dz-note,.ws-dropzone.drag b,.ws-dropzone.drag .dz-note{opacity:0}
  .ws-dropzone:hover .dz-hover,.ws-dropzone:focus-visible .dz-hover,.ws-dropzone.drag .dz-hover{opacity:1}
  body.blyskbud-internal-file-dragging .ws-dropzone.drag,
  body.blyskbud-internal-file-dragging .ws-dropzone:hover{border-color:var(--line-2);background:#fbfaf8;color:var(--muted);box-shadow:none}
  body.blyskbud-internal-file-dragging .ws-dropzone b,
  body.blyskbud-internal-file-dragging .ws-dropzone .dz-note{opacity:1}
  body.blyskbud-internal-file-dragging .ws-dropzone .dz-hover{opacity:0!important}
  body.ws-drag-files::before{content:"";position:fixed;inset:0;background:rgba(255,245,238,.82);box-shadow:inset 0 0 0 4px rgba(184,92,46,.28);z-index:3500;pointer-events:none}
  body.ws-drag-files::after{content:"Dodaj pliki";position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;min-width:240px;min-height:88px;padding:18px 28px;border-radius:18px;background:#b85c2e;color:#fff;font-size:28px;font-weight:900;letter-spacing:0;z-index:3501;pointer-events:none;box-shadow:var(--sh-2)}
  .ws-file{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:13px 14px;background:#fbfaf8;cursor:pointer;min-height:86px}
  .ws-file.in-editor{border-color:rgba(0,136,147,.45);background:rgba(0,136,147,.055)}
  .ws-file .ic{width:72px;height:72px;border-radius:10px;background:#efe7dd;color:#7b3f22;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;overflow:hidden;border:1px solid #e3d8ca}
  .ws-file .ic img,.ws-file .ic iframe{width:100%;height:100%;display:block;border:0;background:#fff}
  .ws-file .ic.ic-file{font-size:12px;letter-spacing:.03em}
  .ws-file b{display:block;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ws-file small{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.35}
  .ws-file-main{min-width:0}
  .ws-file-name{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:var(--ink);font:850 14.5px/1.32 var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}
  .ws-file-edit{display:flex;align-items:center;gap:6px;min-width:0}
  .ws-file-edit input{min-width:0;flex:1;height:32px;border:1px solid var(--line-2);border-radius:8px;padding:0 9px;font:inherit;color:var(--ink);background:#fff}
  .ws-file-edit .ext{flex:0 0 auto;color:var(--muted);font-size:11.5px;font-weight:800;white-space:nowrap}
  .ws-file-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .ws-editor-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink);font:900 12px/1 var(--sans);cursor:pointer;padding:0;white-space:nowrap}
  .ws-editor-toggle:disabled{cursor:not-allowed;opacity:.48}
  .ws-editor-switch{position:relative;width:40px;height:22px;border-radius:999px;background:#cdd5df;box-shadow:inset 0 0 0 1px rgba(84,112,143,.24);transition:background .14s ease;flex:0 0 auto}
  .ws-editor-switch:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(15,44,70,.22);transition:transform .14s ease}
  .ws-editor-toggle[aria-checked="true"] .ws-editor-switch{background:#008893}
  .ws-editor-toggle[aria-checked="true"] .ws-editor-switch:after{transform:translateX(18px)}
  .ws-editor-toggle:focus-visible{outline:2px solid #008893;outline-offset:4px;border-radius:8px}
  .ws-chip{border:1px solid var(--line-2);border-radius:999px;background:#fff;padding:8px 12px;font-size:11.5px;font-weight:900;color:#6d5b4b;cursor:pointer}
  .ws-chip.active{background:#b85c2e;border-color:#b85c2e;color:#fff}
  .ws-chip:disabled{cursor:default;opacity:1}
  .ws-empty{border:1px dashed var(--line-2);border-radius:8px;padding:18px;text-align:center;color:var(--muted);font-size:12px;background:#fbfaf8}
  .ws-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ws-mode button{border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:11px 10px;text-align:left;cursor:pointer;color:var(--ink)}
  .ws-mode button.active{border-color:#b85c2e;background:#fff5ee;box-shadow:inset 0 0 0 1px #b85c2e}
  .ws-mode b{display:block;font-size:12.5px}
  .ws-mode span{display:block;margin-top:4px;font-size:11px;color:var(--muted);line-height:1.35}
  .ws-side-stack{display:grid;gap:14px}
  .ws-route-list{display:grid;gap:8px}
  .ws-route{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fbfaf8;padding:10px}
  .ws-route.editor-empty{justify-content:center;padding:14px}
  .ws-route.editor-empty .ws-route-main{display:none}
  .ws-route.editor-empty .ws-btn{width:100%}
  #wsEditorRoute{border:none;background:transparent;padding:0}
  .ws-route-main{min-width:0;display:flex;flex-direction:column;gap:4px}
  .ws-route b{font-size:12px}
  .ws-route span{font-size:11px;color:var(--muted)}
  .ws-route-checks{display:grid;gap:4px;margin-top:4px}
  .ws-route-check{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:#1f6a39}
  .ws-route-check::before{content:"✓";width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e7f4ec;color:#1f6a39;font-size:11px;flex:0 0 18px}
  .ws-takeoff-panel{max-width:760px}
  .ws-takeoff-full{max-width:none}
  .ws-takeoff-panel #wsEditorRoute{min-height:58px}
  .ws-takeoff-panel .ws-route-main{gap:2px}
  .ws-takeoff-panel .ws-route-checks{margin-top:0}
  .ws-takeoff-panel .ws-btn{min-width:190px}
  .ws-takeoff-tabs{margin-bottom:12px}
  #wsTakeoffBody{display:flex;flex-direction:column;gap:11px}
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .tk-group,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .tk-dash,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .tk-note,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-card,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-settings,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-form,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-options,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-preview{background:#202530;border-color:#3d4454;color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-table-wrap,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-list{background:#171b24;border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-table th,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-list-head{background:#303747;border-color:#3d4454;color:#dbe3ef}
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-table td,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-item{border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .est-card b,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .tk-v,
  body.theme-night.workspace-home:not(.workspace-board) #wsTakeoffBody .offer-preview h3{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) [data-project-tab-panel="print"] .ws-panel{background:#252a36;border-color:#3d4454;box-shadow:none;color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) [data-project-tab-panel="print"] .ws-panel-head{background:#252a36;border-color:#3d4454}
  body.theme-night.workspace-home:not(.workspace-board) [data-project-tab-panel="print"] .ws-panel-head h2,
  body.theme-night.workspace-home:not(.workspace-board) [data-project-tab-panel="print"] .po-grp{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) [data-project-tab-panel="print"] .step-tip{background:#202530;border-color:#3d4454;color:#c7d1df}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick button{background:#202530;border-color:#3d4454;color:#f4f6fb;box-shadow:none}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick button:hover{background:#2b3444;border-color:#00a5a7}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick button.active{background:#1f3440;border-color:#00a5a7;box-shadow:inset 0 0 0 1px rgba(0,165,167,.36)}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick .tp-t{color:#f4f6fb}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick .tp-d{color:#c7d1df}
  body.theme-night.workspace-home:not(.workspace-board) #wsStepTmplPick .tp-ic{color:#20d3c8}
  body.theme-night.workspace-home:not(.workspace-board) #wsPrintActions button{background:#202530;border-color:#4a5365;color:#dbe3ef;box-shadow:none}
  body.theme-night.workspace-home:not(.workspace-board) #wsPrintActions button:hover{background:#1f3440;border-color:#00a5a7;color:#20d3c8;filter:none}
  body.theme-night.workspace-home:not(.workspace-board) #wsPrintActions button:not(.sec){background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night.workspace-home:not(.workspace-board) #wsPrintActions button:not(.sec):hover{background:#20d3c8;border-color:#20d3c8;color:#071316}
  body.theme-night.workspace-home:not(.workspace-board) #wsStatPrint{background:#17362f;color:#9af2d5;border:1px solid #245c51}
  .ws-input-hidden{display:none}
  #wsPreview{position:fixed;inset:0;z-index:2600;display:none;align-items:center;justify-content:center;background:rgba(20,16,12,.86);padding:20px}
  #wsPreview.open{display:flex}
  .ws-preview-card{position:relative;width:min(96vw,1400px);height:min(92vh,920px);background:transparent;border:none;border-radius:16px;box-shadow:none;overflow:visible}
  .ws-preview-head{position:fixed;top:14px;right:14px;z-index:2;display:flex;align-items:center;gap:12px;padding:0;border:none;background:transparent}
  .ws-preview-head b{display:none}
  .ws-preview-actions{display:flex;align-items:center;gap:12px}
  .ws-preview-close,.ws-preview-download{width:46px;height:46px;border-radius:999px;border:1px solid rgba(255,255,255,.74);background:rgba(255,255,255,.96);color:#1f1a16;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.18)}
  .ws-preview-download{font-size:20px}
  .ws-preview-nav{position:fixed;top:50%;transform:translateY(-50%);z-index:2;width:54px;height:54px;border-radius:999px;border:1px solid rgba(255,255,255,.74);background:rgba(255,255,255,.96);color:#1f1a16;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.18)}
  .ws-preview-prev{left:18px}
  .ws-preview-next{right:18px}
  .ws-preview-nav:disabled{opacity:.34;cursor:default}
  .ws-preview-body{min-height:0;height:100%;display:flex;align-items:center;justify-content:center}
  .ws-preview-body img,.ws-preview-body iframe{max-width:100%;max-height:100%;border:0;display:block;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.28)}
  .ws-preview-empty{padding:26px 30px;text-align:center;color:#f3ece3;font-size:13px;line-height:1.6;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;backdrop-filter:blur(10px)}
  #wsUnderlayPicker{position:fixed;inset:0;z-index:2750;display:none;align-items:center;justify-content:center;background:rgba(20,16,12,.62);padding:20px}
  #wsUnderlayPicker.open{display:flex}
  .ws-underlay-card{width:min(94vw,760px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-3);overflow:hidden}
  .ws-underlay-note{margin:0 0 14px;color:var(--muted);font-size:12.5px;line-height:1.55}
  .ws-underlay-list{display:grid;gap:10px;max-height:min(54vh,430px);overflow:auto;padding-right:2px}
  .ws-underlay-item{width:100%;display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:20px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fbfaf8;padding:16px 18px;cursor:pointer}
  .ws-underlay-item:hover{border-color:#b85c2e;background:#fff5ee}
  .ws-underlay-item.active{border-color:#b85c2e;background:#fff5ee;box-shadow:inset 0 0 0 1px rgba(184,92,46,.18)}
  .ws-underlay-thumb{width:180px;height:132px;border-radius:12px;background:#efe7dd;color:#7b3f22;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;overflow:hidden;border:1px solid #e3d8ca}
  .ws-underlay-thumb img,.ws-underlay-thumb iframe{width:100%;height:100%;display:block;border:0;background:#fff}
  .ws-underlay-meta{min-width:0}
  .ws-underlay-meta b{display:block;font-size:17px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ws-underlay-meta small{display:block;margin-top:8px;color:var(--muted);font-size:13px;line-height:1.45}
  .ws-underlay-pick{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:#7b3f22;font-size:11.5px;font-weight:900}
  .ws-underlay-item.active .ws-underlay-pick{background:#b85c2e;border-color:#b85c2e;color:#fff}
  body.theme-night #wsUnderlayPicker{background:rgba(6,9,14,.72)}
  body.theme-night .ws-underlay-card{background:#202530;border-color:#3d4454;color:#f4f6fb;box-shadow:0 24px 70px rgba(0,0,0,.46)}
  body.theme-night .ws-underlay-card .ws-confirm-head{background:#252a36;border-color:#3d4454;color:#f4f6fb}
  body.theme-night .ws-underlay-card .ws-confirm-head h3{color:#f4f6fb}
  body.theme-night .ws-underlay-card .ws-confirm-head p,
  body.theme-night .ws-underlay-note{color:#c7d1df}
  body.theme-night .ws-underlay-card .ws-confirm-body{background:#202530}
  body.theme-night .ws-underlay-card .ws-confirm-actions{background:#202530;border-top:1px solid #3d4454}
  body.theme-night .ws-underlay-item{background:#252a36;border-color:#3d4454;color:#f4f6fb}
  body.theme-night .ws-underlay-item:hover{background:#2b3444;border-color:#00a5a7}
  body.theme-night .ws-underlay-item.active{background:#1f3440;border-color:#00a5a7;box-shadow:inset 0 0 0 1px rgba(0,165,167,.32)}
  body.theme-night .ws-underlay-thumb{background:#171b24;border-color:#4a5365;color:#aeb7c7}
  body.theme-night .ws-underlay-meta b{color:#f4f6fb}
  body.theme-night .ws-underlay-meta small{color:#c7d1df}
  body.theme-night .ws-underlay-pick{background:#f4f6fb;border-color:#dbe3ef;color:#7b3f22}
  body.theme-night .ws-underlay-item.active .ws-underlay-pick{background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night .ws-underlay-card .ws-empty{background:#202530;border-color:#4a5365;color:#c7d1df}
  body.theme-night .ws-underlay-card .ws-confirm-close,
  body.theme-night .ws-underlay-card #wsUnderlayCancel{background:#252a36;border-color:#4a5365;color:#f4f6fb}
  body.theme-night .ws-underlay-card .ws-confirm-close:hover,
  body.theme-night .ws-underlay-card #wsUnderlayCancel:hover{background:#1f3440;border-color:#00a5a7;color:#20d3c8}
  body.theme-night .ws-underlay-card #wsUnderlayAdd{background:#00a5a7;border-color:#00a5a7;color:#071316}
  #wsDeleteConfirm{position:fixed;inset:0;z-index:2800;display:none;align-items:center;justify-content:center;background:rgba(20,16,12,.62);padding:20px}
  #wsDeleteConfirm.open{display:flex}
  .ws-confirm-card{width:min(92vw,520px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-3);overflow:hidden}
  .ws-confirm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 14px;border-bottom:1px solid var(--line);background:#fbfaf8}
  .ws-confirm-head h3{margin:0;font-size:20px;line-height:1.2}
  .ws-confirm-head p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
  .ws-confirm-close{width:38px;height:38px;flex:0 0 auto;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
  .ws-confirm-body{padding:18px 20px 8px}
  .ws-confirm-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
  .ws-confirm-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfaf8;font-size:12.5px;color:var(--ink-soft)}
  .ws-confirm-list b{color:var(--ink)}
  .ws-confirm-note{margin:14px 0 0;color:#9a3d22;font-size:12.5px;line-height:1.55}
  .ws-confirm-actions{display:flex;justify-content:flex-end;gap:8px;padding:18px 20px 20px}
  .ws-btn.danger-solid{background:#b5422c;border-color:#b5422c;color:#fff}
  .ws-btn.danger-solid:hover{background:#993824;border-color:#993824;color:#fff}
  .ws-project-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .ws-project-name{min-width:0}
  .ws-project-title-btn{display:block;max-width:100%;padding:0;border:0;background:transparent;color:var(--ink);font:900 25px/1.1 var(--sans);text-align:left;cursor:text}
  .ws-project-title-btn span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ws-project-title-edit input{height:42px;min-width:min(520px,58vw);max-width:min(520px,58vw);border:1px solid var(--line-2);border-radius:10px;padding:0 12px;background:#fff;color:var(--ink);font:900 24px/1 var(--sans)}
  .ws-project-roofs{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#eef7f0;border:1px solid #cfe3d3;color:#1f6a39;font-size:11px;font-weight:800;white-space:nowrap}
  .ws-file-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .ws-file-menu-wrap{position:relative}
  .ws-file-more{width:42px;height:42px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink-soft);font-size:22px;line-height:1;cursor:pointer}
  .ws-file-more:hover,.ws-file-more.open{border-color:#b85c2e;color:#7b3f22}
  .ws-file-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:168px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);display:none;z-index:8}
  .ws-file-menu.open{display:block}
  .ws-file-menu button{width:100%;border:none;background:transparent;border-radius:8px;padding:11px 12px;text-align:left;color:var(--ink);font:750 13px/1.2 var(--sans);cursor:pointer}
  .ws-file-menu button:hover{background:#fbf2ea;color:#7b3f22}
  .ws-file-menu button.danger{color:#9a3d22}
  .ws-file-menu button.danger:hover{background:#fff3f0}
  .ws-file-list.tiles{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
  .ws-file-list.tiles .ws-file{grid-template-columns:1fr;align-items:start;gap:12px;padding:12px}
  .ws-file-list.tiles .ws-file .ic{width:100%;height:200px;border-radius:10px}
  .ws-file-list.tiles .ws-file .ic.ic-file{height:200px;font-size:20px}
  .ws-file-list.tiles .ws-file .ic img,.ws-file-list.tiles .ws-file .ic iframe{object-fit:cover}
  .ws-file-list.tiles .ws-file-main{width:100%}
  .ws-file-list.tiles .ws-file-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ws-file-list.tiles .ws-file-actions{width:100%;justify-content:flex-start}
  .ws-file-list.tiles .ws-file-menu-wrap{margin-left:auto}
  #wsBackToProjects{display:none}
  .global-project-menu{position:fixed;left:24px;top:10px;z-index:2550;min-width:236px;width:360px;max-width:calc(100vw - 276px);height:62px;color:#10213a;font-family:var(--sans);line-height:1.15;pointer-events:auto;display:flex;align-items:center;background:transparent;border:0;padding:0}
  .global-project-menu .gpm-line{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:24px 32px;align-items:center;min-width:0;width:100%;font-weight:900;color:#008a94;white-space:nowrap;line-height:1}
  .global-project-menu button{border:0;background:transparent;padding:0;color:#008a94;font:900 13px/1 var(--sans);cursor:pointer;min-width:0}
  .global-project-menu button:hover{text-decoration:none}
  .global-project-menu #gpmProjects{grid-column:1;grid-row:1;display:inline-flex;align-items:center;justify-self:start;gap:7px;min-height:24px;padding:0 9px;border:1px solid rgba(0,152,163,.26);border-radius:8px;background:rgba(0,152,163,.1);color:#008a94;font-size:12px;font-weight:900;max-width:100%}
  .global-project-menu #gpmProjects::before{content:"";display:inline-block;width:14px;height:10px;border:2px solid currentColor;border-top-width:5px;border-radius:3px;opacity:.9}
  .global-project-menu .gpm-project{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .global-project-menu #gpmProjectName{grid-column:1;grid-row:2;color:#10213a;font-size:20px;font-weight:780;line-height:1.05;text-align:left}
  .global-project-menu .gpm-sep,
  .global-project-menu #gpmViewName,
  .global-project-menu #gpmViewSep{display:none!important}
  .global-project-menu .gpm-more{display:none!important}
  .global-project-menu .gpm-gear{display:none!important}
  .global-project-menu .gpm-sub{display:none!important}
  .global-editor-tabs{display:none;position:fixed;left:408px;right:104px;top:18px;z-index:2540;margin:0;padding:4px;height:48px;border:1px solid rgba(148,163,184,.36);border-radius:8px;background:rgba(255,255,255,.88);box-shadow:0 16px 36px rgba(15,23,42,.09);backdrop-filter:saturate(150%) blur(14px)}
  body.workspace-home:not(.workspace-board) #wsProjectTabs{position:fixed;left:40px;right:40px;top:52px;z-index:2540;margin:0;padding:0}
  body.project-shell-route.workspace-home:not(.workspace-board) #wsProjectTabs{display:none!important}
  body:not(.workspace-home) .global-editor-tabs,
  body.project-shell-route .global-editor-tabs{display:flex}
  body:not(.workspace-home) .global-editor-tabs button[data-project-tab="basic"],
  body:not(.workspace-home) .global-editor-tabs button[data-project-tab="advanced"]{display:inline-flex}
  #globalThemeToggle,#wsThemeToggle,.global-theme-toggle{display:none!important}
  body.theme-night:not(.workspace-home) .global-editor-tabs{border-color:#3d4454}
  body.theme-night:not(.workspace-home) .global-editor-tabs button{background:#303747;color:#dbe3ef}
  body.theme-night:not(.workspace-home) .global-editor-tabs button:hover{border-color:#00a5a7;color:#fff}
  body.theme-night:not(.workspace-home) .global-editor-tabs button.active{background:#00a5a7;border-color:#00a5a7;color:#fff}
  body.theme-night:not(.workspace-home){
    --brick:#00a5a7;
    --brick-dark:#20d3c8;
    --brick-soft:#1f3440;
    --ink:#f4f6fb;
    --ink-soft:#dbe3ef;
    --paper:#171b24;
    --panel:#252a36;
    --panel-2:#202530;
    --line:#3d4454;
    --line-2:#4a5365;
    --muted:#aeb7c7;
    --muted-2:#8793a8;
    --steel:#00a5a7;
    --steel-soft:#1f3440;
    --focus:rgba(0,165,167,.28);
    --sh-1:none;
    --sh-2:0 10px 30px rgba(0,0,0,.22);
    --sh-3:0 18px 46px rgba(0,0,0,.34);
    background:#171b24;
    color:#f4f6fb;
  }
  body.theme-night #wsUnderlayPicker{background:rgba(6,9,14,.76)}
  body.theme-night #wsUnderlayPicker .ws-underlay-card{background:#202530!important;border-color:#3d4454!important;color:#f4f6fb!important;box-shadow:0 24px 70px rgba(0,0,0,.46)!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-head{background:#252a36!important;border-bottom-color:#3d4454!important;color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-head h3{color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-head p,
  body.theme-night #wsUnderlayPicker .ws-underlay-note{color:#c7d1df!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-body,
  body.theme-night #wsUnderlayPicker .ws-confirm-actions{background:#202530!important;color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-actions{border-top:1px solid #3d4454!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-item{background:#252a36!important;border-color:#3d4454!important;color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-item:hover{background:#2b3444!important;border-color:#00a5a7!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-item.active{background:#1f3440!important;border-color:#00a5a7!important;box-shadow:inset 0 0 0 1px rgba(0,165,167,.32)!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-thumb{background:#171b24!important;border-color:#4a5365!important;color:#aeb7c7!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-meta b{color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-meta small{color:#c7d1df!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-pick{background:#f4f6fb!important;border-color:#dbe3ef!important;color:#7b3f22!important}
  body.theme-night #wsUnderlayPicker .ws-underlay-item.active .ws-underlay-pick{background:#00a5a7!important;border-color:#00a5a7!important;color:#071316!important}
  body.theme-night #wsUnderlayPicker .ws-empty{background:#202530!important;border-color:#4a5365!important;color:#c7d1df!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-close,
  body.theme-night #wsUnderlayPicker #wsUnderlayCancel{background:#252a36!important;border-color:#4a5365!important;color:#f4f6fb!important}
  body.theme-night #wsUnderlayPicker .ws-confirm-close:hover,
  body.theme-night #wsUnderlayPicker #wsUnderlayCancel:hover{background:#1f3440!important;border-color:#00a5a7!important;color:#20d3c8!important}
  body.theme-night #wsUnderlayPicker #wsUnderlayAdd{background:#00a5a7!important;border-color:#00a5a7!important;color:#071316!important}
  body.theme-night:not(.workspace-home) header,
  body.theme-night:not(.workspace-home) #main,
  body.theme-night:not(.workspace-home) #sidebar,
  body.theme-night:not(.workspace-home) #schedulePanel{background:#171b24;color:#f4f6fb;border-color:#3d4454;box-shadow:none}
  body.theme-night:not(.workspace-home) header{border-bottom-color:#303747}
  body.theme-night:not(.workspace-home) #main,
  body.theme-night:not(.workspace-home) #canvasWrap{background:#171b24}
  body.theme-night:not(.workspace-home) #sidebar{background:transparent}
  body.theme-night:not(.workspace-home) #svgHost svg{background:#171b24!important}
  body.theme-night:not(.workspace-home) #svgHost.has-pdf-underlay>svg{background:transparent!important}
  body.theme-night:not(.workspace-home) #svgHost.has-cad-underlay>svg{background:transparent!important}
  body.theme-night:not(.workspace-home) #svgHost svg > g:first-child line{stroke:#303747!important}
  body.theme-night:not(.workspace-home) .global-project-menu{background:transparent;border-bottom-color:transparent;color:#dbe3ef}
  body.theme-night:not(.workspace-home) .global-project-menu button{color:#dbe3ef}
  body.theme-night:not(.workspace-home) .global-project-menu button:hover{color:#20d3c8}
  body.theme-night:not(.workspace-home) .global-project-menu .gpm-sep,
  body.theme-night:not(.workspace-home) .global-project-menu .gpm-gear{color:#dbe3ef}
  body.theme-night:not(.workspace-home) .ws-project-tabs::before,
  body.theme-night:not(.workspace-home) .ws-project-tabs::after{background:#3d4454}
  body.theme-night:not(.workspace-home) #toolToolbar,
  body.theme-night:not(.workspace-home) #sidebar .cfg-card,
  body.theme-night:not(.workspace-home) #topModes .appblock,
  body.theme-night:not(.workspace-home) #outlineGuide,
  body.theme-night:not(.workspace-home) #zoomCtl,
  body.theme-night:not(.workspace-home) #panelToggle,
  body.theme-night:not(.workspace-home) #toolToolbar .menu,
  body.theme-night:not(.workspace-home) #emptyState .es,
  body.theme-night:not(.workspace-home) .subpanel,
  body.theme-night:not(.workspace-home) .rdy-sum,
  body.theme-night:not(.workspace-home) .tmpl-pick button,
  body.theme-night:not(.workspace-home) .roof-item,
  body.theme-night:not(.workspace-home) #roofTabMenu,
  body.theme-night:not(.workspace-home) #outlineActionBar{background:#252a36;border-color:#3d4454;color:#f4f6fb;box-shadow:0 10px 30px rgba(0,0,0,.22)}
  body.theme-night:not(.workspace-home) #tools #holeModePop{background:#252a36;border-color:#3d4454;color:#f4f6fb;box-shadow:0 10px 30px rgba(0,0,0,.22)}
  body.theme-night:not(.workspace-home) #tools #holeModePop .pop-h{border-color:#3d4454;color:#aeb7c7}
  body.theme-night:not(.workspace-home) #tools #holeModePop button{color:#f4f6fb}
  body.theme-night:not(.workspace-home) #tools #holeModePop button .ext{color:#aeb7c7;border-color:#4a5365}
  body.theme-night:not(.workspace-home) #sidebar .cfg-head,
  body.theme-night:not(.workspace-home) .wiz-nav,
  body.theme-night:not(.workspace-home) #toolToolbar .menu .pop-h,
  body.theme-night:not(.workspace-home) .rdy-sum .rdy-hd,
  body.theme-night:not(.workspace-home) .ws-project-tabs,
  body.theme-night:not(.workspace-home) .railsep{border-color:#3d4454}
  body.theme-night:not(.workspace-home) .railsep{background:#3d4454}
  body.theme-night:not(.workspace-home) #sidebar .cfg-head,
  body.theme-night:not(.workspace-home) #sidebar .cfg-head .ic,
  body.theme-night:not(.workspace-home) .wiz-kick,
  body.theme-night:not(.workspace-home) .wiz-step.active,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-method,
  body.theme-night:not(.workspace-home) .os-kick,
  body.theme-night:not(.workspace-home) .modeHead,
  body.theme-night:not(.workspace-home) #panelToggle:hover span{color:#20d3c8}
  body.theme-night:not(.workspace-home) .wiz-roof,
  body.theme-night:not(.workspace-home) #wizChecklist .wc-item.cur,
  body.theme-night:not(.workspace-home) .step-tip,
  body.theme-night:not(.workspace-home) .step-ask,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-pick,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-step .n,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-underlay-controls,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-draw-controls,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-valid,
  body.theme-night:not(.workspace-home) #outlineGuide .dim-canvas-note,
  body.theme-night:not(.workspace-home) .chk-line,
  body.theme-night:not(.workspace-home) .rdy-row:hover,
  body.theme-night:not(.workspace-home) .struct-item,
  body.theme-night:not(.workspace-home) .pp-item,
  body.theme-night:not(.workspace-home) .callout,
  body.theme-night:not(.workspace-home) .infocard{background:#202530;border-color:#3d4454;color:#dbe3ef}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-pick b,
  body.theme-night:not(.workspace-home) .wiz-roof b,
  body.theme-night:not(.workspace-home) .subpanel-hd,
  body.theme-night:not(.workspace-home) .step-ask .sa-q,
  body.theme-night:not(.workspace-home) .infocard b{color:#20d3c8}
  body.theme-night:not(.workspace-home) .wiz-step .wiz-dot{background:#3d4454;color:#aeb7c7}
  body.theme-night:not(.workspace-home) .wiz-step.active .wiz-dot,
  body.theme-night:not(.workspace-home) .wiz-step.done.active .wiz-dot{background:#00a5a7;color:#071316;box-shadow:0 0 0 4px rgba(0,165,167,.22),0 8px 18px rgba(0,0,0,.28)}
  body.theme-night:not(.workspace-home) .wiz-rail-ind,
  body.theme-night:not(.workspace-home) #appSwitch .seg-thumb,
  body.theme-night:not(.workspace-home) .segmented:not(#appSwitch) button.active,
  body.theme-night:not(.workspace-home) #modeSwitch::before,
  body.theme-night:not(.workspace-home) #slopeViewSwitch::before{background:#00a5a7}
  body.theme-night:not(.workspace-home) #appSwitch{background:#202530;border-color:#3d4454}
  body.theme-night:not(.workspace-home) #appSwitch button{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #appSwitch button:hover,
  body.theme-night:not(.workspace-home) #appSwitch button.active{color:#fff}
  body.theme-night:not(.workspace-home) .segmented:not(#appSwitch),
  body.theme-night:not(.workspace-home) #modeSwitch,
  body.theme-night:not(.workspace-home) #slopeViewSwitch{background:#202530;border-color:#3d4454}
  body.theme-night:not(.workspace-home) .segmented:not(#appSwitch) button,
  body.theme-night:not(.workspace-home) #modeSwitch button,
  body.theme-night:not(.workspace-home) #slopeViewSwitch button{color:#aeb7c7}
  body.theme-night:not(.workspace-home) .segmented:not(#appSwitch) button.active,
  body.theme-night:not(.workspace-home) #modeSwitch button.active,
  body.theme-night:not(.workspace-home) #slopeViewSwitch button.active{color:#071316}
  body.theme-night:not(.workspace-home) button:not(.primary):not(.danger):not(.active),
  body.theme-night:not(.workspace-home) .step-cta button.sec,
  body.theme-night:not(.workspace-home) #outlineGuide .ol-cta button.sec,
  body.theme-night:not(.workspace-home) #outlineActionBar button:not(.primary):not(.danger){background:#202530;border-color:#4a5365;color:#dbe3ef}
  body.theme-night:not(.workspace-home) button:not(.primary):not(.danger):not(.active):hover,
  body.theme-night:not(.workspace-home) #tools button:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnUndo:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnRedo:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnHelp:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnLayers:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnExport:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnLoad:hover,
  body.theme-night:not(.workspace-home) #toolToolbar #btnUnderlayMenu:hover{background:#1f3440;border-color:#00a5a7;color:#20d3c8}
  body.theme-night:not(.workspace-home) button.primary,
  body.theme-night:not(.workspace-home) .btn-action,
  body.theme-night:not(.workspace-home) .btn-done,
  body.theme-night:not(.workspace-home) .step-cta button:not(.sec),
  body.theme-night:not(.workspace-home) #outlineGuide .ol-cta button:not(.sec):not(.danger),
  body.theme-night:not(.workspace-home) #outlineGuide .ol-draw-controls button.primary,
  body.theme-night:not(.workspace-home) #outlineActionBar button.primary{background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-success{background:#12322f;border-color:#1c6d66;color:#dffaf7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-success .sh{color:#5ff0df}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-success .sm .sc{background:#202530;border-color:#3d4454}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-success .sm .sc .n{color:#f4f6fb}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-success .sm .sc .k{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roofs{background:#173733;border-color:#1c6d66}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roofs .or-head{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof{background:#202530;border-color:#3d4454;color:#f4f6fb}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof:hover{background:#1f3440;border-color:#00a5a7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof.active{background:#103b3f;border-color:#00a5a7;box-shadow:inset 0 0 0 1px rgba(0,165,167,.22)}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-main{color:#f4f6fb}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-dot{background:#3d4454;color:#dbe3ef}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof.active .or-dot{background:#00a5a7;color:#071316}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-meta{color:#aeb7c7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-actions button{background:#151a22;border-color:#3d4454;color:#20d3c8}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-actions button:hover{background:#00a5a7;border-color:#00a5a7;color:#071316}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-actions button.danger{background:#251b1e;border-color:#8b343a;color:#ffb8b8}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-roof .or-actions button.danger:hover{background:#b13c45;border-color:#b13c45;color:#fff}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-add-roof{background:#202530;border-color:#00a5a7;color:#20d3c8}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-add-roof:hover{background:#1f3440}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-cta button.danger{background:#3a2024;border-color:#9f4b4b;color:#ffb2a7}
  body.theme-night:not(.workspace-home) #outlineGuide .ol-cta button.danger:hover{background:#4a262b;border-color:#c35b55;color:#ffd0ca}
  body.theme-night:not(.workspace-home) #tools button.active,
  body.theme-night:not(.workspace-home) #tools #btnHoleMenu.active,
  body.theme-night:not(.workspace-home) #tools #btnDrainageMenu.active,
  body.theme-night:not(.workspace-home) #toolToolbar #btnLayers.active,
  body.theme-night:not(.workspace-home) #toolToolbar #btnExport.active,
  body.theme-night:not(.workspace-home) #toolToolbar #btnUnderlayMenu.active{background:#00a5a7;color:#071316}
  body.theme-night:not(.workspace-home) input,
  body.theme-night:not(.workspace-home) select,
  body.theme-night:not(.workspace-home) textarea{background:#171b24!important;border-color:#4a5365!important;color:#f4f6fb!important}
  body.theme-night:not(.workspace-home) input::placeholder,
  body.theme-night:not(.workspace-home) textarea::placeholder{color:#8793a8}
  body.theme-night:not(.workspace-home) #toolHint,
  body.theme-night:not(.workspace-home) #statusBar,
  body.theme-night:not(.workspace-home) #drawTag{background:rgba(10,13,20,.92);color:#f4f6fb}
  body.theme-night:not(.workspace-home) [data-tip]::after{background:#0f1420;color:#f4f6fb;border:1px solid #3d4454;box-shadow:0 10px 24px rgba(0,0,0,.34)}
  body.theme-night:not(.workspace-home) #windLegend,
  body.theme-night:not(.workspace-home) #fastLegend{background:#252a36;border-color:#3d4454;color:#f4f6fb}
  body.theme-night:not(.workspace-home) .ibadge{background:transparent!important;box-shadow:none!important}
  body.theme-night:not(.workspace-home) .ib-lbl{background:rgba(31,37,52,.92);color:#f4f6fb;box-shadow:0 2px 8px rgba(0,0,0,.26)}
  body.theme-night:not(.workspace-home) #roofTabbar{background:#171b24;border-color:#3d4454}
  body.theme-night:not(.workspace-home) .rt-tab{background:#202530;border-color:#3d4454;color:#dbe3ef}
  body.theme-night:not(.workspace-home) .rt-tab:hover,
  body.theme-night:not(.workspace-home) .rt-tab.active{background:#252a36;border-color:#00a5a7;color:#f4f6fb}
  body.theme-night:not(.workspace-home) .rt-tab .rt-status[data-level="empty"],
  body.theme-night:not(.workspace-home) .rdy-row .rdy-dot[data-level="empty"],
  body.theme-night:not(.workspace-home) #wizChecklist .wc-box{background:#171b24;border-color:#4a5365;color:#8793a8}
  body.workspace-board .global-project-menu .gpm-project,
  body.workspace-board .global-project-menu .gpm-sep,
  body.workspace-board .global-project-menu .gpm-more,
  body.workspace-board .global-project-menu .gpm-gear{display:none}
  body.workspace-board .global-project-menu .gpm-sub{display:none}
  body.workspace-home:not(.workspace-board) .global-project-menu .gpm-view-sep,
  body.workspace-home:not(.workspace-board) .global-project-menu #gpmViewName{display:none}
  body:not(.workspace-home)::before{content:"";position:fixed;left:0;right:0;top:0;height:72px;z-index:2530;pointer-events:none;background:#f6f7f9}
  body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home)::before,
  body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home)::before{height:166px}
  body.theme-night:not(.workspace-home)::before{background:#171b24}
  body:not(.workspace-home) .global-project-menu{color:#10213a}
  body:not(.workspace-home) .global-project-menu .gpm-more{display:none}
  body:not(.workspace-home) .global-project-menu{width:360px;max-width:calc(100vw - 276px)}
  body:not(.workspace-home) .global-project-menu #gpmProjects{display:inline-flex}
  body:not(.workspace-home) .global-project-menu .gpm-view-sep,
  body:not(.workspace-home) .global-project-menu #gpmViewName{display:none!important}
  body:not(.workspace-home) .global-project-menu .gpm-line{grid-template-columns:minmax(0,1fr)}
  body:not(.workspace-home) .global-project-menu .gpm-project{max-width:100%}
  body:not(.workspace-home) .global-project-menu .gpm-sub{font-size:15px;max-width:260px}
  body:not(.workspace-home) header{position:relative;z-index:2532;padding-left:18px;padding-right:18px;margin-top:78px;justify-content:center}
  body:not(.workspace-home):not(.editor-drawing-bar-visible) header{height:0;min-height:0;margin-top:0;padding-top:0;padding-bottom:0;border-bottom:none;overflow:visible}
  body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) header,
  body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) header{margin-top:166px}
  body.project-shell-route:not([data-project-tab="basic"]):not([data-project-tab="advanced"]) #editorDrawingBar{display:none!important}
  body.project-shell-route:not([data-project-tab="basic"]):not([data-project-tab="advanced"]) header{height:0!important;min-height:0!important;margin-top:0!important;padding-top:0!important;padding-bottom:0!important;border-bottom:none!important;overflow:visible!important}
  body.project-shell-route.editor-drawing-bar-visible:not([data-project-tab="basic"]):not([data-project-tab="advanced"])::before{height:72px!important}
  body:not(.workspace-home) .editor-view-switch{margin-left:0}
  body:not(.workspace-home) #estimateMainBtn,
  body:not(.workspace-home) #editorViewSwitch{display:none!important}
  body.workspace-home #workspaceViewSwitch{display:none!important}
  body.projects-module-route .global-project-menu,
  body.projects-module-route .global-editor-tabs,
  body.settings-module-route .global-project-menu,
  body.settings-module-route .global-editor-tabs{display:none!important}
  body.workspace-home:not(.workspace-board) .ws-top{display:none!important}
  body.workspace-board .ws-brand{visibility:hidden}
  body.workspace-board .ws-rail{padding-top:44px}
  body.workspace-home:not(.workspace-board) .ws-main{padding-top:82px}
  @media(max-width:980px){.ws-shell{display:block;background:#f3efe9}.ws-rail{background:#211c18}.ws-grid{grid-template-columns:1fr}.ws-stepper{grid-template-columns:1fr 1fr}}
  @media(max-width:620px){.ws-main{padding:16px 12px}.ws-top{display:block;min-height:0}.ws-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:12px;transform:none;position:static}.ws-form{grid-template-columns:1fr}.ws-project-actions{grid-template-columns:1fr}.ws-stepper{grid-template-columns:1fr}.ws-file{grid-template-columns:36px minmax(0,1fr)}.ws-file-actions{grid-column:1 / -1;justify-content:flex-start}.ws-underlay-item{grid-template-columns:1fr}.ws-underlay-thumb{width:100%;height:220px}.ws-underlay-pick{grid-column:1 / -1;width:100%}.ws-files-toolbar{justify-content:flex-start}.ws-file-list.tiles{grid-template-columns:1fr}.ws-file-list.tiles .ws-file .ic,.ws-file-list.tiles .ws-file .ic.ic-file{height:180px}}

  #editorDrawingBar .edb-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
  #editorDrawingBar .edb-drawings{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
  #editorDrawingBar .edb-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}
  #editorDrawingBar .edb-nav-group,
  #editorDrawingBar .edb-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}

  @media(max-width:720px){
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home),
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home){
      --mobile-editor-top:252px;
      --mobile-editor-bottom:92px;
      overflow-x:hidden;
      overflow-y:auto;
      height:auto;
      min-height:100dvh;
      background:#f6f7f9;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home)::before,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home)::before{height:var(--mobile-editor-top)}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-project-menu,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-project-menu{
      left:12px;
      right:12px;
      top:max(8px,env(safe-area-inset-top));
      width:auto;
      max-width:none;
      min-width:0;
      height:52px;
      z-index:2560;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-project-menu .gpm-line,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-project-menu .gpm-line{
      grid-template-rows:22px 28px;
      min-width:0;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-project-menu #gpmProjects,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-project-menu #gpmProjects{
      min-height:32px;
      padding:0 10px;
      border-radius:999px;
      font-size:12px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-project-menu #gpmProjectName,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-project-menu #gpmProjectName{
      font-size:18px;
      line-height:1.08;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-editor-tabs,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-editor-tabs{
      left:10px;
      right:10px;
      top:66px;
      height:42px;
      padding:3px;
      gap:6px;
      overflow-x:auto;
      overflow-y:hidden;
      justify-content:flex-start;
      border-radius:10px;
      scrollbar-width:none;
      -webkit-overflow-scrolling:touch;
      scroll-snap-type:x proximity;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-editor-tabs::-webkit-scrollbar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-editor-tabs::-webkit-scrollbar{display:none}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .global-editor-tabs button,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .global-editor-tabs button{
      flex:0 0 auto;
      min-height:36px;
      min-width:44px;
      padding:0 13px;
      border-radius:8px;
      font-size:13px;
      scroll-snap-align:start;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #editorDrawingBar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #editorDrawingBar{
      left:8px;
      right:8px;
      top:114px;
      height:auto;
      min-height:50px;
      max-height:calc(100dvh - 132px);
      display:grid;
      grid-template-columns:minmax(0,1fr) 102px;
      align-items:stretch;
      gap:8px;
      padding:8px;
      border-radius:16px;
      border:1px solid #d8dee6;
      background:rgba(255,255,255,.98);
      box-shadow:0 16px 34px rgba(15,23,42,.14);
      overflow:visible;
      box-sizing:border-box;
    }
    #editorDrawingBar .edb-main{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      grid-template-rows:48px 66px;
      gap:6px;
      min-width:0;
      align-items:stretch;
    }
    #editorDrawingBar .edb-module{
      min-width:0;
      max-width:none;
      flex:auto;
      width:100%;
    }
    #editorDrawingBar .edb-module-toggle{
      height:48px;
      min-height:48px;
      grid-template-columns:36px minmax(0,1fr) 16px;
      gap:9px;
      border-radius:14px;
      padding:6px 11px 6px 8px;
      border-color:#d4dce5;
      background:#f8fbfc;
      box-shadow:none;
    }
    #editorDrawingBar .edb-module-icon{
      width:36px;
      height:36px;
      border-radius:12px;
      font-size:17px;
    }
    #editorDrawingBar .edb-module-copy{gap:3px}
    #editorDrawingBar .edb-module-copy small{
      font-size:9px;
      letter-spacing:.08em;
      line-height:1;
    }
    #editorDrawingBar .edb-module-copy b{
      font-size:14px;
      line-height:1.05;
    }
    #editorDrawingBar .edb-module-menu{
      position:fixed;
      left:10px;
      right:10px;
      top:auto;
      bottom:calc(var(--mobile-editor-bottom) + env(safe-area-inset-bottom));
      width:auto;
      max-height:min(58dvh,430px);
      overflow:auto;
      border-radius:14px;
      z-index:2620;
      padding:8px;
    }
    #editorDrawingBar .edb-module-option{
      min-height:52px;
      border-radius:10px;
    }
    #editorDrawingBar .edb-drawings{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      grid-template-rows:12px 50px;
      gap:4px;
      align-items:stretch;
      min-width:0;
      overflow:hidden;
    }
    #editorDrawingBar .edb-title{
      display:flex;
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      min-width:0;
      gap:8px;
      padding:0 2px;
    }
    #editorDrawingBar .edb-title b{
      font-size:10px;
      line-height:1;
      text-transform:uppercase;
      letter-spacing:.08em;
      color:#536073;
    }
    #editorDrawingBar .edb-title span{
      font-size:10px;
      line-height:1;
      color:#6b7688;
      font-weight:800;
      white-space:nowrap;
    }
    #editorDrawingBar .edb-tabs{
      gap:8px;
      height:50px;
      padding:0;
      min-width:0;
      max-width:100%;
      overflow-x:auto;
      overflow-y:hidden;
      scrollbar-width:none;
      -webkit-overflow-scrolling:touch;
      scroll-snap-type:x mandatory;
      scroll-padding-inline:0;
    }
    #editorDrawingBar .edb-tabs::-webkit-scrollbar{display:none}
    #editorDrawingBar .edb-tab-wrap{
      flex:0 0 100%;
      min-width:100%;
      max-width:100%;
      scroll-snap-align:center;
    }
    #editorDrawingBar .edb-tab{
      width:100%;
      height:50px;
      min-height:50px;
      min-width:0;
      max-width:none;
      grid-template-columns:42px minmax(0,1fr);
      gap:8px;
      padding:5px 8px;
      border-radius:12px;
      border-color:#d4dce5;
      background:#fff;
      box-shadow:none;
    }
    #editorDrawingBar .edb-tab-wrap.has-pages .edb-tab{
      min-width:0;
      max-width:none;
      padding-right:74px;
    }
    #editorDrawingBar .edb-tab.active{
      border-color:#008f95;
      background:#f7ffff;
      box-shadow:inset 0 0 0 1px rgba(0,143,149,.2),0 8px 18px rgba(15,23,42,.09);
    }
    #editorDrawingBar .edb-thumb{
      width:42px;
      height:34px;
      border-radius:9px;
    }
    #editorDrawingBar .edb-meta{gap:2px}
    #editorDrawingBar .edb-meta b{
      font-size:12.5px;
      line-height:1.08;
    }
    #editorDrawingBar .edb-meta small{font-size:10px;line-height:1}
    #editorDrawingBar .edb-scale-state{
      height:15px;
      font-size:9px;
      padding:0 6px;
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    #editorDrawingBar .edb-page-select{
      right:8px;
      bottom:7px;
      width:64px;
      height:24px;
      font-size:10px;
      min-height:24px;
    }
    #editorDrawingBar .edb-controls{
      display:grid;
      grid-template-columns:48px 48px;
      grid-auto-rows:48px;
      align-content:start;
      gap:6px;
      width:102px;
      min-width:102px;
    }
    #editorDrawingBar .edb-nav-group,
    #editorDrawingBar .edb-actions{display:contents}
    #editorDrawingBar .edb-nav{
      width:48px;
      height:48px;
      border-radius:14px;
      font-size:25px;
      font-weight:900;
    }
    #editorDrawingBar .edb-actions{
      min-width:0;
    }
    #editorDrawingBar .edb-scale{
      height:48px;
      min-width:48px;
      width:48px;
      border-radius:14px;
      align-items:center;
      justify-content:center;
      padding:0;
      font-size:0;
    }
    #editorDrawingBar .edb-scale span,
    #editorDrawingBar .edb-scale small{display:none}
    #editorDrawingBar .edb-scale::before{
      content:"S";
      font:900 18px/1 var(--sans);
    }
    #editorDrawingBar .edb-add{
      width:48px;
      height:48px;
      min-width:48px;
      padding:0;
      border-radius:14px;
      font-size:0;
      position:relative;
    }
    #editorDrawingBar .edb-add::before{
      content:"+";
      font:900 27px/1 var(--sans);
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) header,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) header{
      margin-top:var(--mobile-editor-top);
      height:0;
      min-height:0;
      padding:0;
      border:0;
      overflow:visible;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #main,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #main{
      display:flex;
      flex-direction:column;
      min-height:0;
      background:#f6f7f9;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #canvasWrap,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #canvasWrap{
      order:1;
      height:calc(100dvh - var(--mobile-editor-top) - var(--mobile-editor-bottom));
      min-height:360px;
      border-top:1px solid #d4d9df;
      border-bottom:1px solid #d4d9df;
      background:#f6f7f9;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #svgHost,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #svgHost{
      inset:0 0 48px 0;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #roofTabbar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #roofTabbar{
      height:48px;
      padding:0 8px max(4px,env(safe-area-inset-bottom));
      align-items:center;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #roofTabs,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #roofTabs{
      align-items:center;
      padding-top:0;
      scrollbar-width:none;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #roofTabs::-webkit-scrollbar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #roofTabs::-webkit-scrollbar{display:none}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .rt-tab,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .rt-tab{
      height:38px;
      max-width:172px;
      border-radius:10px;
      border:1px solid var(--line);
      top:0;
      padding:0 8px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .rt-add,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .rt-add,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .rt-tool,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .rt-tool{
      width:44px;
      height:40px;
      margin-top:0;
      border-radius:10px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar{
      position:fixed;
      left:8px;
      right:8px;
      top:auto;
      bottom:max(8px,env(safe-area-inset-bottom));
      transform:none;
      max-width:none;
      z-index:2575;
      display:flex;
      flex-wrap:nowrap;
      justify-content:space-between;
      gap:4px;
      padding:6px;
      border-radius:14px;
      box-shadow:0 18px 42px rgba(15,23,42,.22);
      overflow:visible;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #btnTools,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #btnTools{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      width:48px;
      height:48px;
      min-width:48px;
      padding:0;
      border-radius:12px;
      background:var(--ink);
      color:#fff;
      font-size:18px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools{
      position:fixed;
      left:8px;
      right:8px;
      top:auto;
      bottom:calc(72px + env(safe-area-inset-bottom));
      transform:none;
      width:auto;
      max-width:none;
      max-height:min(58dvh,460px);
      overflow:auto;
      border-radius:14px;
      z-index:2574;
      padding:8px;
      gap:2px;
      box-shadow:0 18px 48px rgba(15,23,42,.24);
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools[hidden],
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools[hidden]{display:none}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools .tool-group,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools .tool-group{
      display:grid;
      grid-template-columns:1fr;
      border-right:0;
      border-bottom:1px solid var(--line);
      min-width:0;
      padding:8px 0;
      gap:4px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools .tool-group:last-of-type,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools .tool-group:last-of-type{border-bottom:0}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools button,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools button,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools #btnHoleMenu,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools #btnHoleMenu,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools #btnDrainageMenu,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools #btnDrainageMenu{
      min-height:48px;
      width:100%;
      justify-content:flex-start;
      padding:0 13px;
      border-radius:10px;
      font-size:18px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #tools button .tl-label,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #tools button .tl-label{
      display:inline;
      font:800 13px/1 var(--sans);
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar .tool-group,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar .tool-group{
      min-width:0;
      padding:0;
      border-right:0;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar .tool-group::before,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar .tool-group::before,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar .railsep,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar .railsep{display:none}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnUndo,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnUndo,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnRedo,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnRedo,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnLoad,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnLoad,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnExport,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnExport,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnLayers,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnLayers,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar #btnUnderlayMenu,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar #btnUnderlayMenu{
      width:48px;
      height:48px;
      min-width:48px;
      border-radius:12px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolToolbar .menu,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolToolbar .menu{
      position:fixed;
      left:8px;
      right:8px;
      top:auto;
      bottom:calc(72px + env(safe-area-inset-bottom));
      transform:none;
      width:auto;
      max-width:none;
      max-height:min(58dvh,460px);
      overflow:auto;
      border-radius:14px;
      z-index:2576;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #zoomCtl,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #zoomCtl{
      top:auto;
      right:10px;
      bottom:58px;
      flex-direction:row;
      border-radius:12px;
      z-index:8;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #zoomCtl button,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #zoomCtl button{
      width:44px;
      height:44px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #zoomCtl button+button,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #zoomCtl button+button{
      border-top:0;
      border-left:1px solid var(--line);
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #issueBadges,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #issueBadges{
      top:10px;
      right:10px;
      bottom:auto;
      gap:10px;
      z-index:8;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .ib-disc,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .ib-disc{
      width:46px;
      height:46px;
      font-size:18px;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) .ib-lbl,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) .ib-lbl{font-size:10px}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #sidebar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #sidebar{
      order:2;
      width:100%;
      max-height:none;
      padding:12px 12px 18px;
      border:0;
      background:#f6f7f9;
    }
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #schedulePanel,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #schedulePanel{
      display:none!important;
    }
    body.has-drawing-legend #legendToggle,
    body.app-wind #legendToggle,
    body.app-fast #legendToggle{
      position:fixed;
      left:10px;
      bottom:calc(82px + env(safe-area-inset-bottom));
      z-index:2576;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      font-size:11px;
      line-height:1;
      background:rgba(255,255,255,.96);
      box-shadow:0 10px 24px rgba(15,23,42,.18);
      backdrop-filter:blur(12px);
    }
    body.app-wind #windLegend,
    body.app-fast #fastLegend{
      position:fixed;
      left:10px;
      right:auto;
      bottom:calc(124px + env(safe-area-inset-bottom));
      z-index:2574;
      width:auto;
      max-width:min(270px,calc(100vw - 20px));
      max-height:min(36dvh,260px);
      box-sizing:border-box;
      overflow:auto;
      pointer-events:auto;
      line-height:1.45;
      -webkit-overflow-scrolling:touch;
    }
    body.app-fast #fastLegend{width:min(270px,calc(100vw - 20px))}
    body.app-wind.legend-collapsed #windLegend,
    body.app-fast.legend-collapsed #fastLegend{display:none}
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #modeBadge,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #modeBadge,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #statusBar,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #statusBar,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #panelToggle,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #panelToggle,
    body.editor-drawing-bar-visible[data-project-tab="advanced"]:not(.workspace-home) #toolHint,
    body.editor-drawing-bar-visible[data-project-tab="basic"]:not(.workspace-home) #toolHint{display:none!important}
  }

  @media(max-width:420px){
    #editorDrawingBar .edb-title span{display:inline}
    #editorDrawingBar .edb-drawings{grid-template-columns:minmax(0,1fr);grid-template-rows:12px 50px}
    #editorDrawingBar .edb-scale small{display:none}
    #editorDrawingBar .edb-scale{align-items:center}
  }
