/* TEK-INW — elementy własne aplikacji (plan, narzędzia, panel znacznika) w szacie rodziny TEKTORIA.
   Rysunek (arkusz PDF / DXF) zostaje biały — znaczniki w mocnych kolorach leżą na białym papierze. */
html{-webkit-text-size-adjust:100%}
body{overscroll-behavior:none}
.btn,.tab,.nb,select,input{touch-action:manipulation}
@media(pointer:coarse){.btn{min-height:44px}.btn.sm{min-height:36px}.x{padding:8px 12px}}

/* plan (od 0.3.1): rysunek zajmuje całą wolną przestrzeń; panel znacznika wysuwa się nad rysunek i chowa,
   gdy wybierasz narzędzie albo dotykasz rysunku; na szerokim ekranie (≥ 1400 px) panel stoi obok jako kolumna */
body[data-view=plan]{overflow:hidden;height:100dvh;display:flex;flex-direction:column}
body[data-view=plan] main{flex:1;min-height:0;padding:0;max-width:none;width:100%}
body[data-view=plan] #view{height:100%}
body[data-view=plan] .topbar{min-height:52px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px}
body[data-view=plan] .brand img{height:38px;width:38px}
body[data-view=plan] .brandcaption{display:none}
body[data-view=plan] .tabsnav{padding:4px 14px 0;max-width:none;width:100%;margin:0} /* w kolumnie flex „margin:auto” ścisnęłoby pasek do środka */
body[data-view=plan] .tab{min-height:36px;padding:6px 12px;font-size:13.5px;border-radius:12px 16px 0 0}
body.pelny[data-view=plan] .topbar,body.pelny[data-view=plan] .tabsnav{display:none}
body.pelny[data-view=plan] .planbar{padding-top:max(6px,env(safe-area-inset-top))}
body.pelny[data-view=plan] .narz{padding-top:max(10px,env(safe-area-inset-top))}
.topbar{padding-top:max(8px,env(safe-area-inset-top))}
.planwrap{display:grid;grid-template-columns:70px minmax(0,1fr);height:100%}
.narz{display:flex;flex-direction:column;gap:3px;padding:8px 5px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}
.nb{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:1px solid transparent;color:var(--muted);border-radius:14px;padding:7px 1px 6px;cursor:pointer;font:800 10.5px/1.15 var(--sans);letter-spacing:-.1px;position:relative}
.nb span{max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}
.nb svg{width:26px;height:26px}
.nb:hover{background:var(--panel-2);color:var(--txt)}
.nb.on{background:rgba(224,123,60,.18);border-color:rgba(224,123,60,.45);color:var(--orange-hi)}
.planmid{display:flex;flex-direction:column;min-width:0;min-height:0}
.planbar{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:6px 10px;background:rgba(17,32,65,.95);border-bottom:1px solid var(--line);position:relative;z-index:8}
.planbar select{width:auto;max-width:230px;min-height:36px;padding:5px 10px;font-size:13.5px;font-weight:700}
.planbar .sep{width:1px;height:24px;background:var(--line-3)}
.planbar .spacer{flex:1}
.planbar .ik{min-width:38px;padding:5px 8px}
.planbar .ik svg{width:19px;height:19px}
.planbar .btn.on{background:rgba(224,123,60,.18);border-color:rgba(224,123,60,.5);color:var(--orange-hi)}
.tg{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none;-webkit-user-select:none}
.tg:hover{color:var(--txt)}
.tg input{width:16px;height:16px}
.wiecej{position:relative}
.planmenu{display:none;position:absolute;right:0;top:calc(100% + 6px);min-width:250px;background:var(--dialog);border:1px solid var(--line-3);border-radius:16px;box-shadow:var(--shadow-2);padding:10px;flex-direction:column;align-items:stretch;gap:8px;z-index:30}
.planmenu.on{display:flex}
.planmenu .tg{padding:6px 4px;font-size:13.5px}
.planstage{position:relative;flex:1;min-height:0;display:flex}
.planhost{position:relative;flex:1;min-width:0;touch-action:none;overflow:hidden;background:#0b1428}
.plan-cv{position:absolute;inset:0;display:block;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.status{position:absolute;left:10px;bottom:10px;max-width:min(680px,calc(100% - 20px));pointer-events:none;background:rgba(13,24,48,.88);border:1px solid var(--line);border-radius:10px;padding:6px 11px;font:13px/1.45 var(--sans);color:var(--txt);white-space:normal;z-index:3} /* podpowiedzi zawijają się w kilka linii — nie są ucinane */
.status:empty{display:none}
.wpis{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:7px 10px;background:var(--dialog);border-top:1px solid var(--line)}
.wpis .hint{flex:1 1 100%;font-size:13.5px;color:var(--muted)}
.wpisPole{flex:1 1 240px;width:auto;font-family:var(--mono);font-size:14px;min-height:38px}
.wpis .seg label{padding:5px 12px}
.panel{position:absolute;top:0;right:0;bottom:0;width:min(370px,92%);z-index:6;background:var(--dialog);border-left:1px solid var(--line-3);box-shadow:-14px 0 34px rgba(0,0,0,.4);overflow-y:auto;padding:14px 16px 28px;-webkit-overflow-scrolling:touch;transform:translateX(104%);transition:transform .2s ease;visibility:hidden}
.panel.on,.panel.lista{transform:none;visibility:visible}
@media(min-width:1400px){.panel{position:relative;transform:none;visibility:visible;width:350px;flex:none;box-shadow:none;background:var(--panel);border-left:1px solid var(--line);transition:none}#btnLista{display:none}}
.panel h2{font-size:19px}
.panel .ph{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:14px}
.panel .ph b{font-family:var(--mono);font-size:19px;font-weight:500}
.panel .ph span{flex:1;font-size:13px;color:var(--muted)}
.panel label.f{margin-bottom:10px}
.wym{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:10px;background:rgba(224,123,60,.08);border:1px solid rgba(224,123,60,.3);border-radius:14px;padding:10px 12px;margin:4px 0 12px}
.wym span{display:block;font-size:11px;font-weight:800;color:var(--orange-hi);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}
.wym b{font-family:var(--mono);font-size:14px;font-weight:500}
.wym input{font-family:var(--mono);font-size:15px;padding:6px 8px;min-height:38px}
.miniatury{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:6px 0}
.mini{position:relative;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--field);aspect-ratio:4/3;cursor:zoom-in}
.mini img{width:100%;height:100%;object-fit:cover;display:block}
.mini span{position:absolute;left:4px;top:4px;background:rgba(13,24,48,.8);color:#fff;font:700 11px var(--sans);padding:0 6px;border-radius:6px}
.wspl .fr{display:flex;gap:6px;align-items:center;margin:4px 0}
.wspl .fr input{font-family:var(--mono);min-height:36px;padding:5px 8px}
.ostatnie{display:grid;gap:2px;margin-top:10px}
.ostatnie .rf{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13.5px;background:none;border:0;border-bottom:1px solid var(--line-2);padding:9px 6px;border-radius:10px;cursor:pointer;color:var(--txt)}
.ostatnie .rf:hover{background:var(--panel-2)}
.ostatnie .rf span{color:var(--muted)}
.ostatnie .rf b{font-family:var(--mono);font-weight:500}
/* węższe ekrany: oszczędzamy miejsce w pasku */
@media(max-width:1280px){body[data-view=plan] .pnazwa,body[data-view=plan] .marka small{display:none}}
@media(max-width:1180px){body[data-view=plan] .marka{display:none}body[data-view=plan] .tab{padding:6px 10px}}
@media(max-width:900px){.planbar select{max-width:170px}}

/* podkłady */
.proj.ark{grid-template-columns:minmax(0,2.2fr) minmax(0,1.4fr) 0 auto;cursor:default}
.proj.ark:hover{transform:none}
.proj.ark.doc::before{background:var(--cyan)}
.arknazwa{font-weight:800;font-size:15.5px;border-color:transparent;background:transparent;padding:4px 8px;margin-left:-8px;min-height:36px}
.arknazwa:hover,.arknazwa:focus{border-color:var(--line);background:var(--field)}
.warstwy,.strony{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:6px 12px;margin:10px 0;background:var(--field)}
.kw{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.25);margin-right:4px;vertical-align:-1px}
/* eksport */
.postep{height:10px;background:var(--field);border:1px solid var(--line-2);border-radius:999px;overflow:hidden;margin-top:14px}
.postep div{height:100%;background:var(--orange);border-radius:999px;transition:width .2s}
.imp-pod{margin-top:14px;padding:14px 16px;border-radius:16px;border:1px solid rgba(130,196,176,.3);background:rgba(130,196,176,.08)}
.imp-pod h3{margin-top:0;color:#bfe8da}
dialog.szeroki{width:min(1200px,96vw)}
.podglad-zdj{background:#050a14;border-radius:14px;display:flex;justify-content:center;margin-bottom:12px}
.podglad-zdj img{max-width:100%;max-height:72vh;display:block;border-radius:10px}
/* komunikaty w kartach (jak „banner” w TEK-BIURO BUDOWY) */
.card.warn{background:rgba(201,167,108,.08);border-color:rgba(201,167,108,.3);border-left:3px solid var(--gold);color:#e6ca96}
.card.warn h2{color:#e6ca96;border-bottom-color:rgba(201,167,108,.3)}
.card.warn b{color:#fff}
.card.ok{background:rgba(130,196,176,.08);border-color:rgba(130,196,176,.3);border-left:3px solid var(--mint);color:#bfe8da}
.card.ok b{color:#fff}
.card.sm{font-size:13.5px;padding:12px 16px;box-shadow:none}
.pokrycie{margin-top:12px}
.pokrycie ul{margin-bottom:0}
.info-doc{background:rgba(34,195,230,.07);border-color:rgba(34,195,230,.26);border-left:3px solid var(--cyan);color:#b7e7f3;margin:12px 0}
.info-doc b{color:#fff}
.about img{height:64px;width:64px}
/* dymek z przyciskiem (np. „Odśwież”, „Cofnij”) przyjmuje stuknięcia */
.toast.show.zakcja{pointer-events:auto;display:flex;align-items:center;gap:12px}
.toast button{font:800 13px var(--sans);background:var(--orange);color:#1e1006;border:none;border-radius:10px;padding:7px 13px;cursor:pointer;touch-action:manipulation}
.toast button.tx{background:transparent;color:#fff;padding:6px 8px;font-size:17px}
/* kolory notatek i znaczników (od 0.4.2) */
.kp{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 1px rgba(0,0,0,.35);vertical-align:middle}
.swatche{display:inline-flex;flex-wrap:wrap;gap:7px;align-items:center}
.sw{width:28px;height:28px;padding:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px rgba(0,0,0,.35);cursor:pointer;touch-action:manipulation}
.sw.on{outline:3px solid var(--cyan);outline-offset:2px}
@media(pointer:coarse){.sw{width:34px;height:34px}.swatche{gap:9px}}
.planmenu.paleta{min-width:0;width:max-content;max-width:300px;gap:10px}
.planmenu.paleta .swatche{max-width:260px}
.planmenu.paleta .hint{margin:0;font-size:12.5px}
.wpis .pisak{display:inline-flex;align-items:center;padding:2px 6px;border-right:1px solid var(--line);margin-right:2px}
.panel .kolorZn{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.panel .kolorZn>span{font-size:13px;font-weight:700;color:var(--muted)}
