@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base:#000;--bg-surface:#000;--bg-elevated:#0d0d0d;--bg-active:#ffffff08;--bg-hover:#ffffff0d;--border:#ffffff0d;--border-mid:#ffffff1a;--border-focus:#fff;--text-primary:#fff;--text-muted:#888;--text-sub:#ccc;--accent:#fff;--accent-glow:#ffffff1a;--danger:#ef4444;--success:#34d399;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--sidebar-w:320px;--header-h:70px;--transition:.3s cubic-bezier(.16, 1, .3, 1);--font-serif:"Cormorant Garamond", serif;--font-sans:"Montserrat", sans-serif;--font-inter:"Inter", sans-serif}html,body,#root{background:var(--bg-base);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;overflow:hidden}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:10px}.app-shell{background:var(--bg-base);flex-direction:column;width:100%;height:100vh;display:flex}.desktop-header{background:var(--bg-surface);border-bottom:1px solid var(--border);height:var(--header-h);z-index:30;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 30px;display:flex}.header-right{flex-shrink:0;align-items:center;gap:15px;display:flex}.header-logo{flex-shrink:1;align-items:center;gap:10px;min-width:0;display:flex}.header-logo-img{object-fit:contain;flex-shrink:1;width:auto;max-width:120px;height:22px}.header-logo-icon{color:#000;width:30px;height:30px;box-shadow:0 2px 8px var(--accent-glow);background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:900;display:flex}.spinner-small{border:2px solid #0000001a;border-top-color:#000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-logo-text{color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase;font-size:13px;font-weight:800}.header-logo-sub{color:var(--text-muted);letter-spacing:.3px;font-size:9px;font-weight:500}.header-center{flex:1;align-items:center;gap:0;max-width:420px;margin:0 auto;display:flex}.input-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition);width:100%;display:flex;overflow:hidden}.input-group:focus-within{border-color:var(--accent)}.header-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0 14px;font-family:inherit;font-size:13px}.header-input::placeholder{color:var(--text-muted)}.header-save-btn{color:#000;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;height:38px;transition:all var(--transition);white-space:nowrap;background:#fff;border:none;flex-shrink:0;align-items:center;gap:6px;padding:0 16px;font-family:inherit;font-size:11px;font-weight:700;display:flex}.header-save-btn:hover{background:var(--accent)}.header-user{flex-shrink:0;align-items:center;gap:10px;display:flex}.header-user-info{text-align:right}.header-user-name{color:var(--text-primary);font-size:12px;font-weight:600;line-height:1.2}.header-user-sub{color:var(--text-muted);font-size:10px}.header-logout{color:var(--danger);opacity:.8;font-size:10px;text-decoration:none}.header-logout:hover{opacity:1}.header-avatar{background:linear-gradient(135deg, var(--accent), #818cf8);color:#fff;width:32px;height:32px;box-shadow:0 0 0 2px var(--bg-surface), 0 0 0 3px var(--accent-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.header-avatar-guest{background:var(--bg-elevated);border:1px solid var(--border-mid);width:32px;height:32px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.workspace-container{flex:1;min-height:0;display:flex;overflow:hidden}.workspace-wrap{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-surface);border-right:1px solid var(--border-mid);z-index:20;flex-direction:column;display:flex;overflow:hidden auto;box-shadow:1px 0 #ffffff08}.sidebar-logo{border-bottom:1px solid var(--border);padding:18px 18px 14px}.sidebar-logo h1{color:var(--text-primary);letter-spacing:.3px;font-size:13px;font-weight:800}.sidebar-logo span{color:var(--text-muted);font-size:10.5px;font-weight:500}.sidebar-section{border-bottom:1px solid var(--border);overflow:hidden}.section-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.section-header:hover{background:#ffffff05}.section-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.12em;align-items:center;gap:6px;font-size:9.5px;font-weight:800;display:flex}.section-label-icon{opacity:.6}.section-chevron{color:var(--text-muted);transition:transform var(--transition);flex-shrink:0}.section-chevron.open{transform:rotate(180deg)}.section-body{padding:6px 18px 16px}.tool-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tool-btn{border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-sub);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;font-family:inherit;font-size:11px;font-weight:600;display:flex}.tool-btn:hover{background:var(--bg-hover);border-color:var(--border-mid);color:var(--text-primary);transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.tool-btn-icon{width:32px;height:32px;transition:background var(--transition);background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;display:flex}.tool-btn:hover .tool-btn-icon{background:#ffffff1a}.btn{border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-sub);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:flex}.btn:hover{background:var(--bg-hover);border-color:var(--border-mid);color:var(--text-primary)}.btn-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.btn-danger:hover{border-color:var(--danger);color:var(--danger)}.btn-export-pdf{border-radius:var(--radius-md);color:#1c1400;cursor:pointer;width:100%;transition:all var(--transition);letter-spacing:.2px;background:linear-gradient(135deg,#f59e0b,#fbbf24);border:none;justify-content:center;align-items:center;gap:8px;margin-bottom:8px;padding:13px 16px;font-family:inherit;font-size:13.5px;font-weight:800;display:flex;box-shadow:0 4px 16px #f59e0b59}.btn-export-pdf:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b);transform:translateY(-2px);box-shadow:0 8px 24px #f59e0b73}.btn-export-pdf:active{transform:translateY(0)}.btn-export-email{border-radius:var(--radius-md);width:100%;color:var(--text-primary);border:1px solid var(--border-mid);cursor:pointer;transition:all var(--transition);background:0 0;justify-content:center;align-items:center;gap:8px;margin-bottom:8px;padding:10px 16px;font-family:inherit;font-size:12.5px;font-weight:600;display:flex}.btn-export-email:hover{border-color:var(--accent);background:var(--accent-glow);color:#fff}.btn-export-svg{border-radius:var(--radius-md);width:100%;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);background:0 0;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-export-svg:hover{color:#34d399;background:#34d39912;border-color:#34d39966}.designs-sidebar-list{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.design-card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.design-card:hover{background:var(--bg-elevated);border-color:var(--border-mid)}.design-info{flex:1;min-width:0}.design-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.design-date{color:var(--text-muted);margin-top:2px;font-size:10px}.design-actions{opacity:0;transition:all var(--transition);gap:5px;display:flex;transform:translate(6px)}.design-card:hover .design-actions{opacity:1;transform:translate(0)}.action-icon-btn{border:1px solid var(--border);background:var(--bg-elevated);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);border-radius:6px;justify-content:center;align-items:center;display:flex}.action-icon-btn:hover{color:#fff;background:var(--bg-hover);border-color:var(--border-mid)}.action-icon-btn.delete:hover{background:var(--danger);border-color:var(--danger);color:#fff}.sidebar-footer{color:var(--text-muted);border-top:1px solid var(--border);opacity:.5;text-align:center;letter-spacing:.3px;margin-top:auto;padding:14px 18px;font-size:10px}.no-sel{color:var(--text-muted);text-align:center;padding:16px 0 8px;font-size:11.5px;line-height:1.6}.props-wrap{flex-direction:column;gap:10px;display:flex}.prop-row{flex-direction:column;gap:5px;display:flex}.prop-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.prop-input,.prop-select{background:var(--bg-base);border:1px solid var(--border-mid);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;transition:border-color var(--transition);outline:none;padding:6px 10px;font-family:inherit;font-size:12.5px}.prop-input:focus,.prop-select:focus{border-color:var(--border-focus)}.toggle-row{gap:6px;display:flex}.toggle-btn{border-radius:var(--radius-sm);background:var(--bg-base);border:1px solid var(--border-mid);min-width:36px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);padding:0 10px;font-family:inherit;font-size:13px;font-weight:700}.toggle-btn:hover{border-color:var(--border-focus);color:var(--text-primary)}.toggle-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:#000}.color-row{align-items:center;gap:8px;display:flex}.color-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-mid);cursor:pointer;flex-shrink:0;width:34px;height:34px;overflow:hidden}.color-swatch input[type=color]{cursor:pointer;border:none;width:150%;height:150%;padding:0;transform:translate(-17%,-17%)}.workspace{background:var(--bg-base);border-left:1px solid var(--border);flex:1;position:relative;overflow:hidden}.canvas-header{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;align-items:center;gap:16px;padding:12px 30px;display:flex}.canvas-viewport{justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.btn-export-pdf{border-radius:var(--radius-sm);color:#000;text-transform:uppercase;letter-spacing:.15em;cursor:pointer;width:100%;transition:all var(--transition);background:#fff;border:1px solid #fff;justify-content:center;align-items:center;gap:8px;margin-bottom:8px;padding:14px 16px;font-size:11px;font-weight:700;display:flex}.btn-export-pdf:hover{color:#fff;background:0 0}.tool-btn{border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-muted);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px 8px;font-size:10px;font-weight:600;display:flex}.tool-btn:hover{background:var(--bg-hover);border-color:var(--accent);color:#fff}.tool-btn-icon{opacity:.7;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.canvas-outer{background:#fff;box-shadow:0 0 0 1px #ffffff24,0 20px 60px #000000b3,0 60px 120px #00000080}.canvas-badge{background:var(--bg-surface);border:1px solid var(--border-mid);color:var(--text-muted);letter-spacing:.3px;z-index:5;pointer-events:none;white-space:nowrap;border-radius:20px;padding:4px 14px;font-size:10.5px;font-weight:600;position:absolute;top:14px;left:50%;transform:translate(-50%)}.zoom-hud{background:var(--bg-surface);border:1px solid var(--border-mid);z-index:10;border-radius:10px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 8px 24px #0006}.zoom-hud button{width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.zoom-hud button:hover{background:var(--bg-elevated);color:var(--text-primary)}.zoom-pct{color:var(--text-sub);text-align:center;min-width:44px;padding:0 6px;font-size:11.5px;font-weight:700}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;opacity:0;transition:opacity var(--transition);background:#0009;display:none;position:fixed;inset:0}.sidebar-overlay.open{opacity:1}@media (width<=768px){.sidebar-overlay{pointer-events:none;display:block}.sidebar-overlay.open{pointer-events:auto}.sidebar{z-index:100;height:100%;transition:transform var(--transition);position:fixed;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.desktop-header{padding:0 15px}.header-logo-img{max-width:80px}.header-logo-sub,.header-center{display:none}}.bottom-toolbelt{background:var(--bg-surface);border-top:1px solid var(--border);z-index:40;justify-content:space-around;align-items:center;padding:10px 16px;display:none}.toolbelt-btn{color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;flex-direction:column;align-items:center;gap:5px;padding:8px 12px;display:flex}.toolbelt-btn span{text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:800}.toolbelt-btn:hover{color:#fff}.toolbelt-btn.finish{color:var(--accent)}@media (width<=1024px){.bottom-toolbelt{display:flex}}.refresh-btn{color:var(--accent);cursor:pointer;opacity:.7;transition:opacity var(--transition);background:0 0;border:none;padding:0;font-family:inherit;font-size:10px;font-weight:600}.refresh-btn:hover{opacity:1}.font-picker{width:100%;position:relative}.font-trigger{background:var(--bg-base);border:1px solid var(--border-mid);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition);text-align:left;justify-content:space-between;align-items:center;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;display:flex}.font-trigger:hover{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.font-trigger-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.font-trigger-arrow{color:var(--text-muted);transition:transform var(--transition);flex-shrink:0;margin-left:8px;font-size:14px;display:inline-block}.font-dropdown{z-index:999;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-md);flex-direction:column;width:clamp(240px,100%,260px);max-height:360px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 4px 6px #0000004d,0 20px 50px #0009}.font-search-wrap{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.font-search-icon{color:var(--text-muted);flex-shrink:0}.font-search{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:12.5px}.font-search::placeholder{color:var(--text-muted)}.font-cats{border-bottom:1px solid var(--border);background:var(--bg-base);flex-wrap:wrap;flex-shrink:0;gap:4px;padding:8px 10px;display:flex}.font-cat-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all var(--transition);white-space:nowrap;background:0 0;border-radius:20px;padding:3px 9px;font-family:inherit;font-size:10.5px;font-weight:600}.font-cat-btn:hover{background:var(--bg-elevated);color:var(--text-sub);border-color:var(--border-mid)}.font-cat-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.font-list{flex:1;padding:4px;overflow-y:auto}.font-list::-webkit-scrollbar{width:3px}.font-list::-webkit-scrollbar-track{background:0 0}.font-list::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:10px}.font-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:background var(--transition);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.font-item:hover{background:var(--bg-elevated)}.font-item.selected{background:var(--accent-glow);border:1px solid #6366f14d}.font-item-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;overflow:hidden}.font-item-cat{letter-spacing:.05em;opacity:.85;flex-shrink:0;font-size:9.5px;font-weight:700;font-family:Inter,sans-serif!important}.font-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:12px}.layer-item:hover{background:var(--bg-hover)!important}.sidebar{overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:10px}.sidebar-finish-btn{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;width:auto;margin:16px 18px 24px;padding:16px;font-size:14px;font-weight:800;color:#000!important;background:#fff!important;display:flex!important;box-shadow:0 4px 24px #fff3!important}.sidebar-finish-btn:hover{transform:translateY(-2px);background:#f4f4f5!important;box-shadow:0 8px 32px #ffffff4d!important}.sidebar-finish-btn:active{transform:translateY(0)}.mobile-menu-btn{background:var(--bg-hover);border:1px solid var(--border-mid);color:#fff;border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;margin-right:12px;padding:8px;display:none}.sidebar-overlay{z-index:900;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity var(--transition);pointer-events:none;background:#000000b3;display:none;position:fixed;inset:0}@media (width<=1024px){:root{--sidebar-w:300px;--header-h:60px}.desktop-header{padding:0 16px}.header-user-info,.header-logo-sub{display:none}.mobile-menu-btn{display:flex}.sidebar{transition:transform var(--transition);z-index:1000;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{opacity:1;pointer-events:auto;display:block}.header-center{max-width:none;margin:0 10px}.header-input{padding:0 10px;font-size:12px}}@media (width<=768px){.header-logo-text,.header-save-btn span{display:none}.header-save-btn{padding:0 12px}.modal-content{padding:40px 20px!important}.modal-content h2{font-size:24px!important}.finish-actions-row{flex-direction:column;gap:15px!important}.preview-card{flex:100%!important}}@media (width<=600px){.inquiry-form-grid{grid-template-columns:1fr!important}.finish-preview-wrap{padding:30px 20px!important}.finish-tabs{flex-wrap:wrap;justify-content:center}}

/* trubini fix: bočný panel scroll (inner sa nesmie zmršťovať) */
.sidebar-inner{flex-shrink:0}

/* ===== MOBILE EDITOR FIXES (2026-05-26) ============================
 * 1) Horné taby stien (Přední / Boční pravá / Zadní / Boční levá)
 *    sú 4 tlačidlá v `.canvas-header > div`. Na telefóne sa nezmestia
 *    do šírky a doteraz sa nedali horizontálne posúvať → 4. stena
 *    bola nedostupná. Pridáme horizontálny scroll na lište.
 *
 * 2) Spodný panel `.bottom-toolbelt` (PRVKY + DOKONČIT) bol mimo
 *    viditeľnej oblasti na iOS Safari, lebo `.app-shell` má `100vh`
 *    a URL bar zmenšuje viditeľnú plochu. Použijeme `100dvh`
 *    (dynamic viewport height) — fitne presne do toho, čo užívateľ
 *    naozaj vidí.
 * ===================================================================*/
@media (width<=1024px) {
  .canvas-header {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 10px 16px;
    gap: 8px;
  }
  .canvas-header::-webkit-scrollbar { height: 3px; }
  .canvas-header > div { flex-shrink: 0; }
  .canvas-header button { flex-shrink: 0; white-space: nowrap; }
}
@supports (height: 100dvh) {
  html, body, #root { height: 100dvh; }
  .app-shell { height: 100dvh; }
}
