:root {
  --vku-blue:#4f73ff;
  --vku-blue-2:#3f64f2;
  --vku-text:#292833;
  --vku-muted:#8d8d96;
  --vku-bg:#f7f7f8;
  --vku-card:#fff;
  --vku-line:#e7e7ea;
  --vku-soft:#f1f1f3;
  --vku-green:#16a34a;
  --vku-green-bg:#e9f8ef;
  --vku-orange:#f59e0b;
  --vku-orange-bg:#fff6dc;
  --vku-red:#dc2626;
  --vku-red-bg:#fff0f0;
}

body .vku-cabinet-page,
body .vku-cabinet-page * { box-sizing:border-box; }
body .vku-cabinet-page { color:var(--vku-text); font-family:inherit; background:var(--vku-bg); min-height:100vh; padding:28px 0 48px; }
.vku-cabinet-layout { width:min(1440px,calc(100% - 40px)); margin:0 auto; display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; align-items:start; }
.vku-sidebar { background:#fff; border-radius:26px; min-height:calc(100vh - 56px); padding:22px 16px; position:sticky; top:18px; }
.vku-sidebar__logo { display:flex; align-items:center; justify-content:center; width:100%; padding:5px 4px 24px; border-bottom:1px solid var(--vku-line); margin-bottom:18px; }
.vku-sidebar__logo img { display:block; width:100%; max-width:185px; height:48px; object-fit:contain; }
.vku-sidebar__nav { display:grid; gap:8px; }
.vku-nav-item { min-height:50px; border-radius:14px; padding:10px 12px; display:flex; align-items:center; gap:11px; text-decoration:none!important; color:#24232d!important; font-size:15px; font-weight:500; background:#fff; transition:.18s ease; }
.vku-nav-item:hover { background:#f3f5ff; color:var(--vku-blue)!important; }
.vku-nav-item.is-active { background:var(--vku-blue); color:#fff!important; }
.vku-nav-item .dashicons { width:24px; height:24px; font-size:23px; line-height:24px; color:inherit; }
.vku-cabinet-main { min-width:0; }
.vku-cabinet-topbar { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.vku-page-title { font-size:28px; font-weight:600; line-height:1.2; }
.vku-search-placeholder { min-width:245px; height:48px; border:1px solid #25242c; border-radius:14px; background:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 16px; font-size:16px; }
.vku-user-chip { background:#fff; border-radius:14px; display:flex; align-items:center; gap:10px; padding:8px 10px; min-width:235px; }
.vku-user-chip img { width:36px; height:36px; border-radius:9px; object-fit:cover; }
.vku-user-chip__text { min-width:0; display:grid; line-height:1.05; flex:1; }
.vku-user-chip__text span { color:var(--vku-muted); font-size:12px; }
.vku-user-chip__text strong { font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vku-user-chip__logout { color:#9a9aa1!important; text-decoration:none!important; font-size:17px; padding:6px; }
.vku-cabinet-content { display:grid; gap:20px; }
.vku-card { background:var(--vku-card); border-radius:26px; padding:26px; box-shadow:0 1px 0 rgba(0,0,0,.02); }
.vku-card h1,.vku-card h2,.vku-card h3,.vku-card p { margin-top:0; }
.vku-card h1 { font-size:30px; line-height:1.15; margin-bottom:8px; }
.vku-card h2 { font-size:22px; margin-bottom:18px; }
.vku-card h3 { font-size:17px; }
.vku-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:22px; }
.vku-section-head p { color:var(--vku-muted); margin:6px 0 0; line-height:1.45; }
.vku-notice { border-radius:18px; padding:15px 18px; font-weight:600; }
.vku-notice.is-success { background:var(--vku-green-bg); color:#126c35; }
.vku-notice.is-warning { background:var(--vku-orange-bg); color:#8b6200; }
.vku-notice.is-danger { background:var(--vku-red-bg); color:#a71919; }
.vku-btn { appearance:none; border:0; border-radius:14px; min-height:46px; padding:0 19px; display:inline-flex; align-items:center; justify-content:center; gap:8px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none!important; transition:.18s ease; }
.vku-btn.primary { background:var(--vku-blue); color:#fff!important; }
.vku-btn.primary:hover { background:var(--vku-blue-2); }
.vku-btn.secondary { background:#f0f0f2; color:var(--vku-text)!important; }
.vku-btn.danger { background:#fff1f1; color:#cf2020!important; }
.vku-icon-btn { width:40px; height:40px; border-radius:12px; background:#f1f1f3; display:inline-flex; align-items:center; justify-content:center; text-decoration:none!important; color:#2b2a34!important; font-size:20px; }
.vku-two-cols { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr); gap:20px; }
.vku-form { display:grid; gap:15px; }
.vku-form-grid { display:grid; gap:14px; }
.vku-form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vku-field { display:grid; gap:6px; }
.vku-field > span { font-size:13px; color:#777780; }
.vku-field input,.vku-field select,.vku-field textarea,.vku-form input,.vku-form select,.vku-form textarea { width:100%; border:1px solid #d9d9df; background:#fff; border-radius:14px; padding:13px 15px; min-height:49px; font:inherit; color:var(--vku-text); outline:none; }
.vku-field textarea { resize:vertical; }
.vku-field input:focus,.vku-field select:focus,.vku-field textarea:focus { border-color:var(--vku-blue); box-shadow:0 0 0 3px rgba(79,115,255,.11); }
.vku-file-field input[type=file], .vku-cabinet-page input[type=file] { padding:8px; }
.vku-cabinet-page input[type=file]::file-selector-button { border:0; background:#eef2ff; color:var(--vku-blue); border-radius:10px; padding:9px 12px; margin-right:10px; font-weight:600; cursor:pointer; }
.vku-profile-card { display:grid; grid-template-columns:270px minmax(0,1fr); gap:22px; }
.vku-profile-card__photo img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:20px; display:block; }
.vku-profile-card__head { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }
.vku-profile-card__head h1 { margin:0; }
.vku-profile-card__head p { margin:4px 0 0; color:var(--vku-muted); }
.vku-profile-description { margin-top:22px!important; color:#565660; line-height:1.55; }
.vku-status-badge { display:inline-flex; align-items:center; justify-content:center; min-height:30px; border-radius:999px; padding:4px 11px; font-size:12px; font-weight:700; white-space:nowrap; }
.vku-status-badge.status-approved { background:var(--vku-green-bg); color:#117339; }
.vku-status-badge.status-pending { background:var(--vku-orange-bg); color:#956700; }
.vku-status-badge.status-rejected,.vku-status-badge.status-cancelled { background:var(--vku-red-bg); color:#b32626; }
.vku-info-list { display:grid; gap:0; }
.vku-info-list > div { display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--vku-line); }
.vku-info-list span { color:var(--vku-muted); }

/* Modern upload zones */
.vku-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.vku-dropzone { min-height:155px; border:1.5px dashed #cfd3e4; border-radius:20px; background:#fafbff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:7px; padding:18px; cursor:pointer; transition:.18s; position:relative; overflow:hidden; }
.vku-dropzone:hover,.vku-dropzone.is-dragover { border-color:var(--vku-blue); background:#f4f6ff; }
.vku-dropzone input { position:absolute!important; inset:0; opacity:0; cursor:pointer; width:100%!important; height:100%!important; }
.vku-dropzone .dashicons { font-size:30px; width:30px; height:30px; color:var(--vku-blue); }
.vku-dropzone strong { font-size:16px; }
.vku-dropzone small,.vku-dropzone em { color:var(--vku-muted); font-style:normal; font-size:12px; }

/* Salon places */
.vku-place-admin-list { display:grid; gap:14px; }
.vku-place-admin-card { background:#f6f6f8; border-radius:20px; padding:14px; display:grid; grid-template-columns:145px minmax(0,1fr) auto; gap:16px; align-items:center; }
.vku-place-admin-card > img { width:145px; height:105px; object-fit:cover; border-radius:15px; display:block; }
.vku-place-admin-card__body h3 { margin:0 0 3px; }
.vku-place-admin-card__body p { margin:0 0 5px; color:#666670; }
.vku-place-admin-card__body strong,.vku-place-admin-card__body small { display:block; }
.vku-place-admin-card__body small { color:var(--vku-muted); margin-top:4px; }
.vku-place-admin-card__actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }

/* Schedule */
.vku-place-switcher select { min-width:260px; border:1px solid #d9d9df; border-radius:14px; padding:12px 14px; background:#fff; font:inherit; }
.vku-bulk-schedule { border:1px solid var(--vku-line); border-radius:20px; padding:18px; margin-bottom:20px; background:#fbfbfc; }
.vku-bulk-schedule__title { font-weight:700; margin-bottom:13px; }
.vku-bulk-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.vku-bulk-grid label { display:grid; gap:5px; color:#777780; font-size:12px; }
.vku-bulk-grid input,.vku-bulk-grid select { border:1px solid #d9d9df; border-radius:12px; background:#fff; padding:10px; min-height:44px; font:inherit; }
.vku-weekdays { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.vku-weekdays label input { position:absolute; opacity:0; pointer-events:none; }
.vku-weekdays label span { display:flex; min-width:44px; justify-content:center; padding:9px 12px; border:1px solid #dddfe8; border-radius:11px; background:#fff; cursor:pointer; }
.vku-weekdays label input:checked + span { background:var(--vku-blue); color:#fff; border-color:var(--vku-blue); }
.vku-bulk-actions { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.vku-schedule-toolbar { display:flex; align-items:center; justify-content:center; gap:15px; margin:6px 0 15px; }
.vku-schedule-scroll { overflow:auto; border:1px solid var(--vku-line); border-radius:18px; }
.vku-schedule-grid { min-width:1080px; display:grid; grid-template-columns:92px repeat(16,1fr); gap:3px; padding:10px; background:#fff; }
.vku-schedule-corner,.vku-schedule-hour,.vku-schedule-date { min-height:40px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:#f7f7f9; font-size:12px; }
.vku-schedule-date { flex-direction:column; line-height:1.05; gap:2px; }
.vku-schedule-date span { color:var(--vku-muted); }
.vku-schedule-date.is-weekend { background:#fff3ed; }
.vku-slot { appearance:none; border:0; border-radius:7px; min-height:40px; background:#eceef3; cursor:pointer; transition:.12s; }
.vku-slot:hover:not(:disabled) { transform:translateY(-1px); background:#dfe4ff; }
.vku-slot.is-selected { background:var(--vku-blue); }
.vku-slot.is-locked { background:#ff9a72; cursor:not-allowed; opacity:.9; }
.vku-schedule-legend { display:flex; gap:18px; flex-wrap:wrap; margin:14px 0; color:#6c6c74; font-size:13px; }
.vku-schedule-legend span { display:flex; align-items:center; gap:7px; }
.vku-schedule-legend i { width:16px; height:16px; border-radius:5px; background:#eceef3; }
.vku-schedule-legend i.selected { background:var(--vku-blue); }
.vku-schedule-legend i.locked { background:#ff9a72; }
.vku-schedule-save { display:flex; justify-content:flex-end; }

/* Requests */
.vku-request-list { display:grid; gap:14px; }
.vku-request-card { display:grid; grid-template-columns:86px minmax(0,1fr); gap:15px; padding:16px; background:#f8f8fa; border-radius:18px; border-left:4px solid #f1b443; }
.vku-request-card.status-approved { border-left-color:var(--vku-green); }
.vku-request-card.status-rejected { border-left-color:var(--vku-red); }
.vku-request-card__avatar { width:86px; height:86px; border-radius:16px; object-fit:cover; }
.vku-request-card__head { display:flex; justify-content:space-between; gap:12px; }
.vku-request-card__head h3 { margin:0; }
.vku-request-card__head p { margin:3px 0 0; color:var(--vku-muted); }
.vku-request-meta { display:flex; flex-wrap:wrap; gap:10px 18px; margin:13px 0; color:#5f5f68; font-size:14px; }
.vku-request-actions { display:flex; flex-wrap:wrap; gap:8px; }

/* Chats */
.vku-chat-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:18px; min-height:650px; }
.vku-chat-list,.vku-chat-thread { padding:18px; min-height:650px; }
.vku-chat-list-item { display:grid; grid-template-columns:50px minmax(0,1fr); gap:10px; padding:10px; border-radius:14px; color:var(--vku-text)!important; text-decoration:none!important; margin-bottom:6px; }
.vku-chat-list-item:hover,.vku-chat-list-item.is-active { background:#f0f3ff; }
.vku-chat-list-item img { width:50px; height:50px; border-radius:13px; object-fit:cover; }
.vku-chat-list-item__text { min-width:0; display:grid; }
.vku-chat-list-item__text strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vku-chat-list-item__text small { color:var(--vku-muted); }
.vku-chat-list-item__text em { color:#777780; font-style:normal; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.vku-chat-thread { display:grid; grid-template-rows:auto 1fr auto; }
.vku-chat-thread__head { display:flex; align-items:center; gap:11px; border-bottom:1px solid var(--vku-line); padding-bottom:13px; }
.vku-chat-thread__head img { width:46px; height:46px; object-fit:cover; border-radius:12px; }
.vku-chat-thread__head div { display:grid; }
.vku-chat-thread__head span { color:var(--vku-muted); font-size:12px; }
.vku-chat-messages { overflow:auto; padding:20px 4px; display:flex; flex-direction:column; gap:12px; max-height:540px; }
.vku-message { max-width:72%; display:grid; gap:4px; }
.vku-message.is-mine { align-self:flex-end; justify-items:end; }
.vku-message.is-theirs { align-self:flex-start; }
.vku-message__bubble { padding:12px 14px; border-radius:16px; background:#f0f0f2; line-height:1.45; }
.vku-message.is-mine .vku-message__bubble { background:var(--vku-blue); color:#fff; border-bottom-right-radius:5px; }
.vku-message.is-theirs .vku-message__bubble { border-bottom-left-radius:5px; }
.vku-message time { font-size:11px; color:var(--vku-muted); }
.vku-chat-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; border-top:1px solid var(--vku-line); padding-top:14px; }
.vku-chat-form textarea { border:1px solid #d9d9df; border-radius:14px; resize:none; padding:12px 14px; font:inherit; min-height:50px; }
.vku-chat-empty { margin:auto; text-align:center; color:var(--vku-muted); }

/* Booking market */
.vku-booking-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-bottom:18px; }
.vku-booking-search input { border:1px solid #d9d9df; border-radius:14px; padding:13px 15px; font:inherit; }
.vku-market-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.vku-salon-card,.vku-place-card { background:#f7f7f9; border-radius:20px; overflow:hidden; text-decoration:none!important; color:var(--vku-text)!important; display:block; border:1px solid transparent; transition:.18s; }
.vku-salon-card:hover,.vku-place-card:hover { border-color:#cfd8ff; transform:translateY(-2px); }
.vku-salon-card img,.vku-place-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.vku-salon-card div,.vku-place-card div { padding:15px; }
.vku-salon-card h3,.vku-place-card h3 { margin:0 0 6px; }
.vku-salon-card p,.vku-place-card p { color:#686873; margin:0 0 8px; }
.vku-salon-card span,.vku-place-card span { color:var(--vku-muted); font-size:13px; display:block; margin-top:5px; }
.vku-breadcrumbs { display:flex; align-items:center; gap:15px; margin-bottom:15px; }
.vku-breadcrumbs a { color:var(--vku-blue)!important; }
.vku-book-place-layout { display:grid; grid-template-columns:360px minmax(0,1fr); gap:20px; }
.vku-book-place-summary { background:#f7f7f9; border-radius:20px; overflow:hidden; padding-bottom:18px; }
.vku-book-place-summary img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.vku-book-place-summary h2,.vku-book-place-summary p,.vku-book-place-summary strong { margin-left:16px; margin-right:16px; }
.vku-book-place-summary h2 { margin-top:14px; margin-bottom:4px; }
.vku-book-place-summary p { color:#6c6c75; }
.vku-book-slot-form { display:grid; align-content:start; gap:14px; }
.vku-book-hours { display:flex; flex-wrap:wrap; gap:8px; padding:14px; border-radius:16px; background:#f8f8fa; min-height:76px; }
.vku-book-hour label { display:block; cursor:pointer; }
.vku-book-hour input { position:absolute; opacity:0; pointer-events:none; }
.vku-book-hour span { display:flex; align-items:center; justify-content:center; min-width:92px; min-height:42px; padding:8px 11px; border-radius:11px; background:#fff; border:1px solid #dddfe8; }
.vku-book-hour input:checked + span { background:var(--vku-blue); border-color:var(--vku-blue); color:#fff; }
.vku-book-total { display:flex; align-items:center; justify-content:space-between; font-size:18px; }
.vku-history-list { display:grid; gap:10px; }
.vku-history-item { display:flex; align-items:center; justify-content:space-between; gap:14px; background:#f7f7f9; border-radius:15px; padding:14px 16px; }
.vku-history-item > div:first-child { display:grid; gap:3px; }
.vku-history-item span { color:#73737c; }
.vku-history-actions { display:flex; align-items:center; gap:12px; }
.vku-history-actions a { color:var(--vku-blue)!important; }
.vku-empty { padding:24px; border-radius:16px; background:#f8f8fa; color:var(--vku-muted); text-align:center; }

/* Registration consents */
.vk-register-consents { border:1px solid #e4e4e9; background:#fafafa; border-radius:16px; padding:14px 16px; display:grid; gap:10px; margin:12px 0 14px; }
.vk-register-consents__title { font-size:13px; color:#6e6e77; margin-bottom:2px; }
.vk-register-consent { display:flex; align-items:flex-start; gap:9px; cursor:pointer; font-size:14px; line-height:1.4; }
.vk-register-consent input { width:18px!important; height:18px!important; min-height:0!important; flex:0 0 18px; margin-top:1px; accent-color:var(--vku-blue); }
.vk-register-consent a { color:var(--vku-blue)!important; text-decoration:underline!important; }

/* Fix stretching/cropping in legacy master cabinet */
.profile img,
.profile__inner img,
.account img,
.vk-account img { max-width:100%; }
.profile-card img,
.profile__photo img,
.profile-photo img,
.portfolio img,
.portfolio__item img,
.vk-portfolio img { object-fit:cover; }
.profile-card img,
.profile__photo img,
.profile-photo img { aspect-ratio:1/1; }
.portfolio__item img,
.vk-portfolio img { aspect-ratio:1/1; }

/* Native file fields in old forms */
.vk-auth-form input[type=file],
.profile-edit input[type=file],
.vk-profile-edit input[type=file] { background:#fafbff; border:1px dashed #cfd3e4; border-radius:14px; padding:10px; }

@media (max-width:1100px) {
  .vku-cabinet-layout { grid-template-columns:180px minmax(0,1fr); gap:18px; width:min(100% - 24px,1200px); }
  .vku-nav-item { font-size:14px; }
  .vku-market-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vku-bulk-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vku-two-cols,.vku-book-place-layout { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  body .vku-cabinet-page { padding-top:10px; }
  .vku-cabinet-layout { display:block; width:100%; }
  .vku-sidebar { min-height:0; position:static; border-radius:0 0 22px 22px; padding:12px; }
  .vku-sidebar__logo { padding-bottom:10px; margin-bottom:10px; }
  .vku-sidebar__logo img { height:38px; max-width:160px; }
  .vku-sidebar__nav { display:flex; gap:7px; overflow:auto; padding-bottom:2px; }
  .vku-nav-item { min-width:max-content; min-height:42px; padding:8px 10px; }
  .vku-cabinet-main { padding:12px; }
  .vku-cabinet-topbar { min-height:50px; margin-bottom:10px; }
  .vku-page-title { font-size:21px; }
  .vku-user-chip { min-width:0; max-width:55%; }
  .vku-user-chip__text span { display:none; }
  .vku-card { padding:17px; border-radius:20px; }
  .vku-profile-card { grid-template-columns:1fr; }
  .vku-profile-card__photo { max-width:260px; }
  .vku-form-grid.two,.vku-upload-grid,.vku-market-grid,.vku-bulk-grid { grid-template-columns:1fr; }
  .vku-place-admin-card { grid-template-columns:100px minmax(0,1fr); }
  .vku-place-admin-card > img { width:100px; height:90px; }
  .vku-place-admin-card__actions { grid-column:1/-1; justify-content:flex-start; }
  .vku-chat-layout { grid-template-columns:1fr; min-height:0; }
  .vku-chat-list,.vku-chat-thread { min-height:0; }
  .vku-chat-messages { max-height:55vh; }
  .vku-message { max-width:90%; }
  .vku-request-card { grid-template-columns:60px minmax(0,1fr); }
  .vku-request-card__avatar { width:60px; height:60px; }
  .vku-history-item { align-items:flex-start; flex-direction:column; }
}

/* =========================================================
   FIX PACK 04.09.2026
   ========================================================= */

/* Legacy master sidebar: keep icons and labels visible, matching salon cabinet. */
.profile-sidebar__logo img {
  display:block;
  width:100%;
  height:auto;
  max-height:58px;
  object-fit:contain;
}
.profile-sidebar__link {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}
.profile-sidebar__link-icon {
  flex:0 0 32px;
  width:32px;
  height:32px;
  display:flex !important;
  align-items:center;
  justify-content:center;
}
.profile-sidebar__link-icon img,
.profile-sidebar__link-icon svg {
  display:block !important;
  width:28px !important;
  height:28px !important;
  object-fit:contain;
}
.profile-sidebar__link-text {
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
  width:auto !important;
  max-width:none !important;
  overflow:visible !important;
  color:#2b2a34 !important;
}
.profile-sidebar__link._active .profile-sidebar__link-text,
.profile-sidebar__link._active .profile-sidebar__link-text * {
  color:#fff !important;
}

/* Existing place images when editing. */
.vku-existing-media {
  display:grid;
  gap:18px;
  padding:18px;
  background:#f8f8fa;
  border:1px solid var(--vku-line);
  border-radius:20px;
}
.vku-existing-media__group {
  display:grid;
  gap:12px;
}
.vku-existing-media__head {
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-end;
}
.vku-existing-media__head small {
  color:var(--vku-muted);
  text-align:right;
}
.vku-current-gallery {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.vku-media-thumb {
  position:relative;
  display:block;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--vku-line);
  cursor:pointer;
}
.vku-media-thumb.is-main {
  max-width:280px;
}
.vku-media-thumb img {
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.vku-media-thumb.is-main img {
  aspect-ratio:4/3;
}
.vku-media-remove-control {
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  min-height:34px;
  padding:7px 10px;
  border-radius:10px;
  background:rgba(255,255,255,.94);
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  color:#b52323;
  box-shadow:0 3px 12px rgba(0,0,0,.08);
}
.vku-media-remove-control input {
  width:16px !important;
  height:16px !important;
  min-height:0 !important;
  margin:0;
  accent-color:var(--vku-red);
}

/* Schedule drag selection. */
[data-vku-schedule] .vku-slot:not(.is-locked) {
  cursor:crosshair;
  touch-action:none;
  user-select:none;
}
[data-vku-schedule].is-dragging-schedule,
[data-vku-schedule].is-dragging-schedule * {
  user-select:none !important;
}

/* Generic modal + master preview. */
html.vku-modal-lock,
html.vku-modal-lock body {
  overflow:hidden;
}
.vku-modal {
  position:fixed;
  inset:0;
  z-index:100000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.vku-modal.is-open {
  display:flex;
}
.vku-modal__overlay {
  position:absolute;
  inset:0;
  background:rgba(31,31,38,.58);
  backdrop-filter:blur(3px);
}
.vku-modal__dialog {
  position:relative;
  z-index:2;
  width:min(760px,100%);
  max-height:min(86vh,900px);
  overflow:auto;
  background:#fff;
  border-radius:26px;
  padding:26px;
  box-shadow:0 24px 80px rgba(0,0,0,.2);
}
.vku-modal__close {
  position:absolute;
  top:16px;
  right:16px;
  width:40px;
  height:40px;
  border:0;
  border-radius:12px;
  background:#f1f1f3;
  color:#292833;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}
.vku-master-preview-head {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding-right:46px;
}
.vku-master-preview-head > img {
  width:120px;
  height:120px;
  border-radius:22px;
  object-fit:cover;
}
.vku-master-preview-head h2 {
  margin:2px 0 4px;
  font-size:26px;
}
.vku-master-preview-head p {
  margin:0;
  color:var(--vku-muted);
}
.vku-master-preview-kicker {
  color:var(--vku-blue);
  font-size:13px;
  font-weight:700;
}
.vku-master-preview-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:20px;
}
.vku-master-preview-facts > div {
  min-height:78px;
  padding:14px;
  border-radius:16px;
  background:#f6f6f8;
  display:grid;
  gap:4px;
  align-content:center;
}
.vku-master-preview-facts span {
  color:var(--vku-muted);
  font-size:12px;
}
.vku-master-preview-section {
  margin-top:22px;
}
.vku-master-preview-section h3 {
  margin:0 0 10px;
  font-size:18px;
}
.vku-master-preview-section p {
  color:#5d5d66;
  line-height:1.55;
}
.vku-master-preview-section__head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.vku-master-preview-section__head span {
  color:var(--vku-muted);
  font-size:13px;
}
.vku-master-preview-portfolio {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.vku-master-preview-portfolio img {
  width:100%;
  aspect-ratio:1/1;
  border-radius:14px;
  object-fit:cover;
}
.vku-master-preview-contacts {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  padding:14px;
  border-radius:16px;
  background:#f6f6f8;
}
.vku-master-preview-actions {
  display:flex;
  justify-content:flex-end;
  margin-top:22px;
}

@media (max-width:900px) {
  .vku-current-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .vku-existing-media__head { align-items:flex-start; flex-direction:column; }
  .vku-existing-media__head small { text-align:left; }
  .vku-current-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .vku-modal { padding:10px; }
  .vku-modal__dialog { border-radius:20px; padding:18px; }
  .vku-master-preview-head { grid-template-columns:82px minmax(0,1fr); gap:12px; }
  .vku-master-preview-head > img { width:82px; height:82px; border-radius:17px; }
  .vku-master-preview-head h2 { font-size:20px; }
  .vku-master-preview-facts { grid-template-columns:1fr; }
  .vku-master-preview-portfolio { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
