.studio-filter { display:grid; grid-template-columns:minmax(0,360px) minmax(165px,230px); gap:10px; margin:16px 0 25px; }
.studio-booking { padding:10px 14px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; background:var(--blue-soft); }
.studio-catalog-group { margin:0 0 25px; }
.studio-catalog-group h2 { margin-bottom:10px; }
.studio-catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,285px),1fr)); gap:12px; }
.studio-card { display:flex; flex-direction:column; align-items:flex-start; gap:9px; padding:16px; }
.studio-card p { color:var(--muted); font-size:.87rem; line-height:1.45; }
.studio-tags,.studio-card-actions,#studio-actions { display:flex; flex-wrap:wrap; gap:6px; }
.studio-card-actions { margin-top:auto; padding-top:3px; }
.studio-tags span { background:#edf2fa; color:#365374; padding:3px 7px; border-radius:5px; font-size:.72rem; }
.studio-tags span:first-child { background:var(--blue-soft); color:#004ba9; font-weight:650; }

#studio-dialog {
  width:min(97vw,1500px); max-width:none; height:94dvh; max-height:none; padding:0;
  overflow:hidden; background:#fff; box-shadow:0 22px 76px #14254450;
}
#studio-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.studio-top,.studio-footer {
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:13px clamp(13px,2vw,24px);
}
.studio-top { border-bottom:1px solid var(--line); }
.studio-top h2 { font-size:clamp(1rem,2vw,1.32rem); line-height:1.23; }
.studio-footer { border-top:1px solid var(--line); }
#studio-status { font-size:.85rem; color:var(--muted); }
#studio-status.error { color:#a31929; }
#studio-actions { flex:none; }
.studio-split { display:grid; grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr); min-height:0; }
.studio-form,.studio-preview { min-width:0; overflow:auto; overscroll-behavior:contain; }
.studio-form { padding:18px clamp(12px,2vw,23px) 30px; }
.studio-form h3 { margin-bottom:12px; }
#studio-fields { display:grid; gap:13px; }
#studio-fields > p { font-size:.84rem; line-height:1.45; }
#studio-fields label { font-size:.85rem; }
.studio-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.studio-preview { background:#eaf0f8; border-left:1px solid var(--line); padding:0 clamp(12px,3vw,28px) 28px; }
.studio-preview-bar {
  display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; padding:14px 0;
  position:sticky; top:0; background:#eaf0f8; z-index:1;
}
.studio-preview-bar span { color:#536881; font-size:.75rem; }
.studio-paper {
  max-width:780px; margin:auto; padding:clamp(14px,4vw,41px); min-height:65vh; background:white;
  border:1px solid #ced9e8; box-shadow:0 8px 23px #152d5314; overflow-wrap:anywhere;
}
.studio-paper > h3 { font-size:clamp(1.05rem,2vw,1.55rem); line-height:1.23; margin-bottom:7px; }
.studio-paper-meta { color:var(--muted); font-size:.75rem; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:12px; }
.studio-paper-field { display:grid; gap:2px; font-size:.78rem; margin-bottom:9px; }
.studio-paper :is(input,textarea) {
  padding:4px 6px; border:1px solid transparent; border-radius:4px; background:#f4f7fb; font-size:.85rem; line-height:1.42;
}
.studio-paper :is(input,textarea):focus { outline-offset:0; background:white; }
.studio-paper :is(input,textarea)[readonly] { background:white; }
.studio-paper-table { margin:10px 0 14px; }
.studio-paper h4,.studio-table-form h4 { margin:0 0 6px; font-size:.86rem; }
.studio-table-form { border:1px solid var(--line); border-radius:8px; padding:9px; min-width:0; }
.studio-table-form > button { margin-top:8px; }
.studio-table { overflow-x:auto; }
.studio-table table { border-collapse:collapse; min-width:100%; table-layout:auto; }
.studio-table th,.studio-table td { border:1px solid #ccd7e5; padding:4px; font-size:.75rem; vertical-align:top; }
.studio-table th { background:#edf3fb; text-align:left; }
.studio-table td textarea { min-width:105px; font-size:.78rem; padding:4px; }
.studio-paper .studio-table td textarea { min-width:85px; }
.studio-table p { padding:6px; font-size:.8rem; }
.studio-remove-row { font-size:.7rem; padding:4px; }
.studio-import { margin:9px 0 0; }
.studio-import input[type=file] { margin:7px 0 0; }
.studio-import p { padding-top:6px; }
.studio-import-options { display:grid; gap:6px; margin-top:6px; }
.studio-checkbox { display:flex; align-items:center; gap:7px; }
.studio-checkbox input { width:auto; }
.studio-signature { margin-top:13px; font-size:.81rem; }
.studio-custom-line { white-space:pre-wrap; font-size:.87rem; margin:0 0 7px; }
.studio-custom-line input { display:inline-block; width:min(100%,200px); margin-inline:3px; vertical-align:baseline; }
.studio-manager-topic { display:grid; gap:5px; padding:10px 0; }
.studio-manager-topic p { color:var(--muted); line-height:1.48; }
.guide-workflow {
  display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; margin:14px 0;
  border:1px solid var(--line); border-radius:9px; background:#f4f7fb;
}
.guide-workflow div { background:white; border:1px solid var(--line); border-radius:6px; padding:9px; }
.guide-workflow strong,.guide-workflow span { display:block; }
.guide-workflow span { font-size:.82rem; color:var(--muted); }
@media (max-width:770px) {
  #studio-dialog { width:98vw; height:97dvh; }
  .studio-split { display:block; overflow:auto; }
  .studio-form,.studio-preview { overflow:visible; }
  .studio-preview { border-left:0; border-top:1px solid var(--line); }
  .studio-preview-bar { position:static; }
  .studio-footer { flex-wrap:wrap; }
  #studio-actions { flex:0 1 auto; }
}
@media (max-width:440px) {
  .studio-filter,.guide-workflow { grid-template-columns:1fr; }
  .studio-footer,.studio-top { padding:9px 10px; }
  #studio-actions button { font-size:.75rem; padding:7px 8px; }
}
.studio-preview-date-fields { margin:0 0 13px; }
.studio-preview-date-fields label { font-size:.77rem; }

.studio-template-fields { display:grid; gap:10px; }
.studio-template-field,.studio-archive { padding:12px; }
.studio-template-field { display:grid; gap:8px; }
.studio-archive > div { margin-top:8px; }
