/* Page-scoped rules for templates/marketplace/ (docs/UI.md §5). Prefix every class with the portal's family. */

/* ---- partner portal ---- */
/* Dashboard tiles are links: keep the ink and lift on hover. */
a.mk-tile{color:var(--ink);text-decoration:none!important;transition:transform .15s ease,box-shadow .15s ease}
a.mk-tile:hover{transform:translateY(-2px)}

/* Profile: form on the left, publication aside on the right. */
.mk-profile{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.mk-fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.mk-fieldset legend{padding:0;margin-bottom:12px}
.mk-fieldset[disabled] .check,.mk-fieldset[disabled] input,.mk-fieldset[disabled] textarea{opacity:.7}
.mk-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}
.mk-logo{display:flex;gap:20px;align-items:flex-start}
.mk-logo-img{width:96px;height:96px;flex:none;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--expanded);object-fit:contain}
.mk-logo-empty{display:grid;place-items:center;font-size:12.5px}
.mk-logo-controls{flex:1;min-width:0}
.mk-logo-controls .field{margin-bottom:8px}

/* Single-column form pages (service form). */
.mk-form-col{max-width:720px}

/* Row-action forms sit inline in td.actions. */
.mk-inline{display:inline-block;margin-left:6px}

/* Requests kanban: three panel columns, stacking on narrow screens. */
.mk-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:20px}
.mk-col{margin-bottom:0}
.mk-col-body{display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--expanded);min-height:120px}
.mk-col-empty{margin:0;padding:22px 8px;text-align:center;font-size:13px}
.mk-count{font-size:12px;font-weight:700;color:var(--sec);background:var(--sunken);border-radius:999px;min-width:22px;height:22px;padding:0 7px;display:grid;place-items:center}
.mk-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.mk-card-head{display:flex;align-items:center;gap:10px;min-width:0}
.mk-card-head strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-card-service{margin:0;font-size:12.5px;font-weight:500}
.mk-card-msg{margin:0;font-size:13px;color:var(--ink)}
.mk-card-meta{margin:0;font-size:12px}
.mk-card-form{display:flex;gap:8px;align-items:center;margin-top:6px;padding-top:10px;border-top:1px solid var(--line-2)}
.mk-card-form select{font-size:13px;padding:7px 30px 7px 11px}

/* ---- company marketplace (catalogue / detail / request / my requests) ---- */
/* Catalogue: the package (match a need) and the request tracker sit in a right rail beside the
   catalogue (choose a provider). On narrow screens the package comes first, tracking last. */
.mk-head{margin-bottom:14px}
.mk-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"catalogue need" "catalogue track" "catalogue .";grid-template-rows:auto auto 1fr;gap:12px;align-items:start}
.mk-layout>.panel{margin:0;min-width:0}
.mk-need{grid-area:need}
.mk-catalogue{grid-area:catalogue}
.mk-track{grid-area:track}
.mk-layout .panel-head{align-items:flex-start;min-height:43px}
.mk-layout .panel-head .sub,.mk-detail .panel-head .sub{margin:2px 0 0;font-size:10.5px;color:var(--ter)}
.mk-need-copy{margin:0 0 12px;font-size:12.5px;line-height:1.5;color:var(--sec)}
.mk-need-action{display:flex;align-items:center;gap:8px}
.mk-track-list li{padding:10px 13px;gap:10px}
.mk-track-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.mk-track-copy .t{font-size:12.5px;line-height:1.35}
.mk-track-copy .d{font-size:11px;color:var(--ter)}
.mk-track .st{flex:none}
.mk-track-empty{margin:0;font-size:12.5px;color:var(--ter);line-height:1.5}
.mk-track .panel-foot a{font-size:12px;font-weight:600}

/* Catalogue panel: one filter strip, the result count, then category groups of rows. */
.mk-filters{margin:0;padding:10px 13px;gap:8px;border-bottom:1px solid var(--line-2)}
.mk-search{flex:1;min-width:200px;width:auto}
.mk-cat{width:200px}
.mk-clear{font-size:12.5px}
.mk-summary{font-size:12px;color:var(--sec);margin:0;padding:10px 13px 0}
.mk-summary b{color:var(--ink)}
.mk-results-msg{margin:13px}
.mk-group{padding:6px 0 0}
.mk-group-head{margin:0;padding:10px 13px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ter)}
.mk-service{display:grid;grid-template-columns:minmax(0,1fr) 110px 120px 96px;gap:14px;align-items:center;padding:11px 13px;border-top:1px solid var(--line-2)}
.mk-service:hover{background:var(--expanded)}
.mk-service-main{min-width:0}
.mk-service .mk-service-name{margin:0;font-size:13.5px;font-weight:600}
.mk-service .mk-firm{margin:2px 0 0;font-size:12px;color:var(--sec)}
.mk-service-desc{margin:3px 0 0;font-size:12px;color:var(--ter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-service-impact,.mk-service-offer{display:flex;flex-direction:column;gap:1px;font-size:12px}
.mk-service-offer{text-align:right;align-items:flex-end}
.mk-service .d{font-size:11px;color:var(--ter)}
.mk-uplift{font-weight:600;color:var(--ok)}
.mk-service .mk-price{font-size:14px;font-weight:700;color:var(--ink)}
.mk-service-action{display:flex;justify-content:flex-end}
.mk-service-action form{margin:0}
.mk-results .mk-rules{margin:0;padding:11px 13px;border-top:1px solid var(--line-2);background:var(--expanded);font-size:11.5px;color:var(--ter);line-height:1.5}
.mk-results .empty-note{padding:28px 20px}

/* Detail header: identity on the left, the offer (price · term · impact) and the actions right. */
.mk-banner{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;padding:18px 20px;margin-bottom:12px}
.mk-banner-id{min-width:0;flex:1 1 320px}
.mk-banner h1{margin:4px 0 0;font-size:20px;font-weight:600;letter-spacing:-.015em}
.mk-banner .sub{color:var(--sec);font-size:12.5px;margin:4px 0 0}
.mk-offer-facts{display:flex;gap:22px;margin:0}
.mk-offer-facts div{display:flex;flex-direction:column;gap:2px}
.mk-offer-facts dt{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ter)}
.mk-offer-facts dd{margin:0;font-size:15px;font-weight:700;color:var(--ink)}
.mk-offer-facts dd.mk-uplift{color:var(--ok)}
.mk-banner .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mk-banner .actions form{margin:0}
.mk-banner .mk-readonly{max-width:260px;font-size:12px}

/* Detail / request pages: main panel on the left, partner aside on the right. */
.mk-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}
.mk-detail .panel{margin:0}
.mk-side{display:flex;flex-direction:column;gap:12px}
.mk-side .panel{margin-bottom:0}
.mk-about{margin:0;font-size:13px;line-height:1.6}
.mk-plan{margin:14px 0 0;padding:0;list-style:none;counter-reset:mk-plan}
.mk-plan li{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.mk-plan li::before{counter-increment:mk-plan;content:counter(mk-plan);font-weight:700;color:var(--ter);min-width:14px}
.mk-plan .sp{flex:1}
.mk-partner-copy{margin:0 0 10px;font-size:12.5px;color:var(--sec);line-height:1.5}
.mk-side .kv{font-size:12.5px}
.mk-other li{padding:9px 0;font-size:12.5px}
.mk-other .d{font-size:11px;color:var(--ter)}

/* Request form: one focused column; the context line says what is being requested. */
.mk-request{max-width:760px}
.mk-request .panel{margin:0}
.mk-request-note{margin:14px 0 0;font-size:12px;color:var(--ter);line-height:1.5}

/* Confirmation swapped in place of the request form, inside the panel body. */
.mk-done{margin-bottom:0}
.mk-done p:last-child{margin:0}
.mk-done .row{margin-top:4px}

/* "Minhas solicitações": filter in the panel head, service + partner in one cell. */
.mk-requests-head{flex-wrap:wrap}
.mk-requests-head form{margin:0;display:flex;gap:8px;align-items:center}
.mk-requests .summary{padding:9px 13px;font-size:12px}
.mk-msg{min-width:200px;max-width:360px;font-size:12.5px;color:var(--sec)}
.mk-when{white-space:nowrap}
.mk-req-service{min-width:170px}
.mk-empty-cta{margin-top:10px}

@media (max-width: 1024px){
  .mk-board{grid-template-columns:1fr}
  .mk-profile{grid-template-columns:1fr}
  .mk-detail{grid-template-columns:1fr}
  .mk-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"catalogue" "need" "track";grid-template-rows:auto}
}
@media (max-width: 768px){
  .mk-checks{grid-template-columns:1fr}
  .mk-logo{flex-direction:column}
  .mk-cat{width:100%}
  .mk-search{min-width:0;flex-basis:100%}
  .mk-service{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main main" "impact impact" "offer action";row-gap:8px}
  .mk-service-main{grid-area:main}
  .mk-service-impact{grid-area:impact;flex-direction:row;align-items:baseline;gap:4px}
  .mk-service-impact:empty{display:none}
  .mk-service-offer{grid-area:offer;text-align:left;align-items:flex-start}
  .mk-service-action{grid-area:action}
  .mk-service-desc{white-space:normal}
  .mk-offer-facts{gap:16px;flex-wrap:wrap}
  .mk-requests-head form{width:100%}
}

/* Partner dashboard funnel (PRT-1): the journey step label carries the orange highlight, the
   KPI cells are links into the screen that explains the number. */
.mk-funnel{margin-bottom:0}
.mk-funnel-lbl{color:var(--accent-2-ink);font-weight:700;letter-spacing:.02em}
.mk-funnel-detail{color:var(--ink);font-size:13.5px}
a.mk-kpi{color:var(--ink);text-decoration:none!important}
a.mk-kpi:hover .v{color:var(--accent-ink)}
.mk-stars{color:var(--accent-2-ink);letter-spacing:.06em}

/* ---- catalogue (EMP-19) and opportunity board (PRT-2/3) ---- */
/* Tab strip sits between the head and the tab body. */
.mk-tabs{margin-bottom:18px}
/* Card: firm + stars line, then price/term on the left and the action on the right. */
.mk-offer{display:flex;align-items:flex-end;gap:12px;margin-top:auto;padding-top:10px}
.mk-price{font-size:16px;font-weight:700;color:var(--accent-2-ink)}
.mk-rules{margin:8px 0 24px;font-size:12.5px}
.mk-hire-box{width:min(640px,100%);max-width:calc(100vw - 24px);min-width:0}
.mk-hire-box .tbl{max-width:100%;overflow-x:auto}
.mk-hire-box .sec{font-size:13px;line-height:1.55}
.mk-hire-box .kv{margin-bottom:14px}
.mk-hire-box .tbl{margin-bottom:12px}
/* Demand card title and clamped description (partner opportunity board). */
.mk-service-name{font-size:15px;margin-top:4px}
.mk-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;margin:0}
/* Demand cards: the company line is the anonymised label; actions sit under the offer row. */
.mk-demand-company{margin:0;font-size:13px}
.mk-demand-actions{padding-top:8px;font-size:13px}
.mk-hire-box td.num{white-space:nowrap}

/* Request conversations keep the complete event history beside the active actions. */
.mk-conversation-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:16px;align-items:start}
.mk-conversation-layout>.panel,.mk-conversation-side>.panel{margin:0;min-width:0}
.mk-conversation-side{display:grid;gap:12px;min-width:0}
.mk-timeline{list-style:none;margin:0;padding:0}
.mk-timeline li{padding:13px 0;border-top:1px solid var(--line-2)}
.mk-timeline li:first-child{border-top:0;padding-top:0}
.mk-timeline-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:12.5px}
.mk-timeline-meta strong{font-size:13.5px}
.mk-timeline-meta time{margin-left:auto;color:var(--ter);font-size:11.5px}
.mk-timeline li>p{margin:7px 0 0;line-height:1.55;overflow-wrap:anywhere}
.mk-quote-list,.mk-demand-list,.mk-proposal-list{list-style:none;margin:0;padding:0}
.mk-quote{padding:13px 0;border-top:1px solid var(--line-2)}
.mk-quote:first-child{padding-top:0;border-top:0}
.mk-quote-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mk-quote-head>strong{font-size:17px}
.mk-quote .kv{margin:9px 0}
.mk-quote-message,.mk-quote-reason{font-size:12.5px;line-height:1.55;overflow-wrap:anywhere}
.mk-decision-form{border-top:1px solid var(--line-2);margin-top:12px;padding-top:12px}
.mk-decision-form .help{margin:0 0 10px}
.mk-quote-note{margin:0;color:var(--sec);font-size:12.5px;line-height:1.5}
.mk-contract-number{font-size:15px;font-weight:700;margin:0 0 10px}
.mk-demand-list{padding:0 14px}
.mk-company-demand{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,190px);gap:18px;padding:16px 0;border-top:1px solid var(--line-2)}
.mk-company-demand:first-child{border-top:0}
.mk-company-demand-main{min-width:0}
.mk-company-demand-main h3{font-size:15px;margin:0 0 4px}
.mk-company-demand-main>p{margin:4px 0}
.mk-demand-description{font-size:12.5px;line-height:1.5;color:var(--sec);overflow-wrap:anywhere}
.mk-company-demand-meta{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.mk-company-demand-meta strong{font-size:14px}
.mk-demand-form-panel{max-width:820px}
.mk-demand-detail-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;align-items:start}
.mk-demand-detail-layout>.panel{margin:0;min-width:0}
.mk-demand-description-full{margin:15px 0 0;line-height:1.6;overflow-wrap:anywhere}
.mk-company-proposal{padding:16px;border-top:1px solid var(--line-2)}
.mk-company-proposal:first-child{border-top:0}
.mk-company-proposal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.mk-company-proposal-head h3{font-size:14px;margin:0}
.mk-company-proposal-head p{margin:3px 0}
.mk-company-proposal .kv{margin:12px 0}
.mk-empty-cta{margin-top:10px}

@media (max-width: 1024px){
  .mk-conversation-layout,.mk-demand-detail-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 768px){
  .mk-company-demand{grid-template-columns:minmax(0,1fr)}
  .mk-company-demand-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .mk-company-demand-meta .linkbtn{grid-column:1/-1}
  .mk-timeline-meta time{margin-left:0}
  .mk-demand-list{padding:0 12px}
  .mk-company-proposal{padding:14px 12px}
}

/* ---- partner Painel (Fase B): main column + side rail, same grid as the company Painel ---- */
.mk-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:16px;align-items:start}
.mk-home-main,.mk-home-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.mk-agenda .tbl{margin:0 -4px;overflow-x:auto}
.mk-home .metrics .metric dd>a{text-decoration:none}
@media (max-width:1100px){.mk-home{grid-template-columns:minmax(0,1fr)}}
.mk-home .metric dd>a{font-size:17px;white-space:nowrap}
@media (max-width:520px){.mk-home .metric dd>a{font-size:15px}}

/* Fase B · marketplace part 2: sentence heads, offer facts as a card, quieter actions */
.mk-offer-card{display:block;padding:16px 20px;margin-bottom:16px}
.mk-offer-card .mk-offer-facts{flex-wrap:wrap}
.pg-head-actions form{margin:0}
.mk-readonly{margin:0 0 14px}
.pg-head + .mk-tabs,.mk-tabs{margin-bottom:16px}
@media (max-width:720px){
  .pg-head{flex-wrap:wrap}
  .pg-head-actions{flex-wrap:wrap}
}

/* ===== Fase B · rodada 3 — empresa: catálogo como rua, conversas como obras, cotações no mural (mkc-/mks-) ===== */
/* next step card: copy left, the one orange action right */
.mkc-nx{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:center;margin-bottom:16px}
.mkc-nx h2{max-width:48ch}
.mkc-nx-act{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.mkc-nx-act .btn{display:inline-flex;align-items:center;gap:8px}
.mkc-nx-act .btn svg,.mkc-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.mkc-quiet{font-size:12.5px;color:var(--sec)}
.mkc-also{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:12px 0 0;font-size:12.5px;color:var(--ter)}
.mkc-also-i{display:inline-flex;align-items:center;gap:7px;color:var(--sec)}
.mkc-src{margin:3px 0 0;font-size:12.5px;color:var(--ter);max-width:80ch}

/* catalogue card: head with search, the street, the rows */
.mkc-cat{padding:0;overflow:hidden}
.mkc-cat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding:18px 20px 6px}
.mkc-cat-head h2,.mkc-sh h2{margin:0;font-size:16px;font-weight:650;letter-spacing:-.015em}
.mkc-search{width:280px;max-width:100%}
.mkc-street{overflow-x:auto;padding:4px 20px 0;scrollbar-width:thin}
.mkc-summary{display:flex;align-items:baseline;gap:12px;margin:0;padding:12px 20px 0;font-size:12.5px;color:var(--sec)}
.mkc-summary b{color:var(--ink)}
.mkc-summary a{margin-left:auto;font-size:12.5px}
.mkc-results .mk-group-head{padding:14px 20px 4px}
.mkc-rows{list-style:none;margin:0;padding:0}
.mkc-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 16px;gap:18px;align-items:center;padding:12px 20px;border-top:1px solid var(--line-2)}
.mkc-row:hover{background:var(--expanded)}
.mkc-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.mkc-row-name{font-size:14px;font-weight:600;color:var(--ink)}
.mkc-row-name::after{content:"";position:absolute;inset:0}
.mkc-row-name:focus-visible{outline:none}
.mkc-row:has(.mkc-row-name:focus-visible){box-shadow:inset var(--focus)}
.mkc-row-firm{font-size:12.5px;color:var(--sec)}
.mkc-row-desc{font-size:12.5px;color:var(--ter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkc-row-offer{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-size:12px;color:var(--ter);white-space:nowrap}
.mkc-row-offer b{font-size:14.5px;color:var(--ink)}
.mkc-row-go{width:14px;height:14px;fill:none;stroke:var(--icon-muted);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .15s}
.mkc-row:hover .mkc-row-go,.mkc-row:focus-within .mkc-row-go{opacity:1}
.mkc-rules{margin:0;padding:12px 20px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ter);line-height:1.5}
.mkc-results .empty-note{padding:28px 20px}
.mkc-empty-links{margin:8px 0 0;font-size:13px}

/* line-art scenes (apps/marketplace/illustrations.py) */
.mks{display:block;max-width:100%;height:auto}
.mks *{vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;fill:none}
.mks .mk-wall{fill:var(--surface);stroke:var(--ink);stroke-width:1.2}
.mks .mk-glass{fill:var(--accent-soft-2);stroke:var(--ink);stroke-width:1}
.mks .mk-mullion{stroke:var(--accent-ink);stroke-width:.6;opacity:.5}
.mks .mk-door{fill:var(--sunken);stroke:var(--ink);stroke-width:1}
.mks .mk-line{stroke:var(--ink);stroke-width:1}
.mks .mk-thin{stroke:var(--sec);stroke-width:.7}
.mks .mk-edge{stroke:var(--ink);stroke-width:1.2}
.mks .mk-band{fill:var(--ink)}
.mks .mk-awn{fill:var(--surface);stroke:var(--ink);stroke-width:1}
.mks .mk-sign{fill:var(--surface);stroke:var(--ink);stroke-width:1}
.mks .mk-proj{stroke:var(--icon-muted);stroke-width:1;stroke-dasharray:3 4}
.mks .mk-flag{fill:var(--accent-2);stroke:var(--accent-2);stroke-width:1}
.mks .mk-flag-low{fill:var(--accent-2);stroke:var(--accent-2);stroke-width:1}
.mks .mk-flag-ok{fill:var(--ok-ico);stroke:var(--ok-ico);stroke-width:1}
.mks .mk-on{stroke:var(--accent-2);stroke-width:3}
.mks .mk-ground{stroke:var(--ink);stroke-width:1.6}
.mks .mk-slab{stroke:var(--ink);stroke-width:2.4}
.mks .mk-frame{stroke:var(--ink);stroke-width:1.1}
.mks .mk-pour{stroke:var(--accent-2);stroke-width:2}
.mks .mk-crane{stroke:var(--sec);stroke-width:1}
.mks .mk-lead{stroke:var(--icon-muted);stroke-width:.75}
.mks .mk-board{fill:var(--sunken)}
.mks .mk-paper{fill:var(--surface);stroke:var(--ink);stroke-width:1}
.mks .mk-paper.is-off{stroke:var(--icon-muted)}
.mks .mk-pin{fill:var(--sec);stroke:var(--ink);stroke-width:.8}
.mks .mk-env{fill:var(--surface);stroke:var(--ink);stroke-width:1.1}
.mks .mk-env.is-off{stroke:var(--icon-muted);stroke-dasharray:3 3}
.mks .mk-ok{stroke:var(--ok-ico);stroke-width:2}
.mks .mk-wait{fill:var(--warn-ico);stroke:var(--warn-ico);stroke-width:1}
.mks text{stroke:none}
.mks .mk-sign-t{fill:var(--ink);font-size:11px;font-weight:650}
.mks .mk-sign-t.is-off{fill:var(--ter);font-weight:500}
.mks .mk-cap{fill:var(--sec);font-size:11px;font-variant-numeric:tabular-nums}
.mks .mk-cap.is-off{fill:var(--ter)}
.mks .mk-cap.is-flag{fill:var(--accent-2-ink);font-weight:650}
.mks .mk-num{fill:var(--ink);font-size:13.5px;font-weight:650;font-variant-numeric:tabular-nums}
.mks .mk-num.is-now{fill:var(--accent-2-ink)}
.mks .mk-num.is-off{fill:var(--sec);font-weight:550}
.mks .mk-name{fill:var(--sec);font-size:11.5px}
.mks .mk-big{fill:var(--ink);font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}
.mks-shop{cursor:pointer}
.mks-shop:hover .mk-sign,.mks-shop:focus-visible .mk-sign{fill:var(--expanded)}
.mks-shop:hover .mk-sign-t{text-decoration:underline}
.mks-shop:focus{outline:none}
.mks-shop:focus-visible .mk-wall{stroke:var(--accent-ink);stroke-width:2.4}
@media (max-width:720px){
  .mkc-nx{grid-template-columns:1fr}
  .mkc-nx-act{align-items:flex-start}
  .mkc-cat-head{padding:16px 16px 4px}
  .mkc-search{width:100%}
  .mkc-street{padding:4px 16px 0}
  .mkc-summary,.mkc-results .mk-group-head{padding-left:16px;padding-right:16px}
  .mkc-row{padding:12px 16px;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .mkc-row-go{display:none}
  .mkc-row-desc{white-space:normal}
  .mkc-rules{padding:12px 16px}
}
/* service detail and shared section pieces */
.mkc-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;margin-bottom:16px}
.mkc-conv>.nx{margin-bottom:16px}
.mkc-pair>.card{display:flex;flex-direction:column;min-width:0}
.mkc-h{margin:0 0 10px;font-size:16px;font-weight:650;letter-spacing:-.015em}
.mkc-h3{margin:0 0 6px;font-size:13px;font-weight:650;color:var(--sec)}
.mkc-sh{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;margin-bottom:10px}
.mkc-about{margin:0;font-size:14px;line-height:1.6;color:var(--ink);max-width:72ch}
.mkc-facts{display:flex;flex-wrap:wrap;gap:14px 28px;margin:auto 0 0;padding-top:18px}
.mkc-facts div{display:flex;flex-direction:column;gap:2px}
.mkc-facts dt{font-size:11px;color:var(--ter)}
.mkc-facts dd{margin:0;font-size:17px;font-weight:650;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
.mkc-art{display:flex;justify-content:center;overflow-x:auto}
.mkc-legend{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line-2);font-size:12.5px;line-height:1.55;color:var(--sec)}
.mkc-firm{margin-bottom:16px}
.mkc-firm-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}
.mkc-firm-body .mkc-src{margin-top:10px}
.mkc-linkbtn{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px;font:inherit;font-size:12.5px}
.mkc-linkbtn:hover{color:var(--ink)}
.mkc-linkbtn:focus-visible{outline:none;box-shadow:var(--focus)}
.mkc-nx-act form{margin:0}
@media (max-width:900px){
  .mkc-pair,.mkc-firm-body{grid-template-columns:1fr}
}
.mkc-facts{margin:18px 0 0;padding-top:0}
.mkc-firmline{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-2)}
.mkc-firm-copy{margin:0;font-size:13px;line-height:1.55;color:var(--sec)}
.mkc-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.mkc-cols>li:nth-child(2){border-top:0}
@media (max-width:900px){.mkc-cols{grid-template-columns:1fr}.mkc-cols>li:nth-child(2){border-top:1px solid var(--line-2)}}
/* Conversas: each request a site */
.mkc-list-head{align-items:center;margin:4px 0 12px}
.mkc-filter{margin:0 0 0 auto}
.mkc-filter select{width:200px}
.mkc-sites{display:flex;flex-direction:column;gap:12px}
.mkc-site{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:8px 28px;align-items:center;padding:18px 22px}
.mkc-site-art{min-width:0;overflow-x:auto}
.mkc-site-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.mkc-site-copy h3{margin:4px 0 0;font-size:17px;font-weight:650;letter-spacing:-.015em}
.mkc-site-copy h3 a{color:var(--ink)}
.mkc-site-meta{display:flex;align-items:center;gap:10px;margin:0}
.mkc-todo{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-2-ink)}
.mkc-site-firm{margin:0;font-size:12.5px;color:var(--sec)}
.mkc-site-line{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ink);max-width:60ch}
.mkc-site-quote{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--ter);max-width:60ch}
.mkc-site-foot{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ter)}
.mkc-site-foot a{margin-left:auto;font-weight:600}
.mkc-summary-flat{padding:0}
.mkc-empty{margin:0;font-size:13.5px}
@media (max-width:1100px){.mkc-site{grid-template-columns:1fr}}
@media (max-width:720px){.mkc-site{padding:16px}.mkc-filter{margin:6px 0 0;width:100%}.mkc-filter select{width:100%}}
/* the company's conversation: journey, messenger thread, contract milestones, drawers */
.mkc-room{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:stretch;margin-bottom:16px}
.mkc-chat{display:flex;flex-direction:column;height:620px;padding:0;overflow:hidden}
.mkc-chat-head{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.mkc-chat-head h2{margin:0;font-size:14px;font-weight:600}
.mkc-chat-head small{display:block;font-size:12px;color:var(--ter)}
.mkc-av{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:650;background:var(--accent-soft);color:var(--accent-ink);flex:none}
.mkc-thread{flex:1;min-height:0;overflow:auto;padding:14px 14px 10px;display:flex;flex-direction:column;gap:6px;background:var(--sunken)}
.mkc-thread:focus-visible{outline:none;box-shadow:inset var(--focus)}
.mkc-day{align-self:center;font-size:11.5px;color:var(--sec);background:var(--surface);padding:3px 10px;border-radius:999px;margin:8px 0 4px;box-shadow:0 1px 0 var(--line)}
.mkc-sys{align-self:center;max-width:85%;text-align:center;font-size:12px;line-height:1.45;color:var(--sec);background:var(--surface);border:1px solid var(--line-2);padding:5px 11px;border-radius:8px;margin:4px 0;display:inline-flex;gap:6px;align-items:baseline;flex-wrap:wrap;justify-content:center}
.mkc-sys b{color:var(--ink);font-weight:600}
.mkc-sys time{color:var(--ter);font-size:11px}
.mkc-b{max-width:78%;padding:7px 11px 5px;font-size:13.5px;line-height:1.45;color:var(--ink);background:var(--surface);border-radius:12px 12px 12px 4px;box-shadow:0 1px 0 var(--line);align-self:flex-start;display:flex;flex-direction:column;min-width:0}
.mkc-b.me{align-self:flex-end;background:var(--accent-soft);border-radius:12px 12px 4px 12px}
.mkc-b .who{font-size:11.5px;font-weight:600;color:var(--info);margin-bottom:1px}
.mkc-b .txt{white-space:pre-wrap;overflow-wrap:anywhere}
.mkc-b .meta{align-self:flex-end;font-size:10.5px;color:var(--ter);margin-top:2px;font-variant-numeric:tabular-nums}
.mkc-chip{align-self:flex-start;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-2-ink);margin-bottom:2px}
.mkc-qb{min-width:260px;border:1px solid var(--line);box-shadow:none}
.mkc-qb-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 4px;font-size:13px;color:var(--sec)}
.mkc-qb-h b{font-size:17px;color:var(--ink)}
.mkc-qb-h .st{margin-left:auto}
.mkc-qb-act{align-self:flex-start;margin-top:8px}
.mkc-comp{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line-2);background:var(--surface);flex-wrap:wrap}
.mkc-comp textarea{flex:1;width:auto;min-width:0;font:inherit;font-size:13.5px;line-height:20px;padding:8px 14px;border:1px solid var(--line);border-radius:18px;background:var(--sunken);color:var(--ink);resize:none;height:38px;min-height:38px;max-height:120px;field-sizing:content}
.mkc-send{all:unset;cursor:pointer;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--surface);display:inline-flex;align-items:center;justify-content:center;flex:none}
.mkc-send svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mkc-send:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.mkc-comp .mkc-linkbtn{flex-basis:100%;text-align:left;padding:2px 4px 0}
.mkc-comp-err{margin:0;padding:0 16px 10px}
.mkc-ro{margin:0;padding:12px 16px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ter)}
.mkc-works{display:flex;flex-direction:column;height:620px;overflow:auto}
.mkc-works-sum{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px;font-size:12.5px;color:var(--sec)}
.mkc-ms>li{grid-template-columns:7px minmax(0,1fr) auto}
.mkc-meter{margin-top:6px;max-width:220px}
.mkc-escrow{display:flex;gap:28px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line-2)}
.mkc-escrow div{display:flex;flex-direction:column;gap:2px}
.mkc-escrow dt{font-size:11px;color:var(--ter)}
.mkc-escrow dd{margin:0;font-size:16px;font-weight:650;color:var(--ink)}
.mkc-open{align-self:flex-start;margin-top:12px}
.mkc-works .mks{margin:8px auto 0}
/* drawers */
.mkc-drw-wrap{position:fixed;inset:0;z-index:40}
.mkc-scrim{position:fixed;inset:0;background:var(--scrim)}
.mkc-drw{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:14px;padding:22px 24px;overflow:auto;box-shadow:-12px 0 32px var(--scrim)}
.mkc-drw-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.mkc-drw-h h2{margin:0;font-size:20px;font-weight:650;letter-spacing:-.02em}
.mkc-drw-h .drw-x{flex:none;margin:-6px -10px 0 0}
.mkc-drw-msg{margin:0;padding:12px 14px;background:var(--sunken);border-radius:var(--r);font-size:13.5px;line-height:1.55}
.mkc-drw-form .btn{margin-top:4px}
@media (max-width:1024px){
  .mkc-room{grid-template-columns:1fr}
  .mkc-works{height:auto}
}
@media (max-width:720px){
  .mkc-chat{height:560px}
  .mkc-b{max-width:88%}
  .mkc-qb{min-width:0}
  .mkc-drw{padding:18px 16px}
}
.mkc-conv .il{aspect-ratio:auto}
/* cotações: mural, envelopes, form */
.mkc-site-mural{grid-template-columns:minmax(0,440px) minmax(0,1fr)}
.mkc-notice-copy{margin-top:12px;font-size:13.5px}
.mkc-envs{list-style:none;margin:0;padding:0}
.mkc-envl{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--line-2)}
.mkc-envl:first-child{border-top:0;padding-top:4px}
.mkc-env-ic{width:24px;height:18px;margin-top:3px;fill:var(--surface);stroke:var(--ink);stroke-width:1.2;stroke-linejoin:round}
.mkc-env-ic.is-off{stroke:var(--icon-muted);stroke-dasharray:3 3}
.mkc-envl-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.mkc-envl-copy p{margin:0}
.mkc-envl-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.mkc-envl-v{font-size:12.5px;color:var(--sec)}
.mkc-envl-v b{font-size:15px;color:var(--ink)}
.mkc-envl-m{font-size:13px;line-height:1.5;color:var(--sec);overflow-wrap:anywhere}
.mkc-envl-copy .btn{align-self:flex-start;margin-top:4px}
.mkc-none{display:flex;gap:14px;align-items:flex-start;padding:8px 0;font-size:13px;line-height:1.5;color:var(--sec)}
.mkc-none p{margin:0}
.mkc-none b{color:var(--ink)}
.mkc-formrow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:16px;align-items:stretch}
.mkc-steps{list-style:none;counter-reset:mkc;margin:0;padding:0}
.mkc-steps li{counter-increment:mkc;display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:10px;padding:10px 0;border-top:1px solid var(--line-2);font-size:13px;line-height:1.5}
.mkc-steps li:first-child{border-top:0}
.mkc-steps li::before{content:counter(mkc);grid-row:1/3;width:22px;height:22px;border-radius:50%;background:var(--sunken);display:grid;place-items:center;font-size:11.5px;font-weight:650;color:var(--sec)}
.mkc-steps b{font-weight:600}
.mkc-steps span{color:var(--sec)}
@media (max-width:1100px){.mkc-site-mural{grid-template-columns:1fr}}
@media (max-width:900px){.mkc-formrow{grid-template-columns:1fr}}
.mkc-sys span::before{content:"· "}
@media (max-width:720px){
  .mkc-sys{flex-direction:column;align-items:center;gap:1px}
  .mkc-sys span::before{content:none}
}

/* ===== Fase B polish (pacote 8): rua fluida, versão compacta no celular, nx da Base, cartões com um link ===== */
/* the street scales with the card down to 720 px (the strokes stay thin: vector-effect), never scrolls */
.mkc-streetcard{padding:0;margin-bottom:16px;overflow:hidden}
.mkc-streetcard .mkc-cat-head{display:block;padding:18px 20px 4px}
.mkc-street{overflow:visible;padding:8px 20px 14px}
.mkc-street .mks{width:100%;height:auto}
.mkc-street-compact{display:none}
.mks .is-dim{opacity:.4;transition:opacity .15s}
.mks .is-dim:hover,.mks .is-dim:focus-visible{opacity:1}
.mks .is-on .mk-sign{stroke:var(--accent-ink);stroke-width:1.6}
.mkc-missing{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--ter)}
.mkc-missing span{color:var(--sec);font-weight:600}
@media (max-width:900px){
  .mkc-street-wide{display:none}
  .mkc-street-compact{display:block;padding:6px 16px 14px}
  .mkc-street-compact .mks{max-width:420px;margin:0 auto}
}
@media (max-width:720px){.mkc-streetcard .mkc-cat-head{padding:16px 16px 2px}}
/* the catalogue card under the next step */
.mkc-cat{scroll-margin-top:72px}
.mkc-cat-head-row{align-items:center;padding-bottom:10px}
.mkc-nxp{margin-bottom:16px}
.mkc-also{display:block;margin:14px 0 0}
.mkc-also-h{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ter)}
.mkc-also ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.mkc-also li{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:baseline;gap:10px;font-size:13px;line-height:1.5;color:var(--sec)}
.mkc-also li>.dot{background:var(--icon-muted);transform:translateY(-1px)}
.mkc-also li>.dot.warn{background:var(--warn-ico)}
.mkc-also li a{font-weight:600;font-size:12.5px;margin-left:4px;white-space:nowrap}
.mkc-obra{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);margin-left:4px}
/* plain next-step markup the pages write by hand (docs/UI.md §8.2) keeps the Base spacing */
.mkc-page .nx{margin-bottom:16px}
/* Conversas and Cotações cards: the title is the one link and covers the card */
.mkc-site{position:relative}
.mkc-site-copy h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.mkc-site-copy h3 a:focus-visible{outline:none}
.mkc-site:has(h3 a:focus-visible){box-shadow:var(--focus)}
.mkc-site:hover{border-color:var(--line)}
.mkc-site:hover h3 a{text-decoration:underline;text-underline-offset:3px}
.mkc-site-alt{position:relative;z-index:1;margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--sec);max-width:62ch}
.mkc-site-alt a{font-weight:600}
.mkc-site{grid-template-columns:minmax(0,540px) minmax(0,1fr)}
.mkc-site-mural{grid-template-columns:minmax(0,440px) minmax(0,1fr)}
@media (max-width:1100px){.mkc-site,.mkc-site-mural{grid-template-columns:1fr}}
/* empty states drawn (the empty lot, the board with no notice) */
.mkc-emptycard{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px 36px;align-items:center;padding:24px 28px}
.mkc-emptycard h2{margin:0 0 6px;font-size:18px;font-weight:650;letter-spacing:-.015em}
.mkc-emptycard p{margin:0;font-size:13.5px;line-height:1.55;color:var(--sec);max-width:56ch}
.mkc-emptycard .btn{margin-top:16px;display:inline-flex;align-items:center;gap:8px}
.mkc-emptycard .btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:720px){.mkc-emptycard{grid-template-columns:1fr;padding:20px 18px}}
/* object detail pages: back link above the eyebrow (docs/UI.md §8.1) */
.mkc-back{display:inline-block;margin:0 0 10px;font-size:13px}
/* quote detail with no proposal yet: one card, the notice and the empty envelope side by side */
.mkc-notice-one{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:16px 32px;align-items:center;margin-bottom:16px}
.mkc-notice-one .mkc-h{margin-bottom:8px}
.mkc-notice-one .mkc-about{margin-top:0}
@media (max-width:1000px){.mkc-notice-one{grid-template-columns:1fr}}
/* Base drawer (.drw) for the proposal decision: the message as a quote block */
.mkc-drw-quote{margin:0;padding:12px 14px;background:var(--sunken);border-radius:var(--r);font-size:13.5px;line-height:1.55}
/* "depende de você" is information, not the page's orange (the orange lives in the .nx) */
.mkc-site .mkc-todo{color:var(--warn)}
/* the building of each request: a narrower drawing with shorter captions on a phone */
.mkc-art-compact{display:none}
@media (max-width:600px){.mkc-art .mkc-art-wide,.mkc-site-art .mkc-art-wide{display:none}.mkc-art-compact{display:block;width:100%}.mkc-art-compact .mks{width:100%;height:auto}}
