/*
 * Swedweather Connect
 * Fil: /css/connect.css
 * Version: 1.00.25
 * Datum: 2026-11-06 19:10:00 Europe/Stockholm
 * Ändring: Gemensam bredd (1100px), sidhuvud och mobilmeny på tre administrationssidor.
 *          Befintliga sidunika stilar och funktioner bevaras.
 *
 * Användning:
 * <link rel="stylesheet" href="/css/connect.css?v=1.00.13">
 * <body class="connect-auth"> för inloggning och formulärsidor.
 * <body class="connect-app">  för kontosidor och administration.
 * OBS: Ingen befintlig PHP-fil ändras automatiskt av denna fil.
 */

:root {
    --connect-blue: #1461a5;
    --connect-blue-action: #1766b1;
    --connect-ink: #183754;
    --connect-ink-auth: #172b43;
    --connect-muted: #52677d;
    --connect-background: #f0f5fb;
    --connect-background-auth: #f2f5f9;
    --connect-border: #cbdced;
    --connect-border-control: #9ab2ca;
    --connect-white: #fff;
    --connect-success-bg: #e7f4e8;
    --connect-error-bg: #fce8e8;
    --connect-error-text: #922;
    --connect-focus: #1766b1;
}

body.connect-auth,
body.connect-app {
    box-sizing: border-box;
    margin: 0;
    font: 16px system-ui, Arial, sans-serif;
    color: var(--connect-ink);
}

body.connect-auth *,
body.connect-app *,
body.connect-auth *::before,
body.connect-app *::before,
body.connect-auth *::after,
body.connect-app *::after {
    box-sizing: inherit;
}

/* Inloggning, lösenordsåterställning, aktivering och verifiering */
body.connect-auth {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 20px;
    background: var(--connect-background-auth);
    color: var(--connect-ink-auth);
}

.connect-auth main,
.connect-auth .connect-card {
    width: 100%;
    max-width: 420px;
    padding: 32px;
    background: var(--connect-white);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgb(0 0 0 / 8%);
}

.connect-auth h1 {
    margin: 0 0 8px;
    font-size: 28px;
}

.connect-auth p { line-height: 1.5; }

.connect-auth label {
    display: block;
    margin: 18px 0 6px;
    font-weight: 600;
}

.connect-auth input:not([type="checkbox"]):not([type="radio"]),
.connect-auth select,
.connect-auth textarea {
    width: 100%;
    max-width: 100%;
    padding: 12px;
    border: 1px solid #aab8c8;
    border-radius: 7px;
    background: var(--connect-white);
    color: inherit;
    font: inherit;
}

.connect-auth button,
.connect-auth .connect-button {
    display: inline-block;
    width: 100%;
    margin-top: 24px;
    padding: 13px;
    border: 0;
    border-radius: 7px;
    background: var(--connect-blue-action);
    color: var(--connect-white);
    font: inherit;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.connect-auth button:disabled { background: #8997a7; cursor: not-allowed; }

/* Konto och administration */
body.connect-app {
    background: var(--connect-background);
}

.connect-app > header,
.connect-app .connect-header {
    background: var(--connect-blue);
    color: var(--connect-white);
    padding: 20px max(20px, calc((100% - 1100px) / 2));
}

.connect-app h1 { margin: 0; font-size: 1.45rem; }

.connect-app main {
    max-width: 1100px;
    margin: auto;
    padding: 22px;
}

.connect-app section,
.connect-app .connect-panel {
    margin-bottom: 20px;
    padding: 20px;
    background: var(--connect-white);
    border: 1px solid var(--connect-border);
    border-radius: 12px;
}

.connect-app h2 { margin: 0 0 14px; font-size: 1.2rem; }

.connect-app table { width: 100%; border-collapse: collapse; }

.connect-app th,
.connect-app td {
    padding: 9px;
    border-bottom: 1px solid #e0e8f1;
    text-align: left;
}

.connect-app input,
.connect-app select,
.connect-app textarea,
.connect-app button {
    max-width: 100%;
    padding: 8px;
    border: 1px solid var(--connect-border-control);
    border-radius: 6px;
    font: inherit;
}

.connect-app button,
.connect-app .connect-button {
    border: 0;
    background: var(--connect-blue);
    color: var(--connect-white);
    cursor: pointer;
}

.connect-app form.connect-inline-form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* Gemensamma meddelanden och hjälpklasser */
.connect-auth .notice,
.connect-app .notice {
    padding: 12px;
    border-radius: 8px;
    background: var(--connect-success-bg);
}

.connect-auth .notice { background: #edf4ff; }
.connect-app .notice { margin-bottom: 16px; }

.connect-auth .error,
.connect-app .error,
.connect-auth .connect-alert-error,
.connect-app .connect-alert-error {
    padding: 12px;
    border-radius: 8px;
    background: var(--connect-error-bg);
    color: var(--connect-error-text);
}

.connect-auth .muted,
.connect-app .muted { color: var(--connect-muted); font-size: .92rem; }

.connect-auth a,
.connect-app a { color: var(--connect-blue); }

.connect-app > header a,
.connect-app .connect-header a { color: var(--connect-white); }

.connect-app .scroll,
.connect-app .connect-table-scroll { overflow-x: auto; }

.connect-auth :focus-visible,
.connect-app :focus-visible {
    outline: 3px solid var(--connect-focus);
    outline-offset: 2px;
}

@media (max-width: 650px) {
    .connect-auth main,
    .connect-auth .connect-card { padding: 24px; }

    .connect-app main { padding: 12px; }
    .connect-app section,
    .connect-app .connect-panel { padding: 14px; }
    .connect-app th,
    .connect-app td { padding: 7px; }
}

/* Mitt konto – access/index.php
   Isolerade tillägg: ändrar inte login.php eller mfa.php. */
body.connect-account main {
    max-width: 650px;
}
.connect-account h1 { margin-top: 0; }
.connect-account h2 { margin-top: 28px; font-size: 1.2rem; }
.connect-account p { line-height: 1.6; }
.connect-account .account {
    padding: 14px;
    background: #edf4ff;
    border-radius: 8px;
    overflow-wrap: anywhere;
}
.connect-account .details { margin: 0; }
.connect-account .details dt {
    margin-top: 12px;
    color: var(--connect-muted);
    font-size: .92rem;
}
.connect-account .details dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.connect-account .stations { list-style: none; padding: 0; }
.connect-account .stations li {
    padding: 12px 0;
    border-bottom: 1px solid #e0e8f1;
}
.connect-account .station-name { display: block; font-weight: 600; }
.connect-account a { font-weight: 600; }
.connect-account .admin-link { margin: 18px 0; }
.connect-account .password-form label {
    display: block;
    margin: 14px 0 5px;
    font-weight: 600;
}
.connect-account .password-form input {
    width: 100%;
    padding: 10px;
    border: 1px solid #9ab2ca;
    border-radius: 6px;
    font: inherit;
}
.connect-account .password-form button {
    margin-top: 16px;
    padding: 10px 16px;
    background: var(--connect-blue-action);
    color: white;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    font: inherit;
}
.connect-account .feedback {
    padding: 12px;
    border-radius: 8px;
    background: var(--connect-success-bg);
}
.connect-account .feedback.error { background: var(--connect-error-bg); }
.connect-account .footer { margin-top: 28px; }
@media (max-width: 650px) {
    body.connect-account main { padding: 22px; }
}

/* access/admin/index.php – isolerade originalstilar */
body.connect-admin-index * { box-sizing: border-box; }
body.connect-admin-index { margin: 0; padding: 24px; font: 16px system-ui, sans-serif; background: #f2f5f9; color: #172b43; }
body.connect-admin-index main { max-width: 1100px; margin: 30px auto; padding: 28px; background: white; border-radius: 12px; box-shadow: 0 6px 24px rgba(0,0,0,.07); }
body.connect-admin-index h1 { margin-top: 0; }
body.connect-admin-index p { line-height: 1.6; }
body.connect-admin-index nav { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0; }
body.connect-admin-index .tab { display: inline-block; padding: 12px 18px; border-radius: 7px; background: #e9eff7; text-decoration: none; color: var(--connect-blue-action); }
body.connect-admin-index .tab:hover, body.connect-admin-index .tab:focus-visible { background: #d7e5f5; text-decoration: underline; }
body.connect-admin-index section { scroll-margin-top: 20px; }
body.connect-admin-index .active { background: var(--connect-blue-action); color: white; }
body.connect-admin-index .account, body.connect-admin-index .note { color: #52657b; }
body.connect-admin-index .account { overflow-wrap: anywhere; }
body.connect-admin-index .note { font-size: 14px; }
body.connect-admin-index .table-wrap { overflow-x: auto; }
body.connect-admin-index table { width: 100%; border-collapse: collapse; text-align: left; }
body.connect-admin-index th, body.connect-admin-index td { padding: 12px 10px; border-bottom: 1px solid #dce4ee; vertical-align: top; }
body.connect-admin-index th { background: #f2f5f9; white-space: nowrap; }
body.connect-admin-index td.email { overflow-wrap: anywhere; }
body.connect-admin-index a { color: var(--connect-blue-action); }
body.connect-admin-index select { max-width: 100%; padding: 10px; font: inherit; border: 1px solid #aab8c8; border-radius: 6px; }
body.connect-admin-index button { padding: 11px 18px; border: 0; border-radius: 7px; background: var(--connect-blue-action); color: white; font: inherit; cursor: pointer; }
body.connect-admin-index .stations { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 8px; margin: 16px 0; }
body.connect-admin-index .station { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid #dce4ee; border-radius: 7px; }
body.connect-admin-index .station input { margin-top: 4px; }
body.connect-admin-index .muted { color: #52657b; font-size: 13px; }
body.connect-admin-index .permissions { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 15px 0; }
body.connect-admin-index .permissions label { padding: 12px; border: 1px solid #dce4ee; border-radius: 7px; }
body.connect-admin-index .notice { padding: 12px; background: #e9f6ec; border-radius: 7px; }
body.connect-admin-index .error { padding: 12px; background: #fff0f0; color: var(--connect-error-text); border-radius: 7px; }
@media  (max-width: 600px) {
body.connect-admin-index { padding: 12px; }
body.connect-admin-index main { margin: 8px auto; padding: 18px; }
body.connect-admin-index h1 { font-size: 24px; }
body.connect-admin-index .tab { padding: 10px 12px; font-size: 14px; }
}

/* Stationsadministration: gemensamt sidhuvud och färgpalett.
   Selektorerna är avgränsade så Connects befintliga sidor inte påverkas. */

body.stationer-app .sw-admin-head{background:var(--connect-blue);color:#fff;padding:14px max(18px,calc((100vw - 1464px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
body.stationer-app .sw-admin-brand{display:flex;align-items:center;gap:12px;min-width:0;background:#fff;padding:6px 14px;border-radius:8px}
body.stationer-app .sw-admin-brand img{display:block;width:auto;height:46px;max-width:min(300px,65vw)}
body.stationer-app .sw-admin-head nav{display:flex;gap:8px;flex-wrap:wrap}
body.stationer-app .sw-admin-head nav a{color:#fff;text-decoration:none;padding:9px 12px;border:1px solid #ffffff55;border-radius:7px;font-weight:600;font-size:14px}
body.stationer-app .sw-admin-head nav a[aria-current="page"]{background:#fff;color:var(--connect-blue)}
body.stationer-app .sw-admin-head nav a:hover{background:#ffffff22}
body.stationer-app .sw-admin-head nav a[aria-current="page"]:hover{background:#fff}
@media(max-width:600px){body.stationer-app .sw-admin-head{padding:12px 16px}body.stationer-app .sw-admin-brand img{height:38px}body.stationer-app .sw-admin-head nav a{padding:8px 10px}}

/* Stationsadministration: huvudrubrik i Connects gemensamma blå färg. */
body.stationer-app .wrap > h1{color:var(--connect-blue)}

/* 1.00.06: Stationsadministrationens sidhuvud använder Connects blå bakgrund. */

/* 1.00.07: Delade visuella komponenter för Stationsadministration.
   Stationer-specifika mått bevaras, men färger kommer från Connect. */
body.stationer-app input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body.stationer-app select {box-sizing:border-box;width:100%;height:40px;padding:8px 10px;border:1px solid var(--connect-border-control);border-radius:6px;background:var(--connect-white);color:var(--connect-ink);font:inherit}
body.stationer-app button,body.stationer-app .button {display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:40px;padding:8px 14px;border:1px solid var(--connect-border-control);border-radius:6px;background:var(--connect-white);color:var(--connect-ink);text-decoration:none;cursor:pointer;font:inherit}
body.stationer-app .primary {background:var(--connect-blue-action)!important;color:var(--connect-white)!important;border-color:var(--connect-blue-action)!important}
body.stationer-app .danger {color:#8b0000!important;border-color:#b77!important}
body.stationer-app .station-tab {appearance:none;border:1px solid var(--connect-border-control);border-bottom:0;border-radius:7px 7px 0 0;background:#e9eff7;color:var(--connect-blue);min-height:42px;padding:9px 16px;margin:0 0 -1px;font-weight:700;cursor:pointer}
body.stationer-app .station-tab:hover {background:#d7e5f5}
body.stationer-app .station-tab.is-active {background:var(--connect-white);color:var(--connect-blue);border-bottom:1px solid var(--connect-white)}
@media(max-width:760px){body.stationer-app .station-tab{border:1px solid var(--connect-border-control);border-radius:7px;margin:0;flex:1 1 calc(50% - 7px)}body.stationer-app .station-tab.is-active{border-color:var(--connect-blue);background:var(--connect-blue);color:#fff}}

/* 1.00.08 – Stationsadministration: gemensam rubrik och responsiv navigation. */
body.stationer-app .sw-admin-brand-group{display:flex;align-items:center;gap:20px;min-width:0}
body.stationer-app .sw-admin-title{margin:0;color:#fff;font-size:clamp(1.1rem,2vw,1.55rem);font-weight:650;line-height:1.25}
body.stationer-app .station-version{margin:0 0 14px}
body.stationer-app .station-mobile-tabs{display:none}
body.stationer-app .station-tabs .visitor-link{display:none}
@media(max-width:760px){
  body.stationer-app .sw-admin-head{align-items:flex-start;gap:12px}
  body.stationer-app .sw-admin-brand-group{width:100%;gap:12px}
  body.stationer-app .sw-admin-brand{padding:5px 8px}
  body.stationer-app .sw-admin-brand img{height:34px;max-width:110px}
  body.stationer-app .sw-admin-title{font-size:1.12rem}
  body.stationer-app .sw-admin-head nav{width:100%;gap:6px}
  body.stationer-app .sw-admin-head nav a{font-size:12px;padding:7px 9px}
  body.stationer-app .wrap{margin:14px auto;padding:0 12px 28px}
  body.stationer-app .panel{padding:14px}
  body.stationer-app .station-menu .station-picker{flex:1 1 100%;max-width:none}
  body.stationer-app .station-menu .station-picker .station-menu{align-items:stretch}
  body.stationer-app .station-menu .station-picker select{flex:1 1 100%;max-width:none}
  body.stationer-app .station-menu .menu-actions{width:100%}
  body.stationer-app .station-menu .menu-actions .button{flex:1 1 auto}
  body.stationer-app .station-tabs{display:none}
  body.stationer-app .station-mobile-tabs{display:block;margin:0 0 14px;padding:12px;background:#fff;border:1px solid var(--connect-border);border-radius:9px}
  body.stationer-app .station-mobile-tabs label{margin:0 0 7px;color:var(--connect-ink)}
  body.stationer-app .station-mobile-tabs select{width:100%;max-width:none}
  body.stationer-app .summary{gap:7px}
  body.stationer-app .summary .badge{padding:8px 10px;font-size:13px}
  body.stationer-app .admin-section>summary{font-size:1.05rem;padding:13px}
  body.stationer-app .admin-section>.section-body{padding:0 13px 13px}
}
@media(max-width:400px){body.stationer-app .sw-admin-title{font-size:1rem}}

/* 1.00.09 – Mobil hamburgermeny för Stationsadministration.
   Avgränsad till stationer-app; Connects övriga sidor påverkas inte. */
body.stationer-app .sw-admin-mobile-menu{display:none}
@media(max-width:760px){
  body.stationer-app .sw-admin-head{position:relative;align-items:center;flex-wrap:nowrap;gap:8px}
  body.stationer-app .sw-admin-brand-group{width:auto;flex:1 1 auto;min-width:0}
  body.stationer-app .sw-admin-title{overflow-wrap:anywhere}
  body.stationer-app .sw-admin-desktop-nav{display:none}
  body.stationer-app .sw-admin-mobile-menu{display:block;flex:0 0 auto;position:relative}
  body.stationer-app .sw-admin-mobile-menu>summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;border:1px solid #ffffff80;border-radius:8px;padding:9px 11px;color:#fff;font-size:14px;font-weight:600;min-height:44px}
  body.stationer-app .sw-admin-mobile-menu>summary::-webkit-details-marker{display:none}
  body.stationer-app .sw-menu-icon{font-size:23px;line-height:1}
  body.stationer-app .sw-admin-mobile-menu[open]>summary{background:#ffffff22}
  body.stationer-app .sw-admin-mobile-menu nav{position:absolute;z-index:100;right:0;top:calc(100% + 8px);width:min(290px,calc(100vw - 24px));display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--connect-border);border-radius:10px;padding:8px;box-shadow:0 12px 30px #102c4b33}
  body.stationer-app .sw-admin-mobile-menu nav a{display:block;color:var(--connect-ink);border:0;border-radius:6px;padding:13px 12px;font-size:15px;text-decoration:none}
  body.stationer-app .sw-admin-mobile-menu nav a[aria-current="page"]{background:#e9eff7;color:var(--connect-blue);font-weight:700}
  body.stationer-app .sw-admin-mobile-menu nav a:hover{background:#edf4ff;color:var(--connect-blue)}
  body.stationer-app .station-menu .menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body.stationer-app .station-menu .menu-actions .button{width:100%;min-width:0;text-align:center}
}
@media(max-width:420px){
  body.stationer-app .sw-admin-brand img{max-width:85px;height:30px}
  body.stationer-app .sw-admin-title{font-size:.98rem}
  body.stationer-app .sw-admin-mobile-menu>summary{padding:8px}
}

/* 1.00.10: Mobilhuvud. Mer specifika selektorer än den generella nav-regeln.
   Ingen påverkan på Connects övriga sidor. */
@media (max-width:760px) {
  body.stationer-app .sw-admin-head {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:space-between;
    padding:10px 12px;
    gap:10px;
    min-width:0;
  }
  body.stationer-app .sw-admin-brand-group {
    display:flex;
    flex:1 1 0;
    width:auto;
    min-width:0;
    gap:9px;
    align-items:center;
  }
  body.stationer-app .sw-admin-brand {flex:0 0 auto;padding:4px 6px;}
  body.stationer-app .sw-admin-brand img {height:29px;max-width:88px;}
  body.stationer-app .sw-admin-title {
    flex:1 1 auto;
    min-width:0;
    margin:0;
    font-size:clamp(12px,3.7vw,17px);
    line-height:1.15;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  body.stationer-app .sw-admin-head nav.sw-admin-desktop-nav {display:none !important;}
  body.stationer-app .sw-admin-mobile-menu {display:block;flex:0 0 auto;}
  body.stationer-app .sw-admin-mobile-menu>summary {min-height:40px;padding:7px 9px;font-size:13px;}
  body.stationer-app .sw-admin-mobile-menu nav {display:flex;flex-direction:column;width:min(270px,calc(100vw - 24px));}
  body.stationer-app .sw-admin-mobile-menu nav a {display:block;white-space:normal;}
}
@media (max-width:370px) {
  body.stationer-app .sw-admin-brand img {max-width:72px;height:25px;}
  body.stationer-app .sw-admin-title {font-size:12px;}
  body.stationer-app .sw-admin-mobile-menu>summary {padding:6px 7px;}
  body.stationer-app .sw-admin-mobile-menu>summary span:last-child {display:none;}
}

/* 1.00.11 – Stationsadministration: kompakt stationsval och arbetsyta.
   Avgränsat till stationer-app; Connects andra sidor påverkas inte. */
body.stationer-app .station-selector-panel {padding:16px 18px;}
body.stationer-app .station-selector-panel>h2 {font-size:1.15rem;margin:0 0 12px;color:var(--connect-ink);}
body.stationer-app .station-selector-panel .station-menu {align-items:end;gap:10px;}
body.stationer-app .station-selector-panel .station-picker {min-width:0;}
body.stationer-app .station-selector-panel .station-picker .station-menu {flex-wrap:nowrap;}
body.stationer-app .station-selector-panel .station-picker select {min-width:0;flex:1 1 auto;}
body.stationer-app .station-selector-panel .menu-actions .button {white-space:nowrap;}
body.stationer-app .summary .badge {border-color:var(--connect-border);}
@media (max-width:760px) {
  body.stationer-app .wrap {margin:10px auto;padding:0 12px 24px;}
  body.stationer-app .station-version {font-size:11px;margin:0 0 8px;}
  body.stationer-app .summary {gap:6px;margin-bottom:12px;}
  body.stationer-app .summary .badge {font-size:11px;padding:5px 8px;border-radius:6px;}
  body.stationer-app .panel {padding:12px;margin-bottom:12px;}
  body.stationer-app .panel>h2 {font-size:1.2rem;margin-bottom:12px;}
  body.stationer-app .station-selector-panel {padding:12px;}
  body.stationer-app .station-selector-panel>h2 {font-size:1.05rem;margin-bottom:8px;}
  body.stationer-app .station-selector-panel .station-picker-label {font-size:12px;margin-bottom:5px;}
  body.stationer-app .station-selector-panel .station-menu {gap:8px;}
  body.stationer-app .station-selector-panel .station-picker {flex:1 1 100%;max-width:none;}
  body.stationer-app .station-selector-panel .station-picker .station-menu {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;}
  body.stationer-app .station-selector-panel .station-picker select {width:100%;min-width:0;height:42px;}
  body.stationer-app .station-selector-panel .station-picker button {width:auto;white-space:nowrap;min-height:42px;padding:7px 10px;font-size:13px;}
  body.stationer-app .station-selector-panel .menu-actions {display:flex;flex-wrap:wrap;width:100%;gap:6px;}
  body.stationer-app .station-selector-panel .menu-actions .button {flex:0 1 auto;width:auto;min-height:34px;padding:6px 9px;font-size:12px;white-space:normal;}
  body.stationer-app .station-main-panel>h2 {font-size:1.2rem;}
  body.stationer-app .station-mobile-tabs {padding:10px;margin-bottom:12px;}
  body.stationer-app .station-mobile-tabs label {font-size:13px;}
  body.stationer-app .admin-section {margin-bottom:12px;}
  body.stationer-app .admin-section>summary {font-size:1rem;padding:11px 12px;}
  body.stationer-app .admin-section>.section-body {padding:0 12px 12px;}
}
@media (max-width:380px) {
  body.stationer-app .station-selector-panel .station-picker .station-menu {grid-template-columns:minmax(0,1fr);}
  body.stationer-app .station-selector-panel .station-picker button {width:100%;}
}

/* 1.00.12 – Snabbnavigation inom stationens datakällor. */
body.stationer-app .station-source-shortcuts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:12px 14px;background:#fff;border:1px solid var(--connect-border);border-radius:10px}
body.stationer-app .station-source-shortcuts-label{font-size:13px;font-weight:600;color:var(--connect-muted);margin-right:4px}
body.stationer-app .station-source-shortcuts a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--connect-border);border-radius:7px;background:#f0f5fb;color:var(--connect-ink);text-decoration:none;font-size:14px;font-weight:600}
body.stationer-app .station-source-shortcuts a:hover,body.stationer-app .station-source-shortcuts a:focus-visible{background:#e1effc;border-color:var(--connect-blue)}
body.stationer-app .station-source-shortcuts a span{font-size:12px;color:var(--connect-muted)}
body.stationer-app #station-source-weatherlink,body.stationer-app #station-source-wlk,body.stationer-app #station-source-external{scroll-margin-top:14px}
@media(max-width:760px){body.stationer-app .station-source-shortcuts{padding:10px;gap:6px}body.stationer-app .station-source-shortcuts-label{width:100%}body.stationer-app .station-source-shortcuts a{flex:1 1 auto;justify-content:center;padding:10px 8px;font-size:12px;min-height:42px}}

/* 1.00.13 – TTN-enheter: visa först en översikt, öppna bara det som redigeras. */
body.stationer-app .ttn-device-card>summary{cursor:pointer;line-height:1.5}
body.stationer-app .ttn-device-card>div{display:grid;gap:10px}
body.stationer-app .ttn-device-settings,body.stationer-app .ttn-device-measurements{border:1px solid var(--connect-border);border-radius:8px;background:#fff;margin:0;min-width:0}
body.stationer-app .ttn-device-settings>summary,body.stationer-app .ttn-device-measurements>summary{cursor:pointer;padding:11px 12px;font-weight:600;color:var(--connect-ink);background:#f0f5fb;border-radius:8px}
body.stationer-app .ttn-device-settings[open]>summary,body.stationer-app .ttn-device-measurements[open]>summary{border-radius:8px 8px 0 0;border-bottom:1px solid var(--connect-border)}
body.stationer-app .ttn-device-settings>form,body.stationer-app .ttn-device-measurements>form,body.stationer-app .ttn-device-measurements>p{margin:12px}
body.stationer-app .ttn-device-measurements .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.stationer-app .ttn-device-measurements table{min-width:950px}
@media(max-width:760px){body.stationer-app .ttn-device-card>summary{font-size:13px;overflow-wrap:anywhere}body.stationer-app .ttn-device-settings>summary,body.stationer-app .ttn-device-measurements>summary{font-size:13px;padding:11px}}


/* 1.00.20 | 2026-11-06 18:05 | Samma bredd och sidhuvud för Connect och Stationer.
   Connect Administration är referens (1100px). Mobilmeny från Stationer bevarad. */
body.connect-app,body.stationer-app{--sw-admin-content-width:1100px}
body.connect-app .sw-admin-head,
body.stationer-app .sw-admin-head{
    box-sizing:border-box;
    width:100%;
    padding:14px max(22px,calc((100% - var(--sw-admin-content-width))/2));
}
body.connect-app .sw-admin-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--connect-blue);color:#fff}
body.connect-app .sw-admin-brand-group{display:flex;align-items:center;gap:20px;min-width:0}
body.connect-app .sw-admin-brand{display:flex;align-items:center;background:#fff;padding:6px 14px;border-radius:8px}
body.connect-app .sw-admin-brand img{display:block;height:46px;max-width:min(300px,65vw)}
body.connect-app .sw-admin-title{margin:0;color:#fff;font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.25}
body.connect-app .sw-admin-desktop-nav{display:flex;gap:8px;flex-wrap:wrap}
body.connect-app .sw-admin-desktop-nav a{color:#fff;text-decoration:none;padding:9px 12px;border:1px solid #ffffff55;border-radius:7px;font-weight:600;font-size:14px}
body.connect-app .sw-admin-desktop-nav a[aria-current="page"]{background:#fff;color:var(--connect-blue)}
body.connect-app .sw-admin-mobile-menu{display:none}
body.connect-app main{width:100%;max-width:var(--sw-admin-content-width);margin:0 auto;padding:22px;box-sizing:border-box}
body.connect-account main{max-width:var(--sw-admin-content-width);background:transparent;box-shadow:none;border-radius:0}
body.stationer-app .wrap{box-sizing:border-box;width:100%;max-width:var(--sw-admin-content-width);margin:22px auto;padding:0 22px 40px}
body.connect-app main>h1:first-child{font-size:1.5rem;margin-bottom:8px}
@media(max-width:760px){
  body.connect-app .sw-admin-head,body.stationer-app .sw-admin-head{padding:12px 16px;position:relative;align-items:center;flex-wrap:nowrap;gap:8px}
  body.connect-app .sw-admin-brand-group{flex:1 1 auto;min-width:0;gap:12px}
  body.connect-app .sw-admin-brand{padding:5px 8px}
  body.connect-app .sw-admin-brand img{height:34px;max-width:110px}
  body.connect-app .sw-admin-title{font-size:1.05rem;overflow-wrap:normal}
  body.connect-app .sw-admin-desktop-nav{display:none}
  body.connect-app .sw-admin-mobile-menu{display:block;flex:0 0 auto;position:relative}
  body.connect-app .sw-admin-mobile-menu>summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;border:1px solid #ffffff80;border-radius:8px;padding:9px 11px;color:#fff;font-size:14px;font-weight:600;min-height:44px}
  body.connect-app .sw-admin-mobile-menu>summary::-webkit-details-marker{display:none}
  body.connect-app .sw-menu-icon{font-size:23px;line-height:1}
  body.connect-app .sw-admin-mobile-menu nav{position:absolute;z-index:100;right:0;top:calc(100% + 8px);width:min(290px,calc(100vw - 24px));display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--connect-border);border-radius:10px;padding:8px;box-shadow:0 12px 30px #102c4b33}
  body.connect-app .sw-admin-mobile-menu nav a{display:block;color:var(--connect-ink);border:0;border-radius:6px;padding:13px 12px;font-size:15px;text-decoration:none}
  body.connect-app .sw-admin-mobile-menu nav a[aria-current="page"]{background:#e5f1fd;color:var(--connect-blue)}
  body.connect-app main{padding:14px 12px 28px}
  body.stationer-app .wrap{margin:14px auto;padding:0 12px 28px}
}


/* 1.00.21 – 2026-11-06 18:20
   Mitt konto: en rad per post på dator; mobil behåller läsbar stapling. */
@media (min-width: 761px) {
  body.connect-account .account {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:8px 22px;
  }
  body.connect-account .account > p {
    margin:0;
  }
  body.connect-account .account > .muted {
    margin-left:auto;
    white-space:nowrap;
  }
  body.connect-account .details {
    display:grid;
    grid-template-columns:minmax(230px, 38%) minmax(0, 1fr);
    column-gap:20px;
    row-gap:0;
    align-items:baseline;
  }
  body.connect-account .details dt,
  body.connect-account .details dd {
    margin:0;
    padding:10px 0;
    border-bottom:1px solid var(--connect-border);
  }
  body.connect-account .details dd {
    overflow-wrap:anywhere;
  }
}

/* 1.00.22 | 2026-11-06 18:35 | Kompakt stationsbehörighet på Mitt konto */
.connect-account .connect-station-access{margin-top:26px}
.connect-account .connect-station-access h2{margin-bottom:10px}
.connect-account .connect-access-summary{margin:0;padding:13px 16px;border:1px solid var(--connect-border);border-radius:9px;background:#fff}
.connect-account .connect-access-details{margin-top:10px;border:1px solid var(--connect-border);border-radius:9px;background:#fff;padding:0 14px}
.connect-account .connect-access-details>summary{cursor:pointer;padding:13px 2px;font-weight:600;color:var(--connect-blue)}
.connect-account .connect-access-details .stations{margin:0 0 12px}
.connect-account .connect-access-details .stations li{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.connect-account .connect-access-details .station-name{display:inline}
@media(max-width:600px){.connect-account .connect-access-details .stations li{align-items:flex-start;flex-direction:column;gap:2px}}


/* 1.00.23 – 2026-11-06 18:50
   Stationsbehörigheter har samma rubrik och löptext som Byt lösenord.
   Ingen inramning kring avsnittet eller sammanfattningen. */
.connect-account .connect-station-access{
    margin-top:26px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.connect-account .connect-station-access h2{
    margin:0 0 10px;
}
.connect-account .connect-access-summary{
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}

/* 1.00.24 – 2026-11-06 18:55: Kompakt Connect Administration */
.connect-admin-main .connect-admin-intro {margin-bottom:18px}
.connect-admin-main .connect-admin-intro h2 {margin:0 0 5px}
.connect-admin-main .connect-admin-intro p {margin:0}
.connect-admin-main .connect-admin-filter {display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px 18px;margin:0 0 18px;background:#fff;border:1px solid var(--connect-border);border-radius:10px}
.connect-admin-main .connect-admin-filter label {font-weight:700}
.connect-admin-main .connect-admin-filter select {width:min(380px,100%);max-width:100%;min-width:180px}
.connect-admin-main .connect-admin-filter .muted {font-size:13px}
.connect-admin-main .connect-admin-tool {margin:0 0 10px;padding:0 18px;border:1px solid var(--connect-border);border-radius:10px;background:#fff}
.connect-admin-main .connect-admin-tool>summary {padding:16px 0;cursor:pointer;font-weight:700;color:var(--connect-ink)}
.connect-admin-main .connect-admin-tool[open]>summary {border-bottom:1px solid var(--connect-border);margin-bottom:14px}
.connect-admin-main .connect-admin-tool>p {margin:10px 0 14px}
.connect-admin-main .connect-admin-tool>form {margin:0 0 18px}
.connect-admin-main .connect-admin-data-section {margin-top:20px}
.connect-admin-main .connect-admin-data-section h2 {margin-top:0}
.connect-admin-main .connect-admin-data-section tbody tr[hidden] {display:none !important}
.connect-admin-main .connect-admin-data-section th,.connect-admin-main .connect-admin-data-section td {padding:9px 10px;vertical-align:middle}
.connect-admin-main .connect-admin-data-section .connect-inline-form {display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.connect-admin-main .connect-admin-data-section .connect-inline-form select {min-width:150px}
@media(max-width:760px){
 .connect-admin-main .connect-admin-filter {padding:12px;align-items:stretch;flex-direction:column}
 .connect-admin-main .connect-admin-filter select {width:100%}
 .connect-admin-main .connect-admin-tool {padding:0 12px}
}

/* 1.00.25 – 2026-11-06 19:10: Samlad sparning av stationsbehörigheter */
.connect-batch-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0 16px;padding:12px 14px;border:1px solid var(--connect-border);border-radius:8px;background:#f4f8fc}
.connect-batch-actions button:disabled{opacity:.55;cursor:not-allowed}
.connect-permission-dirty{background:#fff6df}
.connect-permission-role{min-width:140px}
