/* Offertläget på mobil (docs/mobile/ZIMLA_MOBIL_HANDOVER.md 6.3, prototypen "Jobbet: Chatt | Offert"). Allt under 1024 px;
   desktopens offertläge (zimla-offertlage.css) rörs inte och döljs bara här. Mått och färger ur prototypen. */
.olm { display: none; }
.zgc-head, .zgc-welcome { display: none; }  /* den globala chattens huvud och välkomst: bara html.zgc-on (nedan) */
@media (max-width: 1023px) {
  .olm {
    --olm-deep: #12382b; --olm-green: #1f6b4f; --olm-mint: #6fd39b; --olm-sage: #e4ede6; --olm-paper: #fff; --olm-cream: #faf9f5;
    --olm-ink: #1d2420; --olm-mut: #5d6b61; --olm-soft: #6b746d; --olm-line: #e3e6e1; --olm-line2: #eef0ec;
    --olm-serif: Newsreader, Georgia, serif;
    position: fixed; inset: 0; z-index: 45; display: flex; flex-direction: column; background: var(--olm-sage); color: var(--olm-ink);
    font: 400 14px/1.45 Inter, ui-sans-serif, system-ui, sans-serif;
  }
  /* Desktopens skal, appens topplist och docka: jobbet är en detaljsida utan bottenmeny (6.3, 5.4). */
  html.olm-on .ol, html.olm-on [data-zimla-mobile-dock], html.olm-on .zimla-global-topbar { display: none !important; }
  html.olm-on, html.olm-on body { overflow: hidden; background: var(--olm-sage, #e4ede6); }

  .olm-head { flex: none; display: flex; align-items: center; gap: 8px; padding: calc(12px + env(safe-area-inset-top, 0px)) 12px 8px; }
  .olm-back { flex: none; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.7); display: inline-flex; align-items: center; justify-content: center; color: var(--olm-deep); text-decoration: none; }
  .olm-back .material-symbols-outlined { font-size: 18px; }
  .olm-title { flex: 1; min-width: 0; }
  .olm-title b { display: block; font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .olm-title small { display: block; font-size: 12px; color: var(--olm-mut); }

  .olm-seg { flex: none; position: relative; display: grid; grid-template-columns: 1fr 1fr; margin: 0 16px 8px; padding: 3px; border-radius: 12px; background: rgba(18, 56, 43, 0.08); }
  .olm-seg button { position: relative; z-index: 1; min-height: 38px; border: 0; background: none; font: 600 13.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; color: var(--olm-mut); display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
  .olm-seg button[aria-selected="true"] { color: var(--olm-deep); }
  .olm-ind { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); border-radius: 9px; background: var(--olm-paper); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; }
  .olm[data-pane="offer"] .olm-ind { transform: translateX(100%); }
  .olm-count { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--olm-green); color: #fff; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
  .olm-count:empty { display: none; }

  .olm-panes { position: relative; flex: 1; min-height: 0; overflow: hidden; }
  .olm-pane { position: absolute; inset: 0; display: flex; flex-direction: column; transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1); }
  .olm[data-pane="chat"] .olm-pane-offer { transform: translateX(100%); }
  .olm[data-pane="offer"] .olm-pane-chat { transform: translateX(-100%); }
  .olm-pane-offer { background: var(--olm-cream); }
  .olm-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 16px 16px; }
  .olm-foot { flex: none; padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--olm-paper); border-top: 1px solid var(--olm-line); }
  .olm-open { display: flex; align-items: center; justify-content: center; min-height: 46px; border-radius: 14px; background: var(--olm-green); color: #fff; font-weight: 600; font-size: 14px; text-decoration: none; }

  .olm-doc { display: flex; flex-direction: column; gap: 10px; }
  .olm-doc > * { flex-shrink: 0; }
  .olm-pay { background: var(--olm-deep); color: #fff; border-radius: 20px; padding: 16px 18px; }
  .olm-pay > small { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--olm-mint); }
  .olm-big { display: flex; align-items: baseline; gap: 6px; margin-top: 4px; }
  .olm-big b { font: 500 36px/1.1 var(--olm-serif); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .olm-big span { font-size: 12px; color: #b9d3c6; }
  .olm-pay dl { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.14); display: grid; gap: 3px; font-size: 12.5px; color: #c8d9cf; }
  .olm-pay dl div { display: flex; justify-content: space-between; gap: 12px; }
  .olm-pay dd { margin: 0; white-space: nowrap; }
  .olm-pay dd button { margin: -6px 0; padding: 6px 0; border: 0; background: none; font: inherit; color: #ffd28a; text-decoration: underline; }
  /* ROT-uppgifter saknas: beloppet står kvar, "N saknas ›" efter; hela raden är träffytan (≥ 44 px) och öppnar bladet. */
  .olm-pay .olm-rotrow { position: relative; }
  .olm-pay .olm-rotrow dd { display: inline-flex; align-items: center; gap: 8px; }
  .olm-pay .olm-rotrow dd button { display: inline-flex; align-items: center; text-decoration: none; }
  .olm-pay .olm-rotrow dd button::after { content: ""; position: absolute; inset: -12px -8px; }
  .olm-pay .olm-rotrow dd button .material-symbols-outlined { margin-right: -5px; font-size: 17px; }
  .olm-sheet.olm-rotsheet .zm-sheet__body { padding: 12px var(--zm-gutter, 16px) 8px; }
  .olm-rotsheet .olm-rot-f { display: block; }
  .olm-rotsheet .olm-rot-f input { width: 100%; box-sizing: border-box; height: 50px; margin: 0 0 12px; padding: 0 14px; border: 1px solid #dfe3de; border-radius: 12px; background: #fff; font-size: 16px; color: #1d2420; box-shadow: none; }
  .olm-rotsheet .olm-rot-f input:focus { outline: 0; border-color: #1f6b4f; box-shadow: 0 0 0 3px rgba(31, 107, 79, .14); }
  .olm-rotsheet [data-olm-rot-fields][hidden] { display: none; }
  .olm-rotsheet .olm-send-l em { font-style: normal; color: #8a948c; }
  .olm-rotsheet .olm-rot-note { margin: 2px 0 4px; font-size: 13px; line-height: 1.45; color: #5d6b61; }
  .zm-kb .olm-rotsheet .zm-sheet__foot { display: none; }
  .olm-label { margin: 6px 2px 0; font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--olm-mut); }
  .olm-card { background: var(--olm-paper); border: 1px solid #ebe8e1; border-radius: 16px; padding: 2px 14px; }
  .olm-room { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 8px 0; border: 0; border-top: 1px solid var(--olm-line2); background: none; font: inherit; color: inherit; text-align: left;
    -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: pan-y; }
  .olm-room:first-child { border-top: 0; }
  .olm-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; background: #e6f1ea; color: var(--olm-green); display: inline-flex; align-items: center; justify-content: center; }
  .olm-ic .material-symbols-outlined { font-size: 19px; }
  .olm-rt { flex: 1; min-width: 0; }
  .olm-rt b { display: block; font-size: 14px; font-weight: 600; }
  .olm-rt small { display: block; font-size: 12px; color: var(--olm-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .olm-kr { flex: none; font: 400 17px/1.2 var(--olm-serif); white-space: nowrap; font-variant-numeric: tabular-nums; }
  .olm-chev { flex: none; color: #9aa29c; font-size: 20px; }
  .olm-room.is-excluded :is(.olm-ic, .olm-rt b) { opacity: 0.55; }
  .olm-room.is-excluded .olm-kr { color: var(--olm-soft); }
  .olm-exbadge { margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: #f4ead6; color: #8a5a12; font-size: 11px; font-style: normal; font-weight: 600; opacity: 1; }
  .olm-room.zm-focused { border-radius: 12px; }
  .olm-room.zm-gone { display: none; }
  .olm-addroom { min-height: 46px; border: 1px dashed #c3d4c8; border-radius: 14px; background: none; color: var(--olm-green); font: 600 14px/1 Inter, ui-sans-serif, system-ui, sans-serif; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
  .olm-empty { margin: 8px 2px; color: var(--olm-mut); font-size: 13.5px; }
  .olm-skel { display: grid; gap: 10px; }
  .olm-skel i { height: 56px; border-radius: 14px; background: #ecebe5; }
  .olm-skel i.is-pay { height: 132px; border-radius: 20px; background: #dfe7e1; }

  /* Chatt: appens Zimla AI-panel ligger över chattpanelens yta (samma samtal, bundet till offerten). */
  /* Höjden mot fönstret (dvh): skalets förälder ger annars en kortare yta för position: fixed. */
  html.olm-on .zimla-ai-panel-shell { position: fixed !important; top: calc(var(--olm-top, 112px) + var(--olm-vt, 0px)) !important; left: 0 !important; right: 0 !important; bottom: auto !important;
    height: calc(var(--olm-vh, 100dvh) - var(--olm-top, 112px)) !important; max-height: none !important; border-radius: 0 !important; z-index: 46 !important;
    transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1); }
  html.olm-on .zimla-ai-panel__body { background: transparent !important; }
  html.olm-on.olm-offer .zimla-ai-panel-shell { transform: translateX(-100%); pointer-events: none; }
  /* Panelen är chattens yta, inte ett ark: ingen skrim, inget grepp eller arkhuvud, ända ner till kanten. */
  html.olm-on .zimla-ai-panel-backdrop, html.olm-on .zimla-ai-panel__drag-handle, html.olm-on .zimla-ai-panel__header { display: none !important; }
  html.olm-on aside.zimla-ai-panel { position: absolute !important; inset: 0 !important; width: auto !important; height: auto !important; max-height: none !important;
    margin: 0 !important; border-radius: 0 !important; transform: none !important; box-shadow: none !important; background: var(--olm-sage, #e4ede6) !important; }

  /* Rummets blad (6.5): huvud med ikon, namn, meta och summa; grupper med antal och summa; rader med bock och belopp. */
  .olm-sheet { --olm-green: #1f6b4f; --olm-deep: #12382b; --olm-line2: #eef0ec; --olm-mut: #5d6b61; --olm-soft: #6b746d; --olm-serif: Newsreader, Georgia, serif; }
  .olm-sheet .zm-sheet__body { padding: 0 0 12px; }
  .olm-sh { display: flex; align-items: center; gap: 12px; }
  .olm-sh .olm-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; background: #e6f1ea; color: var(--olm-green); display: inline-flex; align-items: center; justify-content: center; }
  .olm-sh-t { flex: 1; min-width: 0; }
  .olm-sh-t b { display: block; font-size: 18px; font-weight: 600; }
  .olm-sh-t small { display: block; font-size: 12.5px; color: var(--olm-soft); }
  .olm-sh-kr { flex: none; font: 400 22px/1.1 var(--olm-serif); color: var(--olm-deep); white-space: nowrap; }
  .olm-hint { margin: 0; padding: 8px 16px; font-size: 12.5px; color: var(--olm-mut); border-bottom: 1px solid var(--olm-line2); }
  .olm-grp > header { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 16px; background: #f8faf7; border-top: 1px solid var(--olm-line2);
    font-size: 10.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #29312b; }
  .olm-grp > header span { letter-spacing: 0; font-variant-numeric: tabular-nums; }
  .olm-grp > header i { margin-left: 4px; font-style: normal; font-weight: 500; letter-spacing: 0; color: #788279; }
  .olm-row { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 12px 6px 16px; border-top: 1px solid #f0eee9; transition: background-color .12s;
    -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: pan-y; }
  .olm-row.is-focus { background: #e9f2ec; }
  .olm-row.is-off { opacity: 0.45; text-decoration: line-through; }
  .olm-row.is-hidden .olm-rn { color: #8a948d; }
  .olm-tick { flex: none; width: 20px; height: 20px; border-radius: 50%; background: #e4f3e9; color: #07803e; display: inline-flex; align-items: center; justify-content: center; }
  .olm-tick .material-symbols-outlined { font-size: 14px; font-weight: 700; }
  .olm-row.is-ro .olm-tick { background: #eef0ec; color: #8a948d; }
  .olm-rn { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.35; color: #1d2420; }
  .olm-rq { display: none; }
  .olm-sheet .olm-rs { display: none !important; }  /* postens pris visas inte (ägaren 2026-10-14); gruppens och rummets summa står kvar */
  .olm-rs { flex: none; font-size: 12.5px; color: var(--olm-soft); white-space: nowrap; font-variant-numeric: tabular-nums; }
  .olm-own, .olm-disc { margin-left: 4px; padding: 0 6px; border-radius: 999px; background: #eef0ec; color: #4d5951; font-size: 11px; font-style: normal; }
  /* Fokusläget (prototypens .mo.focus/.flymenu): raden visar mängd · tid · belopp och ikonerna till höger; pillen och
     panelen ligger över raderna under den. */
  .olm-sheet-body { position: relative; }
  .olm-row.is-focus { background: #eef5f0; padding-right: 8px; }
  .olm-row.is-focus .olm-rs { display: none; }
  .olm-rd { display: block; margin-top: 2px; font-size: 12px; color: var(--olm-mut); }
  .olm-ri { display: flex; flex: none; }
  .olm-ib { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 10px; background: none; color: #2f4237; display: inline-flex; align-items: center; justify-content: center; flex: none; }
  .olm-ib.is-light { color: #d7efe2; }
  .olm-fly { position: absolute; z-index: 3; background: #1b2420; color: #fff; box-shadow: 0 18px 34px -14px rgba(16, 30, 22, .6); animation: olm-pop .16s ease-out both; }
  .olm-fly.is-pill { right: 12px; display: flex; align-items: center; gap: 2px; padding: 4px 4px 4px 6px; border-radius: 999px; }
  .olm-flybtn { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px 0 8px; border: 0; border-radius: 999px; background: none; color: #fff; font: 600 13.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-spark { color: #6fd39b; flex: none; }
  .olm-fly.is-panel { left: 10px; right: 10px; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 16px; }
  .olm-zline { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px 0 12px; border-radius: 12px; background: #263029; }
  .olm-zline input { flex: 1; min-width: 0; height: 40px; border: 0; outline: 0; background: transparent; color: #fff; font-size: 16px; box-shadow: none; padding: 0; }
  .olm-zline input::placeholder { color: #9aa29c; }
  .olm-zsend { width: 34px; height: 34px; flex: none; border: 0; border-radius: 50%; background: #1f6b4f; color: #fff; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  .olm-zchips { display: flex; flex-wrap: wrap; gap: 6px; }
  .olm-zchips button { min-height: 32px; padding: 0 11px; border: 0; border-radius: 999px; background: #2f3a33; color: #e6eee9; font: 500 12.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-znote { margin: 0 4px; font-size: 12.5px; line-height: 1.5; color: #c8d9cf; }
  .olm-zthink { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; min-height: 40px; font-size: 14px; color: #c8d9cf; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .olm-spin { width: 14px; height: 14px; flex: none; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .25); border-top-color: #6fd39b; animation: olm-spin .8s linear infinite; }
  @keyframes olm-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }
  @keyframes olm-spin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .olm-fly { animation: none; } }
  /* Bladets fot som prototypen: "Fråga Zimla om …" är en mjuk grå knapp utan ram. */
  .olm-sheet .zm-sheet__foot .zm-btn { min-height: 46px; border-radius: 14px; font-size: 14px; font-weight: 600; }
  .olm-sheet .zm-sheet__foot .zm-btn--ghost { border: 0; background: #f1f3ef; color: var(--olm-deep); }
  .olm-addm { margin: 8px 16px 10px; min-height: 34px; padding: 0 13px 0 10px; border: 1px dashed #c3d4c8; border-radius: 999px; background: #fff; color: var(--olm-green); font: 500 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; display: inline-flex; align-items: center; gap: 6px; }
  .olm-post-n { margin: 0 0 12px; font-size: 15px; font-weight: 600; }
  .olm-post-q { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; }
  .olm-step { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 12px; background: #f1f3ef; }
  .olm-step button { width: 44px; height: 40px; border: 0; border-radius: 9px; background: #fff; font-size: 20px; }
  .olm-step input { width: 64px; border: 0; background: transparent; text-align: center; font-size: 16px; font-variant-numeric: tabular-nums; }
  .olm-step em { font-style: normal; font-size: 13px; color: var(--olm-mut, #5d6b61); margin-right: 4px; }
  .olm-post-sw { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid #eef0ec; }
  .olm-post-sw small { display: block; font-size: 12.5px; color: #6b746d; }
  .olm-post-sw input { width: 22px; height: 22px; accent-color: #1f6b4f; }
  /* Radens timmar och material (ägaren 2026-10-17, som datorns Arbetsvy): materialet i grått under namnet, en rad;
     gruppens summa är en knapp med penna (44 px träffyta, rubriken står kvar på sin höjd). Kunden ser inget av det. */
  .olm-rm { display: block; margin-top: 2px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; color: #8a948d; }
  .olm-row.is-focus .olm-rm { color: #6b746d; }
  .olm-ri { gap: 0; }
  .olm-ri .olm-ib { width: 44px; height: 44px; }
  .olm-row.is-changed { animation: olm-changed 1.6s ease-out; }
  @keyframes olm-changed { from { background: #d6ebdd; } to { background: transparent; } }
  @media (prefers-reduced-motion: reduce) { .olm-row.is-changed { animation: none; background: #e9f2ec; } }
  .olm-gprice { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin: -8px -8px -8px 0; padding: 0 8px; border: 0; border-radius: 10px; background: none;
    color: #29312b; font: 600 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: 0; text-transform: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .olm-gprice svg { color: #788279; flex: none; }
  .olm-gprice:active { background: #eef3ef; }
  .olm-sheet .olm-sh-kr.is-pending, .olm-gprice .is-pending { animation: olm-pulse 1s ease-in-out infinite; }
  @media (prefers-reduced-motion: reduce) { .olm-sheet .olm-sh-kr.is-pending, .olm-gprice .is-pending { animation: none; opacity: .5; } }
  .olm-grp > header > span { text-transform: none; font-size: 12px; font-weight: 600; }
  .olm-step button { height: 44px; }
  .olm-post-h { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
  .olm-post-q > span:first-child small { display: block; font-size: 12px; color: #6b746d; }
  .olm-post-calc { min-height: 44px; padding: 0 4px; border: 0; background: none; color: #1f6b4f; font: 500 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-post-note { margin: -4px 0 6px; font-size: 12.5px; color: #6b746d; }
  .olm-post-own { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -4px 0 6px; }
  .olm-post-own .olm-post-note { margin: 0; }
  .olm-post-mat { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 8px 0; border: 0; border-top: 1px solid #eef0ec; background: none; text-align: left; color: inherit; font: inherit; }
  .olm-post-mat > span:first-child { flex: 1; min-width: 0; }
  .olm-post-mat small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12.5px; color: #6b746d; }
  .olm-post-mat svg { flex: none; color: #8a948d; }
  /* Materialarket: ett kort per material, fält på 44 px och 16 px text, inga belopp per material (bara à-priset). */
  .olm-matsheet::backdrop { background: rgba(18, 26, 22, 0.18); }
  .olm-matsheet .zm-sheet__body { scroll-padding-bottom: 12px; }
  .zm-kb .olm-matsheet .zm-sheet__foot { display: none; }
  .olm-mintro { margin: 0 0 10px; font-size: 12.5px; color: #6b746d; }
  .olm-mc { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; padding: 12px 12px 12px 14px; border: 1px solid #e5e2da; border-radius: 14px; background: #fff; }
  .olm-mc.is-new { animation: olm-pop .16s ease-out both; }
  .olm-mc.is-gone { background: #f8f8f5; }
  .olm-mc.is-gone .olm-mc-n { text-decoration: line-through; color: #8a948d; }
  .olm-mc-h { display: flex; align-items: center; gap: 6px; }
  .olm-mc input, .olm-mc select { min-width: 0; height: 44px; padding: 0 10px; border: 1px solid #e3e6e1; border-radius: 10px; background: #fff; font: 16px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; color: #1d2420; }
  .olm-mc input[readonly], .olm-mc select:disabled { background: #f6f7f4; color: #6b746d; }
  .olm-mc-n { flex: 1; font-weight: 500; }
  .olm-mc-x { flex: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 10px; background: none; color: #4d5951; display: inline-flex; align-items: center; justify-content: center; }
  .olm-mc-r { display: flex; align-items: center; gap: 8px; }
  .olm-mc-r input { flex: 1; text-align: right; font-variant-numeric: tabular-nums; }
  .olm-mc-r select { flex: none; max-width: 40%; }
  .olm-mc-r > span { flex: none; font-size: 13px; color: #6b746d; }
  .olm-mc-b { width: 100%; }
  .olm-mc small { font-size: 12px; color: #6b746d; }
  .olm-mc-est { align-self: flex-start; padding: 2px 8px; border-radius: 999px; background: #fdf3dc; color: #7a5a12; }
  .olm-mnote { margin: 0 0 10px; padding: 8px 10px; border-radius: 10px; background: #f6f8f4; font-size: 12.5px; line-height: 1.45; color: #4d5951; }
  .olm-madds { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
  .olm-madds button { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px 0 10px; border: 1px dashed #c3d4c8; border-radius: 999px; background: #fff; color: #1f6b4f; font: 500 13.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-madds button[disabled] { opacity: .6; }
  .olm-gp-in { display: flex; align-items: center; gap: 8px; }
  .olm-gp-in input { flex: 1; min-width: 0; height: 48px; padding: 0 12px; border: 1px solid #e3e6e1; border-radius: 12px; text-align: right; font: 16px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; font-variant-numeric: tabular-nums; }
  .olm-gp-in span { flex: none; font-size: 13px; color: #6b746d; }
  .olm-gp-note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; color: #6b746d; }
  @media (prefers-reduced-motion: reduce) { .olm-mc.is-new { animation: none; } }
  .olm-ask textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid #e3e6e1; border-radius: 12px; font: 16px/1.4 Inter, ui-sans-serif, system-ui, sans-serif; resize: none; }
  .olm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .olm-chips button { min-height: 36px; padding: 0 12px; border: 1px solid #e3e6e1; border-radius: 999px; background: #fff; font: 500 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; }

  /* Fokusmenyns paneler: offertlägets egna mallar (Mått, Mallar, Bilagor) i ett blad – samma variabler som desktopens .ol. */
  .olm-panel {
    --ol-fg: #1d2420; --ol-fg2: #4e5751; --ol-mut: #6b736e; --ol-mut2: #8a918c; --ol-line: #e4e7e2; --ol-line2: #eef0ec;
    --ol-g: #1f6b4f; --ol-g2: #15543d; --ol-gbg: #e6f1ea; --ol-gdot: #2fbf71; --ol-deep: #12382b;
    --ol-amb: #d08a00; --ol-ambbg: #fff4dc; --ol-ambfg: #8a5a00; --ol-paper: #f7f6f2;
    --ol-serif: Newsreader, Georgia, serif; --ol-ui: Inter, system-ui, -apple-system, sans-serif;
    color: var(--ol-fg); font: 14px/1.45 var(--ol-ui);
  }
  .olm-panel .ol-rt2 { display: none; }
  .olm-panel .ol-mt2 { grid-template-columns: 1fr; }
  .olm-panel .ol-mfoot { display: none; }  /* bladets fot har Spara mått */
  .olm-panel input, .olm-panel select { font-size: 16px; }
  .olm-panel .ol-dim input { font-size: 16px; width: 52px; }
  .olm-panel .ol-tcards { grid-template-columns: 1fr !important; }
  /* Mått i prototypens form (.md-*): rummet i en krämfärgad ruta med vita måttbrickor, dörrar/fönster med runda stegare,
     ytorna som kort två och två med stora siffror; foten har tipset, Avbryt och Spara mått. */
  .olm-sheet .olm-panel-matt .ol-mt2 { display: flex; flex-direction: column; gap: 12px; }
  .olm-sheet .olm-panel-matt .ol-mvis { overflow: hidden; border: 1px solid #e5e2da; border-radius: 16px; background: #faf9f5; box-shadow: none; padding: 0; }
  .olm-sheet .olm-panel-matt .ol-mcan { margin: 4px 10px 0; background: none; border: 0; }
  .olm-sheet .olm-panel-matt .rs-vagg { fill: #f4efe6; stroke: #c9bfae; }
  .olm-sheet .olm-panel-matt .rs-vagg.l { fill: #ece5d8; }
  .olm-sheet .olm-panel-matt .rs-golv { fill: #bfe3cf; stroke: #8cc3a6; }
  .olm-sheet .olm-panel-matt .rs-tak { fill: none; stroke: #b9b1a3; stroke-dasharray: 4 4; }
  .olm-sheet .olm-panel-matt .rs-win { fill: #d6e6f2; stroke: #8fa9bd; }
  .olm-sheet .olm-panel-matt .rs-door { fill: #fff; stroke: #b3a994; }
  .olm-sheet .olm-panel-matt .ol-dim { display: inline-flex; align-items: center; gap: 2px; height: 34px; padding: 0 9px 0 4px; border: 1px solid #dcd8cf; border-radius: 9px; background: #fff;
    box-shadow: 0 6px 14px -10px rgba(18, 56, 43, .5); font-size: 13px; color: #6b746d; }
  .olm-sheet .olm-panel-matt .ol-dim:focus-within { border-color: #1f6b4f; box-shadow: 0 0 0 3px rgba(31, 107, 79, .14); }
  .olm-sheet .olm-panel-matt .ol-dim input { width: 52px; height: 30px; border: 0; outline: 0; padding: 0; background: transparent; box-shadow: none; text-align: right; font-size: 16px; font-weight: 600; color: #1d2420; }
  .olm-sheet .olm-panel-matt .ol-dim input::placeholder { font-weight: 500; color: #8a948c; }
  .olm-sheet .olm-panel-matt .ol-mbar { display: flex; justify-content: space-between; gap: 10px; margin: 0; padding: 8px 14px 10px; border-top: 1px solid #ebe8e1; background: #fff; }
  .olm-sheet .olm-panel-matt .ol-step { display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; font-size: 13.5px; color: #2f4237; }
  .olm-sheet .olm-panel-matt .ol-step button { width: 32px; height: 32px; padding: 0; border: 1px solid #dfe3de; border-radius: 50%; background: #fff; color: #12382b; display: inline-flex; align-items: center; justify-content: center; }
  .olm-sheet .olm-panel-matt .ol-step button .material-symbols-outlined { font-size: 17px; }
  .olm-sheet .olm-panel-matt .ol-step b { min-width: 14px; text-align: center; font-weight: 600; }
  .olm-sheet .olm-panel-matt .ol-mright { display: block; padding: 0; border: 0; background: none; }
  .olm-sheet .olm-panel-matt .ol-msurf { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
  .olm-sheet .olm-panel-matt .ol-sfc { min-width: 0; display: flex; flex-flow: row wrap; align-items: baseline; gap: 0 4px; padding: 10px 12px; border: 1px solid #e5e2da; border-radius: 14px; background: #fff; box-shadow: none; grid-column: auto; }
  .olm-sheet .olm-panel-matt .ol-sfc small { flex: 0 0 100%; font-size: 12px; font-weight: 600; color: #5d6b61; }
  .olm-sheet .olm-panel-matt .ol-sfc small i { font-style: normal; font-weight: 400; color: #6b746d; }
  .olm-sheet .olm-panel-matt .ol-sfc b { font: 500 24px/1.2 Newsreader, Georgia, serif; color: #12382b; font-variant-numeric: tabular-nums; }
  .olm-sheet .olm-panel-matt .ol-sfc > span, .olm-sheet .olm-panel-matt .ol-sfv { font: 500 12.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; color: #6b746d; }
  .olm-sheet .olm-panel-matt .ol-sfc.is-ed { border-color: #cfdcd3; background: #fbfdfb; cursor: text; }
  .olm-sheet .olm-panel-matt .ol-sfc.is-ed:focus-within { border-color: #1f6b4f; box-shadow: 0 0 0 3px rgba(31, 107, 79, .12); }
  .olm-sheet .olm-panel-matt .ol-sfv { display: flex; align-items: baseline; gap: 4px; }
  .olm-sheet .olm-panel-matt .ol-sfv input { width: 4ch; field-sizing: content; min-width: 2ch; max-width: 100%; height: 30px; padding: 0; border: 0; outline: 0; background: transparent; box-shadow: none;
    font: 500 24px/1.2 Newsreader, Georgia, serif; color: #12382b; font-variant-numeric: tabular-nums; }
  .olm-sheet .olm-panel-matt .ol-sfc--wide small i { display: block; }
  .olm-sheet .olm-panel-matt { padding: 12px 16px 4px; }
  .olm-sheet .olm-panel-matt .ol-sfc { justify-content: flex-start !important; text-align: left !important; }
  .olm-sheet .olm-panel-matt .ol-sfc b { margin: 0 !important; text-align: left !important; }
  .olm-sheet .olm-panel-matt .ol-sfc > span:not(.ol-sfv) { margin: 0 !important; font: 500 12.5px/1 Inter, ui-sans-serif, system-ui, sans-serif !important; color: #6b746d !important; }
  .olm-sheet .olm-panel-matt .ol-sfv { justify-content: flex-start !important; margin: 0 !important; font: 500 12.5px/1 Inter, ui-sans-serif, system-ui, sans-serif !important; color: #6b746d !important; }
  .olm-sheet .olm-panel-matt .ol-sfv input { text-align: left !important; margin: 0 !important; width: 3.2ch !important; field-sizing: content !important; min-width: 1.5ch !important; }
  /* Mallar (prototypens .tc-*): nivåväljaren fast överst, tabellen rullar med fast rubrikrad, noten ovanför foten. */
  .olm-tcsheet .zm-sheet__body { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
  .olm-tcb { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .olm-tc-pager { flex: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 10px 16px; padding: 3px; border-radius: 12px; background: rgba(18, 56, 43, .08); }
  .olm-tc-pager button { height: 36px; border: 0; border-radius: 9px; background: none; font: 600 13.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; color: #5d6b61; }
  .olm-tc-pager button[aria-checked="true"] { background: #fff; color: #12382b; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }
  .olm-tc-wrap { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; border-top: 1px solid #e3e6e1; }
  .olm-tc { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 13px; }
  .olm-tc th, .olm-tc td { padding: 9px 6px; border-bottom: 1px solid #eef0ec; background: #fff; text-align: center; vertical-align: middle; font-weight: 400; }
  .olm-tc th[scope="row"], .olm-tc thead th:first-child { padding-left: 16px; text-align: left; line-height: 1.35; color: #1d2420; }
  .olm-tc thead th { position: sticky; top: 0; z-index: 1; border-bottom: 1px solid #e3e6e1; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5d6b61; }
  .olm-tc thead th:not(:first-child) { width: 66px; padding: 6px 2px; }
  .olm-tc thead th:last-child, .olm-tc td:last-child { padding-right: 10px; }
  .olm-tc thead th button { width: 100%; min-height: 40px; padding: 0; border: 0; border-radius: 10px; background: none; display: flex; flex-direction: column; align-items: center; justify-content: center;
    font: 600 12px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: 0; text-transform: none; color: #5d6b61; }
  .olm-tc thead th button small { font-size: 10px; font-weight: 600; color: #1f6b4f; }
  .olm-tc-g th { padding: 7px 6px 7px 16px; background: #f4f7f3; text-align: left; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #087b3e; }
  .olm-tc[data-col="0"] .c0, .olm-tc[data-col="1"] .c1, .olm-tc[data-col="2"] .c2 { background: #eef6f1; }
  .olm-tc[data-col="0"] thead .c0 button, .olm-tc[data-col="1"] thead .c1 button, .olm-tc[data-col="2"] thead .c2 button { color: #12382b; }
  .olm-tc[data-col="0"] thead .c0, .olm-tc[data-col="1"] thead .c1, .olm-tc[data-col="2"] thead .c2 { box-shadow: inset 0 3px 0 #1f6b4f; }
  .olm-tc-ck { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #e4f3e9; color: #07803e; }
  .olm-tc-out { color: #b0b7b1; font-size: 15px; }
  .olm-tc-empty { padding: 22px 16px !important; color: #4d5951; text-align: left !important; }
  .olm-tc-note { flex: none; padding: 8px 16px 4px; font-size: 11.5px; line-height: 1.4; color: #6b746d; border-top: 1px solid #eef0ec; }
  /* Skicka till kunden (prototypen): Sms | E-post som växel, fält med etikett ovanför, bara det som stoppar syns. */
  .olm-send .zm-sheet__head { border-bottom: 0; padding-bottom: 4px; }
  .olm-send .olm-panel { padding: 0 2px; }
  .olm-send :is([data-ol-send-head], [data-ol-send-go], .ol-via) { display: none !important; }
  .olm-send .ol-ready-in { padding: 0; border: 0; background: none; box-shadow: none; }
  .olm-send .ol-rcv { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; border: 0; background: none; }
  .olm-send-seg { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 12px; padding: 3px; border-radius: 12px; background: #f1f3ef; }
  .olm-send-seg button { height: 40px; border: 0; border-radius: 9px; background: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font: 600 14px/1 Inter, ui-sans-serif, system-ui, sans-serif; color: #5d6b61; }
  .olm-send-seg button .material-symbols-outlined { font-size: 17px; }
  .olm-send-seg button[aria-checked="true"] { background: #fff; color: #12382b; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }
  .olm-send-seg button:disabled { opacity: .45; }
  .olm-send-l { display: block; margin: 0 0 6px; font-size: 13px; color: #4d5951; }
  .olm-send-l[hidden] { display: none; }
  .olm-send .ol-rcv input { width: 100%; box-sizing: border-box; height: 50px; margin: 0 0 12px; padding: 0 14px; border: 1px solid #dfe3de; border-radius: 12px; background: #fff; font-size: 16px; color: #1d2420; box-shadow: none; }
  .olm-send .ol-rcv input:focus { outline: 0; border-color: #1f6b4f; box-shadow: 0 0 0 3px rgba(31, 107, 79, .14); }
  .olm-send .ol-rcv input[aria-invalid="true"] { border-color: #b3261e; }
  .olm-send .ol-rcv input[hidden] { display: none; }
  .olm-send [data-ol-send-checks] { margin: 0; padding: 0; border: 0; }
  .olm-send [data-ol-send-checks] .ol-it:has(.ol-ok) { display: none; }
  .olm-send [data-ol-send-checks] .ol-it { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; color: #8a5a00; border: 0; }
  .olm-send [data-ol-send-checks] .ol-it .ol-no { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #e8a33d; }
  .olm-send [data-ol-send-checks] .ol-it button { margin-left: auto; min-height: 32px; padding: 0 10px; border: 1px solid #e3e6e1; border-radius: 8px; background: #fff; font-size: 12.5px; }
  /* Offertinställningar: raden ovanför Skicka till kunden och bladet (desktopens panel, prototypens mått). */
  .olm-cust .olm-foot { display: flex; flex-direction: column; gap: 10px; }
  .olm-setrow { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 58px; padding: 8px 12px; border: 1px solid #e5e2da; border-radius: 16px; background: #fff; text-align: left; font: inherit; color: #1d2420; }
  .olm-setic { flex: none; width: 36px; height: 36px; border-radius: 10px; background: #e6f1ea; color: #1f6b4f; display: inline-flex; align-items: center; justify-content: center; }
  .olm-setic .material-symbols-outlined { font-size: 19px; }
  .olm-sett { flex: 1; min-width: 0; display: flex; flex-direction: column; }
  .olm-sett b { font-size: 14px; font-weight: 600; }
  .olm-sett small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: #6b746d; }
  .olm-setsheet .zm-sheet__body { padding: 0 16px 8px; }
  .olm-panel-settings .ol-sbody { padding: 0; }
  .olm-panel-settings .ol-ss { padding: 12px 0; border-bottom: 1px solid #eef0ec; }
  .olm-panel-settings .ol-srow { min-height: 52px; padding: 8px 0; border-top: 1px solid #f0eee9; }
  .olm-panel-settings .ol-st + .ol-srow { border-top: 0; }
  .olm-panel-settings .ol-srow b { font-size: 15px; }
  .olm-panel-settings .ol-sw { width: 50px; height: 30px; }
  .olm-panel-settings .ol-sw::after { width: 24px; height: 24px; left: 3px; top: 3px; }
  .olm-panel-settings .ol-sw[aria-checked="true"]::after { transform: translateX(20px); }
  .olm-panel-settings .ol-pin input { width: 64px; height: 44px; font-size: 16px; border-radius: 12px; }
  .olm-panel-settings .ol-sstep { height: 44px; border-radius: 12px; }
  .olm-panel-settings .ol-sstep button { width: 44px; height: 42px; border-radius: 11px; }
  .olm-panel-settings .ol-sstep output { min-width: 30px; font-size: 16px; }
  .olm-panel-settings .ol-schips { display: flex; flex-wrap: wrap; gap: 8px; }
  .olm-panel-settings .ol-schips button { min-height: 40px; padding: 0 14px; border: 1px solid #e3e6e1; border-radius: 999px; background: #fff; font: 500 14px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-panel-settings .ol-schips button[aria-pressed="true"] { border-color: #12382b; background: #12382b; color: #fff; }
  .olm-panel-settings .ol-schips input { min-height: 40px; padding: 0 10px; border: 1px solid #e3e6e1; border-radius: 12px; font-size: 16px; }
  .olm-panel-settings .olm-setpay span { font: 400 20px/1.2 Newsreader, Georgia, serif; color: #12382b; white-space: nowrap; }
  .olm-setfoot { align-items: center; }
  .olm-setfoot > small { flex: 1; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #5d6b61; }
  .olm-setfoot > small .material-symbols-outlined { font-size: 16px; color: #1f6b4f; }
  .olm-setfoot .zm-btn--primary { flex: none; min-height: 44px; padding: 0 22px; border-radius: 12px; }
  .olm-room.is-pending .olm-rt small { color: #1f6b4f; }
  .olm-room.is-pending .olm-kr { animation: olm-pulse 1s ease-in-out infinite; }
  .olm-doc .olm-big b.is-pending, .olm-doc [data-olm-count].is-pending { animation: olm-pulse 1s ease-in-out infinite; }
  .olm-setsheet .olm-setpay span.is-pending, .olm-setsheet .ol-fix.is-pending { animation: olm-pulse 1s ease-in-out infinite; }
  @keyframes olm-pulse { 50% { opacity: .35; } }
  @media (prefers-reduced-motion: reduce) { .olm-room.is-pending .olm-kr { animation: none; opacity: .5; } }
  .olm-mtfoot { flex-direction: column; align-items: stretch; gap: 8px; }
  .olm-mtfoot > small { font-size: 11.5px; line-height: 1.4; color: #6b746d; }
  .olm-mtfoot > div { display: flex; gap: 8px; }
  .olm-mtfoot > div .zm-btn { flex: 1; }
  /* Mallar på mobil (6.6): bara moment som skiljer mellan nivåerna (växeln visar alla), ✓ eller – per nivå, inga priser. */
  .olm-panel-mallar .ol-cmp { width: 100%; table-layout: fixed; border-collapse: collapse; }
  .olm-panel-mallar .ol-cmp col.ol-cmp-name { width: 46%; }
  .olm-panel-mallar :is(.ol-tp, .ol-td, .ol-cmp-lv small, .ol-cmp-v, .ol-nowp) { display: none !important; }
  .olm-panel-mallar .ol-cmp-lv { padding: 8px 2px; text-align: center; vertical-align: top; }
  .olm-panel-mallar .ol-cmp-lv .ol-tt b { font-size: 13px; }
  .olm-panel-mallar .ol-cmp-lv .ol-btn { min-height: 36px; margin-top: 6px; padding: 0 6px; font-size: 12px; white-space: nowrap; }
  .olm-panel-mallar .ol-cmp-cur { display: block; margin-top: 6px; font-size: 11px; }
  .olm-panel-mallar tbody th[scope="row"] { padding: 8px 6px 8px 0; font-size: 13px; font-weight: 400; text-align: left; overflow-wrap: anywhere; hyphens: auto; }
  .olm-panel-mallar tbody td { text-align: center; }
  .olm-panel-mallar:not(.is-all) :is(tbody.is-same, tr.is-same) { display: none; }
  .olm-panel-mallar .ol-cmpbar .ol-snote { font-size: 13px; }
  .olm-kalkyl .zm-sheet__body { padding: 0; overflow: hidden; }
  .olm-frame { display: block; width: 100%; height: 100%; border: 0; }
  /* Manuell kalkyls fot (prototypens .mk-foot): texten, rummets summa exkl. moms och en liten Klar. */
  .olm-mkfoot { align-items: center; }
  .olm-mkfoot > small { flex: 1; min-width: 0; font-size: 12px; line-height: 1.35; color: var(--olm-soft); }
  .olm-mkfoot > span { display: flex; flex-direction: column; align-items: flex-end; }
  .olm-mkfoot > span b { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .olm-mkfoot > span small { font-size: 11px; color: var(--olm-soft); }
  .olm-sheet .olm-mkfoot .zm-btn--primary { flex: none; min-height: 42px; padding: 0 18px; border-radius: 10px; font-size: 13px; }
  .olm-form { display: grid; gap: 12px; }
  .olm-form label { display: grid; gap: 6px; font-size: 13px; color: #5d6b61; }
  .olm-form :is(input, select) { box-sizing: border-box; width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #e3e6e1; border-radius: 12px; background: #fff; font: 16px Inter, ui-sans-serif, system-ui, sans-serif; color: #1d2420; }
  .olm-form2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .olm-in { position: relative; display: block; }
  .olm-in em { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; color: #6b746d; }
  /* Lägg till rum (zimla-offertlage-mobile.js addRoom): rumstyperna som ikonrutor, namn, yta och nivå som segment. */
  .olm-addsheet .zm-sheet__body { padding: 2px 20px 14px; }
  .olm-add { display: flex; flex-direction: column; gap: 12px; }
  .olm-add-k { margin: 2px 0 -6px; font: 600 11.5px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #6b746d; }
  .olm-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .olm-types button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-height: 56px; padding: 7px 4px; border: 1px solid #e3e6e1; border-radius: 14px; background: #fff; color: #1d2420; font: 500 12.5px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; text-align: center; transition: border-color .15s, background-color .15s; }
  .olm-types button span:last-child { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }
  .olm-types .material-symbols-outlined { font-size: 22px; color: #5d6b61; }
  .olm-types button[aria-checked="true"] { border-color: #1f6b4f; background: #eef6f1; box-shadow: inset 0 0 0 1px #1f6b4f; color: #12382b; }
  .olm-types button[aria-checked="true"] .material-symbols-outlined { color: #1f6b4f; }
  .olm-add-f { display: grid; gap: 6px; }
  .olm-add-f > span:first-child { font: 500 13px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; color: #3d4a42; }
  .olm-add-f > span:first-child em { font-style: normal; font-weight: 400; color: #8a948d; }
  .olm-add-f input { box-sizing: border-box; width: 100%; min-height: 46px; padding: 0 14px; border: 1px solid #e3e6e1; border-radius: 12px; background: #fff; font: 16px Inter, ui-sans-serif, system-ui, sans-serif; color: #1d2420; }
  .olm-add-f input:focus { outline: none; border-color: #1f6b4f; box-shadow: 0 0 0 3px rgba(31, 107, 79, .12); }
  .olm-add-f .olm-in input { padding-right: 40px; }
  .olm-types.is-lv { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .olm-types.is-lv button[data-olm-lv=""]:not([aria-checked="true"]) .material-symbols-outlined { color: #8a948d; }  /* tomt: streckad ruta, nedtonad */

  /* Offerten som kunden ser den (6.7): helskärmslager över jobbet, kundens riktiga sida i en ram, Skicka längst ner. */
  .olm-cust { position: absolute; inset: 0; z-index: 50; display: flex; flex-direction: column; background: var(--olm-cream); }
  .olm-cust[hidden] { display: none; }
  .olm-cust .olm-head { background: var(--olm-cream); }
  .olm-cust-frame { flex: 1; min-height: 0; width: 100%; border: 0; background: var(--olm-cream); }
  .olm-foot form { margin: 0; }
  .olm-foot button.olm-open { width: 100%; border: 0; font: 600 14px Inter, ui-sans-serif, system-ui, sans-serif; }
  /* Utskicket: desktopens Skicka offert-ruta i ett blad. */
  .olm-send .zm-sheet__body { padding: 12px 16px 16px; }
  .olm-send h4 { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
  .olm-send .ol-rcv { display: grid; gap: 10px; margin-bottom: 12px; }
  .olm-send .ol-rcv input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #e3e6e1; border-radius: 12px; background: #fff; font: 16px Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-send .ol-rcv input[aria-invalid="true"] { border-color: #b3261e; }
  .olm-send .ol-via { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #5d6b61; }
  .olm-send .ol-chip { min-height: 38px; padding: 0 12px; border: 1px solid #e3e6e1; border-radius: 999px; background: #fff; display: inline-flex; align-items: center; gap: 6px; font: 500 13px Inter, sans-serif; }
  .olm-send .ol-chip[aria-pressed="true"] { background: #1d2420; border-color: #1d2420; color: #fff; }
  .olm-send .ol-it { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: 14px; }
  .olm-send .ol-ok { width: 22px; height: 22px; border-radius: 50%; background: #e6f1ea; color: #1f6b4f; display: inline-flex; align-items: center; justify-content: center; }
  .olm-send .ol-ok .material-symbols-outlined { font-size: 15px; }
  .olm-send .ol-no { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #e8a33d; box-sizing: border-box; }
  .olm-send .ol-go { width: 100%; min-height: 48px; margin-top: 12px; border: 0; border-radius: 14px; background: #1f6b4f; color: #fff; font: 600 15px Inter, sans-serif; }
  .olm-send .ol-go:disabled { background: #b9cfc1; }

  @media (prefers-reduced-motion: reduce) {
    .olm-pane, .olm-ind, html.olm-on .zimla-ai-panel-shell { transition: none; }
  }
}

/* Chatten i jobbet = prototypens tråd (s-job/p-chat): egna meddelanden som gröna bubblor, Zimlas svar som vita kort med
   "Zimla AI" överst, inga tider/kopiera/arbetade-rader, och en smal skrivrad (håll in och prata · fält · skicka). Tom tråd:
   jobbkortet (rummen, Ni betalar, Se i offerten) – zimla-offertlage-mobile.js jobCard, ur Offert-flikens rumskort. */
@media (max-width: 1023px) {
  /* Chattens form delas med den globala chatten (html.zgc-on, Zimla-knappen i bottenmenyn, handover 6.14). */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell { --olmc-deep: #12382b; --olmc-green: #1f6b4f; --olmc-ink: #1d2420; --olmc-mut: #5d6b61; --olmc-soft: #6b746d; --olmc-line: #e3e6e1; --olmc-line2: #eef0ec; --olmc-serif: Newsreader, Georgia, serif; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-chat__messages { display: flex; flex-direction: column; gap: 12px; padding: 8px 16px 16px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-ai-message__meta time, .zimla-ai-message__time, .zimla-ai-message__avatar, .zimla-chat-message-actions, .zimla-chat-run__activity) { display: none !important; }
  /* Medan Zimla arbetar: bara statusraden ("Förbereder svaret…", "Läser underlaget…") med en liten snurra – annars ser ett
     tomt kort ut som att inget händer (ägaren 2026-10-13). Historiken, tiden och detaljerna stannar dolda; klar = borta. */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run:is([data-chat-state="queued"], [data-chat-state="blocked"], [data-chat-state="running"], [data-chat-state="cancel_requested"]) .zimla-chat-run__activity { display: block !important; margin: 0; padding: 0; border: 0; background: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity > :not(.zimla-chat-run__activity-history),
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-history > :not(summary),
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity .zimla-chat-run__worked { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-history > summary { display: block !important; padding: 0 !important; list-style: none; pointer-events: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-history > summary::-webkit-details-marker { display: none; }
  /* Loggens pil (zimla-ai-panel.css) blev ett lodrätt streck efter statusen här – raden öppnar inget, så ingen pil. */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-history > summary::after { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-current { display: inline-flex !important; align-items: center; gap: 10px; min-height: 24px; font: 400 13.5px/1.4 Inter, ui-sans-serif, system-ui, sans-serif; color: #5d6b61; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-mark { flex: none; display: inline-block !important; width: 16px !important; height: 16px !important; min-width: 16px; margin: 0 !important; padding: 0 !important; border: 2px solid #d5e2d9 !important; border-top-color: #1f6b4f !important; border-radius: 50% !important; background: none !important; animation: zgc-spin .8s linear infinite !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-mark > span { display: none !important; }
  /* Klar: bock och "Klart" (eller "Väntar på dig") står kvar tills nästa svar; orben vid namnet slår en ring en gång. */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run[data-chat-state="completed"]:is(.is-just-done, .is-waiting) .zimla-chat-run__activity { display: block !important; margin: 0; padding: 0; border: 0; background: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run.is-just-done .zimla-chat-run__activity-current { color: #1d2420; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run.is-done-pulse .zimla-ai-message__name::before { animation: zgc-done-ring .7s cubic-bezier(.22, 1, .36, 1); }
  @keyframes zgc-done-ring { from { box-shadow: 0 0 0 0 rgb(10 138 98 / 55%); } to { box-shadow: 0 0 0 12px rgb(10 138 98 / 0%); } }
  @keyframes zgc-spin { to { transform: rotate(360deg); } }
  /* Jobbkortet medan startsidans text skickas (zimla-offertlage-mobile.js jobCard): bubblan och "Zimla läser…" */
  html.olm-on .zimla-ai-panel-shell .olm-jobcard.is-pending { display: flex; flex-direction: column; gap: 14px; padding: 0; border: 0; background: none; box-shadow: none; }
  html.olm-on .zimla-ai-panel-shell .olm-pendz { display: flex; align-items: center; gap: 9px; margin: 0; color: #5d6a62; font: 400 14px/1.3 Inter, ui-sans-serif, system-ui, sans-serif; }
  /* Skrivraden som prototypen (.chatfoot/.compose): 12 px från kanten, röststatusen ovanför i stället för en tom rad
     under (den lyfte rutan 20 px), pratknappen 40 px. Bilagan är gemet (zimla-mobile-forest.css). */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell form.zimla-ai-composer { position: relative; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-voice-feedback { position: absolute; left: 12px; right: 12px; bottom: 100%; margin: 0 0 4px; pointer-events: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice { min-height: 40px !important; max-height: 40px; }
  /* Rummet frågan gäller ("Fråga Zimla om Hall"): brickan ovanför skrivraden, × tar bort den. */
  .olm-ctx { display: inline-flex; align-items: center; gap: 6px; height: 30px; margin: 0 0 8px 4px; padding: 0 6px 0 11px; border-radius: 999px; background: #dfeee5; color: #12382b; font: 600 12.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  .olm-ctx button { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: rgba(18, 56, 43, .1); color: #12382b; display: inline-flex; align-items: center; justify-content: center; }
  /* Egna meddelanden med bilagor: samma gröna bubbla och vit text, bilagorna som ljusa rader under ett tunt streck. */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__bubble { background: #1f6b4f !important; color: #fff !important; border: 0 !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-attachment-receipt { margin: 8px 0 0 !important; padding: 8px 0 0 !important; border-top: 1px solid rgba(255, 255, 255, .25) !important; color: #e3f2e9 !important; list-style: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-attachment-receipt li { display: flex; align-items: center; gap: 6px; padding: 2px 0; color: #e3f2e9 !important; font-size: 13px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-attachment-receipt .material-symbols-outlined { font-size: 16px; color: #a8dcbf !important; }
  @media (prefers-reduced-motion: reduce) { :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__activity-mark { animation-duration: 2.4s; } }
  /* Egna meddelanden */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-panel__mascot { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user { display: flex !important; justify-content: flex-end; margin: 0; padding: 0; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__stack { margin-left: auto; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__stack { max-width: 84%; align-items: flex-end; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__meta { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__bubble { margin: 0; padding: 10px 13px; border: 0; border-radius: 18px 18px 4px 18px; background: var(--olmc-green); color: #fff; box-shadow: none;
    font: 400 14px/1.45 Inter, ui-sans-serif, system-ui, sans-serif; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__bubble :is(p, a) { margin: 0; color: #fff; font: inherit; }
  /* Zimlas svar: vitt kort, "Zimla AI" med den lilla orben */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) { display: block !important; margin: 0; padding: 0; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) > .zimla-ai-message__stack { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: none; padding: 14px;
    border-radius: 18px; background: #fff; box-shadow: 0 10px 24px -20px rgba(18, 56, 43, 0.5); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__meta { display: flex; align-items: center; gap: 8px; margin: 0; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__name,
  .olm-zhead { display: flex; align-items: center; gap: 8px; font: 600 13px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; color: var(--olmc-deep); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__name::before { content: ""; flex: none; width: 26px; height: 26px; border-radius: 50%;
    background: linear-gradient(#fff, #fff) 7.5px 9px / 4px 8px no-repeat, linear-gradient(#fff, #fff) 14.5px 9px / 4px 8px no-repeat, var(--olmc-green); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__bubble { margin: 0; padding: 0; border: 0 !important; border-left: 0 !important; background: none; box-shadow: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__bubble::before { display: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__answer :is(p, li) { margin: 0 0 6px; font: 400 14px/1.5 Inter, ui-sans-serif, system-ui, sans-serif; color: var(--olmc-ink); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-run__answer > :last-child { margin-bottom: 0; }
  /* Det här ändrades: rummen som prototypens rader, totalen i serif */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-result { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
  /* Svarskortet (zimla-ai-chat-rows.css) i telefonens mått – samma som jobbkortet (.olm-zroom/.olm-ztotal). */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message__bubble:has(> .zcc) { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc .zcc-row > :is(a, details > summary), :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc .zcc-row:is(.zcc-other, .zcc-deleted) {
    grid-template-columns: 34px minmax(0, 1fr) auto auto; min-height: 52px; padding: 6px 0; font-size: 14px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-ic { width: 34px; height: 34px; border-radius: 10px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-ic .material-symbols-outlined { font-size: 18px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-t b { font-size: 14px; font-weight: 600; color: var(--olmc-ink); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-t small { font-size: 12px; color: var(--olmc-soft); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-kr { font-size: 17px; color: var(--olmc-ink); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-chev { font-size: 20px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-total-l { font-size: 13px; color: var(--olmc-mut); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-total-kr { font-size: 24px; line-height: 1.1; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message__bubble:has(> .zcc) > .zimla-chat-run__answer:has(p, li, .zimla-chat-run__tail:not([hidden])) { padding: 10px 12px; border-radius: 12px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-message__bubble:has(> .zcc) > .zimla-chat-run__answer :is(p, li) { font-size: 13.5px; line-height: 1.5; color: #3f4b43; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-go { position: relative; min-height: 36px; padding: 0 12px; border-radius: 10px; font-size: 13px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc a.zcc-go { color: var(--olmc-deep); text-decoration: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zcc-go::before { content: ""; position: absolute; inset: -4px 0; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-result h3 { margin: 0; font: 600 11px/1.3 Inter, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--olmc-mut); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-result > p { margin: 2px 0 6px; font-size: 12.5px; color: var(--olmc-soft); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-chat-result :is(button, a.zimla-chat-result__action, .zimla-chat-result__actions a) { min-height: 36px; padding: 0 12px; border: 0; border-radius: 10px; background: #f1f3ef; color: var(--olmc-deep);
    font: 600 13px/36px Inter, sans-serif; box-shadow: none; }
  /* Skrivraden: prototypens .compose */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-ai-composer__quick, .zimla-ai-workspace, .zimla-studio-context, .zimla-studio-mobile-switch, .zimla-ai-thread-intents, nav:has(> .zimla-ai-thread-intent)) { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer { padding: 8px 12px calc(12px + env(safe-area-inset-bottom, 0px)) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  :is(html.olm-on, html.zgc-on).olm-kb .zimla-ai-panel-shell .zimla-ai-composer { padding-bottom: 8px !important; }  /* tangentbordet täcker hemindikatorn */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box { display: flex; align-items: center; gap: 6px; min-height: 0; padding: 6px 6px 6px 8px; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 10px 24px -18px rgba(18, 56, 43, 0.45); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box textarea { flex: 1; min-width: 0; height: 40px !important; min-height: 40px; max-height: 120px; padding: 10px 2px; border: 0; background: transparent; font: 400 16px/20px Inter, ui-sans-serif, system-ui, sans-serif; color: var(--olmc-ink); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice { order: -1; flex: none; width: 40px !important; height: 40px !important; min-width: 0; padding: 0 !important; border: 0; border-radius: 50%; background: var(--olmc-green) !important; color: transparent; display: inline-flex; align-items: center; justify-content: center; gap: 3px; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice .material-symbols-outlined { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice::before, :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice::after { content: ""; width: 5px; height: 11px; border-radius: 3px; background: #fff; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box > button[type="submit"] { flex: none; width: 40px; height: 40px; border: 0; border-radius: 12px; background: var(--olmc-green); color: #fff; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box > button[type="submit"]:disabled { background: #b9cfc1; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box > button[type="submit"] .material-symbols-outlined { font-size: 18px; }
  /* Röst (ägaren 2026-10-16: "för oklart att man kan hålla in gubben"): som projektets dock står det vad knappen gör. Tom
     rad = "Håll & prata" med mikrofon till höger där Skicka annars står; med text en liten mikrofon bredvid Skicka; medan
     man håller in "Släpp för att skicka". Bara utseendet – håll-in-logiken är chattens egen (bindHoldToTalk). */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box .zimla-ai-composer__voice { order: 1; width: auto !important; min-width: 40px; padding: 0 14px 0 11px !important; border-radius: 12px; background: var(--olmc-green) !important; color: #fff; gap: 6px; font: 600 13.5px/1 Inter, ui-sans-serif, system-ui, sans-serif; white-space: nowrap; touch-action: none; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box .zimla-ai-composer__voice .material-symbols-outlined { display: inline-block !important; font-size: 20px; color: inherit; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box .zimla-ai-composer__voice::before { content: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box .zimla-ai-composer__voice::after { content: "Håll & prata"; width: auto; height: auto; border-radius: 0; background: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:has(textarea:placeholder-shown):not([data-voice-active="1"]) > button[type="submit"] { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:has(textarea:not(:placeholder-shown)) .zimla-ai-composer__voice { order: 0; width: 40px !important; padding: 0 !important; justify-content: center; background: #e6f1ea !important; color: var(--olmc-green); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:has(textarea:not(:placeholder-shown)) .zimla-ai-composer__voice::after { content: none; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:is([data-voice-active="1"], :has(.zimla-ai-composer__voice.is-held)) > button[type="submit"] { display: none !important; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:is([data-voice-active="1"], :has(.zimla-ai-composer__voice.is-held)) .zimla-ai-composer__voice { width: auto !important; padding: 0 14px 0 11px !important; background: #12382b !important; color: #fff; box-shadow: 0 0 0 4px rgba(31, 107, 79, 0.22); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__box:is([data-voice-active="1"], :has(.zimla-ai-composer__voice.is-held)) .zimla-ai-composer__voice::after { content: "Släpp för att skicka"; }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell .zimla-ai-composer__voice:disabled { opacity: .55; }
  /* Tom tråd: välkomsttexten ersätts av jobbkortet */
  html.olm-on .zimla-ai-panel-shell .zimla-ai-chat__intro > :not(.olm-jobcard) { display: none !important; }
  html.olm-on .zimla-ai-panel-shell .zimla-ai-chat__intro { padding: 8px 16px 16px; }
  .olm-jobcard { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px -20px rgba(18, 56, 43, 0.5); color: var(--olmc-ink); font: 400 14px/1.5 Inter, ui-sans-serif, system-ui, sans-serif; text-align: left; }
  .olm-jobcard p { margin: 0; }
  .olm-mini { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--olmc-green); display: inline-flex; align-items: center; justify-content: center; gap: 3px; }
  .olm-mini i { width: 4px; height: 8px; border-radius: 2px; background: #fff; }
  .olm-zroom { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0; border: 0; border-top: 1px solid var(--olmc-line2); background: none; text-align: left; font: inherit; color: inherit; }
  .olm-zroom .olm-ic { width: 34px; height: 34px; border-radius: 10px; background: #e6f1ea; color: var(--olmc-green); display: inline-flex; align-items: center; justify-content: center; flex: none; }
  .olm-zroom .olm-ic .material-symbols-outlined { font-size: 18px; }
  .olm-zroom > span:nth-child(2) { flex: 1; min-width: 0; }
  .olm-zroom b { display: block; font-size: 14px; font-weight: 600; }
  .olm-zroom small { display: block; font-size: 12px; color: var(--olmc-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .olm-zkr { font: 400 17px/1.2 var(--olmc-serif); white-space: nowrap; font-variant-numeric: tabular-nums; }
  .olm-zroom .olm-chev { flex: none; color: #9aa29c; font-size: 20px; }
  .olm-ztotal { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 10px; border-top: 1px solid var(--olmc-line); }
  .olm-ztotal span { font-size: 13px; color: var(--olmc-mut); }
  .olm-ztotal b { font: 500 24px/1.1 var(--olmc-serif); color: var(--olmc-deep); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .olm-zassume { padding: 8px 10px; border-radius: 10px; background: #f6f8f4; font-size: 12.5px; line-height: 1.5; color: #4d5951; }
  .olm-zbtn { align-self: flex-start; min-height: 36px; padding: 0 12px; border: 0; border-radius: 10px; background: #f1f3ef; color: var(--olmc-deep); font: 600 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; }

  /* Chatt med Zimla (handover 6.14, prototypens s-chat): Zimla-knappen i bottenmenyn öppnar appens Zimla AI-panel som en
     egen helskärm – huvud med ×, "Zimla" och "+ Ny chatt", tråden i offertchattens form (delad ovan), välkomstkortet med
     förslagen och skrivraden med håll-in-och-prata. Ingen egen AI: samma samtal och verktyg som desktop. */
  html.zgc-on, html.zgc-on body { overflow: hidden; }
  /* Starkare än Studios egna regler för panelen på startsidan (html.zimla-ai-start:is(…):not(…) …): :root ×4. */
  html.zgc-on:root:root:root:root :is([data-zimla-mobile-dock], .zimla-global-topbar, .zimla-ai-activate-shimmer, .zimla-ai-activate-veil) { display: none !important; }
  /* Höjden följer den synliga ytan (tangentbordet uppe): --olm-vh/--olm-vt ur visualViewport (zimla-offertlage-mobile.js). */
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell { position: fixed !important; inset: var(--olm-vt, 0px) 0 auto 0 !important; width: auto !important; height: var(--olm-vh, 100dvh) !important; max-height: none !important;
    margin: 0 !important; transform: none !important; border-radius: 0 !important; z-index: 90 !important; background: transparent !important; box-shadow: none !important; }
  html.zgc-on:root:root:root:root :is(.zimla-ai-panel-backdrop, .zimla-ai-panel__drag-handle, .zimla-ai-panel__header) { display: none !important; }
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell] aside.zimla-ai-panel[data-zimla-ai-panel] { clip-path: none !important; padding: 0 !important; position: absolute !important; inset: 0 !important; width: auto !important; height: auto !important; max-height: none !important;
    margin: 0 !important; border: 0 !important; border-radius: 0 !important; transform: none !important; box-shadow: none !important; background: #f6f5ef !important;
    display: flex !important; flex-direction: column; overflow: hidden; }
  html.zgc-on:root:root:root:root .zimla-ai-panel__body { flex: 1; min-height: 0; background: transparent !important; }
  html.zgc-on:root:root:root:root .zimla-ai-composer { background: transparent !important; border: 0 !important; box-shadow: none !important; }
  /* Välkomstkortet medan samtalet är tomt (Studio döljer annars introt på startsidan). */
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell] .zimla-ai-panel__body:not(:has(.zimla-ai-message, .zimla-chat-run)) .zimla-ai-chat__intro { display: block !important; opacity: 1 !important; transform: none !important; }
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell].zimla-ai-panel-shell { background: transparent !important; }  /* rutan bär färgen – startsidan syns bakom medan den poppar upp */
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell].zimla-ai-panel-shell::before, html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell].zimla-ai-panel-shell::after,
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell] aside.zimla-ai-panel::after { display: none !important; }  /* Studios pratbubbelspets mot orben */
  html.zgc-on .zgc-head { flex: none; display: flex; align-items: center; gap: 12px; padding: calc(12px + env(safe-area-inset-top, 0px)) 16px 8px; }
  html.zgc-on .zgc-x { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .7); color: #12382b; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  html.zgc-on .zgc-head > span { flex: 1; min-width: 0; }
  html.zgc-on .zgc-head b { display: block; font: 600 17px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; color: #12382b; }
  html.zgc-on .zgc-head small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: #5d6b61; }
  html.zgc-on .zgc-new { flex: none; height: 36px; padding: 0 12px; border: 1px solid #cfdcd3; border-radius: 999px; background: rgba(255, 255, 255, .7); color: #12382b;
    display: inline-flex; align-items: center; gap: 5px; font: 600 13px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-chat__intro > :not(.zgc-welcome) { display: none !important; }
  html.zgc-on .zimla-ai-panel-shell .zimla-ai-chat__intro { padding: 8px 16px 16px; }
  html.zgc-on .zgc-welcome { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px -20px rgba(18, 56, 43, .5);
    color: #1d2420; font: 400 14px/1.5 Inter, ui-sans-serif, system-ui, sans-serif; }
  html.zgc-on .zgc-welcome p { margin: 0; }
  html.zgc-on .zgc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
  html.zgc-on .zgc-chips button { min-height: 40px; padding: 0 14px; border: 1px solid #d5e2d9; border-radius: 999px; background: #f6faf7; color: #12382b; font: 500 14px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
  /* ── Den globala chatten i startsidans formspråk (ägaren 2026-10-30, efter referens; UX-packen) ──────────────────
     Kräm botten; huvudet med × till vänster, orben + "Zimla AI" + statusraden i mitten och Ny chatt som ikon till höger;
     välkomsten som ett Zimla-meddelande (inget kort) med förslagen som en rad piller strax ovanför skrivraden; egna
     meddelanden i mörk skog. Skrivraden är den delade (Håll & prata) som ett vitt piller. */
  html.zgc-on .zgc-head { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 6px; }
  html.zgc-on .zgc-x, html.zgc-on .zgc-new { width: 44px; height: 44px; padding: 0; border: 1px solid #ebe8de; border-radius: 50%; background: #fff; color: #12382b; justify-content: center;
    box-shadow: 0 1px 2px rgba(20, 30, 25, .05), 0 10px 24px -20px rgba(18, 56, 43, .35); }
  html.zgc-on .zgc-head > .zgc-title { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; column-gap: 7px; min-width: 0; text-align: center; }
  html.zgc-on .zgc-orb { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(#fff, #fff) 6px 7.5px / 3.5px 7px no-repeat, linear-gradient(#fff, #fff) 12.5px 7.5px / 3.5px 7px no-repeat, #174c39; }
  html.zgc-on .zgc-head b { font: 600 15px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; color: #12382b; }
  html.zgc-on .zgc-head small { flex: 1 1 100%; max-width: 100%; margin-top: 1px; font-size: 12px; color: #6b746d; }
  /* Välkomsten: ett Zimla-meddelande utan kort, längst ner i den tomma tråden – förslagen ligger alltså direkt ovanför skrivraden. */
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-panel__body:not(:has(.zimla-ai-message, .zimla-chat-run)) > .zimla-ai-chat__intro { order: 2; }  /* efter den tomma meddelandelistan (flex: 1) */
  html.zgc-on .zgc-welcome { gap: 12px; padding: 0; border-radius: 0; background: none; box-shadow: none; font-size: 15px; }
  html.zgc-on .zgc-welcome .olm-mini { background-color: #174c39; }
  html.zgc-on .zgc-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 2px; scrollbar-width: none; scroll-padding-inline: 16px; }
  html.zgc-on .zgc-chips::-webkit-scrollbar { display: none; }
  html.zgc-on .zgc-chips button { flex: none; border-color: #e6e3d8; background: #fff; box-shadow: 0 1px 2px rgba(20, 30, 25, .04); }
  /* Meddelandena (delas med offertlägets chatt): egna i mörk skog, Zimlas svar som vita kort med en mjuk kant. */
  :is(html.olm-on, html.zgc-on):root:root:root:root .zimla-ai-panel-shell .zimla-ai-message--user .zimla-ai-message__bubble { background: #174c39 !important; color: #fff !important; border-radius: 18px 18px 6px 18px !important; font-size: 15px; }  /* :root ×4: startsidans bubbelregler är starkare */
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) > .zimla-ai-message__stack { border-radius: 20px; box-shadow: 0 1px 2px rgba(20, 30, 25, .05), 0 10px 28px -20px rgba(18, 56, 43, .35); }
  :is(html.olm-on, html.zgc-on) .zimla-ai-panel-shell :is(.zimla-chat-run, .zimla-ai-message--assistant) .zimla-ai-message__name::before { background-color: #174c39; }
  /* Skrivraden som ett vitt piller; Håll & prata och Skicka i mörk skog. :root ×4 – startsidans regler för panelen
     (zimla-start.css, "genomskinlig röstknapp") är starkare än de delade och gjorde knappen osynlig. */
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box { min-height: 52px; border-radius: 26px !important; padding: 6px 6px 6px 16px !important; box-shadow: 0 1px 2px rgba(20, 30, 25, .05), 0 10px 28px -18px rgba(18, 56, 43, .4) !important; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box .zimla-ai-composer__voice { border-radius: 999px !important; background: #0f3a2c !important; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box:has(textarea:not(:placeholder-shown)) .zimla-ai-composer__voice { border-radius: 50% !important; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box:is([data-voice-active="1"], :has(.zimla-ai-composer__voice.is-held)) .zimla-ai-composer__voice { background: var(--zm-forest-fill, #174c39) !important; color: #fff !important; box-shadow: 0 8px 18px -10px rgb(15 58 44 / 65%) !important; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box > button[type="submit"] { border-radius: 50% !important; background: #0f3a2c !important; }
  html.zgc-on:root:root:root:root .zimla-ai-panel-shell .zimla-ai-composer__box > button[type="submit"]:disabled { background: #e6e3d9 !important; color: #9aa09a !important; }
  /* Chatten poppar upp ur Zimla-gubben i menyn som en ruta (ägaren 2026-10-30: "tänk dig pop up ruta"): växer från gubben,
     går lite för långt och studsar tillbaka; stängningen krymper tillbaka in i gubben (zimla-offertlage-mobile.js).
     scale i stället för transform – panelens transform är låst med !important. */
  html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell] aside.zimla-ai-panel[data-zimla-ai-panel] {
    transform-origin: 50% calc(100% - 40px) !important; animation: zgc-pop 520ms both !important; }  /* före Studios arkväxt (zimla-start.css, !important) */
  @keyframes zgc-pop {
    0% { opacity: 0; scale: .2; border-radius: 48px; filter: drop-shadow(0 24px 40px rgb(15 58 44 / 35%)); animation-timing-function: cubic-bezier(.2, .9, .3, 1); }
    18% { opacity: 1; }
    60% { scale: 1.025; border-radius: 0; filter: drop-shadow(0 18px 34px rgb(15 58 44 / 22%)); animation-timing-function: ease-in-out; }
    80% { scale: .995; animation-timing-function: ease-in-out; }
    100% { opacity: 1; scale: 1; filter: none; }
  }
  @media (prefers-reduced-motion: reduce) { html.zgc-on:root:root:root:root [data-zimla-ai-panel-shell] aside.zimla-ai-panel[data-zimla-ai-panel] { animation: none !important; } }
  /* ÄTA-läget: Spara under Skicka – tyst knapp (ägaren 2026-10-16). */
  .olm-cust .olm-foot .olm-keep { background: #fff !important; color: var(--olm-deep, #12382b) !important; border: 1px solid #d9e1db !important; }
}
