/* All brand colours come from the existing responsive token system. */
.mm-contract-dialog { color:var(--forest); background:var(--surface,#fff); border:1px solid var(--line); border-radius:20px; padding:0; width:min(920px,calc(100vw - 48px)); max-width:none; height:min(88dvh,1000px); max-height:calc(100dvh - 48px); overflow:hidden; box-shadow:0 24px 80px #0004; }
.mm-contract-dialog[open] { display:flex; flex-direction:column; }
.mm-contract-dialog::backdrop { background:#0009; backdrop-filter:blur(4px); }
.mm-contract-dialog-bar { display:flex; flex:none; align-items:center; justify-content:space-between; gap:16px; min-height:68px; padding:12px 24px; color:var(--surface,#fff); background:var(--forest); }
.mm-contract-dialog-bar strong { font-size:16px; line-height:1.4; }
.mm-contract-close { display:grid; place-items:center; flex:none; width:38px; height:44px; padding:0; border:0; border-radius:0; color:#fff; background:transparent; font-family:Arial,sans-serif; font-weight:300; line-height:1; font-size:34px; cursor:pointer; opacity:.96; }
.mm-contract-close:hover { color:#fff; background:transparent; opacity:.72; }
.mm-contract-close:focus-visible,.mm-contract-dialog button:focus-visible,.mm-contract-panel a:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
.mm-contract-dialog-body { overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; min-height:0; padding:32px 44px 40px; scroll-padding:24px; }
.mm-contract-document,.mm-contract-withdrawal { min-width:0; overflow-wrap:anywhere; }
.mm-contract-document-head { padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.mm-contract-document-head h2,.mm-contract-withdrawal h2 { margin:8px 0 12px; color:var(--forest); font-size:clamp(24px,3vw,34px); line-height:1.15; }
.mm-contract-document-head p { color:var(--muted); margin:0; }
.mm-contract-text { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; line-height:1.85; color:var(--forest); }
.mm-contract-notice { display:block; padding:16px 18px; border:1px solid var(--line); border-left:3px solid var(--forest-2); border-radius:8px; margin:16px 0; font-size:14px; line-height:1.65; color:var(--forest); background:var(--surface,#fff); }
.mm-contract-amendment { border-top:1px solid var(--line); padding-top:24px; margin-top:32px; }
.mm-contract-fingerprint { border-top:1px solid var(--line); padding-top:20px; margin-top:32px; font-size:12px; color:var(--muted); }
.mm-contract-fingerprint code { display:block; overflow-wrap:anywhere; margin-top:8px; }
.mm-contract-panel { min-width:0; background:var(--surface,#fff); border:1px solid var(--line); border-radius:16px; padding:24px; margin:24px 0; }
.mm-contract-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mm-contract-panel-heading h2 { font-size:clamp(18px,2vw,24px); line-height:1.3; margin:6px 0; overflow-wrap:anywhere; color:var(--forest); }
.mm-contract-panel-heading p { margin:0; font-size:14px; color:var(--muted); }
.mm-contract-mark { width:40px; height:40px; display:grid; place-items:center; flex:none; color:var(--forest); background:var(--lime); border-radius:50%; font-size:20px; }
.mm-contract-meta { font-size:12px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.mm-contract-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:18px; }
.mm-contract-actions .btn,.mm-contract-offer-actions .btn { min-height:44px; max-width:100%; text-align:center; white-space:normal; line-height:1.4; overflow-wrap:anywhere; }
.mm-contract-withdraw.btn { color:var(--danger,#b42318); background:var(--surface,#fff); border:1px solid currentColor; }
.mm-contract-offer-actions { display:flex!important; flex-direction:column!important; align-items:stretch!important; gap:10px!important; }
.mm-contract-offer-actions form { width:100%; min-width:0; }
.mm-contract-offer-actions form > .btn { width:100%; }
.mm-contract-accept-notice { display:block; font-size:12px; line-height:1.65; color:var(--muted); margin:12px 0; }
.mm-contract-capacity { border:1px solid var(--line); border-radius:10px; padding:12px; margin:12px 0; min-width:0; }
.mm-contract-capacity legend { font-size:13px; font-weight:700; padding:0 4px; }
.mm-contract-capacity label,.mm-contract-early { display:flex!important; align-items:flex-start; gap:9px; text-align:left; font-size:13px; line-height:1.6; margin:8px 0; font-weight:400; }
.mm-contract-capacity input,.mm-contract-early input { flex:none; width:18px!important; height:18px!important; min-height:0!important; margin:3px 0 0!important; padding:0!important; accent-color:var(--forest); }
.mm-contract-withdrawal-details,.mm-contract-admin-meta { margin:20px 0; }
.mm-contract-withdrawal-details > div,.mm-contract-admin-meta > div { display:grid; grid-template-columns:minmax(110px,1fr) minmax(0,2fr); gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }
.mm-contract-withdrawal-details dt,.mm-contract-admin-meta dt { color:var(--muted); font-size:13px; }
.mm-contract-withdrawal-details dd,.mm-contract-admin-meta dd { margin:0; overflow-wrap:anywhere; font-size:14px; }
.mm-contract-email-label { display:grid; gap:8px; font-size:14px; font-weight:600; }
.mm-contract-email-label input { width:100%; box-sizing:border-box; min-height:48px; border:1px solid var(--line); border-radius:8px; padding:12px; font-size:16px; }
.mm-contract-error { color:var(--danger,#b42318); font-size:14px; line-height:1.6; padding:12px 0; }
.mm-contract-error[hidden] { display:none; }
.mm-contract-loading { padding:24px 0; color:var(--muted); }
.mm-contract-stripe-gate { margin:18px 0; }
.mm-contract-print { margin:0; background:#fff; }
.mm-contract-print main { max-width:850px; margin:36px auto; padding:0 28px; }
.mm-contract-print-help { color:var(--muted); font-size:14px; padding-bottom:20px; }
@media (max-width:600px) {
  .mm-contract-dialog { width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .mm-contract-dialog-bar { padding:calc(10px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left)); min-height:64px; }
  .mm-contract-dialog-body { padding:24px max(20px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
  .mm-contract-text { font-size:14px; line-height:1.8; }
  .mm-contract-panel { padding:18px; margin:18px 0; }
  .mm-contract-actions { align-items:stretch; flex-direction:column; }
  .mm-contract-actions .btn { width:100%; }
  .mm-contract-withdrawal-details > div,.mm-contract-admin-meta > div { grid-template-columns:1fr; gap:3px; }
}
@media print {
  .mm-contract-print-help { display:none; }
  .mm-contract-print main { max-width:none; margin:0; padding:0; }
  .mm-contract-text { color:#000; font-size:10pt; line-height:1.5; }
  .mm-contract-document-head h2 { font-size:20pt; }
  .mm-contract-document-head,.mm-contract-fingerprint { break-inside:avoid; }
  @page { size:A4; margin:18mm; }
}

/* VFinal — contract UI refinement: quiet status, readable document page, strong draft CTA. */
.mm-contract-close:focus-visible{
  outline:2px solid rgba(255,255,255,.78)!important;
  outline-offset:2px!important;
}
.mm-contract-panel{
  background:var(--surface,#fff);
  border:1px solid color-mix(in srgb,var(--forest) 16%,var(--line));
  box-shadow:0 14px 34px rgba(12,44,28,.06);
}
.mm-contract-panel-heading{
  align-items:flex-start;
  gap:18px;
}
.mm-contract-panel-copy{min-width:0}
.mm-contract-panel-copy h2{margin:7px 0 6px;font-size:clamp(20px,2.1vw,28px)}
.mm-contract-panel-copy p{margin:0;color:var(--muted);font-size:13px}
.mm-contract-status-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  max-width:min(44%,260px);
  padding:7px 11px;
  border:1px solid color-mix(in srgb,var(--forest) 22%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--forest) 7%,#fff);
  color:var(--forest);
  font-size:10px;
  font-weight:850;
  line-height:1.2;
  text-align:center;
  overflow-wrap:anywhere;
}
.mm-contract-status-badge.is-withdrawn{
  border-color:color-mix(in srgb,var(--danger,#b42318) 30%,var(--line));
  background:color-mix(in srgb,var(--danger,#b42318) 6%,#fff);
  color:var(--danger,#b42318);
}
.mm-contract-actions{margin-top:20px}
.mm-contract-primary-action{flex:1 1 260px}
.mm-contract-withdraw.btn{flex:0 1 auto}

button[data-contract-preview][data-contract-title="Szerződéstervezet"],
button[data-contract-open][data-contract-title="Szerződéstervezet"]{
  border:1.5px solid var(--forest)!important;
  background:var(--surface,#fff)!important;
  color:var(--forest)!important;
  box-shadow:0 2px 0 rgba(12,44,28,.05)!important;
  opacity:1!important;
}
button[data-contract-preview][data-contract-title="Szerződéstervezet"]:hover,
button[data-contract-open][data-contract-title="Szerződéstervezet"]:hover{
  background:color-mix(in srgb,var(--forest) 6%,#fff)!important;
  border-color:var(--forest)!important;
  transform:translateY(-1px);
}
button[data-contract-preview][data-contract-title="Szerződéstervezet"]:focus-visible,
button[data-contract-open][data-contract-title="Szerződéstervezet"]:focus-visible{
  outline:3px solid color-mix(in srgb,var(--forest) 22%,transparent)!important;
  outline-offset:3px!important;
}
button[data-contract-preview][data-contract-title="Szerződéstervezet"]:disabled,
button[data-contract-open][data-contract-title="Szerződéstervezet"]:disabled{
  opacity:.45!important;
  cursor:not-allowed;
}

.mm-contract-page-shell{
  min-height:100dvh;
  padding:24px;
  background:#f4f7f3;
}
.mm-contract-page-toolbar{
  position:sticky;
  top:0;
  z-index:10;
  width:min(960px,100%);
  margin:0 auto 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 30px rgba(12,44,28,.08);
  backdrop-filter:blur(12px);
}
.mm-contract-page-back{
  color:var(--forest);
  font-size:12px;
  font-weight:850;
  text-decoration:none;
}
.mm-contract-page-actions{display:flex;align-items:center;gap:8px}
.mm-contract-page-actions .btn{min-height:42px;padding:0 16px;font-size:10px}
.mm-contract-page-sheet{
  width:min(900px,100%);
  margin:0 auto;
  padding:46px 54px 58px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 54px rgba(12,44,28,.08);
}
.mm-contract-page-sheet .mm-contract-document-head{
  margin-bottom:28px;
  padding-bottom:22px;
}
.mm-contract-page-sheet .mm-contract-document-head h2{
  font-size:clamp(26px,3vw,36px);
}
.mm-contract-page-sheet .mm-contract-text{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.72;
  letter-spacing:0;
}
.mm-contract-page-sheet .mm-contract-amendment h3{font-size:18px}

@media(max-width:700px){
  .mm-contract-panel{padding:18px 17px}
  .mm-contract-panel-heading{display:grid;grid-template-columns:1fr;gap:12px}
  .mm-contract-status-badge{max-width:100%;width:max-content}
  .mm-contract-actions{display:grid;grid-template-columns:1fr;gap:9px}
  .mm-contract-primary-action,.mm-contract-withdraw.btn{width:100%;min-height:46px}
  .mm-contract-page-shell{padding:0;background:#fff}
  .mm-contract-page-toolbar{
    position:sticky;
    top:0;
    width:100%;
    margin:0;
    padding:calc(10px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));
    border-width:0 0 1px;
    border-radius:0;
    box-shadow:0 8px 22px rgba(12,44,28,.07);
  }
  .mm-contract-page-actions{gap:6px}
  .mm-contract-page-actions .btn{min-height:40px;padding:0 11px;font-size:9px}
  .mm-contract-page-back{font-size:10px;white-space:nowrap}
  .mm-contract-page-sheet{
    width:100%;
    padding:30px max(20px,env(safe-area-inset-right)) calc(44px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .mm-contract-page-sheet .mm-contract-document-head h2{font-size:26px}
  .mm-contract-page-sheet .mm-contract-text{font-size:14px;line-height:1.68}
}
@media(max-width:430px){
  .mm-contract-page-toolbar{align-items:stretch;flex-direction:column;gap:8px}
  .mm-contract-page-actions{display:grid;grid-template-columns:1fr 1fr}
  .mm-contract-page-actions .btn{width:100%}
}
@media print{
  .mm-contract-page-toolbar{display:none!important}
  .mm-contract-page-shell{min-height:0;padding:0;background:#fff}
  .mm-contract-page-sheet{width:auto;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}
  .mm-contract-page-sheet .mm-contract-text{font-size:10pt;line-height:1.5;color:#000}
  .mm-contract-page-sheet .mm-contract-document-head h2{font-size:20pt;color:#000}
  .mm-contract-page-sheet .mm-contract-document-head,.mm-contract-page-sheet .mm-contract-amendment{break-inside:avoid}
  @page{size:A4;margin:18mm}
}


/* A szakember kompakt munkaoldali kártyájában a 14 napos magyarázat a munkafolyamatnál jelenik meg.
   Az elállási/withdrawal értesítés szándékosan látható marad. */
.job-communication-grid.professional-contract-compact>.mm-contract-panel .mm-contract-early-performance-notice{display:none}

/* V31 — compact responsive contract surfaces; behaviour intentionally unchanged. */
.mm-contract-early>span{display:grid;gap:3px;min-width:0}
.mm-contract-early>span>b{font-weight:650}
.mm-contract-early>span>small{font-weight:400;color:var(--muted);line-height:1.45}

@media(max-width:768px){
  .job-communication-grid>.mm-contract-panel{
    min-width:0;
    min-height:100%;
    margin:0!important;
    padding:14px!important;
    border-radius:14px!important;
    box-shadow:none!important;
    display:flex;
    flex-direction:column;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-panel-heading{
    display:block!important;
    min-width:0;
  }
  .job-communication-grid>.mm-contract-panel .eyebrow{
    font-size:9px!important;
    letter-spacing:1.15px!important;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-panel-copy h2{
    margin:5px 0 3px!important;
    font-size:15px!important;
    line-height:1.18!important;
    letter-spacing:-.2px!important;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-panel-copy p{
    font-size:9.5px!important;
    line-height:1.3!important;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-status-badge{
    width:max-content!important;
    max-width:100%!important;
    min-height:22px!important;
    margin-top:8px!important;
    padding:4px 7px!important;
    font-size:9px!important;
    line-height:1.15!important;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-notice{
    margin:8px 0 0!important;
    padding:8px!important;
    font-size:9px!important;
    line-height:1.35!important;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    width:100%;
    margin-top:auto!important;
    padding-top:10px;
  }
  .job-communication-grid>.mm-contract-panel .mm-contract-actions .btn,
  .job-communication-grid>.mm-contract-panel .mm-contract-primary-action,
  .job-communication-grid>.mm-contract-panel .mm-contract-withdraw.btn{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    padding:8px 6px!important;
    border-radius:10px!important;
    font-size:9.5px!important;
    line-height:1.25!important;
    white-space:normal!important;
  }

  .mm-contract-early{
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    gap:8px!important;
    margin:7px 0!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
  .mm-contract-early input{
    width:18px!important;
    height:18px!important;
    margin:1px 0 0!important;
    accent-color:var(--forest)!important;
  }
  .mm-contract-early>span{gap:2px!important}
  .mm-contract-early>span>b{font-size:11px!important;line-height:1.35!important}
  .mm-contract-early>span>small{font-size:9.5px!important;line-height:1.35!important}
  .mm-contract-accept-notice{
    margin:8px 0!important;
    font-size:10px!important;
    line-height:1.4!important;
  }
}
