:root{color-scheme:light;--green:#176844;--bg:#f3f7f5;--ink:#20342c;--muted:#62756c;--line:#d6e4dc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}a{color:var(--green)}header{background:#123f30;color:white;padding:12px max(20px,calc((100vw - 1100px)/2));display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap}header a{color:white;text-decoration:none;margin-right:14px}header nav{display:flex;flex-wrap:wrap;gap:10px}.container{width:min(1100px,calc(100% - 32px));margin:28px auto}.narrow{max-width:540px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 2px 10px #143d2608}h1,h2,h3{line-height:1.2}h1{font-size:1.8rem}h2{font-size:1.3rem}.muted{color:var(--muted)}form{display:grid;gap:12px}label{display:grid;gap:4px;font-weight:600}input,textarea,select{font:inherit;width:100%;border:1px solid #bdcfc4;border-radius:8px;padding:10px;background:white;color:var(--ink)}input[type=checkbox]{width:auto}button,.button{display:inline-block;background:var(--green);border:0;border-radius:9px;padding:10px 16px;color:white;text-decoration:none;font:inherit;font-weight:650;cursor:pointer}button:disabled{background:#8a9e91;cursor:not-allowed}.secondary{background:#e6eee9;color:#163b2d}.danger{background:#9b3737}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.notice{border-radius:9px;padding:12px;background:#e1f2e7;margin-bottom:14px}.error{border-radius:9px;padding:12px;background:#fee9e7;color:#842e2a;margin-bottom:14px}.target{border:1px solid var(--line);border-radius:10px;padding:15px;background:white}.target h3{margin:0}.tag{display:inline-block;background:#e2efe7;border-radius:12px;padding:3px 9px;color:#185a3e;font-size:.86rem}.map{height:400px;border-radius:12px;z-index:0}.smallmap{height:250px}table{border-collapse:collapse;width:100%;overflow:auto}th,td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.scroll{overflow-x:auto}.tabs a{display:inline-block;margin:0 8px 8px 0;padding:7px 12px;background:#e4eee8;border-radius:8px;text-decoration:none}.tabs a.active{background:#165b3e;color:white}.metric{font-size:2rem;font-weight:750}.help{font-size:.88rem;color:var(--muted)}@media(max-width:650px){header{padding:12px 18px}header nav{gap:8px}header a{margin:0}.panel{padding:16px}.map{height:300px}}

/* Kartet skal aldri tegnes utenfor sitt eget panel. */
.map{position:relative;overflow:hidden;isolation:isolate;width:100%;max-width:100%;}
.panel:has(>.map){overflow:hidden;}

/* v1.4: hold alle redigeringsfelter og lagreknappen på én linje */
.user-edit-row{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:9px;min-width:605px;margin:0}
.user-edit-row label{margin:0!important;font-size:.86rem;min-width:0!important;flex:1 1 0}
.user-edit-row label:first-of-type{flex:1.5 1 0}
.user-edit-row select{padding:8px 6px;font-size:.89rem;min-height:40px}
.user-edit-row button{flex:0 0 auto;min-height:40px;padding:8px 12px;white-space:nowrap}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* Tabellen kan scrolles horisontalt på små skjermer, uten at knapp flyttes ned */

/* Skjul kartbeholder helt frem til brukeren åpner den. */
[hidden] { display: none !important; }

/* v1.7: Åpne/lukke kartet bruker innebygd HTML, ikke JavaScript */
.map-details{margin:10px 0 18px}
.map-summary{display:inline-block;list-style:none;cursor:pointer;background:#e6eee9;color:#163b2d;border-radius:9px;padding:10px 16px;font-weight:650;user-select:none}
.map-summary::-webkit-details-marker{display:none}
.map-summary:focus-visible{outline:3px solid #176844;outline-offset:3px}
.map-hide{display:none}
.map-details[open] .map-show{display:none}
.map-details[open] .map-hide{display:inline}
.map-loading{padding:14px;color:#62756c}

/* v1.8: touch-friendly map toggle and admin GPS capture */
.map-summary{display:flex;align-items:center;justify-content:center;min-height:56px;min-width:190px;padding:15px 26px;font-size:1.08rem;touch-action:manipulation;text-align:center;}
.gps-pick-button{min-height:54px;padding:14px 20px;font-size:1rem;touch-action:manipulation;}
.admin-gps-picker{margin-top:4px;}
.admin-gps-picker .help{margin:8px 0 0;}
@media(max-width:650px){.map-summary{width:100%;min-height:60px;font-size:1.13rem}.gps-pick-button{width:100%;min-height:60px;font-size:1.07rem}}

/* v1.9: Klikkbar brukerliste med redigering under valgt bruker */
.user-list{display:grid;gap:10px;margin-top:14px}
.user-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.user-card-summary{display:grid;grid-template-columns:minmax(160px,2fr) minmax(100px,1fr) minmax(130px,1fr) 24px;align-items:center;gap:14px;padding:15px 16px;cursor:pointer;list-style:none;touch-action:manipulation}
.user-card-summary::-webkit-details-marker{display:none}
.user-card-summary:hover,.user-card[open] .user-card-summary{background:#f1f7f3}
.user-card-summary:focus-visible{outline:3px solid #176844;outline-offset:-3px}
.user-card-main{display:grid;min-width:0}
.user-card-main small{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.user-card-dept,.user-card-status{font-size:.9rem}
.user-card-chevron{font-size:1.5rem;text-align:center;color:var(--green)}
.user-card[open] .user-card-chevron{transform:rotate(180deg)}
.user-edit-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:12px;padding:16px;border-top:1px solid var(--line)}
.user-edit-form button{min-height:45px;white-space:nowrap}
@media(max-width:760px){.user-card-summary{grid-template-columns:1fr 24px;gap:6px;min-height:64px}.user-card-main{grid-column:1}.user-card-dept,.user-card-status{grid-column:1}.user-card-chevron{grid-column:2;grid-row:1 / span 3}.user-edit-form{grid-template-columns:1fr}.user-edit-form button{width:100%;min-height:54px}}

/* v1.10: lokal SVG-markør for målpunkt, uten Leaflet PNG-avhengigheter */
.turmaal-marker { background: transparent !important; border: none !important; }
.turmaal-marker svg { display: block; width: 34px; height: 46px; filter: drop-shadow(0 2px 2px rgba(0,0,0,.25)); }

.export-year-form {display:flex;flex-wrap:wrap;align-items:end;gap:10px}.export-year-form label{display:flex;flex-direction:column;gap:4px}.export-year-form select{min-width:110px}.export-year-form button{min-height:44px}

/* v1.14 – passordredigering og mobilvennlig kartkontroll */
.admin-password-form{border-top:1px solid #dce5e1;padding:16px;display:grid;gap:12px}
.admin-password-form h3{margin:0}
.admin-password-form button{justify-self:start}
.turmaal-locate-control button{background:#fff;color:#123f30;border:0;border-radius:4px;box-shadow:0 1px 5px #0003;padding:10px 12px;min-height:44px;min-width:118px;font-weight:600;cursor:pointer}
.turmaal-locate-control button:disabled{opacity:.7;cursor:wait}
@media(max-width:600px){.admin-password-form button{width:100%;min-height:48px}.turmaal-locate-control button{min-height:48px}}


/* v1.16: User-selectable dark mode. The data-theme attribute is set before CSS loads. */
.theme-toggle{background:transparent;color:#fff;border:1px solid #ffffffa0;padding:7px 12px;min-height:42px;white-space:nowrap}
.theme-toggle:hover,.theme-toggle:focus-visible{background:#ffffff22}
:root[data-theme="dark"]{color-scheme:dark;--green:#6edda5;--bg:#111b19;--ink:#eaf3ef;--muted:#afc4ba;--line:#344c43;--panel:#1c2925;--field:#23332e;--soft:#273b33;--accent:#154b36}
:root[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] header{background:#0b211a}
:root[data-theme="dark"] a{color:#82e6b2}
:root[data-theme="dark"] header a{color:#f2f8f4}
:root[data-theme="dark"] .panel,:root[data-theme="dark"] .target,:root[data-theme="dark"] .user-card{background:var(--panel);color:var(--ink);border-color:var(--line);box-shadow:none}
:root[data-theme="dark"] input,:root[data-theme="dark"] textarea,:root[data-theme="dark"] select{background:var(--field);color:var(--ink);border-color:#5e756a}
:root[data-theme="dark"] input:disabled{opacity:.75}
:root[data-theme="dark"] button:not(.secondary):not(.danger):not(.theme-toggle):not(.turmaal-locate-control button),:root[data-theme="dark"] .button:not(.secondary):not(.danger){background:#206e4d;color:#fff}
:root[data-theme="dark"] .secondary,:root[data-theme="dark"] .map-summary,:root[data-theme="dark"] .tabs a,:root[data-theme="dark"] .tag{background:var(--soft);color:#dcf4e7}
:root[data-theme="dark"] .tabs a.active{background:#1c7952;color:white}
:root[data-theme="dark"] .notice{background:#214535;color:#d9f7e7}
:root[data-theme="dark"] .error{background:#502c2d;color:#ffd4d0}
:root[data-theme="dark"] .user-card-summary:hover,:root[data-theme="dark"] .user-card[open] .user-card-summary{background:#2a4136}
:root[data-theme="dark"] .user-card-main small,:root[data-theme="dark"] .help,:root[data-theme="dark"] .muted,:root[data-theme="dark"] .map-loading{color:var(--muted)}
:root[data-theme="dark"] .admin-password-form{border-top-color:var(--line)}
:root[data-theme="dark"] .turmaal-locate-control button{background:#23332e;color:#eaf3ef}
:root[data-theme="dark"] .theme-toggle{color:#fff;background:transparent;border-color:#769486}
:root[data-theme="dark"] .theme-toggle:hover{background:#284e3d}
@media(max-width:650px){.theme-toggle{min-height:48px}}

/* v1.17 - All navigation items use the same theme-button visual style. */
header nav.main-nav{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
header nav.main-nav .nav-action,header nav.main-nav .nav-logout-form .nav-action{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:42px;padding:7px 12px;border:1px solid #ffffffa0;border-radius:9px;background:transparent;color:#fff;text-decoration:none;white-space:nowrap;font:inherit;font-weight:650;line-height:1.4;cursor:pointer;margin:0}
header nav.main-nav .nav-action:hover,header nav.main-nav .nav-action:focus-visible{background:#ffffff22;outline-offset:2px}
header nav.main-nav .nav-logout-form{display:inline-flex;gap:0;margin:0;padding:0}
:root[data-theme="dark"] header nav.main-nav .nav-action{background:transparent;color:#fff;border-color:#769486}
:root[data-theme="dark"] header nav.main-nav .nav-action:hover{background:#284e3d}
@media(max-width:650px){header nav.main-nav .nav-action,header nav.main-nav .nav-logout-form .nav-action{min-height:48px;padding:10px 13px}}


/* v1.18 - illustrated front page background before login */
body.is-guest.page-login,body.is-guest.page-register{min-height:100vh;background:linear-gradient(rgba(243,247,245,.68),rgba(243,247,245,.82)),url("login-hero.png") center center / cover no-repeat fixed,var(--bg);}
body.is-guest.page-login main.container,body.is-guest.page-register main.container{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:20px 0 36px;}
body.is-guest.page-login .auth-panel,body.is-guest.page-register .auth-panel{background:rgba(255,255,255,.90);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 16px 40px rgba(18,63,48,.14);width:min(540px,100%);}
body.is-guest.page-login header,body.is-guest.page-register header{background:rgba(18,63,48,.92);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
body.is-guest.page-login .container>.notice,body.is-guest.page-login .container>.error,body.is-guest.page-register .container>.notice,body.is-guest.page-register .container>.error{max-width:540px;margin-left:auto;margin-right:auto;}
:root[data-theme="dark"] body.is-guest.page-login,:root[data-theme="dark"] body.is-guest.page-register{background:linear-gradient(rgba(8,15,12,.70),rgba(8,15,12,.84)),url("login-hero.png") center center / cover no-repeat fixed,var(--bg);}
:root[data-theme="dark"] body.is-guest.page-login .auth-panel,:root[data-theme="dark"] body.is-guest.page-register .auth-panel{background:rgba(28,41,37,.88);box-shadow:0 18px 44px rgba(0,0,0,.34);}
@media(max-width:650px){body.is-guest.page-login main.container,body.is-guest.page-register main.container{min-height:calc(100vh - 112px);align-items:flex-start;padding-top:22px;}body.is-guest.page-login,body.is-guest.page-register{background-position:center top;background-attachment:scroll;}body.is-guest.page-login .auth-panel,body.is-guest.page-register .auth-panel{background:rgba(255,255,255,.94);}}
