:root{color-scheme:light;--bg:#f3f5f8;--surface:#fff;--ink:#172b40;--line:#c7d2dd;--brand:#164f81}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,sans-serif}a{color:var(--brand);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}.tk-header{display:flex;gap:1rem;align-items:center;background:var(--surface);border-bottom:1px solid var(--line);padding:1rem max(1rem,calc((100vw - 1200px)/2));position:relative}.brand{font-size:1.25rem;font-weight:800;text-decoration:none;display:grid;line-height:1.4;margin-right:auto}.brand span{font-size:.78rem;font-weight:500;color:#486178}.profile{display:flex;align-items:center;gap:.6rem}.profile img{border-radius:50%;object-fit:cover;background:#e6edf4}.tk-menu{margin:0}.tk-menu summary{list-style:none;border:1px solid var(--line);border-radius:9px;padding:.5rem .8rem;min-height:44px}.tk-menu summary::-webkit-details-marker{display:none}.tk-menu nav{position:absolute;right:max(1rem,calc((100vw - 1200px)/2));top:100%;width:min(340px,calc(100vw - 2rem));z-index:10;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px #172b4022;border-radius:12px;padding:.5rem;display:grid}.tk-menu nav a{padding:.6rem .8rem;border-radius:6px;text-decoration:none}.tk-menu nav a:hover{background:#edf3f8}main{max-width:1200px;margin:2rem auto;padding:0 1rem}h1{line-height:1.25;font-size:clamp(1.7rem,4vw,2.3rem);margin:.3rem 0 1.3rem}h2{font-size:1.35rem;margin-top:1.8rem}.eyebrow{font-size:.8rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em;color:#486178}.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:1.5rem 0 2rem}.tabs a{padding:.55rem .9rem;border:1px solid var(--line);background:var(--surface);border-radius:999px;text-decoration:none;min-height:44px}.tabs [aria-current]{background:var(--brand);color:white;border-color:var(--brand)}section,fieldset,.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.25rem}form{margin:1.3rem 0}fieldset{display:flex;gap:1rem;flex-wrap:wrap;align-items:end;min-width:0}legend{font-weight:750;padding:0 .3rem}label{display:grid;gap:.35rem;min-width:min(180px,100%);flex:1}input,select,textarea,button,.button{font:inherit;padding:.6rem .8rem;border:1px solid #94a8bc;border-radius:7px;max-width:100%;min-height:44px}button,.button{background:var(--brand);color:white;cursor:pointer;text-decoration:none;display:inline-block;font-weight:650}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1.1rem}.card{display:block;text-decoration:none}.card h2{margin-top:0}.badge{display:inline-block;border:1px solid #61798f;background:#edf3f8;padding:.15rem .6rem;border-radius:99px;font-weight:750}.scroll{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;background:var(--surface)}th,td{padding:.7rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}th{white-space:nowrap;background:#edf3f8}.pending-action{margin:0}.pending-action button{min-height:36px;padding:.35rem .65rem;white-space:nowrap;background:#fff;color:#7b1d1d;border-color:#a3353d}.notice,.error,.emergency{padding:1rem;border-radius:9px}.notice{background:#e2f1e9;color:#16402a}.error{background:#fae5e5;color:#7b1d1d}.emergency{border:3px solid #aa5600;background:#fff1d7;color:#502900}.danger{border:2px solid #a3353d;border-radius:14px;padding:1.3rem;margin:2rem 0;background:#fffafa}.danger h2{margin-top:0}.muted{color:#486178}footer{max-width:1200px;margin:3rem auto;padding:1rem;color:#486178}details{margin:1rem 0}summary{cursor:pointer;font-weight:650}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;background:#edf3f8;padding:1rem;border-radius:8px}.audit-event{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:1rem}.skip{position:absolute;left:-10000px}.skip:focus{left:1rem;top:1rem;background:white;padding:1rem;z-index:99}:focus-visible{outline:3px solid #944dab;outline-offset:3px}@media(max-width:700px){.tk-header{gap:.6rem}.profile span{display:none}.brand span{max-width:160px}.tk-menu summary span{display:none}fieldset{display:block}fieldset label,fieldset button{margin:.8rem 0}fieldset button{width:100%}main{margin:1.3rem auto}.tabs{gap:.3rem}.tabs a{padding:.45rem .65rem}td{min-width:110px}.pending-action button{width:auto;margin:0}}
label{grid-template-columns:minmax(0,1fr)}input,select,textarea{min-width:0;width:100%}@media(max-width:700px){label{min-width:0}}

/* TKweb shell and account pages */
:root {
  --tk-blue: #1479cf;
  --tk-blue-dark: #075da8;
  --tk-blue-soft: #eaf5ff;
  --tk-navy: #102a3e;
  --tk-text: #183246;
  --tk-muted: #667987;
  --tk-border: #d7e1e9;
  --tk-surface: #fff;
  --tk-bg: #f4f7fa;
  --tk-shadow: 0 18px 50px rgba(20, 61, 91, .09);
}

html { min-height: 100%; }
body { min-height: 100vh; overflow-x: hidden; display: flex; flex-direction: column; background: var(--tk-bg); color: var(--tk-text); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
body::before { content: ""; position: fixed; z-index: -1; inset: 0 0 auto; height: 390px; pointer-events: none; background: radial-gradient(circle at 78% 3%, rgba(20,121,207,.11), transparent 31%), linear-gradient(180deg, #fff 0, rgba(255,255,255,.76) 68%, transparent 100%); }
.tk-icon { flex: 0 0 auto; }
.skip { z-index: 100; border-radius: 10px; box-shadow: var(--tk-shadow); }
.skip:focus { left: 18px; top: 18px; }

.tk-header { position: sticky; z-index: 60; top: 0; display: block; padding: 0; border-bottom: 1px solid rgba(204, 217, 227, .9); background: rgba(255,255,255,.94); box-shadow: 0 5px 24px rgba(20,61,91,.045); backdrop-filter: blur(16px); }
.tk-header-inner { width: min(1200px, calc(100% - 40px)); min-height: 82px; display: flex; align-items: center; gap: 24px; margin: 0 auto; }
.tk-brand { margin-right: auto; text-decoration: none; }
.tk-brand img { width: 154px; height: auto; display: block; }
.tk-header-actions { display: flex; align-items: center; gap: 13px; }
.tk-profile-link { display: flex; align-items: center; gap: 10px; padding: 5px 8px 5px 5px; border-radius: 12px; color: var(--tk-text); text-decoration: none; }
.tk-profile-link:hover { background: var(--tk-blue-soft); }
.tk-profile-link img { width: 44px; height: 44px; border: 2px solid white; border-radius: 50%; background: #e4edf4; object-fit: cover; box-shadow: 0 0 0 1px var(--tk-border); }
.tk-profile-link span { min-width: 0; display: grid; line-height: 1.25; }
.tk-profile-link strong { max-width: 220px; overflow: hidden; color: var(--tk-navy); font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.tk-profile-link small { color: var(--tk-muted); font-size: .72rem; }
.tk-menu { position: relative; margin: 0; }
.tk-menu > summary { width: 46px; height: 46px; display: grid; place-items: center; padding: 0; border: 1px solid #b9cedf; border-radius: 13px; background: white; color: var(--tk-blue-dark); cursor: pointer; list-style: none; transition: background .16s ease, border-color .16s ease, color .16s ease; }
.tk-menu > summary::-webkit-details-marker { display: none; }
.tk-menu[open] > summary, .tk-menu > summary:hover { border-color: var(--tk-blue); background: var(--tk-blue-soft); color: var(--tk-blue); }
.tk-menu-panel { position: absolute; z-index: 70; top: calc(100% + 12px); right: 0; width: min(355px, calc(100vw - 26px)); overflow: hidden; border: 1px solid var(--tk-border); border-radius: 17px; background: white; box-shadow: 0 24px 65px rgba(13,47,72,.2); }
.tk-menu-panel::before { content: ""; position: absolute; top: -7px; right: 16px; width: 14px; height: 14px; transform: rotate(45deg); border: 1px solid var(--tk-border); border-right: 0; border-bottom: 0; background: white; }
.tk-menu-panel nav { position: static; width: auto; display: grid; padding: 10px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.tk-menu-panel nav a, .tk-logout button { min-height: 48px; display: flex; align-items: center; gap: 13px; padding: 11px 12px; border: 0; border-radius: 10px; background: white; color: #253c4e; font: inherit; font-weight: 650; text-align: left; text-decoration: none; cursor: pointer; }
.tk-menu-panel nav a:hover, .tk-menu-panel nav a[aria-current="page"], .tk-logout button:hover { background: var(--tk-blue-soft); color: var(--tk-blue-dark); }
.tk-menu-panel nav a[aria-current="page"] { box-shadow: inset 3px 0 var(--tk-blue); }
.tk-menu-separator { height: 1px; margin: 8px 4px; background: #e6edf2; }
.tk-menu-label { margin: 3px 12px 5px; color: #80909d; font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tk-logout { margin: 0; padding: 0 10px 10px; border-top: 1px solid #e6edf2; }
.tk-logout button { width: 100%; margin-top: 10px; }

.tk-main { width: min(1200px, calc(100% - 40px)); flex: 1 0 auto; margin: 0 auto; padding: 56px 0 90px; }
.tk-page-heading { margin-bottom: 30px; }
.tk-page-heading h1 { margin: 5px 0 0; color: var(--tk-navy); font-size: clamp(2rem, 4.5vw, 3.7rem); letter-spacing: -.045em; }
.eyebrow { margin: 0; color: var(--tk-blue-dark); font-size: .74rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.section-heading h2 { margin: 4px 0 0; color: var(--tk-navy); font-size: clamp(1.55rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -.025em; }
.section-heading p:last-child { max-width: 700px; margin: 9px 0 0; color: var(--tk-muted); }
.section-heading-compact h2 { font-size: 1.5rem; }

.dashboard-hero { min-height: 300px; position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 260px; align-items: center; gap: 48px; margin: 0 0 52px; padding: clamp(34px, 6vw, 66px); border: 0; border-radius: 30px; color: white; background: radial-gradient(circle at 84% 17%, rgba(255,255,255,.23), transparent 25%), linear-gradient(125deg, #075caa 0%, #1687df 62%, #53aceb 100%); box-shadow: 0 26px 65px rgba(15,103,174,.22); }
.dashboard-hero::after { content: ""; position: absolute; right: -120px; bottom: -235px; width: 390px; height: 390px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.04), 0 0 0 110px rgba(255,255,255,.025); }
.dashboard-hero > div { position: relative; z-index: 1; }
.dashboard-hero .eyebrow { color: #d8efff; }
.dashboard-hero h1 { margin: 7px 0 16px; color: white; font-size: clamp(2.45rem, 6vw, 4.6rem); line-height: .98; letter-spacing: -.055em; }
.dashboard-hero p:last-child { max-width: 650px; margin: 0; color: #e9f6ff; font-size: 1.08rem; }
.dashboard-hero-mark { width: 220px; height: 150px; position: relative; }
.dashboard-hero-mark span { position: absolute; display: block; border: 3px solid rgba(255,255,255,.76); border-radius: 50%; }
.dashboard-hero-mark span:nth-child(1) { width: 142px; height: 142px; left: 0; top: 0; }
.dashboard-hero-mark span:nth-child(2) { width: 94px; height: 94px; right: 0; top: 29px; background: rgba(255,255,255,.12); }
.dashboard-hero-mark span:nth-child(3) { width: 18px; height: 18px; left: 62px; top: 62px; border: 0; background: white; box-shadow: 42px 0 white, 84px 0 white; }
.system-section { margin: 0; padding: 0; border: 0; background: transparent; }
.system-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.system-card { min-height: 290px; position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 25px; border: 1px solid var(--tk-border); border-radius: 23px; background: white; color: var(--tk-text); text-decoration: none; box-shadow: 0 12px 35px rgba(30,67,93,.07); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.system-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--card-accent, var(--tk-blue)); }
.system-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--card-accent, var(--tk-blue)) 45%, white); box-shadow: 0 23px 48px rgba(30,67,93,.14); }
.system-card--styringskraft { --card-accent: #684092; --card-soft: #f2eafa; }
.system-card--sidet { --card-accent: #b6249e; --card-soft: #fbebf8; }
.system-card--ungtloft { --card-accent: #188d87; --card-soft: #e8f7f5; }
.system-card--iua { --card-accent: #06264c; --card-soft: #edf2f8; }
.system-card-top { display: flex; align-items: center; justify-content: space-between; }
.system-card-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; background: var(--card-soft, var(--tk-blue-soft)); color: var(--card-accent, var(--tk-blue)); }
.system-card-icon .tk-icon { width: 25px; height: 25px; }
.system-card-arrow { color: var(--card-accent, var(--tk-blue)); transition: transform .18s ease; }
.system-card:hover .system-card-arrow { transform: translateX(4px); }
.system-card-body { flex: 1; padding: 30px 0 22px; }
.system-card h3 { margin: 0 0 9px; color: var(--tk-navy); font-size: 1.45rem; letter-spacing: -.025em; }
.system-card-body p { margin: 0; color: var(--tk-muted); line-height: 1.55; }
.system-card-roles { display: flex; flex-wrap: wrap; gap: 7px; }
.system-card-roles span { padding: 5px 9px; border-radius: 999px; background: var(--card-soft, var(--tk-blue-soft)); color: var(--card-accent, var(--tk-blue)); font-size: .72rem; font-weight: 800; }
.empty-state { max-width: 680px; margin: 30px auto; padding: 52px 32px; border: 1px solid var(--tk-border); border-radius: 24px; background: white; text-align: center; box-shadow: var(--tk-shadow); }
.empty-state > span { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 18px; background: var(--tk-blue-soft); color: var(--tk-blue); }
.empty-state h2 { margin: 0 0 8px; color: var(--tk-navy); }
.empty-state p { max-width: 520px; margin: auto; color: var(--tk-muted); }

.profile-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(280px, .65fr); align-items: center; gap: 28px; margin: 0 0 48px; padding: clamp(26px, 4vw, 42px); border: 1px solid var(--tk-border); border-radius: 28px; background: white; box-shadow: var(--tk-shadow); }
.profile-avatar-wrap { position: relative; }
.profile-avatar { width: 116px; height: 116px; display: block; border: 5px solid white; border-radius: 50%; background: #e5edf4; object-fit: cover; box-shadow: 0 0 0 1px var(--tk-border), 0 14px 32px rgba(20,61,91,.17); }
.profile-status-dot { position: absolute; right: 5px; bottom: 8px; width: 20px; height: 20px; border: 4px solid white; border-radius: 50%; background: #23a76f; }
.profile-identity { min-width: 0; }
.profile-identity h1 { margin: 4px 0 4px; color: var(--tk-navy); font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.08; letter-spacing: -.045em; overflow-wrap: anywhere; }
.profile-email { color: var(--tk-blue-dark); font-size: 1rem; font-weight: 650; overflow-wrap: anywhere; text-decoration: none; }
.profile-email:hover { text-decoration: underline; }
.profile-technical { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 15px 0 0; color: #85939e; font-size: .74rem; }
.profile-technical span + span { position: relative; }
.profile-technical span + span::before { content: ""; position: absolute; left: -9px; top: .55em; width: 3px; height: 3px; border-radius: 50%; background: #aebac3; }
.account-summary { display: grid; grid-template-columns: auto 1fr; gap: 13px; padding: 18px; border: 1px solid #cae4da; border-radius: 17px; background: #f0faf6; }
.account-summary-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: #d9f2e8; color: #13784f; }
.account-summary strong { color: #155b43; font-size: .92rem; }
.account-summary p { margin: 4px 0 0; color: #54736a; font-size: .78rem; line-height: 1.5; }
.profile-section { margin: 0 0 52px; padding: 0; border: 0; background: transparent; }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.role-card { min-height: 205px; position: relative; overflow: hidden; display: block; padding: 24px; border: 1px solid var(--tk-border); border-radius: 21px; background: white; color: var(--tk-text); text-decoration: none; box-shadow: 0 11px 30px rgba(30,67,93,.055); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.role-card:hover { transform: translateY(-3px); border-color: var(--role-accent, var(--tk-blue)); box-shadow: 0 18px 38px rgba(30,67,93,.11); }
.role-card::after { content: ""; position: absolute; right: -40px; bottom: -55px; width: 130px; height: 130px; border-radius: 50%; background: var(--role-soft, var(--tk-blue-soft)); }
.role-card--styringskraft { --role-accent: #684092; --role-soft: #f3ecfa; }
.role-card--sidet { --role-accent: #a32391; --role-soft: #faedf8; }
.role-card--ungtloft { --role-accent: #167f79; --role-soft: #e9f7f5; }
.role-card-icon { width: 44px; height: 44px; position: relative; z-index: 1; display: grid; place-items: center; margin-bottom: 18px; border-radius: 13px; background: var(--role-soft, var(--tk-blue-soft)); color: var(--role-accent, var(--tk-blue)); }
.role-card-body { position: relative; z-index: 1; }
.role-card-arrow { position: absolute; z-index: 2; top: 25px; right: 24px; color: var(--role-accent, var(--tk-blue)); transition: transform .18s ease; }
.role-card:hover .role-card-arrow { transform: translateX(4px); }
.role-card h3 { margin: 0 0 5px; color: var(--tk-navy); font-size: 1.16rem; }
.role-card p { min-height: 43px; margin: 0 0 16px; color: var(--tk-muted); font-size: .82rem; line-height: 1.5; }
.role-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.role-chips span { padding: 5px 9px; border-radius: 999px; background: var(--role-soft, var(--tk-blue-soft)); color: var(--role-accent, var(--tk-blue-dark)); font-size: .7rem; font-weight: 800; }
.role-chips span.is-empty { background: #f0f3f5; color: #768691; }
.identity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.identity-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 15px; padding: 22px; border: 1px solid var(--tk-border); border-radius: 19px; background: white; box-shadow: 0 10px 28px rgba(30,67,93,.05); }
.identity-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: var(--tk-blue-soft); color: var(--tk-blue-dark); }
.identity-card-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.identity-card h3 { margin: 0; color: var(--tk-navy); font-size: 1rem; }
.identity-card-title span { padding: 4px 8px; border-radius: 999px; background: #e5f6ef; color: #14764f; font-size: .68rem; font-weight: 800; }
.identity-card:not(.is-active) .identity-card-title span { background: #f0f2f4; color: #6e7e89; }
.identity-card p { margin: 5px 0 0; color: var(--tk-muted); overflow-wrap: anywhere; }
.identity-card small { display: block; margin-top: 8px; color: #8997a1; font-size: .7rem; }
.identity-card-action { border-style: dashed; background: #fafdff; }
.identity-card-action p { font-size: .82rem; line-height: 1.5; }
.identity-card-action form { margin: 15px 0 0; }
.secondary-button { min-height: 42px; padding: 9px 14px; border: 1px solid #9fc0da; border-radius: 10px; background: white; color: var(--tk-blue-dark); font-weight: 750; }
.secondary-button:hover { border-color: var(--tk-blue); background: var(--tk-blue-soft); }

.tk-footer { width: 100%; max-width: none; flex: 0 0 auto; margin: auto 0 0; padding: 0; border-top: 1px solid #dce5eb; background: white; color: var(--tk-muted); }
.tk-footer-inner { width: min(1200px, calc(100% - 40px)); min-height: 145px; display: flex; align-items: center; justify-content: center; gap: 28px; margin: 0 auto; }
.tk-footer-inner > span { color: #566e7f; font-size: .88rem; font-weight: 750; }
.tk-footer img { width: 272px; height: auto; display: block; }

/* Existing administration views keep the same shell. */
.tk-page-admin .tk-main > section:not(.card), .tk-page-admin .tk-main > fieldset { border-color: var(--tk-border); border-radius: 17px; box-shadow: 0 8px 24px rgba(30,67,93,.045); }
.tk-page-admin .card { border-color: var(--tk-border); border-radius: 17px; box-shadow: 0 8px 24px rgba(30,67,93,.045); }
.tk-page-admin .tabs a { border-color: var(--tk-border); }
.tk-page-admin .tabs [aria-current] { border-color: var(--tk-blue); background: var(--tk-blue); }
.tk-page-admin .tk-main button, .tk-page-admin .tk-main .button { border-color: var(--tk-blue-dark); background: var(--tk-blue-dark); }

@media (max-width: 920px) {
  .system-grid, .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-hero { grid-template-columns: auto minmax(0, 1fr); }
  .account-summary { grid-column: 1 / -1; }
  .dashboard-hero { grid-template-columns: 1fr 170px; }
  .dashboard-hero-mark { transform: scale(.78); transform-origin: center; }
}

@media (max-width: 700px) {
  .tk-header-inner, .tk-main, .tk-footer-inner { width: min(100% - 26px, 1200px); }
  .tk-header-inner { min-height: 70px; gap: 10px; }
  .tk-brand img { width: 124px; }
  .tk-profile-link { padding: 3px; }
  .tk-profile-link img { width: 40px; height: 40px; }
  .tk-profile-link span { display: none; }
  .tk-menu > summary { width: 42px; height: 42px; }
  .tk-menu-panel { position: fixed; top: 68px; right: 13px; }
  .tk-main { padding: 32px 0 65px; }
  .dashboard-hero { min-height: 0; grid-template-columns: 1fr; margin-bottom: 38px; padding: 38px 26px; border-radius: 23px; }
  .dashboard-hero-mark { display: none; }
  .system-grid, .role-grid, .identity-grid { grid-template-columns: 1fr; }
  .system-card { min-height: 245px; }
  .profile-hero { grid-template-columns: 1fr; justify-items: center; padding: 30px 22px; text-align: center; }
  .profile-technical { justify-content: center; }
  .account-summary { grid-column: auto; text-align: left; }
  .section-heading { align-items: flex-start; }
  .tk-footer-inner { min-height: 170px; flex-direction: column; gap: 12px; text-align: center; }
  .tk-footer img { width: min(270px, 82vw); }
}

@media (max-width: 430px) {
  .tk-brand img { width: 108px; }
  .tk-header-actions { gap: 7px; }
  .profile-avatar { width: 100px; height: 100px; }
  .dashboard-hero h1 { font-size: 2.55rem; }
  .system-card { padding: 21px; }
  .profile-technical { display: grid; gap: 4px; }
  .profile-technical span + span::before { display: none; }
  .identity-card { grid-template-columns: 1fr; }
  .identity-card-title { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .system-card, .system-card-arrow, .tk-menu > summary { transition: none; }
}

/* System administration */
.admin-console { min-width: 0; }
.admin-console[aria-busy="true"] { cursor: progress; }
.admin-console[aria-busy="true"] > *:not(.admin-live-region) { opacity: .62; pointer-events: none; }
.admin-console-hero { min-height: 220px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 36px; margin: 0 0 24px; padding: clamp(30px, 5vw, 54px); border: 0; border-radius: 27px; color: white; background: radial-gradient(circle at 86% 18%, rgba(255,255,255,.22), transparent 26%), linear-gradient(125deg, #0b5fa8, #1788df 65%, #52abe9); box-shadow: 0 22px 58px rgba(15,103,174,.2); }
.admin-console-hero::after { content: ""; position: absolute; right: -88px; bottom: -185px; width: 320px; height: 320px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.035), 0 0 0 96px rgba(255,255,255,.022); }
.admin-console-hero > * { position: relative; z-index: 1; }
.admin-console-hero .eyebrow { color: #d9efff; }
.admin-console-hero h1 { margin: 6px 0 12px; color: white; font-size: clamp(2.15rem, 5vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.admin-console-hero p:last-child { max-width: 720px; margin: 0; color: #e7f5ff; font-size: 1.03rem; }
.admin-console-hero-icon { width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 23px; background: rgba(255,255,255,.14); }
.admin-console-hero-icon .tk-icon { width: 34px; height: 34px; }
.admin-live-region { overflow: hidden; max-height: 0; margin: 0; padding: 0 18px; border: 0 solid; border-radius: 13px; opacity: 0; transition: max-height .2s ease, margin .2s ease, padding .2s ease, opacity .2s ease; }
.admin-live-region:not(:empty) { max-height: 120px; margin: 0 0 20px; padding: 14px 18px; border-width: 1px; opacity: 1; }
.admin-live-region.is-success { border-color: #aadbc9; background: #eaf8f2; color: #126347; }
.admin-live-region.is-error { border-color: #edb5b1; background: #fff0ef; color: #8a231d; }

.admin-section-nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 0 0 34px; padding: 8px; border: 1px solid var(--tk-border); border-radius: 18px; background: white; box-shadow: 0 10px 30px rgba(30,67,93,.055); }
.admin-section-nav a { min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 10px 12px; border-radius: 12px; color: #4c6272; font-size: .82rem; font-weight: 750; text-decoration: none; transition: color .16s ease, background .16s ease; }
.admin-section-nav a:hover { background: #f1f7fb; color: var(--tk-blue-dark); }
.admin-section-nav a[aria-current="page"] { background: var(--tk-blue-soft); color: var(--tk-blue-dark); box-shadow: inset 0 0 0 1px #c9e4f8; }
.admin-section-nav .tk-icon { width: 18px; height: 18px; }
.admin-section-intro { margin: 0 0 22px; padding: 19px 21px; border: 1px solid #d9e7f1; border-radius: 16px; background: #f8fcff; color: #557083; }
.admin-section-intro p { max-width: 880px; margin: 0; }

.admin-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-overview-tile { min-height: 170px; position: relative; overflow: hidden; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 18px; padding: 25px; border: 1px solid var(--tk-border); border-radius: 21px; background: white; color: var(--tk-text); text-decoration: none; box-shadow: 0 10px 30px rgba(30,67,93,.055); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.admin-overview-tile::after { content: ""; position: absolute; right: -48px; bottom: -65px; width: 150px; height: 150px; border-radius: 50%; background: #edf7fe; }
.admin-overview-tile:hover { transform: translateY(-3px); border-color: #8fc4e9; box-shadow: 0 18px 42px rgba(30,67,93,.12); }
.admin-overview-icon { width: 48px; height: 48px; position: relative; z-index: 1; display: grid; place-items: center; border-radius: 14px; background: var(--tk-blue-soft); color: var(--tk-blue-dark); }
.admin-overview-tile h2 { margin: 3px 0 6px; color: var(--tk-navy); font-size: 1.17rem; }
.admin-overview-tile p { margin: 0; color: var(--tk-muted); font-size: .86rem; line-height: 1.55; }
.admin-overview-arrow { position: relative; z-index: 1; color: var(--tk-blue); transition: transform .18s ease; }
.admin-overview-tile:hover .admin-overview-arrow { transform: translateX(4px); }

.admin-system-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.admin-system-card { min-width: 0; padding: 23px; border: 1px solid var(--tk-border); border-radius: 21px; background: white; box-shadow: 0 10px 30px rgba(30,67,93,.055); }
.admin-system-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 19px; }
.admin-system-card-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--tk-blue-soft); color: var(--tk-blue-dark); }
.admin-system-card--styringskraft .admin-system-card-icon { background: #f2eafa; color: #684092; }
.admin-system-card--sidet .admin-system-card-icon { background: #faeaf7; color: #a32391; }
.admin-system-card--ungtloft .admin-system-card-icon { background: #e8f7f5; color: #167f79; }
.admin-system-card--iua .admin-system-card-icon { background: #edf2f8; color: #06264c; }
.admin-status-badge { padding: 5px 9px; border-radius: 999px; font-size: .7rem; font-weight: 850; }
.admin-status-badge.is-open { background: #e3f6ee; color: #13704d; }
.admin-status-badge.is-closed { background: #fff0ef; color: #9a2c25; }
.admin-system-card h2 { margin: 0 0 6px; color: var(--tk-navy); font-size: 1.25rem; }
.admin-system-card > p { margin: 0; color: var(--tk-muted); font-size: .83rem; }
.admin-system-meta { min-height: 52px; margin-top: 17px !important; padding-top: 14px; border-top: 1px solid #e8eef2; color: #80909a !important; font-size: .7rem !important; line-height: 1.55; }
.admin-system-card details { margin-top: 14px; }

.admin-access-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.admin-access-tile { min-height: 235px; position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--tk-border); border-radius: 21px; background: white; color: var(--tk-text); text-decoration: none; box-shadow: 0 10px 30px rgba(30,67,93,.055); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.admin-access-tile:hover { transform: translateY(-3px); border-color: var(--access-accent, var(--tk-blue)); box-shadow: 0 18px 42px rgba(30,67,93,.12); }
.admin-access-tile--styringskraft { --access-accent: #684092; --access-soft: #f2eafa; }
.admin-access-tile--sidet { --access-accent: #a32391; --access-soft: #faeaf7; }
.admin-access-tile--ungtloft { --access-accent: #167f79; --access-soft: #e8f7f5; }
.admin-access-tile--iua { --access-accent: #06264c; --access-soft: #edf2f8; }
.admin-access-icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 24px; border-radius: 14px; background: var(--access-soft, var(--tk-blue-soft)); color: var(--access-accent, var(--tk-blue)); }
.admin-access-tile h2 { margin: 0 0 6px; color: var(--tk-navy); font-size: 1.25rem; }
.admin-access-tile p { margin: 0 0 18px; color: var(--tk-muted); font-size: .84rem; }
.admin-access-tile strong { color: var(--access-accent, var(--tk-blue-dark)); font-size: .78rem; }
.admin-access-arrow { position: absolute; top: 26px; right: 24px; color: var(--access-accent, var(--tk-blue)); }

.admin-console > h2 { margin: 42px 0 10px; color: var(--tk-navy); font-size: 1.5rem; letter-spacing: -.02em; }
.admin-console > h2 + p, .admin-console > p { max-width: 900px; color: var(--tk-muted); }
.admin-console > form:not(.admin-filter-bar):not(.admin-log-filters), .admin-console form > fieldset { margin: 22px 0; padding: 22px; border: 1px solid var(--tk-border); border-radius: 18px; background: white; box-shadow: 0 9px 28px rgba(30,67,93,.05); }
.admin-console > form:not(.admin-filter-bar):not(.admin-log-filters) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; }
.admin-console form > fieldset { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 16px; }
.admin-console form > fieldset legend { padding: 0 7px; color: var(--tk-navy); font-size: 1rem; font-weight: 800; }
.admin-console form > fieldset > p { grid-column: 1 / -1; margin: 0; color: var(--tk-muted); font-size: .84rem; }
.admin-console label { color: #395165; font-size: .78rem; font-weight: 750; }
.admin-console input, .admin-console select, .admin-console textarea { border-color: #becfdb; border-radius: 10px; background: white; }
.admin-console input:focus, .admin-console select:focus, .admin-console textarea:focus { border-color: var(--tk-blue); outline: none; box-shadow: 0 0 0 4px rgba(20,121,207,.1); }
.admin-console button { border-radius: 10px; }
.admin-console button:disabled { opacity: .6; cursor: progress; }
.admin-console form[aria-busy="true"] { opacity: .65; pointer-events: none; }
.admin-filter-bar { display: grid; grid-template-columns: minmax(240px, 1fr) auto; align-items: end; gap: 12px; margin: 0 0 18px; padding: 16px; border: 1px solid var(--tk-border); border-radius: 16px; background: white; }
.admin-disclosure { margin: 18px 0 28px; border: 1px solid var(--tk-border); border-radius: 16px; background: white; }
.admin-disclosure > summary { padding: 17px 19px; color: var(--tk-navy); }
.admin-disclosure .scroll { border: 0; border-top: 1px solid var(--tk-border); border-radius: 0 0 16px 16px; }
.admin-danger-panel { border-color: #efbbb7; background: #fffafa; box-shadow: none; }
.admin-console .pending-action button, .admin-danger-panel button { border-color: #b43c35; background: #a8322b; color: white; }
.admin-operation-status { display: grid; grid-template-columns: auto 1fr; gap: 14px; margin: 0 0 18px; padding: 18px 20px; border: 1px solid #c8e5da; border-radius: 16px; background: #eef9f5; color: #155e46; }
.admin-operation-status > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #d9f2e8; }
.admin-operation-status strong { display: block; margin-bottom: 3px; }
.admin-operation-status p { margin: 0; color: #52776a; font-size: .83rem; }
.admin-operation-status[data-level="warning"], .admin-operation-status[data-level="critical"] { border-color: #ead3a4; background: #fff8e8; color: #815b12; }

.admin-console .scroll { margin: 16px 0 25px; border-color: var(--tk-border); border-radius: 16px; background: white; box-shadow: 0 8px 26px rgba(30,67,93,.045); }
.admin-console table { font-size: .83rem; }
.admin-console th { background: #edf6fc; color: #36536a; font-size: .72rem; letter-spacing: .03em; text-transform: uppercase; }
.admin-console th, .admin-console td { padding: 12px 14px; border-color: #e4ebf0; }

.admin-log-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin: 0 0 22px; padding: 21px; border: 1px solid var(--tk-border); border-radius: 19px; background: white; box-shadow: 0 9px 28px rgba(30,67,93,.05); }
.admin-log-filter-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; padding-top: 3px; }
.admin-log-filter-actions a { color: var(--tk-blue-dark); font-size: .8rem; font-weight: 700; }
.admin-log-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 12px; color: var(--tk-muted); font-size: .8rem; }
.admin-log-summary strong { color: var(--tk-navy); font-size: .95rem; }
.admin-log-list { display: grid; gap: 10px; }
.admin-log-entry { margin: 0; padding: 17px 19px; border: 1px solid var(--tk-border); border-radius: 16px; background: white; box-shadow: 0 7px 22px rgba(30,67,93,.04); }
.admin-log-entry-top { display: flex; align-items: center; gap: 8px; }
.admin-log-entry time { color: #788b98; font-size: .7rem; }
.admin-log-system, .admin-log-result { padding: 4px 7px; border-radius: 999px; font-size: .65rem; font-weight: 800; }
.admin-log-system { background: var(--tk-blue-soft); color: var(--tk-blue-dark); }
.admin-log-result { margin-left: auto; }
.admin-log-result.is-success { background: #e4f6ee; color: #13704d; }
.admin-log-result.is-error { background: #fff0ef; color: #982d26; }
.admin-log-entry-main { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-top: 12px; }
.admin-log-entry h3 { margin: 0 0 3px; color: var(--tk-navy); font-size: .96rem; overflow-wrap: anywhere; }
.admin-log-entry-main p { margin: 0; color: var(--tk-muted); font-size: .78rem; }
.admin-log-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.admin-log-meta span { padding: 4px 7px; border-radius: 7px; background: #f0f4f7; color: #617887; font-size: .65rem; font-weight: 750; }
.admin-log-path { margin: 10px 0 0; color: #8b9aa4; font: .7rem/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.admin-security-entry { padding: 0; }
.admin-security-entry > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 17px 19px; list-style: none; }
.admin-security-entry > summary::-webkit-details-marker { display: none; }
.admin-log-summary-main { min-width: 0; display: grid; gap: 3px; }
.admin-log-summary-main strong { color: var(--tk-navy); overflow-wrap: anywhere; }
.admin-log-summary-main small { color: var(--tk-muted); }
.admin-log-details { padding: 0 19px 19px; border-top: 1px solid #e7edf1; }
.admin-log-details p { color: var(--tk-muted); }
.admin-log-details pre { max-height: 430px; overflow: auto; background: #f3f7f9; color: #29465a; }
.admin-log-empty { padding: 42px 25px; border: 1px dashed #bdceda; border-radius: 16px; background: #f9fcfe; color: var(--tk-muted); text-align: center; }

@media (max-width: 980px) {
  .admin-section-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-system-grid, .admin-access-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-log-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-console form > fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .admin-console-hero { min-height: 0; padding: 34px 25px; border-radius: 22px; }
  .admin-console-hero-icon { display: none; }
  .admin-section-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding: 6px; }
  .admin-section-nav a { min-height: 48px; justify-content: flex-start; padding: 9px 10px; }
  .admin-overview-grid, .admin-system-grid, .admin-access-grid, .admin-log-filters, .admin-console form > fieldset { grid-template-columns: 1fr; }
  .admin-overview-tile { min-height: 150px; padding: 21px; }
  .admin-console > form:not(.admin-filter-bar):not(.admin-log-filters), .admin-filter-bar { grid-template-columns: 1fr; }
  .admin-log-filter-actions { grid-column: 1; align-items: stretch; flex-direction: column; }
  .admin-log-filter-actions button, .admin-log-filter-actions a { width: 100%; text-align: center; }
  .admin-log-summary, .admin-log-entry-main { align-items: flex-start; flex-direction: column; }
  .admin-log-meta { justify-content: flex-start; }
  .admin-security-entry > summary { grid-template-columns: minmax(0, 1fr) auto; }
  .admin-security-entry .admin-log-result { grid-column: 2; }
}
