/* RoboService-appen: mobil forst, samma grona som varumarket. */
:root {
  --rs-green: #006241;
  --rs-green-dark: #00402b;
  --rs-orange: #FF9E18;
  --rs-yellow: #FFC629;
  --rs-bg: #F4F7F5;
  --rs-card: #ffffff;
  --rs-text: #1b1f1d;
  --rs-muted: #667069;
  --rs-line: #dfe5e1;
  --rs-red: #b3261e;
  --rs-tint: #e6efea;
  --rs-tint-strong: #cfe3d8;
  --rs-press: #eef3f0;
  --rs-warn-bg: #fff1d6;
  --rs-warn-ink: #8a5200;
  --rs-bad-bg: #fde7e5;
  --rs-muted-bg: #eceeed;
  --rs-media: #e9eeeb;
  color-scheme: light;
  --rs-radius: 14px;
  --rs-tab-h: 64px;
  --safe-b: env(safe-area-inset-bottom, 0px);
  --safe-t: env(safe-area-inset-top, 0px);
}
/* Morkt lage: valt i Installningar, eller telefonens eget nar inget ar valt. */
:root[data-tema="mork"] {
  --rs-green: #3f9d70;
  --rs-green-dark: #8fd9b2;
  --rs-bg: #111614;
  --rs-card: #1b211e;
  --rs-text: #e6ebe8;
  --rs-muted: #9aa7a0;
  --rs-line: #2c3531;
  --rs-red: #ff8a80;
  --rs-tint: #23332b;
  --rs-tint-strong: #2e4a3c;
  --rs-press: #222b27;
  --rs-warn-bg: #3a2c12;
  --rs-warn-ink: #ffcc80;
  --rs-bad-bg: #3b1f1d;
  --rs-muted-bg: #262d2a;
  --rs-media: #1f2623;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="ljus"]) {
    --rs-green: #3f9d70;
    --rs-green-dark: #8fd9b2;
    --rs-bg: #111614;
    --rs-card: #1b211e;
    --rs-text: #e6ebe8;
    --rs-muted: #9aa7a0;
    --rs-line: #2c3531;
    --rs-red: #ff8a80;
    --rs-tint: #23332b;
    --rs-tint-strong: #2e4a3c;
    --rs-press: #222b27;
    --rs-warn-bg: #3a2c12;
    --rs-warn-ink: #ffcc80;
    --rs-bad-bg: #3b1f1d;
    --rs-muted-bg: #262d2a;
    --rs-media: #1f2623;
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--rs-bg); color: var(--rs-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.45; -webkit-text-size-adjust: 100%; }
body.rs-app { min-height: 100vh; }
a { color: var(--rs-green); }
button { font: inherit; }
img { max-width: 100%; }

.rs-root { max-width: 720px; margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; }
.rs-splash { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--rs-muted); gap: 12px; }
.rs-noscript { padding: 24px; text-align: center; }

/* Sidhuvud */
.rs-head { position: sticky; top: 0; z-index: 20; background: var(--rs-green); color: #fff;
  padding: calc(10px + var(--safe-t)) 16px 10px; display: flex; align-items: center; gap: 12px; min-height: 56px; }
.rs-head .rs-back { background: none; border: 0; color: #fff; font-size: 22px; padding: 4px 8px 4px 0; cursor: pointer; line-height: 1; }
.rs-head h1 { font-size: 1.1rem; margin: 0; font-weight: 700; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs-head .rs-sub { font-size: .78rem; opacity: .85; display: block; font-weight: 500; }
.rs-head img { width: 34px; height: 34px; border-radius: 8px; }

/* Innehall */
.rs-main { flex: 1; padding: 16px 16px calc(var(--rs-tab-h) + 24px + var(--safe-b)); }
.rs-section { margin: 0 0 22px; }
.rs-section h2 { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rs-muted); margin: 0 0 10px; font-weight: 700; }
.rs-card { background: var(--rs-card); border: 1px solid var(--rs-line); border-radius: var(--rs-radius); padding: 14px 16px; margin-bottom: 10px; }
.rs-card.rs-link { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; cursor: pointer; }
.rs-card.rs-link:active { background: var(--rs-press); }
.rs-thumb { width: 64px; height: 64px; border-radius: 10px; background: #fff url() center/contain no-repeat; border: 1px solid var(--rs-line); flex: none; object-fit: contain; }
.rs-card .rs-title { font-weight: 700; margin: 0; }
.rs-card .rs-meta { color: var(--rs-muted); font-size: .88rem; margin: 2px 0 0; }
.rs-grow { flex: 1; min-width: 0; }
.rs-chev { color: var(--rs-muted); font-size: 22px; }
.rs-radikon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; background: var(--rs-tint); color: var(--rs-green);
  display: flex; align-items: center; justify-content: center; }
.rs-radikon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.rs-card.rs-framhavd { border: 1.5px solid var(--rs-green); }
.rs-kaching { position: fixed; left: 12px; right: 12px; top: calc(66px + var(--safe-t)); z-index: 50; max-width: 696px; margin: 0 auto;
  display: flex; align-items: center; gap: 12px; background: var(--rs-green); color: #fff; border-radius: var(--rs-radius);
  padding: 12px 14px; box-shadow: 0 6px 20px rgba(0,0,0,.18); cursor: pointer; animation: rs-kaching-in .35s ease-out; }
.rs-kaching .rs-radikon { background: var(--rs-orange); color: #fff; }
@keyframes rs-kaching-in { from { transform: translateY(-14px); opacity: 0; } to { transform: none; opacity: 1; } }
.rs-card.rs-framhavd .rs-radikon { background: var(--rs-green); color: #fff; }
.rs-empty { color: var(--rs-muted); text-align: center; padding: 28px 12px; }
.rs-badge { display: inline-block; font-size: .74rem; font-weight: 700; border-radius: 999px; padding: 2px 10px; background: var(--rs-tint); color: var(--rs-green); vertical-align: middle; }
.rs-badge.warn { background: var(--rs-warn-bg); color: var(--rs-warn-ink); }
.rs-badge.bad { background: var(--rs-bad-bg); color: var(--rs-red); }
.rs-badge.muted { background: var(--rs-muted-bg); color: var(--rs-muted); }
.rs-kv { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin: 0; }
.rs-kv div { min-width: 0; }
.rs-kv dt { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rs-muted); margin: 0; }
.rs-kv dd { margin: 0; font-weight: 600; word-break: break-word; }
.rs-hero { display: flex; gap: 16px; align-items: center; }
.rs-hero img { width: 110px; height: 110px; border-radius: 12px; border: 1px solid var(--rs-line); background: #fff; object-fit: contain; }
.rs-hero h2 { font-size: 1.25rem; margin: 0 0 4px; text-transform: none; letter-spacing: 0; color: var(--rs-text); }

/* Knappar */
.rs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 999px;
  padding: 12px 20px; font-weight: 700; cursor: pointer; text-decoration: none; background: var(--rs-green); color: #fff; width: 100%; }
.rs-btn.secondary { background: var(--rs-card); color: var(--rs-green); border: 2px solid var(--rs-green); }
.rs-btn.orange { background: var(--rs-orange); color: #3A2400; }
.rs-btn.wa { background: #25D366; color: #08301a; }
.rs-btn:disabled { opacity: .55; cursor: default; }
.rs-btn + .rs-btn { margin-top: 10px; }
.rs-fab { position: fixed; right: 16px; bottom: calc(var(--rs-tab-h) + 16px + var(--safe-b)); z-index: 15; width: auto;
  box-shadow: 0 6px 18px rgba(0,0,0,.22); padding: 14px 20px; }

/* Formular */
.rs-form label { display: block; font-weight: 600; margin: 14px 0 6px; font-size: .92rem; }
.rs-form input[type=text], .rs-form input[type=email], .rs-form input[type=tel], .rs-form input[type=password], .rs-form select, .rs-form textarea {
  width: 100%; border: 1px solid var(--rs-line); border-radius: 10px; padding: 12px; font: inherit; background: var(--rs-card); color: var(--rs-text); }
.rs-form textarea { min-height: 120px; resize: vertical; }
.rs-form input:focus, .rs-form select:focus, .rs-form textarea:focus { outline: 2px solid var(--rs-green); border-color: var(--rs-green); }
.rs-form .rs-file { border: 2px dashed var(--rs-line); border-radius: 10px; padding: 14px; text-align: center; color: var(--rs-muted); background: var(--rs-card); }
.rs-form .rs-file input { width: 100%; }
.rs-msg { padding: 12px 14px; border-radius: 10px; margin: 12px 0; font-size: .95rem; }
.rs-msg.ok { background: var(--rs-tint); color: var(--rs-green-dark); }
.rs-msg.err { background: var(--rs-bad-bg); color: var(--rs-red); }
.rs-help { color: var(--rs-muted); font-size: .88rem; margin: 6px 0 0; }

/* Meddelandetrad */
.rs-thread { display: flex; flex-direction: column; gap: 10px; }
.rs-bubble { max-width: 88%; padding: 10px 14px; border-radius: 16px; background: var(--rs-card); border: 1px solid var(--rs-line); }
.rs-bubble.mine { align-self: flex-end; background: var(--rs-tint); border-color: var(--rs-line); }
.rs-bubble .rs-who { font-size: .74rem; color: var(--rs-muted); margin: 0 0 3px; }
.rs-bubble p { margin: 0; white-space: pre-wrap; word-break: break-word; }
.rs-bubble .rs-atts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rs-bubble .rs-atts img { width: 120px; height: 120px; object-fit: cover; border-radius: 8px; border: 1px solid var(--rs-line); }
.rs-bubble .rs-atts a.file { font-size: .85rem; }
.rs-reply { position: sticky; bottom: calc(var(--rs-tab-h) + var(--safe-b)); background: var(--rs-bg); padding: 10px 0 0; }
.rs-reply textarea { min-height: 70px; }
.rs-reply .rs-row { display: flex; gap: 10px; margin-top: 8px; align-items: center; }
.rs-reply .rs-row .rs-btn { width: auto; }
.rs-reply .rs-row input[type=file] { flex: 1; min-width: 0; font-size: .85rem; }

/* Flikrad. Den aktiva fliken ska synas pa en armslangds avstand: fylld pill
   bakom ikonen, morkare text, tjockare streck i ikonen. Bara farg racker inte
   pa en telefon i solljus. */
.rs-tabs { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: var(--rs-card); border-top: 1px solid var(--rs-line);
  display: flex; justify-content: space-around; padding-bottom: var(--safe-b); height: calc(var(--rs-tab-h) + var(--safe-b));
  box-shadow: 0 -2px 10px rgba(0,0,0,.05); }
.rs-tabs a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  text-decoration: none; color: var(--rs-muted); font-size: .7rem; font-weight: 600; padding-top: 4px; min-width: 0; }
.rs-ikon { display: flex; align-items: center; justify-content: center; width: 58px; max-width: 100%; height: 30px;
  border-radius: 999px; background: transparent; transition: background .15s ease; }
.rs-tabs a.active { color: var(--rs-green); font-weight: 800; }
.rs-tabs a.active .rs-ikon { background: var(--rs-tint-strong); }
.rs-tabs a.active svg { stroke-width: 2.4; }
.rs-tabs a:active .rs-ikon { background: var(--rs-tint); }
.rs-tabs svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.rs-etikett { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (min-width: 720px) { .rs-tabs { max-width: 720px; margin: 0 auto; border-left: 1px solid var(--rs-line); border-right: 1px solid var(--rs-line); } }
@media (max-width: 359px) { .rs-tabs a { font-size: .64rem; } .rs-ikon { width: 46px; } }

/* Login */
.rs-login { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 32px 22px calc(32px + var(--safe-b)); }
.rs-login .rs-logo { width: 84px; height: 84px; border-radius: 18px; margin: 0 auto 14px; display: block; }
.rs-login h1 { text-align: center; font-size: 1.4rem; margin: 0 0 4px; }
.rs-login .rs-lead { text-align: center; color: var(--rs-muted); margin: 0 0 18px; }
.rs-login .rs-links { text-align: center; margin-top: 18px; font-size: .92rem; }
.rs-login .rs-sprakval { display: flex; justify-content: center; gap: 8px; margin: 0 0 18px; }
.rs-login .rs-sprakval button { font: inherit; font-size: .88rem; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--rs-muted); background: transparent; color: inherit; cursor: pointer; }
.rs-login .rs-sprakval button.vald { background: var(--rs-green); border-color: var(--rs-green); color: #fff; font-weight: 600; }
.rs-banner { background: var(--rs-yellow); color: #3A2400; padding: 10px 16px; font-size: .9rem; text-align: center; }
.rs-install { background: var(--rs-card); border: 1px solid var(--rs-line); border-radius: var(--rs-radius); padding: 12px 14px; margin-bottom: 16px; font-size: .9rem; display: flex; gap: 12px; align-items: center; }
.rs-install .rs-btn { width: auto; padding: 8px 14px; }

/* Underrubrik inuti en sektion (dokumenttyperna) */
.rs-subhead { font-size: .95rem; font-weight: 800; color: var(--rs-text); margin: 16px 0 8px; }
.rs-section .rs-subhead:first-child { margin-top: 0; }

/* RTK-kartan */
.rs-karta { height: 320px; border-radius: var(--rs-radius); border: 1px solid var(--rs-line); overflow: hidden; background: var(--rs-media); margin-bottom: 10px; }
.rs-karta .leaflet-control-attribution { font-size: 9px; }

/* Kundvyn: personalen ska aldrig kunna tro att de tittar pa sitt eget konto.
   Orange, inte gron - gront ar appens vanliga tillstand. */
.rs-preview { background: #FFE9C2; color: #4A2F00; padding: 9px 16px; font-size: .88rem;
  text-align: center; border-bottom: 2px solid var(--rs-orange); position: sticky; top: 56px; z-index: 19; }
.rs-preview a { color: #4A2F00; font-weight: 800; text-decoration: underline; margin-left: 4px; }
.rs-form input[type=search] { width: 100%; border: 1px solid var(--rs-line); border-radius: 10px;
  padding: 12px; font: inherit; background: var(--rs-card); color: var(--rs-text); -webkit-appearance: none; }
.rs-form input[type=search]:focus { outline: 2px solid var(--rs-green); border-color: var(--rs-green); }

/* Visaren: dokumentet fyller skärmen mellan sidhuvud och flikrad, men appens
   egen bakåtpil sitter kvar överst. Marginalerna är negativa för att gå ut i
   kanten trots rs-main:s padding. */
.rs-visa-topp { display: flex; gap: 10px; margin-bottom: 14px; }
.rs-visa-topp .rs-btn { margin-top: 0; }
/* Ramen far aldrig bli sa hog att knappraden trycks ur bild: 56vh lamnar
   sidhuvud, bakatknapp och flikrad synliga pa varje telefon vi provat. */
.rs-visa-ram { margin: 0 -16px 12px; height: 56vh; min-height: 260px; background: var(--rs-media); }
.rs-visa-ram iframe { width: 100%; height: 100%; border: 0; display: block; background: #fff; }
.rs-visa-bild { margin: 0 -16px 12px; background: #0b0b0b; text-align: center; }
.rs-visa-bild img { max-width: 100%; max-height: 70vh; object-fit: contain; }
.rs-visa-knappar { display: flex; gap: 10px; }
.rs-visa-knappar .rs-btn { margin-top: 0; }

/* Kundens eget foto pa maskinen far ta plats - det ar den har maskinen,
   inte modellen. Mork botten sa ett hastigt taget foto ramar in sig sjalvt. */
.rs-maskinfoto { margin: -16px -16px 12px; background: #0b0b0b; text-align: center; }
.rs-maskinfoto img { width: 100%; max-height: 46vh; object-fit: cover; display: block; }
.rs-form input[type=file] { width: 100%; font-size: .9rem; }

/* Antalsrutan i dellistan ska ga att traffa med tummen */
.rs-card input[type=number] { font: inherit; -moz-appearance: textfield; }
.rs-card input[type=number]::-webkit-outer-spin-button,
.rs-card input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rs-form select { -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667069' stroke-width='2'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; padding-right: 38px; }

/* Filterrad: chips som ryms pa en rad och far rullas i sidled pa smal skarm */
.rs-filter { display: flex; gap: 8px; overflow-x: auto; padding: 0 0 14px; margin: 0 -16px 0; padding-left: 16px; padding-right: 16px;
  -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.rs-filter::-webkit-scrollbar { display: none; }
.rs-chip { flex: none; border: 1px solid var(--rs-line); background: var(--rs-card); color: var(--rs-text);
  border-radius: 999px; padding: 8px 16px; font-size: .88rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.rs-chip.vald { background: var(--rs-green); border-color: var(--rs-green); color: #fff; }
.rs-lista { margin: 10px 0 0; padding-left: 20px; }
.rs-lista li { margin-bottom: 8px; line-height: 1.5; }

/* Faltverktyget: personalens vy. Knapprad for ring/navigera, pris till hoger. */
.rs-knappar { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.rs-knappar .rs-btn { flex: 1 1 auto; min-width: 46%; }
.rs-btn.liten { padding: 7px 16px; font-size: .84rem; flex: none; align-self: center; }
.rs-pris { flex: none; align-self: center; font-weight: 700; font-size: 1.02rem;
  color: var(--rs-green); white-space: nowrap; margin-left: 10px; }

/* Transport in: tre vagar, den som inte galler kunden ar nedtonad men syns. */
.rs-transport { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 4px; }
.rs-tval { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px;
  border: 1px solid var(--rs-line); border-radius: 12px; background: var(--rs-card); cursor: pointer; }
.rs-tval input { width: auto; margin-top: 3px; flex: none; }
.rs-tval:has(input:checked) { border-color: var(--rs-green); background: var(--rs-tint); }
.rs-tval.av { opacity: .62; cursor: not-allowed; background: var(--rs-muted-bg); }

/* Avdelaren mellan e-postinloggning och Google. En linje genom texten, sa det
   syns att det ar tva vagar till samma stalle och inte tva steg. */
.rs-eller { display: flex; align-items: center; gap: 12px; margin: 18px 0 12px; }
.rs-eller::before, .rs-eller::after { content: ""; flex: 1; height: 1px; background: var(--rs-line); }
.rs-eller span { font-size: .85rem; color: var(--rs-muted); }

/* skanna */
.rs-skanna-video { width: 100%; max-height: 46vh; object-fit: cover; border-radius: 12px; background: #000; margin-top: 8px; display: block; }
.rs-dold { display: none !important; }
.rs-skanna-lista { margin: 8px 0 0; }
.rs-skanna-rad { display: flex; gap: 10px; padding: 4px 0; border-top: 1px solid rgba(0,0,0,.06); }
.rs-skanna-rad dt { flex: 0 0 38%; min-width: 0; color: var(--rs-muted); font-size: 13px; overflow-wrap: anywhere; }
.rs-skanna-rad dd { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.rs-skanna-lankar { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.rs-skanna-bild { width: 72px; height: 72px; object-fit: contain; float: right; margin-left: 8px; border-radius: 8px; background: #f4f4f4; }
/* Installningar: kompakt rad med knapp till hoger, och valknappar i rad. */
.rs-rad { display: flex; align-items: center; gap: 12px; }
.rs-btn.rs-btn-liten { width: auto; padding: 8px 16px; }
.rs-chips { display: flex; flex-wrap: wrap; gap: 8px; }

/* Notisklockan i sidhuvudet och notislistan */
.rs-head .rs-klocka { position: relative; color: #fff; display: inline-flex; padding: 6px; margin-left: 4px; }
.rs-head .rs-klocka svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rs-klocka-antal { position: absolute; top: 0; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: #e5484d; color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.rs-klocka-antal.rs-dold { display: none; }
.rs-notis.olast .rs-title { font-weight: 700; }
.rs-prick { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #e5484d; margin-right: 8px; vertical-align: middle; }
#btn-notiser-alla { margin-bottom: 12px; }

/* Inkorgen för personalen */
.rs-ikon { position: relative; }
.rs-flik-antal { position: absolute; top: -2px; right: 6px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
  background: #e5484d; color: #fff; font-size: 10px; font-weight: 700; line-height: 17px; text-align: center; }
.rs-flik-antal.rs-dold { display: none; }
.rs-flikval { gap: 8px; margin-bottom: 12px; }
.rs-flikval .rs-btn { flex: 1; text-align: center; }
.rs-bubble.intern { border-style: dashed; }

/* Dellistan: grupper, sök, modellfilter och en beställningsrad som följer med */
.rs-delsok { width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1px solid var(--rs-line); border-radius: 12px; background: var(--rs-card); color: var(--rs-text); font-size: 1rem; margin-bottom: 10px; }
#del-chips { margin-bottom: 12px; }
.rs-delgrupp { margin-bottom: 12px; }
.rs-delgrupp > summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 10px 4px; font-weight: 700; cursor: pointer; }
.rs-delgrupp > summary::-webkit-details-marker { display: none; }
.rs-delgrupp > summary::after { content: "\203A"; color: var(--rs-muted); font-size: 1.3rem; transform: rotate(90deg); transition: transform .15s; }
.rs-delgrupp:not([open]) > summary::after { transform: none; }
.rs-delantal { background: var(--rs-tint); color: var(--rs-green-dark); border-radius: 999px; padding: 2px 9px; font-size: .8rem; }
.rs-delikon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--rs-tint); flex: none; }
.rs-delikon svg { width: 18px; height: 18px; fill: none; stroke: var(--rs-green); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rs-delikon.rs-thumb { width: 64px; height: 64px; background: var(--rs-tint); }
.rs-delikon.rs-thumb svg { width: 30px; height: 30px; }
.rs-delkort { display: flex; align-items: center; gap: 12px; }
.rs-delbild { flex: none; display: flex; }
.rs-delval { margin-top: 6px; max-width: 100%; padding: 6px 8px; border: 1px solid var(--rs-line); border-radius: 8px; background: var(--rs-card); color: var(--rs-text); font-size: .85rem; }
.rs-delnum { width: 58px; padding: 8px; border: 1px solid var(--rs-line); border-radius: 8px; text-align: center; background: var(--rs-card); color: var(--rs-text); flex: none; }
.rs-delbar { position: sticky; bottom: calc(var(--rs-tab-h) + var(--safe-b) + 8px); display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 10px 12px; background: var(--rs-card); border: 1px solid var(--rs-line); border-radius: var(--rs-radius); box-shadow: 0 4px 16px rgba(0,0,0,.12); }
.rs-delbar span { flex: 1; font-weight: 600; font-size: .9rem; }
.rs-delbar .rs-btn { width: auto; margin: 0; }

/* RTK-konto: en rad per varde, med Kopiera (och Visa for losenordet). */
.rs-rtklista { margin: 10px 0 0; }
.rs-rtkrad { padding: 8px 0; border-top: 1px solid var(--rs-line, rgba(0,0,0,.08)); }
.rs-rtkrad dt { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rs-muted); margin: 0 0 2px; }
.rs-rtkrad dd { margin: 0; display: flex; align-items: center; gap: 8px; font-weight: 600; min-width: 0; }
.rs-rtkrad dd .rs-grow { min-width: 0; word-break: break-all; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.rs-mini { flex: none; border: 1px solid var(--rs-line, rgba(0,0,0,.15)); background: transparent; color: inherit;
  border-radius: 8px; padding: 6px 10px; font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; }
.rs-svar { margin: 6px 0 0; font-size: .85rem; color: var(--rs-muted); min-height: 1em; }

/* Stationsnatet: samma utseende som webbens /rtk-karta (mork karta, limegrona punkter). */
.rs-karta .rs-mork { filter: invert(1) hue-rotate(180deg) grayscale(.75) brightness(.85) contrast(.9); }
.rs-kartlegend { background: rgba(20,22,20,.88); color: #fff; padding: 8px 10px; border-radius: 8px; font: 12px/1.7 sans-serif; }
.rs-kartlegend-rubrik { font-weight: 700; margin-bottom: 2px; }
.rs-kartlegend span { font-weight: 400; color: #bbb; }
.rs-kartlegend label { display: flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; }
.rs-kartlegend input { accent-color: #D3F754; margin: 0; }
.rs-kartlegend i { display: inline-block; width: 8px; height: 8px; transform: rotate(45deg); background: #D3F754; }

/* Maskinlistan: kortet bar lanken till maskinen och, bredvid, tillverkarens app. */
.rs-card.rs-maskin { padding: 0; overflow: hidden; }
.rs-maskinlank { display: flex; align-items: center; gap: 14px; padding: 14px 16px; text-decoration: none; color: inherit; }
.rs-maskinlank:active { background: var(--rs-press); }
.rs-appar { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 14px 94px; }
.rs-appar.stor { padding: 0; }
.rs-appknapp { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--rs-line); border-radius: 999px;
  padding: 5px 12px; font-size: 13px; color: var(--rs-green); text-decoration: none; background: var(--rs-card); }
.rs-appar.stor .rs-appknapp { padding: 9px 16px; font-size: 15px; }
.rs-appknapp span { font-size: 11px; }
.rs-filterrubrik { flex: none; align-self: center; color: var(--rs-muted); font-size: 13px; }
.rs-grupprubrik { margin: 14px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--rs-muted); }

/* RTK-signalstatus, robotar pa kartan och forklaringen under kartan. */
.rs-rtkstatus { margin: 10px 0 4px; padding: 10px 12px; border-radius: 10px; background: var(--rs-tint); }
.rs-rtkstatus-rubrik { margin: 0 0 4px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.rs-prick { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #9e9e9e; flex: none; }
.rs-prick.ok { background: #2e7d32; }
.rs-prick.warn { background: #e0a100; }
.rs-prick.bad { background: #b3261e; }
.leaflet-container .leaflet-marker-pane img.rs-robotmarkor { width: 20px; height: 8px; display: block; filter: drop-shadow(0 0 1px #fff) drop-shadow(0 2px 3px rgba(0,0,0,.55)); }
.rs-robotprick { width: 26px; height: 26px; border-radius: 50%; background: #FF9E18; border: 3px solid #fff; box-shadow: 0 0 0 2px #FF9E18, 0 2px 6px rgba(0,0,0,.4); box-sizing: border-box; }
.rs-natlegend { margin: 0 0 8px; }
.rs-natlegend .rs-title { margin: 0 0 8px; }
.rs-landval { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.rs-landval input { accent-color: var(--rs-green); margin: 0; }
/* Kartan pa maskinkortet: bara maskinen och dess station (21/10). */
.rs-maskinkarta { height: 240px; }

/* Min dag (personal) */
.rs-mindag-val { margin: 0 0 14px; }
.rs-jobb { display: block; padding: 0; }
.rs-jobb .rs-jobb-lank { display: flex; gap: 12px; align-items: center; padding: 14px 16px; color: inherit; text-decoration: none; }
.rs-jobb-tid { flex: none; min-width: 64px; font-weight: 800; color: var(--rs-green); font-size: .95rem; display: flex; flex-direction: column; gap: 4px; }
.rs-jobb-nr { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--rs-green); color: #fff; align-items: center; justify-content: center; font-size: .8rem; }
.rs-jobb.klar .rs-jobb-tid { color: var(--rs-muted); }
.rs-jobb.klar .rs-jobb-nr { background: var(--rs-muted); }
.rs-jobb-knappar { display: flex; gap: 8px; padding: 0 16px 14px; flex-wrap: wrap; }
.rs-mindag-karta { height: 58vh; min-height: 300px; border-radius: 14px; overflow: hidden; margin: 0 0 8px; }
.rs-kartnr { width: 30px; height: 30px; border-radius: 50%; background: #006241; color: #fff; border: 2px solid #fff; box-shadow: 0 2px 5px rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .9rem; cursor: pointer; }
.rs-kartnr.klar { background: #667069; }
.rs-check { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-weight: 600; }
.rs-check input { width: 22px; height: 22px; }
.rs-signatur { width: 100%; height: 180px; background: #fff; border: 1px solid var(--rs-line); border-radius: 10px; touch-action: none; margin-top: 8px; }

/* Personalmeny i hörnet */
.rs-head .rs-menyknapp { background: none; border: 0; color: #fff; display: inline-flex; padding: 6px; margin-left: 2px; cursor: pointer; }
.rs-head .rs-menyknapp svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.rs-meny { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.45); opacity: 0; pointer-events: none; transition: opacity .15s; }
.rs-meny.oppen { opacity: 1; pointer-events: auto; }
.rs-meny-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(84vw, 340px); background: var(--rs-bg, #fff); color: inherit;
  overflow-y: auto; padding: calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 16px); transform: translateX(100%); transition: transform .18s; }
.rs-meny.oppen .rs-meny-panel { transform: none; }
.rs-meny-topp { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: 1.05rem; padding: 6px 4px 4px; }
.rs-meny-stang { background: none; border: 0; font-size: 28px; line-height: 1; color: inherit; cursor: pointer; padding: 4px 8px; }
.rs-meny-grupp { margin: 14px 4px 4px; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rs-muted); }
.rs-meny-rad { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-radius: 10px; color: inherit; text-decoration: none; font-weight: 600; }
.rs-meny-rad.aktiv { background: rgba(0,98,65,.12); color: var(--rs-green); }
/* Röst i rapporten */
.rs-rost { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.rs-rostknapp { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--rs-green); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.rs-rostknapp svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.rs-rostknapp.spelar { background: #c0392b; animation: rs-puls 1.2s infinite; }
.rs-rostknapp.arbetar { opacity: .55; }
.rs-rost-text { font-size: .88rem; color: var(--rs-muted); }
.rs-rost-text.fel { color: #c0392b; }
@keyframes rs-puls { 0% { box-shadow: 0 0 0 0 rgba(192,57,43,.5); } 100% { box-shadow: 0 0 0 14px rgba(192,57,43,0); } }
