:root{
  --paper:#FFFFFF;
  --paper-dim:#EEF1F8;
  --ink:#0B1E42;
  --ink-soft:#4B5975;
  --board:#00205B;
  --board-line:#204079;
  --flap:#FFFFFF;
  --flap-dim:#AFC0E8;
  --accent-blue:#3B62D6;
  --divider:#C9D3E8;
  --signal:#C8102E;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Mono', monospace;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.flagbar{height:6px; display:flex;}
.flagbar span{flex:1;}
.flagbar span:nth-child(1){background:var(--signal);}
.flagbar span:nth-child(2){background:#FFFFFF; border-left:1px solid var(--divider); border-right:1px solid var(--divider);}
.flagbar span:nth-child(3){background:var(--board);}

h1,h2,h3,.display{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:700;
  letter-spacing:0.01em;
  margin:0;
}

a{color:var(--accent-blue);}

.wrap{max-width:1080px; margin:0 auto; padding:0 20px 80px;}

/* ---------- Nav ---------- */
.sitenav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--divider);
  margin-bottom:8px;
  font-size:0.85rem;
  flex-wrap:wrap;
  gap:8px 16px;
}
.sitenav .word{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:700;
  font-size:1.15rem;
  color:var(--ink);
  text-decoration:none;
}
.sitenav ul{list-style:none; display:flex; flex-wrap:wrap; gap:14px 18px; margin:0; padding:0;}
.sitenav a{color:var(--ink-soft); text-decoration:none; padding-bottom:3px; border-bottom:2px solid transparent;}
.sitenav a:hover{color:var(--ink);}
.sitenav a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--signal); font-weight:600;}

/* ---------- Header ---------- */
header.masthead{
  border-bottom:4px solid var(--board);
  padding:28px 0 18px;
  margin-bottom:28px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  flex-wrap:wrap;
}
header.masthead .title-block h1{font-size:clamp(2.4rem, 9vw, 4.4rem); line-height:0.95; color:var(--ink);}
header.masthead .title-block p{margin:10px 0 0; max-width:52ch; color:var(--ink-soft); font-size:0.95rem;}
.clock{text-align:right; white-space:nowrap;}
.clock .time{font-size:1.7rem; font-weight:600; font-variant-numeric:tabular-nums; color:var(--board);}
.clock .date{font-size:0.8rem; color:var(--ink-soft);}
.clock .place{font-size:0.75rem; color:var(--signal);}
@media (max-width:480px){
  header.masthead{gap:12px;}
  .clock{text-align:left; width:100%;}
}
.live-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--signal); margin-right:6px; vertical-align:middle;}

/* ---------- Simple page header (Om / Personvern / 404) ---------- */
header.pagehead{
  border-bottom:4px solid var(--board);
  padding:24px 0 20px;
  margin-bottom:30px;
}
header.pagehead h1{font-size:clamp(2.2rem, 6vw, 3.2rem); color:var(--ink);}
header.pagehead p{margin:10px 0 0; max-width:60ch; color:var(--ink-soft); font-size:0.95rem;}

/* ---------- Location search ---------- */
.locate{margin-bottom:34px;}
.locate form{display:flex; gap:0; border:2px solid var(--ink);}
.locate input[type=text]{flex:1; border:none; background:var(--paper); color:var(--ink); padding:13px 14px; font-family:inherit; font-size:16px;}
.locate input[type=text]:focus{outline:3px solid var(--signal); outline-offset:-3px;}
.locate button{border:none; border-left:2px solid var(--ink); background:var(--ink); color:#fff; padding:0 22px; font-family:inherit; font-size:0.95rem; cursor:pointer;}
.locate button:hover{background:var(--signal);}
.locate-status{margin-top:10px; font-size:0.85rem; color:var(--ink-soft); min-height:1.2em;}
.locate-results{margin-top:2px;}
.locate-results button{display:block; width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--divider); padding:9px 2px; font-family:inherit; font-size:0.85rem; color:var(--ink); cursor:pointer;}
.locate-results button:hover{color:var(--signal);}
.locate-results button span{color:var(--ink-soft);}

.section-label{font-size:0.75rem; color:var(--ink-soft); margin:0 0 8px 2px;}

/* ---------- Boards ---------- */
.grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:22px;}
@media (max-width:720px){.grid{grid-template-columns:1fr; gap:16px;}}
@media (max-width:480px){.wrap{padding:0 14px 60px;}}

.board{background:var(--board); color:var(--flap); border:1px solid var(--board-line); padding:18px 20px 20px; position:relative;}
.board h2{font-size:1.05rem; color:#fff; font-weight:600; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--board-line);}
.board .sub{font-size:0.7rem; color:var(--flap-dim); font-weight:400;}
.board-row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; padding:7px 0; border-bottom:1px dashed var(--board-line); font-size:0.92rem;}
.board-row:last-child{border-bottom:none;}
.board-row .k{color:var(--flap-dim); flex:1 1 auto; min-width:0; overflow-wrap:break-word;}
.board-row .v{font-weight:600; color:var(--flap); text-align:right; font-variant-numeric:tabular-nums; flex:0 0 auto; margin-left:auto;}
.board .empty, .board .err{color:#7C8CBE; font-size:0.85rem; padding:6px 0;}
.board .err{color:#FF9C9C;}
.board .big-temp{font-family:'Big Shoulders Display', sans-serif; font-size:3.2rem; font-weight:700; line-height:1; color:#fff;}
.board .weather-top{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:8px;}
.board .weather-desc{font-size:0.9rem; color:var(--flap-dim);}
.flicker{animation:flicker 0.5s steps(3) 1;}
@keyframes flicker{0%{opacity:0.2;} 40%{opacity:1;} 60%{opacity:0.3;} 100%{opacity:1;}}
@media (prefers-reduced-motion:reduce){.flicker{animation:none;}}
.currency-board .change-up{color:#8FB2FF;}
.currency-board .change-down{color:#FF9C9C;}
.warn-row{padding:7px 0; border-bottom:1px dashed var(--board-line); font-size:0.88rem;}
.warn-row:last-child{border-bottom:none;}
.warn-row .sev{display:inline-block; padding:1px 8px; font-size:0.7rem; font-weight:600; background:var(--signal); color:#fff; margin-right:8px;}
a.newslink{color:#fff; text-decoration:none;}
a.newslink:hover{text-decoration:underline; color:var(--flap-dim);}

/* ---------- Light search panels ---------- */
.search-panel{background:var(--paper-dim); border:1px solid var(--ink); padding:18px 20px 20px; margin-bottom:22px;}
.search-panel h2{font-size:1.05rem; margin-bottom:4px; color:var(--ink);}
.search-panel .sub{font-size:0.78rem; color:var(--ink-soft); margin-bottom:14px;}
.search-panel form{display:flex; border:2px solid var(--ink); margin-bottom:14px;}
.search-panel input[type=text]{flex:1; border:none; background:var(--paper); padding:11px 12px; font-family:inherit; font-size:16px;}
.search-panel input[type=text]:focus{outline:3px solid var(--signal); outline-offset:-3px;}
.search-panel button{border:none; border-left:2px solid var(--ink); background:var(--ink); color:#fff; padding:0 20px; font-family:inherit; cursor:pointer;}
.search-panel button:hover{background:var(--signal);}
.result-row{padding:12px 0; border-bottom:1px solid var(--divider);}
.result-row:last-child{border-bottom:none;}
.result-row .name{font-weight:600; font-size:0.98rem; color:var(--ink);}
.result-row .meta{font-size:0.8rem; color:var(--ink-soft); margin-top:2px;}
.result-row .tag{color:var(--accent-blue);}

/* ---------- Article content (Om / Personvern) ---------- */
.content h2{font-size:1.4rem; color:var(--ink); margin:34px 0 12px;}
.content h2:first-child{margin-top:0;}
.content p{color:var(--ink-soft); max-width:70ch; margin:0 0 14px;}
.content ul{max-width:70ch; color:var(--ink-soft); padding-left:20px; margin:0 0 14px;}
.content li{margin-bottom:6px;}
.source-group{margin-bottom:22px;}
.source-group h3{font-size:0.95rem; color:var(--ink); margin-bottom:8px; padding-bottom:6px; border-bottom:2px solid var(--board);}
.source-list{list-style:none; padding:0; margin:0; display:grid; gap:6px;}
.source-list li{font-size:0.9rem; color:var(--ink-soft); padding:6px 0; border-bottom:1px solid var(--divider);}
.source-list li:last-child{border-bottom:none;}
.source-list a{color:var(--ink); font-weight:600;}

/* ---------- 404 ---------- */
.notfound-board{background:var(--board); color:#fff; padding:60px 30px; text-align:center; margin:40px 0;}
.notfound-board .code{font-family:'Big Shoulders Display', sans-serif; font-size:5rem; font-weight:900; line-height:1;}
.notfound-board p{color:var(--flap-dim); margin:12px 0 24px;}
.notfound-board a{color:#fff; text-decoration:underline;}

/* ---------- Footer ---------- */
footer{border-top:4px solid var(--board); padding-top:18px; margin-top:36px; font-size:0.75rem; color:var(--ink-soft);}
footer a{color:var(--ink-soft); text-decoration:underline;}
footer .sources{display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px;}
footer .links{margin-top:10px; display:flex; gap:14px;}
