:root{
  --ink:#14212E; --ink-soft:#4C6579; --linen:#F3F8FC; --linen-deep:#E4EFF9;
  --card:#FFFFFF; --spruce:#1D4E89; --spruce-deep:#0F2A44; --amber:#2F8FE0; --amber-soft:#8AC7F5;
  --line:rgba(15,42,68,0.14); --shadow-card: 0 10px 24px rgba(15,42,68,0.10), 0 2px 6px rgba(15,42,68,0.08);
  --success-bg:#E7F5EC; --success-fg:#1F5C36; --error-bg:#FBEAEA; --error-fg:#7A2A2A;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--linen); color:var(--ink); font-family:'Karla', -apple-system, sans-serif; font-size:15px; line-height:1.5;}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; color:var(--spruce-deep); margin:0 0 12px;}
a{color:var(--spruce); text-decoration:none;}
a:hover{text-decoration:underline;}
.mono{font-family:'JetBrains Mono', monospace;}

/* ---------- auth screens (login) ---------- */
.auth-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:var(--spruce-deep);
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size:34px 34px;
  padding:24px;
}
.auth-card{background:var(--card); width:100%; max-width:400px; padding:40px 36px; box-shadow:var(--shadow-card); text-align:center;}
.auth-card .auth-logo{height:88px; margin-bottom:26px;}
.auth-card h1{font-size:1.4rem; margin-bottom:26px;}
.auth-card form{text-align:left;}

/* ---------- shell for logged-in pages ---------- */
header.top{background:var(--spruce-deep); color:#fff; padding:10px 32px; display:flex; justify-content:space-between; align-items:center;}
header.top a{color:#EAF3FC;}
.brand-badge{
  display:inline-flex; align-items:center;
}
.brand-badge img{
  height:76px; display:block;
  filter:invert(1);
  mix-blend-mode:screen;
}
.user{display:flex; align-items:center; gap:18px; font-size:0.9rem;}
.account-link{color:#EAF3FC; font-weight:600;}
.account-link:hover{color:#fff;}
.btn-logout{
  display:inline-flex; align-items:center; gap:6px; color:#fff; background:rgba(255,255,255,0.08);
  border:1.5px solid rgba(255,255,255,0.55); padding:8px 16px; border-radius:4px;
  font-weight:700; font-size:0.85rem; text-decoration:none; transition:background .15s ease;
}
.btn-logout:hover{background:rgba(255,255,255,0.2); text-decoration:none; color:#fff;}
.wrap{max-width:900px; margin:0 auto; padding:40px 24px;}
.eyebrow{font-family:'JetBrains Mono', monospace; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--spruce);}

.card-panel{background:var(--card); border:1px solid var(--line); padding:26px; margin-bottom:24px;}

.field{margin-bottom:20px;}
.field label,label{display:block; font-family:'JetBrains Mono', monospace; font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px; font-weight:400;}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); background:#fff; font-family:inherit; font-size:0.95rem; color:var(--ink);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--amber-soft); outline-offset:1px;}
.hint{font-size:0.8rem; color:var(--ink-soft); margin-top:6px;}

.btn{
  display:inline-flex; align-items:center; gap:8px; background:var(--spruce); color:#fff;
  padding:11px 22px; border:1px solid var(--spruce); border-radius:4px; font-weight:700; font-size:0.88rem;
  cursor:pointer; text-decoration:none; transition:background .15s ease;
}
.btn:hover{background:var(--spruce-deep); color:#fff; text-decoration:none;}
.btn.ghost{background:transparent; color:var(--spruce); border:1.5px solid var(--spruce);}
.btn.ghost:hover{background:var(--spruce); color:#fff;}
.btn:disabled{opacity:0.5; cursor:not-allowed;}

.alert{padding:14px 16px; margin-bottom:18px; font-size:0.92rem; border:1px solid; border-radius:4px;}
.alert-error{background:var(--error-bg); color:var(--error-fg); border-color:#F0C4C4;}
.alert-success{background:var(--success-bg); color:var(--success-fg); border-color:#B7E0C4;}

.badge{display:inline-block; padding:3px 10px; font-size:0.72rem; font-family:'JetBrains Mono', monospace; text-transform:uppercase; background:var(--linen-deep); color:var(--spruce);}

/* ---------- learn.getasite.se: cert-hero, domän- och modulkort ---------- */
.cert-hero{
  background:var(--spruce-deep); color:#fff; padding:28px 30px; margin-bottom:28px;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:28px 28px;
}
.cert-hero .eyebrow{color:var(--amber-soft);}
.cert-hero h1{color:#fff; font-size:1.6rem;}
.cert-hero .meta{color:#C7D9EA; font-size:0.85rem; margin-top:6px;}
.cert-hero .meta .mono{color:#EAF3FC;}

.domain-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-bottom:32px;}
.domain-card .domain-weight{font-family:'JetBrains Mono', monospace; font-size:0.74rem; letter-spacing:0.04em; color:var(--spruce); margin-bottom:6px;}
.domain-card h2{font-size:1.05rem; margin-bottom:14px;}

.module-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line);}
.module-row:first-child{border-top:none;}
.module-row .mod-name{font-size:0.9rem; color:var(--ink);}
.module-row .mod-name.disabled{color:var(--ink-soft); font-style:italic;}
.module-progress{width:86px; text-align:right;}
.progress-track{background:var(--linen-deep); height:6px; border-radius:3px; overflow:hidden;}
.progress-fill{background:var(--amber); height:100%;}
.progress-pct{font-family:'JetBrains Mono', monospace; font-size:0.72rem; color:var(--ink-soft); margin-top:3px;}
.progress-empty{color:var(--ink-soft); font-size:0.85rem;}

/* ---------- stat-grid (används på Mitt konto) ---------- */
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; margin-bottom:28px;}
.stat-card{background:var(--card); border:1px solid var(--line); padding:20px 22px;}
.stat-card .num{font-family:'Fraunces', serif; font-size:2rem; color:var(--spruce-deep);}
.stat-card .lbl{font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft);}

.account-field{display:flex; justify-content:space-between; padding:12px 0; border-top:1px solid var(--line);}
.account-field:first-child{border-top:none;}
.account-field .lbl{font-family:'JetBrains Mono', monospace; font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft);}
.account-field .val{font-size:0.95rem;}
