

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', sans-serif; }

/* --- TILLBAKA TILL APP-LAYOUT --- */
body { 
    background-color: var(--bg-dark); 
    color: var(--text-main); 
    height: 100vh; /* Fyll skärmen */
    overflow: hidden; /* INGEN scroll på body */
}

/* Login */
.login-container {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: var(--bg-dark); display: flex; justify-content: center; align-items: center; z-index: 1000;
}
.login-box {
    background: var(--bg-panel); padding: 2rem; border-radius: 8px; 
    width: 90%; /* Bättre för mobil */
    max-width: 350px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5);
}
.login-box input {
    width: 100%; padding: 10px; margin: 10px 0; background: var(--bg-card); border: 1px solid var(--border-color); color: white;
}
/* --- FIX FÖR LOGIN-KNAPP --- */
.login-box button {
    width: 100%;
    background-color: var(--accent-blue);
    color: white;
    font-weight: bold;
    padding: 10px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 10px;
}
.login-box button:hover {
    background-color: #2563eb;
}

/* NY LOGO-STIL */
.login-logo {
    display: block;
    max-height: 80px; /* Max höjd för logotypen */
    width: auto;      /* Behåll bildförhållandet */
    max-width: 100%;  /* Se till att den inte svämmar över rutan */
    margin: 0 auto 20px auto; /* Centrera, med 20px marginal under */
    object-fit: contain; /* Förhindra att bilden sträcks */
}


/* Layout */
#app-container { 
    display: flex; 
    flex-direction: column; 
    height: 100vh; /* Fyll skärmen */
}
.hidden { display: none !important; }

/* ---- NY HEADER-LAYOUT ---- */
/* ---- NY HEADER-LAYOUT ---- */
.top-bar {
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border-color);
    padding: 10px;
    display: flex;
    flex-direction: row;          /* Logo vänster, knappar höger */
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-shrink: 0;
}

.logo { 
    font-size: 1.2rem; 
    font-weight: bold;
    text-align: left;
}

/* LOGO I HEADER */
.header-logo {
    height: 40px;
    width: auto;
    object-fit: contain;
}

/* Rad med "Inloggad som" + knappar */
.top-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;            /* tryck knapparna till höger */
}

.top-actions span {
    margin-right: 8px;
}

.top-actions button { 
    margin-left: 0;
}

/* NYTT: Stil för aktiv knapp */
.top-actions button.active {
    background-color: var(--accent-blue);
    border-color: var(--accent-blue);
    color: white;
}
/* ---- SLUT PÅ NY HEADER ---- */




/* --- TILLBAKA TILL APP-LAYOUT --- */
.main-layout { 
    display: flex; 
    flex: 1; /* Fyll återstående höjd */
    overflow: hidden; /* Inget scroll här */
    min-height: 0; /* Viktig flexbox-fix */
}

/* Sidebars */
.sidebar-left { 
    width: 450px; /* Ny, bredare startbredd */
    min-width: 200px; /* Minsta bredd */
    max-width: 600px; /* Största bredd */
    flex-shrink: 0; 
    background: var(--bg-panel); 
    border-right: 1px solid var(--border-color); 
    display: flex; 
    flex-direction: column; 
    padding: 10px; 
    overflow: hidden; /* Inget scroll här */
}
.sidebar-right { 
    width: 300px; 
    /* NYTT: Gränser för storlek */
    min-width: 200px;
    max-width: 600px;
    
    flex-shrink: 0;
    background: var(--bg-panel); 
    border-left: 1px solid var(--border-color); 
    padding: 15px; 
    display: flex; 
    flex-direction: column;
    overflow-y: auto; 
}

/* --- STIL FÖR RESIZER --- */
.resizer {
    width: 5px;
    background: var(--border-color);
    cursor: col-resize;
    flex-shrink: 0;
    position: relative;
    z-index: 10;
    transition: background 0.2s ease;
    /* Borttagen: position: sticky */
}
.resizer:hover {
    background: var(--accent-blue);
}

.year-selector select { width: 100%; padding: 8px; margin-top: 5px; background: var(--bg-card); color: white; border: none; }
.station-list-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 15px;
}

.filter-group {
    display: flex;
    gap: 5px;
    margin-top: 10px;
    margin-bottom: 5px;
}
.filter-btn {
    flex: 1;
    padding: 6px 8px;
    font-size: 0.8rem;
    background: var(--bg-card);
    color: var(--text-muted);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    cursor: pointer;
}
.filter-btn.active {
    background: var(--accent-blue);
    color: var(--text-main);
    border-color: var(--accent-blue);
}
.filter-btn:hover:not(.active) {
    background: #3a404d;
}

/* --- **** NY SÖKRUTA STIL **** --- */
.search-box {
    margin-top: 10px;
    margin-bottom: 5px;
}
.search-box input {
    width: 100%;
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: white;
    border-radius: 4px;
    font-size: 0.9rem;
}
/* --- **** SLUT SÖKRUTA STIL **** --- */


/* --- **** TILLBAKA TILL INTERN SCROLL **** --- */
.station-list { 
    flex: 1; /* Fyller utrymmet i vänstra menyn */
    overflow-y: auto; /* INTERN SCROLLBAR */
    margin-top: 10px; 
    min-height: 0; /* Viktig flexbox-fix */
} 
/* --- **** SLUT PÅ FIX **** --- */

/* --- NYTT: STILAR FÖR STATIONS-LISTAN --- */
.station-item {
    padding: 10px; 
    cursor: pointer; 
    border-radius: 4px; 
    display: flex; 
    align-items: center;
    justify-content: space-between; /* Flytta bockar till höger */
}
.station-item-name {
    display: flex;
    align-items: center;
    gap: 10px; /* Mellanrum mellan prick och namn */
    /* Förhindra att långa namn pajar layouten */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.station-item-checks {
    display: flex;
    gap: 5px;
    flex-shrink: 0; /* Hindra från att krympa */
    margin-left: 5px; /* Avstånd från namn */
}
.check-icon, .check-icon-empty {
    font-size: 0.75rem;
    font-weight: bold;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 18px; /* Säkerställ centrering */
}
.check-icon.servad {
    background-color: var(--accent-blue);
    color: white;
}
.check-icon.tvattad {
    background-color: var(--color-amber);
    color: white;
}
.check-icon-empty {
    color: #555;
    border: 1px solid #444;
}
/* --- SLUT PÅ NYA STILAR --- */


.station-item:hover { background: var(--bg-card); }
.station-item.active { background: var(--accent-blue); }
.dot { height: 8px; width: 8px; border-radius: 50%; flex-shrink: 0; } /* Lagt till flex-shrink */
.dot.vatten { background: #0ea5e9; }
.dot.avlopp { background: var(--accent-red); }

/* Content Area */
.content-area { 
    flex: 1; 
    position: relative; 
    background: var(--bg-dark); 
    overflow-y: auto; /* INNEHÅLLET SKROLLAR HÄR */
    min-width: 0;
}
.view-section { 
    padding: 20px; 
    height: 100%;
}
#empty-state {
    text-align: center;
    padding-top: 100px;
    color: var(--text-muted);
}
#empty-state .icon-placeholder {
    font-size: 3rem;
    margin-bottom: 1rem;
}

#station-details .details-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}


/* Map */
/* ---- NY KART-LAYOUT (Flexbox-baserad) ---- */
#map-view {
    display: flex;
    flex-direction: column;
    height: 100%;
}
#map { 
    width: 100%; 
    border-radius: 8px; 
    flex-grow: 1; /* Ta upp återstående plats */
    /* Borttagen: height: 75vh; */
}
.map-controls { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    padding-top: 10px;
    flex-shrink: 0;
    height: auto;
    padding-bottom: 10px;
}
/* ---- SLUT PÅ NY KART-LAYOUT ---- */
#map-status-text { color: var(--text-muted); }

/* Dashboard Details */
.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.card { background: var(--bg-panel); padding: 15px; border-radius: 8px; }
.history-card { grid-column: 1 / -1; } 

/* ---- NY LAYOUT FÖR MINI-KARTA (Flex) ---- */
.card-permanent-info {
    display: flex;
    flex-direction: column;
}
.form-group-map-preview {
    flex-grow: 1; /* Ta upp återstående plats */
    display: flex;
    flex-direction: column;
    min-height: 200px; /* Minsta höjd */
}
.map-preview-container {
    flex-grow: 1; /* Ta upp plats i form-group */
    width: 100%; 
    background: var(--bg-card); 
    border-radius: 4px; 
    margin-bottom: 10px; 
    border: 1px solid var(--border-color);
}
.map-preview-container.clickable {
    cursor: pointer;
}
/* ---- SLUT PÅ NY LAYOUT ---- */


.form-group { margin-bottom: 10px; }
.form-group label {
    display: block;
    font-size: 0.8rem;
    color: var(--text-muted) !important; 
    margin-bottom: 4px;
}
input[type="text"], textarea, select {
    width: 100%; 
    padding: 8px; 
    background: var(--bg-card); 
    border: 1px solid var(--border-color); 
    color: white; 
    border-radius: 4px;
}
input[type="date"] {
    width: 100%;
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: white;
    border-radius: 4px;
}

textarea {
    min-height: 80px;
}

.checkbox-group {
    display: flex;
    flex-direction: column; 
    gap: 10px; 
    margin-top: 10px;
}
.checkbox-group label {
    display: flex; 
    align-items: center; 
    gap: 8px;
    color: var(--text-main); 
    font-size: 0.9rem;
}

/* Custom checkbox style */
input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: var(--bg-card);
    border: 1px solid var(--border-color);
    width: 1.15em;
    height: 1.15em;
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}
input[type="checkbox"]:checked {
    background-color: var(--accent-blue);
    border-color: var(--accent-blue);
}
input[type="checkbox"]:checked::before {
    content: '✔';
    position: absolute;
    color: white;
    font-size: 0.9em;
    top: -2px; 
    left: 2px;  
}

/* Photos */
.photo-grid { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.photo-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; cursor: pointer; position: relative; }
.photo-container { position: relative; display: inline-block; }
.del-photo { 
    position: absolute; 
    top: -5px; 
    right: -5px; 
    background: red; 
    color: white; 
    font-size: 10px; 
    cursor: pointer; 
    padding: 0px 4px;
    border-radius: 50%;
    border: 1px solid white;
}






.reminder-date-input{
    flex-basis: 140px;
}

.reminder-date {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-right: 8px;
}

.reminder-item.due {
    outline: 1px solid rgba(255,255,255,0.12);
}

.due-reminder-modal{
    max-width: 520px;
}
/* Confirm modal */
.confirm-modal {
  max-width: 520px;
  width: calc(100% - 24px);
}

.confirm-message {
  margin-top: 10px;
  line-height: 1.4;
  color: var(--text-color, #eaeaea);
  opacity: 0.95;
}

.confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  color: var(--text-color, #fff);
  font-size: 24px;
  cursor: pointer;
  opacity: 0.8;
}
.modal-close:hover { opacity: 1; }

/* Om du vill ha "danger" knapp-stil om du inte redan har */
.btn-danger {
  background: #b63b3b;
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
}
.btn-danger:hover {
  filter: brightness(1.05);
}

/* Backdrop-klick (om du vill att klick utanför stänger) */
#confirm-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  background: rgba(0,0,0,0.55);
  z-index: 9999;
}
#confirm-modal.hidden { display: none; }

#confirm-modal .modal-content {
  position: relative;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.55);
}

.due-reminder-list .due-item{
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 10px;
    margin-top: 8px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.due-reminder-list .due-item .meta{
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.due-reminder-list .due-actions{
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}









/* History & Reminders */
#history-list, #reminder-list { list-style: none; margin-top: 10px; }
.history-item, .reminder-item {
    background: var(--bg-card); padding: 10px; margin-bottom: 5px; border-radius: 4px; font-size: 0.9rem;
}
.history-meta { font-size: 0.75rem; color: var(--text-muted); display: block; margin-bottom: 3px; }
.reminder-input .row {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}
.reminder-input select {
    flex-basis: 100px;
}
.reminder-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.reminder-item.priority-Hög { border-left: 3px solid var(--accent-red); }
.reminder-item.priority-Normal { border-left: 3px solid var(--accent-blue); }
.reminder-item.priority-Låg { border-left: 3px solid #6b7280; }


.reminder-personal {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.reminder-item.personal {
    border-left-style: dashed; /* bara för att se skillnad på “Endast du” */
}

.reminder-tag {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-right: 8px;
}



/* Buttons */
button { cursor: pointer; padding: 8px 12px; border: none; border-radius: 4px; font-weight: bold; color: white; }
.btn-primary { background: var(--accent-blue); }
.btn-secondary { background: var(--bg-card); color: white; border: 1px solid var(--border-color); }
.btn-danger { background: var(--accent-red); }
.btn-danger-text { background: transparent; color: var(--accent-red); padding: 0; }
.btn-icon { background: var(--accent-blue); width: 24px; height: 24px; padding: 0; display: flex; justify-content: center; align-items: center;}
.btn-small {
    padding: 4px 8px;
    font-size: 0.8rem;
}
.mt-auto { margin-top: auto; }

/* Modal */
.modal { position: fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; z-index:2000;}
.modal-content { 
    background: var(--bg-panel); 
    padding: 20px; 
    width: 90%; /* Bättre för mobil */
    max-width: 400px; /* Bredare för användarlistan */
    border-radius: 8px; 
    position: relative;
}
.close { position:absolute; top:10px; right:15px; cursor:pointer; font-size:20px;}
.modal-content hr {
    border: none;
    border-top: 1px solid var(--border-color);
    margin: 15px 0;
}
.modal-content input {
    margin-bottom: 10px;
}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px;
}

.confirm-modal{
  max-width: 520px;
}

.station-modal{
  max-width: 520px;
}

/* --- NY STIL FÖR ANVÄNDARLISTA --- */
.user-item-setting {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px;
    border-bottom: 1px solid var(--border-color);
}
.user-item-setting:last-child {
    border-bottom: none;
}
.user-item-name {
    font-weight: 500;
}
.user-item-actions button {
    margin-left: 5px;
}
/* --- SLUT NY STIL --- */


/* --- Fixar för Leaflet Popup (Karta) --- */
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
    color: #333 !important; 
    font-size: 14px;
}
.leaflet-popup-content h3, 
.leaflet-popup-content b {
    color: #000 !important; 
    font-size: 1.1em;
}
.leaflet-popup-content div, .leaflet-popup-content {
    color: #555 !important; 
}
.leaflet-popup-content button {
    margin-top: 8px;
    width: 100%;
    color: white !important; 
    border: none;
    padding: 6px;
    border-radius: 4px;
    cursor: pointer;
}
.leaflet-popup-content select {
    width: 100%;
    margin-top: 5px;
    color: #333; 
    background: #f4f4f4;
    border: 1px solid #ccc;
}
.btn-popup-open {
    background-color: #3b82f6 !important; 
}
.btn-popup-open:hover {
    background-color: #2563eb !important;
}
.btn-popup-delete {
    background-color: #ef4444 !important;
}
.btn-popup-delete:hover {
    background-color: #dc2626 !important;
}

/* --- NY STIL FÖR KART-BYTARE (MÖRKT LÄGE) --- */
.leaflet-control-layers {
    background: var(--bg-panel) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
}
.leaflet-control-layers-base label {
    color: var(--text-main) !important;
    display: flex;
    align-items: center;
}
.leaflet-control-layers-separator {
    border-top: 1px solid var(--border-color) !important;
}

.photo-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

.photo-modal-hidden {
    display: none;
}

.photo-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
}

.photo-modal-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    background: #111;
    padding: 12px 16px 16px;
    border-radius: 8px;
    box-shadow: 0 0 20px rgba(0,0,0,0.7);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.photo-modal-img {
    max-width: 80vw;
    max-height: 70vh;
    object-fit: contain;
    border-radius: 4px;
    background: #000;
}

.photo-modal-close {
    position: absolute;
    top: 6px;
    right: 8px;
    border: none;
    background: transparent;
    color: #fff;
    font-size: 26px;
    cursor: pointer;
    padding: 0 6px;
    line-height: 1;
}

.photo-modal-close:hover {
    color: #ff6666;
}

.photo-modal-nav {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: 14px;
}

.photo-modal-nav-btn {
    border: none;
    background: #333;
    color: #fff;
    font-size: 22px;
    padding: 4px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.photo-modal-nav-btn:hover {
    background: #555;
}

.photo-modal-counter {
    min-width: 80px;
    text-align: center;
    opacity: 0.9;
}

/* Extra anpassning för riktigt små skärmar */
@media (max-width: 600px) {
    .photo-modal-content {
        max-width: 95vw;
        max-height: 90vh;
        padding: 10px 12px 12px;
    }

    .photo-modal-img {
        max-width: 90vw;
        max-height: 65vh;
    }
}

.reminder-personal {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.reminder-item.personal {
    border-left-style: dashed;          /* bara för att se skillnad */
}

.reminder-tag {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-right: 8px;
}

/* ================================================================
--- MOBILANPASSNING (MEDIA QUERIES) ---
================================================================
*/
@media (max-width: 800px) {
    /* --- TILLBAKA TILL "WEBSITE" SCROLL --- */
    body {
        height: auto;
        overflow-y: auto;
    }
    #app-container {
        height: auto;
        min-height: 100vh;
    }
    .main-layout {
        flex-direction: column;
        min-height: 0; 
        overflow: visible;
    }

    /* Göm resizer */
    #resizer {
        display: none;
    }

    /* Gör sidomenyerna 100% breda */
    .sidebar-left {
        width: 100% !important; 
        max-width: 100%;
        min-width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        /* Ta bort sticky-layout */
        position: static;
        height: auto;
    }
    .sidebar-right {
        width: 100%;
        border-left: none;
        border-top: 1px solid var(--border-color);
        /* Ta bort sticky-layout */
        position: static;
        height: auto;
    }

    /* Ge stationslistan en fast höjd på mobil */
    .station-list {
        flex: none; /* Ta bort flex för desktop */
        height: 400px; /* Fast höjd */
    }

    /* Mobil: normal-läge */
    #map-view:not(.map-fullscreen) #map {
        height: 400px;
        flex-grow: 0;
    }
    
    /* Mobil: fullscreen-läge */
    #map-view.map-fullscreen {
        height: 100vh;
        height: 100dvh;
    }
    
    #map-view.map-fullscreen #map {
        height: 100% !important;
        flex-grow: 1 !important;
    }
    .map-fullscreen #map {
        height: 100% !important;
    }

    .content-area {
        overflow: visible; /* Låt body sköta scroll */
    }

       /* Stapla toppmenyn */
        .top-bar {
        height: auto;
        padding: 10px;
        position: static;
        flex-direction: column;    /* på mobil: logga överst */
        align-items: flex-start;
    }


    .logo {
        display: none;           /* om du vill gömma texttiteln på mobil */
    }

    .top-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 6px;
    }

    .top-actions span {
        width: auto;
        text-align: left;
    }



    /* Stapla korten i service-vyn */
    .details-grid {
        grid-template-columns: 1fr;
    }

    /* Gör modalen bredare på mobil */
    .modal-content {
        max-width: 90%;
    }
}

/* Fullscreen-knapp på kartan */
.fullscreen-btn {
    position: absolute;
    top: 10px;               /* avstånd från toppen */
    left: 50%;               /* mitt på bredden */
    transform: translateX(-50%); /* flytta tillbaka halva bredden = centrerad */
    z-index: 9999;
    background: #111;
    color: white;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0.85;
}
.fullscreen-btn:hover {
    opacity: 1;
}

.fullscreen-btn:hover {
    opacity: 1;
}

/* Klass som gör kartvyn fullscreen */
.map-fullscreen {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 9998 !important;
    background: #000;
}
.extra-fields-container{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
}

.extra-field-row{
  display:grid;
  grid-template-columns: 1fr 1.2fr auto;
  gap:10px;
  align-items:center;
}

.extra-field-row input{
  margin:0;
}

.extra-field-remove{
  background: transparent;
  border: 1px solid rgba(255,255,255,0.12);
  color: #ff6b6b;
  border-radius: 10px;
  padding: 8px 10px;
  cursor:pointer;
}
/* Popup-form för ritade objekt */
.draw-popup label{
  display:block;
  font-size: 12px;
  opacity: .85;
  margin-top: 8px;
}

.draw-popup input,
.draw-popup select{
  width: 100%;
  margin-top: 6px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.18);
  outline: none;
}

.draw-popup .row{
  display:flex;
  gap:8px;
  margin-top:10px;
}

.draw-popup .row button{
  flex:1;
}
.leaflet-tooltip.pump-f-label{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #000 !important;
  font-weight: 900;
  font-size: 14px;        /* gör F större/mindre */
  padding: 0 !important;
  margin: 0 !important;
}

.leaflet-tooltip.pump-f-label:before{
  display: none !important; /* tar bort “pilen” */
}
.pump-f-label {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #000 !important;
  font-weight: 900;
  line-height: 1;
  padding: 0 !important;
  margin: 0 !important;
  text-align: center;
}
.pump-f-label::before {
  display: none !important;
}
/* NYTT: GPS-knapp */
.gps-btn{
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 9999;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  font-weight: 800;
  cursor: pointer;
  opacity: 0.9;
}
.gps-btn:hover{ opacity: 1; }
.gps-btn.active{
  background: var(--accent-blue);
  border-color: var(--accent-blue);
}

/* VIKTIGT: Fullscreen ska alltid ge kartan full höjd (även på mobil där du annars har #map { height: 400px }) */
.map-fullscreen #map{
  height: 100vh !important;
  flex-grow: 1 !important;
}

/* Förhindra att sidan scrollar när fullscreen är aktiv */
body.no-scroll{
  height: 100vh !important;
  overflow: hidden !important;
}
/* GPS-ikon: "arbetare" */
.gps-worker-icon{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #ffffff;
  border: 2px solid #111;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  user-select: none;
}

.gps-worker-icon span{
  font-size: 18px;  /* ändra storlek på figuren */
  line-height: 1;
}
/* GPS-knapp som overlay i fullscreen */
#map-view.map-fullscreen #btn-gps {
  position: fixed !important;
  right: 12px !important;
  bottom: 12px !important;
  z-index: 10050 !important; /* över Leaflet-kontroller */
}

/* iPhone safe-area (så den inte hamnar bakom “home bar”) */
@supports (padding: max(0px)) {
  #map-view.map-fullscreen #btn-gps {
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
  }
}
:root {
    --bg-dark: #15171e;
    --bg-panel: #1e2129;
    --bg-card: #2b303b;
    --text-main: #ffffff;
    --text-muted: #a0a0a0;
    --accent-blue: #3b82f6;
    --accent-red: #ef4444;
    --accent-brown: #78350f;
    --border-color: #374151;
    --color-amber: #f59e0b;

    /* NYTT: samma röd överallt i dejourn */
    --dejour-red: rgba(220, 38, 38, 0.92);      /* starkare röd (header) */
    --dejour-red-col: rgba(220, 38, 38, 0.28);  /* tydligare röd (tomma rutor i kolumn) */
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', sans-serif; }

/* --- TILLBAKA TILL APP-LAYOUT --- */
body { 
    background-color: var(--bg-dark); 
    color: var(--text-main); 
    height: 100vh; /* Fyll skärmen */
    overflow: hidden; /* INGEN scroll på body */
}

/* Login */
.login-container {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: var(--bg-dark); display: flex; justify-content: center; align-items: center; z-index: 1000;
}
.login-box {
    background: var(--bg-panel); padding: 2rem; border-radius: 8px; 
    width: 90%; /* Bättre för mobil */
    max-width: 350px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5);
}
.login-box input {
    width: 100%; padding: 10px; margin: 10px 0; background: var(--bg-card); border: 1px solid var(--border-color); color: white;
}
/* --- FIX FÖR LOGIN-KNAPP --- */
.login-box button {
    width: 100%;
    background-color: var(--accent-blue);
    color: white;
    font-weight: bold;
    padding: 10px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 10px;
}
.login-box button:hover {
    background-color: #2563eb;
}

/* NY LOGO-STIL */
.login-logo {
    display: block;
    max-height: 80px; /* Max höjd för logotypen */
    width: auto;      /* Behåll bildförhållandet */
    max-width: 100%;  /* Se till att den inte svämmar över rutan */
    margin: 0 auto 20px auto; /* Centrera, med 20px marginal under */
    object-fit: contain; /* Förhindra att bilden sträcks */
}


/* Layout */
#app-container { 
    display: flex; 
    flex-direction: column; 
    height: 100vh; /* Fyll skärmen */
}
.hidden { display: none !important; }

/* ---- NY HEADER-LAYOUT ---- */
/* ---- NY HEADER-LAYOUT ---- */
.top-bar {
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border-color);
    padding: 10px;
    display: flex;
    flex-direction: row;          /* Logo vänster, knappar höger */
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-shrink: 0;
}

.logo { 
    font-size: 1.2rem; 
    font-weight: bold;
    text-align: left;
}

/* LOGO I HEADER */
.header-logo {
    height: 40px;
    width: auto;
    object-fit: contain;
}

/* Rad med "Inloggad som" + knappar */
.top-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;            /* tryck knapparna till höger */
}

.top-actions span {
    margin-right: 8px;
}

.top-actions button { 
    margin-left: 0;
}

/* NYTT: Stil för aktiv knapp */
.top-actions button.active {
    background-color: var(--accent-blue);
    border-color: var(--accent-blue);
    color: white;
}
/* ---- SLUT PÅ NY HEADER ---- */




/* --- TILLBAKA TILL APP-LAYOUT --- */
.main-layout { 
    display: flex; 
    flex: 1; /* Fyll återstående höjd */
    overflow: hidden; /* Inget scroll här */
    min-height: 0; /* Viktig flexbox-fix */
}

/* Sidebars */
.sidebar-left { 
    width: 450px; /* Ny, bredare startbredd */
    min-width: 200px; /* Minsta bredd */
    max-width: 600px; /* Största bredd */
    flex-shrink: 0; 
    background: var(--bg-panel); 
    border-right: 1px solid var(--border-color); 
    display: flex; 
    flex-direction: column; 
    padding: 10px; 
    overflow: hidden; /* Inget scroll här */
}
.sidebar-right { 
    width: 300px; 
    flex-shrink: 0;
    background: var(--bg-panel); 
    border-left: 1px solid var(--border-color); 
    padding: 15px; 
    display: flex; 
    flex-direction: column;
    overflow-y: auto; /* PÅMINNELSER SKROLLAR HÄR */
}

/* --- STIL FÖR RESIZER --- */
.resizer {
    width: 5px;
    background: var(--border-color);
    cursor: col-resize;
    flex-shrink: 0;
    position: relative;
    z-index: 10;
    transition: background 0.2s ease;
    /* Borttagen: position: sticky */
}
.resizer:hover {
    background: var(--accent-blue);
}

.year-selector select { width: 100%; padding: 8px; margin-top: 5px; background: var(--bg-card); color: white; border: none; }
.station-list-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 15px;
}

.filter-group {
    display: flex;
    gap: 5px;
    margin-top: 10px;
    margin-bottom: 5px;
}
.filter-btn {
    flex: 1;
    padding: 6px 8px;
    font-size: 0.8rem;
    background: var(--bg-card);
    color: var(--text-muted);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    cursor: pointer;
}
.filter-btn.active {
    background: var(--accent-blue);
    color: var(--text-main);
    border-color: var(--accent-blue);
}
.filter-btn:hover:not(.active) {
    background: #3a404d;
}

/* --- **** NY SÖKRUTA STIL **** --- */
.search-box {
    margin-top: 10px;
    margin-bottom: 5px;
}
.search-box input {
    width: 100%;
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: white;
    border-radius: 4px;
    font-size: 0.9rem;
}
/* --- **** SLUT SÖKRUTA STIL **** --- */


/* --- **** TILLBAKA TILL INTERN SCROLL **** --- */
.station-list { 
    flex: 1; /* Fyller utrymmet i vänstra menyn */
    overflow-y: auto; /* INTERN SCROLLBAR */
    margin-top: 10px; 
    min-height: 0; /* Viktig flexbox-fix */
} 
/* --- **** SLUT PÅ FIX **** --- */

/* --- NYTT: STILAR FÖR STATIONS-LISTAN --- */
.station-item {
    padding: 10px; 
    cursor: pointer; 
    border-radius: 4px; 
    display: flex; 
    align-items: center;
    justify-content: space-between; /* Flytta bockar till höger */
}
.station-item-name {
    display: flex;
    align-items: center;
    gap: 10px; /* Mellanrum mellan prick och namn */
    /* Förhindra att långa namn pajar layouten */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.station-item-checks {
    display: flex;
    gap: 5px;
    flex-shrink: 0; /* Hindra från att krympa */
    margin-left: 5px; /* Avstånd från namn */
}
.check-icon, .check-icon-empty {
    font-size: 0.75rem;
    font-weight: bold;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 18px; /* Säkerställ centrering */
}
.check-icon.servad {
    background-color: var(--accent-blue);
    color: white;
}
.check-icon.tvattad {
    background-color: var(--color-amber);
    color: white;
}
.check-icon-empty {
    color: #555;
    border: 1px solid #444;
}
/* --- SLUT PÅ NYA STILAR --- */


.station-item:hover { background: var(--bg-card); }
.station-item.active { background: var(--accent-blue); }
.dot { height: 8px; width: 8px; border-radius: 50%; flex-shrink: 0; } /* Lagt till flex-shrink */
.dot.vatten { background: #0ea5e9; }
.dot.avlopp { background: var(--accent-red); }

/* Content Area */
.content-area { 
    flex: 1; 
    position: relative; 
    background: var(--bg-dark); 
    overflow-y: auto; /* INNEHÅLLET SKROLLAR HÄR */
    min-width: 0;
}
.view-section { 
    padding: 20px; 
    height: 100%;
}
#empty-state {
    text-align: center;
    padding-top: 100px;
    color: var(--text-muted);
}
#empty-state .icon-placeholder {
    font-size: 3rem;
    margin-bottom: 1rem;
}

#station-details .details-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}


/* Map */
/* ---- NY KART-LAYOUT (Flexbox-baserad) ---- */
#map-view {
    display: flex;
    flex-direction: column;
    height: 100%;
}
#map { 
    width: 100%; 
    border-radius: 8px; 
    flex-grow: 1; /* Ta upp återstående plats */
    /* Borttagen: height: 75vh; */
}
.map-controls { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    padding-top: 10px;
    flex-shrink: 0;
    height: auto;
    padding-bottom: 10px;
}
/* ---- SLUT PÅ NY KART-LAYOUT ---- */
#map-status-text { color: var(--text-muted); }

/* Dashboard Details */
.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.card { background: var(--bg-panel); padding: 15px; border-radius: 8px; }
.history-card { grid-column: 1 / -1; } 

/* ---- NY LAYOUT FÖR MINI-KARTA (Flex) ---- */
.card-permanent-info {
    display: flex;
    flex-direction: column;
}
.form-group-map-preview {
    flex-grow: 1; /* Ta upp återstående plats */
    display: flex;
    flex-direction: column;
    min-height: 200px; /* Minsta höjd */
}
.map-preview-container {
    flex-grow: 1; /* Ta upp plats i form-group */
    width: 100%; 
    background: var(--bg-card); 
    border-radius: 4px; 
    margin-bottom: 10px; 
    border: 1px solid var(--border-color);
}
.map-preview-container.clickable {
    cursor: pointer;
}
/* ---- SLUT PÅ NY LAYOUT ---- */


.form-group { margin-bottom: 10px; }
.form-group label {
    display: block;
    font-size: 0.8rem;
    color: var(--text-muted) !important; 
    margin-bottom: 4px;
}
input[type="text"], textarea, select {
    width: 100%; 
    padding: 8px; 
    background: var(--bg-card); 
    border: 1px solid var(--border-color); 
    color: white; 
    border-radius: 4px;
}
input[type="date"] {
    width: 100%;
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: white;
    border-radius: 4px;
}

textarea {
    min-height: 80px;
}

.checkbox-group {
    display: flex;
    flex-direction: column; 
    gap: 10px; 
    margin-top: 10px;
}
.checkbox-group label {
    display: flex; 
    align-items: center; 
    gap: 8px;
    color: var(--text-main); 
    font-size: 0.9rem;
}

/* Custom checkbox style */
input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: var(--bg-card);
    border: 1px solid var(--border-color);
    width: 1.15em;
    height: 1.15em;
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}
input[type="checkbox"]:checked {
    background-color: var(--accent-blue);
    border-color: var(--accent-blue);
}
input[type="checkbox"]:checked::before {
    content: '✔';
    position: absolute;
    color: white;
    font-size: 0.9em;
    top: -2px; 
    left: 2px;  
}

/* Photos */
.photo-grid { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.photo-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; cursor: pointer; position: relative; }
.photo-container { position: relative; display: inline-block; }
.del-photo { 
    position: absolute; 
    top: -5px; 
    right: -5px; 
    background: red; 
    color: white; 
    font-size: 10px; 
    cursor: pointer; 
    padding: 0px 4px;
    border-radius: 50%;
    border: 1px solid white;
}






.reminder-date-input{
    flex-basis: 140px;
}

.reminder-date {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-right: 8px;
}

.reminder-item.due {
    outline: 1px solid rgba(255,255,255,0.12);
}

.due-reminder-modal{
    max-width: 520px;
}
/* Confirm modal */
.confirm-modal {
  max-width: 520px;
  width: calc(100% - 24px);
}

.confirm-message {
  margin-top: 10px;
  line-height: 1.4;
  color: var(--text-color, #eaeaea);
  opacity: 0.95;
}

.confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  color: var(--text-color, #fff);
  font-size: 24px;
  cursor: pointer;
  opacity: 0.8;
}
.modal-close:hover { opacity: 1; }

/* Om du vill ha "danger" knapp-stil om du inte redan har */
.btn-danger {
  background: #b63b3b;
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
}
.btn-danger:hover {
  filter: brightness(1.05);
}

/* Backdrop-klick (om du vill att klick utanför stänger) */
#confirm-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  background: rgba(0,0,0,0.55);
  z-index: 9999;
}
#confirm-modal.hidden { display: none; }

#confirm-modal .modal-content {
  position: relative;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.55);
}

.due-reminder-list .due-item{
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 10px;
    margin-top: 8px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.due-reminder-list .due-item .meta{
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.due-reminder-list .due-actions{
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}









/* History & Reminders */
#history-list, #reminder-list { list-style: none; margin-top: 10px; }
.history-item, .reminder-item {
    background: var(--bg-card); padding: 10px; margin-bottom: 5px; border-radius: 4px; font-size: 0.9rem;
}
.history-meta { font-size: 0.75rem; color: var(--text-muted); display: block; margin-bottom: 3px; }
.reminder-input .row {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}
.reminder-input select {
    flex-basis: 100px;
}
.reminder-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.reminder-item.priority-Hög { border-left: 3px solid var(--accent-red); }
.reminder-item.priority-Normal { border-left: 3px solid var(--accent-blue); }
.reminder-item.priority-Låg { border-left: 3px solid #6b7280; }


.reminder-personal {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.reminder-item.personal {
    border-left-style: dashed; /* bara för att se skillnad på “Endast du” */
}

.reminder-tag {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-right: 8px;
}



/* Buttons */
button { cursor: pointer; padding: 8px 12px; border: none; border-radius: 4px; font-weight: bold; color: white; }
.btn-primary { background: var(--accent-blue); }
.btn-secondary { background: var(--bg-card); color: white; border: 1px solid var(--border-color); }
.btn-danger { background: var(--accent-red); }
.btn-danger-text { background: transparent; color: var(--accent-red); padding: 0; }
.btn-icon { background: var(--accent-blue); width: 24px; height: 24px; padding: 0; display: flex; justify-content: center; align-items: center;}
.btn-small {
    padding: 4px 8px;
    font-size: 0.8rem;
}
.mt-auto { margin-top: auto; }

/* Modal */
.modal { position: fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; z-index:2000;}
.modal-content { 
    background: var(--bg-panel); 
    padding: 20px; 
    width: 90%; /* Bättre för mobil */
    max-width: 400px; /* Bredare för användarlistan */
    border-radius: 8px; 
    position: relative;
}
.close { position:absolute; top:10px; right:15px; cursor:pointer; font-size:20px;}
.modal-content hr {
    border: none;
    border-top: 1px solid var(--border-color);
    margin: 15px 0;
}
.modal-content input {
    margin-bottom: 10px;
}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px;
}

.confirm-modal{
  max-width: 520px;
}

.station-modal{
  max-width: 520px;
}

/* --- NY STIL FÖR ANVÄNDARLISTA --- */
.user-item-setting {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px;
    border-bottom: 1px solid var(--border-color);
}
.user-item-setting:last-child {
    border-bottom: none;
}
.user-item-name {
    font-weight: 500;
}
.user-item-actions button {
    margin-left: 5px;
}
/* --- SLUT NY STIL --- */


/* --- Fixar för Leaflet Popup (Karta) --- */
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
    color: #333 !important; 
    font-size: 14px;
}
.leaflet-popup-content h3, 
.leaflet-popup-content b {
    color: #000 !important; 
    font-size: 1.1em;
}
.leaflet-popup-content div, .leaflet-popup-content {
    color: #555 !important; 
}
.leaflet-popup-content button {
    margin-top: 8px;
    width: 100%;
    color: white !important; 
    border: none;
    padding: 6px;
    border-radius: 4px;
    cursor: pointer;
}
.leaflet-popup-content select {
    width: 100%;
    margin-top: 5px;
    color: #333; 
    background: #f4f4f4;
    border: 1px solid #ccc;
}
.btn-popup-open {
    background-color: #3b82f6 !important; 
}
.btn-popup-open:hover {
    background-color: #2563eb !important;
}
.btn-popup-delete {
    background-color: #ef4444 !important;
}
.btn-popup-delete:hover {
    background-color: #dc2626 !important;
}

/* --- NY STIL FÖR KART-BYTARE (MÖRKT LÄGE) --- */
.leaflet-control-layers {
    background: var(--bg-panel) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
}
.leaflet-control-layers-base label {
    color: var(--text-main) !important;
    display: flex;
    align-items: center;
}
.leaflet-control-layers-separator {
    border-top: 1px solid var(--border-color) !important;
}

.photo-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

.photo-modal-hidden {
    display: none;
}

.photo-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
}

.photo-modal-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    background: #111;
    padding: 12px 16px 16px;
    border-radius: 8px;
    box-shadow: 0 0 20px rgba(0,0,0,0.7);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.photo-modal-img {
    max-width: 80vw;
    max-height: 70vh;
    object-fit: contain;
    border-radius: 4px;
    background: #000;
}

.photo-modal-close {
    position: absolute;
    top: 6px;
    right: 8px;
    border: none;
    background: transparent;
    color: #fff;
    font-size: 26px;
    cursor: pointer;
    padding: 0 6px;
    line-height: 1;
}

.photo-modal-close:hover {
    color: #ff6666;
}

.photo-modal-nav {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: 14px;
}

.photo-modal-nav-btn {
    border: none;
    background: #333;
    color: #fff;
    font-size: 22px;
    padding: 4px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.photo-modal-nav-btn:hover {
    background: #555;
}

.photo-modal-counter {
    min-width: 80px;
    text-align: center;
    opacity: 0.9;
}

/* Extra anpassning för riktigt små skärmar */
@media (max-width: 600px) {
    .photo-modal-content {
        max-width: 95vw;
        max-height: 90vh;
        padding: 10px 12px 12px;
    }

    .photo-modal-img {
        max-width: 90vw;
        max-height: 65vh;
    }
}

.reminder-personal {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.reminder-item.personal {
    border-left-style: dashed;          /* bara för att se skillnad */
}

.reminder-tag {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-right: 8px;
}

/* ================================================================
--- MOBILANPASSNING (MEDIA QUERIES) ---
================================================================
*/
@media (max-width: 800px) {
    /* --- TILLBAKA TILL "WEBSITE" SCROLL --- */
    body {
        height: auto;
        overflow-y: auto;
    }
    #app-container {
        height: auto;
        min-height: 100vh;
    }
    .main-layout {
        flex-direction: column;
        min-height: 0; 
        overflow: visible;
    }

    /* Göm resizer */
    #resizer {
        display: none;
    }

    /* Gör sidomenyerna 100% breda */
    .sidebar-left {
        width: 100% !important; 
        max-width: 100%;
        min-width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        /* Ta bort sticky-layout */
        position: static;
        height: auto;
    }
    .sidebar-right {
        width: 100%;
        border-left: none;
        border-top: 1px solid var(--border-color);
        /* Ta bort sticky-layout */
        position: static;
        height: auto;
    }

    /* Ge stationslistan en fast höjd på mobil */
    .station-list {
        flex: none; /* Ta bort flex för desktop */
        height: 400px; /* Fast höjd */
    }

    /* Mobil: normal-läge */
    #map-view:not(.map-fullscreen) #map {
        height: 400px;
        flex-grow: 0;
    }
    
    /* Mobil: fullscreen-läge */
    #map-view.map-fullscreen {
        height: 100vh;
        height: 100dvh;
    }
    
    #map-view.map-fullscreen #map {
        height: 100% !important;
        flex-grow: 1 !important;
    }
    .map-fullscreen #map {
        height: 100% !important;
    }

    .content-area {
        overflow: visible; /* Låt body sköta scroll */
    }

       /* Stapla toppmenyn */
        .top-bar {
        height: auto;
        padding: 10px;
        position: static;
        flex-direction: column;    /* på mobil: logga överst */
        align-items: flex-start;
    }


    .logo {
        display: none;           /* om du vill gömma texttiteln på mobil */
    }

    .top-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 6px;
    }

    .top-actions span {
        width: auto;
        text-align: left;
    }



    /* Stapla korten i service-vyn */
    .details-grid {
        grid-template-columns: 1fr;
    }

    /* Gör modalen bredare på mobil */
    .modal-content {
        max-width: 90%;
    }
}

/* Fullscreen-knapp på kartan */
.fullscreen-btn {
    position: absolute;
    top: 10px;               /* avstånd från toppen */
    left: 50%;               /* mitt på bredden */
    transform: translateX(-50%); /* flytta tillbaka halva bredden = centrerad */
    z-index: 9999;
    background: #111;
    color: white;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0.85;
}
.fullscreen-btn:hover {
    opacity: 1;
}

.fullscreen-btn:hover {
    opacity: 1;
}

/* Klass som gör kartvyn fullscreen */
.map-fullscreen {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 9998 !important;
    background: #000;
}
.extra-fields-container{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
}

.extra-field-row{
  display:grid;
  grid-template-columns: 1fr 1.2fr auto;
  gap:10px;
  align-items:center;
}

.extra-field-row input{
  margin:0;
}

.extra-field-remove{
  background: transparent;
  border: 1px solid rgba(255,255,255,0.12);
  color: #ff6b6b;
  border-radius: 10px;
  padding: 8px 10px;
  cursor:pointer;
}
/* Popup-form för ritade objekt */
.draw-popup label{
  display:block;
  font-size: 12px;
  opacity: .85;
  margin-top: 8px;
}

.draw-popup input,
.draw-popup select{
  width: 100%;
  margin-top: 6px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.18);
  outline: none;
}

.draw-popup .row{
  display:flex;
  gap:8px;
  margin-top:10px;
}

.draw-popup .row button{
  flex:1;
}
.leaflet-tooltip.pump-f-label{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #000 !important;
  font-weight: 900;
  font-size: 14px;        /* gör F större/mindre */
  padding: 0 !important;
  margin: 0 !important;
}

.leaflet-tooltip.pump-f-label:before{
  display: none !important; /* tar bort “pilen” */
}
.pump-f-label {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #000 !important;
  font-weight: 900;
  line-height: 1;
  padding: 0 !important;
  margin: 0 !important;
  text-align: center;
}
.pump-f-label::before {
  display: none !important;
}
/* NYTT: GPS-knapp */
.gps-btn{
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 9999;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  font-weight: 800;
  cursor: pointer;
  opacity: 0.9;
}
.gps-btn:hover{ opacity: 1; }
.gps-btn.active{
  background: var(--accent-blue);
  border-color: var(--accent-blue);
}

/* VIKTIGT: Fullscreen ska alltid ge kartan full höjd (även på mobil där du annars har #map { height: 400px }) */
.map-fullscreen #map{
  height: 100vh !important;
  flex-grow: 1 !important;
}

/* Förhindra att sidan scrollar när fullscreen är aktiv */
body.no-scroll{
  height: 100vh !important;
  overflow: hidden !important;
}
/* GPS-ikon: "arbetare" */
.gps-worker-icon{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #ffffff;
  border: 2px solid #111;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  user-select: none;
}

.gps-worker-icon span{
  font-size: 18px;  /* ändra storlek på figuren */
  line-height: 1;
}
/* GPS-knapp som overlay i fullscreen */
#map-view.map-fullscreen #btn-gps {
  position: fixed !important;
  right: 12px !important;
  bottom: 12px !important;
  z-index: 10050 !important; /* över Leaflet-kontroller */
}

/* iPhone safe-area (så den inte hamnar bakom “home bar”) */
@supports (padding: max(0px)) {
  #map-view.map-fullscreen #btn-gps {
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
  }
}
/* Göm GPS-knappen på desktop/laptop */
@media (min-width: 801px) {
  #btn-gps,
  .gps-btn {
    display: none !important;
  }
}
/* FULLSCREEN: tvinga kartvyn att verkligen bli 100% av viewport */
#map-view.map-fullscreen{
  position: fixed !important;
  inset: 0 !important;          /* ersätter top/left/width/height */
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;    /* bättre på mobil */
  padding: 0 !important;        /* tar bort ev. padding från .view-section */
  margin: 0 !important;
  border-radius: 0 !important;
  z-index: 99999 !important;
  background: #000;
}

/* Själva Leaflet-diven ska fylla allt */
#map-view.map-fullscreen #map{
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
}

/* Om du har map-controls under kartan: göm dem i fullscreen (annars stjäl de höjd) */
#map-view.map-fullscreen .map-controls{
  display: none !important;
}

/* Stoppa scroll när fullscreen är aktiv (du har redan no-scroll, men här är den hård) */
body.no-scroll{
  height: 100vh !important;
  overflow: hidden !important;
}
/* Fullscreen: gör lagerpanelen scrollbar och säker ovanpå */
#map-view.map-fullscreen .leaflet-control-layers{
  z-index: 10060 !important;
}

#map-view.map-fullscreen .leaflet-control-layers-expanded{
  max-height: 60vh !important;
  overflow-y: auto !important;
}
/* --- DEJOUR / KALENDER STYLING --- */
.hidden { display: none !important; }

/* Hela vyn */
#dejour-view {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background-color: #1a1a1a; /* Mörk bakgrund */
    color: #e5e5e5;
    z-index: 2000; /* Ovanpå kartan */
    display: flex; flex-direction: column;
}

/* Verktygsfältet */
.dejour-toolbar {
    height: 55px;
    background-color: #262626;
    border-bottom: 1px solid #404040;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 15px;
}

/* Snygga Knappar (Grå/Svarta, inte konstiga färger) */
.dj-btn {
    background-color: #333; color: #fff;
    border: 1px solid #555;
    padding: 6px 12px;
    border-radius: 4px; cursor: pointer;
    font-size: 14px; font-weight: 500;
    transition: background 0.2s;
}
.dj-btn:hover { background-color: #444; }

/* Stäng-knappen (Rödaktig men diskret) */
.dj-btn-close { background-color: #7f1d1d; border-color: #991b1b; }
.dj-btn-close:hover { background-color: #991b1b; }

/* Layouten (Sidebar + Kalender) */
.dejour-container {
    flex: 1; display: flex; overflow: hidden; position: relative;
}

/* Vänster spalt: Namn */
.dejour-sidebar {
    width: 200px; flex-shrink: 0;
    background-color: #262626;
    border-right: 1px solid #404040;
    margin-top: 50px; /* Plats för datum-headern */
    overflow: hidden; /* Scrollas via JS */
}
.emp-name {
    height: 40px; line-height: 40px;
    padding-left: 15px; border-bottom: 1px solid #333;
    font-size: 14px; white-space: nowrap; overflow: hidden;
}

/* Höger del: Tidslinje */
.dejour-timeline {
    flex: 1; overflow: auto; position: relative;
    background-color: #1a1a1a;
}

/* Datum Header */
.dejour-header {
    height: 50px; display: flex; position: sticky; top: 0; left: 0;
    background-color: #262626; z-index: 10;
    border-bottom: 1px solid #404040;
    width: max-content;
}
.d-cell {
    height: 100%; border-right: 1px solid #333;
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    font-size: 12px; color: #aaa; box-sizing: border-box;
}
.d-cell.weekend { background: rgba(255, 255, 255, 0.03); color: #f87171; }
.d-cell.today { background: #2563eb; color: #fff; }

/* Grid (Rutorna) */
.dejour-grid { width: max-content; }
.d-row { height: 40px; display: flex; border-bottom: 1px solid #333; }
.g-cell {
    height: 100%; border-right: 1px solid #333;
    cursor: pointer;
}
.g-cell:hover { background: rgba(255,255,255,0.1); }
.g-cell.weekend { background: rgba(255,255,255,0.02); }

/* Färger för markerad dag */
.g-cell.active { background-color: #10b981 !important; } /* GRÖN */
.g-cell.drag-add { background-color: #34d399; }
.g-cell.drag-remove { background-color: #ef4444; }

/* --- TVINGANDE CSS FÖR ATT DET SKA SYNAS --- */
#dejour-view {
    position: fixed; /* Tvingar den att ligga överst */
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #1a1a1a;
    z-index: 99999;
    display: flex; flex-direction: column;
    color: #fff;
}
.hidden { display: none !important; }

/* Toolbar */
.dejour-toolbar {
    height: 60px; background: #2d2d2d; border-bottom: 1px solid #555;
    display: flex; align-items: center; justify-content: space-between; padding: 0 20px;
}
.dj-btn { padding: 10px 20px; background: #444; color: white; border: 1px solid #666; cursor: pointer; font-weight: bold; }
.dj-btn:hover { background: #666; }
.dj-close { background: #a00; border-color: #c00; }

/* Huvudcontainer */
.dejour-container {
    flex: 1; display: flex; overflow: hidden; /* Viktigt för scroll */
}

/* VÄNSTER SPALT (NAMN) */
.dejour-sidebar {
    width: 200px; flex-shrink: 0;
    background: #222; border-right: 2px solid #555;
    margin-top: 50px; /* Plats för datum-raden */
    overflow: hidden; 
}
.emp-name {
    height: 40px; line-height: 40px;
    border-bottom: 1px solid #444;
    padding-left: 15px; font-size: 14px; white-space: nowrap;
    background: #2a2a2a; color: #ddd;
}

/* HÖGER SPALT (RUTNÄT) */
.dejour-timeline {
    flex: 1; overflow: auto; position: relative; background: #111;
}
.dejour-header {
    height: 50px; display: flex; position: sticky; top: 0; left: 0; z-index: 10;
    background: #333; border-bottom: 1px solid #555; width: max-content;
}
.date-cell {
    width: 40px; height: 50px; border-right: 1px solid #444;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-size: 11px; color: #aaa;
}
.date-cell.weekend { background: rgba(255,100,100,0.1); color: #ff8888; }

/* RUTORNA */
.dejour-grid { width: max-content; }
.d-row { height: 40px; display: flex; border-bottom: 1px solid #333; }
.g-cell {
    width: 40px; height: 100%; border-right: 1px solid #333;
    cursor: pointer;
}
.g-cell:hover { background: #333; }
.g-cell.weekend { background: rgba(255,255,255,0.03); }

/* FÄRGER */
.g-cell.active { background-color: #00cc66 !important; } /* GRÖN */
.g-cell.drag-add { background-color: #66ff99; }
.g-cell.drag-remove { background-color: #ff6666; }

/* Lägg till detta sist i style.css */

/* När man INTE redigerar: Ingen pekare, gråare rutor */
.dejour-container:not(.editing) .g-cell {
    cursor: default !important;
}
.dejour-container:not(.editing) .g-cell:hover {
    background-color: transparent !important; /* Ingen hover-effekt när låst */
}

/* När man REDIGERAR: Tydlig ram runt hela kalendern så man ser att det är skarpt läge */
.dejour-container.editing {
    outline: 2px solid #d97706;
}
/* Markerar dagens kolumn med svaga linjer alltid */
/* =========================================================
   DEJOUR – DAGENS DATUM / DAGENS KOLUMN
   ========================================================= */

/* Viktigt: låt glow synas utanför själva datumrutan */
.dejour-header,
#dj-header {
    overflow: visible !important;
}

.date-cell,
.d-cell {
    position: relative;
    overflow: visible !important;
}

/* Själva dagens datum i headern */
#dj-today,
.date-cell.today,
.d-cell.today {
    position: relative;
    z-index: 60;
    background: #facc15 !important;
    color: #111827 !important;
    font-weight: 900;
    border: 2px solid #fff7ae !important;
    border-radius: 8px;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.45),
        0 0 8px rgba(250, 204, 21, 0.95),
        0 0 18px rgba(250, 204, 21, 0.65);
    animation: todayPulse 1.8s ease-in-out infinite;
}

/* Extra glow-ring runt dagens datum */
#dj-today::before,
.date-cell.today::before,
.d-cell.today::before {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 10px;
    pointer-events: none;
    box-shadow:
        0 0 0 2px rgba(250, 204, 21, 0.85),
        0 0 14px rgba(250, 204, 21, 0.65),
        0 0 28px rgba(250, 204, 21, 0.35);
    animation: todayRingPulse 1.8s ease-in-out infinite;
}

/* Hela dagens kolumn i schemat */
.today-col {
    position: relative;
    background: rgba(250, 204, 21, 0.16) !important;
    border-left: 2px solid rgba(250, 204, 21, 0.55) !important;
    border-right: 2px solid rgba(250, 204, 21, 0.55) !important;
    box-shadow:
        inset 0 0 10px rgba(250, 204, 21, 0.10),
        inset 0 0 20px rgba(250, 204, 21, 0.06);
}

.today-col::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow:
        inset 0 0 12px rgba(250, 204, 21, 0.14),
        inset 0 0 24px rgba(250, 204, 21, 0.08);
}

/* Om idag också råkar vara helg/röd dag ska dagens markering ändå vinna */
.date-cell.today.weekend,
.date-cell.today.holiday,
.d-cell.today.weekend,
.d-cell.today.holiday {
    background: #facc15 !important;
    color: #111827 !important;
}

/* Extra klass som läggs på när man scrollar till idag */
.glow-effect,
.flash-effect {
    animation: todayFlash 1.2s ease-out 1;
}

/* Animationer */
@keyframes todayPulse {
    0% {
        transform: scale(1);
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,0.35),
            0 0 8px rgba(250, 204, 21, 0.80),
            0 0 18px rgba(250, 204, 21, 0.45);
    }
    50% {
        transform: scale(1.04);
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,0.55),
            0 0 14px rgba(250, 204, 21, 1),
            0 0 28px rgba(250, 204, 21, 0.75);
    }
    100% {
        transform: scale(1);
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,0.35),
            0 0 8px rgba(250, 204, 21, 0.80),
            0 0 18px rgba(250, 204, 21, 0.45);
    }
}

@keyframes todayRingPulse {
    0% {
        opacity: 0.75;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.06);
    }
    100% {
        opacity: 0.75;
        transform: scale(1);
    }
}

@keyframes todayFlash {
    0% {
        box-shadow:
            0 0 0 rgba(250, 204, 21, 0),
            0 0 0 rgba(250, 204, 21, 0);
    }
    35% {
        box-shadow:
            0 0 16px rgba(250, 204, 21, 1),
            0 0 34px rgba(250, 204, 21, 0.85);
    }
    100% {
        box-shadow:
            0 0 8px rgba(250, 204, 21, 0.85),
            0 0 18px rgba(250, 204, 21, 0.55);
    }
}

/* Mobil – starkare markering så den verkligen syns */
@media (max-width: 800px) {
    #dj-today,
    .date-cell.today,
    .d-cell.today {
        border: 2px solid #fff7ae !important;
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,0.55),
            0 0 12px rgba(250, 204, 21, 1),
            0 0 24px rgba(250, 204, 21, 0.85);
    }

    #dj-today::before,
    .date-cell.today::before,
    .d-cell.today::before {
        inset: -5px;
        box-shadow:
            0 0 0 2px rgba(250, 204, 21, 1),
            0 0 18px rgba(250, 204, 21, 0.75),
            0 0 30px rgba(250, 204, 21, 0.45);
    }

    .today-col {
        background: rgba(250, 204, 21, 0.22) !important;
        border-left: 2px solid rgba(250, 204, 21, 0.75) !important;
        border-right: 2px solid rgba(250, 204, 21, 0.75) !important;
    }
}
/* --- Snygga Gradients för perioder (Både start och slut fade) --- */

/* Basen för en aktiv ruta (mitten) - Helt grön */
.g-cell.active {
    background: #10b981; 
}

/* Viktigt: så padding inte ändrar kolumnbredd */
.g-cell { box-sizing: border-box; }

/* STARTEN: Fade IN (Genomskinlig -> Grön) */
.g-cell.p-start {
    background: linear-gradient(to right, rgba(16, 185, 129, 0.2) 0%, #10b981 100%) !important;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;

    /* INGEN margin (det var den som flyttade stapeln) */
    margin-left: 0 !important;

    /* “Glipa” inuti cellen istället */
    padding-left: 2px;
    background-clip: content-box;
}

/* MITTEN: Helt grön */
.g-cell.p-mid {
    background: #10b981 !important;
    border-radius: 0 !important;

    /* Ingen padding/margin i mitten */
    margin: 0 !important;
    padding: 0 !important;
    background-clip: border-box;
}

/* SLUTET: Fade UT (Grön -> Genomskinlig) */
.g-cell.p-end {
    background: linear-gradient(to right, #10b981 0%, rgba(16, 185, 129, 0.2) 100%) !important;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;

    /* INGEN margin */
    margin-right: 0 !important;

    /* “Glipa” inuti cellen istället */
    padding-right: 2px;
    background-clip: content-box;
}

/* SPECIAL: Om det bara är EN dag (både start och slut) */
.g-cell.p-start.p-end {
    background: linear-gradient(to right, rgba(16, 185, 129, 0.2) 0%, #10b981 50%, rgba(16, 185, 129, 0.2) 100%) !important;
    border-radius: 6px;

    /* INGEN margin */
    margin: 0 !important;

    /* Glipa inuti cellen */
    padding: 0 2px;
    background-clip: content-box;
}
/* Röda dagar (Dejour) - stark röd */
.date-cell.holiday,
.d-cell.holiday {
    background: rgba(220, 38, 38, 0.85) !important; /* stark röd */
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.25);
}

/* Röd dag-kolumn: syns bara på "tomma" rutor.
   Prioritet: active/period/drag ska alltid vinna. */
.g-cell.holiday-col:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
    background: rgba(220, 38, 38, 0.25) !important;
}


/* Om både weekend och holiday: ännu tydligare */
.date-cell.weekend.holiday,
.d-cell.weekend.holiday {
    background: rgba(185, 28, 28, 0.90) !important;
}
/* Weekend (lör/sön) - mycket rödare (header) */
.date-cell.weekend,
.d-cell.weekend {
    background: rgba(220, 38, 38, 0.45) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Weekend-kolumn: syns bara på tomma rutor */
.g-cell.weekend:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
    background: rgba(220, 38, 38, 0.12) !important;
}

/* Weekend (lör/sön) i rutnätet – syns bara på tomma rutor.
   Prioritet: active/period/drag ska alltid vinna. */
.g-cell.weekend:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
    background: rgba(220, 38, 38, 0.12) !important;
}
/* ===============================
   DEJOUR – ENHETLIG RÖD (SIST)
   Samma röd för: lör/sön, helgdagar, och egna röda dagar.
   Grönt (active/period) vinner alltid.
   =============================== */

/* HEADER: weekend + holiday + egna röda (manual) */
.dejour-header .date-cell.weekend,
.dejour-header .date-cell.holiday,
.dejour-header .date-cell.manual-red,
.dejour-header .d-cell.weekend,
.dejour-header .d-cell.holiday,
.dejour-header .d-cell.manual-red {
  background: var(--dejour-red) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.22);
}

/* KOLUMN: röd ton bara på TOMMA rutor */
.dejour-grid .g-cell.weekend:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end),
.dejour-grid .g-cell.holiday-col:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end),
.dejour-grid .g-cell.manual-red-col:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
  background: var(--dejour-red-col) !important;
}

/* GRÖNT VINNER ALLTID */
.dejour-grid .g-cell.active,
.dejour-grid .g-cell.p-mid,
.dejour-grid .g-cell.weekend.active,
.dejour-grid .g-cell.weekend.p-mid,
.dejour-grid .g-cell.holiday-col.active,
.dejour-grid .g-cell.holiday-col.p-mid,
.dejour-grid .g-cell.manual-red-col.active,
.dejour-grid .g-cell.manual-red-col.p-mid {
  background: #10b981 !important;
}

.dejour-grid .g-cell.p-start,
.dejour-grid .g-cell.weekend.p-start,
.dejour-grid .g-cell.holiday-col.p-start,
.dejour-grid .g-cell.manual-red-col.p-start {
  background: linear-gradient(to right, rgba(16, 185, 129, 0.2) 0%, #10b981 100%) !important;
}

.dejour-grid .g-cell.p-end,
.dejour-grid .g-cell.weekend.p-end,
.dejour-grid .g-cell.holiday-col.p-end,
.dejour-grid .g-cell.manual-red-col.p-end {
  background: linear-gradient(to right, #10b981 0%, rgba(16, 185, 129, 0.2) 100%) !important;
}

.dejour-grid .g-cell.p-start.p-end,
.dejour-grid .g-cell.weekend.p-start.p-end,
.dejour-grid .g-cell.holiday-col.p-start.p-end,
.dejour-grid .g-cell.manual-red-col.p-start.p-end {
  background: linear-gradient(to right, rgba(16, 185, 129, 0.2) 0%, #10b981 50%, rgba(16, 185, 129, 0.2) 100%) !important;
}
/* --- Dejour Events (Julfest etc) --- */
.dejour-event-label {
    display: block;
    font-size: 9px;
    font-weight: bold;
    background-color: #f59e0b; /* Amber/Gul färg */
    color: #000;
    padding: 1px 3px;
    border-radius: 3px;
    margin-top: 2px;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 95%;
    box-shadow: 0 1px 2px rgba(0,0,0,0.3);
    z-index: 5;
    cursor: pointer;
}

/* Gör datumrutan lite högre för att rymma texten */
.dejour-header .date-cell {
    height: 55px; 
    justify-content: flex-start; /* Börja uppifrån */
    padding-top: 4px;
    position: relative;
    user-select: none;
    transition: background-color 0.2s, transform 0.1s;
}

/* Visuell effekt när man håller inne (Long press) */
.date-cell.long-press-active {
    background-color: #444 !important;
    transform: scale(0.95);
    border: 1px solid #f59e0b;
}

.dejour-header .date-cell b {
    display: block;
    line-height: 1;
    margin-bottom: 2px;
}
/* --- Dejour Events --- */

/* Text-etiketten i headern */
.dejour-event-label {
    display: block;
    font-size: 9px;
    font-weight: bold;
    background-color: #f59e0b; /* Amber */
    color: #000;
    padding: 1px 3px;
    border-radius: 3px;
    margin-top: 2px;
    line-height: 1.1;
    
    /* Klipp texten snyggt om den är lång */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 95%;
    
    box-shadow: 0 1px 2px rgba(0,0,0,0.3);
    pointer-events: none; /* Klick går igenom till datumcellen */
}

/* Hela kolumnen blir gulaktig */
.g-cell.event-col:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
    background: rgba(245, 158, 11, 0.15) !important; /* Svag bärnsten */
    border-right: 1px solid rgba(245, 158, 11, 0.1);
}

/* Om det BÅDE är helg och event, blanda färgerna lite */
.g-cell.weekend.event-col:not(.active) {
    background: rgba(245, 158, 11, 0.2) !important;
}

/* Datum-rutan får en liten gul ram i botten */
.date-cell.has-event {
    border-bottom: 3px solid #f59e0b !important;
}
/* --- MODERN EVENT POPUP --- */

/* Själva bakgrunden som täcker skärmen (backdrop) */
#event-popup.modal {
    backdrop-filter: blur(5px); /* "Frosted glass" effekt */
    background-color: rgba(0, 0, 0, 0.7); /* Lite mörkare bakgrund */
    transition: opacity 0.2s ease;
}

/* Den inre moderna rutan */
.modern-modal-content {
    background: linear-gradient(to bottom right, #252b38, #1a1f2b); /* Subtil mörk gradient */
    border: 1px solid rgba(255, 255, 255, 0.08); /* Tunn ljus ram */
    border-radius: 16px; /* Mjuka, runda hörn */
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); /* Djup skugga */
    padding: 0; /* Padding hanteras av inre element */
    max-width: 450px; /* Lite bredare för bättre läsbarhet */
    width: 92%;
    text-align: left;
    position: relative;
    overflow: hidden; /* Viktigt för accent-linjen */
}

/* En snygg accent-linje högst upp */
.modern-modal-content::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(to right, #f59e0b, #d97706); /* Amber/Orange gradient */
}

/* Header-delen med datum och stäng-knapp */
.event-popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 24px 16px 24px;
}

/* Datumet */
#event-popup-date {
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #f59e0b; /* Amber färg */
    margin: 0;
    text-transform: capitalize;
}

/* Modern "X" stäng-knapp */
.modern-close-btn {
    background: rgba(255, 255, 255, 0.05);
    border: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 1.8rem;
    line-height: 1;
    width: 40px; height: 40px;
    border-radius: 50%; /* Cirkelformad */
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    padding-bottom: 4px; /* Finjustering av kryssets position */
}
.modern-close-btn:hover {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    transform: rotate(90deg); /* Snurrar lite vid hover */
}

/* Själva textinnehållet */
.event-popup-body {
    padding: 0 24px 24px 24px;
}

#event-popup-text {
    font-size: 1.15rem;
    line-height: 1.6;
    color: #e5e7eb; /* Ljusgrå text, lättläst mot mörk bakgrund */
    background: transparent; /* Ingen ful grå ruta längre! */
    padding: 0;
    margin: 0;
    white-space: pre-wrap; /* Bevara radbrytningar */
    word-break: break-word;
}

/* Footern med den stora stängknappen */
.event-popup-footer {
    padding: 16px 24px 24px 24px;
    background: rgba(0,0,0,0.1); /* Något mörkare botten */
    border-top: 1px solid rgba(255,255,255,0.05);
}

/* Styla om sekundärknappen i footern att bli mer modern */
.event-popup-footer .btn-secondary {
    width: 100%;
    padding: 12px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.2s;
}
.event-popup-footer .btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.2);
}
/* --- Dejour Typer --- */

/* Semester (T.ex. Blå/Turkos) */
.g-cell.type-vacation {
    background-color: #06b6d4 !important; /* Cyan */
    border-color: #0891b2 !important;
}

/* Annat (Lila) */
.g-cell.type-other {
    background-color: #9333ea !important; /* Lila */
    border-color: #7e22ce !important;
}

/* Ikonen/markeringen inuti cellen om den har text */
.g-cell.has-comment::after {
    content: '...';
    position: absolute;
    bottom: 0;
    right: 2px;
    font-size: 8px;
    color: rgba(255,255,255,0.8);
    line-height: 8px;
}
/* ========================================== */
/* FÄRG-ÖVERSKRIVNINGAR (Måste ligga sist)    */
/* ========================================== */

/* SEMESTER (Blå/Cyan) - Överskriv grönt */
.dejour-grid .g-cell.active.type-vacation,
.dejour-grid .g-cell.drag-add.type-vacation,
.dejour-grid .g-cell.p-mid.type-vacation,
.dejour-grid .g-cell.p-start.type-vacation,
.dejour-grid .g-cell.p-end.type-vacation {
    background-color: #06b6d4 !important; /* Cyan */
    border-color: #0891b2 !important;
    z-index: 2; /* Se till att den ligger över */
}

/* ANNAT (Lila) - Överskriv grönt */
.dejour-grid .g-cell.active.type-other,
.dejour-grid .g-cell.drag-add.type-other,
.dejour-grid .g-cell.p-mid.type-other,
.dejour-grid .g-cell.p-start.type-other,
.dejour-grid .g-cell.p-end.type-other {
    background-color: #9333ea !important; /* Lila */
    border-color: #7e22ce !important;
    z-index: 2;
}

/* Fix för helger så de inte blir mörkgröna om de är semester/annat */
.dejour-grid .g-cell.weekend.active.type-vacation { background-color: #0891b2 !important; }
.dejour-grid .g-cell.weekend.active.type-other    { background-color: #7e22ce !important; }

/* Indikator för kommentar (...) */
.g-cell.has-comment::after {
    content: '...';
    position: absolute;
    bottom: 0px;
    right: 3px;
    font-size: 10px;
    font-weight: bold;
    color: rgba(255,255,255,0.9);
    line-height: 8px;
}
/* ========================================================= */
/* TA BORT ALL FADE/GRADIENT PÅ SEMESTER & ANNAT             */
/* ========================================================= */

/* 1. SEMESTER (Blå) - Tvinga solid färg, ta bort gradient */
.dejour-grid .g-cell.type-vacation.p-start,
.dejour-grid .g-cell.type-vacation.p-end,
.dejour-grid .g-cell.type-vacation.p-mid,
.dejour-grid .g-cell.type-vacation.active,
.dejour-grid .g-cell.type-vacation.drag-add {
    background-color: #06b6d4 !important; /* Solid färg */
    background-image: none !important;    /* VIKTIGT: Tar bort faden/gradienten */
    border-color: #0891b2 !important;
    opacity: 1 !important;
}

/* 2. ANNAT (Lila) - Tvinga solid färg, ta bort gradient */
.dejour-grid .g-cell.type-other.p-start,
.dejour-grid .g-cell.type-other.p-end,
.dejour-grid .g-cell.type-other.p-mid,
.dejour-grid .g-cell.type-other.active,
.dejour-grid .g-cell.type-other.drag-add {
    background-color: #9333ea !important; /* Solid färg */
    background-image: none !important;    /* VIKTIGT: Tar bort faden/gradienten */
    border-color: #7e22ce !important;
    opacity: 1 !important;
}

/* Fix för helger så de inte blir mörkgröna i bakgrunden */
.dejour-grid .g-cell.weekend.type-vacation { background-color: #06b6d4 !important; }
.dejour-grid .g-cell.weekend.type-other    { background-color: #9333ea !important; }

/* Behåll indikator (...) */
.g-cell.has-comment::after {
    content: '...';
    position: absolute;
    bottom: 0px;
    right: 3px;
    font-size: 10px;
    font-weight: bold;
    color: rgba(255,255,255,0.9);
    line-height: 8px;
}
/* 2. ANNAT (Nu RÖD för att matcha lediga dagar) */
.dejour-grid .g-cell.type-other.p-start,
.dejour-grid .g-cell.type-other.p-end,
.dejour-grid .g-cell.type-other.p-mid,
.dejour-grid .g-cell.type-other.active,
.dejour-grid .g-cell.type-other.drag-add {
    background-color: #ef4444 !important; /* Röd färg */
    background-image: none !important;
    border-color: #dc2626 !important;     /* Mörkare röd kant */
    opacity: 1 !important;
    z-index: 2;
}

/* Startrutan måste ligga överst för att texten ska synas */
.dejour-grid .g-cell.type-other.p-start {
    overflow: visible !important; 
    z-index: 100 !important; 
    position: relative;
}

/* Fix för helger */
.dejour-grid .g-cell.weekend.type-other { background-color: #ef4444 !important; }

/* ================================================================
   MOBILANPASSNING FÖR DEJOUR (Läggs sist i style.css)
   ================================================================ */
/* ================================================================
   MOBILANPASSNING - KORRIGERAD VERSION
   ================================================================ */
@media (max-width: 800px) {

    /* 1. HUVUDVYN: Fixad layout och synlighet */
    #dejour-view {
        position: fixed !important;
        top: 0; left: 0; right: 0; bottom: 0;
        width: 100vw !important;
        height: 100dvh !important;       /* Anpassar sig till mobila webbläsare */
        z-index: 2000 !important;        /* Högt, men UNDER popup-modaler (som har 10000) */
        background-color: #1a1a1a !important;
        display: flex;                   /* Flexbox, men utan !important så .hidden fungerar */
        flex-direction: column;
        overflow: hidden !important;
    }
    
    /* Garantera att den döljs när klassen .hidden finns */
    #dejour-view.hidden {
        display: none !important;
    }

    /* 2. CONTAINER: Måste fylla utrymmet */
    .dejour-container {
        flex: 1 1 auto !important;       /* Ta all plats som blir över */
        display: flex !important;
        flex-direction: row !important;  /* Sida vid sida */
        width: 100% !important;
        height: 100% !important;
        overflow: hidden !important;
        position: relative !important;
    }

    /* 3. VÄNSTERSPALTEN (Namn): Garanterad bredd och färg */
    /* 3. VÄNSTERSPALTEN (Namn): Nu med scroll! */
    .dejour-sidebar {
        width: 110px !important;
        min-width: 110px !important;
        margin-top: 40px !important;
        
        /* ÄNDRING HÄR: Tillåt scroll */
        overflow-y: auto !important;     
        -webkit-overflow-scrolling: touch; /* Mjuk scroll på iPhone */
        overscroll-behavior: contain;
        
        background-color: #262626;
        border-right: 1px solid #444;
        z-index: 10;

        /* Dölj scrollbaren för Chrome/Safari/Opera */
        scrollbar-width: none;  /* Firefox */
        -ms-overflow-style: none;  /* IE/Edge */
    }
    
    /* Dölj scrollbaren specifikt för Webkit (Chrome/Safari) */
    .dejour-sidebar::-webkit-scrollbar {
        display: none;
    }
    .emp-name {
        height: 35px !important;
        line-height: 35px !important;
        font-size: 11px !important;
        padding-left: 5px !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        color: #e5e5e5;
        border-bottom: 1px solid #333;
    }

    /* 4. HÖGERSPALTEN (Tidslinje): Scrollbar */
    .dejour-timeline {
        flex: 1 !important;              /* Fyll resten av bredden */
        overflow: auto !important;       /* Scrollbar */
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;    /* Förhindra att bakgrunden scrollar */
    }

    /* Höjder för att allt ska linjera perfekt */
    .dejour-header, .date-cell, .d-cell {
        height: 40px !important;
    }
    
    .d-row, .g-cell {
        height: 35px !important;
    }

    /* 5. VERKTYGSFÄLT (Toolbar) */
    .dejour-toolbar {
        flex-shrink: 0;
        min-height: 50px;
        height: auto;
        padding: 5px;
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        background-color: #2d2d2d;
        z-index: 20;
    }
    
    .dejour-toolbar h2 { display: none; } /* Dölj rubrik på mobil */
    
    .dj-btn {
        padding: 6px 10px;
        font-size: 11px;
        flex-grow: 1;
        height: 36px;
        white-space: nowrap;
    }
}
/* ================================================================
   TYDLIGARE HÄNDELSER (JUL, EVENT ETC.)
   ================================================================ */

/* 1. Gör hela kolumnen mycket starkare gul (från 15% till 40% synlighet) */
.g-cell.event-col:not(.active):not(.drag-add):not(.drag-remove):not(.p-start):not(.p-mid):not(.p-end) {
    background: rgba(245, 158, 11, 0.40) !important; /* Mycket tydligare gul */
    border-right: 1px solid rgba(245, 158, 11, 0.4) !important;
}

/* Om det är helg + event -> gör den ännu lite starkare/mörkare gul */
.g-cell.weekend.event-col:not(.active) {
    background: rgba(245, 158, 11, 0.50) !important;
}

/* 2. Gör den lilla etiketten i toppen ("Julfest") poppigare */
.dejour-event-label {
    background-color: #fbbf24 !important; /* Ljusare/starkare gul */
    color: #000 !important;
    font-weight: 900 !important; /* Extra fet text */
    border: 1px solid #b45309;   /* Mörk kant för kontrast */
    box-shadow: 0 0 8px rgba(251, 191, 36, 0.6); /* Gul "glow" runt texten */
    z-index: 20;
}

/* 3. Tydligare markering på själva datum-rutan */
.dejour-header .date-cell.has-event {
    background: rgba(245, 158, 11, 0.25); /* Lätt gul bakgrund i headern */
    border-bottom: 4px solid #fbbf24 !important; /* Tjockare och ljusare linje */
    color: #fbbf24; /* Gör datumtexten gul också */
}
/* ================================================================
   KOMPAKT LAPTOP-VY (Skärmar större än 800px)
   ================================================================ */
@media (min-width: 801px) {
    
    /* 1. Krymp sidomenyn */
    .dejour-sidebar {
        width: 150px !important; /* Smalare än förut (var 200px) */
        margin-top: 35px !important; /* Matcha nya header-höjden */
    }

    /* 2. Krymp höjden på ALLT (Rader + Header) */
    .dejour-header, 
    .date-cell, 
    .d-cell,
    .d-row, 
    .g-cell,
    .emp-name {
        height: 32px !important; /* Minskat från ca 40-50px */
        line-height: 32px !important;
        font-size: 12px !important; /* Lite mindre text */
    }
    
    /* Justera textposition i datum-headern */
    .date-cell, .d-cell {
        padding-top: 2px !important;
        line-height: 1.2 !important; /* För datum + veckodag på två rader */
        justify-content: center !important;
    }

    /* 3. Krymp verktygsfältet */
    .dejour-toolbar {
        height: 45px !important;
        padding: 0 10px !important;
    }
    
    .dj-btn {
        padding: 4px 12px !important;
        font-size: 12px !important;
        height: 30px !important;
    }

    /* 4. Krymp event-labels (De gula "Julfest"-lapparna) */
    .dejour-event-label {
        font-size: 9px !important;
        margin-top: 0 !important;
        padding: 0 2px !important;
        line-height: 10px !important;
    }
    
    /* Gör datumrutan lite högre om det finns en händelse, så texten ryms */
    .dejour-header .date-cell.has-event {
        height: 45px !important; /* Låt den sticka ner lite */
        z-index: 20;
        border-bottom-width: 3px !important;
    }
    
    .upload-progress-wrap {
    margin-top: 10px;
    width: 100%;
}

.upload-progress-wrap.hidden {
    display: none;
}

.upload-progress-bar {
    width: 100%;
    height: 14px;
    background: #2a3140;
    border: 1px solid #3c465c;
    border-radius: 999px;
    overflow: hidden;
}

.upload-progress-bar-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #3b82f6, #60a5fa);
    transition: width 0.15s linear;
}

.upload-progress-text {
    margin-top: 6px;
    font-size: 12px;
    color: #cbd5e1;
}
}
.photo-modal-content {
    max-width: 96vw;
    max-height: 96vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
}

.photo-modal-image-wrap {
    width: 92vw;
    height: 68vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 1;
}

.photo-modal-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transform-origin: center center;
    transition: transform 0.2s ease;
    z-index: 1;
}

/* När bilden är vriden 90/270 grader */
.photo-modal-img.rotated-sideways {
    max-width: 68vh;
    max-height: 92vw;
}

.photo-modal-rotate-tools,
.photo-modal-counter,
.photo-modal-nav,
#photo-modal-counter {
    position: relative;
    z-index: 10;
    flex-shrink: 0;
}

.photo-modal-rotate-tools {
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
    margin: 6px 0;
}
.emp-name.dragging-employee {
    opacity: 0.4;
}

.emp-name.drag-over-employee {
    background: rgba(59, 130, 246, 0.35);
    outline: 1px solid rgba(147, 197, 253, 0.8);
}

.dejour-container.editing .emp-name {
    user-select: none;
}
/* Tydligare semesterblock i dejourlistan */
.g-cell.type-vacation.active {
    background: #06b6d4 !important;
    border-top: 2px solid rgba(255, 255, 255, 0.85) !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.85) !important;
    box-shadow: inset 0 0 0 1px rgba(8, 47, 73, 0.9);
}

/* Start på semesterperiod */
.g-cell.type-vacation.active.p-start {
    border-left: 3px solid rgba(255, 255, 255, 0.95) !important;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

/* Slut på semesterperiod */
.g-cell.type-vacation.active.p-end {
    border-right: 3px solid rgba(255, 255, 255, 0.95) !important;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
}

/* Gör semester lite lägre så den inte visuellt blöder över rader */
.g-cell.type-vacation.active::before,
.g-cell.type-vacation.active::after {
    pointer-events: none;
}

/* Om din gamla CSS använder stark box-shadow/gradient på semester,
   neutralisera den här */
.g-cell.type-vacation.active {
    overflow: hidden;
    position: relative;
}
.d-row {
    overflow: hidden;
}

.g-cell {
    box-sizing: border-box;
}
.equipment-fields-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.equipment-field-row {
    display: grid;
    grid-template-columns: 1fr 1.4fr auto;
    gap: 10px;
    align-items: center;
}

.equipment-field-row input {
    margin: 0;
}

.equipment-field-remove {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.12);
    color: #ff6b6b;
    border-radius: 10px;
    padding: 8px 10px;
    cursor: pointer;
}

.equipment-field-remove:hover {
    background: rgba(239, 68, 68, 0.12);
}

@media (max-width: 700px) {
    .equipment-field-row {
        grid-template-columns: 1fr;
    }

    .equipment-field-remove {
        width: 100%;
    }
}
.filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(255,255,255,0.12);
    color: inherit;
    font-size: 0.72rem;
    font-weight: 800;
}

.filter-btn.active .filter-count {
    background: rgba(255,255,255,0.25);
    color: #fff;
}
.password-modal-content {
    max-width: 460px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 24px 80px rgba(0,0,0,0.65);
}

.password-modal-user {
    margin-top: 6px;
    margin-bottom: 16px;
    color: var(--text-muted);
    font-size: 0.9rem;
}

.password-modal-error {
    min-height: 20px;
    color: #ff6b6b;
    font-size: 0.88rem;
    margin-top: 6px;
    font-weight: 600;
}

#password-modal input[type="password"] {
    width: 100%;
    padding: 10px 12px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: white;
    border-radius: 8px;
    outline: none;
}

#password-modal input[type="password"]:focus {
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 3px rgba(59,130,246,0.22);
}

#password-modal .modal-actions {
    margin-top: 16px;
}

#password-modal .btn-primary,
#password-modal .btn-secondary {
    border-radius: 10px;
    padding: 9px 14px;
}
/* === DEJOUR HJÄLP / INFO === */

.dj-help-btn {
    width: auto;
    min-width: 78px;
    height: 34px;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(250, 204, 21, 0.45);
    background: rgba(250, 204, 21, 0.12);
    color: #fde68a;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.25);
}

.dj-help-btn:hover {
    background: rgba(250, 204, 21, 0.22);
    color: #fff7cc;
}

.dejour-help-modal {
    z-index: 10050 !important;
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.72);
    backdrop-filter: blur(4px);
    padding: 16px;
}

.dejour-help-content {
    width: 760px;
    max-width: 96vw;
    max-height: 90vh;
    overflow: hidden;
    background: linear-gradient(to bottom right, #172033, #111827);
    border: 1px solid rgba(250, 204, 21, 0.28);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(0,0,0,0.72);
    color: #fff;
    display: flex;
    flex-direction: column;
}

.dejour-help-topbar {
    height: 5px;
    background: linear-gradient(to right, #facc15, #f59e0b, #3b82f6);
    flex-shrink: 0;
}

.dejour-help-header {
    padding: 18px 20px 14px;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.dejour-help-header h3 {
    margin: 0;
    color: #fde68a;
    font-size: 1.35rem;
}

.dejour-help-header p {
    margin: 4px 0 0;
    color: #cbd5e1;
    font-size: 0.95rem;
}

.dejour-help-close {
    background: transparent;
    border: 0;
    color: white;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    opacity: 0.8;
    padding: 0 4px;
}

.dejour-help-close:hover {
    opacity: 1;
    color: #fde68a;
}

.dejour-help-body {
    padding: 16px 20px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.dejour-help-card {
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 13px 14px;
}

.dejour-help-card h4 {
    margin: 0 0 7px;
    color: #93c5fd;
    font-size: 0.98rem;
}

.dejour-help-card p,
.dejour-help-card li {
    color: #e5e7eb;
    font-size: 0.88rem;
    line-height: 1.45;
}

.dejour-help-card ul {
    margin: 8px 0 0 18px;
    padding: 0;
}

.dejour-help-card strong {
    color: #fde68a;
}

.dejour-help-footer {
    padding: 14px 20px;
    border-top: 1px solid rgba(255,255,255,0.08);
    background: rgba(0,0,0,0.22);
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 700px) {
    .dejour-help-body {
        grid-template-columns: 1fr;
    }

    .dejour-help-content {
        max-height: 92vh;
    }

    .dj-help-btn {
        min-width: auto;
        padding: 6px 10px;
    }
}
/* === HUVUDHJÄLP / SERVICEPORTAL GUIDE === */

.main-help-btn {
    width: auto;
    min-width: 78px;
    height: 34px;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(59, 130, 246, 0.55);
    background: rgba(59, 130, 246, 0.16);
    color: #bfdbfe;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.25);
}

.main-help-btn:hover {
    background: rgba(59, 130, 246, 0.28);
    color: #ffffff;
}

.main-help-modal {
    z-index: 10060 !important;
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.74);
    backdrop-filter: blur(4px);
    padding: 16px;
}

.main-help-content {
    width: 920px;
    max-width: 96vw;
    max-height: 92vh;
    overflow: hidden;
    background: linear-gradient(to bottom right, #172033, #111827);
    border: 1px solid rgba(59, 130, 246, 0.34);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(0,0,0,0.72);
    color: #fff;
    display: flex;
    flex-direction: column;
}

.main-help-topbar {
    height: 5px;
    background: linear-gradient(to right, #3b82f6, #0ea5e9, #facc15);
    flex-shrink: 0;
}

.main-help-header {
    padding: 18px 20px 14px;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.main-help-header h3 {
    margin: 0;
    color: #bfdbfe;
    font-size: 1.4rem;
}

.main-help-header p {
    margin: 4px 0 0;
    color: #cbd5e1;
    font-size: 0.95rem;
}

.main-help-close {
    background: transparent;
    border: 0;
    color: white;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    opacity: 0.8;
    padding: 0 4px;
}

.main-help-close:hover {
    opacity: 1;
    color: #bfdbfe;
}

.main-help-body {
    padding: 16px 20px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.main-help-section {
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 13px 14px;
}

.main-help-section h4 {
    margin: 0 0 7px;
    color: #93c5fd;
    font-size: 0.98rem;
}

.main-help-section p,
.main-help-section li {
    color: #e5e7eb;
    font-size: 0.88rem;
    line-height: 1.45;
}

.main-help-section ul {
    margin: 8px 0 0 18px;
    padding: 0;
}

.main-help-section strong {
    color: #fde68a;
}

.main-help-footer {
    padding: 14px 20px;
    border-top: 1px solid rgba(255,255,255,0.08);
    background: rgba(0,0,0,0.22);
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 800px) {
    .main-help-body {
        grid-template-columns: 1fr;
    }

    .main-help-content {
        max-height: 94vh;
    }

    .main-help-btn {
        min-width: auto;
        padding: 6px 10px;
    }
}
.service-note-modal-content {
    max-width: 520px;
    border-radius: 16px;
    border: 1px solid rgba(59,130,246,0.28);
    box-shadow: 0 24px 70px rgba(0,0,0,0.65);
}

.service-note-subtitle {
    margin-top: 6px;
    margin-bottom: 14px;
    color: var(--text-muted);
    font-size: 0.92rem;
    line-height: 1.35;
}

#service-note-text {
    min-height: 120px;
    resize: vertical;
    line-height: 1.4;
}

#service-note-text:focus {
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 3px rgba(59,130,246,0.22);
}
/* === LJUST / MÖRKT TEMA === */

body.light-theme {
    --bg-dark: #f3f4f6;
    --bg-panel: #ffffff;
    --bg-card: #e5e7eb;
    --text-main: #111827;
    --text-muted: #4b5563;
    --border-color: #cbd5e1;
    --accent-blue: #2563eb;
    --accent-red: #dc2626;
    --color-amber: #d97706;

    background-color: var(--bg-dark);
    color: var(--text-main);
}

/* Inputs i ljust tema */
body.light-theme input[type="text"],
body.light-theme input[type="password"],
body.light-theme input[type="date"],
body.light-theme textarea,
body.light-theme select {
    background: #ffffff;
    color: #111827;
    border-color: #cbd5e1;
}

/* Placeholder */
body.light-theme input::placeholder,
body.light-theme textarea::placeholder {
    color: #6b7280;
}

/* Knappar */
body.light-theme .btn-secondary {
    background: #e5e7eb;
    color: #111827;
    border-color: #cbd5e1;
}

body.light-theme .btn-secondary:hover {
    background: #d1d5db;
}

/* Station-lista */
body.light-theme .station-item:hover {
    background: #e5e7eb;
}

body.light-theme .station-item.active {
    background: var(--accent-blue);
    color: #ffffff;
}

/* Kort */
body.light-theme .card,
body.light-theme .history-item,
body.light-theme .reminder-item {
    background: #ffffff;
    border: 1px solid #d1d5db;
}

/* Header */
body.light-theme .top-bar,
body.light-theme .sidebar-left,
body.light-theme .sidebar-right {
    background: #ffffff;
    border-color: #d1d5db;
}

/* Content */
body.light-theme .content-area {
    background: #f3f4f6;
}

/* Modaler */
body.light-theme .modal-content {
    background: #ffffff;
    color: #111827;
    border: 1px solid #d1d5db;
}

body.light-theme .modal-content h3,
body.light-theme .modal-content h4 {
    color: #111827;
}

/* Historik */
body.light-theme .history-meta {
    color: #6b7280;
}

/* Tomma S/T cirklar */
body.light-theme .check-icon-empty {
    color: #6b7280;
    border-color: #9ca3af;
}

/* Filterknappar */
body.light-theme .filter-btn {
    background: #e5e7eb;
    color: #111827;
    border-color: #cbd5e1;
}

body.light-theme .filter-btn.active {
    background: var(--accent-blue);
    color: #ffffff;
}

/* Leaflet popup i ljust tema behöver inte vara mörk */
body.light-theme .leaflet-popup-content-wrapper,
body.light-theme .leaflet-popup-tip {
    background: #ffffff !important;
    color: #111827 !important;
}

/* Dejour-vyn ljusare bakgrund */
body.light-theme #dejour-view,
body.light-theme .dejour-container,
body.light-theme .dejour-timeline,
body.light-theme .dejour-sidebar {
    background: #f3f4f6;
    color: #111827;
}

/* Dejour namnkolumn */
body.light-theme .dejour-sidebar div {
    color: #111827;
}

/* Scrollbars lite ljusare */
body.light-theme ::-webkit-scrollbar-track {
    background: #e5e7eb;
}

body.light-theme ::-webkit-scrollbar-thumb {
    background: #9ca3af;
}
.top-actions .btn-secondary,
.top-actions .btn-danger,
.top-actions a.btn-secondary {
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.top-actions button,
.top-actions .btn-secondary,
.top-actions .btn-danger {
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    line-height: 1;
}
/* Fix: ram runt Välj år i ljust tema */
body.light-theme .year-selector select {
    background: #ffffff;
    color: #111827;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
}

/* Valfritt: lite bättre fokusmarkering */
body.light-theme .year-selector select:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}
/* === FIX: DEJOUR I LJUST TEMA === */

body.light-theme #dejour-view {
    background: #f3f4f6;
    color: #111827;
}

body.light-theme .dejour-toolbar {
    background: #ffffff;
    border-bottom: 1px solid #cbd5e1;
}

body.light-theme .dejour-container {
    background: #f3f4f6;
}

body.light-theme .dejour-sidebar {
    background: #ffffff !important;
    color: #111827 !important;
    border-right: 1px solid #cbd5e1;
}

body.light-theme .dejour-sidebar div,
body.light-theme #dj-sidebar div,
body.light-theme #dj-sidebar .dj-name,
body.light-theme #dj-sidebar * {
    color: #111827 !important;
}

body.light-theme .dejour-sidebar-row,
body.light-theme .dejour-employee-row {
    background: #ffffff !important;
    color: #111827 !important;
    border-bottom: 1px solid #d1d5db;
}

body.light-theme .dejour-timeline {
    background: #f9fafb;
}

body.light-theme .dejour-header {
    background: #e5e7eb;
    color: #111827;
}

body.light-theme .dejour-grid {
    background: #f9fafb;
}

body.light-theme .dj-cell {
    background: #f9fafb;
    border-color: #cbd5e1;
}

body.light-theme .dj-cell.weekend,
body.light-theme .dj-cell.red-day {
    background: #f3c4c8;
}

body.light-theme .dj-day-header {
    background: #e5e7eb;
    color: #111827;
    border-color: #cbd5e1;
}

body.light-theme .dj-day-header.red-day,
body.light-theme .dj-day-header.weekend {
    background: #dc2626;
    color: #ffffff;
}

/* Dagens datum i ljust tema */
body.light-theme .today-column,
body.light-theme .dj-today {
    background: rgba(250, 204, 21, 0.35) !important;
}

/* Dejour-knappar i toolbar */
body.light-theme #dejour-view .dj-btn,
body.light-theme #dejour-view .btn-secondary {
    background: #e5e7eb;
    color: #111827;
    border: 1px solid #cbd5e1;
}

body.light-theme #dejour-view .dj-close {
    background: #dc2626 !important;
    color: white !important;
}
body.light-theme #dj-sidebar {
    background: #ffffff !important;
}

body.light-theme #dj-sidebar > div {
    color: #111827 !important;
    background: #ffffff !important;
    font-weight: 600;
}
/* === FIX: Dejour hjälpknapp i ljust tema === */

body.light-theme #dejour-view .dj-help-btn {
    background: #facc15 !important;
    color: #111827 !important;
    border: 1px solid #ca8a04 !important;
    font-weight: 900 !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.25) !important;
}

body.light-theme #dejour-view .dj-help-btn:hover {
    background: #eab308 !important;
    color: #111827 !important;
}


/* === KORREKT FIX: DEJOUR LJUST TEMA DESKTOP === */
/* Behåller originalstorlek: header 50px, rader 40px */

@media (min-width: 801px) {

    body.light-theme #dejour-view {
        background: #f3f4f6 !important;
        color: #111827 !important;
    }

    body.light-theme .dejour-toolbar {
        background: #ffffff !important;
        border-bottom: 1px solid #cbd5e1 !important;
    }

    body.light-theme #dejour-view h2 {
        color: #111827 !important;
    }

    /* Hjälpknappen ska synas tydligt i ljust tema */
    body.light-theme #dejour-view .dj-help-btn {
        background: #facc15 !important;
        color: #111827 !important;
        border: 1px solid #ca8a04 !important;
        font-weight: 900 !important;
        height: 34px !important;
        padding: 6px 14px !important;
        border-radius: 999px !important;
        box-shadow: 0 1px 4px rgba(0,0,0,0.25) !important;
        opacity: 1 !important;
    }

    body.light-theme #dejour-view .dj-help-btn:hover {
        background: #eab308 !important;
        color: #111827 !important;
    }

    /* Vänstra namnkolumnen */
    body.light-theme #dj-sidebar,
    body.light-theme .dejour-sidebar {
        width: 200px !important;
        min-width: 200px !important;
        margin-top: 50px !important;
        background: #ffffff !important;
        color: #111827 !important;
        border-right: 1px solid #9ca3af !important;
        overflow: hidden !important;
    }

    /* Namnrader – samma höjd som kalender-raderna */
    body.light-theme #dj-sidebar .emp-name,
    body.light-theme .dejour-sidebar .emp-name {
        height: 40px !important;
        min-height: 40px !important;
        line-height: 40px !important;
        padding: 0 12px !important;
        box-sizing: border-box !important;

        background: #ffffff !important;
        color: #111827 !important;
        border-bottom: 1px solid #9ca3af !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    /* Kalender-header – originalhöjd */
    body.light-theme #dj-header,
    body.light-theme .dejour-header {
        height: 50px !important;
        min-height: 50px !important;
        background: #e5e7eb !important;
        color: #111827 !important;
        border-bottom: 1px solid #9ca3af !important;
    }

    body.light-theme #dj-header .date-cell,
    body.light-theme #dj-header .d-cell,
    body.light-theme .dejour-header .date-cell,
    body.light-theme .dejour-header .d-cell {
        height: 50px !important;
        min-height: 50px !important;
        color: #111827 !important;
        border-right: 1px solid #9ca3af !important;
        background: #e5e7eb !important;
        font-size: 11px !important;
    }

    /* Kalender-rader – samma höjd som namn */
    body.light-theme #dj-grid .d-row,
    body.light-theme .dejour-grid .d-row {
        height: 40px !important;
        min-height: 40px !important;
        border-bottom: 1px solid #9ca3af !important;
    }

    body.light-theme #dj-grid .g-cell,
    body.light-theme .dejour-grid .g-cell {
        height: 40px !important;
        min-height: 40px !important;
        box-sizing: border-box !important;
        border-right: 1px solid #cbd5e1 !important;
        background: #f9fafb;
    }

    body.light-theme #dj-grid .g-cell.weekend,
    body.light-theme .dejour-grid .g-cell.weekend,
    body.light-theme #dj-grid .g-cell.holiday-col,
    body.light-theme .dejour-grid .g-cell.holiday-col {
        background: #f3c4c8 !important;
    }

    /* Behåll färger för planering */
    body.light-theme #dj-grid .g-cell.type-vacation,
    body.light-theme .dejour-grid .g-cell.type-vacation {
        background-color: #06b6d4 !important;
    }

    body.light-theme #dj-grid .g-cell.type-other,
    body.light-theme .dejour-grid .g-cell.type-other {
        background-color: #ef4444 !important;
    }

    body.light-theme #dj-grid .g-cell.active:not(.type-vacation):not(.type-other),
    body.light-theme .dejour-grid .g-cell.active:not(.type-vacation):not(.type-other) {
        background-color: #10b981 !important;
    }
}
/* === FIX: DEJOUR RADHÖJD – MÖRKT + LJUST TEMA === */
/* Gör namnkolumn och kalender-rader exakt lika höga */

#dejour-view {
    --dj-header-height: 50px;
    --dj-row-height: 40px;
}

/* Vänstra namnkolumnen ska börja exakt under datum-headern */
#dj-sidebar,
.dejour-sidebar {
    margin-top: var(--dj-header-height) !important;
}

/* Datumheadern */
#dj-header,
.dejour-header {
    height: var(--dj-header-height) !important;
    min-height: var(--dj-header-height) !important;
}

/* Datumceller */
#dj-header .d-cell,
#dj-header .date-cell,
.dejour-header .d-cell,
.dejour-header .date-cell {
    height: var(--dj-header-height) !important;
    min-height: var(--dj-header-height) !important;
    box-sizing: border-box !important;
}

/* Namnrader */
#dj-sidebar .emp-name,
.dejour-sidebar .emp-name {
    height: var(--dj-row-height) !important;
    min-height: var(--dj-row-height) !important;
    line-height: var(--dj-row-height) !important;
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Kalender-rader */
#dj-grid .d-row,
.dejour-grid .d-row {
    height: var(--dj-row-height) !important;
    min-height: var(--dj-row-height) !important;
    box-sizing: border-box !important;
}

/* Kalenderceller */
#dj-grid .g-cell,
.dejour-grid .g-cell {
    height: var(--dj-row-height) !important;
    min-height: var(--dj-row-height) !important;
    box-sizing: border-box !important;
}

/* Text i namnlistan ska centreras utan att ändra höjd */
#dj-sidebar .emp-name,
.dejour-sidebar .emp-name {
    display: flex !important;
    align-items: center !important;
}
/* === FIX: DEJOUR-KNAPPAR PÅ MOBIL === */
@media (max-width: 800px) {

    #dejour-view .dejour-toolbar {
        height: auto !important;
        min-height: 42px !important;
        padding: 4px 6px !important;
        gap: 4px !important;
        flex-wrap: wrap !important;
        align-items: center !important;
    }

    #dejour-view .dejour-toolbar > div {
        gap: 4px !important;
        flex-wrap: wrap !important;
    }

    #dejour-view .dj-btn,
    #dejour-view .btn-secondary,
    #btn-edit-mode,
    #btn-add-dejour-employee,
    #btn-dejour-help {
        width: auto !important;
        min-width: auto !important;
        height: 30px !important;
        padding: 4px 8px !important;
        font-size: 12px !important;
        line-height: 1 !important;
        border-radius: 5px !important;
        white-space: nowrap !important;
    }

    /* Specifikt zoom-knapparna */
    #dejour-view button[onclick="app.dejour.zoom(-10)"],
    #dejour-view button[onclick="app.dejour.zoom(10)"] {
        width: 34px !important;
        min-width: 34px !important;
        height: 30px !important;
        padding: 0 !important;
        font-size: 12px !important;
        text-align: center !important;
    }

    /* IDAG och STÄNG lite kompaktare */
    #dejour-view button[onclick="app.dejour.scrollToToday()"],
    #dejour-view .dj-close {
        height: 30px !important;
        padding: 4px 8px !important;
        font-size: 12px !important;
    }

    #dejour-view h2 {
        font-size: 18px !important;
        margin-right: 4px !important;
    }
}
/* === MOBIL: Flytta STÄNG-knappen längst ner i Dejour === */
@media (max-width: 800px) {

    #dejour-view .dj-close {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        z-index: 10080 !important;

        width: calc(100% - 24px) !important;
        height: 42px !important;

        background: #dc2626 !important;
        color: #ffffff !important;
        border: 1px solid #991b1b !important;
        border-radius: 10px !important;

        font-size: 14px !important;
        font-weight: 900 !important;
        padding: 10px 12px !important;
        box-shadow: 0 10px 30px rgba(0,0,0,0.35) !important;
    }

    #dejour-view .dj-close:hover {
        background: #b91c1c !important;
    }

    /* Ge kalendern lite extra bottenutrymme så knappen inte täcker sista raden */
    #dejour-view .dejour-container {
        padding-bottom: 58px !important;
    }
}
/* === MOBIL: Kompakt toppmeny === */

.mobile-menu-btn,
.mobile-map-btn,
.mobile-wake-btn {
    display: none;
}

@media (max-width: 800px) {

    .top-bar {
        padding: 8px 10px !important;
        gap: 8px !important;
    }

    .header-logo {
        height: 58px !important;
        max-width: 100% !important;
        object-fit: contain !important;
    }

    /*
       Mobilens översta rad är avsiktligt enkel:
       Karta | Skärm | Meny. Inloggad användare får en egen rad så
       knapparna aldrig behöver konkurrera om samma bredd.
    */
    .top-actions {
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        align-items: center;
        gap: 7px !important;
    }

    .top-actions #logged-in-user {
        display: block !important;
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        min-width: 0;
        font-size: 0.86rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        color: var(--text-main);
    }

    .mobile-map-btn,
    .mobile-wake-btn,
    .mobile-menu-btn {
        display: inline-flex !important;
        min-width: 0 !important;
        width: 100% !important;
        height: 36px !important;
        align-items: center;
        justify-content: center;
        padding: 6px 5px !important;
        font-size: 0.82rem !important;
        line-height: 1 !important;
        border-radius: 8px !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mobile-map-btn {
        grid-column: 1 / 2 !important;
        grid-row: 2 !important;
    }

    .mobile-wake-btn {
        grid-column: 2 / 3 !important;
        grid-row: 2 !important;
    }

    .mobile-menu-btn {
        grid-column: 3 / 4 !important;
        grid-row: 2 !important;
    }

    .mobile-wake-btn.wake-lock-active {
        border-color: #f59e0b !important;
        background: rgba(245, 158, 11, 0.16) !important;
        color: #fbbf24 !important;
        box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.16);
    }

    /* Den vanliga Karta-knappen hör bara till desktop. */
    #btn-toggle-map {
        display: none !important;
    }

    /* Dölj alla övriga menyknappar på mobil som standard. */
    .top-actions > button:not(#btn-mobile-menu):not(#btn-mobile-map):not(#btn-screen-wake),
    .top-actions > a {
        display: none !important;
    }

    /* När menyn öppnas läggs menyvalen under den fasta knappraden. */
    .top-actions.mobile-menu-open > button:not(#btn-mobile-menu):not(#btn-mobile-map):not(#btn-screen-wake):not(#btn-toggle-map),
    .top-actions.mobile-menu-open > a {
        display: inline-flex !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 38px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 7px 10px !important;
        font-size: 0.9rem !important;
        border-radius: 8px !important;
        line-height: 1 !important;
    }

    .top-actions.mobile-menu-open #logged-in-user {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    .top-actions.mobile-menu-open #btn-mobile-map {
        display: inline-flex !important;
        grid-column: 1 / 2 !important;
        grid-row: 2 !important;
    }

    .top-actions.mobile-menu-open #btn-screen-wake {
        display: inline-flex !important;
        grid-column: 2 / 3 !important;
        grid-row: 2 !important;
    }

    .top-actions.mobile-menu-open #btn-mobile-menu {
        display: inline-flex !important;
        grid-column: 3 / 4 !important;
        grid-row: 2 !important;
    }

    .top-actions.mobile-menu-open #btn-toggle-map {
        display: none !important;
    }

    /* Gör hjälpknappen tydligare även i mobil */
    .top-actions.mobile-menu-open #btn-main-help {
        background: #facc15 !important;
        color: #111827 !important;
        border: 1px solid #ca8a04 !important;
    }

    /* Installera app ska fortfarande kunna vara hidden */
    .top-actions.mobile-menu-open #btn-install-app.hidden {
        display: none !important;
    }
}
/* === Versionsnummer i toppmenyn === */
.top-version {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    white-space: nowrap;
}

body.light-theme .top-version {
    color: #4b5563;
    background: #f3f4f6;
    border-color: #cbd5e1;
}
/* === Version i toppmeny desktop, inne i hamburgermeny på mobil === */

.top-version {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    white-space: nowrap;
}

body.light-theme .top-version {
    color: #4b5563;
    background: #f3f4f6;
    border-color: #cbd5e1;
}

/* Mobil: dölj versionen tills hamburgermenyn öppnas */
@media (max-width: 800px) {
    .top-actions .top-version {
        display: none !important;
    }

    .top-actions.mobile-menu-open .top-version {
        display: flex !important;
        grid-column: 1 / -1;
        width: 100%;
        height: 32px;
        align-items: center;
        justify-content: center;
        font-size: 0.78rem;
        opacity: 0.85;
        margin-top: 4px;
    }
}
/* === Mobilmeny-knapp: bara på mobil === */
.mobile-menu-btn {
    display: none !important;
}

@media (max-width: 800px) {
    .mobile-menu-btn {
        display: inline-flex !important;
    }
}
/* === Dejour: senast uppdaterad === */

.dejour-last-updated {
    position: absolute;
    left: 12px;
    bottom: 8px;
    z-index: 10020;

    font-size: 12px;
    color: #cbd5e1;
    background: rgba(0,0,0,0.45);
    border: 1px solid rgba(255,255,255,0.12);
    padding: 5px 10px;
    border-radius: 999px;
    pointer-events: none;
    white-space: nowrap;
}

body.light-theme .dejour-last-updated {
    color: #111827;
    background: rgba(255,255,255,0.88);
    border: 1px solid #cbd5e1;
}

@media (max-width: 800px) {
    .dejour-last-updated {
        left: 8px;
        bottom: 60px; /* lämnar plats om STÄNG-knappen ligger längst ner */
        font-size: 11px;
        padding: 4px 8px;
    }
}
/* === Dejour: senast uppdaterad i toolbar === */

.dejour-last-updated {
    position: static !important;
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 2px 8px;
    margin-left: 4px;

    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    color: #cbd5e1;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 999px;
    white-space: nowrap;
    pointer-events: none;
}

body.light-theme .dejour-last-updated {
    color: #374151;
    background: rgba(255,255,255,0.75);
    border: 1px solid #cbd5e1;
}

@media (max-width: 800px) {
    .dejour-last-updated {
        width: 100%;
        justify-content: center;
        height: 22px;
        margin-left: 0;
        margin-top: 2px;
        font-size: 10px;
        padding: 2px 6px;
    }
}
/* === Admin: inloggningshistorik === */

.admin-login-history-section {
    margin-top: 10px;
}

.admin-login-history-list {
    max-height: 230px;
    overflow-y: auto;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-card);
    padding: 6px;
}

.login-history-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;

    padding: 8px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    font-size: 0.9rem;
}

.login-history-item:last-child {
    border-bottom: none;
}

.login-history-item div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.login-history-item strong {
    color: var(--text-main);
}

.login-history-item span {
    color: var(--text-muted);
    font-size: 0.82rem;
}

.login-history-ip {
    color: var(--text-muted);
    font-size: 0.75rem;
    white-space: nowrap;
}

body.light-theme .admin-login-history-list {
    background: #ffffff;
    border-color: #d1d5db;
}

body.light-theme .login-history-item {
    border-bottom: 1px solid #e5e7eb;
}
/* === Arbetsordrar === */

.workorder-badge {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    margin-left: 5px;
    padding: 0 5px;
    border-radius: 999px;
    background: #ef4444;
    color: white;
    font-size: 0.72rem;
    font-weight: 900;
    align-items: center;
    justify-content: center;
}

.workorders-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.workorders-header h2 {
    margin: 0;
}

.workorders-header p {
    margin-top: 4px;
    color: var(--text-muted);
}

.workorders-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.workorders-tab {
    background: var(--bg-card);
    color: var(--text-muted);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 8px 12px;
}

.workorders-tab.active {
    background: var(--accent-blue);
    color: white;
    border-color: var(--accent-blue);
}

.workorders-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.workorder-card {
    background: var(--bg-panel);
    border: 1px solid var(--border-color);
    border-left: 5px solid #6b7280;
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.workorder-card.unread {
    border-left-color: #ef4444;
    box-shadow: 0 0 0 1px rgba(239,68,68,0.25), 0 8px 24px rgba(0,0,0,0.18);
}

.workorder-card.priority-låg {
    border-left-color: #6b7280;
}

.workorder-card.priority-normal {
    border-left-color: #3b82f6;
}

.workorder-card.priority-hög {
    border-left-color: #f59e0b;
}

.workorder-card.priority-akut {
    border-left-color: #ef4444;
}

.workorder-card-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.workorder-card h3 {
    margin: 0 0 6px;
    font-size: 1.05rem;
}

.workorder-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    color: var(--text-muted);
    font-size: 0.82rem;
}

.workorder-pill {
    background: var(--bg-card);
    color: var(--text-main);
    border: 1px solid var(--border-color);
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 0.75rem;
    font-weight: 800;
    white-space: nowrap;
}

.workorder-description {
    margin: 12px 0;
    white-space: pre-wrap;
    color: var(--text-main);
    line-height: 1.45;
}

.workorder-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    color: var(--text-muted);
    font-size: 0.8rem;
    border-top: 1px solid var(--border-color);
    padding-top: 10px;
}

.workorder-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.workorder-status-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

.workorder-modal-content {
    max-width: 560px;
}

#wo-description {
    min-height: 120px;
}

body.light-theme .workorder-card {
    background: #ffffff;
    border-color: #d1d5db;
}

body.light-theme .workorder-pill,
body.light-theme .workorders-tab {
    background: #f3f4f6;
    color: #111827;
    border-color: #d1d5db;
}

body.light-theme .workorders-tab.active {
    background: var(--accent-blue);
    color: white;
}

@media (max-width: 800px) {
    .workorders-header {
        flex-direction: column;
    }

    .workorders-header .btn-primary {
        width: 100%;
    }

    .workorders-tabs {
        flex-direction: column;
    }

    .workorder-card-top,
    .workorder-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .workorder-actions,
    .workorder-status-actions {
        flex-wrap: wrap;
    }

    .workorder-actions button,
    .workorder-status-actions button {
        flex: 1;
    }
}
/* === Stationsbild / processbild med klickpunkter === */

.station-schematic-section {
    margin-top: 16px;
}

.schematic-upload-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.station-schematic-wrap {
    width: 100%;
    min-height: 180px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
}

.schematic-empty {
    min-height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    text-align: center;
    padding: 16px;
}

.schematic-image-stage {
    position: relative;
    width: 100%;
    background: #0f172a;
    cursor: crosshair;
    overflow: hidden;
}

.schematic-image {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
    -webkit-user-drag: none;
}

.schematic-points-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.schematic-point {
    position: absolute;
    transform: translate(-50%, -50%);
    min-width: 24px;
    height: 24px;
    padding: 0 7px;

    border-radius: 999px;
    border: 2px solid #ffffff;
    background: #ef4444;
    color: #ffffff;

    font-size: 11px;
    font-weight: 900;
    line-height: 1;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 4px 14px rgba(0,0,0,0.5);
    cursor: pointer;
    pointer-events: auto;
    z-index: 5;
}

.schematic-point span {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.schematic-point:hover {
    background: #f59e0b;
    transform: translate(-50%, -50%) scale(1.08);
}

.schematic-point-modal-content {
    max-width: 520px;
}

#schematic-point-info {
    min-height: 130px;
}

body.light-theme .station-schematic-wrap {
    background: #ffffff;
    border-color: #d1d5db;
}

@media (max-width: 800px) {
    .schematic-upload-row {
        flex-direction: column;
        align-items: stretch;
    }

    .schematic-upload-row button {
        width: 100%;
    }

    .schematic-point {
        min-width: 28px;
        height: 28px;
        font-size: 10px;
    }

    .schematic-point span {
        max-width: 90px;
    }
}
/* === Processbild: titelrad + fullscreen === */

.schematic-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.schematic-title-row label {
    margin-bottom: 0 !important;
}

.schematic-fullscreen-modal {
    z-index: 10090 !important;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.86);
    padding: 12px;
}

.schematic-fullscreen-content {
    width: 100%;
    height: 100%;
    background: #111827;
    border: 1px solid #374151;
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 30px 80px rgba(0,0,0,0.65);
}

.schematic-fullscreen-toolbar {
    flex-shrink: 0;
    padding: 10px 14px;
    background: #1f2937;
    border-bottom: 1px solid #374151;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.schematic-fullscreen-toolbar h3 {
    margin: 0;
    color: white;
}

.schematic-fullscreen-toolbar p {
    margin: 3px 0 0;
    color: #9ca3af;
    font-size: 0.82rem;
}

.schematic-fullscreen-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.schematic-fullscreen-scroll {
    flex: 1;
    overflow: auto;
    background: #0f172a;
    padding: 14px;
}

.schematic-fullscreen-stage {
    width: 100%;
    min-width: 100%;
}

.schematic-fullscreen-image-stage {
    position: relative;
    width: 100%;
    background: #0f172a;
    cursor: crosshair;
    transform-origin: top left;
}

.schematic-fullscreen-image {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
    -webkit-user-drag: none;
}

.schematic-point-fullscreen {
    min-width: 34px;
    height: 34px;
    font-size: 12px;
    border-width: 3px;
}

.schematic-point-fullscreen span {
    max-width: 170px;
}

body.light-theme .schematic-fullscreen-content {
    background: #ffffff;
    border-color: #cbd5e1;
}

body.light-theme .schematic-fullscreen-toolbar {
    background: #f3f4f6;
    border-bottom: 1px solid #cbd5e1;
}

body.light-theme .schematic-fullscreen-toolbar h3 {
    color: #111827;
}

body.light-theme .schematic-fullscreen-toolbar p {
    color: #4b5563;
}

body.light-theme .schematic-fullscreen-scroll,
body.light-theme .schematic-fullscreen-image-stage {
    background: #e5e7eb;
}

@media (max-width: 800px) {
    .schematic-title-row {
        flex-direction: column;
        align-items: stretch;
    }

    .schematic-title-row button {
        width: 100%;
    }

    .schematic-fullscreen-modal {
        padding: 4px;
    }

    .schematic-fullscreen-toolbar {
        flex-direction: column;
        align-items: stretch;
        padding: 8px;
    }

    .schematic-fullscreen-actions {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 6px;
    }

    .schematic-fullscreen-actions button {
        padding: 8px 6px;
        font-size: 12px;
    }

    .schematic-fullscreen-scroll {
        padding: 8px;
    }

    .schematic-point-fullscreen {
        min-width: 30px;
        height: 30px;
        font-size: 10px;
    }

    .schematic-point-fullscreen span {
        max-width: 110px;
    }
}
/* === FIX: Punkt-popup ska ligga över processbild fullscreen === */

#schematic-point-modal {
    z-index: 10200 !important;
}

#schematic-point-modal .modal-content {
    z-index: 10201 !important;
    position: relative;
}

/* Om du tar bort punkt från fullscreen måste även bekräftelserutan ligga över */
#confirm-modal {
    z-index: 10300 !important;
}

#confirm-modal .modal-content {
    z-index: 10301 !important;
    position: relative;
}

/* Säkerställ att punkterna i fullscreen verkligen går att klicka */
#schematic-fullscreen-points-layer {
    pointer-events: none !important;
}

#schematic-fullscreen-points-layer .schematic-point {
    pointer-events: auto !important;
}

/* Säkerställ att själva fullscreen-bildytan tar emot klick */
.schematic-fullscreen-image-stage {
    position: relative !important;
    cursor: crosshair !important;
}

.schematic-fullscreen-image {
    pointer-events: none !important;
}
/* === Filter för servad / tvättad i stationslistan === */

.service-filter-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 10px;
    margin: 8px 0 6px;
    padding: 8px;
    background: rgba(255,255,255,0.035);
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

.service-filter-box label {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-main);
    font-size: 0.82rem;
    cursor: pointer;
    white-space: nowrap;
}

.service-filter-box input[type="checkbox"] {
    width: 16px;
    height: 16px;
}

body.light-theme .service-filter-box {
    background: #f9fafb;
    border-color: #d1d5db;
}

body.light-theme .service-filter-box label {
    color: #111827;
}
.service-filter-clear {
    grid-column: 1 / -1;
    width: 100%;
    padding: 6px 8px;
    margin-top: 2px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 700;
}

.service-filter-clear:hover {
    color: white;
    border-color: var(--accent-blue);
}
/* === Räknare + rensa-knapp för servicefilter === */

.service-filter-result-count {
    margin: 4px 0 8px;
    padding: 5px 8px;
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 700;
    background: rgba(255,255,255,0.035);
    border: 1px solid var(--border-color);
    border-radius: 6px;
}

.service-filter-clear {
    grid-column: 1 / -1;
    width: 100%;
    padding: 6px 8px;
    margin-top: 2px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 700;
}

.service-filter-clear:hover {
    color: white;
    border-color: var(--accent-blue);
}

body.light-theme .service-filter-result-count {
    background: #f9fafb;
    border-color: #d1d5db;
    color: #4b5563;
}
/* === Service & Utrustning: håll X-knappen på sidan även på mobil === */

.equipment-field-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}

.equipment-field-row input {
    min-width: 0;
}

.equipment-field-remove {
    width: 34px;
    height: 34px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: rgba(239, 68, 68, 0.14);
    color: #ef4444;
    border: 1px solid rgba(239, 68, 68, 0.35);
    border-radius: 8px;
    font-weight: 900;
    flex-shrink: 0;
}

.equipment-field-remove:hover {
    background: #ef4444;
    color: white;
}

/* Mobil: namn + status får plats, X ligger kvar till höger */
@media (max-width: 800px) {
    .equipment-field-row {
        grid-template-columns: minmax(0, 1fr) 34px;
        grid-template-areas:
            "name remove"
            "status remove";
    }

    .equipment-field-name {
        grid-area: name;
    }

    .equipment-field-status {
        grid-area: status;
    }

    .equipment-field-remove {
        grid-area: remove;
        align-self: stretch;
        height: auto;
        min-height: 72px;
    }
}
/* === Fastighetspumpstationer === */

.dot.fastighet {
    background: #a855f7;
}

#filter-fastighet.active {
    background-color: #a855f7;
    border-color: #a855f7;
    color: white;
}

@media (max-width: 800px) {
    #station-filter-group {
        grid-template-columns: 1fr 1fr;
    }

    #filter-fastighet {
        grid-column: 1 / -1;
    }
}
.filter-group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

@media (max-width: 800px) {
    .filter-group {
        grid-template-columns: 1fr 1fr;
    }
}
/* === Filterknappar: bättre text på mobil === */

.filter-btn {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.filter-count {
    margin-left: 6px;
    flex-shrink: 0;
}

#station-filter-group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

@media (max-width: 800px) {
    #station-filter-group {
        grid-template-columns: 1fr 1fr;
    }

    #filter-fastighet {
        grid-column: 1 / -1;
    }
}
/* === Karta: klickbart stationsnamn i popup === */

.map-station-popup {
    min-width: 180px;
    font-family: inherit;
}

.map-station-name-btn {
    display: block;
    width: 100%;
    padding: 8px 10px;
    background: #2563eb;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 800;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}

.map-station-name-btn:hover {
    background: #1d4ed8;
}

.map-station-popup-type {
    margin-top: 6px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}
/* === Google Maps-länk under stationskartan === */

.station-google-maps-link-wrap {
    margin-top: 12px;
    margin-bottom: 14px;
}

.station-google-maps-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    padding: 10px 16px;
    border-radius: 10px;

    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff !important;

    font-weight: 800;
    font-size: 15px;
    text-decoration: none;

    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.28);
}

.station-google-maps-link:hover {
    background: linear-gradient(135deg, #1d4ed8, #1e40af);
    transform: translateY(-1px);
}

@media (max-width: 800px) {
    .station-google-maps-link {
        width: 100%;
        padding: 12px 14px;
        font-size: 16px;
    }
}
/* === Mobil: dölj sök/filter för stationer bakom knapp === */

.mobile-station-filter-toggle {
    display: none;
}

.mobile-station-filter-content {
    display: block;
}

@media (max-width: 800px) {
    .mobile-station-filter-toggle {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;

        margin: 12px 0;
        padding: 12px 14px;

        border-radius: 12px;
        border: 1px solid var(--border-color, #374151);
        background: var(--card-bg, #1f2937);
        color: var(--text-main, #ffffff);

        font-size: 16px;
        font-weight: 800;
        cursor: pointer;
    }

    .mobile-station-filter-toggle.open {
        background: #2563eb;
        color: white;
        border-color: #2563eb;
    }

    .mobile-filter-arrow {
        font-size: 18px;
        font-weight: 900;
    }

    .mobile-station-filter-content {
        display: none;
    }

    .mobile-station-filter-content.open {
        display: block;
        animation: mobileFilterSlideDown 0.18s ease-out;
    }

    @keyframes mobileFilterSlideDown {
        from {
            opacity: 0;
            transform: translateY(-6px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}
/* === Mobil: modernare Servad / Tvättad i stationsbilden === */

@media (max-width: 800px) {

    /* Själva checkbox-raderna i servicekortet */
    .service-card label,
    #station-details label {
        font-size: 18px;
        font-weight: 800;
        color: var(--text-main);
    }

    /* Gör vanliga checkboxar större */
    #d-servad,
    #d-tvattad {
        width: 26px;
        height: 26px;
        min-width: 26px;
        accent-color: #3b82f6;
        cursor: pointer;
        transform: translateY(3px);
    }

    /* Om labeln ligger nära checkboxen */
    #d-servad + span,
    #d-tvattad + span {
        font-size: 18px;
        font-weight: 800;
    }

    /* Gör området runt servad/tvättad luftigare */
    .service-checks,
    .service-checkboxes,
    .checkbox-row {
        gap: 14px;
        margin-top: 18px;
        margin-bottom: 14px;
    }

    /* Fallback: om checkboxarna ligger direkt i servicekortet */
    #d-servad,
    #d-tvattad {
        margin-right: 10px;
        margin-bottom: 12px;
    }

    /* Datumfältet under blir också snyggare */
    #d-service-date {
        min-height: 48px;
        font-size: 16px;
        border-radius: 10px;
        padding: 10px 12px;
    }
}
/* === Mobil: gör Servad / Tvättad som stora touch-rader === */

@media (max-width: 800px) {

    #d-servad,
    #d-tvattad {
        appearance: none;
        -webkit-appearance: none;

        width: 30px;
        height: 30px;
        border-radius: 9px;

        border: 2px solid #475569;
        background: #1f2937;

        display: inline-grid;
        place-content: center;

        margin-right: 12px;
        vertical-align: middle;
    }

    #d-servad:checked,
    #d-tvattad:checked {
        background: #3b82f6;
        border-color: #60a5fa;
        box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.22);
    }

    #d-servad:checked::after,
    #d-tvattad:checked::after {
        content: "✓";
        color: white;
        font-size: 22px;
        font-weight: 900;
        line-height: 1;
    }
}
/* === Snyggare filuppladdning: Välj fil / Välj filer === */

input[type="file"] {
    width: 100%;
    max-width: 100%;
    padding: 10px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(15, 23, 42, 0.55);
    color: var(--text-muted, #cbd5e1);
    font-size: 14px;
    cursor: pointer;
}

/* Chrome / Edge / Safari */
input[type="file"]::file-selector-button {
    margin-right: 14px;
    padding: 10px 16px;

    border: none;
    border-radius: 10px;

    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;

    font-weight: 800;
    font-size: 14px;

    cursor: pointer;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
    transition: 0.15s ease;
}

input[type="file"]::file-selector-button:hover {
    background: linear-gradient(135deg, #1d4ed8, #1e40af);
    transform: translateY(-1px);
}

/* Äldre WebKit fallback */
input[type="file"]::-webkit-file-upload-button {
    margin-right: 14px;
    padding: 10px 16px;

    border: none;
    border-radius: 10px;

    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;

    font-weight: 800;
    font-size: 14px;

    cursor: pointer;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
}

/* Mobil */
@media (max-width: 800px) {
    input[type="file"] {
        padding: 12px;
        font-size: 15px;
        border-radius: 14px;
    }

    input[type="file"]::file-selector-button {
        display: block;
        width: 100%;
        margin: 0 0 10px 0;
        padding: 13px 16px;
        font-size: 16px;
        border-radius: 12px;
        text-align: center;
    }

    input[type="file"]::-webkit-file-upload-button {
        display: block;
        width: 100%;
        margin: 0 0 10px 0;
        padding: 13px 16px;
        font-size: 16px;
        border-radius: 12px;
        text-align: center;
    }
}
/* === Processbild-knappar: Öppna stor bild / Ladda upp processbild === */

.process-image-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 42px;
    padding: 10px 16px;

    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.25);

    font-size: 14px;
    font-weight: 900;
    line-height: 1.1;
    cursor: pointer;

    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.process-image-btn:hover {
    transform: translateY(-1px);
}

.process-image-btn-primary {
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
}

.process-image-btn-primary:hover {
    background: linear-gradient(135deg, #1d4ed8, #1e40af);
}

.process-image-btn-secondary {
    background: rgba(30, 41, 59, 0.95);
    color: #ffffff;
    border-color: rgba(148, 163, 184, 0.32);
}

.process-image-btn-secondary:hover {
    background: rgba(51, 65, 85, 0.95);
}

/* Om knapparna ligger bredvid filväljaren */
.schematic-actions,
.process-image-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 12px;
}

/* Mobil */
@media (max-width: 800px) {
    .process-image-btn {
        width: 100%;
        min-height: 48px;
        padding: 13px 16px;
        font-size: 16px;
        border-radius: 14px;
    }

    .schematic-actions,
    .process-image-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }
}
/* === Röd processbild-knapp: Ta bort processbild === */

.process-image-btn-danger {
    background: linear-gradient(135deg, #dc2626, #991b1b);
    color: #ffffff;
    border-color: rgba(248, 113, 113, 0.45);
    box-shadow: 0 6px 16px rgba(220, 38, 38, 0.25);
}

.process-image-btn-danger:hover {
    background: linear-gradient(135deg, #b91c1c, #7f1d1d);
}
/* === Modern Ladda upp-knapp === */

.upload-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 42px;
    padding: 10px 18px;

    border: none;
    border-radius: 12px;

    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;

    font-size: 14px;
    font-weight: 900;
    line-height: 1.1;

    cursor: pointer;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.upload-action-btn:hover {
    background: linear-gradient(135deg, #1d4ed8, #1e40af);
    transform: translateY(-1px);
}

.upload-action-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    transform: none;
}

/* Mobil */
@media (max-width: 800px) {
    .upload-action-btn {
        width: 100%;
        min-height: 50px;
        padding: 14px 16px;
        font-size: 16px;
        border-radius: 14px;
    }
}
/* === Permanent info / bilder / processbild: snyggare knapp-layout === */

/* Gör området runt bilder och processbild mer kompakt på PC */
@media (min-width: 801px) {

    /* Vanliga uppladdningsknappen för bilder */
    .upload-action-btn {
        width: auto !important;
        min-height: 38px;
        padding: 8px 14px;
        font-size: 13px;
        border-radius: 10px;
    }

    /* Processbild-knappar */
    .process-image-btn {
        width: auto !important;
        min-height: 38px;
        padding: 8px 14px;
        font-size: 13px;
        border-radius: 10px;
    }

    /* Lägg processbild-knapparna snyggt i rad */
    .process-image-actions,
    .schematic-actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        margin-top: 8px;
        margin-bottom: 14px;
    }

    /* Gör inte filväljaren för bred på PC */
    input[type="file"] {
        max-width: 520px;
    }

    /* Bild-uppladdning: knapp under filväljare men inte enorm */
    #photo-upload-btn {
        margin-top: 10px;
        max-width: 240px;
    }

    /* Processbildens uppladdningsknapp */
    button[onclick="app.uploadStationSchematic()"] {
        max-width: 240px;
    }

    /* Öppna stor bild-knappen */
    button[onclick="app.openSchematicFullscreen()"] {
        max-width: 220px;
    }

    /* Ta bort processbild */
    button[onclick="app.deleteStationSchematic()"] {
        max-width: 230px;
    }
}
@media (min-width: 801px) {
    .process-image-actions {
        justify-content: flex-start;
        max-width: 560px;
    }

    .process-image-actions .process-image-btn {
        flex: 0 0 auto;
    }
}
/* === Kompaktare knappar i Permanent Info / Bilder / Processbild === */

/* Filväljaren */
#photo-upload,
#schematic-upload,
input[type="file"] {
    padding: 8px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
}

/* Själva "Välj filer"-knappen */
#photo-upload::file-selector-button,
#schematic-upload::file-selector-button,
input[type="file"]::file-selector-button {
    width: auto !important;
    min-width: 120px !important;
    max-width: 180px !important;

    min-height: 34px !important;
    padding: 7px 12px !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    border-radius: 9px !important;

    margin-right: 10px !important;
}

/* Safari/äldre Chrome fallback */
#photo-upload::-webkit-file-upload-button,
#schematic-upload::-webkit-file-upload-button,
input[type="file"]::-webkit-file-upload-button {
    width: auto !important;
    min-width: 120px !important;
    max-width: 180px !important;

    min-height: 34px !important;
    padding: 7px 12px !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    border-radius: 9px !important;

    margin-right: 10px !important;
}

/* Alla blå/röda/mörka uppladdnings- och processbildsknappar */
.upload-action-btn,
.process-image-btn,
.station-google-maps-link,
button[onclick="app.uploadPhotos()"],
button[onclick="app.openSchematicFullscreen()"],
button[onclick="app.uploadStationSchematic()"],
button[onclick="app.deleteStationSchematic()"] {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;

    min-height: 34px !important;
    padding: 7px 12px !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    border-radius: 9px !important;
    gap: 6px !important;

    line-height: 1.1 !important;
}

/* Specifikt: Ladda upp bilder */
#photo-upload-btn {
    width: auto !important;
    max-width: 210px !important;
}

/* Processbild-knapparna i snygg rad */
.process-image-actions,
.schematic-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;

    margin-top: 8px !important;
    margin-bottom: 10px !important;
}

/* Mobil: fortfarande tryckbara men mindre än nu */
@media (max-width: 800px) {
    #photo-upload,
    #schematic-upload,
    input[type="file"] {
        padding: 9px !important;
        font-size: 13px !important;
    }

    #photo-upload::file-selector-button,
    #schematic-upload::file-selector-button,
    input[type="file"]::file-selector-button,
    #photo-upload::-webkit-file-upload-button,
    #schematic-upload::-webkit-file-upload-button,
    input[type="file"]::-webkit-file-upload-button {
        width: auto !important;
        min-width: 130px !important;
        max-width: 190px !important;

        min-height: 36px !important;
        padding: 8px 13px !important;

        font-size: 14px !important;
        border-radius: 10px !important;
        margin-right: 8px !important;
        margin-bottom: 0 !important;
    }

    .upload-action-btn,
    .process-image-btn,
    .station-google-maps-link,
    button[onclick="app.uploadPhotos()"],
    button[onclick="app.openSchematicFullscreen()"],
    button[onclick="app.uploadStationSchematic()"],
    button[onclick="app.deleteStationSchematic()"] {
        width: auto !important;
        min-height: 38px !important;
        padding: 8px 13px !important;
        font-size: 14px !important;
        border-radius: 10px !important;
    }

    .process-image-actions,
    .schematic-actions {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
}
/* === Status/anteckning som textarea, stoppar lösenordsförslag bättre === */

.equipment-field-status {
    width: 100%;
    min-height: 42px;
    resize: vertical;
    font-family: inherit;
    line-height: 1.35;
}

@media (max-width: 800px) {
    .equipment-field-status {
        min-height: 58px;
        font-size: 16px;
    }
}
/* ==========================================================
   FIX: Service och annan information - tydlig prioritet i ljust läge
   Dina klasser är: priority-Hög / priority-Normal / priority-Låg
   ========================================================== */

/* Grund: alla service-info-rader */
body.light-theme .reminder-item {
    color: #111827 !important;
    border: 1px solid #d1d5db !important;
    border-left-width: 6px !important;
    border-left-style: solid !important;
}

/* HÖG prioritet */
body.light-theme .reminder-item.priority-Hög {
    background: #fff1f2 !important;
    border-left-color: #dc2626 !important;
}

/* NORMAL prioritet */
body.light-theme .reminder-item.priority-Normal {
    background: #eff6ff !important;
    border-left-color: #2563eb !important;
}

/* LÅG prioritet */
body.light-theme .reminder-item.priority-Låg {
    background: #f0fdf4 !important;
    border-left-color: #16a34a !important;
}

/* Text inne i raderna */
body.light-theme .reminder-item span {
    color: #111827 !important;
}

/* Datum/taggar */
body.light-theme .reminder-item .reminder-date,
body.light-theme .reminder-item .reminder-tag {
    color: #374151 !important;
}

/* Kryssknappen */
body.light-theme .reminder-item button {
    color: #dc2626 !important;
}
/* ==========================================================
   Mörkt läge - tydligare färger på prioritet
   ========================================================== */

body:not(.light-theme) .reminder-item.priority-Hög {
    border-left: 6px solid #ef4444 !important;
}

body:not(.light-theme) .reminder-item.priority-Normal {
    border-left: 6px solid #3b82f6 !important;
}

body:not(.light-theme) .reminder-item.priority-Låg {
    border-left: 6px solid #22c55e !important;
}
.station-map-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
}

@media (max-width: 800px) {
    .station-map-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .station-map-actions button {
        width: 100%;
    }
}
/* === Knappar för stationsposition/karta === */

.station-map-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
}

/* Alla knappar i kart-position-raden */
.station-map-actions button,
button[onclick="app.enableStationPinPlacement()"],
button[onclick="app.setStationCoordinatesManual()"],
#btn-remove-pin {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 34px !important;
    padding: 7px 12px !important;

    border-radius: 8px !important;
    border: 1px solid #334155 !important;

    background: #e5e7eb !important;
    color: #111827 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;

    cursor: pointer !important;
    box-shadow: none !important;
}

/* Hover */
.station-map-actions button:hover,
button[onclick="app.enableStationPinPlacement()"]:hover,
button[onclick="app.setStationCoordinatesManual()"]:hover,
#btn-remove-pin:hover {
    background: #d1d5db !important;
}

/* Ta bort-position ska fortfarande vara röd text om du vill */
#btn-remove-pin {
    color: #dc2626 !important;
}

/* Mörkt läge */
body:not(.light-theme) .station-map-actions button,
body:not(.light-theme) button[onclick="app.enableStationPinPlacement()"],
body:not(.light-theme) button[onclick="app.setStationCoordinatesManual()"],
body:not(.light-theme) #btn-remove-pin {
    background: #1f2937 !important;
    color: #ffffff !important;
    border-color: #475569 !important;
}

body:not(.light-theme) .station-map-actions button:hover,
body:not(.light-theme) button[onclick="app.enableStationPinPlacement()"]:hover,
body:not(.light-theme) button[onclick="app.setStationCoordinatesManual()"]:hover,
body:not(.light-theme) #btn-remove-pin:hover {
    background: #334155 !important;
}

body:not(.light-theme) #btn-remove-pin {
    color: #f87171 !important;
}

/* Mobil */
@media (max-width: 800px) {
    .station-map-actions {
        gap: 7px;
    }

    .station-map-actions button,
    button[onclick="app.enableStationPinPlacement()"],
    button[onclick="app.setStationCoordinatesManual()"],
    #btn-remove-pin {
        min-height: 36px !important;
        padding: 8px 11px !important;
        font-size: 13px !important;
        border-radius: 8px !important;
    }
}
/* ==========================================================
   FIX: Mobilknapp "Sök och filtrera stationer" i ljust läge
   ========================================================== */

body.light-theme .mobile-station-filter-toggle {
    background: #ffffff !important;
    color: #111827 !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08) !important;
}

body.light-theme .mobile-station-filter-toggle span {
    color: #111827 !important;
}

/* När den är öppen ska den fortfarande vara blå */
body.light-theme .mobile-station-filter-toggle.open {
    background: #2563eb !important;
    color: #ffffff !important;
    border-color: #2563eb !important;
}

body.light-theme .mobile-station-filter-toggle.open span {
    color: #ffffff !important;
}

/* Pilen */
body.light-theme .mobile-station-filter-toggle .mobile-filter-arrow {
    color: #111827 !important;
}

body.light-theme .mobile-station-filter-toggle.open .mobile-filter-arrow {
    color: #ffffff !important;
}
/* ==========================================================
   Kalender: årval, veckonummer och tydligare veckogrupper
   ========================================================== */

.dj-year-select {
    height: 32px;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid #475569;
    background: #111827;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

body.light-theme .dj-year-select {
    background: #ffffff;
    color: #111827;
    border-color: #94a3b8;
}

/* Veckonummer i datumraden */
#dj-header .date-cell .week-number,
.dejour-header .date-cell .week-number {
    display: block;
    min-height: 11px;
    font-size: 9px;
    line-height: 10px;
    font-weight: 900;
    color: #facc15;
    margin-bottom: 1px;
}

body.light-theme #dj-header .date-cell .week-number,
body.light-theme .dejour-header .date-cell .week-number {
    color: #b45309;
}

#dj-header .date-cell .week-number.empty,
.dejour-header .date-cell .week-number.empty {
    opacity: 0;
}

/* Tydlig start på varje vecka: måndag */
#dj-header .date-cell.week-start,
#dj-grid .g-cell.week-start {
    border-left: 3px solid #facc15 !important;
}

/* Tydlig slutkant på varje vecka: söndag */
#dj-header .date-cell.week-end,
#dj-grid .g-cell.week-end {
    border-right: 3px solid #facc15 !important;
}

/* Lite skugga/ram runt veckorna */
#dj-header .date-cell.week-start,
#dj-grid .g-cell.week-start {
    box-shadow: inset 2px 0 0 rgba(250, 204, 21, 0.35);
}

body.light-theme #dj-header .date-cell.week-start,
body.light-theme #dj-grid .g-cell.week-start {
    border-left-color: #f59e0b !important;
    box-shadow: inset 2px 0 0 rgba(245, 158, 11, 0.28);
}

body.light-theme #dj-header .date-cell.week-end,
body.light-theme #dj-grid .g-cell.week-end {
    border-right-color: #f59e0b !important;
}

/* Dagar utanför valt år, t.ex. sista dagarna från föregående år */
#dj-header .date-cell.outside-year,
#dj-grid .g-cell.outside-year {
    opacity: 0.45;
}

body.light-theme #dj-header .date-cell.outside-year,
body.light-theme #dj-grid .g-cell.outside-year {
    background: #e5e7eb !important;
    opacity: 0.55;
}

/* Mobil */
@media (max-width: 800px) {
    .dj-year-select {
        height: 30px;
        padding: 4px 7px;
        font-size: 12px;
        border-radius: 5px;
    }

    #dj-header .date-cell .week-number,
    .dejour-header .date-cell .week-number {
        font-size: 8px;
        line-height: 9px;
    }

    #dj-header .date-cell.week-start,
    #dj-grid .g-cell.week-start {
        border-left-width: 2px !important;
    }

    #dj-header .date-cell.week-end,
    #dj-grid .g-cell.week-end {
        border-right-width: 2px !important;
    }
}
/* ==========================================================
   FIX: Dejour kalender - visa toolbar-knappar + år dropdown rätt
   ========================================================== */

.dejour-toolbar,
.dj-toolbar,
#dejour-toolbar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
}

/* År-dropdown ska inte ta hela raden */
#dejour-year-select,
.dj-year-select {
    width: auto !important;
    min-width: 90px !important;
    max-width: 120px !important;
    height: 32px !important;
    flex: 0 0 auto !important;

    padding: 4px 10px !important;
    border-radius: 6px !important;
    border: 1px solid #94a3b8 !important;

    background: #ffffff !important;
    color: #111827 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
}

/* Alla kalenderknappar ska ligga kvar i samma rad */
.dejour-toolbar button,
.dj-toolbar button,
#dejour-toolbar button {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

/* Om kalendern ligger i en topbar */
.dejour-topbar,
.dj-topbar,
.calendar-toolbar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
}

/* Mörkt läge */
body:not(.light-theme) #dejour-year-select,
body:not(.light-theme) .dj-year-select {
    background: #111827 !important;
    color: #ffffff !important;
    border-color: #475569 !important;
}
/* ==========================================================
   Kalender: visa veckor tydligt UTAN att förstöra blå/gröna rutor
   ========================================================== */

/* 1. Nollställ veckolinjer i själva rutnätet */
#dj-grid .g-cell.week-start,
#dj-grid .g-cell.week-end,
#dj-grid .g-cell {
    border-left: 1px solid #cbd5e1 !important;
    border-right: 1px solid #cbd5e1 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Mörkt läge för rutnätet */
body:not(.light-theme) #dj-grid .g-cell.week-start,
body:not(.light-theme) #dj-grid .g-cell.week-end,
body:not(.light-theme) #dj-grid .g-cell {
    border-left: 1px solid #475569 !important;
    border-right: 1px solid #475569 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* 2. Veckorna syns i datumraden/headern */
#dj-header .date-cell {
    position: relative !important;
}

/* Måndag = början på vecka */
#dj-header .date-cell.week-start {
    border-left: 3px solid #f59e0b !important;
    background: #fff7ed !important;
}

/* Söndag = slut på vecka */
#dj-header .date-cell.week-end {
    border-right: 3px solid #f59e0b !important;
    background: #fff7ed !important;
}

/* Alla dagar i headern får lite mjuk vecka-känsla */
#dj-header .date-cell {
    border-top: 2px solid rgba(245, 158, 11, 0.35) !important;
    border-bottom: 2px solid rgba(245, 158, 11, 0.35) !important;
}

/* Veckonummer tydligare */
#dj-header .date-cell .week-number {
    display: block !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    color: #c2410c !important;
}

/* Mörkt läge */
body:not(.light-theme) #dj-header .date-cell.week-start,
body:not(.light-theme) #dj-header .date-cell.week-end {
    background: rgba(245, 158, 11, 0.14) !important;
}

body:not(.light-theme) #dj-header .date-cell {
    border-top: 2px solid rgba(245, 158, 11, 0.45) !important;
    border-bottom: 2px solid rgba(245, 158, 11, 0.45) !important;
}

body:not(.light-theme) #dj-header .date-cell .week-number {
    color: #facc15 !important;
}
/* ==========================================================
   Dejour grön period: mjuk transparent -> grön övergång
   ========================================================== */

/* Vanlig helgrön dejour */
#dj-grid .g-cell.active:not(.type-vacation):not(.type-other) {
    background: #35b779 !important;
}

/* Första gröna dejourdagen:
   börjar svagt och går mjukt till helt grönt */
#dj-grid .g-cell.active:not(.type-vacation):not(.type-other):not(.active + .active) {
    background: linear-gradient(
        to right,
        rgba(53, 183, 121, 0.18) 0%,
        rgba(53, 183, 121, 0.35) 20%,
        rgba(53, 183, 121, 0.65) 45%,
        rgba(53, 183, 121, 0.88) 70%,
        #35b779 100%
    ) !important;
}

/* Sista gröna dejourdagen:
   börjar helt grön och tonar ut mjukt */
#dj-grid .g-cell.active:not(.type-vacation):not(.type-other):not(:has(+ .g-cell.active:not(.type-vacation):not(.type-other))) {
    background: linear-gradient(
        to right,
        #35b779 0%,
        rgba(53, 183, 121, 0.88) 30%,
        rgba(53, 183, 121, 0.65) 55%,
        rgba(53, 183, 121, 0.35) 80%,
        rgba(53, 183, 121, 0.18) 100%
    ) !important;
}

/* Om dejour bara är en enda dag */
#dj-grid .g-cell.active:not(.type-vacation):not(.type-other):not(.active + .active):not(:has(+ .g-cell.active:not(.type-vacation):not(.type-other))) {
    background: linear-gradient(
        to right,
        rgba(53, 183, 121, 0.18) 0%,
        rgba(53, 183, 121, 0.55) 25%,
        #35b779 50%,
        rgba(53, 183, 121, 0.55) 75%,
        rgba(53, 183, 121, 0.18) 100%
    ) !important;
}
/* ==========================================================
   Print / PDF för dejourkalender
   ========================================================== */

@media print {
    @page {
        size: A4 landscape;
        margin: 8mm;
    }

    body {
        background: #ffffff !important;
        color: #000000 !important;
    }

    body.printing-dejour * {
        visibility: hidden !important;
    }

    body.printing-dejour #dejour-modal,
    body.printing-dejour #dejour-modal *,
    body.printing-dejour .dejour-modal,
    body.printing-dejour .dejour-modal *,
    body.printing-dejour #dejour-view,
    body.printing-dejour #dejour-view *,
    body.printing-dejour .dejour-calendar,
    body.printing-dejour .dejour-calendar *,
    body.printing-dejour .dejour-timeline,
    body.printing-dejour .dejour-timeline * {
        visibility: visible !important;
    }

    body.printing-dejour #dejour-modal,
    body.printing-dejour .dejour-modal,
    body.printing-dejour #dejour-view {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
        background: #ffffff !important;
        color: #000000 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
    }

    /* Dölj knappar vid utskrift */
    body.printing-dejour .dejour-toolbar,
    body.printing-dejour .dj-toolbar,
    body.printing-dejour #dejour-toolbar,
    body.printing-dejour .modal-close,
    body.printing-dejour .dj-btn,
    body.printing-dejour button {
        display: none !important;
    }

    /* Kalendern ska få använda hela sidan */
    body.printing-dejour .dejour-timeline {
        overflow: visible !important;
        width: 100% !important;
        max-width: none !important;
    }

    body.printing-dejour #dj-header,
    body.printing-dejour #dj-grid {
        overflow: visible !important;
    }

    /* Gör celler lite mindre så mer får plats */
    body.printing-dejour .date-cell,
    body.printing-dejour .g-cell {
        min-width: 22px !important;
        width: 22px !important;
        max-width: 22px !important;
        height: 24px !important;
        font-size: 8px !important;
        padding: 1px !important;
        box-sizing: border-box !important;
    }

    body.printing-dejour .name-cell,
    body.printing-dejour .employee-name,
    body.printing-dejour .dj-name-cell {
        min-width: 120px !important;
        width: 120px !important;
        max-width: 120px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
    }

    body.printing-dejour .week-number {
        font-size: 7px !important;
    }

    /* Bevara färger i PDF/print */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
}
/* ==========================================================
   SLUTGILTIG FIX: Dejour i mobil-landscape
   Toolbar får egen fast rad, kalendern börjar under den
   ========================================================== */

@media (orientation: landscape) and (max-height: 650px) and (max-width: 1000px) {

    #dejour-view {
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        overflow: hidden !important;
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Toolbar högst upp som egen rad */
    #dejour-view .dejour-toolbar {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;

        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;

        gap: 6px !important;
        padding: 5px 8px !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;

        background: #262626 !important;
        border-bottom: 1px solid #404040 !important;

        z-index: 5000 !important;
    }

    /* Alla element i toolbaren ska ligga i en horisontell rad */
    #dejour-view .dejour-toolbar > * {
        flex: 0 0 auto !important;
    }

    #dejour-view .dejour-toolbar h1,
    #dejour-view .dejour-toolbar h2 {
        font-size: 18px !important;
        line-height: 1 !important;
        margin: 0 4px 0 0 !important;
        white-space: nowrap !important;
    }

    #dejour-view .dejour-toolbar button,
    #dejour-view .dejour-toolbar select,
    #dejour-view .dj-btn,
    #dejour-year-select {
        width: auto !important;
        min-width: auto !important;
        max-width: none !important;

        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;

        padding: 5px 8px !important;
        font-size: 12px !important;
        line-height: 1 !important;

        white-space: nowrap !important;
        flex: 0 0 auto !important;
    }

    /* Kalenderområdet börjar alltid under toolbaren */
    #dejour-view .dejour-container {
        position: absolute !important;
        top: 48px !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;

        height: auto !important;
        min-height: 0 !important;

        display: flex !important;
        overflow: hidden !important;

        padding: 0 !important;
        margin: 0 !important;
    }

    /* Namnspalten ska börja under datumraden, inte under toolbaren */
    #dejour-view .dejour-sidebar {
        width: 170px !important;
        min-width: 170px !important;
        max-width: 170px !important;
        flex: 0 0 170px !important;

        margin-top: 50px !important;
        height: auto !important;
        overflow: hidden !important;
    }

    /* Själva kalendern */
    #dejour-view .dejour-timeline {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;

        overflow: auto !important;
        position: relative !important;
    }

    /* Datumraden ligger bara inne i kalendern */
    #dejour-view .dejour-header,
    #dejour-view #dj-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000 !important;

        height: 50px !important;
        min-height: 50px !important;

        background: #262626 !important;
    }

    body.light-theme #dejour-view .dejour-toolbar,
    body.light-theme #dejour-view .dejour-header,
    body.light-theme #dejour-view #dj-header {
        background: #ffffff !important;
        color: #111827 !important;
    }

    /* Stäng-knappen ska inte ligga över kalendern */
    #dejour-view .dj-close,
    #dejour-view .dj-btn-close {
        position: static !important;
        margin-left: auto !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        width: auto !important;
    }
}
/* ==========================================================
   FIX: Stäng-knappen fungerar i dejour landscape
   ========================================================== */

/* Alltid: om dejour-view har hidden ska den vara helt borta */
#dejour-view.hidden,
body #dejour-view.hidden {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Extra hårt för telefon i landscape */
@media (orientation: landscape) and (max-height: 650px) and (max-width: 1000px) {
    #dejour-view.hidden,
    body #dejour-view.hidden {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}
/* ==========================================================
   FIX: Huvudsidan ska kunna scrolla i telefon-landscape
   Gäller INTE dejour-kalendern och INTE kart-fullscreen
   ========================================================== */

@media (orientation: landscape) and (max-height: 650px) and (max-width: 1000px) {

    /* Huvudsidan får scrolla i landscape */
    body:not(.no-scroll):not(.dejour-open) {
        height: auto !important;
        min-height: 100vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    #app-container {
        height: auto !important;
        min-height: 100vh !important;
        overflow: visible !important;
    }

    .main-layout {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .content-area {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .view-section {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding-bottom: 80px !important;
    }

    .sidebar-left,
    .sidebar-right {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        position: static !important;
    }

    .station-list {
        height: 300px !important;
        max-height: 300px !important;
        overflow-y: auto !important;
    }

    .details-grid {
        grid-template-columns: 1fr !important;
    }

    /* Toppen ska inte låsa sidan */
    .top-bar {
        position: static !important;
        height: auto !important;
        flex-shrink: 0 !important;
    }

    .top-actions {
        flex-wrap: wrap !important;
    }
}
/* ==========================================================
   Comsel-länk i topbaren
   ========================================================== */

.top-comsel-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 8px 12px;
    border-radius: 4px;

    background: var(--bg-card);
    color: #ffffff !important;
    border: 1px solid var(--border-color);

    font-weight: 800;
    font-size: 14px;
    text-decoration: none;

    white-space: nowrap;
    cursor: pointer;
}

.top-comsel-link:hover {
    background: #3a404d;
}

/* Ljust läge */
body.light-theme .top-comsel-link {
    background: #ffffff;
    color: #111827 !important;
    border-color: #cbd5e1;
}

body.light-theme .top-comsel-link:hover {
    background: #e5e7eb;
}

/* Mobil: göm den från topbaren så den inte gör menyn för trång */
@media (max-width: 800px) {
    .top-comsel-link {
        display: none !important;
    }
}
/* === TVINGA MINDRE BILD- OCH PROCESSBILD-KNAPPAR === */

/* Vanliga bild-uppladdningen */
#photo-upload {
    font-size: 12px !important;
    padding: 6px 8px !important;
    min-height: 32px !important;
    border-radius: 10px !important;
    max-width: 360px !important;
}

#photo-upload::file-selector-button {
    font-size: 12px !important;
    padding: 6px 10px !important;
    min-height: 30px !important;
    border-radius: 9px !important;
    margin-right: 8px !important;
}

#photo-upload::-webkit-file-upload-button {
    font-size: 12px !important;
    padding: 6px 10px !important;
    min-height: 30px !important;
    border-radius: 9px !important;
    margin-right: 8px !important;
}

/* Ladda upp bilder-knappen */
#photo-upload-btn,
button#photo-upload-btn.upload-action-btn {
    font-size: 12px !important;
    padding: 7px 11px !important;
    min-height: 32px !important;
    height: auto !important;
    border-radius: 10px !important;
    width: auto !important;
    max-width: fit-content !important;
}

/* Processbild-knappar */
#station-details .process-image-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    align-items: center !important;
}

#station-details .process-image-actions .process-image-btn,
#station-details button.process-image-btn,
button.process-image-btn {
    font-size: 12px !important;
    padding: 7px 11px !important;
    min-height: 32px !important;
    height: auto !important;
    line-height: 1.1 !important;
    border-radius: 10px !important;
    gap: 5px !important;
    width: auto !important;
    max-width: fit-content !important;
}

/* Mobil ännu mindre */
@media (max-width: 800px) {
    #photo-upload {
        font-size: 12px !important;
        padding: 6px 8px !important;
        min-height: 32px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    #photo-upload::file-selector-button {
        display: inline-block !important;
        width: auto !important;
        font-size: 12px !important;
        padding: 6px 10px !important;
        min-height: 30px !important;
        margin: 0 8px 0 0 !important;
    }

    #photo-upload::-webkit-file-upload-button {
        display: inline-block !important;
        width: auto !important;
        font-size: 12px !important;
        padding: 6px 10px !important;
        min-height: 30px !important;
        margin: 0 8px 0 0 !important;
    }

    #photo-upload-btn,
    button#photo-upload-btn.upload-action-btn,
    #station-details .process-image-actions .process-image-btn,
    #station-details button.process-image-btn,
    button.process-image-btn {
        font-size: 12px !important;
        padding: 7px 10px !important;
        min-height: 32px !important;
        border-radius: 9px !important;
        width: auto !important;
        max-width: fit-content !important;
    }
}
/* Fix: fullscreen-knappen ska inte ligga ovanpå modaler */
#btn-fullscreen-map,
.fullscreen-btn {
    z-index: 900 !important;
}

/* Men när kartan verkligen är i fullscreen ska knappen ligga ovanpå kartan */
#map-view.map-fullscreen #btn-fullscreen-map,
#map-view.map-fullscreen .fullscreen-btn {
    z-index: 10050 !important;
}

/* Säkerställ att modaler alltid ligger över kartknappar */
.modal,
#settings-modal,
#main-help-modal,
#confirm-modal,
#due-reminder-modal,
#station-modal,
#password-modal,
#workorder-modal {
    z-index: 20000 !important;
}

/* === Snygg ruta för tvingat lösenordsbyte === */
#force-password-modal.force-password-modal {
    z-index: 30000 !important;
    background: rgba(0, 0, 0, 0.78) !important;
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
}

#force-password-modal.hidden {
    display: none !important;
}

.force-password-content {
    width: min(470px, calc(100vw - 28px));
    background: linear-gradient(145deg, #202636, #111827);
    border: 1px solid rgba(96, 165, 250, 0.38);
    border-radius: 18px;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.7);
    overflow: hidden;
    color: #ffffff;
}

.force-password-topbar {
    height: 5px;
    background: linear-gradient(90deg, #3b82f6, #facc15);
}

.force-password-header {
    padding: 22px 24px 10px;
}

.force-password-header h3 {
    margin: 0 0 8px;
    color: #bfdbfe;
    font-size: 1.55rem;
    line-height: 1.15;
}

.force-password-header p {
    margin: 0;
    color: #d1d5db;
    line-height: 1.45;
    font-size: 0.98rem;
}

.force-password-body {
    padding: 10px 24px 24px;
}

.force-password-body .form-group {
    margin-bottom: 14px;
}

.force-password-body label {
    color: #93c5fd !important;
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.force-password-body input {
    width: 100%;
    padding: 13px 14px;
    background: #0b1220;
    border: 1px solid #4b5563;
    color: #ffffff;
    border-radius: 12px;
    font-size: 1rem;
    outline: none;
}

.force-password-body input:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.24);
}

.force-password-error {
    min-height: 22px;
    color: #fca5a5;
    font-weight: 800;
    margin: 2px 0 14px;
    line-height: 1.35;
}

.force-password-save {
    width: 100%;
    padding: 13px 16px !important;
    border-radius: 12px !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
}

@media (max-width: 700px) {
    #force-password-modal.force-password-modal {
        padding: 12px !important;
    }

    .force-password-content {
        width: calc(100vw - 22px);
        border-radius: 15px;
    }

    .force-password-header {
        padding: 18px 18px 8px;
    }

    .force-password-body {
        padding: 8px 18px 20px;
    }

    .force-password-header h3 {
        font-size: 1.35rem;
    }
}


/* Tydlig status för alla kalendersparningar */
.dejour-save-status {
    margin: 10px 14px 0;
    padding: 11px 14px;
    border-radius: 9px;
    border: 1px solid transparent;
    font-weight: 800;
    line-height: 1.35;
    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.28);
}

.dejour-save-status.saving {
    background: #1e3a5f;
    border-color: #60a5fa;
    color: #dbeafe;
}

.dejour-save-status.success {
    background: #123d2a;
    border-color: #34d399;
    color: #d1fae5;
}

.dejour-save-status.warning {
    background: #4a3510;
    border-color: #f59e0b;
    color: #fef3c7;
}

.dejour-save-status.error {
    background: #4c1519;
    border: 2px solid #ef4444;
    color: #fee2e2;
}

#dejour-view button:disabled {
    opacity: 0.55;
    cursor: wait !important;
}

@media (max-width: 700px) {
    .dejour-save-status {
        margin: 8px 8px 0;
        font-size: 0.92rem;
    }
}

/* === V1.2.0 checklistor + reservdelar === */
.station-checklist-container {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.station-checklist-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
}

.station-checklist-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
}

.station-checklist-row input[type="text"] {
    margin: 0;
}

.station-checklist-remove {
    border: 0;
    background: transparent;
    color: #ef4444;
    font-size: 20px;
    cursor: pointer;
    line-height: 1;
}

.station-checklist-empty {
    color: var(--text-muted);
    padding: 10px 0;
}

.spareparts-page {
    display: grid;
    gap: 16px;
}

.spareparts-header,
.spareparts-form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.spareparts-header h2,
.spareparts-form-header h3 {
    margin: 0;
}

.spareparts-header p {
    margin: 6px 0 0;
    color: var(--text-muted);
}

.spareparts-toolbar {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.spareparts-toolbar input[type="text"] {
    flex: 1 1 320px;
    margin: 0;
}

.spareparts-lowstock-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-color);
}

.spareparts-table-card,
.spareparts-form-card {
    padding: 16px;
}

.spareparts-table-wrap {
    overflow-x: auto;
}

.spareparts-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.94rem;
}

.spareparts-table th,
.spareparts-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
    text-align: left;
    vertical-align: middle;
}

.spareparts-table th {
    color: var(--text-muted);
    font-weight: 700;
}

.spareparts-table tr.low-stock td {
    background: rgba(245, 158, 11, 0.10);
}

.spareparts-qty {
    font-weight: 700;
    white-space: nowrap;
}

.spareparts-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.spareparts-actions button {
    white-space: nowrap;
}

.spareparts-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.spareparts-form-grid .form-group:last-child {
    grid-column: 1 / -1;
}

@media (max-width: 800px) {
    .spareparts-form-grid {
        grid-template-columns: 1fr;
    }

    .station-checklist-row {
        grid-template-columns: auto 1fr;
    }

    .station-checklist-remove {
        grid-column: 1 / -1;
        justify-self: end;
    }
}


/* === V1.2.1 reservdelskategorier + kompaktare font === */
.spareparts-page {
    font-size: 0.94rem;
}

.spareparts-header h2 {
    font-size: 2rem;
}

.spareparts-header p {
    font-size: 0.92rem;
}

.spareparts-toolbar input[type="text"],
.spareparts-form-grid input,
.spareparts-form-grid textarea,
.spareparts-form-grid select {
    font-size: 0.95rem;
}

.spareparts-category-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: -4px;
}

.spareparts-category-chip {
    border: 1px solid var(--border-color);
    background: rgba(255,255,255,0.03);
    color: var(--text-color);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 0.86rem;
    cursor: pointer;
    transition: 0.15s ease;
}

.spareparts-category-chip:hover {
    border-color: var(--primary-color);
}

.spareparts-category-chip.active {
    background: rgba(59, 130, 246, 0.18);
    border-color: rgba(59, 130, 246, 0.6);
    color: #fff;
}

.spareparts-table {
    font-size: 0.88rem;
}

.spareparts-table th,
.spareparts-table td {
    padding: 8px 10px;
}

.spareparts-form-header h3 {
    font-size: 1.55rem;
}

.spareparts-form-grid label,
.spareparts-lowstock-toggle,
#spareparts-summary {
    font-size: 0.9rem;
}

.spareparts-actions button {
    font-size: 0.82rem;
    padding: 6px 10px;
}

/* ==========================================================
   Arbetsordrar v1.2.7 – läskvitto, OK-kvittering och svar
   ========================================================== */
.workorder-receipts {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 8px 0 10px;
}

.workorder-receipt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: rgba(255,255,255,0.025);
}

.workorder-receipt.read {
    color: #93c5fd;
    border-color: rgba(59,130,246,.45);
}

.workorder-receipt.acknowledged {
    color: #86efac;
    border-color: rgba(34,197,94,.45);
}

.workorder-receipt.pending {
    color: var(--text-muted);
}

.btn-workorder-ok {
    background: #15803d;
    color: #fff;
    border: 1px solid #22c55e;
    border-radius: 6px;
    padding: 7px 10px;
    cursor: pointer;
    font-weight: 800;
}

.btn-workorder-ok:hover {
    background: #166534;
}

.workorder-conversation {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color);
}

.workorder-conversation-title {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    font-size: 0.82rem;
}

.workorder-conversation-title span {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--bg-card);
    color: var(--text-muted);
    font-size: 0.72rem;
}

.workorder-replies {
    display: grid;
    gap: 7px;
    margin-bottom: 9px;
}

.workorder-reply {
    padding: 8px 10px;
    background: rgba(255,255,255,0.035);
    border: 1px solid var(--border-color);
    border-radius: 7px;
}

.workorder-reply-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
    color: var(--text-muted);
    font-size: 0.72rem;
}

.workorder-reply-message {
    white-space: pre-wrap;
    line-height: 1.4;
    font-size: 0.86rem;
    color: var(--text-main);
}

.workorder-replies-empty {
    color: var(--text-muted);
    font-size: 0.78rem;
}

.workorder-reply-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.workorder-reply-form textarea {
    min-height: 46px;
    max-height: 140px;
    resize: vertical;
    margin: 0;
    padding: 8px 10px;
    font-size: 0.86rem;
}

.workorder-reply-form button {
    min-width: 82px;
}

body.light-theme .workorder-reply {
    background: #f8fafc;
}

@media (max-width: 800px) {
    .workorder-reply-form {
        grid-template-columns: 1fr;
    }

    .workorder-reply-form button {
        width: 100%;
    }

    .workorder-reply-meta {
        flex-direction: column;
        gap: 2px;
    }
}

/* ==========================================================
   V1.2.8 – små notiser för nya arbetsordrar och nya svar
   ========================================================== */
.workorder-notification-container {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 200000;
    width: min(370px, calc(100vw - 28px));
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.workorder-notification-toast {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    padding: 13px 42px 13px 13px;
    border: 1px solid #46566b;
    border-left: 4px solid #3b82f6;
    border-radius: 10px;
    background: #171d27;
    color: #f8fafc;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .42);
    opacity: 0;
    transform: translateY(12px) scale(.98);
    transition: opacity .18s ease, transform .18s ease;
    pointer-events: auto;
    cursor: pointer;
}

.workorder-notification-toast.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.workorder-notification-toast.leaving {
    opacity: 0;
    transform: translateY(8px) scale(.98);
}

.workorder-notification-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: rgba(59, 130, 246, .14);
    font-size: 20px;
}

.workorder-notification-headline {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    color: #fff;
}

.workorder-notification-title {
    margin-top: 3px;
    font-size: 12.5px;
    font-weight: 700;
    color: #cbd5e1;
}

.workorder-notification-preview {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.35;
    color: #aeb9c8;
}

.workorder-notification-open {
    margin-top: 8px;
    padding: 5px 10px;
    border: 1px solid #4b6fa8;
    border-radius: 6px;
    background: #2563eb;
    color: #fff;
    font-size: 11.5px;
    font-weight: 800;
    cursor: pointer;
}

.workorder-notification-close {
    position: absolute;
    top: 7px;
    right: 8px;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #94a3b8;
    font-size: 20px;
    line-height: 24px;
    cursor: pointer;
}

.workorder-notification-close:hover {
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

body.light-theme .workorder-notification-toast {
    background: #fff;
    color: #172033;
    border-color: #cbd5e1;
    border-left-color: #2563eb;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .18);
}

body.light-theme .workorder-notification-headline {
    color: #172033;
}

body.light-theme .workorder-notification-title {
    color: #475569;
}

body.light-theme .workorder-notification-preview {
    color: #64748b;
}

@media (max-width: 800px) {
    .workorder-notification-container {
        right: 10px;
        bottom: 12px;
        width: calc(100vw - 20px);
    }

    .workorder-notification-toast {
        padding: 12px 40px 12px 12px;
    }
}

/* ==========================================================
   V1.2.9 – centrerad arbetsordernotis + sökbart stationsval
   ========================================================== */
.workorder-notification-container {
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translate(-50%, -50%);
    width: min(430px, calc(100vw - 28px));
    max-height: calc(100vh - 32px);
    overflow-y: auto;
}

.workorder-notification-toast {
    width: 100%;
}

.workorder-station-picker {
    position: relative;
}

.workorder-station-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.workorder-station-search-row input {
    margin-bottom: 0;
}

.workorder-station-search-row button {
    white-space: nowrap;
}

.workorder-station-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 23px);
    z-index: 250000;
    max-height: 260px;
    overflow-y: auto;
    padding: 5px;
    border: 1px solid #4b5563;
    border-radius: 7px;
    background: #171d27;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .38);
}

.workorder-station-result {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 8px 9px;
    border: 0;
    border-bottom: 1px solid rgba(148, 163, 184, .15);
    border-radius: 4px;
    background: transparent;
    color: #f8fafc;
    text-align: left;
    cursor: pointer;
}

.workorder-station-result:last-child {
    border-bottom: 0;
}

.workorder-station-result:hover {
    background: rgba(59, 130, 246, .14);
}

.workorder-station-result-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
    font-weight: 750;
}

.workorder-station-result-type {
    color: #94a3b8;
    font-size: 10.5px;
    white-space: nowrap;
}

.workorder-station-search-hint {
    padding: 9px 10px;
    color: #94a3b8;
    font-size: 11.5px;
}

.workorder-station-selected {
    margin-top: 5px;
    color: #94a3b8;
    font-size: 11.5px;
}

.workorder-station-selected.has-station {
    color: #86efac;
    font-weight: 700;
}

body.light-theme .workorder-station-results {
    background: #fff;
    border-color: #cbd5e1;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .18);
}

body.light-theme .workorder-station-result {
    color: #172033;
    border-bottom-color: #e2e8f0;
}

body.light-theme .workorder-station-result:hover {
    background: #eff6ff;
}

@media (max-width: 800px) {
    .workorder-notification-container {
        left: 50% !important;
        right: auto !important;
        top: 50% !important;
        bottom: auto !important;
        transform: translate(-50%, -50%);
        width: calc(100vw - 20px);
    }

    .workorder-station-search-row {
        grid-template-columns: 1fr;
    }

    .workorder-station-results {
        top: calc(100% - 18px);
        max-height: 220px;
    }

    .workorder-station-result {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}


/* ==========================================================
   V1.3.4 – mobilanpassning Reservdelar + Inställningar
   Endast regler under 800 px. Desktop påverkas inte.
   ========================================================== */
@media (max-width: 800px) {
    /* ---------- Reservdelar ---------- */
    #spareparts-view {
        scroll-margin-top: 8px;
    }

    .spareparts-page {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        gap: 10px;
        font-size: 0.82rem;
    }

    .spareparts-header {
        align-items: stretch;
        gap: 8px;
    }

    .spareparts-header > div {
        min-width: 0;
        flex: 1 1 100%;
    }

    .spareparts-header h2 {
        font-size: 1.35rem;
        line-height: 1.15;
        overflow-wrap: anywhere;
    }

    .spareparts-header p {
        margin-top: 4px;
        font-size: 0.78rem;
        line-height: 1.3;
    }

    .spareparts-header > button {
        width: 100%;
        min-height: 38px;
        padding: 8px 10px;
        font-size: 0.82rem;
    }

    .spareparts-toolbar {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        width: 100%;
        min-width: 0;
    }

    .spareparts-toolbar input[type="text"] {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        font-size: 0.82rem;
        padding: 9px 10px;
    }

    .spareparts-lowstock-toggle {
        width: 100%;
        font-size: 0.78rem;
        line-height: 1.25;
    }

    .spareparts-category-filter {
        gap: 6px;
        margin-top: 0;
    }

    .spareparts-category-chip {
        padding: 6px 9px;
        font-size: 0.74rem;
    }

    #spareparts-summary {
        font-size: 0.76rem;
        padding: 7px 9px;
    }

    .spareparts-table-card,
    .spareparts-form-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding: 10px;
    }

    .spareparts-table-wrap {
        width: 100%;
        max-width: 100%;
        overflow: visible;
    }

    /* Tabellen blir kort på mobil i stället för att tvinga sidscroll. */
    .spareparts-table,
    .spareparts-table tbody,
    .spareparts-table tr,
    .spareparts-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .spareparts-table {
        font-size: 0.78rem;
    }

    .spareparts-table thead {
        display: none;
    }

    .spareparts-table tr {
        margin: 0 0 10px;
        padding: 8px 9px;
        border: 1px solid var(--border-color);
        border-radius: 9px;
        background: rgba(255,255,255,0.018);
    }

    .spareparts-table tr:last-child {
        margin-bottom: 0;
    }

    .spareparts-table tr.low-stock {
        background: rgba(245, 158, 11, 0.08);
        border-color: rgba(245, 158, 11, 0.35);
    }

    .spareparts-table tr.low-stock td {
        background: transparent;
    }

    .spareparts-table td {
        display: grid;
        grid-template-columns: minmax(88px, 34%) minmax(0, 1fr);
        gap: 8px;
        align-items: start;
        padding: 5px 0;
        border: 0;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .spareparts-table td::before {
        color: var(--text-muted);
        font-size: 0.70rem;
        font-weight: 700;
        line-height: 1.3;
    }

    .spareparts-table td:nth-child(1)::before { content: "Namn"; }
    .spareparts-table td:nth-child(2)::before { content: "Artikelnummer"; }
    .spareparts-table td:nth-child(3)::before { content: "Kategori"; }
    .spareparts-table td:nth-child(4)::before { content: "Plats"; }
    .spareparts-table td:nth-child(5)::before { content: "Lager"; }
    .spareparts-table td:nth-child(6)::before { content: "Min"; }
    .spareparts-table td:nth-child(7)::before { content: "Åtgärder"; }

    .spareparts-table td:first-child strong {
        font-size: 0.86rem;
    }

    .spareparts-table td:first-child > div {
        font-size: 0.68rem !important;
        line-height: 1.25;
    }

    .spareparts-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
        width: 100%;
    }

    .spareparts-actions button {
        width: 100%;
        min-width: 0;
        padding: 6px 5px;
        font-size: 0.72rem;
    }

    .spareparts-form-header {
        align-items: stretch;
        gap: 8px;
    }

    .spareparts-form-header h3 {
        font-size: 1.15rem;
    }

    .spareparts-form-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }

    .spareparts-form-actions button {
        width: 100%;
        min-width: 0;
        font-size: 0.76rem;
        padding: 7px 5px;
    }

    .spareparts-form-grid {
        gap: 9px;
        margin-top: 10px;
    }

    .spareparts-form-grid label {
        font-size: 0.75rem;
    }

    .spareparts-form-grid input,
    .spareparts-form-grid textarea,
    .spareparts-form-grid select {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        font-size: 0.8rem;
    }

    /* ---------- Inställningar ---------- */
    #settings-modal {
        align-items: flex-start !important;
        justify-content: center !important;
        overflow-y: auto !important;
        box-sizing: border-box;
        padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) !important;
    }

    #settings-modal .settings-modal-content {
        width: 100% !important;
        max-width: 520px !important;
        max-height: calc(100dvh - 20px) !important;
        margin: auto !important;
        padding: 13px 12px 16px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        font-size: 0.80rem;
    }

    #settings-modal .settings-modal-content > h3 {
        margin: 2px 44px 10px 0;
        font-size: 1.22rem;
        line-height: 1.2;
    }

    #settings-modal .settings-modal-content h4 {
        font-size: 0.96rem;
        line-height: 1.2;
        margin-top: 10px;
        margin-bottom: 7px;
    }

    /* Krysset är alltid tydligt och ligger innanför telefonens skärm. */
    #settings-modal .close {
        position: sticky !important;
        top: 0 !important;
        float: right;
        z-index: 20;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        margin: -2px -2px 0 8px;
        border: 1px solid var(--border-color);
        border-radius: 50%;
        background: var(--bg-card);
        color: var(--text-color);
        font-size: 24px;
        line-height: 1;
        opacity: 1;
    }

    #settings-modal #push-notification-settings {
        margin: 8px 0 12px !important;
        padding: 9px !important;
    }

    #settings-modal #push-notification-status,
    #settings-modal #push-notification-settings p,
    #settings-modal #push-notification-settings small {
        font-size: 0.74rem !important;
        line-height: 1.3;
    }

    #settings-modal #push-notification-toggle {
        width: 100%;
        padding: 8px 7px;
        font-size: 0.78rem;
    }

    #settings-modal .settings-add-user-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        width: 100%;
    }

    #settings-modal input,
    #settings-modal select,
    #settings-modal textarea {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        font-size: 0.80rem;
        padding: 8px 9px;
    }

    #settings-modal button {
        font-size: 0.76rem;
    }

    #settings-modal #user-list-settings,
    #settings-modal #admin-login-history-list {
        max-width: 100%;
        box-sizing: border-box;
    }

    #settings-modal #user-list-settings {
        max-height: 260px !important;
    }

    #settings-modal .user-item-setting {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        align-items: start;
        padding: 8px 5px;
        min-width: 0;
    }

    #settings-modal .user-item-setting > div:first-child {
        min-width: 0 !important;
    }

    #settings-modal .user-item-name {
        font-size: 0.90rem;
        overflow-wrap: anywhere;
    }

    #settings-modal .user-item-setting label {
        font-size: 0.70rem !important;
        line-height: 1.2;
        gap: 5px !important;
    }

    #settings-modal .user-item-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 5px;
        min-width: 104px;
    }

    #settings-modal .user-item-actions button {
        width: 100%;
        margin: 0 !important;
        padding: 6px 7px;
        font-size: 0.70rem;
        white-space: nowrap;
    }

    #settings-modal .admin-login-history-section h4 {
        font-size: 0.94rem;
    }

    #settings-modal .admin-login-history-list,
    #settings-modal .admin-login-history-item {
        font-size: 0.74rem;
    }
}

/* === v1.3.5: Inställningar – enkel och säker mobil-layout ===
   Endast utseende/layout. Ingen funktionalitet ändras. */
@media (max-width: 700px) {
    #settings-modal {
        padding: 6px !important;
        align-items: flex-start !important;
        justify-content: center !important;
        overflow: hidden !important;
    }

    #settings-modal .settings-modal-content {
        width: calc(100vw - 12px) !important;
        max-width: 430px !important;
        height: auto !important;
        max-height: calc(100dvh - 12px) !important;
        margin: 0 auto !important;
        padding: 10px !important;
        border-radius: 12px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        font-size: 0.76rem !important;
        -webkit-overflow-scrolling: touch;
    }

    #settings-modal .settings-modal-content > h3 {
        margin: 1px 42px 8px 0 !important;
        font-size: 1.12rem !important;
        line-height: 1.15 !important;
    }

    #settings-modal .settings-modal-content h4 {
        margin: 8px 0 6px !important;
        font-size: 0.90rem !important;
        line-height: 1.15 !important;
    }

    #settings-modal .settings-modal-content hr {
        margin: 9px 0 !important;
    }

    #settings-modal .close {
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 30 !important;
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        padding: 0 !important;
        margin: -1px -1px 0 7px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 50% !important;
        font-size: 22px !important;
        line-height: 1 !important;
    }

    /* Telefonnotiser – samma funktion, bara kompaktare. */
    #settings-modal #push-notification-settings {
        margin: 6px 0 9px !important;
        padding: 8px !important;
        border-radius: 8px !important;
    }

    #settings-modal #push-notification-settings h4 {
        font-size: 0.88rem !important;
        margin: 0 0 4px !important;
    }

    #settings-modal #push-notification-status,
    #settings-modal #push-notification-settings p,
    #settings-modal #push-notification-settings small {
        font-size: 0.68rem !important;
        line-height: 1.25 !important;
    }

    #settings-modal #push-notification-status {
        margin-bottom: 6px !important;
    }

    #settings-modal #push-notification-toggle {
        width: 100% !important;
        min-height: 34px !important;
        padding: 6px 8px !important;
        font-size: 0.72rem !important;
        line-height: 1.15 !important;
    }

    /* Lägg till användare. */
    #settings-modal .settings-add-user-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 5px !important;
        width: 100% !important;
    }

    #settings-modal input:not([type="checkbox"]),
    #settings-modal select,
    #settings-modal textarea {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        margin-bottom: 0 !important;
        padding: 7px 8px !important;
        min-height: 34px !important;
        font-size: 0.74rem !important;
    }

    #settings-modal button {
        min-height: 32px;
        font-size: 0.70rem !important;
        line-height: 1.15 !important;
    }

    /* Viktigt: checkbox får aldrig ärva width:100% på mobil. */
    #settings-modal input[type="checkbox"] {
        width: 17px !important;
        height: 17px !important;
        min-width: 17px !important;
        max-width: 17px !important;
        margin: 0 !important;
        padding: 0 !important;
        flex: 0 0 17px !important;
        accent-color: var(--accent-blue);
    }

    /* Användarlistan: ett enkelt kort per användare. */
    #settings-modal #user-list-settings {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 245px !important;
        padding: 4px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        border-radius: 7px !important;
    }

    #settings-modal .user-item-setting {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 5px !important;
        align-items: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 7px 5px !important;
        box-sizing: border-box !important;
    }

    /* Åsidosätter inline min-width:165px från renderingen, utan att ändra JS. */
    #settings-modal .user-item-setting > div:first-child {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        gap: 3px !important;
    }

    #settings-modal .user-item-name {
        display: block !important;
        font-size: 0.82rem !important;
        line-height: 1.15 !important;
        font-weight: 700 !important;
        overflow-wrap: anywhere !important;
    }

    #settings-modal .user-item-setting label {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 6px !important;
        margin: 0 !important;
        font-size: 0.64rem !important;
        line-height: 1.15 !important;
        font-weight: 700 !important;
        white-space: normal !important;
    }

    #settings-modal .user-item-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 5px !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #settings-modal .user-item-actions button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 5px 4px !important;
        min-height: 30px !important;
        font-size: 0.65rem !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    /* Inloggningshistoriken hålls också inom telefonbredden. */
    #settings-modal .admin-login-history-section {
        margin-top: 7px !important;
    }

    #settings-modal #admin-login-history-list,
    #settings-modal .admin-login-history-list {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 190px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    #settings-modal .login-history-item {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 6px !important;
        padding: 6px 7px !important;
        font-size: 0.68rem !important;
        align-items: center !important;
    }

    #settings-modal .login-history-item span,
    #settings-modal .login-history-ip {
        font-size: 0.62rem !important;
    }
}

/* === v1.4.0: Inställningar – desktop viewport-fix ===
   Endast desktop-layout. Mobilreglerna ovan lämnas orörda. */
@media (min-width: 701px) {
    #settings-modal {
        align-items: flex-start !important;
        justify-content: center !important;
        padding: 16px 12px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    #settings-modal .settings-modal-content {
        width: min(92vw, 680px) !important;
        max-width: 680px !important;
        max-height: calc(100dvh - 32px) !important;
        margin: 0 auto !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        position: relative !important;
    }

    /* X ska alltid gå att nå, även om innehållet scrollas. */
    #settings-modal .close {
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 50 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 34px !important;
        height: 34px !important;
        margin: -4px -4px 4px 10px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 50% !important;
        background: var(--bg-card) !important;
        color: var(--text-color) !important;
        opacity: 1 !important;
        line-height: 1 !important;
        cursor: pointer !important;
    }

    #settings-modal .settings-modal-content > h3 {
        margin-top: 0 !important;
        padding-top: 2px !important;
        padding-right: 46px !important;
    }
}


/* ==========================================================
   v1.4.1 – 5 lokala service-layouts
   Standard har inga layout-override-regler och är därför
   exakt samma portalutseende som före denna funktion.
   ========================================================== */

/* Layoutväljaren är den enda nya kontrollen i Standard. */
.portal-layout-control {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    margin: 0;
    padding: 0 6px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--bg-card);
    color: var(--text-main);
    white-space: nowrap;
}

.portal-layout-label {
    margin: 0 !important;
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--text-muted);
}

.portal-layout-control select {
    width: auto;
    min-width: 142px;
    max-width: 175px;
    height: 30px;
    margin: 0;
    padding: 4px 24px 4px 7px;
    border: 0;
    border-radius: 4px;
    background: var(--bg-panel);
    color: var(--text-main);
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

body.light-theme .portal-layout-control,
body.light-theme .portal-layout-control select {
    background: #ffffff;
    color: #111827;
}

/* ----------------------------------------------------------
   2. KOMPAKT SERVICE
   Tätare klassisk servicevy. Samma arbetsflöde som Standard,
   men betydligt mer information får plats samtidigt.
   ---------------------------------------------------------- */
@media (min-width: 801px) {
    html[data-portal-layout="compact"] #app-container {
        font-size: 12.5px;
    }

    html[data-portal-layout="compact"] .top-bar {
        padding: 5px 8px !important;
        gap: 8px !important;
    }

    html[data-portal-layout="compact"] .header-logo {
        height: 31px !important;
    }

    html[data-portal-layout="compact"] .top-actions {
        gap: 4px !important;
    }

    html[data-portal-layout="compact"] .top-actions > button,
    html[data-portal-layout="compact"] .top-actions > a,
    html[data-portal-layout="compact"] .portal-layout-control {
        min-height: 30px !important;
        padding: 4px 7px !important;
        border-radius: 4px !important;
        font-size: 0.72rem !important;
    }

    html[data-portal-layout="compact"] .portal-layout-control select {
        height: 25px !important;
        min-width: 125px !important;
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="compact"] .top-version,
    html[data-portal-layout="compact"] #logged-in-user {
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="compact"] .sidebar-left {
        width: 345px !important;
        min-width: 270px !important;
        max-width: 430px !important;
        padding: 7px !important;
    }

    html[data-portal-layout="compact"] .station-list-header {
        margin-top: 8px !important;
    }

    html[data-portal-layout="compact"] .station-list-header h3,
    html[data-portal-layout="compact"] #station-details h2 {
        font-size: 1.08rem !important;
    }

    html[data-portal-layout="compact"] .filter-group {
        gap: 3px !important;
        margin-top: 6px !important;
    }

    html[data-portal-layout="compact"] .filter-btn {
        padding: 4px 5px !important;
        font-size: 0.68rem !important;
    }

    html[data-portal-layout="compact"] .search-box {
        margin-top: 6px !important;
    }

    html[data-portal-layout="compact"] .search-box input,
    html[data-portal-layout="compact"] input[type="text"],
    html[data-portal-layout="compact"] input[type="date"],
    html[data-portal-layout="compact"] textarea,
    html[data-portal-layout="compact"] select {
        padding: 5px 6px;
        font-size: 0.74rem;
    }

    html[data-portal-layout="compact"] .service-filter-box {
        gap: 3px 8px !important;
        padding: 5px !important;
    }

    html[data-portal-layout="compact"] .service-filter-box label,
    html[data-portal-layout="compact"] .service-filter-result-count {
        font-size: 0.68rem !important;
    }

    html[data-portal-layout="compact"] .station-list {
        margin-top: 5px !important;
    }

    html[data-portal-layout="compact"] .station-item {
        min-height: 28px !important;
        padding: 4px 6px !important;
        border-radius: 2px !important;
        font-size: 0.75rem !important;
    }

    html[data-portal-layout="compact"] .station-item-name {
        gap: 6px !important;
    }

    html[data-portal-layout="compact"] .check-icon,
    html[data-portal-layout="compact"] .check-icon-empty {
        width: 15px !important;
        height: 15px !important;
        font-size: 0.60rem !important;
    }

    html[data-portal-layout="compact"] .view-section {
        padding: 10px !important;
    }

    html[data-portal-layout="compact"] #station-details .details-header {
        margin-bottom: 8px !important;
    }

    html[data-portal-layout="compact"] .details-grid {
        gap: 8px !important;
    }

    html[data-portal-layout="compact"] .card {
        padding: 9px !important;
        border-radius: 5px !important;
    }

    html[data-portal-layout="compact"] .card h3 {
        margin-bottom: 7px !important;
        font-size: 0.91rem !important;
    }

    html[data-portal-layout="compact"] .form-group {
        margin-bottom: 6px !important;
    }

    html[data-portal-layout="compact"] .form-group label,
    html[data-portal-layout="compact"] .spareparts-form-grid label {
        font-size: 0.69rem !important;
    }

    html[data-portal-layout="compact"] textarea {
        min-height: 52px !important;
    }

    html[data-portal-layout="compact"] .checkbox-group {
        gap: 5px !important;
        margin-top: 5px !important;
    }

    html[data-portal-layout="compact"] .checkbox-group label {
        font-size: 0.75rem !important;
    }

    html[data-portal-layout="compact"] .workorders-header,
    html[data-portal-layout="compact"] .spareparts-header {
        margin-bottom: 8px !important;
    }

    html[data-portal-layout="compact"] .workorder-card {
        padding: 8px 10px !important;
        margin-bottom: 7px !important;
        border-radius: 5px !important;
    }

    html[data-portal-layout="compact"] .workorder-card h3,
    html[data-portal-layout="compact"] .spareparts-header h2 {
        font-size: 0.95rem !important;
    }

    html[data-portal-layout="compact"] .workorder-description,
    html[data-portal-layout="compact"] .workorder-meta,
    html[data-portal-layout="compact"] .spareparts-table {
        font-size: 0.71rem !important;
    }

    html[data-portal-layout="compact"] .spareparts-table th,
    html[data-portal-layout="compact"] .spareparts-table td {
        padding: 5px 6px !important;
    }
}

/* ----------------------------------------------------------
   3. SIDOMENY
   Programfunktionerna ligger som en riktig vertikal servicemeny.
   ---------------------------------------------------------- */
@media (min-width: 801px) {
    html[data-portal-layout="rail"] #app-container {
        display: grid !important;
        grid-template-columns: 188px minmax(0, 1fr);
        grid-template-rows: 100dvh;
        height: 100dvh !important;
    }

    html[data-portal-layout="rail"] .top-bar {
        grid-column: 1;
        grid-row: 1;
        width: 188px !important;
        height: 100dvh !important;
        min-height: 0 !important;
        padding: 10px 8px !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        border-right: 1px solid var(--border-color) !important;
        border-bottom: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    html[data-portal-layout="rail"] .header-logo {
        width: 150px !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 58px !important;
        margin: 2px auto 6px !important;
    }

    html[data-portal-layout="rail"] .top-bar .logo {
        display: none !important;
    }

    html[data-portal-layout="rail"] .top-actions {
        width: 100% !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 4px !important;
    }

    html[data-portal-layout="rail"] .top-actions > span {
        width: 100% !important;
        margin: 0 0 3px !important;
        text-align: center !important;
        font-size: 0.68rem !important;
    }

    html[data-portal-layout="rail"] .top-actions > button,
    html[data-portal-layout="rail"] .top-actions > a,
    html[data-portal-layout="rail"] .portal-layout-control {
        width: 100% !important;
        min-height: 31px !important;
        margin: 0 !important;
        padding: 5px 6px !important;
        justify-content: center !important;
        border-radius: 5px !important;
        font-size: 0.70rem !important;
        text-align: center !important;
    }

    html[data-portal-layout="rail"] .portal-layout-control {
        display: grid !important;
        gap: 3px !important;
        height: auto !important;
    }

    html[data-portal-layout="rail"] .portal-layout-label {
        font-size: 0.64rem !important;
    }

    html[data-portal-layout="rail"] .portal-layout-control select {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 27px !important;
        font-size: 0.68rem !important;
    }

    html[data-portal-layout="rail"] .main-layout {
        grid-column: 2;
        grid-row: 1;
        width: 100% !important;
        height: 100dvh !important;
        min-width: 0 !important;
    }

    html[data-portal-layout="rail"] .sidebar-left {
        width: 310px !important;
        min-width: 250px !important;
        max-width: 390px !important;
        padding: 8px !important;
    }

    html[data-portal-layout="rail"] .station-item {
        padding: 6px 7px !important;
        font-size: 0.78rem !important;
    }

    html[data-portal-layout="rail"] .view-section {
        padding: 13px !important;
    }

    html[data-portal-layout="rail"] .details-grid {
        gap: 12px !important;
    }

    html[data-portal-layout="rail"] .card {
        padding: 11px !important;
        border-radius: 6px !important;
    }

    html[data-portal-layout="rail"] .mobile-menu-btn,
    html[data-portal-layout="rail"] .mobile-map-btn {
        display: none !important;
    }
}

@media (min-width: 801px) and (max-width: 1100px) {
    html[data-portal-layout="rail"] #app-container {
        grid-template-columns: 166px minmax(0, 1fr);
    }

    html[data-portal-layout="rail"] .top-bar {
        width: 166px !important;
    }

    html[data-portal-layout="rail"] .sidebar-left {
        width: 270px !important;
        min-width: 230px !important;
    }
}

/* ----------------------------------------------------------
   4. STATIONSBORD
   Stationerna ligger över arbetsytan som ett servicebord.
   ---------------------------------------------------------- */
@media (min-width: 801px) {
    html[data-portal-layout="board"] .top-bar {
        padding: 6px 10px !important;
    }

    html[data-portal-layout="board"] .header-logo {
        height: 34px !important;
    }

    html[data-portal-layout="board"] .top-actions {
        gap: 5px !important;
    }

    html[data-portal-layout="board"] .top-actions > button,
    html[data-portal-layout="board"] .top-actions > a {
        padding: 6px 8px !important;
        font-size: 0.74rem !important;
    }

    html[data-portal-layout="board"] .main-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: 252px minmax(0, 1fr) !important;
        min-width: 0 !important;
    }

    html[data-portal-layout="board"] .sidebar-left {
        grid-row: 1;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 252px !important;
        display: grid !important;
        grid-template-columns: 145px minmax(300px, 0.9fr) minmax(390px, 1.35fr) !important;
        grid-template-rows: auto minmax(0, 1fr) !important;
        gap: 8px 12px !important;
        padding: 8px 10px !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--border-color) !important;
        overflow: hidden !important;
    }

    html[data-portal-layout="board"] .year-selector {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
    }

    html[data-portal-layout="board"] .year-selector label {
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="board"] .station-list-header {
        grid-column: 1;
        grid-row: 2;
        margin: 0 !important;
        align-self: start !important;
        padding-top: 5px;
    }

    html[data-portal-layout="board"] .station-list-header h3 {
        font-size: 0.95rem !important;
    }

    html[data-portal-layout="board"] .filter-group {
        grid-column: 2;
        grid-row: 1;
        margin: 0 !important;
        gap: 4px !important;
        align-self: start;
    }

    html[data-portal-layout="board"] .filter-btn {
        padding: 5px 5px !important;
        font-size: 0.68rem !important;
    }

    html[data-portal-layout="board"] .search-box {
        grid-column: 3;
        grid-row: 1;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(130px, 0.75fr) minmax(240px, 1.25fr) !important;
        gap: 5px 8px !important;
        align-items: start !important;
    }

    html[data-portal-layout="board"] .search-box > #station-search {
        grid-column: 1;
        grid-row: 1;
        padding: 5px 6px !important;
        font-size: 0.72rem !important;
    }

    html[data-portal-layout="board"] .service-filter-box {
        grid-column: 2;
        grid-row: 1 / span 2;
        margin: 0 !important;
        padding: 4px !important;
        gap: 3px 7px !important;
    }

    html[data-portal-layout="board"] .service-filter-box label,
    html[data-portal-layout="board"] .service-filter-result-count {
        font-size: 0.64rem !important;
    }

    html[data-portal-layout="board"] #service-filter-result-count {
        grid-column: 1;
        grid-row: 2;
        margin: 0 !important;
        padding: 4px 5px !important;
    }

    html[data-portal-layout="board"] .station-list {
        grid-column: 2 / 4;
        grid-row: 2;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(185px, 1fr)) !important;
        grid-auto-rows: min-content !important;
        gap: 2px 6px !important;
        align-content: start !important;
        overflow: auto !important;
        min-height: 0 !important;
        padding-right: 4px;
    }

    html[data-portal-layout="board"] .station-item {
        min-width: 0 !important;
        min-height: 27px !important;
        padding: 4px 6px !important;
        border: 1px solid transparent;
        border-radius: 4px !important;
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="board"] .station-item:hover {
        border-color: var(--border-color);
    }

    html[data-portal-layout="board"] .station-item-name {
        min-width: 0 !important;
        gap: 5px !important;
    }

    html[data-portal-layout="board"] .check-icon,
    html[data-portal-layout="board"] .check-icon-empty {
        width: 14px !important;
        height: 14px !important;
        font-size: 0.56rem !important;
    }

    html[data-portal-layout="board"] .resizer {
        display: none !important;
    }

    html[data-portal-layout="board"] .content-area {
        grid-row: 2;
        width: 100% !important;
        min-width: 0 !important;
    }

    html[data-portal-layout="board"] .view-section {
        padding: 12px !important;
    }

    html[data-portal-layout="board"] #station-details .details-header {
        margin-bottom: 10px !important;
    }

    html[data-portal-layout="board"] .details-grid {
        gap: 10px !important;
    }

    html[data-portal-layout="board"] .card {
        padding: 10px !important;
    }
}

@media (min-width: 801px) and (max-width: 1250px) {
    html[data-portal-layout="board"] .sidebar-left {
        grid-template-columns: 125px minmax(250px, 0.85fr) minmax(330px, 1.15fr) !important;
    }

    html[data-portal-layout="board"] .station-list {
        grid-template-columns: repeat(3, minmax(175px, 1fr)) !important;
    }
}

/* ----------------------------------------------------------
   5. FOKUS HÖGER
   Stor arbetsyta vänster, stationer som navigator till höger.
   ---------------------------------------------------------- */
@media (min-width: 801px) {
    html[data-portal-layout="focus-right"] .top-bar {
        padding: 6px 10px !important;
        gap: 8px !important;
    }

    html[data-portal-layout="focus-right"] .header-logo {
        height: 34px !important;
    }

    html[data-portal-layout="focus-right"] .top-actions {
        gap: 4px !important;
    }

    html[data-portal-layout="focus-right"] .top-actions > button,
    html[data-portal-layout="focus-right"] .top-actions > a {
        min-height: 31px !important;
        padding: 5px 8px !important;
        font-size: 0.72rem !important;
    }

    html[data-portal-layout="focus-right"] .main-layout {
        flex-direction: row-reverse !important;
    }

    html[data-portal-layout="focus-right"] .sidebar-left {
        width: 318px !important;
        min-width: 285px !important;
        max-width: 360px !important;
        padding: 8px !important;
        border-right: 0 !important;
        border-left: 1px solid var(--border-color) !important;
        box-shadow: -8px 0 22px rgba(0, 0, 0, 0.10);
    }

    html[data-portal-layout="focus-right"] .resizer {
        display: none !important;
    }

    html[data-portal-layout="focus-right"] .filter-group {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 4px !important;
    }

    html[data-portal-layout="focus-right"] .filter-btn {
        padding: 5px !important;
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="focus-right"] .station-item {
        padding: 6px 7px !important;
        margin-bottom: 2px;
        border-bottom: 1px solid color-mix(in srgb, var(--border-color) 55%, transparent);
        border-radius: 3px !important;
        font-size: 0.75rem !important;
    }

    html[data-portal-layout="focus-right"] .content-area {
        order: 3;
    }

    html[data-portal-layout="focus-right"] .view-section {
        padding: 13px 15px !important;
    }

    html[data-portal-layout="focus-right"] .details-grid {
        grid-template-columns: minmax(0, 1.35fr) minmax(330px, 0.65fr) !important;
        gap: 11px !important;
    }

    html[data-portal-layout="focus-right"] .card {
        padding: 11px !important;
        border-radius: 5px !important;
        border-left: 3px solid color-mix(in srgb, var(--accent-blue) 60%, transparent);
    }

    html[data-portal-layout="focus-right"] .station-reminders-card,
    html[data-portal-layout="focus-right"] .history-card {
        border-left-color: var(--border-color);
    }

    html[data-portal-layout="focus-right"] .form-group {
        margin-bottom: 7px !important;
    }

    html[data-portal-layout="focus-right"] textarea {
        min-height: 60px !important;
    }

    html[data-portal-layout="focus-right"] .workorder-card {
        border-radius: 5px !important;
    }
}

/* ==========================================================
   MOBIL – layoutväljare + säkra mobilvarianter
   Standard fortsätter använda befintlig mobil-CSS.
   ========================================================== */
@media (max-width: 800px) {
    /* Dropdownen hör till den utfällda mobilmenyn. */
    .top-actions > .portal-layout-control {
        display: none !important;
    }

    .top-actions.mobile-menu-open > .portal-layout-control {
        display: flex !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-height: 38px !important;
        padding: 4px 6px !important;
    }

    .top-actions.mobile-menu-open > .portal-layout-control .portal-layout-label {
        flex: 0 0 auto;
        font-size: 0.72rem !important;
    }

    .top-actions.mobile-menu-open > .portal-layout-control select {
        flex: 1 1 auto;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 30px !important;
        font-size: 0.76rem !important;
    }

    /* Kompakt service på mobil */
    html[data-portal-layout="compact"] #app-container {
        font-size: 0.88rem;
    }

    html[data-portal-layout="compact"] .top-bar {
        padding: 5px 7px !important;
    }

    html[data-portal-layout="compact"] .header-logo {
        height: 47px !important;
    }

    html[data-portal-layout="compact"] .filter-btn {
        padding: 5px 4px !important;
        font-size: 0.72rem !important;
    }

    html[data-portal-layout="compact"] .station-item {
        padding: 6px !important;
        font-size: 0.78rem !important;
    }

    html[data-portal-layout="compact"] .view-section {
        padding: 9px !important;
    }

    html[data-portal-layout="compact"] .card {
        padding: 9px !important;
    }

    html[data-portal-layout="compact"] input[type="text"],
    html[data-portal-layout="compact"] input[type="date"],
    html[data-portal-layout="compact"] textarea,
    html[data-portal-layout="compact"] select {
        font-size: 0.78rem;
        padding: 6px !important;
    }

    /* Sidomeny blir ett tvåkolumners funktionsfält när mobilmenyn öppnas. */
    html[data-portal-layout="rail"] .top-bar {
        border-left: 4px solid var(--accent-blue) !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open {
        grid-template-columns: 1fr 1fr !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open > button:not(#btn-mobile-menu):not(#btn-mobile-map):not(#btn-toggle-map),
    html[data-portal-layout="rail"] .top-actions.mobile-menu-open > a {
        grid-column: auto !important;
        min-height: 40px !important;
        font-size: 0.76rem !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open > .portal-layout-control {
        grid-column: 1 / -1 !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open #logged-in-user {
        grid-column: 1 / 2 !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open #btn-mobile-map {
        grid-column: 1 / 2 !important;
    }

    html[data-portal-layout="rail"] .top-actions.mobile-menu-open #btn-mobile-menu {
        grid-column: 2 / 3 !important;
    }

    /* Stationsbord på mobil: stationerna blir ett tvåkolumners rutnät. */
    html[data-portal-layout="board"] .filter-group {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 5px !important;
    }

    html[data-portal-layout="board"] .station-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-auto-rows: min-content !important;
        gap: 4px !important;
        height: 330px !important;
        max-height: 330px !important;
    }

    html[data-portal-layout="board"] .station-item {
        min-width: 0 !important;
        padding: 7px 6px !important;
        border: 1px solid var(--border-color);
        font-size: 0.70rem !important;
    }

    html[data-portal-layout="board"] .station-item-name {
        min-width: 0 !important;
        gap: 4px !important;
    }

    html[data-portal-layout="board"] .station-item-checks {
        display: none !important;
    }

    /* Fokus höger på telefon: tydliga smala servicekort. */
    html[data-portal-layout="focus-right"] .station-item {
        padding: 7px 6px !important;
        border-bottom: 1px solid var(--border-color);
        border-radius: 0 !important;
        font-size: 0.78rem !important;
    }

    html[data-portal-layout="focus-right"] .card {
        border-radius: 5px !important;
        border-left: 3px solid var(--accent-blue);
        padding: 10px !important;
    }

    html[data-portal-layout="focus-right"] .details-grid {
        gap: 7px !important;
    }
}


/* ==========================================================
   v1.4.2 – TRE NYA SERVICE-LAYOUTER
   Standard och Kompakt service ovan är HELT ORÖRDA.
   De gamla rail/board/focus-right-reglerna ligger kvar men
   används inte längre eftersom de inte går att välja.
   ========================================================== */

.layout-station-close,
.layout-module-close {
    display: none;
}

/* ----------------------------------------------------------
   3. SERVICECENTER
   Turkos/blå servicekonsol. Stationen öppnas i en sidopanel.
   ---------------------------------------------------------- */
html[data-portal-layout="service-center"] body {
    --bg-dark: #061417;
    --bg-panel: #0b2227;
    --bg-card: #11353b;
    --text-main: #eaffff;
    --text-muted: #8ebfc2;
    --accent-blue: #18b7a6;
    --accent-red: #ff5b64;
    --border-color: #245058;
    --color-amber: #f6b84a;
    background:
        radial-gradient(circle at 75% 10%, rgba(24,183,166,.10), transparent 35%),
        #061417;
}

@media (min-width: 801px) {
    html[data-portal-layout="service-center"] .top-bar {
        background: linear-gradient(90deg, #071c22 0%, #0c3037 55%, #0b2227 100%) !important;
        border-bottom: 1px solid #23626b !important;
        padding: 7px 10px !important;
        box-shadow: 0 6px 22px rgba(0,0,0,.28);
    }

    html[data-portal-layout="service-center"] .header-logo {
        height: 35px !important;
    }

    html[data-portal-layout="service-center"] .top-actions {
        gap: 5px !important;
    }

    html[data-portal-layout="service-center"] .top-actions > button,
    html[data-portal-layout="service-center"] .top-actions > a {
        min-height: 31px !important;
        padding: 5px 8px !important;
        border-color: #28535b !important;
        background: rgba(15,53,60,.78) !important;
        font-size: .72rem !important;
    }

    html[data-portal-layout="service-center"] .top-actions > button:hover,
    html[data-portal-layout="service-center"] .top-actions > a:hover {
        background: #17454c !important;
    }

    html[data-portal-layout="service-center"] .sidebar-left {
        width: 330px !important;
        min-width: 285px !important;
        max-width: 390px !important;
        padding: 8px !important;
        background: linear-gradient(180deg, #0a2025, #081a1f) !important;
        border-right: 1px solid #245058 !important;
    }

    html[data-portal-layout="service-center"] .year-selector label,
    html[data-portal-layout="service-center"] .station-list-header h3 {
        color: #baf8f0 !important;
    }

    html[data-portal-layout="service-center"] .filter-group {
        gap: 4px !important;
    }

    html[data-portal-layout="service-center"] .filter-btn {
        padding: 5px !important;
        border: 1px solid #244c53 !important;
        background: #102d33 !important;
        font-size: .70rem !important;
    }

    html[data-portal-layout="service-center"] .filter-btn.active {
        background: #18b7a6 !important;
        border-color: #43d7c7 !important;
        color: #031415 !important;
    }

    html[data-portal-layout="service-center"] .station-item {
        min-height: 31px !important;
        padding: 5px 7px !important;
        margin-bottom: 2px;
        border: 1px solid transparent;
        border-radius: 5px !important;
        font-size: .76rem !important;
    }

    html[data-portal-layout="service-center"] .station-item:hover {
        border-color: #28535b !important;
        background: #12333a !important;
    }

    html[data-portal-layout="service-center"] .station-item.active {
        background: linear-gradient(90deg, #0f776f, #159b90) !important;
        border-color: #43d7c7 !important;
        color: white !important;
    }

    html[data-portal-layout="service-center"] .content-area {
        background:
            linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
            #061417 !important;
        background-size: 26px 26px !important;
    }

    html[data-portal-layout="service-center"] #empty-state {
        padding-top: 65px !important;
        opacity: .82;
    }

    /* Stationen är en separat servicepanel till höger. */
    html[data-portal-layout="service-center"] #station-details:not(.hidden) {
        position: fixed !important;
        z-index: 4800 !important;
        top: 72px !important;
        right: 18px !important;
        bottom: 18px !important;
        width: min(900px, calc(100vw - 385px)) !important;
        max-width: 900px !important;
        padding: 16px !important;
        overflow: auto !important;
        background: linear-gradient(180deg, #0b252a, #071a1e) !important;
        border: 1px solid #2a6870 !important;
        border-radius: 12px !important;
        box-shadow: 0 28px 80px rgba(0,0,0,.62) !important;
    }

    html[data-portal-layout="service-center"] .layout-station-close {
        display: inline-flex !important;
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 25 !important;
        width: 34px !important;
        height: 34px !important;
        margin: 0 0 8px 10px !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1px solid #34727a !important;
        border-radius: 50% !important;
        background: #12373d !important;
        color: #dffffb !important;
        font-size: 1.4rem !important;
        cursor: pointer !important;
    }

    html[data-portal-layout="service-center"] #station-details .details-header {
        margin-bottom: 12px !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid #245058 !important;
    }

    html[data-portal-layout="service-center"] #station-details h2 {
        color: #baf8f0 !important;
        font-size: 1.18rem !important;
    }

    html[data-portal-layout="service-center"] .details-grid {
        gap: 10px !important;
    }

    html[data-portal-layout="service-center"] .card {
        padding: 11px !important;
        border: 1px solid #20484f !important;
        border-radius: 7px !important;
        background: rgba(15,47,53,.88) !important;
        box-shadow: inset 3px 0 0 rgba(24,183,166,.42);
    }

    html[data-portal-layout="service-center"] .card h3 {
        color: #a8eee6 !important;
        font-size: .90rem !important;
    }

    html[data-portal-layout="service-center"] input,
    html[data-portal-layout="service-center"] textarea,
    html[data-portal-layout="service-center"] select {
        background: #0b252a !important;
        border-color: #2b5961 !important;
        color: #eaffff !important;
    }
}

/* ----------------------------------------------------------
   4. FÄLTLÄGE
   Grafit + orange/grönt. Station, reservdelar och arbetsordrar
   öppnas som separata arbetsrutor ovanpå navigatorn.
   ---------------------------------------------------------- */
html[data-portal-layout="field"] body {
    --bg-dark: #141411;
    --bg-panel: #1c1d18;
    --bg-card: #292a22;
    --text-main: #fffdf0;
    --text-muted: #b9b59b;
    --accent-blue: #e4a11b;
    --accent-red: #e95a4f;
    --border-color: #4a4936;
    --color-amber: #f5b52d;
    background: #141411;
}

@media (min-width: 801px) {
    html[data-portal-layout="field"] .top-bar {
        padding: 7px 10px !important;
        background: #191a15 !important;
        border-bottom: 3px solid #d79116 !important;
    }

    html[data-portal-layout="field"] .header-logo {
        height: 35px !important;
    }

    html[data-portal-layout="field"] .top-actions {
        gap: 5px !important;
    }

    html[data-portal-layout="field"] .top-actions > button,
    html[data-portal-layout="field"] .top-actions > a {
        min-height: 34px !important;
        padding: 6px 9px !important;
        border: 1px solid #4d4b37 !important;
        border-radius: 4px !important;
        background: #2a2a21 !important;
        color: #fff8df !important;
        font-size: .73rem !important;
        font-weight: 800 !important;
    }

    html[data-portal-layout="field"] .top-actions > button.active,
    html[data-portal-layout="field"] #btn-toggle-spareparts.active {
        background: #d79116 !important;
        border-color: #f0b94c !important;
        color: #17130a !important;
    }

    html[data-portal-layout="field"] .sidebar-left {
        width: 370px !important;
        min-width: 320px !important;
        max-width: 430px !important;
        padding: 9px !important;
        background: #1a1b16 !important;
        border-right: 1px solid #4a4936 !important;
    }

    html[data-portal-layout="field"] .station-list-header h3 {
        color: #f0b94c !important;
        text-transform: uppercase;
        letter-spacing: .05em;
        font-size: .92rem !important;
    }

    html[data-portal-layout="field"] .filter-btn {
        min-height: 34px !important;
        border: 1px solid #4d4b37 !important;
        background: #26271f !important;
        color: #e8e4ce !important;
        font-size: .70rem !important;
    }

    html[data-portal-layout="field"] .filter-btn.active {
        background: #d79116 !important;
        color: #17130a !important;
        border-color: #f0b94c !important;
    }

    html[data-portal-layout="field"] .station-item {
        min-height: 35px !important;
        padding: 6px 8px !important;
        margin-bottom: 3px !important;
        border: 1px solid #35352a !important;
        border-left: 4px solid #555540 !important;
        border-radius: 4px !important;
        background: #20211b !important;
        font-size: .77rem !important;
    }

    html[data-portal-layout="field"] .station-item:hover {
        background: #2b2c23 !important;
        border-left-color: #d79116 !important;
    }

    html[data-portal-layout="field"] .station-item.active {
        background: #3b321b !important;
        border-color: #8a681e !important;
        border-left-color: #f0b94c !important;
        color: #fff4c6 !important;
    }

    html[data-portal-layout="field"] .content-area {
        background:
            radial-gradient(circle at 50% 20%, rgba(215,145,22,.08), transparent 38%),
            #141411 !important;
    }

    /* Stationen öppnas i en egen arbetsruta. */
    html[data-portal-layout="field"] #station-details:not(.hidden) {
        position: fixed !important;
        z-index: 5200 !important;
        inset: 6vh 6vw !important;
        width: auto !important;
        max-width: none !important;
        padding: 15px !important;
        overflow: auto !important;
        background: #1c1d18 !important;
        border: 2px solid #a8791c !important;
        border-radius: 8px !important;
        box-shadow: 0 30px 95px rgba(0,0,0,.78) !important;
    }

    html[data-portal-layout="field"] .layout-station-close,
    html[data-portal-layout="field"] .layout-module-close {
        display: inline-flex !important;
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 30 !important;
        width: 38px !important;
        height: 38px !important;
        margin: 0 0 8px 10px !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1px solid #9c751f !important;
        border-radius: 5px !important;
        background: #3c321b !important;
        color: #ffd978 !important;
        font-size: 1.45rem !important;
        font-weight: 800 !important;
        cursor: pointer !important;
    }

    html[data-portal-layout="field"] #station-details .details-header {
        clear: both;
        margin-bottom: 11px !important;
        padding: 8px 0 11px !important;
        border-bottom: 1px solid #4a4936 !important;
    }

    html[data-portal-layout="field"] #station-details h2,
    html[data-portal-layout="field"] .workorders-header h2,
    html[data-portal-layout="field"] .spareparts-header h2 {
        color: #ffd978 !important;
    }

    html[data-portal-layout="field"] .details-grid {
        gap: 10px !important;
    }

    html[data-portal-layout="field"] .card {
        padding: 11px !important;
        border: 1px solid #464532 !important;
        border-radius: 5px !important;
        background: #24251e !important;
    }

    html[data-portal-layout="field"] .card h3 {
        color: #d9d4b8 !important;
    }

    html[data-portal-layout="field"] input,
    html[data-portal-layout="field"] textarea,
    html[data-portal-layout="field"] select {
        background: #171812 !important;
        color: #fffdf0 !important;
        border-color: #56543d !important;
    }

    /* Arbetsordrar och reservdelar blir också egna arbetsrutor. */
    html[data-portal-layout="field"] #workorders-view:not(.hidden),
    html[data-portal-layout="field"] #spareparts-view:not(.hidden) {
        position: fixed !important;
        z-index: 5100 !important;
        inset: 7vh 7vw !important;
        height: auto !important;
        overflow: auto !important;
        padding: 15px !important;
        background: #1c1d18 !important;
        border: 2px solid #8a681e !important;
        border-radius: 8px !important;
        box-shadow: 0 30px 95px rgba(0,0,0,.78) !important;
    }

    html[data-portal-layout="field"] #workorders-view .workorders-header,
    html[data-portal-layout="field"] #spareparts-view .spareparts-header {
        clear: both;
        padding-top: 3px;
    }

    html[data-portal-layout="field"] .btn-primary {
        background: #d79116 !important;
        border-color: #f0b94c !important;
        color: #17130a !important;
        font-weight: 800 !important;
    }
}

/* ----------------------------------------------------------
   5. KONTROLLRUM
   Ljus stål/blå driftbild på dator. Ingen popup: fokus på
   snabb överblick, raka linjer och kompakt instrumentkänsla.
   ---------------------------------------------------------- */
html[data-portal-layout="control-room"] body {
    --bg-dark: #dbe5ec;
    --bg-panel: #edf3f7;
    --bg-card: #ffffff;
    --text-main: #13283a;
    --text-muted: #607384;
    --accent-blue: #0b6f9f;
    --accent-red: #c94642;
    --border-color: #a9bac7;
    --color-amber: #b77912;
    background: #dbe5ec;
    color: #13283a;
}

@media (min-width: 801px) {
    html[data-portal-layout="control-room"] .top-bar {
        padding: 6px 10px !important;
        background: linear-gradient(90deg, #17384f, #24536d) !important;
        border-bottom: 3px solid #70bedc !important;
        color: white !important;
        box-shadow: 0 4px 12px rgba(20,55,75,.22);
    }

    html[data-portal-layout="control-room"] .header-logo {
        height: 36px !important;
        filter: drop-shadow(0 1px 0 rgba(255,255,255,.15));
    }

    html[data-portal-layout="control-room"] #logged-in-user,
    html[data-portal-layout="control-room"] .top-version {
        color: #eefaff !important;
    }

    html[data-portal-layout="control-room"] .top-actions {
        gap: 4px !important;
    }

    html[data-portal-layout="control-room"] .top-actions > button,
    html[data-portal-layout="control-room"] .top-actions > a {
        min-height: 30px !important;
        padding: 5px 8px !important;
        border: 1px solid #5f8da5 !important;
        border-radius: 3px !important;
        background: rgba(239,248,252,.94) !important;
        color: #17384f !important;
        font-size: .70rem !important;
        font-weight: 800 !important;
    }

    html[data-portal-layout="control-room"] .top-actions > button.active,
    html[data-portal-layout="control-room"] #btn-toggle-spareparts.active {
        background: #70bedc !important;
        border-color: #b8e7f5 !important;
        color: #0c2d3e !important;
    }

    html[data-portal-layout="control-room"] .portal-layout-control {
        background: rgba(239,248,252,.94) !important;
        border-color: #5f8da5 !important;
    }

    html[data-portal-layout="control-room"] .portal-layout-label {
        color: #355b70 !important;
    }

    html[data-portal-layout="control-room"] .portal-layout-control select {
        background: #ffffff !important;
        color: #17384f !important;
    }

    html[data-portal-layout="control-room"] .sidebar-left {
        width: 315px !important;
        min-width: 275px !important;
        max-width: 360px !important;
        padding: 8px !important;
        background: #edf3f7 !important;
        border-right: 2px solid #9db5c4 !important;
        color: #13283a !important;
    }

    html[data-portal-layout="control-room"] .year-selector label,
    html[data-portal-layout="control-room"] .station-list-header h3 {
        color: #244b63 !important;
        text-transform: uppercase;
        letter-spacing: .04em;
        font-size: .82rem !important;
    }

    html[data-portal-layout="control-room"] .year-selector select,
    html[data-portal-layout="control-room"] #station-search {
        background: #ffffff !important;
        color: #13283a !important;
        border: 1px solid #a9bac7 !important;
        border-radius: 2px !important;
    }

    html[data-portal-layout="control-room"] .filter-group {
        gap: 3px !important;
    }

    html[data-portal-layout="control-room"] .filter-btn {
        padding: 5px !important;
        border: 1px solid #a9bac7 !important;
        border-radius: 2px !important;
        background: #dfeaf0 !important;
        color: #36586b !important;
        font-size: .68rem !important;
    }

    html[data-portal-layout="control-room"] .filter-btn.active {
        background: #0b6f9f !important;
        border-color: #07567c !important;
        color: white !important;
    }

    html[data-portal-layout="control-room"] .service-filter-box,
    html[data-portal-layout="control-room"] .service-filter-result-count {
        background: #e5edf2 !important;
        border-color: #b5c4ce !important;
        color: #405f71 !important;
    }

    html[data-portal-layout="control-room"] .station-list {
        margin-top: 6px !important;
    }

    html[data-portal-layout="control-room"] .station-item {
        min-height: 30px !important;
        padding: 5px 7px !important;
        margin-bottom: 1px !important;
        border: 1px solid transparent;
        border-bottom-color: #cbd7df !important;
        border-radius: 1px !important;
        color: #17384f !important;
        font-size: .74rem !important;
    }

    html[data-portal-layout="control-room"] .station-item:hover {
        background: #dbe9f1 !important;
        border-color: #aac5d4 !important;
    }

    html[data-portal-layout="control-room"] .station-item.active {
        background: #0b6f9f !important;
        color: white !important;
        border-color: #07567c !important;
    }

    html[data-portal-layout="control-room"] .content-area {
        background:
            linear-gradient(rgba(40,80,105,.035) 1px, transparent 1px),
            linear-gradient(90deg, rgba(40,80,105,.035) 1px, transparent 1px),
            #dbe5ec !important;
        background-size: 20px 20px !important;
        color: #13283a !important;
    }

    html[data-portal-layout="control-room"] .view-section {
        padding: 12px !important;
    }

    html[data-portal-layout="control-room"] #empty-state {
        color: #62798a !important;
        padding-top: 65px !important;
    }

    html[data-portal-layout="control-room"] #station-details .details-header {
        margin-bottom: 10px !important;
        padding: 9px 11px !important;
        border: 1px solid #9fb4c1 !important;
        border-left: 5px solid #0b6f9f !important;
        background: #edf4f7 !important;
    }

    html[data-portal-layout="control-room"] #station-details h2,
    html[data-portal-layout="control-room"] .workorders-header h2,
    html[data-portal-layout="control-room"] .spareparts-header h2 {
        color: #153f58 !important;
    }

    html[data-portal-layout="control-room"] .details-grid {
        gap: 9px !important;
    }

    html[data-portal-layout="control-room"] .card,
    html[data-portal-layout="control-room"] .workorder-card,
    html[data-portal-layout="control-room"] .spareparts-table-card,
    html[data-portal-layout="control-room"] .spareparts-form-card {
        padding: 10px !important;
        border: 1px solid #a9bac7 !important;
        border-radius: 3px !important;
        background: rgba(255,255,255,.94) !important;
        color: #13283a !important;
        box-shadow: 0 2px 5px rgba(31,63,82,.08) !important;
    }

    html[data-portal-layout="control-room"] .card h3 {
        margin-bottom: 7px !important;
        padding-bottom: 5px !important;
        border-bottom: 1px solid #d2dee5;
        color: #27556e !important;
        font-size: .87rem !important;
    }

    html[data-portal-layout="control-room"] input,
    html[data-portal-layout="control-room"] textarea,
    html[data-portal-layout="control-room"] select {
        background: #ffffff !important;
        border: 1px solid #a9bac7 !important;
        color: #13283a !important;
    }

    html[data-portal-layout="control-room"] input::placeholder,
    html[data-portal-layout="control-room"] textarea::placeholder {
        color: #728796 !important;
    }

    html[data-portal-layout="control-room"] .btn-secondary {
        background: #dce8ef !important;
        border-color: #a1b6c4 !important;
        color: #244b63 !important;
    }

    html[data-portal-layout="control-room"] .btn-primary {
        background: #0b6f9f !important;
        border-color: #07567c !important;
        color: white !important;
    }

    html[data-portal-layout="control-room"] .history-meta,
    html[data-portal-layout="control-room"] .workorder-meta,
    html[data-portal-layout="control-room"] .spareparts-header p {
        color: #657b8a !important;
    }
}

/* ==========================================================
   MOBIL – endast de tre nya layouterna.
   Standard + Kompakt använder exakt tidigare mobilregler.
   ========================================================== */
@media (max-width: 800px) {
    /* Servicecenter: kompakt navigator + fullbredd sidopanel */
    html[data-portal-layout="service-center"] body {
        --bg-dark: #061417;
        --bg-panel: #0b2227;
        --bg-card: #11353b;
        --text-main: #eaffff;
        --text-muted: #8ebfc2;
        --accent-blue: #18b7a6;
        --border-color: #245058;
    }

    html[data-portal-layout="service-center"] .top-bar {
        border-top: 4px solid #18b7a6 !important;
        background: #081f24 !important;
    }

    html[data-portal-layout="service-center"] .station-item {
        padding: 7px 6px !important;
        border-bottom: 1px solid #23474e !important;
        border-radius: 2px !important;
        font-size: .78rem !important;
    }

    html[data-portal-layout="service-center"] #station-details:not(.hidden) {
        position: fixed !important;
        z-index: 5200 !important;
        inset: 8px !important;
        padding: 10px !important;
        overflow: auto !important;
        background: #081d21 !important;
        border: 1px solid #2a6870 !important;
        border-radius: 10px !important;
        box-shadow: 0 20px 70px rgba(0,0,0,.72) !important;
    }

    html[data-portal-layout="service-center"] .layout-station-close {
        display: inline-flex !important;
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 30 !important;
        width: 38px !important;
        height: 38px !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1px solid #34727a !important;
        border-radius: 50% !important;
        background: #12373d !important;
        color: white !important;
        font-size: 1.45rem !important;
    }

    html[data-portal-layout="service-center"] #station-details .details-header {
        clear: both;
    }

    html[data-portal-layout="service-center"] .card {
        border-left: 3px solid #18b7a6 !important;
        background: #0f2d33 !important;
    }

    /* Fältläge: popup-arbetsytor även på telefon */
    html[data-portal-layout="field"] body {
        --bg-dark: #141411;
        --bg-panel: #1c1d18;
        --bg-card: #292a22;
        --text-main: #fffdf0;
        --text-muted: #b9b59b;
        --accent-blue: #d79116;
        --border-color: #4a4936;
    }

    html[data-portal-layout="field"] .top-bar {
        border-top: 4px solid #d79116 !important;
        background: #191a15 !important;
    }

    html[data-portal-layout="field"] .filter-btn.active {
        background: #d79116 !important;
        color: #17130a !important;
    }

    html[data-portal-layout="field"] .station-item {
        padding: 8px 7px !important;
        margin-bottom: 3px !important;
        border: 1px solid #3e3e30 !important;
        border-left: 4px solid #706b48 !important;
        border-radius: 4px !important;
        background: #20211b !important;
        font-size: .78rem !important;
    }

    html[data-portal-layout="field"] #station-details:not(.hidden),
    html[data-portal-layout="field"] #workorders-view:not(.hidden),
    html[data-portal-layout="field"] #spareparts-view:not(.hidden) {
        position: fixed !important;
        z-index: 5400 !important;
        inset: 6px !important;
        width: auto !important;
        height: auto !important;
        padding: 10px !important;
        overflow: auto !important;
        background: #1c1d18 !important;
        border: 2px solid #8a681e !important;
        border-radius: 7px !important;
        box-shadow: 0 24px 80px rgba(0,0,0,.82) !important;
    }

    html[data-portal-layout="field"] .layout-station-close,
    html[data-portal-layout="field"] .layout-module-close {
        display: inline-flex !important;
        position: sticky !important;
        top: 0 !important;
        float: right !important;
        z-index: 40 !important;
        width: 40px !important;
        height: 40px !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1px solid #9c751f !important;
        border-radius: 5px !important;
        background: #3c321b !important;
        color: #ffd978 !important;
        font-size: 1.5rem !important;
    }

    html[data-portal-layout="field"] #station-details .details-header,
    html[data-portal-layout="field"] #workorders-view .workorders-header,
    html[data-portal-layout="field"] #spareparts-view .spareparts-header {
        clear: both;
    }

    html[data-portal-layout="field"] .card {
        border: 1px solid #464532 !important;
        background: #24251e !important;
    }

    /* Kontrollrum: mobil blir mörkare blå så text/kontrast hålls bra. */
    html[data-portal-layout="control-room"] body {
        --bg-dark: #132431;
        --bg-panel: #193446;
        --bg-card: #21475d;
        --text-main: #f3fbff;
        --text-muted: #a9c2d0;
        --accent-blue: #47b9e5;
        --accent-red: #ff6963;
        --border-color: #37647c;
        background: #132431;
        color: #f3fbff;
    }

    html[data-portal-layout="control-room"] .top-bar {
        border-top: 4px solid #47b9e5 !important;
        background: #163044 !important;
    }

    html[data-portal-layout="control-room"] .filter-btn {
        background: #1c3e52 !important;
        border-color: #37647c !important;
        color: #cce7f3 !important;
    }

    html[data-portal-layout="control-room"] .filter-btn.active {
        background: #47b9e5 !important;
        color: #0c2838 !important;
    }

    html[data-portal-layout="control-room"] .station-item {
        padding: 7px 6px !important;
        border-bottom: 1px solid #31596e !important;
        border-radius: 1px !important;
        font-size: .77rem !important;
    }

    html[data-portal-layout="control-room"] .card {
        border: 1px solid #37647c !important;
        border-radius: 3px !important;
        background: #1d4054 !important;
    }

    html[data-portal-layout="control-room"] input,
    html[data-portal-layout="control-room"] textarea,
    html[data-portal-layout="control-room"] select {
        background: #122b3b !important;
        color: #f3fbff !important;
        border-color: #3c6a80 !important;
    }
}


/* === v1.4.4: Mobil stationsheader + global Skärm-knapp === */
.station-navigate-btn {
    white-space: nowrap;
    text-decoration: none !important;
}

/* Skärmknappen finns i topbaren men ska aldrig synas på desktop/webb. */
.mobile-wake-btn {
    display: none;
}

.station-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.station-title-row #detail-name {
    margin: 0;
    min-width: 0;
}

@media (max-width: 800px) {
    /* Stationsrubrik och knappar staplas - ingen sidledes hoppressning. */
    #station-details .details-header {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        margin-bottom: 16px !important;
    }

    #station-details .station-title-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    #station-details .station-title-row #detail-name {
        margin: 0 !important;
        min-width: 0 !important;
        font-size: clamp(1.35rem, 7vw, 2rem) !important;
        line-height: 1.12 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    #station-details .station-rename-btn {
        width: auto !important;
        max-width: 118px !important;
        min-height: 38px !important;
        padding: 7px 9px !important;
        margin: 0 !important;
        white-space: normal !important;
        line-height: 1.1 !important;
        font-size: 0.76rem !important;
    }

    #station-details .details-header .actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    #station-details .details-header .actions > button,
    #station-details .details-header .actions > a {
        display: inline-flex;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
        margin: 0 !important;
        padding: 8px 9px !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        font-size: 0.82rem !important;
        line-height: 1.12 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        box-sizing: border-box !important;
    }

    /* Radera får egen hel rad; mindre risk för feltryck i fält. */
    #station-details .details-header .actions > .btn-danger-text {
        grid-column: 1 / -1 !important;
        min-height: 38px !important;
    }

    /*
       Sista skyddet ligger sist i CSS-filen så även de valbara
       portal-layouterna använder samma stabila topprad på mobil.
    */
    html[data-portal-layout] .top-actions,
    html[data-portal-layout] .top-actions.mobile-menu-open {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    html[data-portal-layout] .top-actions #logged-in-user,
    html[data-portal-layout] .top-actions.mobile-menu-open #logged-in-user {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    html[data-portal-layout] .top-actions #btn-mobile-map,
    html[data-portal-layout] .top-actions.mobile-menu-open #btn-mobile-map {
        grid-column: 1 / 2 !important;
        grid-row: 2 !important;
    }

    html[data-portal-layout] .top-actions #btn-screen-wake,
    html[data-portal-layout] .top-actions.mobile-menu-open #btn-screen-wake {
        display: inline-flex !important;
        grid-column: 2 / 3 !important;
        grid-row: 2 !important;
    }

    html[data-portal-layout] .top-actions #btn-mobile-menu,
    html[data-portal-layout] .top-actions.mobile-menu-open #btn-mobile-menu {
        grid-column: 3 / 4 !important;
        grid-row: 2 !important;
    }

    html[data-portal-layout] .top-actions.mobile-menu-open > button:not(#btn-mobile-menu):not(#btn-mobile-map):not(#btn-screen-wake):not(#btn-toggle-map),
    html[data-portal-layout] .top-actions.mobile-menu-open > a,
    html[data-portal-layout] .top-actions.mobile-menu-open > .portal-layout-control {
        grid-column: 1 / -1 !important;
    }
}


/* Desktop/webb: även om fönstret görs smalt ska Skärm-knappen inte visas. */
@media (max-width: 800px) and (hover: hover) and (pointer: fine) {
    #btn-screen-wake {
        display: none !important;
    }

    .top-actions,
    .top-actions.mobile-menu-open,
    html[data-portal-layout] .top-actions,
    html[data-portal-layout] .top-actions.mobile-menu-open {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .top-actions #btn-mobile-map,
    .top-actions.mobile-menu-open #btn-mobile-map,
    html[data-portal-layout] .top-actions #btn-mobile-map,
    html[data-portal-layout] .top-actions.mobile-menu-open #btn-mobile-map {
        grid-column: 1 / 2 !important;
        grid-row: 2 !important;
    }

    .top-actions #btn-mobile-menu,
    .top-actions.mobile-menu-open #btn-mobile-menu,
    html[data-portal-layout] .top-actions #btn-mobile-menu,
    html[data-portal-layout] .top-actions.mobile-menu-open #btn-mobile-menu {
        grid-column: 2 / 3 !important;
        grid-row: 2 !important;
    }
}

/* ==========================================================
   SERVICEPORTAL BACKUP LITE v1.5.0
   Isolerade stilar för backupdelen i Inställningar.
   ========================================================== */
.backup-admin-section {
    margin-top: 4px;
}

.backup-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.backup-section-heading h4 {
    margin: 0 0 4px;
}

.backup-section-heading p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.88rem;
    line-height: 1.35;
}

.backup-admin-badge {
    flex: 0 0 auto;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--text-muted);
    white-space: nowrap;
}

.backup-status-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.025);
}

.backup-status-icon {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid var(--border-color);
    font-size: 1.1rem;
}

.backup-status-details {
    margin-top: 3px;
    color: var(--text-muted);
    font-size: 0.84rem;
    line-height: 1.35;
}

.backup-actions {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto;
    gap: 8px;
    margin-top: 10px;
}

.backup-actions button {
    min-width: 0;
    white-space: normal;
}

.backup-help-text {
    display: block;
    margin-top: 10px;
    color: var(--text-muted);
    line-height: 1.4;
}

.backup-list-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin: 16px 0 7px;
    font-size: 0.9rem;
}

#backup-count-text {
    color: var(--text-muted);
    font-size: 0.78rem;
    text-align: right;
}

.backup-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 330px;
    overflow-y: auto;
    padding-right: 2px;
}

.backup-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.018);
}

.backup-list-item.backup-prerestore {
    border-style: dashed;
}

.backup-list-main {
    min-width: 0;
    flex: 1 1 auto;
}

.backup-list-title-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 10px;
    font-size: 0.84rem;
}

.backup-list-title-row span,
.backup-list-meta,
.backup-list-name {
    color: var(--text-muted);
}

.backup-list-meta {
    margin-top: 3px;
    font-size: 0.77rem;
    line-height: 1.35;
}

.backup-list-name {
    margin-top: 3px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.69rem;
    overflow-wrap: anywhere;
}

.backup-list-actions {
    flex: 0 0 auto;
    display: flex;
    gap: 6px;
}

.backup-empty {
    padding: 12px;
    border: 1px dashed var(--border-color);
    border-radius: 9px;
    color: var(--text-muted);
    text-align: center;
    font-size: 0.85rem;
}

@media (max-width: 700px) {
    .backup-section-heading {
        flex-direction: column;
        align-items: stretch;
    }

    .backup-admin-badge {
        align-self: flex-start;
    }

    .backup-actions {
        grid-template-columns: 1fr 1fr;
    }

    .backup-actions button:first-child {
        grid-column: 1 / -1;
    }

    .backup-list-item {
        align-items: stretch;
        flex-direction: column;
    }

    .backup-list-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .backup-list-actions button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .backup-actions {
        grid-template-columns: 1fr;
    }

    .backup-actions button:first-child {
        grid-column: auto;
    }

    .backup-list-actions {
        grid-template-columns: 1fr;
    }
}

/* =====================================================================
   v1.5.1 – KOMPAKT OCH ANVÄNDARVÄNLIG STATIONSREDIGERING
   Endast visuell layout. Inga station-/service-/backupfunktioner tas bort.
   ===================================================================== */

#station-details {
    --station-ui-gap: 12px;
    --station-ui-radius: 9px;
    --station-ui-control-h: 36px;
}

#station-details .details-header {
    gap: 12px;
    margin-bottom: 12px;
}

#station-details .station-title-row {
    gap: 9px;
}

#station-details .station-title-row #detail-name {
    font-size: clamp(1.35rem, 2vw, 1.7rem);
    line-height: 1.15;
    letter-spacing: -0.015em;
}

#station-details .station-rename-btn {
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 7px;
    font-size: 0.78rem;
    line-height: 1.1;
}

#station-details .details-header .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
}

#station-details .details-header .actions > button,
#station-details .details-header .actions > a {
    min-height: 34px;
    padding: 6px 11px;
    border-radius: 7px;
    font-size: 0.79rem;
    line-height: 1.1;
    white-space: nowrap;
}

#station-details .details-header .actions > .station-save-btn {
    padding-inline: 13px;
    box-shadow: 0 3px 10px rgba(37, 99, 235, 0.18);
}

#station-details .details-header .actions > .station-delete-btn {
    min-height: 34px;
    padding: 6px 9px;
    border: 1px solid rgba(239, 68, 68, 0.22);
    background: rgba(239, 68, 68, 0.035);
    border-radius: 7px;
}

#station-details .details-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--station-ui-gap);
    align-items: start;
}

#station-details .card {
    padding: 13px 14px;
    border: 1px solid color-mix(in srgb, var(--border-color) 82%, transparent);
    border-radius: var(--station-ui-radius);
}

#station-details .card h3 {
    margin: 0 0 11px;
    font-size: 1.02rem;
    line-height: 1.2;
}

#station-details .form-group {
    margin-bottom: 9px;
}

#station-details .form-group > label,
#station-details .station-section-row > label {
    margin: 0 0 4px;
    font-size: 0.75rem;
    line-height: 1.25;
}

#station-details .station-section-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 2px;
}

#station-details .station-section-row > label {
    margin: 0;
}

#station-details .station-section-row .btn-small {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 5px 9px;
    border-radius: 7px;
    font-size: 0.74rem;
}

#station-details input[type="text"],
#station-details input[type="date"],
#station-details input[type="number"],
#station-details select {
    min-height: var(--station-ui-control-h);
    padding: 6px 9px;
    border-radius: 7px;
    font-size: 0.82rem;
}

#station-details textarea {
    min-height: 62px;
    padding: 7px 9px;
    border-radius: 7px;
    font-size: 0.82rem;
    line-height: 1.35;
}

#station-details #d-notes,
#station-details #d-perm-notes {
    min-height: 70px;
}

#station-details .equipment-fields-container {
    gap: 7px;
    margin-top: 7px;
}

#station-details .equipment-field-row {
    grid-template-columns: minmax(125px, 0.95fr) minmax(150px, 1.25fr) 32px;
    gap: 7px;
    align-items: stretch;
}

#station-details .equipment-field-row .equipment-field-name {
    min-height: 36px;
}

#station-details .equipment-field-row .equipment-field-status {
    min-height: 46px;
    resize: vertical;
}

#station-details .equipment-field-remove,
#station-details .extra-field-remove {
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    align-self: center;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    font-size: 0.88rem;
}

#station-details .checkbox-group {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 7px 18px;
    margin: 8px 0 9px;
}

#station-details .checkbox-group label {
    gap: 7px;
    font-size: 0.82rem;
}

#station-details .checkbox-group input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

#station-details .station-checklist-section {
    padding-top: 1px;
}

#station-details .station-checklist-container {
    gap: 7px;
    margin-top: 7px;
}

#station-details .station-checklist-row {
    gap: 7px;
    padding: 7px 8px;
    border-radius: 8px;
}

#station-details .station-checklist-row input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

#station-details .station-checklist-remove {
    font-size: 17px;
}

#station-details .station-checklist-empty {
    padding: 7px 0;
    font-size: 0.8rem;
}

#station-details .station-checklist-section small {
    margin-top: 4px !important;
    font-size: 0.72rem;
    line-height: 1.35;
}

#station-details .extra-fields-container {
    gap: 7px;
    margin-top: 7px;
}

#station-details .extra-field-row {
    grid-template-columns: minmax(120px, 0.95fr) minmax(140px, 1.2fr) 32px;
    gap: 7px;
}

#station-details .card-permanent-info {
    gap: 0;
}

#station-details .photo-grid {
    gap: 6px;
    margin-bottom: 7px;
}

#station-details .photo-thumb {
    width: 52px;
    height: 52px;
    border-radius: 6px;
}

#station-details #photo-upload {
    width: min(100%, 330px) !important;
    max-width: 330px !important;
    min-height: 31px !important;
    padding: 5px 7px !important;
    font-size: 11.5px !important;
    border-radius: 7px !important;
}

#station-details #photo-upload::file-selector-button,
#station-details #photo-upload::-webkit-file-upload-button {
    min-height: 27px !important;
    padding: 5px 9px !important;
    border-radius: 6px !important;
    font-size: 11.5px !important;
}

#station-details #photo-upload-btn.upload-action-btn {
    min-height: 31px !important;
    margin-top: 6px;
    padding: 6px 10px !important;
    border-radius: 7px !important;
    font-size: 11.5px !important;
    box-shadow: none;
}

#station-details .station-schematic-section {
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px solid color-mix(in srgb, var(--border-color) 72%, transparent);
}

#station-details .schematic-title-row {
    gap: 8px;
}

#station-details .process-image-actions {
    gap: 5px !important;
}

#station-details .process-image-actions .process-image-btn,
#station-details button.process-image-btn {
    min-height: 30px !important;
    padding: 5px 8px !important;
    border-radius: 7px !important;
    font-size: 11px !important;
    box-shadow: none !important;
}

#station-details .station-schematic-section small {
    margin: 4px 0 6px !important;
    font-size: 0.7rem;
}

#station-details .station-schematic-wrap,
#station-details .schematic-empty {
    min-height: 118px;
}

#station-details .station-schematic-wrap {
    border-radius: 7px;
}

#station-details .form-group-map-preview {
    min-height: 0;
    margin-top: 11px;
}

#station-details .map-preview-container {
    flex: 0 0 160px;
    height: 160px;
    min-height: 160px;
    margin-bottom: 7px;
    border-radius: 7px;
}

#station-details .map-preview-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

#station-details .map-preview-controls > button {
    width: auto;
    min-height: 32px;
    margin: 0 !important;
    padding: 6px 9px;
    border-radius: 7px;
    font-size: 0.74rem;
    line-height: 1.1;
}

#station-details #pin-placement-status {
    margin-top: 4px !important;
    font-size: 0.72rem !important;
}

#station-details .station-reminders-card,
#station-details .history-card {
    margin-top: 12px;
}

#station-details .station-reminders-card .reminder-input textarea {
    min-height: 54px;
}

#station-details .station-reminders-card .reminder-input .row {
    gap: 7px;
}

#station-details .station-reminders-card .reminder-input .row > button {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 0.78rem;
}

#station-details .history-card #history-list {
    margin-top: 7px;
}

/* Desktop: gör hela redigeringsytan tätare utan att påverka andra portalvyer. */
@media (min-width: 801px) {
    #dashboard-view:has(#station-details:not(.hidden)) {
        padding: 14px;
    }

    #station-details .service-card,
    #station-details .card-permanent-info {
        min-width: 0;
    }
}

/* Mobil behåller touchvänliga träffytor men slipper onödigt stora stationsknappar. */
@media (max-width: 800px) {
    #station-details {
        --station-ui-gap: 9px;
    }

    #station-details .details-grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    #station-details .card {
        padding: 11px;
        border-radius: 9px;
    }

    #station-details .card h3 {
        font-size: 1rem;
        margin-bottom: 10px;
    }

    #station-details .details-header .actions > button,
    #station-details .details-header .actions > a {
        min-height: 40px !important;
        padding: 7px 9px !important;
        font-size: 0.8rem !important;
    }

    #station-details .details-header .actions > .btn-danger-text {
        min-height: 38px !important;
    }

    #station-details .station-section-row {
        align-items: center;
    }

    #station-details .station-section-row .btn-small {
        min-height: 36px;
    }

    #station-details .equipment-field-row,
    #station-details .extra-field-row {
        grid-template-columns: 1fr;
    }

    #station-details .equipment-field-remove,
    #station-details .extra-field-remove {
        width: 100%;
        min-height: 36px;
    }

    #station-details .checkbox-group {
        flex-direction: column;
        gap: 8px;
    }

    #station-details #photo-upload {
        width: 100% !important;
        max-width: 100% !important;
    }

    #station-details #photo-upload-btn.upload-action-btn,
    #station-details .process-image-actions .process-image-btn,
    #station-details button.process-image-btn {
        min-height: 38px !important;
        padding: 7px 9px !important;
        font-size: 12px !important;
    }

    #station-details .map-preview-container {
        flex-basis: 190px;
        height: 190px;
        min-height: 190px;
    }

    #station-details .map-preview-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    #station-details .map-preview-controls > button {
        width: 100%;
        min-height: 40px;
        font-size: 0.78rem;
    }

    #station-details .map-preview-controls > #btn-remove-pin {
        grid-column: 1 / -1;
    }
}

@media (max-width: 430px) {
    #station-details .station-section-row {
        align-items: stretch;
        flex-direction: column;
    }

    #station-details .station-section-row .btn-small {
        width: 100%;
    }

    #station-details .map-preview-controls {
        grid-template-columns: 1fr;
    }

    #station-details .map-preview-controls > #btn-remove-pin {
        grid-column: auto;
    }
}


/* ============================================================
   v1.5.2 – Återkommande servicejobb
   ============================================================ */
.station-maintenance-card {
    margin-top: 12px;
}

.maintenance-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.maintenance-section-header h3 {
    margin: 0 0 4px;
}

.maintenance-help {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.84rem;
    line-height: 1.35;
}

.maintenance-plan-list {
    display: grid;
    gap: 9px;
}

.maintenance-empty {
    border: 1px dashed var(--border-color);
    border-radius: 10px;
    padding: 14px;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 0.88rem;
}

.maintenance-error {
    color: #ef6b73;
}

.maintenance-plan {
    border: 1px solid var(--border-color);
    border-radius: 11px;
    background: rgba(17, 24, 39, 0.26);
    overflow: hidden;
}

.maintenance-plan-new {
    border-color: rgba(59, 130, 246, 0.55);
}

.maintenance-new-title {
    font-weight: 750;
    padding: 10px 12px 0;
}

.maintenance-plan-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
}

.maintenance-plan-main {
    min-width: 0;
    flex: 1;
}

.maintenance-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.maintenance-title-row strong {
    font-size: 0.95rem;
}

.maintenance-meta,
.maintenance-note {
    color: var(--text-muted);
    font-size: 0.79rem;
    margin-top: 3px;
}

.maintenance-note {
    white-space: pre-wrap;
}

.maintenance-status {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 750;
    border: 1px solid transparent;
}

.maintenance-status-ok {
    color: #61d095;
    background: rgba(34, 197, 94, 0.10);
    border-color: rgba(34, 197, 94, 0.25);
}

.maintenance-status-soon {
    color: #f5bd55;
    background: rgba(245, 158, 11, 0.10);
    border-color: rgba(245, 158, 11, 0.28);
}

.maintenance-status-overdue {
    color: #ff7078;
    background: rgba(239, 68, 68, 0.11);
    border-color: rgba(239, 68, 68, 0.30);
}

.maintenance-status-paused {
    color: var(--text-muted);
    background: rgba(148, 163, 184, 0.08);
    border-color: rgba(148, 163, 184, 0.20);
}

.maintenance-plan-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.maintenance-plan-actions .btn-small,
.maintenance-editor-actions .btn-small {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 0.78rem;
}

.maintenance-done-btn {
    white-space: nowrap;
}

.maintenance-editor {
    border-top: 1px solid var(--border-color);
    padding: 11px 12px 12px;
    background: rgba(2, 6, 23, 0.18);
}

.maintenance-editor.hidden {
    display: none !important;
}

.maintenance-form-grid {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) minmax(170px, 0.8fr) minmax(180px, 1fr) minmax(190px, 1.2fr);
    gap: 9px;
    align-items: end;
}

.maintenance-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.maintenance-field > span {
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 650;
}

.maintenance-field input,
.maintenance-field select {
    width: 100%;
    min-height: 38px;
    padding: 7px 9px;
    font-size: 0.86rem;
}

.maintenance-interval-row {
    display: grid;
    grid-template-columns: 78px minmax(100px, 1fr);
    gap: 6px;
}

.maintenance-field-notes {
    grid-column: span 1;
}

.maintenance-editor-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
}

.maintenance-active-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.maintenance-editor-actions {
    display: flex;
    gap: 7px;
    justify-content: flex-end;
}

@media (max-width: 1150px) {
    .maintenance-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .maintenance-section-header,
    .maintenance-plan-summary,
    .maintenance-editor-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .maintenance-section-header > .btn-small {
        width: 100%;
    }

    .maintenance-plan-actions,
    .maintenance-editor-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
    }

    .maintenance-editor-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .maintenance-plan-actions button,
    .maintenance-editor-actions button {
        width: 100%;
    }

    .maintenance-form-grid {
        grid-template-columns: 1fr;
    }

    .maintenance-interval-row {
        grid-template-columns: 90px 1fr;
    }
}


/* ==========================================================
   v1.5.3 – Desktop slide-out för globala service/påminnelser
   Mobil (<=800 px) behåller exakt vanliga flödet.
   ========================================================== */

@media (min-width: 801px) {
    .reminder-drawer-toggle-wrap {
        position: relative;
        flex: 0 0 42px;
        width: 42px;
        min-width: 42px;
        align-self: stretch;
        background: var(--bg-panel);
        border-left: 1px solid var(--border-color);
        z-index: 20;
    }

    .reminder-drawer-toggle {
        position: absolute;
        top: 50%;
        left: 4px;
        transform: translateY(-50%);
        width: 34px;
        min-height: 150px;
        padding: 10px 6px;
        border: 1px solid var(--border-color);
        border-radius: 9px 0 0 9px;
        background: var(--bg-card);
        color: var(--text-main);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        cursor: pointer;
        box-shadow: -4px 0 14px rgba(0, 0, 0, 0.16);
        transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
    }

    .reminder-drawer-toggle:hover {
        background: #243046;
        border-color: var(--accent-blue);
    }

    .reminder-drawer-bell {
        font-size: 15px;
        line-height: 1;
    }

    .reminder-drawer-label {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
        white-space: nowrap;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.2px;
    }

    .reminder-drawer-arrow {
        font-size: 11px;
        color: var(--accent-blue);
        line-height: 1;
    }

    .sidebar-right {
        transition:
            width 0.22s ease,
            min-width 0.22s ease,
            max-width 0.22s ease,
            padding 0.22s ease,
            opacity 0.14s ease;
    }

    html[data-reminder-panel="collapsed"] .sidebar-right {
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        border-left-width: 0 !important;
        opacity: 0;
        overflow: hidden !important;
        pointer-events: none;
    }

    html[data-reminder-panel="collapsed"] #resizer-right {
        display: none !important;
    }

    html[data-reminder-panel="open"] .sidebar-right {
        opacity: 1;
        pointer-events: auto;
    }

    html[data-reminder-panel="open"] .reminder-drawer-toggle {
        border-color: color-mix(in srgb, var(--accent-blue) 48%, var(--border-color));
    }

    body.light-theme .reminder-drawer-toggle-wrap,
    body.light-theme .reminder-drawer-toggle {
        background: #ffffff;
        color: #111827;
        border-color: #d1d5db;
    }

    body.light-theme .reminder-drawer-toggle:hover {
        background: #eef4ff;
        border-color: #3b82f6;
    }
}

@media (max-width: 800px) {
    /* Telefonen ska fungera exakt som före denna patch. */
    .reminder-drawer-toggle-wrap {
        display: none !important;
    }

    #resizer-right {
        display: none !important;
    }

    html[data-reminder-panel="collapsed"] .sidebar-right,
    html[data-reminder-panel="open"] .sidebar-right {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        padding: 15px !important;
        border-left: none !important;
        border-top: 1px solid var(--border-color) !important;
        opacity: 1 !important;
        overflow: visible !important;
        pointer-events: auto !important;
        position: static !important;
    }
}


/* ==========================================================
   v1.5.4 – Kategoriserad toppmeny
   Desktop: Karta, Skärm på och Logga ut syns direkt.
   Övrigt ligger i Verktyg / Arbete / Inställningar.
   Mobil: befintlig Karta | Skärm | Meny-rad behålls.
   ========================================================== */

.top-menu-group {
    position: relative;
    margin: 0;
    padding: 0;
}

.top-menu-summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    gap: 8px;
    white-space: nowrap;
}

.top-menu-summary::-webkit-details-marker {
    display: none;
}

.top-menu-summary::marker {
    display: none;
    content: '';
}

.top-menu-chevron {
    font-size: 0.70rem;
    opacity: 0.72;
    transition: transform 0.16s ease;
}

.top-menu-group[open] .top-menu-chevron {
    transform: rotate(180deg);
}

.top-menu-popover {
    position: absolute;
    z-index: 1900;
    top: calc(100% + 7px);
    left: 0;
    width: max-content;
    min-width: 220px;
    max-width: min(330px, calc(100vw - 24px));
    padding: 7px;
    display: grid;
    gap: 5px;
    background: #171c27;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    box-shadow: 0 16px 38px rgba(0,0,0,.42);
}

.top-menu-settings .top-menu-popover {
    left: auto;
    right: 0;
    min-width: 250px;
}

.top-menu-popover .top-menu-item,
.top-menu-popover > a,
.top-menu-popover > button {
    width: 100% !important;
    min-width: 0 !important;
    height: 38px !important;
    padding: 8px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 7px;
    border-radius: 7px !important;
    font-size: 0.84rem !important;
    line-height: 1.15 !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.top-menu-popover .top-menu-item:hover,
.top-menu-popover > a:hover,
.top-menu-popover > button:hover {
    transform: none !important;
}

.top-menu-layout-control {
    width: 100%;
    min-height: 42px;
    height: auto !important;
    padding: 6px 8px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border-color);
    border-radius: 7px;
    background: var(--bg-input);
}

.top-menu-layout-control .portal-layout-label {
    white-space: nowrap;
    font-size: 0.80rem;
}

.top-menu-layout-control select {
    width: 100% !important;
    min-width: 0 !important;
    height: 30px !important;
    padding: 3px 7px !important;
    font-size: 0.80rem !important;
}

body.light-theme .top-menu-popover {
    background: #ffffff;
    border-color: #cbd5e1;
    box-shadow: 0 16px 38px rgba(15,23,42,.18);
}

body.light-theme .top-menu-layout-control {
    background: #f8fafc;
    border-color: #cbd5e1;
}

/* Desktop: exakt de tre önskade direktknapparna. */
@media (min-width: 801px) {
    .top-actions .top-direct-map,
    .top-actions .top-direct-wake,
    .top-actions .top-logout-btn {
        display: inline-flex !important;
    }

    .top-actions .mobile-menu-btn {
        display: none !important;
    }

    .top-actions .top-menu-group {
        display: block !important;
        flex: 0 0 auto;
    }

    .top-actions .top-menu-summary {
        height: 34px !important;
        min-height: 34px !important;
        padding: 8px 11px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 6px;
        font-size: 0.80rem;
        font-weight: 750;
    }

    /* Menyerna ska alltid ligga ovanför stationsytan. */
    .top-bar,
    .top-actions {
        overflow: visible !important;
    }
}

/* Mobil: toppraden fungerar som före v1.5.4. Kategorierna visas först
   efter att användaren tryckt på Meny. */
@media (max-width: 800px) {
    .top-actions > .top-menu-group {
        display: none !important;
    }

    .top-actions.mobile-menu-open > .top-menu-group {
        display: block !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }

    .top-actions.mobile-menu-open > .top-menu-group > .top-menu-summary {
        width: 100% !important;
        min-height: 38px !important;
        padding: 7px 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        border-radius: 8px !important;
        font-size: 0.90rem !important;
    }

    .top-actions.mobile-menu-open .top-menu-popover {
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin-top: 5px;
        padding: 5px;
        box-shadow: none;
        border-radius: 8px;
    }

    .top-actions.mobile-menu-open .top-menu-popover .top-menu-item,
    .top-actions.mobile-menu-open .top-menu-popover > a,
    .top-actions.mobile-menu-open .top-menu-popover > button {
        display: flex !important;
        width: 100% !important;
        min-height: 38px !important;
        grid-column: auto !important;
    }

    .top-actions.mobile-menu-open .top-menu-layout-control {
        display: grid !important;
        width: 100% !important;
        grid-column: auto !important;
    }

    /* Logga ut ligger kvar i mobilens utfällda meny precis som tidigare. */
    .top-actions > .top-logout-btn {
        display: none !important;
    }

    .top-actions.mobile-menu-open > .top-logout-btn {
        display: inline-flex !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-height: 38px !important;
        justify-content: center !important;
    }
}


/* ==========================================================
   v1.5.4.1 – FIX: toppmenyer får aldrig blockera modaler/notiser
   ========================================================== */
#settings-modal,
#main-help-modal,
.modal {
    isolation: isolate;
}

/* Toppradens dropdown ska ligga över vanlig sidyta men UNDER modaler. */
.top-menu-popover {
    z-index: 1900 !important;
}


/* ==========================================================
   v1.5.4.3 – Desktop zoom/layout fix
   Telefon-landscape-reglerna får inte triggas på PC när
   Windows/Chrome-skalning gör CSS-höjden mindre än 650 px.
   ========================================================== */


/* =============================================================
   v1.5.5 NAV TEST – intern bilnavigering
   Separat overlay: påverkar inte den vanliga Leaflet-kartan.
   ============================================================= */
body.service-navigation-active {
    overflow: hidden !important;
}

.service-navigation-overlay {
    position: fixed;
    inset: 0;
    z-index: 60000;
    background: #0b1220;
    overflow: hidden;
    touch-action: none;
}

.service-navigation-overlay.hidden {
    display: none !important;
}

.service-navigation-map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.service-navigation-topbar {
    position: absolute;
    top: max(12px, env(safe-area-inset-top));
    left: 12px;
    right: 12px;
    z-index: 10;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    pointer-events: none;
}

.service-navigation-destination-wrap {
    min-width: 0;
    flex: 1;
    padding: 11px 14px 12px;
    border-radius: 15px;
    background: rgba(15, 23, 42, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 28px rgba(0,0,0,.38);
    color: #fff;
    backdrop-filter: blur(10px);
}

.service-navigation-eyebrow {
    font-size: 10px;
    line-height: 1;
    letter-spacing: .13em;
    font-weight: 800;
    color: #93c5fd;
    margin-bottom: 5px;
}

.service-navigation-destination {
    font-size: clamp(15px, 4vw, 21px);
    line-height: 1.15;
    font-weight: 850;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.service-navigation-status {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
    color: #cbd5e1;
}

.service-navigation-close {
    pointer-events: auto;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 15px;
    background: rgba(15, 23, 42, .93);
    color: #fff;
    font-size: 31px;
    line-height: 44px;
    font-weight: 400;
    box-shadow: 0 8px 28px rgba(0,0,0,.38);
    cursor: pointer;
}

.service-navigation-bottom {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 10;
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 10px 11px 10px 15px;
    border-radius: 17px;
    background: rgba(15, 23, 42, 0.94);
    border: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 8px 30px rgba(0,0,0,.42);
    color: #fff;
    backdrop-filter: blur(10px);
}

.service-navigation-metric {
    display: flex;
    min-width: 72px;
    flex-direction: column;
    gap: 1px;
}

.service-navigation-metric-value {
    font-size: 20px;
    line-height: 1.05;
    font-weight: 850;
    white-space: nowrap;
}

.service-navigation-metric-label {
    font-size: 10px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 700;
}

.service-navigation-divider {
    width: 1px;
    height: 34px;
    background: rgba(255,255,255,.16);
}

.service-navigation-stop {
    margin-left: auto;
    min-height: 46px;
    padding: 0 16px;
    border: 0;
    border-radius: 12px;
    background: #ef4444;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.service-navigation-user-marker,
.service-navigation-destination-marker {
    pointer-events: none;
}

.service-navigation-user-marker {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.97);
    border: 3px solid #2563eb;
    box-shadow: 0 2px 6px rgba(0,0,0,.42), 0 0 0 7px rgba(37,99,235,.17);
}

.service-navigation-user-arrow {
    color: #2563eb;
    font-size: 25px;
    line-height: 1;
    transform: translateY(-1px);
    text-shadow: 0 1px 1px rgba(0,0,0,.15);
}

.service-navigation-destination-marker {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
}

.service-navigation-destination-pin {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50% 50% 50% 8px;
    transform: rotate(-45deg);
    background: #ef4444;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.45);
    color: #fff;
    font-size: 0;
    line-height: 1;
}

.service-navigation-destination-pin::after {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
}

.service-navigation-overlay .maplibregl-ctrl-bottom-left,
.service-navigation-overlay .maplibregl-ctrl-bottom-right {
    bottom: 92px;
}

.service-navigation-overlay .maplibregl-ctrl-attrib {
    font-size: 9px;
    opacity: .75;
}

/* Den gamla Google-länken är nu en riktig knapp men behåller befintlig styling. */
button.station-google-maps-link {
    font: inherit;
    cursor: pointer;
}

@media (min-width: 801px) {
    .service-navigation-topbar {
        left: 24px;
        right: 24px;
        top: 20px;
        max-width: 720px;
        margin: 0 auto;
    }

    .service-navigation-bottom {
        left: 50%;
        right: auto;
        width: min(640px, calc(100vw - 48px));
        transform: translateX(-50%);
        bottom: 22px;
    }
}


/* =============================================================
   v1.5.5.2 – Kör hit direkt från kartpopup + GPS-hastighet
   ============================================================= */
.map-drive-here-btn {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 9px 12px;
    border: 0;
    border-radius: 9px;
    background: #2563eb;
    color: #fff;
    font: inherit;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}

.map-drive-here-btn:hover {
    filter: brightness(1.08);
}

.service-navigation-speed {
    position: absolute;
    left: 16px;
    bottom: calc(max(92px, env(safe-area-inset-bottom) + 88px));
    z-index: 11;
    width: 72px;
    height: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.96);
    border: 3px solid #1e293b;
    box-shadow: 0 5px 18px rgba(0,0,0,.35);
    color: #0f172a;
    pointer-events: none;
}

.service-navigation-speed-value {
    font-size: 27px;
    line-height: .95;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.service-navigation-speed-unit {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    color: #475569;
}

/* När användaren drar navigeringskartan pausas följningen tills denna knapp trycks. */
.service-navigation-recenter {
    position: absolute;
    right: 16px;
    bottom: calc(max(92px, env(safe-area-inset-bottom) + 88px));
    z-index: 15;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 13px;
    background: rgba(15, 23, 42, .94);
    color: #fff;
    box-shadow: 0 5px 18px rgba(0,0,0,.35);
    backdrop-filter: blur(10px);
    font: inherit;
    font-size: 12px;
    line-height: 1.1;
    font-weight: 850;
    cursor: pointer;
    pointer-events: auto;
}

.service-navigation-recenter.hidden {
    display: none !important;
}

.service-navigation-recenter:active {
    transform: scale(.97);
}

@media (min-width: 801px) {
    .service-navigation-speed {
        left: calc(50% - 320px);
        bottom: 104px;
    }

    .service-navigation-recenter {
        right: calc(50% - 320px);
        bottom: 104px;
    }
}

/* ==========================================================
   Arbetsfordon – separat modul, påverkar inte övriga vyer
   ========================================================== */
.work-vehicles-page {
    padding: 18px;
    max-width: 1180px;
    margin: 0 auto;
}

.work-vehicles-header,
.work-vehicles-form-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.work-vehicles-header h2,
.work-vehicles-form-header h3 {
    margin: 0 0 5px;
}

.work-vehicles-header p {
    margin: 0;
    color: var(--text-muted);
}

.work-vehicles-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.work-vehicles-toolbar > input {
    width: 100%;
}

.work-vehicles-due-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    color: var(--text-muted);
}

.work-vehicles-list-card,
.work-vehicles-form-card {
    margin-top: 12px;
}

.work-vehicles-list {
    display: grid;
    gap: 10px;
}

.work-vehicles-empty {
    color: var(--text-muted);
    margin: 4px 0;
}

.work-vehicle-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    border: 1px solid var(--border-color);
    border-left: 5px solid #64748b;
    border-radius: 10px;
    padding: 14px;
    background: var(--card-bg, rgba(255,255,255,.02));
}

.work-vehicle-card.inspection-ok { border-left-color: #22c55e; }
.work-vehicle-card.inspection-due { border-left-color: #f59e0b; }
.work-vehicle-card.inspection-overdue { border-left-color: #ef4444; }
.work-vehicle-card.inspection-none { border-left-color: #64748b; }

.work-vehicle-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.work-vehicle-title-row h3 {
    margin: 0;
    font-size: 1.05rem;
}

.work-vehicle-registration {
    display: inline-block;
    margin-top: 5px;
    padding: 3px 8px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-weight: 800;
    letter-spacing: .04em;
    background: rgba(148, 163, 184, .08);
}

.work-vehicle-status {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 800;
    border: 1px solid transparent;
}

.work-vehicle-status.inspection-ok {
    color: #86efac;
    background: rgba(34, 197, 94, .12);
    border-color: rgba(34, 197, 94, .35);
}

.work-vehicle-status.inspection-due {
    color: #fcd34d;
    background: rgba(245, 158, 11, .13);
    border-color: rgba(245, 158, 11, .38);
}

.work-vehicle-status.inspection-overdue {
    color: #fca5a5;
    background: rgba(239, 68, 68, .13);
    border-color: rgba(239, 68, 68, .4);
}

.work-vehicle-status.inspection-none {
    color: var(--text-muted);
    background: rgba(100, 116, 139, .12);
    border-color: rgba(100, 116, 139, .28);
}

.work-vehicle-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 10px;
    color: var(--text-muted);
    font-size: .9rem;
}

.work-vehicle-notes {
    margin-top: 9px;
    white-space: pre-wrap;
    color: var(--text-muted);
    line-height: 1.45;
}

.work-vehicle-card-actions {
    display: flex;
    gap: 7px;
    align-items: center;
}

.work-vehicles-form-actions {
    display: flex;
    gap: 8px;
}

.work-vehicles-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.work-vehicles-form-grid .form-group {
    min-width: 0;
}

.work-vehicles-form-grid input,
.work-vehicles-form-grid textarea,
.work-vehicles-form-grid select {
    width: 100%;
}

.work-vehicle-notes-group {
    grid-column: 1 / -1;
}

.work-vehicle-notes-group textarea {
    min-height: 90px;
    resize: vertical;
}

.work-vehicle-reminder-row {
    display: grid;
    grid-template-columns: minmax(90px, 130px) auto;
    gap: 9px;
    align-items: center;
}

.work-vehicle-reminder-row span,
.work-vehicle-reminder-help {
    color: var(--text-muted);
}

.work-vehicle-reminder-help {
    margin: 14px 0 0;
    font-size: .88rem;
}

@media (max-width: 800px) {
    .work-vehicles-page {
        padding: 12px;
    }

    .work-vehicles-header,
    .work-vehicles-form-header,
    .work-vehicle-title-row {
        flex-direction: column;
        align-items: stretch;
    }

    .work-vehicles-header > .btn-primary,
    .work-vehicles-form-actions,
    .work-vehicles-form-actions button {
        width: 100%;
    }

    .work-vehicles-form-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .work-vehicles-toolbar,
    .work-vehicles-form-grid {
        grid-template-columns: 1fr;
    }

    .work-vehicle-notes-group {
        grid-column: auto;
    }

    .work-vehicle-card {
        grid-template-columns: 1fr;
    }

    .work-vehicle-card-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .work-vehicle-card-actions button {
        width: 100%;
    }

    .work-vehicle-status {
        align-self: flex-start;
    }
}



/* ==========================================================
   18.8 – Kompakta påminnelseknappar + redigera
   Endast service-/påminnelsepanelen.
   ========================================================== */
#global-reminder-sidebar .reminder-input .row > button {
    padding: 5px 8px;
    min-height: 30px;
    font-size: 0.78rem;
    line-height: 1.05;
}

.reminder-item .reminder-main-text {
    flex: 1 1 auto;
    min-width: 0;
}

.reminder-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    flex: 0 0 auto;
    margin-left: 6px;
}

.reminder-action-btn {
    min-width: 0;
    min-height: 26px;
    padding: 3px 6px !important;
    border-radius: 4px;
    font-size: 0.72rem;
    line-height: 1;
    background: transparent !important;
    border: 1px solid var(--border-color);
}

.reminder-edit-btn {
    color: var(--accent-blue) !important;
}

.reminder-delete-btn {
    width: 26px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    color: var(--accent-red) !important;
    font-size: 1rem;
}

.reminder-item.reminder-editing {
    display: block;
    align-items: initial;
}

.reminder-edit-form {
    width: 100%;
    display: grid;
    gap: 6px;
}

.reminder-edit-text {
    width: 100%;
    min-height: 68px;
    resize: vertical;
    padding: 7px 8px;
    font: inherit;
    line-height: 1.35;
}

.reminder-edit-row {
    display: grid;
    grid-template-columns: minmax(78px, 96px) minmax(122px, 145px) minmax(105px, 1fr);
    gap: 6px;
    align-items: center;
}

.reminder-edit-row select,
.reminder-edit-row input[type="date"] {
    width: 100%;
    min-width: 0;
}

.reminder-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.reminder-compact-btn {
    padding: 5px 9px !important;
    min-height: 29px;
    font-size: 0.76rem;
    line-height: 1.05;
}

body.light-theme .reminder-item .reminder-edit-btn {
    color: #2563eb !important;
}

body.light-theme .reminder-item .reminder-delete-btn {
    color: #dc2626 !important;
}

@media (max-width: 800px) {
    .reminder-edit-row {
        grid-template-columns: 1fr 1fr;
    }

    .reminder-edit-personal {
        grid-column: 1 / -1;
    }
}

/* ==========================================================
   18.8 – Kompakt responsiv rad för nya påminnelser
   Endast visuell layout för prioritet, datum, personlig och Lägg till.
   Ingen funktionalitet ändras.
   ========================================================== */

/* Gemensamt: mindre och tydligare kontroller. */
#global-reminder-sidebar .reminder-input .row,
#station-details .station-reminders-card .reminder-input .row {
    align-items: center;
    gap: 5px;
}

#global-reminder-sidebar .reminder-input .row select,
#global-reminder-sidebar .reminder-input .row input[type="date"],
#station-details .station-reminders-card .reminder-input .row select,
#station-details .station-reminders-card .reminder-input .row input[type="date"] {
    box-sizing: border-box;
    min-height: 32px;
    height: 32px;
    padding: 3px 6px;
    font-size: 0.74rem;
    line-height: 1.1;
    border-radius: 5px;
}

#global-reminder-sidebar .reminder-input .row select,
#station-details .station-reminders-card .reminder-input .row select {
    flex: 0 0 auto;
    width: 72px;
    min-width: 72px;
    max-width: 72px;
    padding-right: 18px;
}

#global-reminder-sidebar .reminder-input .row input[type="date"],
#station-details .station-reminders-card .reminder-input .row input[type="date"] {
    min-width: 120px;
}

#global-reminder-sidebar .reminder-input .reminder-personal,
#station-details .station-reminders-card .reminder-input .reminder-personal {
    gap: 3px;
    font-size: 0.72rem;
    line-height: 1.05;
}

#global-reminder-sidebar .reminder-input .reminder-personal input[type="checkbox"],
#station-details .station-reminders-card .reminder-input .reminder-personal input[type="checkbox"] {
    width: 15px;
    height: 15px;
    margin: 0;
}

#global-reminder-sidebar .reminder-input .row > button,
#station-details .station-reminders-card .reminder-input .row > button {
    box-sizing: border-box;
    min-width: 48px;
    width: auto;
    min-height: 32px;
    height: 32px;
    padding: 3px 6px !important;
    border-radius: 5px;
    font-size: 0.71rem;
    line-height: 1.02;
    white-space: normal;
}

/* Högerpanelen är smal även på desktop: två kompakta rader så inget kläms ihop. */
#global-reminder-sidebar .reminder-input .row {
    display: grid;
    grid-template-columns: 72px minmax(118px, 1fr) 52px;
    grid-template-rows: 32px 24px;
}

#global-reminder-sidebar .reminder-input .row > select {
    grid-column: 1;
    grid-row: 1;
}

#global-reminder-sidebar .reminder-input .row > input[type="date"] {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    min-width: 0;
}

#global-reminder-sidebar .reminder-input .row > .reminder-personal {
    grid-column: 1 / 3;
    grid-row: 2;
    justify-self: start;
    align-self: center;
}

#global-reminder-sidebar .reminder-input .row > button {
    grid-column: 3;
    grid-row: 1 / 3;
    width: 52px;
    height: 40px;
    min-height: 40px;
    align-self: center;
}

/* Stationskort på desktop har mer plats och kan ligga på en rad. */
@media (min-width: 801px) {
    #station-details .station-reminders-card .reminder-input .row {
        display: grid;
        grid-template-columns: 72px minmax(124px, 150px) minmax(92px, auto) 58px;
    }

    #station-details .station-reminders-card .reminder-input .row > input[type="date"] {
        width: 100%;
        min-width: 0;
    }

    #station-details .station-reminders-card .reminder-input .row > button {
        width: 58px;
    }
}

/* Telefon/smal vy: samma stabila två-raderslayout som sidopanelen. */
@media (max-width: 800px) {
    #station-details .station-reminders-card .reminder-input .row {
        display: grid;
        grid-template-columns: 72px minmax(116px, 1fr) 52px;
        grid-template-rows: 32px 24px;
        gap: 5px;
    }

    #station-details .station-reminders-card .reminder-input .row > select {
        grid-column: 1;
        grid-row: 1;
    }

    #station-details .station-reminders-card .reminder-input .row > input[type="date"] {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;
    }

    #station-details .station-reminders-card .reminder-input .row > .reminder-personal {
        grid-column: 1 / 3;
        grid-row: 2;
        justify-self: start;
        align-self: center;
    }

    #station-details .station-reminders-card .reminder-input .row > button {
        grid-column: 3;
        grid-row: 1 / 3;
        width: 52px;
        height: 40px;
        min-height: 40px;
        align-self: center;
    }
}

/* ==========================================================
   18.8 – Lägg till-knapp: normal kompakt enradsknapp
   Endast visuell ändring. Ingen funktionalitet ändras.
   ========================================================== */
#global-reminder-sidebar .reminder-input .row > button,
#station-details .station-reminders-card .reminder-input .row > button {
    min-width: 60px !important;
    width: 60px !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 3px 7px !important;
    font-size: 0.69rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    align-self: center !important;
}

#global-reminder-sidebar .reminder-input .row {
    grid-template-columns: 72px minmax(112px, 1fr) 60px !important;
}

#global-reminder-sidebar .reminder-input .row > button {
    grid-column: 3 !important;
    grid-row: 1 !important;
}

@media (min-width: 801px) {
    #station-details .station-reminders-card .reminder-input .row {
        grid-template-columns: 72px minmax(124px, 150px) minmax(92px, auto) 60px !important;
    }
}

@media (max-width: 800px) {
    #station-details .station-reminders-card .reminder-input .row {
        grid-template-columns: 72px minmax(108px, 1fr) 60px !important;
    }

    #station-details .station-reminders-card .reminder-input .row > button {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }
}


/* ==========================================================
   TILLFÄLLIGA KARTVERKTYG: mät, rita, text, print, dela
   Endast visuell/session-baserad funktion – ingen databaslagring.
   ========================================================== */
.temp-map-tools-wrap {
    display: flex;
    align-items: flex-end;
    gap: 7px;
    max-width: calc(100vw - 24px);
}

.temp-map-tools.leaflet-bar {
    display: flex;
    flex-direction: row;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 1px 5px rgba(0,0,0,.45);
    background: rgba(255,255,255,.97);
}

.temp-map-tools .temp-map-tool-btn {
    appearance: none;
    -webkit-appearance: none;
    width: 38px;
    height: 38px;
    min-width: 38px;
    margin: 0;
    padding: 0;
    border: 0;
    border-right: 1px solid #d1d5db;
    border-radius: 0;
    background: #fff;
    color: #111827;
    font: 700 18px/38px Arial, sans-serif;
    text-align: center;
    cursor: pointer;
}

.temp-map-tools .temp-map-tool-btn:last-child {
    border-right: 0;
}

.temp-map-tools .temp-map-tool-btn:hover,
.temp-map-tools .temp-map-tool-btn:focus-visible {
    background: #f3f4f6;
}

.temp-map-tools .temp-map-tool-btn.active {
    background: #2563eb;
    color: #fff;
}

.temp-map-tool-status {
    max-width: min(460px, calc(100vw - 290px));
    padding: 7px 10px;
    border-radius: 7px;
    background: rgba(17,24,39,.92);
    color: #fff;
    font-size: 12px;
    line-height: 1.25;
    box-shadow: 0 1px 5px rgba(0,0,0,.35);
}

#map.temp-measure-active,
#map.temp-text-active {
    cursor: crosshair !important;
}

#map.temp-pen-active,
#map.temp-pen-active .leaflet-interactive {
    cursor: crosshair !important;
}

.temp-map-measure-icon,
.temp-map-text-icon {
    background: transparent !important;
    border: 0 !important;
}

.temp-map-measure-label {
    display: inline-block;
    white-space: nowrap;
    padding: 4px 7px;
    transform: translate(-50%, -100%);
    border: 2px solid #f59e0b;
    border-radius: 6px;
    background: rgba(255,255,255,.96);
    color: #111827;
    font: 700 12px/1.15 Arial, sans-serif;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
}

.temp-map-text-label {
    display: inline-block;
    white-space: pre-wrap;
    max-width: 260px;
    padding: 5px 8px;
    border: 2px solid #111827;
    border-radius: 5px;
    background: rgba(255,255,255,.94);
    color: #111827;
    font: 700 14px/1.2 Arial, sans-serif;
    box-shadow: 0 1px 4px rgba(0,0,0,.28);
    cursor: move;
}

.temp-map-popup .btn-small {
    margin-top: 7px;
}

/* Egen textruta för kartverktyget. Ersätter webbläsarens enkla prompt och
   fungerar likadant i fullscreen, på dator och på mobil. */
.temp-text-dialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(5, 10, 18, .70);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.temp-text-dialog {
    width: min(520px, calc(100vw - 32px));
    padding: 24px;
    border: 1px solid rgba(148, 163, 184, .25);
    border-radius: 18px;
    background: #131b28;
    color: #f8fafc;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .52);
}

.temp-text-dialog-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
}

.temp-text-dialog-icon {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: #2563eb;
    color: #fff;
    font: 800 22px/1 Arial, sans-serif;
    box-shadow: 0 8px 20px rgba(37, 99, 235, .30);
}

.temp-text-dialog h2 {
    margin: 0 0 5px;
    color: #fff;
    font: 750 22px/1.15 Arial, sans-serif;
}

.temp-text-dialog-heading p {
    margin: 0;
    color: #aebdd0;
    font: 400 14px/1.45 Arial, sans-serif;
}

.temp-text-dialog-form label {
    display: block;
    margin: 0 0 8px;
    color: #dbe7f5;
    font: 700 13px/1.2 Arial, sans-serif;
}

.temp-text-dialog textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-height: 108px;
    resize: vertical;
    padding: 13px 14px;
    border: 2px solid #35445a;
    border-radius: 11px;
    outline: 0;
    background: #0b1220;
    color: #fff;
    caret-color: #60a5fa;
    font: 500 17px/1.4 Arial, sans-serif;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.temp-text-dialog textarea::placeholder {
    color: #718096;
}

.temp-text-dialog textarea:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .18);
}

.temp-text-dialog textarea.has-error {
    border-color: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, .16);
}

.temp-text-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.temp-text-dialog-actions button {
    min-height: 44px;
    padding: 10px 18px;
    border: 0;
    border-radius: 10px;
    font: 700 15px/1 Arial, sans-serif;
    cursor: pointer;
}

.temp-text-dialog-cancel {
    background: #273449;
    color: #e5edf7;
}

.temp-text-dialog-cancel:hover,
.temp-text-dialog-cancel:focus-visible {
    background: #33445e;
}

.temp-text-dialog-save {
    background: #2563eb;
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .28);
}

.temp-text-dialog-save:hover,
.temp-text-dialog-save:focus-visible {
    background: #1d4ed8;
}

body.light-theme .temp-text-dialog {
    border-color: #d9e2ec;
    background: #fff;
    color: #172033;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .25);
}

body.light-theme .temp-text-dialog h2 {
    color: #172033;
}

body.light-theme .temp-text-dialog-heading p {
    color: #5d6b7e;
}

body.light-theme .temp-text-dialog-form label {
    color: #273449;
}

body.light-theme .temp-text-dialog textarea {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #172033;
}

body.light-theme .temp-text-dialog-cancel {
    background: #e8eef5;
    color: #273449;
}

@media (max-width: 600px) {
    .temp-text-dialog-backdrop {
        align-items: flex-end;
        padding: 12px;
    }

    .temp-text-dialog {
        width: 100%;
        padding: 20px 17px 17px;
        border-radius: 17px;
    }

    .temp-text-dialog-heading {
        margin-bottom: 18px;
    }

    .temp-text-dialog-actions {
        display: grid;
        grid-template-columns: 1fr 1.35fr;
    }

    .temp-text-dialog-actions button {
        padding-inline: 10px;
    }
}

/* Kartbild/utskrift: döljer knappar men behåller kartans attribution. */
#map-view.map-capture-clean #btn-fullscreen-map,
#map-view.map-capture-clean #btn-gps,
#map-view.map-capture-clean .leaflet-control:not(.leaflet-control-attribution) {
    visibility: hidden !important;
}

@media (max-width: 800px) {
    .temp-map-tools-wrap {
        gap: 5px;
    }

    .temp-map-tools .temp-map-tool-btn {
        width: 35px;
        height: 35px;
        min-width: 35px;
        font-size: 16px;
        line-height: 35px;
    }

    .temp-map-tool-status {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 58px;
        max-width: none;
        text-align: center;
        pointer-events: none;
    }
}

/* ============================================================
   OMRÅDESVAL FÖR PRINT / DELA
   ============================================================ */
.map-area-select-overlay {
    position: absolute;
    inset: 0;
    z-index: 100000;
    overflow: hidden;
    cursor: crosshair;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    background: rgba(15, 23, 42, .10);
}

.map-area-select-help {
    position: absolute;
    top: 16px;
    left: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 16px;
    width: max-content;
    max-width: calc(100% - 32px);
    padding: 11px 12px 11px 15px;
    transform: translateX(-50%);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 12px;
    background: rgba(15, 23, 42, .95);
    color: #fff;
    box-shadow: 0 8px 28px rgba(0,0,0,.38);
    cursor: default;
}

.map-area-select-help > div {
    display: grid;
    gap: 3px;
}

.map-area-select-help strong {
    font: 750 15px/1.15 Arial, sans-serif;
}

.map-area-select-help span {
    color: #cbd5e1;
    font: 400 13px/1.25 Arial, sans-serif;
}

.map-area-select-help.has-error {
    border-color: #f87171;
}

.map-area-select-help.has-error span {
    color: #fecaca;
}

.map-area-select-cancel {
    min-height: 36px;
    padding: 8px 12px;
    border: 0;
    border-radius: 8px;
    background: #334155;
    color: #fff;
    font: 700 13px/1 Arial, sans-serif;
    cursor: pointer;
}

.map-area-select-cancel:hover,
.map-area-select-cancel:focus-visible {
    background: #475569;
}

.map-area-select-box {
    position: absolute;
    z-index: 1;
    display: none;
    box-sizing: border-box;
    border: 3px solid #2563eb;
    border-radius: 3px;
    background: rgba(59, 130, 246, .12);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.9) inset,
        0 0 0 9999px rgba(3, 7, 18, .38);
    pointer-events: none;
}

@media (max-width: 600px) {
    .map-area-select-help {
        top: 10px;
        gap: 10px;
        max-width: calc(100% - 20px);
        padding: 9px 9px 9px 12px;
    }

    .map-area-select-help strong {
        font-size: 14px;
    }

    .map-area-select-help span {
        font-size: 12px;
    }

    .map-area-select-cancel {
        padding-inline: 10px;
    }
}

/* ============================================================
   VATTENVENTILER – responsiva ikoner (mobil + desktop)
   Små prickar vid utzoom, ventilnyckel vid inzoom.
   ============================================================ */
.leaflet-marker-icon.water-valve-leaflet-icon {
    background: transparent !important;
    border: 0 !important;
    margin: 0;
    display: block !important;
    opacity: 1 !important;
    overflow: visible !important;
}

.water-valve-dot,
.water-valve-key {
    display: block;
    box-sizing: border-box;
    pointer-events: auto;
}

.water-valve-dot {
    border-radius: 50%;
    background: #ffffff;
    border: 1.5px solid #0369a1;
    box-shadow: 0 0 0 1px rgba(255,255,255,.65);
}

.water-valve-dot.water-valve-shutoff {
    border-color: #1d4ed8;
}

.water-valve-dot.water-valve-service {
    border-color: #0284c7;
    background: #bae6fd;
}

.water-valve-key {
    color: #0b5fad;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(3,105,161,.58);
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0,0,0,.28);
}

.water-valve-key.water-valve-shutoff {
    color: #1d4ed8;
    border-color: rgba(29,78,216,.65);
}

.water-valve-key.water-valve-service {
    color: #0284c7;
    background: rgba(224,242,254,.97);
}

.water-valve-key svg {
    display: block;
}

/* ============================================================
   COMSEL-LARM – bell + dropdown
   Isolerad styling för att inte påverka befintliga toppmenyer.
   ============================================================ */
.comsel-alarm-menu {
    position: relative;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    z-index: 1950;
}

.comsel-alarm-summary {
    position: relative;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    list-style: none;
    cursor: pointer;
    user-select: none;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 9px;
    background: linear-gradient(145deg, #ff8a2b, #e86f0b);
    box-shadow: 0 4px 12px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.18);
    transition: transform .14s ease, box-shadow .14s ease, filter .14s ease;
}

.comsel-alarm-summary::-webkit-details-marker { display: none; }
.comsel-alarm-summary::marker { display: none; content: ''; }
.comsel-alarm-summary:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
    box-shadow: 0 6px 16px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.20);
}
.comsel-alarm-menu[open] .comsel-alarm-summary {
    box-shadow: 0 0 0 2px rgba(59,130,246,.26), 0 6px 16px rgba(0,0,0,.28);
}

.comsel-alarm-summary span { margin-right: 0 !important; }

.comsel-alarm-bell {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.comsel-alarm-bell svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: currentColor;
}

.comsel-alarm-badge {
    position: absolute;
    top: -7px;
    right: -8px;
    min-width: 21px;
    height: 21px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #2f75d6;
    color: #fff;
    border: 2px solid var(--bg-panel);
    box-shadow: 0 2px 7px rgba(0,0,0,.28);
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.01em;
}

.comsel-alarm-dropdown {
    position: absolute;
    z-index: 1955;
    top: calc(100% + 9px);
    right: 0;
    width: min(390px, calc(100vw - 24px));
    max-height: min(610px, calc(100vh - 92px));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #171c27;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-shadow: 0 20px 48px rgba(0,0,0,.46);
}

.comsel-alarm-dropdown-head {
    padding: 13px 13px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--border-color);
    background: rgba(255,255,255,.025);
}
.comsel-alarm-dropdown-head > div {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.comsel-alarm-dropdown-head strong {
    font-size: .94rem;
    color: var(--text-main);
}
.comsel-alarm-dropdown-head small {
    color: var(--text-muted);
    font-size: .73rem;
}

.comsel-alarm-filters {
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    border-bottom: 1px solid rgba(255,255,255,.05);
    background: rgba(255,255,255,.012);
}

.comsel-alarm-filter {
    width: auto !important;
    min-width: 0 !important;
    height: 29px !important;
    padding: 0 9px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 999px !important;
    border: 1px solid var(--border-color) !important;
    background: rgba(255,255,255,.025) !important;
    color: var(--text-muted) !important;
    font-size: .69rem !important;
    font-weight: 720 !important;
    line-height: 1 !important;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}
.comsel-alarm-filter:hover {
    transform: translateY(-1px);
    color: var(--text-main) !important;
}
.comsel-alarm-filter.is-active {
    background: rgba(59,130,246,.12) !important;
    border-color: rgba(96,165,250,.42) !important;
    color: #dbeafe !important;
}

.comsel-filter-dot {
    width: 7px;
    height: 7px;
    margin: 0 !important;
    border-radius: 50%;
    flex: 0 0 auto;
    background: #94a3b8;
    box-shadow: 0 0 0 2px rgba(148,163,184,.12);
}
.comsel-filter-dot.is-motor { background: #dc4c4c; }
.comsel-filter-dot.is-level { background: #d97706; }
.comsel-filter-dot.is-communication { background: #3b82f6; }

.comsel-alarm-refresh {
    width: 31px !important;
    height: 31px !important;
    min-width: 31px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 8px !important;
    border: 1px solid var(--border-color) !important;
    background: var(--bg-input) !important;
    color: var(--text-main) !important;
    font-size: 1.08rem !important;
    line-height: 1 !important;
    cursor: pointer;
}
.comsel-alarm-refresh.is-loading { animation: comsel-alarm-spin .8s linear infinite; }
@keyframes comsel-alarm-spin { to { transform: rotate(360deg); } }

.comsel-alarm-status {
    padding: 7px 13px;
    min-height: 30px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,.05);
    color: var(--text-muted);
    font-size: .70rem;
}

.comsel-alarm-list {
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    padding: 6px;
}

.comsel-alarm-item {
    display: grid;
    grid-template-columns: 29px minmax(0,1fr) 16px;
    gap: 9px;
    align-items: start;
    padding: 10px 9px;
    margin: 0 0 5px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 9px;
    background: rgba(255,255,255,.025);
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.comsel-alarm-item:hover {
    background: rgba(255,255,255,.055);
    border-color: rgba(96,165,250,.32);
    transform: translateY(-1px);
}
.comsel-alarm-item:last-child { margin-bottom: 0; }

.comsel-alarm-item-indicator {
    width: 27px;
    height: 27px;
    margin-top: 1px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    font-size: .82rem;
    font-weight: 900;
    background: #d97706;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
}
.comsel-alarm-item.is-motor .comsel-alarm-item-indicator { background: #dc4c4c; }
.comsel-alarm-item.is-communication .comsel-alarm-item-indicator { background: #3b82f6; }

.comsel-alarm-item-body {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.comsel-alarm-item-top {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.comsel-alarm-item-top strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .82rem;
    color: var(--text-main);
}
.comsel-alarm-level {
    margin: 0 !important;
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(59,130,246,.14);
    border: 1px solid rgba(59,130,246,.27);
    color: #8ebcff;
    font-size: .64rem;
    font-weight: 750;
}
.comsel-alarm-asset {
    color: #dbe5f4;
    font-size: .76rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}
.comsel-alarm-message {
    color: var(--text-muted);
    font-size: .72rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.comsel-alarm-time {
    color: #9fb0c7;
    opacity: .94;
    font-size: .66rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 1px;
}
.comsel-alarm-open-icon {
    align-self: center;
    justify-self: end;
    color: #7f91aa;
    font-size: .78rem;
    font-weight: 800;
    opacity: .75;
    transition: color .15s ease, opacity .15s ease, transform .15s ease;
}
.comsel-alarm-item:hover .comsel-alarm-open-icon {
    color: #8ebcff;
    opacity: 1;
    transform: translate(1px,-1px);
}

.comsel-alarm-empty,
.comsel-alarm-error {
    min-height: 120px;
    padding: 22px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    color: var(--text-muted);
}
.comsel-alarm-empty strong,
.comsel-alarm-error strong { color: var(--text-main); font-size: .82rem; }
.comsel-alarm-empty small,
.comsel-alarm-error small { max-width: 310px; font-size: .70rem; line-height: 1.35; }
.comsel-alarm-empty-icon {
    width: 31px;
    height: 31px;
    margin: 0 0 3px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(34,197,94,.13);
    border: 1px solid rgba(34,197,94,.24);
    color: #77d994;
    font-weight: 800;
}
.comsel-alarm-error small { color: #f5a8a8; }

body.light-theme .comsel-alarm-dropdown {
    background: #fff;
    border-color: #cbd5e1;
    box-shadow: 0 20px 48px rgba(15,23,42,.20);
}
body.light-theme .comsel-alarm-dropdown-head { background: #f8fafc; }
body.light-theme .comsel-alarm-filters {
    background: #f8fafc;
    border-bottom-color: #e2e8f0;
}
body.light-theme .comsel-alarm-filter {
    background: #fff !important;
    color: #64748b !important;
}
body.light-theme .comsel-alarm-filter.is-active {
    background: #eff6ff !important;
    border-color: #93c5fd !important;
    color: #1d4ed8 !important;
}
body.light-theme .comsel-alarm-status { border-bottom-color: #e2e8f0; }
body.light-theme .comsel-alarm-item {
    background: #f8fafc;
    border-color: #e2e8f0;
}
body.light-theme .comsel-alarm-asset { color: #334155; }
body.light-theme .comsel-alarm-level { color: #245da9; }

@media (min-width: 801px) {
    .top-actions > .comsel-alarm-menu { display: block !important; }
}

@media (max-width: 800px) {
    /* Bell ligger på användarraden och ändrar inte Karta | Skärm | Meny-raden. */
    .top-actions > .comsel-alarm-menu,
    .top-actions.mobile-menu-open > .comsel-alarm-menu,
    html[data-portal-layout] .top-actions > .comsel-alarm-menu,
    html[data-portal-layout] .top-actions.mobile-menu-open > .comsel-alarm-menu {
        display: block !important;
        grid-column: 3 / 4 !important;
        grid-row: 1 !important;
        justify-self: end;
        align-self: center;
        width: 34px !important;
        z-index: 1960;
    }

    .top-actions #logged-in-user,
    .top-actions.mobile-menu-open #logged-in-user,
    html[data-portal-layout] .top-actions #logged-in-user,
    html[data-portal-layout] .top-actions.mobile-menu-open #logged-in-user {
        padding-right: 43px !important;
    }

    .comsel-alarm-summary {
        width: 33px;
        height: 33px;
        min-width: 33px;
        min-height: 33px;
        border-radius: 8px;
    }
    .comsel-alarm-bell,
    .comsel-alarm-bell svg { width: 18px; height: 18px; }
    .comsel-alarm-badge {
        top: -6px;
        right: -7px;
        min-width: 20px;
        height: 20px;
        font-size: 9px;
    }

    .comsel-alarm-dropdown,
    .top-actions.mobile-menu-open .comsel-alarm-dropdown {
        position: fixed !important;
        top: 92px !important;
        right: 10px !important;
        left: 10px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - 106px) !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 12px !important;
        box-shadow: 0 18px 44px rgba(0,0,0,.48) !important;
    }
}

@media (max-width: 800px) and (hover: hover) and (pointer: fine) {
    /* Smal PC-layout har två kolumner: bell ligger fortfarande på användarraden. */
    .top-actions > .comsel-alarm-menu,
    .top-actions.mobile-menu-open > .comsel-alarm-menu,
    html[data-portal-layout] .top-actions > .comsel-alarm-menu,
    html[data-portal-layout] .top-actions.mobile-menu-open > .comsel-alarm-menu {
        grid-column: 2 / 3 !important;
    }
}
