/* Zaměřovák — aplikace */
.app-hlava{background:#fff;border-bottom:1px solid var(--linka);position:sticky;top:0;z-index:40}
.app-hlava .obal{display:flex;align-items:center;gap:18px;height:58px;max-width:1600px}
.app-hlava .znacka{font-size:1.02rem}
.app-menu{display:flex;gap:3px;margin-left:14px}
.app-menu a{padding:7px 12px;border-radius:8px;color:var(--sedy);font-size:.92rem;font-weight:550}
.app-menu a:hover{background:var(--pozadi2);text-decoration:none;color:var(--inkoust)}
.app-menu a.aktivni{background:var(--modra-sv);color:var(--modra)}
.app-vpravo{margin-left:auto;display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--modra);color:#fff;display:flex;
  align-items:center;justify-content:center;font-weight:700;font-size:.82rem;cursor:pointer}
.app-obsah{max-width:1600px;margin:0 auto;padding:26px 20px 60px}

.hlaska{background:var(--inkoust);color:#fff;padding:11px 16px;border-radius:10px;margin-bottom:9px;
  font-size:.9rem;box-shadow:var(--stin);transition:opacity .24s,transform .24s;max-width:380px}
.hlaska.chyba{background:var(--cervena)} .hlaska.uspech{background:var(--zelena)}
#hlasky{position:fixed;top:70px;right:18px;z-index:900}

.modal-pozadi{position:fixed;inset:0;background:rgba(15,23,34,.5);display:flex;align-items:center;
  justify-content:center;z-index:1000;padding:20px;backdrop-filter:blur(2px)}
.modal{background:#fff;border-radius:var(--r);padding:24px;max-width:460px;width:100%;box-shadow:var(--stin)}
.modal h3{margin-bottom:14px}
.modal-tl{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}

.dlazdice{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.projekt{background:#fff;border:1px solid var(--linka);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--stin-s);transition:box-shadow .16s,transform .16s;display:block;color:inherit}
.projekt:hover{box-shadow:var(--stin);transform:translateY(-2px);text-decoration:none}
.projekt .obrazek{aspect-ratio:4/3;background:var(--pozadi2);display:flex;align-items:center;
  justify-content:center;color:var(--slaby);font-size:2rem}
.projekt .obrazek img{width:100%;height:100%;object-fit:cover}
.projekt .telo{padding:14px 16px}
.projekt h3{font-size:1rem;margin-bottom:3px}
.projekt .meta{font-size:.82rem;color:var(--slaby)}

.prazdno{text-align:center;padding:70px 20px;color:var(--sedy)}
.prazdno .ik{font-size:2.6rem;margin-bottom:12px;opacity:.5}

/* ---------------- editor ---------------- */
.ed{position:fixed;inset:0;display:grid;grid-template-rows:52px 1fr;background:#20262e;overflow:hidden}
.ed-listva{display:flex;align-items:center;gap:6px;padding:0 12px;background:#161b22;color:#d5dbe3;
  border-bottom:1px solid #2b3440}
.ed-listva .nazev{font-weight:650;font-size:.92rem;color:#fff;margin-right:8px;max-width:280px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-telo{display:grid;grid-template-columns:64px 1fr 330px;overflow:hidden}
.ed-nastroje{background:#161b22;border-right:1px solid #2b3440;padding:10px 0;display:flex;
  flex-direction:column;align-items:center;gap:4px;overflow-y:auto}
.nastroj{width:44px;height:44px;border-radius:10px;border:1px solid transparent;background:transparent;
  color:#9aa7b6;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;font-size:1.15rem}
.nastroj:hover{background:#212a35;color:#fff}
.nastroj.akt{background:var(--modra);color:#fff}
.nastroj .zkratka{position:absolute;bottom:2px;right:4px;font-size:.58rem;opacity:.65}
.ed-platno{position:relative;background:#2a313a;overflow:hidden}
.ed-platno canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}
.ed-panel{background:#fff;border-left:1px solid var(--linka);overflow-y:auto;display:flex;flex-direction:column}
.panel-sekce{padding:14px 16px;border-bottom:1px solid var(--linka)}
.panel-sekce h4{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slaby);margin:0 0 10px}
.souhrn-radek{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:.9rem}
.souhrn-radek b{font-variant-numeric:tabular-nums}
.souhrn-celkem{border-top:1px solid var(--linka);margin-top:8px;padding-top:9px;font-weight:700;color:var(--inkoust)}
.objekt{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;cursor:pointer;font-size:.88rem}
.objekt:hover{background:var(--pozadi2)}
.objekt.vybrany{background:var(--modra-sv);box-shadow:inset 0 0 0 1px #c8d9fd}
.objekt .puntik{width:10px;height:10px;border-radius:3px;flex:0 0 10px}
.objekt .rozmer{margin-left:auto;color:var(--sedy);font-variant-numeric:tabular-nums;font-size:.82rem}
.tl-tuzka{border:none;background:none;cursor:pointer;font-size:.92rem;line-height:1;
  padding:4px 5px;border-radius:6px;color:var(--slaby);flex:0 0 auto}
.objekt:hover .tl-tuzka{color:var(--modra);background:#fff}
.tl-tuzka:hover{background:var(--modra-sv)!important;color:var(--modra-tm)}
.tl-tuzka.akt{color:var(--inkoust)}
.lista-fotek{display:flex;gap:7px;padding:7px 10px;background:#161b22;border-top:1px solid #2b3440;
  overflow-x:auto;position:absolute;bottom:0;left:0;right:0;z-index:5}
.lista-fotek img{height:52px;border-radius:6px;cursor:pointer;border:2px solid transparent;opacity:.62;flex:0 0 auto}
.lista-fotek img:hover{opacity:1}
.lista-fotek img.akt{border-color:var(--modra);opacity:1}
.kvalita{font-size:.78rem;padding:4px 9px;border-radius:99px;font-weight:650}
.kvalita.vyborna{background:var(--zelena-sv);color:#08603a}
.kvalita.dobra{background:var(--modra-sv);color:#12388f}
.kvalita.slabsi{background:var(--oranz-sv);color:#93400a}
.kvalita.zadna{background:var(--cervena-sv);color:#912018}
.kontext{position:fixed;background:#fff;border:1px solid var(--linka);border-radius:10px;
  box-shadow:var(--stin);padding:5px;z-index:800;min-width:220px}
.kontext button{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:none;
  border-radius:7px;cursor:pointer;font-size:.89rem;font-family:inherit;color:var(--inkoust)}
.kontext button:hover{background:var(--pozadi2)}
.kontext button:disabled{color:var(--slaby);cursor:default}
.kontext button:disabled:hover{background:none}
.kontext hr{border:none;border-top:1px solid var(--linka);margin:5px 0}
.ed-napoveda{position:absolute;left:12px;bottom:78px;background:rgba(12,16,21,.86);color:#cfd8e3;
  padding:8px 13px;border-radius:9px;font-size:.82rem;z-index:6;max-width:440px;line-height:1.45}
@media(max-width:1100px){.ed-telo{grid-template-columns:56px 1fr 260px}}
