@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Syne:wght@700;800&display=swap');

:root {
  --bg:#06080f;--bg-2:#0c0f1a;--bg-3:#111527;
  --surface:rgba(255,255,255,.04);--surface-2:rgba(255,255,255,.07);--surface-3:rgba(255,255,255,.11);
  --border:rgba(255,255,255,.08);--border-2:rgba(255,255,255,.14);
  --accent:#4f8eff;--accent-2:#7b5ef8;--accent-glow:rgba(79,142,255,.35);
  --accent-grad:linear-gradient(135deg,#4f8eff 0%,#7b5ef8 100%);
  --green:#30d158;--green-bg:rgba(48,209,88,.12);
  --red:#ff453a;--red-bg:rgba(255,69,58,.12);
  --orange:#ff9f0a;--orange-bg:rgba(255,159,10,.12);
  --yellow:#ffd60a;
  --text-1:#ffffff;--text-2:rgba(255,255,255,.60);--text-3:rgba(255,255,255,.35);--text-4:rgba(255,255,255,.18);
  --font-display:'Syne','Arial Black',Impact,sans-serif;
  --font:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --r-sm:8px;--r:14px;--r-lg:20px;--r-xl:28px;
  --shadow:0 8px 32px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);
  --shadow-lg:0 24px 64px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.07);
  --shadow-glow:0 0 48px rgba(79,142,255,.35);
  --transition:.2s cubic-bezier(.4,0,.2,1);
  --header-h:64px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text-2);background:var(--bg);min-height:100vh;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 80% 60% at 20% 0%,rgba(79,142,255,.12) 0%,transparent 60%),
             radial-gradient(ellipse 60% 50% at 80% 100%,rgba(123,94,248,.10) 0%,transparent 60%)}
a{color:var(--accent);text-decoration:none;transition:color var(--transition)}
a:hover{color:#fff}
img{max-width:100%;display:block}

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6{font-family:var(--font);font-weight:700;color:var(--text-1);line-height:1.2;letter-spacing:-.02em}
h1{font-size:clamp(28px,5vw,46px);font-weight:800}
h2{font-size:clamp(22px,3.5vw,34px);font-weight:800}
h3{font-size:18px;font-weight:700}
h4{font-size:15px;font-weight:600}

/* LAYOUT */
.container{width:100%;max-width:1140px;margin:0 auto;padding:0 24px;position:relative;z-index:1}
.main{padding-top:var(--header-h);min-height:100vh}
.page-wrap{padding:36px 0 60px}
.page-title{margin-bottom:28px}
.page-title h1{margin-bottom:4px;font-size:clamp(20px,3vw,28px);letter-spacing:-.025em;font-weight:700}
.page-title .sub{color:var(--text-3);font-size:14px}
.two-col{display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);position:relative;overflow:hidden}
.card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 50%);pointer-events:none}
.card-body{padding:24px}
.card-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-header h3{font-size:11px;font-family:var(--font);font-weight:700;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase}
.card-footer{padding:16px 24px;border-top:1px solid var(--border)}
.mb-24{margin-bottom:24px}

/* ── HEADER & NAV ── */
.header{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(6,8,15,.92);border-bottom:1px solid var(--border);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.header-inner{height:64px;display:flex;align-items:center;justify-content:space-between}

.logo{display:flex;align-items:center;gap:10px;font-family:var(--font);font-weight:800;font-size:20px;letter-spacing:-.03em;color:var(--text-1);text-decoration:none;white-space:nowrap;line-height:1}
.logo:hover{color:var(--text-1);text-decoration:none}
.logo-icon{width:32px;height:32px;min-width:32px;border-radius:9px;background:var(--accent-grad);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#fff;box-shadow:0 4px 16px rgba(79,142,255,.4);flex-shrink:0;font-family:Arial,sans-serif}
.logo-text{display:inline-block;min-width:85px;font-family:var(--font);font-weight:800;letter-spacing:-.025em}

.nav{display:flex;align-items:center;gap:2px}
.nav-link{padding:7px 14px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--text-2);text-decoration:none;transition:all var(--transition)}
.nav-link:hover{background:var(--surface-2);color:var(--text-1);text-decoration:none}
.nav-link.active{background:var(--surface-3);color:var(--text-1)}

/* Avatar dropdown – CLICK-BASED (no hover issues) */
.nav-user{position:relative;margin-left:8px}
.nav-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-grad);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;cursor:pointer;border:2px solid transparent;transition:all var(--transition);user-select:none}
.nav-avatar:hover{border-color:var(--accent);box-shadow:0 0 0 4px rgba(79,142,255,.2)}
.nav-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:220px;background:rgba(12,15,26,.97);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:8px;display:none;z-index:300;backdrop-filter:blur(24px)}
.nav-dropdown.open{display:block;animation:dropIn .15s ease}
@keyframes dropIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.nav-dropdown-name{padding:8px 10px 2px;font-weight:700;font-size:14px;color:var(--text-1)}
.nav-dropdown-role{padding:0 10px 8px;font-size:12px;color:var(--text-3)}
.nav-dropdown-divider{height:1px;background:var(--border);margin:4px 0}
.nav-dropdown-item{display:block;padding:9px 10px;font-size:14px;color:var(--text-2);text-decoration:none;border-radius:var(--r-sm);transition:all var(--transition)}
.nav-dropdown-item:hover{background:var(--surface-2);color:var(--text-1);text-decoration:none}
.nav-dropdown-logout{color:var(--red)}
.nav-dropdown-logout:hover{background:var(--red-bg);color:var(--red)}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;border-radius:8px;transition:background var(--transition)}
.hamburger:hover{background:var(--surface-2)}
.hamburger span{display:block;width:22px;height:2px;background:var(--text-2);border-radius:2px;transition:all .3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:640px){.hamburger{display:flex}.nav .nav-link,.nav .btn,.nav-user{display:none}}

/* Mobile nav */
.mobile-nav{display:none;flex-direction:column;padding:12px 16px 16px;border-top:1px solid var(--border);background:rgba(6,8,15,.97)}
.mobile-nav.open{display:flex}
.mobile-nav-link{padding:12px 16px;font-size:15px;font-weight:500;color:var(--text-2);text-decoration:none;border-radius:var(--r-sm);transition:all var(--transition)}
.mobile-nav-link:hover{background:var(--surface-2);color:var(--text-1);text-decoration:none}

/* FOOTER */
.footer{background:rgba(6,8,15,.8);border-top:1px solid var(--border);padding:20px 0;position:relative;z-index:1}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--text-3)}
.footer-links{display:flex;gap:20px}
.footer-links a{color:var(--text-3);font-size:13px;transition:color var(--transition)}
.footer-links a:hover{color:var(--text-1)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:var(--r-sm);font-family:var(--font);font-size:14px;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:all var(--transition);white-space:nowrap;user-select:none;line-height:1.3}
.btn:hover{text-decoration:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent-grad);color:#fff;box-shadow:0 4px 20px rgba(79,142,255,.3)}
.btn-primary:hover{box-shadow:0 6px 28px rgba(79,142,255,.5);filter:brightness(1.1);color:#fff}
.btn-secondary{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-2)}
.btn-secondary:hover{background:var(--surface-3)}
.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border-2)}
.btn-ghost:hover{background:var(--surface-2);color:var(--text-1)}
.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,69,58,.2)}
.btn-danger:hover{background:rgba(255,69,58,.2)}
.btn-success{background:var(--green-bg);color:var(--green);border:1px solid rgba(48,209,88,.2)}
.btn-success:hover{background:rgba(48,209,88,.2)}
.btn-sm{padding:6px 12px;font-size:13px}
.btn-lg{padding:13px 28px;font-size:16px;border-radius:var(--r)}
.btn-full{width:100%}

/* FORMS */
.form-group{margin-bottom:18px}
.form-label{display:block;margin-bottom:7px;font-size:11px;font-weight:700;color:var(--text-3);letter-spacing:.05em;text-transform:uppercase}
.form-input,.form-select,.form-textarea{width:100%;padding:11px 14px;font-family:var(--font);font-size:14px;color:var(--text-1);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);transition:all var(--transition);outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,142,255,.15);background:var(--surface-3)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-4)}
.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='rgba(255,255,255,.3)' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.form-select option{background:#1a1f35;color:#fff}
.form-textarea{resize:vertical;min-height:90px}
.form-error{font-size:12px;color:var(--red);margin-top:5px}
.form-hint{font-size:12px;color:var(--text-3);margin-top:5px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:500px){.form-row{grid-template-columns:1fr}}
.req{color:var(--red)}
.toggle-wrap{display:flex;align-items:center;gap:10px}
.toggle-input{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0}
.toggle-input input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--surface-3);border:1px solid var(--border-2);border-radius:26px;cursor:pointer;transition:all var(--transition)}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:var(--text-3);left:3px;top:3px;transition:all var(--transition)}
.toggle-input input:checked+.toggle-slider{background:rgba(79,142,255,.3);border-color:var(--accent)}
.toggle-input input:checked+.toggle-slider::before{transform:translateX(18px);background:var(--accent)}
.toggle-label{font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;letter-spacing:.03em;border:1px solid}
.badge-blue  {background:rgba(79,142,255,.15);color:var(--accent);border-color:rgba(79,142,255,.25)}
.badge-green {background:var(--green-bg);color:var(--green);border-color:rgba(48,209,88,.2)}
.badge-red   {background:var(--red-bg);color:var(--red);border-color:rgba(255,69,58,.2)}
.badge-orange{background:var(--orange-bg);color:var(--orange);border-color:rgba(255,159,10,.2)}
.badge-gray  {background:var(--surface-2);color:var(--text-3);border-color:var(--border)}
.badge-gold  {background:rgba(255,214,10,.1);color:var(--yellow);border-color:rgba(255,214,10,.2)}
.badge-purple{background:rgba(123,94,248,.15);color:#a78bfa;border-color:rgba(123,94,248,.25)}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:28px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 24px;position:relative;overflow:hidden}
.stat-card::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}
.stat-value{font-family:var(--font);font-size:30px;font-weight:700;line-height:1;background:var(--accent-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}
.stat-label{font-size:11px;color:var(--text-3);margin-top:6px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}

/* TABLES */
.table-wrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--border)}
table.data-table{width:100%;border-collapse:collapse;font-size:14px}
.data-table th{text-align:left;padding:12px 18px;font-size:11px;font-weight:700;color:var(--text-3);background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.06em}
.data-table td{padding:14px 18px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-2)}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:var(--surface)}
.data-table .actions{display:flex;gap:6px;align-items:center}
.search-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.search-bar .form-input{flex:1;min-width:200px}

/* VCARD */
.vcard{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border-2)}
.vcard-wrap{max-width:480px;margin:0 auto}
.vcard-banner{height:160px;position:relative}
.vcard-team-logo-wrap{position:absolute;bottom:10px;right:12px;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:10px;padding:6px 10px;display:flex;align-items:center;justify-content:center;max-width:110px;height:48px}
.vcard-team-logo-wrap img{height:36px;max-width:90px;object-fit:contain;display:block}
.vcard-banner.t-classic  {background:linear-gradient(135deg,#1a2744,#0f4a9e,#4f8eff)}
.vcard-banner.t-ocean    {background:linear-gradient(135deg,#0a2540,#0e6ba8,#00b4d8)}
.vcard-banner.t-slate    {background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}
.vcard-banner.t-forest   {background:linear-gradient(135deg,#0d2818,#1a5c38,#2d9e6b)}
.vcard-banner.t-gold     {background:linear-gradient(135deg,#2d1a00,#7a4500,#d4a017)}
.vcard-banner.t-corporate{background:linear-gradient(135deg,#0d0d1a,#1a1a35,#4f8eff)}
.vcard-avatar-wrap{position:absolute;bottom:-44px;left:24px;z-index:2}
.vcard-avatar{width:88px;height:88px;border-radius:50%;border:3px solid rgba(255,255,255,.15);background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:var(--text-1);overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.vcard-avatar img{width:100%;height:100%;object-fit:cover}
.vcard-body{background:var(--bg-2);padding:60px 24px 28px}
.vcard-name{font-family:var(--font);font-size:26px;font-weight:800;color:var(--text-1);line-height:1.1;letter-spacing:-.02em}
.vcard-title{font-size:14px;color:var(--text-3);margin-top:3px}
.vcard-company{font-size:14px;font-weight:600;color:var(--accent);margin-top:2px}
.vcard-divider{height:1px;background:var(--border);margin:20px 0}
.vcard-contacts{display:flex;flex-direction:column;gap:8px}
.vcard-contact{display:flex;align-items:center;gap:14px;padding:13px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);text-decoration:none;color:var(--text-2);font-size:14px;transition:all var(--transition)}
.vcard-contact:hover{background:var(--surface-2);border-color:var(--border-2);color:var(--text-1);text-decoration:none;transform:translateX(2px)}
.vcard-contact-icon{width:36px;height:36px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.vcard-contact-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vcard-social{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.vcard-social-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 13px;border-radius:10px;
  background:var(--surface);border:1px solid var(--border);
  font-size:13px;font-weight:600;
  color:var(--text-2);text-decoration:none;
  transition:background var(--transition),border-color var(--transition),color var(--transition),transform .1s;
  cursor:pointer;
}
.vcard-social-btn:hover{
  background:color-mix(in srgb, var(--sn-color,#4f8eff) 12%, var(--surface));
  border-color:color-mix(in srgb, var(--sn-color,#4f8eff) 50%, var(--border));
  color:var(--text-1);text-decoration:none;transform:translateY(-1px);
}
.vcard-social-icon{
  width:18px;height:18px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--sn-color,var(--text-3));
}
.vcard-social-icon svg{width:16px;height:16px;display:block}
.vcard-social-label{line-height:1}
.vcard-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.vcard-action{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:var(--r);font-size:14px;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:all var(--transition)}
.vcard-action:active{transform:scale(.98)}
.vcard-action-primary{background:var(--accent-grad);color:#fff;box-shadow:0 4px 20px rgba(79,142,255,.3)}
.vcard-action-primary:hover{box-shadow:0 6px 28px rgba(79,142,255,.5);text-decoration:none;color:#fff}
.vcard-action-secondary{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-2)}
.vcard-action-secondary:hover{background:var(--surface-3);text-decoration:none;color:var(--text-1)}
.vcard-action-apple{background:#fff;color:#000}
.vcard-action-apple:hover{background:#e8e8e8;text-decoration:none;color:#000}
.vcard-action-google{background:#4285f4;color:#fff}
.vcard-action-google:hover{background:#3367d6;text-decoration:none;color:#fff}
.vcard-qr{margin-top:24px;padding:20px;background:var(--surface);border-radius:var(--r);border:1px solid var(--border);text-align:center}
.vcard-qr img{border-radius:var(--r-sm);margin:0 auto;filter:invert(1)}
.vcard-qr-label{font-size:11px;color:var(--text-3);margin-top:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.vcard-meta{margin-top:16px;display:flex;gap:16px;justify-content:center;font-size:12px;color:var(--text-4)}

/* ALERTS */
.alert{padding:13px 16px;border-radius:var(--r-sm);font-size:14px;margin-bottom:16px;border:1px solid;transition:opacity .3s}
.alert-success{background:var(--green-bg);border-color:rgba(48,209,88,.25);color:var(--green)}
.alert-error  {background:var(--red-bg);border-color:rgba(255,69,58,.25);color:var(--red)}
.alert-info   {background:rgba(79,142,255,.1);border-color:rgba(79,142,255,.25);color:var(--accent)}
.alert-warning{background:var(--orange-bg);border-color:rgba(255,159,10,.25);color:var(--orange)}

/* TABS */
.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto}
.tab-btn{padding:10px 20px;border:none;background:none;font-family:var(--font);font-size:14px;font-weight:500;color:var(--text-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition);white-space:nowrap}
.tab-btn:hover{color:var(--text-1)}
.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* AVATARS */
.avatar{border-radius:50%;background:var(--accent-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.avatar-sm{width:32px;height:32px;font-size:12px}
.avatar-md{width:44px;height:44px;font-size:16px}
.avatar-lg{width:60px;height:60px;font-size:22px}
.avatar-sq{border-radius:12px}
.user-row{display:flex;align-items:center;gap:12px}
.user-row-info .name{font-weight:600;font-size:14px;color:var(--text-1)}
.user-row-info .sub{font-size:12px;color:var(--text-3)}

/* ADMIN */
.admin-layout{display:grid;grid-template-columns:200px 1fr;gap:24px}
@media(max-width:800px){.admin-layout{grid-template-columns:1fr}}
.admin-sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--text-2);text-decoration:none;transition:all var(--transition);margin-bottom:2px}
.admin-sidebar-link:hover{background:var(--surface-2);color:var(--text-1);text-decoration:none}
.admin-sidebar-link.active{background:rgba(79,142,255,.12);color:var(--accent);font-weight:600;border:1px solid rgba(79,142,255,.2)}

/* CHART */
.chart-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.chart-label{width:44px;font-size:11px;color:var(--text-3);flex-shrink:0}
.chart-track{flex:1;height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.chart-fill{height:100%;background:var(--accent-grad);border-radius:3px;transition:width 1.2s cubic-bezier(.4,0,.2,1)}
.chart-val{width:28px;font-size:12px;color:var(--text-3);text-align:right;font-weight:600}

/* MODAL */
.modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex}
.modal{background:rgba(12,15,26,.97);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:32px;max-width:480px;width:100%;box-shadow:var(--shadow-lg);animation:modalIn .2s cubic-bezier(.4,0,.2,1);position:relative}
@keyframes modalIn{from{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-title{font-size:22px;font-weight:800;margin-bottom:6px;color:var(--text-1)}
.modal-desc{color:var(--text-3);font-size:14px;margin-bottom:24px}
.modal-close{position:absolute;top:20px;right:20px;background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;color:var(--text-3);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}
.modal-close:hover{background:var(--surface-3);color:var(--text-1)}

/* EMPTY */
.empty{text-align:center;padding:56px 24px}
.empty-icon{font-size:44px;margin-bottom:16px}
.empty h3{font-size:18px;margin-bottom:8px;color:var(--text-1)}
.empty p{color:var(--text-3);font-size:14px;margin-bottom:24px}

/* MISC */
.divider{height:1px;background:var(--border);margin:20px 0}
.flex-between{display:flex;align-items:center;justify-content:space-between;gap:12px}
.flex-center{display:flex;align-items:center;gap:8px}
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}
.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}
.hidden{display:none!important}
.mono{font-family:'SF Mono','Fira Code',monospace;font-size:12px;color:var(--text-3)}
.text-muted{color:var(--text-3);font-size:13px}
.text-sm{font-size:13px}
.text-accent{color:var(--accent)}
.text-green{color:var(--green)}
.text-red{color:var(--red)}

/* HERO */
.hero-section{min-height:calc(100vh - var(--header-h));display:flex;align-items:center;padding:80px 0;position:relative;overflow:hidden}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
@media(max-width:900px){.hero-inner{grid-template-columns:1fr}}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;background:rgba(79,142,255,.1);border:1px solid rgba(79,142,255,.2);font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:20px}
.hero-title{font-family:"-apple-system","BlinkMacSystemFont","SF Pro Display","Segoe UI",system-ui,sans-serif;font-size:clamp(36px,6vw,60px);font-weight:800;color:var(--text-1);line-height:1.05;letter-spacing:-.03em;margin-bottom:20px}
.hero-title em{font-style:normal;background:var(--accent-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-desc{font-size:17px;color:var(--text-2);line-height:1.7;margin-bottom:32px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}

/* FEATURES & PRICING */
.features-section,.pricing-section{padding:80px 0}
.section-eyebrow{display:inline-block;font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.section-title{font-size:clamp(26px,4vw,40px);font-weight:800;margin-bottom:10px;color:var(--text-1)}
.section-sub{font-size:16px;color:var(--text-3);margin-bottom:48px}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px;transition:all var(--transition)}
.feature-card:hover{border-color:var(--border-2);transform:translateY(-3px);box-shadow:var(--shadow)}
.feature-icon{width:48px;height:48px;border-radius:14px;background:rgba(79,142,255,.1);border:1px solid rgba(79,142,255,.15);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:16px}
.feature-title{font-size:15px;font-weight:700;margin-bottom:8px;color:var(--text-1)}
.feature-desc{font-size:14px;color:var(--text-3);line-height:1.6}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:48px}
.plan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:32px;position:relative;overflow:hidden}
.plan-card.featured{border-color:rgba(79,142,255,.4);background:linear-gradient(135deg,rgba(79,142,255,.07),rgba(123,94,248,.07));box-shadow:0 0 0 1px rgba(79,142,255,.2),var(--shadow-glow)}
.plan-card.featured::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent-grad)}
.plan-badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--accent-grad);color:#fff;font-size:11px;font-weight:800;padding:4px 16px;border-radius:0 0 12px 12px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.plan-name{font-size:13px;font-weight:700;color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px}
.plan-price{font-family:"-apple-system","BlinkMacSystemFont","SF Pro Display","Segoe UI",system-ui,sans-serif;font-size:48px;font-weight:800;color:var(--text-1);line-height:1;margin-bottom:4px}
.plan-price sup{font-size:24px;vertical-align:super}
.plan-period{font-size:14px;color:var(--text-3);margin-bottom:24px}
.plan-features{list-style:none;margin-bottom:28px;display:flex;flex-direction:column;gap:12px}
.plan-features li{font-size:14px;color:var(--text-2);display:flex;align-items:flex-start;gap:10px}
.plan-features li::before{content:'✓';color:var(--green);font-weight:800;font-size:13px;flex-shrink:0;margin-top:1px}

@media(max-width:640px){.hero-btns{flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr}}

/* === NOVÉ PRO ŠABLÓNY === */
.vcard-banner.t-midnight  {background:linear-gradient(135deg,#0a0a1a,#1a0a2e,#2d1b69)}
.vcard-banner.t-rose      {background:linear-gradient(135deg,#2d0a1a,#7b1a3a,#e8537a)}
.vcard-banner.t-aurora    {background:linear-gradient(135deg,#0a1a2d,#1a4a3a,#2dd4b5)}
.vcard-banner.t-ember     {background:linear-gradient(135deg,#1a0a00,#7a2c00,#ff6b2b)}
.vcard-banner.t-violet    {background:linear-gradient(135deg,#1a0a2d,#4a1a7a,#9b59d0)}
.vcard-banner.t-black     {background:#000}
.t-black .vcard-name,.t-black .vcard-position{color:#fff}
.t-black .vcard-company{color:#aaa}
.t-black .vcard-avatar{background:#1a1a1a;color:#fff;border:2px solid #333}
.t-black .vcard-wrap{background:#111;border:1px solid #222}
.t-black .vcard-contact-item{background:#1a1a1a;border-color:#333}
.t-black .vcard-contact-text,.t-black .vcard-contact-link,.t-black .vcard-info-text{color:#ccc}
.t-black .vcard-contact-icon{color:#666}
.t-black .vcard-social-btn{background:#1a1a1a;color:#bbb;border:1px solid #333}
.t-black .vcard-social-btn:hover{background:color-mix(in srgb, var(--sn-color,#4f8eff) 15%, #1a1a1a);border-color:color-mix(in srgb, var(--sn-color,#4f8eff) 60%, #444);color:#fff}
.t-black .vcard-action{background:#1e1e1e;color:#ddd;border:1px solid #333}
.t-black .vcard-action-primary{background:#4f8eff;color:#fff;border-color:#4f8eff}
.t-black .vcard-qr{background:#111}
.t-black .vcard-meta{color:#555}
.t-black .vcard-bio{color:#aaa;border-color:#333}
.vcard-banner.t-white     {background:#fff;box-shadow:inset 0 -2px 0 #e5e7eb}
.t-white .vcard-body{background:#f9fafb}
.t-white .vcard-name{color:#111827}
.t-white .vcard-position{color:#6b7280}
.t-white .vcard-title{color:#6b7280}
.t-white .vcard-company{color:#4f8eff}
.t-white .vcard-avatar{background:#f3f4f6;color:#111827;border:2px solid #e5e7eb}
.t-white .vcard-wrap{background:#f9fafb;border:1px solid #e5e7eb;box-shadow:0 4px 24px rgba(0,0,0,.06)}
.t-white .vcard{border-color:#e5e7eb}
.t-white .vcard-contact{background:#fff;border-color:#e5e7eb;color:#374151}
.t-white .vcard-contact:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}
.t-white .vcard-contact-icon{background:#f3f4f6;color:#6b7280}
.t-white .vcard-contact-text,.t-white .vcard-contact-link,.t-white .vcard-info-text{color:#374151}
.t-white .vcard-contact-icon{color:#9ca3af}
.t-white .vcard-divider{background:#e5e7eb}
.t-white .vcard-social-btn{background:#fff;color:#374151;border:1px solid #e5e7eb}
.t-white .vcard-social-btn:hover{background:color-mix(in srgb, var(--sn-color,#4f8eff) 8%, #fff);border-color:color-mix(in srgb, var(--sn-color,#4f8eff) 40%, #e5e7eb);color:#111827}
.t-white .vcard-action{background:#fff;color:#374151;border:1px solid #e5e7eb}
.t-white .vcard-action-primary{background:#4f8eff;color:#fff;border-color:#4f8eff}
.t-white .vcard-bio{color:#4b5563;border-color:#e5e7eb;background:#fff}
.t-white .vcard-qr{background:#fff}
.t-white .vcard-meta{color:#9ca3af}
.t-white .vcard-name,.t-white h1,.t-white h2,.t-white h3{color:#111827}

/* Locked template overlay */
.tpl-locked{opacity:.5;cursor:not-allowed!important}
.tpl-locked::after{content:'PRO';position:absolute;top:4px;right:4px;background:rgba(79,142,255,.85);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.06em}

/* === BIO === */
.vcard-bio{font-size:13px;color:var(--text-2);line-height:1.6;padding:12px 0;margin:4px 0 8px;border-bottom:1px solid var(--border)}

/* ============================================================
   MOBILE RESPONSIVE – konzistentné s desktop verziou
   ============================================================ */

/* Kontajner padding na mobile */
@media(max-width:640px){
  .container{padding:0 14px}
  .page-wrap{padding:20px 0 40px}
  .page-title{margin-bottom:18px}
  .page-title.flex-between{flex-direction:column;align-items:flex-start;gap:12px}
  .page-title.flex-between .btn{width:100%;justify-content:center}

  /* Stats grid – 2 stĺpce na mobile */
  .stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
  .stat-card{padding:14px 12px}
  .stat-value{font-size:24px!important}
  .stat-label{font-size:11px}

  /* Card */
  .card-body{padding:16px}
  .card-header{padding:14px 16px}
  .card-header h3{font-size:10px}

  /* Form */
  .form-row{grid-template-columns:1fr}
  .form-group{margin-bottom:12px}

  /* Buttons */
  .btn-lg{padding:12px 20px;font-size:15px}
  .btn-sm{padding:5px 10px;font-size:12px}

  /* Two-col stack */
  .two-col{grid-template-columns:1fr;gap:16px}

  /* Modal */
  .modal{padding:20px 16px;border-radius:var(--r-lg) var(--r-lg) 0 0;margin-top:auto;max-height:90vh;overflow-y:auto}
  .modal-overlay{align-items:flex-end}

  /* Vizitka row v Moje vizitky */
  .two-col > div > .card .card-body > div[style*="display:flex"]{
    flex-wrap:wrap;gap:8px
  }

  /* Admin tabuľka scroll */
  .table-wrap{font-size:12px}
  .data-table th,.data-table td{padding:8px 10px}
  .actions{flex-wrap:wrap}

  /* Dashboard connections row */
  .conn-row{flex-wrap:wrap;gap:8px}
  .conn-row > div:last-child{width:100%;justify-content:flex-end}

  /* Editor: template grid */
  .template-opt{height:50px!important}
}

/* Medium tablet */
@media(max-width:768px){
  .admin-layout{grid-template-columns:1fr}
  .hero-inner{grid-template-columns:1fr}
  .modal{max-width:calc(100vw - 32px)}
  .footer-inner{flex-direction:column;gap:12px;text-align:center}
  .footer-links{justify-content:center}
}

/* Moje vizitky - responsive akčné tlačidlá */
@media(max-width:580px){
  /* Vizitka riadok - presun badge pod meno */
  .vis-row-badges{display:none}
  .vis-row-actions{flex-wrap:wrap;justify-content:flex-end}
}

/* NFC dashboard mobile */
@media(max-width:640px){
  #nfc-tbl th:nth-child(3),#nfc-tbl td:nth-child(3),
  #nfc-tbl th:nth-child(6),#nfc-tbl td:nth-child(6){display:none}
}

/* Share modal – full width na mobile */
@media(max-width:480px){
  #dash-share-modal .modal,
  #share-modal .modal{max-width:100%;margin:0}
  #dash-share-links,
  #share-modal [style*="justify-content:center"]{gap:6px}
}

/* ═══════════════════════════════════════════════════════════
   BOD 7 – White template: svetlé pozadie aj pre preview obálku
   ═══════════════════════════════════════════════════════════ */
.t-white .vcard-body,
.t-white .vcard{background:#f9fafb}
.t-white .vcard-bio{background:#fff;color:#374151;border-color:#e5e7eb}
.t-white .vcard-info-label{color:#6b7280}
.t-white .vcard-info-value{color:#111827}
.t-white .vcard-save-btn,.t-white .vcard-action{background:#fff;color:#374151;border:1px solid #e5e7eb}
.t-white .vcard-action-primary{background:#4f8eff!important;color:#fff!important;border-color:#4f8eff!important}

/* ═══════════════════════════════════════════════════════════
   BOD 1 – Editor live preview: sticky pravý stĺpec
   ═══════════════════════════════════════════════════════════ */
/* ── Editor layout ─────────────────────────────────────────── */

/* Formulárová strana – zaberá celú šírku mínus miesto pre fixed panel */
.editor-layout{
  display:block;
}
.editor-form-col{
  /* Priestor pre fixed panel (330px panel + 28px gap + 24px okraj) */
  margin-right:382px;
}
@media(max-width:960px){
  .editor-form-col{margin-right:0}
  .editor-preview-col{display:none!important}
}

/* Fixed preview panel – vždy viditeľný vpravo */
.editor-preview-col{
  position:fixed;
  top:calc(var(--header-h) + 16px);
  right:max(24px, calc((100vw - 1140px) / 2 + 24px));
  width:330px;
  max-height:calc(100vh - var(--header-h) - 32px);
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--border) transparent;
  z-index:100;
}

.editor-preview-panel{
  background:var(--surface);
  border:1px solid var(--border-2);
  border-radius:var(--r-xl);
  overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,.25);
}
.editor-preview-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;
  border-bottom:1px solid var(--border);
  background:var(--surface-2);
}
.editor-preview-label{
  font-size:11px;font-weight:700;color:var(--text-3);
  text-transform:uppercase;letter-spacing:1px;
  display:flex;align-items:center;gap:6px;
}
.editor-preview-body{padding:8px;background:#06080f;border-radius:0 0 var(--r-xl) var(--r-xl);transition:background .4s ease}

/* ── Premium šablóny – pozadie editor preview ── */
.editor-preview-body.prev-polar-white {
  background: linear-gradient(160deg,#f0f4ff 0%,#fafafa 40%,#f5f0ff 100%);
}
.editor-preview-body.prev-night-black {
  background: radial-gradient(ellipse 80% 60% at 30% 30%, rgba(30,0,60,.9) 0%, #000 60%),
              radial-gradient(ellipse 60% 40% at 70% 70%, rgba(0,20,60,.8) 0%, transparent 70%);
  background-color: #000;
}
.editor-preview-body.prev-liquid-glass {
  background: radial-gradient(ellipse 80% 60% at 0% 50%, rgba(79,0,200,.35) 0%, transparent 60%),
              radial-gradient(ellipse 60% 40% at 100% 20%, rgba(0,100,200,.3) 0%, transparent 60%),
              radial-gradient(ellipse 50% 50% at 50% 100%, rgba(120,0,180,.25) 0%, transparent 60%);
  background-color: #0a0820;
}
.editor-preview-body .vcard-banner{height:90px!important}
/* Avatar 60px. Najväčší border je 3px (default). Presah = 60/2 + 3 = 33px.
   bottom:-33px + padding-top:43px = konzistentné pre všetky šablóny.
   Šablóny s 2px borderom (White, Polar White, Black) majú 1px menší presah
   ale rozdiel je vizuálne zanedbateľný a padding ho absorbuje. */
/* Jednotná border 2px pre všetky šablóny v editore → konzistentný presah:
   presah = 60/2 + 2 = 32px → bottom:-32px, padding-top:32+10=42px */
.editor-preview-body .vcard-avatar-wrap{bottom:-32px!important;left:16px!important}
.editor-preview-body .vcard-avatar{width:60px!important;height:60px!important;font-size:17px!important;border-width:2px!important;box-shadow:none!important}
.editor-preview-body .vcard-body{padding:42px 14px 14px!important}
/* Social siete v editor preview – zmenšené */
.editor-preview-body .vcard-social{gap:5px;margin-top:12px}
.editor-preview-body .vcard-social-btn{padding:5px 9px;font-size:11px;gap:5px;border-radius:8px}
.editor-preview-body .vcard-social-icon{width:14px;height:14px}
.editor-preview-body .vcard-social-icon svg{width:12px;height:12px}

/* Mobile floating preview button */
.preview-float-btn{
  display:none;
  position:fixed;bottom:24px;right:20px;z-index:800;
  background:var(--accent);color:#fff;border:none;
  border-radius:50px;padding:12px 20px;font-size:14px;font-weight:600;
  box-shadow:0 4px 20px rgba(79,142,255,.5);cursor:pointer;
  align-items:center;gap:8px;transition:transform .15s,box-shadow .15s
}
.preview-float-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(79,142,255,.6)}

/* Preview modal pre mobile editor */
.preview-modal-overlay{
  display:none;position:fixed;inset:0;z-index:900;
  background:rgba(0,0,0,.7);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:20px
}
.preview-modal-overlay.open{display:flex}
.preview-modal-inner{
  background:var(--bg-2);border-radius:var(--r-xl);
  padding:20px;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;
  position:relative
}
.preview-modal-close{
  position:absolute;top:12px;right:12px;background:var(--surface-2);
  border:1px solid var(--border-2);border-radius:50%;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  font-size:16px;color:var(--text-3);line-height:1
}

/* ═══════════════════════════════════════════════════════════
   BOD 6 – Komplexný responsive pre všetky bloky
   ═══════════════════════════════════════════════════════════ */

/* Moje vizitky – akčné tlačidlá na mobile */
@media(max-width:700px){
  /* Card row wrap */
  [data-card-row]{flex-wrap:wrap!important;gap:8px!important;padding:12px 14px!important}
  [data-card-row] > div:first-child{flex-shrink:0}
  /* Badges + akcie na nový riadok */
  [data-card-row] > div:nth-child(3){width:100%}
  [data-card-row] > div:last-child{width:100%;justify-content:flex-end;flex-wrap:wrap}
}

/* Moje NFC karty – dashboard riadok */
@media(max-width:640px){
  /* Posledné skeny */
  .scan-row{gap:8px!important;padding:8px 12px!important}
  /* Connections */
  .conn-row .btn{padding:4px 8px!important;font-size:12px!important}
  /* Stats grid 4-stĺpcový → 2×2 */
  .stats-grid[style*="grid-template-columns:repeat(4"]{grid-template-columns:1fr 1fr!important}
  /* Admin NFC nástroje: 2-stĺpcový grid → 1 stĺpec */
  div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}
}

/* Posledné skeny + scan chart */
@media(max-width:580px){
  .chart-row{gap:6px}
  .chart-label{font-size:10px;min-width:30px}
  .chart-val{font-size:11px}
}

/* Connections tabs – scroll ak sa nezmestia */
@media(max-width:480px){
  .tabs[data-tabs]{overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}
  .tab-btn{white-space:nowrap;flex-shrink:0}
  /* Odpojená tlačidlo – len ikona */
  .conn-row .btn[title="Odpojiť"]{font-size:0!important}
  .conn-row .btn[title="Odpojiť"]::after{content:'✕';font-size:13px}
}

/* Editor na mobile – floating preview btn */
@media(max-width:900px){
  .preview-float-btn{display:flex}
  .editor-preview-col{display:none!important}
}

/* NFC tabuľka – hide viac stĺpcov na mobile */
@media(max-width:480px){
  #nfc-tbl th:nth-child(2),#nfc-tbl td:nth-child(2),
  #nfc-tbl th:nth-child(4),#nfc-tbl td:nth-child(4){display:none}
}

/* Admin layout - connections tabuľky scroll */
@media(max-width:640px){
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .data-table{min-width:480px}
}

/* BOD 3 – White template: editor preview body */
/* t-white-body hack odstránený – preview používa .t-white .vcard-body */

/* BOD 3 – White template: kontrast pre sociálne tlačidlá (TikTok, externý odkaz, X) */
.t-white .vcard-social-btn{background:#fff!important;color:#1f2937!important;border:1px solid #d1d5db!important}
.t-white .vcard-social-btn:hover{background:color-mix(in srgb, var(--sn-color,#4f8eff) 8%, #fff)!important;color:#111827!important;border-color:color-mix(in srgb, var(--sn-color,#4f8eff) 40%, #d1d5db)!important}
.t-white .vcard-bio{color:#374151!important;background:#f9fafb!important;border-color:#e5e7eb!important}

/* Editor – template grid */
.template-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:20px;
}
@media(max-width:600px){
  .template-grid{grid-template-columns:repeat(3,1fr)}
}

/* ── Editor live preview – CSS triedy namiesto inline styles ── */
/* preview-name/position/company/bio nahradené vcard-* triedami so škálovaním v .editor-preview-body */
/* .preview-* triedy nahradené vcard-* triedami */
.hidden{display:none!important}

/* ── Editor preview škálovanie vcard-* komponentov ────────────── */
.editor-preview-body .vcard-name{font-size:17px}
.editor-preview-body .vcard-title{font-size:12px;margin-top:2px}
.editor-preview-body .vcard-company{font-size:12px;margin-top:1px}
.editor-preview-body .vcard-bio{font-size:11px;padding:8px 10px;margin:4px 0 6px}
.editor-preview-body .vcard-divider{margin:12px 0}
.editor-preview-body .vcard-contacts{gap:5px}
.editor-preview-body .vcard-contact{padding:8px 10px}
.editor-preview-body .vcard-contact-icon{width:26px;height:26px;font-size:13px;border-radius:7px}
.editor-preview-body .vcard-contact-text{font-size:12px}
.editor-preview-body .vcard-actions{gap:6px;margin-top:14px}
.editor-preview-body .vcard-action{padding:9px;font-size:12px;border-radius:8px;pointer-events:none}



.sw-icon { transition: transform .15s; }
.sw-icon:hover { transform: scale(1.1); }

/* ═══════════════════════════════════════════════════════════
   DASH SHARE MODAL – scroll + QR + email preview hover
   ═══════════════════════════════════════════════════════════ */

/* Scroll: overlay nescrolluje, modal je obmedzený a scrolluje vnútro */
#dash-share-modal.open {
  overflow-y: auto;
}
#dash-share-modal .modal {
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  overflow-x: hidden;
  /* Zabráni scrollu na body keď je modal otvorený */
  overscroll-behavior: contain;
}

/* QR obrázok vyplní wrapper bez orezania */
#dash-share-qr-wrap img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 0;
  object-fit: cover;
}

/* Email preview – farby z inline štýlov na <a> zachovaj, len prostý odkaz (v1,v3) dofarbi */
#dash-preview-v1 a,
#dash-preview-v3 a {
  color: #4f8eff;
  text-decoration: none;
}
#dash-preview-v1 a:hover,
#dash-preview-v3 a:hover {
  text-decoration: underline;
}
/* v2 = button – inline color:#fff sa zachová, neprepísať */

/* Kód bloky – hover border accent */
#dash-share-modal [id^="dash-html-"]:hover {
  border-color: var(--accent) !important;
}

/* dash-preview-v2: inline color:#fff na <a> tagu – neprepísané */

/* QR img – vyplní wrapper bez orezania, s paddingom v parent */
#dash-share-qr-wrap img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 0;
  display: block;
}
#dash-share-qr-wrap svg {
  width: 100% !important;
  height: 100% !important;
  display: block;
}

/* ── Save prompt bottom sheet ─────────────────────────────────────────── */
/* Pevné farby – nezávislé od dark/light theme vizitky */
#save-sheet-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.72);
  z-index: 1100;
  opacity: 0;
  transition: opacity .3s ease;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
#save-sheet-panel {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: #ffffff;
  border-radius: 20px 20px 0 0;
  padding: 10px 20px 44px;
  z-index: 1101;
  transform: translateY(100%);
  transition: transform .38s cubic-bezier(.32,1,.65,1);
  text-align: center;
  box-shadow: 0 -2px 24px rgba(0,0,0,.18);
  max-width: 480px;
  margin: 0 auto;
}
.save-sheet-in #save-sheet-overlay { opacity: 1; }
.save-sheet-in #save-sheet-panel   { transform: translateY(0); }
.save-sheet-out #save-sheet-overlay{ opacity: 0; }
.save-sheet-out #save-sheet-panel  { transform: translateY(100%); }

/* Drag handle */
#save-sheet-drag {
  width: 36px; height: 4px;
  background: #e0e0e0;
  border-radius: 2px;
  margin: 0 auto 16px;
}

/* Kompaktný header – avatar + meno vedľa seba */
#save-sheet-header {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #f7f8fa;
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 20px;
  text-align: left;
}
#save-sheet-avatar {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: #4f8eff;
  color: #fff;
  font-size: 20px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
#save-sheet-info { flex: 1; min-width: 0; }
#save-sheet-name {
  font-size: 16px; font-weight: 700;
  color: #111;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: -apple-system, 'Plus Jakarta Sans', sans-serif;
}
.save-sheet-sub {
  font-size: 12px; color: #666;
  margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.save-sheet-company {
  font-size: 12px; color: #4f8eff;
  font-weight: 600;
}

/* CTA tlačidlo */
#save-sheet-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  padding: 16px;
  background: #4f8eff;
  color: #fff;
  border-radius: 14px;
  font-size: 17px; font-weight: 700;
  letter-spacing: -.2px;
  margin-bottom: 10px;
  transition: background .15s, transform .1s;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font-family: -apple-system, sans-serif;
}
#save-sheet-btn:active   { background: #3a7aee; transform: scale(.98); }
#save-sheet-btn:disabled { opacity: .6; cursor: default; }

/* Skip */
#save-sheet-skip {
  width: 100%;
  padding: 12px;
  background: transparent;
  border: none;
  color: #999;
  font-size: 14px;
  cursor: pointer;
  border-radius: 10px;
  transition: color .15s;
  font-family: -apple-system, sans-serif;
  -webkit-tap-highlight-color: transparent;
}
#save-sheet-skip:active { color: #555; }
/* ============================================================
   NexCard – Fáza 2: Objednávky – CSS doplnky
   Pridaj na koniec app.css
   ============================================================ */

/* ─── BADGE – nové varianty ──────────────────────────────────── */
.badge-blue   { background: rgba(0,122,255,.15);   color: #4f8eff;  border: 1px solid rgba(79,142,255,.3); }
.badge-orange { background: rgba(255,159,10,.15);  color: var(--orange); border: 1px solid rgba(255,159,10,.3); }
.badge-purple { background: rgba(175,82,222,.15);  color: #af52de;  border: 1px solid rgba(175,82,222,.3); }
.badge-teal   { background: rgba(90,200,250,.15);  color: #2ac4d4;  border: 1px solid rgba(90,200,250,.3); }

/* ─── PRODUCT CARD ───────────────────────────────────────────── */
.product-card {
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.product-card:hover {
  transform: translateY(-3px);
}

/* ─── SHOP RESPONSIVE ────────────────────────────────────────── */
@media (max-width: 720px) {
  /* order form: single column */
  .order-form-grid {
    grid-template-columns: 1fr !important;
  }
  /* order summary sticky → static */
  .order-summary-sticky {
    position: static !important;
  }
}

/* ─── ORDER TIMELINE ─────────────────────────────────────────── */
.order-timeline {
  display: flex;
  align-items: center;
  gap: 0;
}
.order-timeline-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}
.order-timeline-dot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  border: 2px solid var(--border-2);
  background: var(--surface-2);
  transition: background .2s, border-color .2s;
}
.order-timeline-dot.done {
  background: var(--accent);
  border-color: var(--accent);
}
.order-timeline-dot.current {
  box-shadow: 0 0 0 4px rgba(79,142,255,.2);
}
.order-timeline-line {
  flex: 1;
  height: 2px;
  background: var(--border-2);
  transition: background .2s;
}
.order-timeline-line.done {
  background: var(--accent);
}

/* ─── FORM INPUT SM ──────────────────────────────────────────── */
.form-input-sm {
  padding: 6px 10px;
  font-size: 13px;
}

/* ─── PAGE NAV – shop link (ak nie je v nav, optional) ────────── */
.nav-shop-badge {
  background: linear-gradient(135deg, var(--accent), #7b5ef8);
  color: #fff;
  border-radius: 6px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 700;
  margin-left: 4px;
  vertical-align: middle;
}

/* ============================================================
   NexCard – Google Wallet button styles
   Pridajte na koniec app.css
   ============================================================ */

/* ── Google Wallet tlačidlo ─────────────────────────────────── */
.vcard-action-google {
  background: #fff;
  color: #3c4043;
  border: 1.5px solid #dadce0;
  font-weight: 600;
  font-size: 14px;
  gap: 10px;
  transition: background .18s, box-shadow .18s, transform .12s;
  text-decoration: none;
}

.vcard-action-google:hover {
  background: #f8f9fa;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  transform: translateY(-1px);
  color: #3c4043;
  text-decoration: none;
}

.vcard-action-google:active {
  transform: translateY(0);
  box-shadow: none;
}

/* Zamknutý stav (bez Pro plánu) */
.vcard-action-google.vcard-action-locked {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.1);
  color: rgba(255,255,255,.3);
  cursor: not-allowed;
}

.vcard-action-google.vcard-action-locked:hover {
  transform: none;
  box-shadow: none;
  background: rgba(255,255,255,.06);
}

/* ── Animácia načítavania (pri kliknutí) ────────────────────── */
.vcard-action-google.gw-loading {
  pointer-events: none;
  opacity: .7;
}

.vcard-action-google.gw-loading span:last-child::after {
  content: ' ···';
  animation: gwDots 1s steps(4, end) infinite;
}

@keyframes gwDots {
  0%   { content: ' ·'; }
  33%  { content: ' ··'; }
  66%  { content: ' ···'; }
  100% { content: ' ·'; }
}

/* ── "Úspešne pridané" stav ─────────────────────────────────── */
.vcard-action-google.gw-saved {
  background: #e6f4ea;
  border-color: #34a853;
  color: #1e8e3e;
  pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════
   PREMIUM ŠABLÓNY – Polar White, Night Black, Liquid Glass
   + Opravy konzistencie pre Black a White
══════════════════════════════════════════════════════════════ */

/* ── Polar White (Premium) ───────────────────────────────────
   Stránka: jemný svetlý gradient, vizitka krémová/biela
   Banner: svetlý gradient s jemnou gold/pearl optikou
──────────────────────────────────────────────────────────────*/
.vcard-banner.t-polar-white {
  background: linear-gradient(135deg, #e8eaf0 0%, #f5f5fa 40%, #eeeef8 100%);
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.06);
}
.t-polar-white .vcard-body           { background: #fafafa; }
.t-polar-white .vcard-name           { color: #111827; }
.t-polar-white .vcard-title,
.t-polar-white .vcard-position       { color: #6b7280; }
.t-polar-white .vcard-company        { color: #4f8eff; }
.t-polar-white .vcard-avatar         { background: #f0f0f8; color: #111827; border: 2px solid rgba(0,0,0,.08); }
.t-polar-white .vcard-wrap           { background: #fafafa; border: 1px solid rgba(0,0,0,.06); box-shadow: 0 8px 48px rgba(0,0,0,.08); }
.t-polar-white .vcard-contact        { background: #fff; border-color: rgba(0,0,0,.07); color: #374151; }
.t-polar-white .vcard-contact:hover  { background: #f3f4f6; border-color: rgba(0,0,0,.12); color: #111827; }
.t-polar-white .vcard-contact-icon   { background: #f3f4f6; }
.t-polar-white .vcard-contact-text,
.t-polar-white .vcard-contact-link   { color: #374151; }
.t-polar-white .vcard-social-btn     { background: #fff; color: #374151; border: 1px solid rgba(0,0,0,.08); }
.t-polar-white .vcard-social-btn:hover { background: color-mix(in srgb, var(--sn-color,#4f8eff) 8%, #fff); }
.t-polar-white .vcard-action         { background: #fff; color: #374151; border: 1px solid rgba(0,0,0,.08); }
.t-polar-white .vcard-action-primary { background: #4f8eff !important; color: #fff !important; border-color: #4f8eff !important; }
.t-polar-white .vcard-bio            { color: #4b5563; border-color: rgba(0,0,0,.07); background: #fff; }
.t-polar-white .vcard-qr             { background: #fff; }
.t-polar-white .vcard-meta           { color: #9ca3af; }

/* ── Night Black (Premium) ───────────────────────────────────
   Stránka: deep space čierna, vizitka pitch black s reflexiami
──────────────────────────────────────────────────────────────*/
.vcard-banner.t-night-black {
  background: linear-gradient(135deg, #000000 0%, #0a0a0f 50%, #050510 100%);
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.t-night-black .vcard-body           { background: #070709; }
.t-night-black .vcard-name           { color: #f0f0f5; }
.t-night-black .vcard-title,
.t-night-black .vcard-position       { color: rgba(255,255,255,.4); }
.t-night-black .vcard-company        { color: #6b9eff; }
.t-night-black .vcard-avatar         { background: #111115; color: #e0e0f0; border: 2px solid rgba(255,255,255,.08); }
.t-night-black .vcard-wrap           { background: #070709; border: 1px solid rgba(255,255,255,.05); box-shadow: 0 8px 48px rgba(0,0,0,.9); }
.t-night-black .vcard-contact        { background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.06); color: rgba(255,255,255,.7); }
.t-night-black .vcard-contact:hover  { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
.t-night-black .vcard-contact-icon   { background: rgba(255,255,255,.05); }
.t-night-black .vcard-contact-text,
.t-night-black .vcard-contact-link   { color: rgba(255,255,255,.7); }
.t-night-black .vcard-social-btn     { background: rgba(255,255,255,.04); color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.07); }
.t-night-black .vcard-social-btn:hover { background: color-mix(in srgb, var(--sn-color,#4f8eff) 15%, #111); border-color: color-mix(in srgb, var(--sn-color,#4f8eff) 40%, #333); color: #fff; }
.t-night-black .vcard-action         { background: rgba(255,255,255,.04); color: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.07); }
.t-night-black .vcard-action-primary { background: #4f8eff !important; color: #fff !important; border-color: #4f8eff !important; }
.t-night-black .vcard-bio            { color: rgba(255,255,255,.5); border-color: rgba(255,255,255,.06); background: rgba(255,255,255,.02); }
.t-night-black .vcard-qr             { background: rgba(255,255,255,.03); }
.t-night-black .vcard-meta           { color: rgba(255,255,255,.2); }

/* ── Liquid Glass (Premium) ──────────────────────────────────
   iOS 26 štýl: frosted glass, backdrop-filter blur, translucent
──────────────────────────────────────────────────────────────*/
.vcard-banner.t-liquid-glass {
  background: linear-gradient(135deg,
    rgba(120,140,200,.35) 0%,
    rgba(80,100,180,.25) 50%,
    rgba(100,80,200,.3) 100%);
  /* backdrop-filter sa NESMIE dávať na banner – vytvára stacking context
     ktorý skryje vcard-avatar-wrap za blur vrstvou.
     Blur efekt aplikujeme len na vcard-body a vcard-wrap */
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.15);
}
/* Pseudo-element pre blur efekt bannera – nezasahuje do stacking contextu avatara */
.t-liquid-glass .vcard-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: 0;
  pointer-events: none;
}
/* Avatar musí byť nad pseudo-elementom */
.t-liquid-glass .vcard-avatar-wrap {
  z-index: 3;
}
.t-liquid-glass .vcard-body {
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
.t-liquid-glass .vcard-name          { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.3); }
.t-liquid-glass .vcard-title,
.t-liquid-glass .vcard-position      { color: rgba(255,255,255,.65); }
.t-liquid-glass .vcard-company       { color: rgba(160,200,255,.9); }
.t-liquid-glass .vcard-avatar        {
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.3);
  color: #fff;
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.2);
}
.t-liquid-glass .vcard-wrap {
  background: rgba(20,25,60,.55);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 20px 80px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
}
.t-liquid-glass .vcard-contact {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.8);
  backdrop-filter: blur(8px);
}
.t-liquid-glass .vcard-contact:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.2); }
.t-liquid-glass .vcard-contact-icon  { background: rgba(255,255,255,.1); }
.t-liquid-glass .vcard-contact-text,
.t-liquid-glass .vcard-contact-link  { color: rgba(255,255,255,.8); }
.t-liquid-glass .vcard-social-btn    {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
}
.t-liquid-glass .vcard-social-btn:hover { background: rgba(255,255,255,.15); color: #fff; }
.t-liquid-glass .vcard-action        { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.8); }
.t-liquid-glass .vcard-action-primary { background: rgba(79,142,255,.7) !important; color: #fff !important; border-color: rgba(79,142,255,.4) !important; backdrop-filter: blur(8px); }
.t-liquid-glass .vcard-bio           { color: rgba(255,255,255,.65); border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.04); }
.t-liquid-glass .vcard-meta          { color: rgba(255,255,255,.3); }

/* ── Oprava: Black – konzistentné pozadie v preview aj card ──*/
/* Black banner gradient namiesto ploché #000 */
.vcard-banner.t-black {
  background: linear-gradient(135deg, #0a0a0a 0%, #111111 50%, #0d0d0d 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.05);
}

/* ── Oprava: White – tmavé pozadie preview panelu ─────────── */
/* White šablóna má svetlý banner ale v preview ostáva na tmavom bg stránky */
/* Pozadie stránky je #f0f2f5 len pri card view, nie v editore */

/* ── Editor preview – konzistentné tmavé bg pre všetky šablóny──*/
/* White a Polar White banner vyzerajú dobre na tmavom bg preview */

/* ══════════════════════════════════════════════════════════════
   AVATAR BORDER – border farba zodpovedá pozadiu vcard-body
   Použijeme trojitý selektor pre vyššiu špecificitu
══════════════════════════════════════════════════════════════ */
/* Živá vizitka – border zodpovedá pozadiu vcard-body */
.t-white .vcard-avatar      { border-color: #f9fafb; }
.t-polar-white .vcard-avatar { border-color: #fafafa; }
.t-black .vcard-avatar       { border-color: #111111; }
.t-night-black .vcard-avatar { border-color: #070709; }
.t-liquid-glass .vcard-avatar { border-color: rgba(255,255,255,.12); }

/* Editor preview – pevná border 2px pre VŠETKY šablóny bez výnimky
   Trojitý selektor prekoná akékoľvek .t-* .vcard-avatar pravidlo */
.editor-preview-body .vcard.t-white .vcard-avatar,
.editor-preview-body .vcard.t-polar-white .vcard-avatar,
.editor-preview-body .vcard.t-black .vcard-avatar,
.editor-preview-body .vcard.t-night-black .vcard-avatar,
.editor-preview-body .vcard.t-liquid-glass .vcard-avatar,
.editor-preview-body .vcard.t-classic .vcard-avatar,
.editor-preview-body .vcard.t-ocean .vcard-avatar,
.editor-preview-body .vcard.t-slate .vcard-avatar,
.editor-preview-body .vcard.t-forest .vcard-avatar,
.editor-preview-body .vcard.t-gold .vcard-avatar,
.editor-preview-body .vcard.t-corporate .vcard-avatar,
.editor-preview-body .vcard.t-midnight .vcard-avatar,
.editor-preview-body .vcard.t-rose .vcard-avatar,
.editor-preview-body .vcard.t-aurora .vcard-avatar,
.editor-preview-body .vcard.t-ember .vcard-avatar,
.editor-preview-body .vcard.t-violet .vcard-avatar {
  border-width: 2px !important;
  box-shadow: none !important;
}

/* ══════════════════════════════════════════════════════════════
   VLASTNÉ FARBY VIZITKY – CSS premenné
   Nastavujú sa inline na .vcard-wrap cez PHP
   Fallback = farba šablóny
══════════════════════════════════════════════════════════════ */
/* Farba firmy */
/* Vlastné farby – aplikujú sa len ak je CSS premenná nastavená inline na vcard-wrap.
   Používame :where() pre nižšiu špecificitu než šablónové pravidlá – 
   inline style má vždy najvyššiu prioritu, preto riešime cez JS priamo na elemente */

/* ── Color picker komponent – moderný dizajn ──────────────── */
.color-picker-wrap {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
}
.color-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.color-picker-title {
  font-size: 12px;
  font-weight: 700;
  color: rgba(255,255,255,.55);
  text-transform: uppercase;
  letter-spacing: .07em;
  display: flex;
  align-items: center;
  gap: 6px;
}
.color-palette {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  align-items: center;
}
.color-swatch {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  border: 2.5px solid transparent;
  transition: transform .15s, border-color .15s, box-shadow .15s;
  flex-shrink: 0;
  position: relative;
}
.color-swatch:hover {
  transform: scale(1.18);
  box-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.color-swatch.active {
  border-color: #fff;
  transform: scale(1.12);
  box-shadow: 0 0 0 1px rgba(255,255,255,.3);
}
.color-swatch.active::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.9);
}
.color-swatch.custom-swatch {
  background: conic-gradient(#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b);
  border: 2.5px solid rgba(255,255,255,.15);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: transparent;
}
.color-swatch.custom-swatch:hover { border-color: rgba(255,255,255,.4); }

.color-input-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 8px 12px;
}
.color-preview-dot {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1px solid rgba(255,255,255,.15);
  flex-shrink: 0;
  cursor: pointer;
  transition: transform .15s;
}
.color-preview-dot:hover { transform: scale(1.08); }
.color-hex-input {
  background: transparent;
  border: none;
  color: #fff;
  font-size: 13px;
  font-family: 'SF Mono', 'Fira Code', monospace;
  padding: 0;
  width: 80px;
  letter-spacing: .06em;
  font-weight: 600;
}
.color-hex-input:focus { outline: none; }
.color-hex-input::placeholder { color: rgba(255,255,255,.2); }
.color-reset-btn {
  background: none;
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.35);
  border-radius: 7px;
  padding: 5px 10px;
  font-size: 11px;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.color-reset-btn:hover {
  border-color: rgba(255,255,255,.25);
  color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.05);
}

/* Locked state pre Free */
.color-picker-locked {
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.color-picker-locked-icon { font-size: 20px; opacity: .5; }
.color-picker-locked-text { font-size: 12px; color: rgba(255,255,255,.3); flex: 1; }
.color-picker-locked-text strong { color: rgba(255,255,255,.5); display: block; margin-bottom: 2px; font-size: 13px; }

/* Tímový enforce banner */
.color-team-enforced {
  background: rgba(79,142,255,.07);
  border: 1px solid rgba(79,142,255,.18);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 12px;
  color: rgba(255,255,255,.55);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Color swatch tooltip ────────────────────────────────────── */
.color-swatch[title] {
  position: relative;
}
.color-swatch[title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,.85);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  padding: 3px 7px;
  border-radius: 5px;
  white-space: nowrap;
  pointer-events: none;
  z-index: 100;
  letter-spacing: .03em;
}
.color-swatch[title]:hover::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 1px);
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: rgba(0,0,0,.85);
  pointer-events: none;
  z-index: 100;
}
