/* PMG Booking - design system (orange & white) */
:root{
  --brand:#F15A22;
  --brand-600:#D9480F;
  --brand-700:#B83A0B;
  --brand-50:#FFF5EF;
  --brand-100:#FFE6D9;
  --brand-200:#FDCDB4;

  --ink:#1A1715;
  --text:#3D3733;
  --muted:#857C76;
  --faint:#ABA39D;
  --line:#ECE6E1;
  --line-2:#E0D8D2;
  --bg:#F8F6F4;
  --surface:#FFFFFF;
  --surface-2:#FBFAF9;

  --green:#16A34A;  --green-bg:#EAF7EF;
  --teal:#0D9488;   --teal-bg:#E6F6F4;
  --blue:#2563EB;   --blue-bg:#EBF1FE;
  --amber:#C27C0E;  --amber-bg:#FDF4E3;
  --red:#DC2626;    --red-bg:#FDECEC;
  --gray:#6B635E;   --gray-bg:#F1EEEB;

  --r-sm:4px; --r:6px; --r-lg:8px; --r-xl:10px;
  --shadow-sm:0 1px 2px rgba(26,23,21,.05);
  --shadow:0 1px 2px rgba(26,23,21,.04), 0 6px 24px -8px rgba(26,23,21,.10);
  --shadow-lg:0 24px 60px -20px rgba(26,23,21,.28);
  --font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --display:"Montserrat", "Inter", ui-sans-serif, system-ui, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font:400 15px/1.55 var(--font); -webkit-font-smoothing:antialiased;
  font-feature-settings:"cv11","ss01";
}
a{ color:var(--brand-600); text-decoration:none; }
a:hover{ color:var(--brand-700); }
h1,h2,h3,h4{ font-family:var(--display); color:var(--ink); margin:0; letter-spacing:-.02em; line-height:1.2; }
p{ margin:0 0 12px; }
img{ max-width:100%; }
.ic{ flex:none; display:inline-block; vertical-align:middle; }
.muted{ color:var(--muted); }
.small{ font-size:13px; }
.mono{ font-family:var(--mono); font-size:.92em; }
.nowrap{ white-space:nowrap; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.req{ color:var(--brand); margin-left:2px; }
hr.sep{ border:0; border-top:1px solid var(--line); margin:20px 0; }

/* ---------- Buttons ---------- */
.btn{
  --bh:42px;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:var(--bh); padding:0 18px; border-radius:6px; border:1px solid transparent;
  font:600 14px/1 var(--font); cursor:pointer; white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s, box-shadow .15s, transform .05s;
  text-decoration:none;
}
.btn:active{ transform:translateY(1px); }
.btn:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--brand-100); }
.btn-primary{ background:var(--brand); color:#fff; box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 1px 2px rgba(193,65,12,.35); }
.btn-primary:hover{ background:var(--brand-600); color:#fff; }
.btn-secondary{ background:var(--surface); color:var(--ink); border-color:var(--line-2); box-shadow:var(--shadow-sm); }
.btn-secondary:hover{ border-color:#CFC5BD; color:var(--ink); background:var(--surface-2); }
.btn-ghost{ background:transparent; color:var(--text); }
.btn-ghost:hover{ background:var(--gray-bg); color:var(--ink); }
.btn-danger{ background:var(--surface); color:var(--red); border-color:#F3C9C9; }
.btn-danger:hover{ background:var(--red-bg); color:var(--red); }
.btn-success{ background:var(--green); color:#fff; }
.btn-success:hover{ background:#12863D; color:#fff; }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#000; color:#fff; }
.btn-sm{ --bh:34px; padding:0 12px; font-size:13px; border-radius:5px; }
.btn-lg{ --bh:52px; padding:0 26px; font-size:15px; border-radius:6px; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.55; pointer-events:none; }
.btn-icon{ width:var(--bh); padding:0; }

/* ---------- Forms ---------- */
.field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.field > label, .label{ font:600 13px/1.3 var(--font); color:var(--ink); }
.field .hint{ font-size:12.5px; color:var(--muted); }
.field .opt{ font-weight:400; color:var(--faint); margin-left:4px; }
.input, .select, .textarea{
  width:100%; height:46px; padding:0 14px;
  background:var(--surface); color:var(--ink);
  border:1px solid var(--line-2); border-radius:6px;
  font:400 15px/1.3 var(--font);
  transition:border-color .15s, box-shadow .15s, background .15s;
  -webkit-appearance:none; appearance:none;
}
.input::placeholder, .textarea::placeholder{ color:#B5ADA7; }
.input:hover, .select:hover, .textarea:hover{ border-color:#D3C9C1; }
.input:focus, .select:focus, .textarea:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px var(--brand-100); }
.textarea{ height:auto; min-height:104px; padding:12px 14px; line-height:1.5; resize:vertical; }
.select{
  padding-right:40px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23857C76' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center;
}
.input-sm, .select.input-sm{ height:38px; font-size:14px; border-radius:5px; }
.has-error .input, .has-error .select, .has-error .textarea{ border-color:var(--red); background:#FFFBFB; }
.has-error .input:focus, .has-error .select:focus, .has-error .textarea:focus{ box-shadow:0 0 0 4px var(--red-bg); }
.field-error{ font-size:12.5px; color:var(--red); font-weight:500; }
.input-group{ display:flex; }
.input-group .input{ border-radius:6px 0 0 6px; }
.input-group .select{ width:auto; min-width:96px; border-radius:0 6px 6px 0; margin-left:-1px; background-color:var(--surface-2); }
.grid{ display:grid; gap:18px; }
.g2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.g3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.span2{ grid-column:span 2; }
.span-all{ grid-column:1 / -1; }

.check{ display:flex; gap:12px; align-items:flex-start; cursor:pointer; font-size:14px; line-height:1.45; color:var(--text); }
.check input{ position:absolute; opacity:0; pointer-events:none; }
.check .box{
  flex:none; width:20px; height:20px; margin-top:1px; border-radius:4px;
  border:1.5px solid #CFC5BD; background:var(--surface); display:grid; place-items:center;
  transition:all .15s;
}
.check .box::after{ content:""; width:10px; height:6px; border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px); opacity:0; }
.check input:checked + .box{ background:var(--brand); border-color:var(--brand); }
.check input:checked + .box::after{ opacity:1; }
.check input:focus-visible + .box{ box-shadow:0 0 0 4px var(--brand-100); }
.has-error .check .box{ border-color:var(--red); }

.seg{ display:inline-flex; background:var(--gray-bg); border-radius:6px; padding:4px; gap:2px; }
.seg label{ position:relative; cursor:pointer; }
.seg input{ position:absolute; opacity:0; }
.seg span{ display:block; padding:9px 18px; border-radius:4px; font:600 14px/1 var(--font); color:var(--muted); transition:all .15s; }
.seg input:checked + span{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow-sm); }
.seg input:focus-visible + span{ box-shadow:0 0 0 3px var(--brand-100); }

.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip-check{ position:relative; }
.chip-check input{ position:absolute; opacity:0; }
.chip-check span{
  display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 14px; border-radius:999px;
  border:1px solid var(--line-2); background:var(--surface); font:500 13.5px/1 var(--font); color:var(--text); cursor:pointer; transition:all .15s;
}
.chip-check input:checked + span{ background:var(--brand-50); border-color:var(--brand); color:var(--brand-700); }
.chip-check input:checked + span::before{ content:"✓"; font-weight:700; }

/* ---------- Badges ---------- */
.badge{
  display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 10px; border-radius:999px;
  font:600 12px/1 var(--font); white-space:nowrap;
}
.badge i{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.tone-orange{ background:var(--brand-50); color:var(--brand-700); }
.tone-amber{ background:var(--amber-bg); color:var(--amber); }
.tone-blue{ background:var(--blue-bg); color:var(--blue); }
.tone-teal{ background:var(--teal-bg); color:var(--teal); }
.tone-green{ background:var(--green-bg); color:var(--green); }
.tone-red{ background:var(--red-bg); color:var(--red); }
.tone-gray{ background:var(--gray-bg); color:var(--gray); }

/* ---------- Cards ---------- */
.card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.card-pad{ padding:24px; }
.card-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line); }
.card-head h2, .card-head h3{ font-size:16px; font-weight:700; }
.card-body{ padding:22px; }
.card-foot{ padding:16px 22px; border-top:1px solid var(--line); background:var(--surface-2); border-radius:0 0 var(--r-lg) var(--r-lg); }

.alert{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:var(--r); font-size:14px; line-height:1.5; }
.alert .ic{ margin-top:1px; }
.alert-error{ background:var(--red-bg); color:#991B1B; }
.alert-success{ background:var(--green-bg); color:#166534; }
.alert-warn{ background:var(--amber-bg); color:#8A5A07; }
.alert-info{ background:var(--brand-50); color:var(--brand-700); }

.kv{ display:grid; grid-template-columns:minmax(120px, 38%) 1fr; margin:0; }
.kv dt, .kv dd{ margin:0; padding:11px 0; border-top:1px solid var(--line); font-size:14px; }
.kv dt{ color:var(--muted); padding-right:16px; }
.kv dd{ color:var(--ink); word-break:break-word; }
.kv dt:first-of-type, .kv dt:first-of-type + dd{ border-top:0; }
.kv dd .muted{ display:block; font-size:13px; }

.empty{ text-align:center; padding:48px 20px; color:var(--muted); }
.empty .ic{ color:var(--faint); margin-bottom:10px; }
.empty h3{ font-size:16px; margin-bottom:6px; }

.avatar{
  width:34px; height:34px; border-radius:50%; background:var(--brand-100); color:var(--brand-700);
  display:grid; place-items:center; font:700 12.5px/1 var(--font); flex:none;
}
.dot{ display:inline-block; width:10px; height:10px; border-radius:50%; flex:none; }

/* ============================================================
   PUBLIC: form, thank-you, client portal
   ============================================================ */
.pub{ background:var(--surface); }
.pub-top{ position:relative; z-index:30; background:var(--ink); }
.pub-top .inner{ position:relative; max-width:1180px; margin:0 auto; height:76px; padding:0 24px; display:flex; align-items:center; justify-content:flex-end; }
.logo-badge{
  position:absolute; left:24px; top:0; z-index:5;
  display:flex; align-items:center; justify-content:center;
  padding:18px 26px 26px; background:var(--brand); border-radius:0 0 20px 20px;
  box-shadow:0 24px 44px -16px rgba(0,0,0,.45);
}
.logo-badge img{ display:block; height:116px; width:auto; }
.pub-nav{ display:flex; align-items:center; gap:26px; }
.pub-link{ display:inline-flex; align-items:center; gap:8px; font:700 13px/1 var(--font); color:#CFC8C2; }
.pub-link:hover{ color:#fff; }
.pub-link .ic{ color:var(--brand); }
.lang-switch{ display:inline-flex; border:1px solid rgba(255,255,255,.18); border-radius:4px; overflow:hidden; }
.lang-switch a, .lang-switch span{ padding:8px 12px; font:700 12px/1 var(--display); letter-spacing:.08em; color:#A8A09A; }
.lang-switch span{ background:var(--brand); color:#fff; }
.lang-switch a:hover{ color:#fff; background:rgba(255,255,255,.06); }

.pub-hero{
  position:relative; overflow:hidden; background-color:#140806;
  background-image:linear-gradient(90deg, rgba(14,6,4,.92) 0%, rgba(14,6,4,.7) 42%, rgba(14,6,4,.12) 100%), url("../img/hero-bg.webp");
  background-size:cover; background-position:center 35%;
}
.pub-hero .inner{ position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:150px 24px 72px; }
.pub-hero h1{
  font:900 clamp(34px, 5.6vw, 64px)/1 var(--display); text-transform:uppercase; letter-spacing:-.02em; color:#fff;
}
.pub-hero h1::after{ content:""; display:block; width:72px; height:6px; background:var(--brand); margin-top:22px; }
.pub-hero .lead{ margin:20px 0 0; max-width:620px; font-size:17px; line-height:1.55; color:#EDE4DE; }
.facts{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px 28px; font-size:14px; font-weight:600; color:#fff; }
.facts li{ display:inline-flex; align-items:center; gap:8px; }
.facts .ic{ color:var(--brand); }

.pub-body{ max-width:1180px; margin:0 auto; padding:16px 24px 72px; }
.fsec{ display:grid; grid-template-columns:280px minmax(0,1fr); gap:48px; padding:40px 0; border-bottom:1px solid var(--line); }
.fsec-head h2{ font:800 17px/1.25 var(--display); text-transform:uppercase; letter-spacing:.01em; color:var(--ink); }
.fsec-head p{ margin:8px 0 0; font-size:14px; color:var(--muted); line-height:1.5; }
.fsubmit{ padding:36px 0 0 328px; }
.fsubmit .row{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:26px; flex-wrap:wrap; }
.btn-cta{ text-transform:uppercase; letter-spacing:.08em; font:800 14px/1 var(--display); padding:0 30px; }
.signer-fields{ margin-top:20px; }
.signer-fields[hidden]{ display:none; }
.hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }

.pub-footer{ border-top:1px solid var(--line); background:var(--surface); }
.pub-footer .inner{ max-width:1180px; margin:0 auto; padding:22px 24px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--muted); }

/* single-card pages (thanks, PIN, client portal) */
.pub-plain{ background:var(--bg); }
.center-wrap{ max-width:760px; margin:0 auto; padding:132px 20px 72px; }
.center-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.center-card .top{ padding:40px 40px 28px; text-align:center; }
.success-mark{ width:64px; height:64px; border-radius:50%; margin:0 auto 22px; display:grid; place-items:center; background:var(--brand); color:#fff; }
.center-card h1{ font:900 clamp(22px, 3.2vw, 30px)/1.15 var(--display); text-transform:uppercase; letter-spacing:-.01em; }
.center-card .lead{ margin-top:12px; color:var(--muted); font-size:15.5px; }
.center-card .body{ padding:0 40px 36px; }
.ref-pill{ display:inline-flex; align-items:center; gap:8px; margin-top:16px; padding:8px 14px; border-radius:4px; background:var(--gray-bg); font:600 13px/1 var(--mono); color:var(--ink); }

/* client portal */
.portal-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 32px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.portal-head .ref{ font:600 13px/1 var(--mono); color:var(--muted); }
.portal-head h1{ font-size:24px; margin-top:6px; }
.portal-section{ padding:28px 32px; border-top:1px solid var(--line); }
.portal-section:first-child{ border-top:0; }
.portal-section > h2{ font:800 13px/1 var(--display); text-transform:uppercase; letter-spacing:.1em; color:var(--ink); margin-bottom:16px; }
.offer-hero{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-bottom:20px; }
.offer-hero > div{ background:var(--surface); padding:18px 20px; }
.offer-hero .k{ font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.offer-hero .v{ margin-top:6px; font:800 19px/1.25 var(--display); color:var(--ink); }
.offer-hero .v.big{ color:var(--brand); font-size:24px; }
.decision{ display:grid; gap:14px; padding:22px; border-radius:var(--r); background:var(--surface-2); border:1px solid var(--line); }
.decision .btns{ display:flex; gap:10px; flex-wrap:wrap; }
.materials{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.material{ display:flex; flex-direction:column; gap:10px; padding:18px; border-radius:var(--r); border:1px solid var(--line); background:var(--surface); color:var(--ink); transition:border-color .15s; }
a.material:hover{ border-color:var(--brand); color:var(--ink); }
.material .mi{ width:40px; height:40px; border-radius:6px; background:var(--brand-50); color:var(--brand); display:grid; place-items:center; }
.material strong{ font-size:15px; }
.material span{ font-size:13px; color:var(--muted); }
.material.disabled{ opacity:.55; background:var(--surface-2); }
.material .go{ margin-top:auto; font:600 13px/1 var(--font); color:var(--brand-600); display:flex; align-items:center; gap:6px; }
.doc-list{ display:flex; flex-direction:column; gap:10px; }
.doc{ display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
.doc .di{ width:40px; height:40px; border-radius:6px; display:grid; place-items:center; background:var(--gray-bg); color:var(--gray); flex:none; }
.doc.kind-proforma .di{ background:var(--brand-50); color:var(--brand); }
.doc.kind-invoice .di{ background:var(--green-bg); color:var(--green); }
.doc .meta{ flex:1; min-width:0; }
.doc .meta strong{ display:block; color:var(--ink); font-size:14.5px; }
.doc .meta span{ font-size:12.5px; color:var(--muted); }
.pay-state{ display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:var(--r); margin-bottom:14px; font-size:14px; }
.pin-box{ max-width:420px; margin:0 auto; text-align:center; }
.pin-input{ width:100%; height:64px; text-align:center; letter-spacing:.5em; padding-left:.5em; font:700 28px/1 var(--mono); color:var(--ink); }
.lock-mark{ width:56px; height:56px; border-radius:8px; margin:0 auto 18px; background:var(--brand-50); color:var(--brand); display:grid; place-items:center; }

/* ============================================================
   ADMIN
   ============================================================ */
.admin{ display:grid; grid-template-columns:256px minmax(0,1fr); min-height:100vh; }
.sidebar{
  position:sticky; top:0; height:100vh; display:flex; flex-direction:column;
  background:var(--surface); border-right:1px solid var(--line); padding:20px 14px;
}
.sb-brand{ display:flex; flex-direction:column; align-items:center; gap:10px; margin:-20px 10px 22px; padding:22px 16px 18px; background:var(--brand); border-radius:0 0 18px 18px; box-shadow:0 18px 34px -18px rgba(193,65,12,.6); color:#fff; }
.sb-brand:hover{ color:#fff; }
.sb-brand img{ height:96px; width:auto; display:block; }
.sb-brand span{ font:800 11px/1 var(--display); letter-spacing:.18em; text-transform:uppercase; color:#FFE3D6; }
.sb-cta{ margin:0 6px 18px; }
.sb-label{ padding:14px 12px 8px; font:700 11px/1 var(--font); letter-spacing:.12em; text-transform:uppercase; color:var(--faint); }
.sb-nav{ display:flex; flex-direction:column; gap:2px; }
.sb-nav a{
  display:flex; align-items:center; gap:12px; height:40px; padding:0 12px; border-radius:6px;
  color:var(--text); font:500 14px/1 var(--font); transition:background .12s, color .12s;
}
.sb-nav a:hover{ background:var(--gray-bg); color:var(--ink); }
.sb-nav a.active{ background:var(--brand-50); color:var(--brand-700); font-weight:600; }
.sb-nav a.active .ic{ color:var(--brand); }
.sb-nav .count{ margin-left:auto; min-width:22px; height:22px; padding:0 7px; border-radius:999px; background:var(--brand); color:#fff; font:700 11.5px/22px var(--font); text-align:center; }
.sb-user{ margin-top:auto; display:flex; align-items:center; gap:10px; padding:12px; border-radius:var(--r); background:var(--surface-2); border:1px solid var(--line); }
.sb-user .who{ flex:1; min-width:0; }
.sb-user .who strong{ display:block; font-size:13.5px; color:var(--ink); }
.sb-user .who span{ display:block; font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sb-user form{ margin:0; }

.main{ min-width:0; }
.topbar{
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:16px;
  padding:16px 32px; background:rgba(248,246,244,.86); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.topbar h1{ font-size:20px; font-weight:700; }
.topbar .crumb{ font-size:13px; color:var(--muted); display:flex; align-items:center; gap:6px; }
.topbar .crumb a{ color:var(--muted); }
.topbar .crumb a:hover{ color:var(--ink); }
.topbar .actions{ margin-left:auto; display:flex; gap:10px; align-items:center; }
.menu-btn{ display:none; }
.content{ padding:28px 32px 56px; max-width:1440px; }

.flashes{ position:fixed; right:24px; bottom:24px; z-index:100; display:flex; flex-direction:column; gap:10px; max-width:420px; }
.flash{
  display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:var(--r);
  background:var(--ink); color:#fff; box-shadow:var(--shadow-lg); font-size:14px; line-height:1.45;
  animation:flashIn .25s ease-out;
}
.flash.error{ background:#7F1D1D; }
.flash .ic{ margin-top:1px; color:#7EE2A8; }
.flash.error .ic{ color:#FCA5A5; }
.flash button{ margin-left:auto; background:none; border:0; color:rgba(255,255,255,.6); cursor:pointer; padding:0; }
@keyframes flashIn{ from{ opacity:0; transform:translateY(8px); } }

/* stats */
.stats{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.stat{ position:relative; padding:20px 22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); color:var(--text); }
a.stat:hover{ border-color:var(--brand-200); color:var(--text); }
.stat .k{ display:flex; align-items:center; gap:8px; font:600 13px/1 var(--font); color:var(--muted); }
.stat .v{ margin-top:12px; font:800 32px/1 var(--display); color:var(--ink); letter-spacing:-.03em; }
.stat .sub{ margin-top:8px; font-size:12.5px; color:var(--muted); }
.stat .sub.warn{ color:var(--red); font-weight:600; }
.stat.hl{ background:var(--brand); border-color:transparent; color:#fff; }
.stat.hl .k, .stat.hl .sub{ color:#FFE3D6; }
.stat.hl .v{ color:#fff; }

.dash-grid{ display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(0, 1fr); gap:20px; }
.stack{ display:flex; flex-direction:column; gap:20px; }

/* tables / lists */
.table-wrap{ overflow-x:auto; }
.table{ width:100%; border-collapse:collapse; font-size:14px; }
.table th{
  text-align:left; padding:12px 16px; font:600 12px/1 var(--font); letter-spacing:.04em; text-transform:uppercase;
  color:var(--muted); background:var(--surface-2); border-bottom:1px solid var(--line); white-space:nowrap;
}
.table td{ padding:14px 16px; border-bottom:1px solid var(--line); vertical-align:middle; }
.table tr:last-child td{ border-bottom:0; }
.table tbody tr{ transition:background .1s; }
.table tbody tr.click{ cursor:pointer; }
.table tbody tr.click:hover{ background:#FDFBFA; }
.table .primary{ font-weight:600; color:var(--ink); }
.table .sub{ font-size:12.5px; color:var(--muted); margin-top:3px; }
.date-cell{ display:flex; align-items:center; gap:12px; }
.date-tile{
  flex:none; width:46px; text-align:center; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--surface);
}
.date-tile .m{ display:block; background:var(--brand); color:#fff; font:700 10px/18px var(--font); text-transform:uppercase; letter-spacing:.06em; }
.date-tile .d{ display:block; font:800 18px/26px var(--display); color:var(--ink); }
.sla{ font-size:12.5px; font-weight:600; }
.sla.late{ color:var(--red); }
.sla.soon{ color:var(--amber); }
.sla.ok{ color:var(--muted); font-weight:500; }

.list{ display:flex; flex-direction:column; }
.list-item{ display:flex; align-items:center; gap:14px; padding:14px 22px; border-top:1px solid var(--line); color:var(--text); }
.list-item:first-child{ border-top:0; }
a.list-item:hover{ background:#FDFBFA; color:var(--text); }
.list-item .grow{ flex:1; min-width:0; }
.list-item .t{ font-weight:600; color:var(--ink); font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.list-item .s{ font-size:12.5px; color:var(--muted); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.toolbar{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:18px; }
.tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:20px; overflow-x:auto; }
.tabs a{
  display:flex; align-items:center; gap:8px; padding:12px 14px; margin-bottom:-1px; border-bottom:2px solid transparent;
  font:600 14px/1 var(--font); color:var(--muted); white-space:nowrap;
}
.tabs a:hover{ color:var(--ink); }
.tabs a.active{ color:var(--ink); border-bottom-color:var(--brand); }
.tabs .n{ padding:3px 8px; border-radius:999px; background:var(--gray-bg); font-size:11.5px; color:var(--muted); }
.tabs a.active .n{ background:var(--brand-50); color:var(--brand-700); }
.search{ position:relative; flex:1; min-width:220px; max-width:420px; }
.search .ic{ position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--faint); }
.search .input{ padding-left:40px; height:40px; }
.pager{ display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.pager .btns{ display:flex; gap:8px; }

/* request detail */
.req-head{ display:flex; gap:20px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; margin-bottom:22px; }
.req-title{ display:flex; gap:18px; align-items:center; }
.req-title .date-tile{ width:62px; border-radius:12px; }
.req-title .date-tile .m{ font-size:11px; line-height:22px; }
.req-title .date-tile .d{ font-size:24px; line-height:36px; }
.req-title h2{ font-size:26px; font-weight:800; letter-spacing:-.03em; }
.req-title .meta{ display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:8px; font-size:14px; color:var(--muted); }
.req-title .meta span{ display:inline-flex; align-items:center; gap:6px; }
.req-grid{ display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:20px; align-items:start; }
.pipeline{ display:flex; margin-bottom:22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:6px; overflow-x:auto; }
.pipeline .stp{ flex:1; min-width:120px; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:10px; font:600 13px/1.2 var(--font); color:var(--faint); }
.pipeline .stp .n{ width:24px; height:24px; border-radius:50%; border:1.5px solid currentColor; display:grid; place-items:center; font-size:11.5px; flex:none; }
.pipeline .stp.done{ color:var(--text); }
.pipeline .stp.done .n{ background:var(--ink); border-color:var(--ink); color:#fff; }
.pipeline .stp.current{ background:var(--brand-50); color:var(--brand-700); }
.pipeline .stp.current .n{ background:var(--brand); border-color:var(--brand); color:#fff; }
.section-title{ font:700 12px/1 var(--font); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 10px; }
.text-block{ white-space:pre-wrap; font-size:14px; color:var(--ink); background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:12px 14px; }
.conflict{ border:1px solid #F6D58E; background:var(--amber-bg); color:#7A4F06; }

.timeline{ list-style:none; margin:0; padding:0; }
.timeline li{ position:relative; padding:0 0 18px 30px; font-size:13.5px; line-height:1.45; }
.timeline li::before{ content:""; position:absolute; left:6px; top:7px; width:9px; height:9px; border-radius:50%; background:var(--line-2); box-shadow:0 0 0 3px var(--surface); }
.timeline li::after{ content:""; position:absolute; left:10px; top:18px; bottom:-2px; width:1px; background:var(--line); }
.timeline li:last-child::after{ display:none; }
.timeline li.t-offer::before, .timeline li.t-status::before{ background:var(--brand); }
.timeline li.t-client::before{ background:var(--teal); }
.timeline li.t-note::before{ background:var(--amber); }
.timeline li.t-mail::before{ background:var(--blue); }
.timeline li.t-file::before{ background:var(--green); }
.timeline .msg{ color:var(--ink); }
.timeline li.t-note .msg{ background:#FFFBEB; border:1px solid #F7E7B4; padding:8px 10px; border-radius:8px; white-space:pre-wrap; }
.timeline .when{ font-size:12px; color:var(--faint); margin-top:3px; }
.offer-total{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-radius:var(--r); background:var(--brand-50); color:var(--brand-700); font-weight:600; }
.offer-total strong{ font:800 20px/1 var(--display); color:var(--brand-700); }
.action-list{ display:flex; flex-direction:column; gap:10px; }
.file-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--line); }
.file-row:first-child{ border-top:0; }
.file-row .grow{ flex:1; min-width:0; }
.file-row .t{ font-weight:600; font-size:14px; color:var(--ink); }
.file-row .s{ font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* dialogs */
dialog.modal{
  width:min(560px, calc(100vw - 32px)); max-height:calc(100vh - 48px); padding:0; border:0; border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg); color:var(--text); background:var(--surface);
}
dialog.modal::backdrop{ background:rgba(26,23,21,.45); backdrop-filter:blur(3px); }
dialog.modal.wide{ width:min(820px, calc(100vw - 32px)); }
.modal-head{ display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--line); }
.modal-head h3{ font-size:18px; }
.modal-body{ padding:22px 24px; overflow:auto; max-height:calc(100vh - 220px); }
.modal-foot{ display:flex; gap:10px; justify-content:flex-end; padding:16px 24px; border-top:1px solid var(--line); background:var(--surface-2); }
.modal-foot .left{ margin-right:auto; }

/* artists */
.artist-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:18px; }
.artist-card{ display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); color:var(--text); transition:box-shadow .15s, border-color .15s; }
.artist-card:hover{ box-shadow:var(--shadow); border-color:var(--line-2); color:var(--text); }
.artist-card .cover{ position:relative; height:130px; background:var(--c, var(--brand)); background-size:cover; background-position:center; }
.artist-card .cover::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.35)); }
.artist-card .cover .init{ position:absolute; inset:0; display:grid; place-items:center; font:800 40px/1 var(--display); color:rgba(255,255,255,.9); z-index:1; }
.artist-card .cover .badge{ position:absolute; top:12px; right:12px; z-index:2; }
.artist-card .body{ padding:18px 20px; flex:1; }
.artist-card h3{ font-size:17px; }
.artist-card .genre{ font-size:13px; color:var(--muted); margin-top:3px; }
.artist-card .nums{ display:flex; gap:18px; margin-top:14px; font-size:13px; color:var(--muted); }
.artist-card .nums strong{ display:block; font:800 18px/1.1 var(--display); color:var(--ink); }
.artist-card .links{ display:flex; gap:6px; padding:12px 16px; border-top:1px solid var(--line); background:var(--surface-2); }
.pill-link{ display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 10px; border-radius:999px; font:600 11.5px/1 var(--font); }
.pill-link.on{ background:var(--green-bg); color:var(--green); }
.pill-link.off{ background:var(--gray-bg); color:var(--faint); }
.color-input{ width:46px; height:46px; padding:4px; border:1px solid var(--line-2); border-radius:10px; background:var(--surface); cursor:pointer; }

/* calendar (FullCalendar skin) */
.cal-wrap{ padding:18px; }
.cal-filters{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.cal-filter{ display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px; border-radius:999px; border:1px solid var(--line-2); background:var(--surface); font:600 12.5px/1 var(--font); color:var(--text); cursor:pointer; }
.cal-filter.off{ opacity:.45; }
.cal-legend{ display:flex; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--muted); margin-top:12px; }
.cal-legend span{ display:inline-flex; align-items:center; gap:6px; }
.cal-legend i{ width:14px; height:10px; border-radius:3px; display:inline-block; }
.fc{ --fc-border-color:var(--line); --fc-today-bg-color:var(--brand-50); --fc-page-bg-color:var(--surface); --fc-neutral-bg-color:var(--surface-2); --fc-list-event-hover-bg-color:var(--surface-2); font-size:13px; }
.fc .fc-toolbar-title{ font:800 22px/1.2 var(--display); color:var(--ink); letter-spacing:-.02em; text-transform:capitalize; }
.fc .fc-button{ background:var(--surface); border:1px solid var(--line-2); color:var(--ink); font:600 13px/1 var(--font); padding:9px 14px; border-radius:9px; box-shadow:none; text-transform:capitalize; }
.fc .fc-button:hover{ background:var(--surface-2); color:var(--ink); border-color:#CFC5BD; }
.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.fc .fc-button:focus{ box-shadow:0 0 0 3px var(--brand-100) !important; }
.fc .fc-button-group > .fc-button{ border-radius:0; }
.fc .fc-button-group > .fc-button:first-child{ border-radius:9px 0 0 9px; }
.fc .fc-button-group > .fc-button:last-child{ border-radius:0 9px 9px 0; }
.fc .fc-col-header-cell-cushion{ padding:10px 4px; font:700 11.5px/1 var(--font); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.fc .fc-daygrid-day-number{ font:600 13px/1 var(--font); color:var(--text); padding:8px 10px; }
.fc .fc-day-today .fc-daygrid-day-number{ background:var(--brand); color:#fff; border-radius:999px; margin:4px; padding:5px 8px; }
.fc .fc-day-other .fc-daygrid-day-number{ color:var(--faint); }
.fc .fc-daygrid-day.fc-day-sat, .fc .fc-daygrid-day.fc-day-sun{ background:#FDFCFB; }
.fc .fc-daygrid-day-frame{ min-height:112px; cursor:pointer; }
.fc .fc-daygrid-event{ border-radius:6px; padding:3px 6px; margin:1px 4px 2px; font-weight:600; font-size:12px; border-width:1px; border-left-width:3px; white-space:normal; }
.fc .fc-event.is-pending{ border-style:dashed; border-left-style:solid; }
.fc .fc-event.ev-entry{ font-weight:500; }
.fc .fc-event.ev-entry.type-blocked{ background:repeating-linear-gradient(135deg, #F4F1EE 0 6px, #ECE7E3 6px 12px) !important; }
.fc .fc-list-event-title a{ color:var(--ink); font-weight:600; }
.fc .fc-list-day-cushion{ background:var(--surface-2); }
.fc-theme-standard .fc-scrollgrid{ border-radius:var(--r); overflow:hidden; }
.fc .fc-more-link{ font-weight:600; color:var(--brand-600); }
.fc-tip{ position:fixed; z-index:200; pointer-events:none; max-width:280px; padding:10px 12px; border-radius:10px; background:var(--ink); color:#fff; font-size:12.5px; line-height:1.45; box-shadow:var(--shadow-lg); }
.fc-tip strong{ display:block; font-size:13px; margin-bottom:2px; }
.fc-tip span{ color:#CFC7C1; }

/* mail log */
.mail-frame{ width:100%; height:78vh; border:0; border-radius:0 0 var(--r-lg) var(--r-lg); background:#F6F3F1; display:block; }

/* auth */
.auth{ min-height:100vh; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); background:var(--surface); }
.auth-art{
  position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:44px;
  background:var(--brand);
  color:#fff;
}
.auth-art .logo{ width:190px; }
.auth-art .big{ position:absolute; right:-80px; bottom:-60px; width:560px; opacity:.12; }
.auth-art h2{ color:#fff; font:900 clamp(28px, 3.2vw, 44px)/1.05 var(--display); text-transform:uppercase; letter-spacing:-.01em; max-width:440px; }
.auth-art p{ color:#FFE3D6; margin-top:14px; max-width:420px; font-size:15.5px; }
.auth-art .foot{ font-size:12.5px; color:#FFD3BF; position:relative; }
.auth-form{ display:flex; align-items:center; justify-content:center; padding:40px 24px; }
.auth-box{ width:100%; max-width:400px; }
.auth-box h1{ font-size:28px; font-weight:800; letter-spacing:-.03em; }
.auth-box .lead{ color:var(--muted); margin:8px 0 28px; }
.dev-code{ margin:0 0 20px; padding:16px; border-radius:var(--r); border:1px dashed var(--brand-200); background:var(--brand-50); }
.dev-code small{ display:block; font:700 11px/1 var(--font); letter-spacing:.1em; text-transform:uppercase; color:var(--brand-700); margin-bottom:8px; }
.dev-code strong{ font:700 28px/1 var(--mono); letter-spacing:.3em; color:var(--ink); }
.code-input{ height:60px; text-align:center; font:700 26px/1 var(--mono); letter-spacing:.45em; padding-left:.45em; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px){
  .stats{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .req-grid, .dash-grid{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 980px){
  .fsec{ grid-template-columns:minmax(0,1fr); gap:20px; padding:32px 0; }
  .fsubmit{ padding-left:0; }
  .admin{ grid-template-columns:minmax(0,1fr); }
  .sidebar{ position:fixed; left:0; top:0; z-index:60; width:270px; transform:translateX(-100%); transition:transform .2s ease; box-shadow:var(--shadow-lg); }
  body.nav-open .sidebar{ transform:none; }
  body.nav-open::after{ content:""; position:fixed; inset:0; background:rgba(26,23,21,.4); z-index:50; }
  .menu-btn{ display:inline-flex; }
  .auth{ grid-template-columns:minmax(0,1fr); }
  .auth-art{ min-height:260px; padding:28px; }
  .auth-art .big{ width:360px; }
}
@media (max-width: 720px){
  .g2, .g3{ grid-template-columns:minmax(0,1fr); }
  .span2{ grid-column:auto; }
  .pub-top .inner{ height:64px; padding:0 16px; }
  .logo-badge{ left:16px; padding:12px 16px 16px; border-radius:0 0 14px 14px; }
  .logo-badge img{ height:72px; }
  .pub-link.hide-sm{ display:none; }
  .pub-hero{ background-image:linear-gradient(180deg, rgba(14,6,4,.6), rgba(14,6,4,.9)), url("../img/hero-bg.webp"); }
  .pub-hero .inner{ padding:104px 16px 44px; }
  .pub-body{ padding:8px 16px 56px; }
  .center-wrap{ padding:96px 16px 56px; }
  .fsubmit .row .btn{ width:100%; }
  .center-card .top{ padding:32px 20px 22px; }
  .center-card .body{ padding:0 20px 28px; }
  .portal-head, .portal-section{ padding-left:20px; padding-right:20px; }
  .offer-hero, .materials{ grid-template-columns:minmax(0,1fr); }
  .topbar{ padding:12px 16px; }
  .content{ padding:20px 16px 48px; }
  .stats{ gap:12px; }
  .stat{ padding:16px; }
  .stat .v{ font-size:26px; }
  .kv{ grid-template-columns:minmax(0,1fr); }
  .kv dt{ padding-bottom:0; }
  .kv dd{ border-top:0; padding-top:4px; }
  .table .hide-sm{ display:none; }
  .fc .fc-toolbar{ flex-direction:column; gap:10px; }
  .fc .fc-daygrid-day-frame{ min-height:76px; }
  .flashes{ left:16px; right:16px; bottom:16px; }
}

/* artist photo upload */
.photo-field{ display:flex; gap:16px; align-items:center; }
.photo-preview{ flex:none; width:96px; height:96px; border-radius:var(--r); overflow:hidden; background:var(--c, var(--brand)); display:grid; place-items:center; }
.photo-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-preview span{ font:800 28px/1 var(--display); color:rgba(255,255,255,.9); }

/* night-set hint */
.night-hint{ display:flex; gap:8px; align-items:flex-start; margin-top:8px; padding:10px 12px; border-radius:var(--r); background:var(--brand-50); color:var(--brand-700); font-size:13px; font-weight:600; line-height:1.4; }
.night-hint[hidden]{ display:none; }

/* venue map + nearby hotels */
.venue-map{ height:380px; border-bottom:1px solid var(--line); z-index:0; }
.map-bar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 22px; border-bottom:1px solid var(--line); }
.map-bar form{ margin:0; }
.pin-venue span{ display:block; width:30px; height:30px; background:var(--brand); border:3px solid #fff; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 4px 10px rgba(0,0,0,.35); }
.pin-hotel span{ display:flex; align-items:center; justify-content:center; width:34px; height:22px; border-radius:11px; background:var(--ink); color:#fff; font:700 11px/1 var(--font); border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.3); }
.pin-hotel.s5 span{ background:#B8860B; }
.hotel-table tbody tr{ cursor:pointer; }
.hotel-table tbody tr:hover{ background:#FDFBFA; }
.hotel-table tr.picked{ background:var(--green-bg); }
.hotel-table .stars{ color:#C99A06; font-size:12px; letter-spacing:1px; margin-left:4px; }
.hotel-table form{ margin:0; }
.leaflet-container{ font-family:var(--font); }
.hotel-link{ color:var(--ink); }
.hotel-link:hover{ color:var(--brand-600); }
.hotel-link .ic{ color:var(--faint); margin-left:2px; vertical-align:-1px; }
.pop-links{ display:flex; gap:12px; margin-top:8px; }
.pop-links a{ font-weight:600; color:var(--brand-600); }

/* invoices module */
.period-chip{ display:inline-flex; align-items:center; height:32px; padding:0 14px; border-radius:999px; border:1px solid var(--line-2); background:var(--surface); font:600 13px/1 var(--font); color:var(--text); }
.period-chip:hover{ border-color:var(--brand); color:var(--ink); }
.period-chip.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.filter-card{ padding:18px 20px; }
.filter-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.filter-foot{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.stat .v.money{ font-size:22px; line-height:1.25; }
@media (max-width: 980px){ .filter-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* privacy policy */
.legal-wrap{ max-width:860px; }
.center-card.legal{ padding:40px 44px 44px; }
.legal h1{ font:900 clamp(26px,3.6vw,36px)/1.1 var(--display); text-transform:uppercase; margin-bottom:10px; }
.legal h2{ font:800 15px/1.3 var(--display); text-transform:uppercase; letter-spacing:.02em; margin:30px 0 10px; }
.legal p, .legal li{ font-size:15px; line-height:1.65; color:var(--text); }
.legal ul{ margin:0 0 12px; padding-left:20px; }
.legal li{ margin-bottom:6px; }
@media (max-width:720px){ .center-card.legal{ padding:28px 20px; } }
.consent-note{ display:block; margin-top:4px; font-size:12.5px; color:var(--muted); }
.check a{ color:var(--brand-600); text-decoration:underline; }
.foot-links{ display:flex; gap:18px; flex-wrap:wrap; }

/* hotel proposals (client portal) */
.hotel-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.hotel-item{ display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r); flex-wrap:wrap; }
.hotel-item .grow{ flex:1; min-width:200px; display:flex; flex-direction:column; gap:2px; font-size:14px; }
.hotel-item strong{ color:var(--ink); font-size:15px; }
.hotel-item form{ margin:0; }
.hotel-add{ padding:18px; border:1px dashed var(--line-2); border-radius:var(--r); background:var(--surface-2); }
.hotel-confirmed{ display:flex; flex-direction:column; gap:4px; padding:16px 18px; border-radius:var(--r); background:var(--green-bg); border:1px solid #CDEBD8; font-size:14px; }
.hotel-confirmed strong{ font-size:17px; color:var(--ink); margin-top:6px; }
.hotel-confirmed .badge{ align-self:flex-start; background:#fff; }

/* hotel proposals (admin) */
.hotel-props{ display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.hotel-prop{ padding:12px; border:1px solid var(--line); border-radius:var(--r); font-size:14px; }
.hotel-prop strong{ color:var(--ink); }
.hotel-prop-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; }
.hotel-prop-actions .check{ margin-right:auto; }
.hotel-add-admin summary{ cursor:pointer; font:600 13px/1 var(--font); color:var(--brand-600); padding:6px 0; }

/* ---------- Embedded form (iframe on pmggroup.pl) ---------- */
html.embed, body.embed{ background:transparent; }
body.embed{ display:flow-root; }   /* height reported to the parent page includes child margins */
.embed .pub-body{ max-width:none; padding:0 4px 8px; }   /* room for the 4px focus ring */
.embed .pub-form > .fsec:first-of-type{ padding-top:8px; }
.embed .center-wrap{ max-width:none; padding:24px 0; }
.embed .center-card{ background:transparent; border:0; }
