
:root {
  --bg:#F6F8FC; --surface:#FFFFFF; --surface-sunken:#EEF3FA; --ink:#0F1B2D; --ink-soft:#5A6678;
  --line:#DCE3EE; --accent-brass:#A86B0C; --accent-teal:#1F5FD6; --accent-navy:#6A4FC9;
  --accent-rust:#C4473A; --accent-plum:#1F8A5B; --focus:#1F5FD6; --danger:#C4473A; --ok:#1F8A5B;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:#0D1420; --surface:#141D2C; --surface-sunken:#1A2536; --ink:#E8EDF5; --ink-soft:#9AA7BA;
    --line:#26324A; --accent-brass:#E0B252; --accent-teal:#7FAAFF; --accent-navy:#A996F0;
    --accent-rust:#F08C80; --accent-plum:#5CC79A; --focus:#7FAAFF; --danger:#F08C80; --ok:#5CC79A;
  }
}
:root[data-theme="dark"] {
  --bg:#0D1420; --surface:#141D2C; --surface-sunken:#1A2536; --ink:#E8EDF5; --ink-soft:#9AA7BA;
  --line:#26324A; --accent-brass:#E0B252; --accent-teal:#7FAAFF; --accent-navy:#A996F0;
  --accent-rust:#F08C80; --accent-plum:#5CC79A; --focus:#7FAAFF; --danger:#F08C80; --ok:#5CC79A;
}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%;}
body{height:100%;margin:0;background:var(--bg);color:var(--ink);font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;}
*{box-sizing:border-box;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:3px;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:500;margin:0;letter-spacing:-0.01em;}
button{font-family:inherit;}

/* header */
header.site{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px);}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.wordmark{font-family:'Fraunces',serif;font-size:20px;font-weight:600;}
.wordmark span{color:var(--accent-teal);}
nav.primary{display:flex;gap:24px;font-size:14px;color:var(--ink-soft);}
nav.primary a:hover{color:var(--ink);}
nav.primary a.active{color:var(--ink);}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:8px 12px;font-size:14px;color:var(--ink);}
@media (max-width:900px){ nav.primary{display:none;} .menu-btn{display:inline-block;} }

/* shell */
.shell{display:grid;grid-template-columns:230px 1fr;gap:0;max-width:1180px;margin:0 auto;align-items:start;}
@media (max-width:900px){ .shell{grid-template-columns:1fr;} }
.sidebar{position:sticky;top:65px;padding:28px 20px 40px 24px;border-right:1px solid var(--line);align-self:start;max-height:calc(100vh - 65px);overflow-y:auto;}
@media (max-width:900px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:78vw;max-width:320px;background:var(--surface);z-index:40;border-right:1px solid var(--line);
    transform:translateX(-100%);transition:transform .2s ease;padding-top:calc(20px + env(safe-area-inset-top,0px));}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.25);}
  .sidebar-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35;}
  .sidebar-scrim.show{display:block;}
}
.side-group{margin-bottom:22px;}
.side-group h4{font-family:'IBM Plex Sans',sans-serif;font-size:12.5px;color:var(--ink-soft);font-weight:600;text-transform:none;margin-bottom:8px;}
.side-group a{display:block;font-size:14.5px;padding:6px 8px;border-radius:5px;color:var(--ink-soft);}
.side-group a:hover{background:var(--surface-sunken);color:var(--ink);}
.side-group a.active{background:var(--surface-sunken);color:var(--ink);font-weight:500;}

main#view{padding:36px 28px 80px;min-width:0;}
.page{display:none;}
.page.active{display:block;animation:fade .18s ease;}
@keyframes fade{from{opacity:0;} to{opacity:1;}}

.crumb{font-size:13.5px;color:var(--ink-soft);margin-bottom:14px;display:inline-block;}
.crumb:hover{color:var(--ink);}
.page h1{font-size:clamp(26px,3.4vw,34px);margin-bottom:10px;}
.page > p.lede{color:var(--ink-soft);max-width:60ch;font-size:15.5px;margin-bottom:28px;}

/* category listing */
.cat-tag{font-size:13px;padding:4px 10px;border-radius:20px;display:inline-block;margin-bottom:12px;}
.tag-money{background:color-mix(in srgb,var(--accent-teal) 16%,transparent);color:var(--accent-teal);}
.tag-tax{background:color-mix(in srgb,var(--accent-brass) 18%,transparent);color:var(--accent-brass);}
.tag-doc{background:color-mix(in srgb,var(--accent-navy) 16%,transparent);color:var(--accent-navy);}
.tag-image{background:color-mix(in srgb,var(--accent-rust) 16%,transparent);color:var(--accent-rust);}
.tag-everyday{background:color-mix(in srgb,var(--accent-plum) 16%,transparent);color:var(--accent-plum);}
.tag-norway{background:color-mix(in srgb,var(--ink) 12%,transparent);color:var(--ink);}

.tool-list{border-top:1px solid var(--line);}
.tool-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 6px;border-bottom:1px solid var(--line);}
.tool-row:hover{background:var(--surface-sunken);}
.tool-row .tool-name{font-size:16px;}
.tool-row .tool-desc{color:var(--ink-soft);font-size:13.5px;margin-top:2px;}
.tool-row .tool-text{flex:1;}
.tool-row .tool-go{font-size:13px;color:var(--ink-soft);white-space:nowrap;}
.tool-row.soon{opacity:.6;}

/* tool ui */
.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:24px;max-width:560px;}
.card.wide{max-width:none;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13.5px;color:var(--ink-soft);margin-bottom:6px;}
.field input,.field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:var(--surface-sunken);color:var(--ink);font-size:15.5px;font-family:inherit;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:520px){.row2{grid-template-columns:1fr;}}
.toggle-row{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.toggle-row button{flex:1;min-width:110px;padding:9px;border-radius:4px;border:1px solid var(--line);background:var(--surface-sunken);color:var(--ink-soft);font-size:13.5px;cursor:pointer;}
.toggle-row button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.result{border-top:1px solid var(--line);padding-top:16px;margin-top:6px;}
.result .amount{font-family:'IBM Plex Mono',monospace;font-size:26px;}
.result .amount-label{font-size:13px;color:var(--ink-soft);}
.result-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14.5px;}
.result-row .k{color:var(--ink-soft);}
.result-row.total{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:600;}
.note{font-size:12.5px;color:var(--ink-soft);margin-top:14px;}
.btn{display:inline-block;padding:10px 18px;border-radius:4px;font-size:14.5px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;}
.btn.ghost{background:transparent;color:var(--ink);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.dropzone{border:1.5px dashed var(--line);border-radius:6px;padding:28px;text-align:center;color:var(--ink-soft);font-size:14.5px;cursor:pointer;background:var(--surface-sunken);}
.dropzone:hover{border-color:var(--accent-teal);}
.filelist{margin-top:14px;font-size:14px;}
.filelist div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line);}
table.rates{width:100%;border-collapse:collapse;font-size:14.5px;}
table.rates th,table.rates td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);}
table.rates th{color:var(--ink-soft);font-weight:500;font-size:13px;}
.search-box{width:100%;max-width:320px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:var(--surface-sunken);color:var(--ink);font-size:14.5px;margin-bottom:16px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:700px){.grid3{grid-template-columns:1fr;}}
.status{font-size:13.5px;margin-top:10px;}
.status.err{color:var(--danger);}
.status.ok{color:var(--ok);}
.soon-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--surface-sunken);color:var(--ink-soft);margin-left:8px;vertical-align:middle;}
.new-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent-teal);color:#fff;margin-left:8px;vertical-align:middle;}
canvas{max-width:100%;border-radius:4px;border:1px solid var(--line);}
#qr-output{margin-top:16px;background:#fff;padding:12px;display:inline-block;border-radius:4px;}

/* norway spotlight */
.norway-band{background:var(--ink);color:var(--bg);padding:34px 28px;border-radius:8px;margin-bottom:32px;}
.norway-band h2{color:var(--bg);font-size:24px;margin-bottom:8px;}
.norway-band p{color:color-mix(in srgb,var(--bg) 72%,transparent);font-size:14.5px;max-width:56ch;}
.norway-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:color-mix(in srgb,var(--bg) 14%,transparent);border:1px solid color-mix(in srgb,var(--bg) 14%,transparent);margin-top:20px;}
@media (max-width:700px){.norway-grid{grid-template-columns:repeat(2,1fr);}}
.norway-grid a{background:var(--ink);color:var(--bg);padding:16px 14px;font-size:14px;}
.norway-grid a:hover{background:color-mix(in srgb,var(--bg) 8%,var(--ink));}
.link-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:10px;}
@media (max-width:700px){.link-groups{grid-template-columns:1fr;}}
.link-group h4{font-size:14px;font-weight:600;margin-bottom:10px;font-family:'IBM Plex Sans',sans-serif;}
.link-group ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.link-group li{border-bottom:1px solid var(--line);}
.link-group a{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 2px;font-size:14.5px;}
.link-group a:hover{color:var(--accent-teal);}
.link-group a small{color:var(--ink-soft);font-size:12.5px;white-space:nowrap;}

footer{padding:48px 0 40px;border-top:1px solid var(--line);margin-top:20px;}
@media (max-width:900px){ footer{padding-bottom:104px;} } /* room for the chat button */
.footer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;padding-bottom:32px;}
@media (max-width:760px){.footer-grid{grid-template-columns:repeat(2,1fr);}}
.footer-col h4{font-size:13px;color:var(--ink-soft);font-weight:500;margin-bottom:10px;}
.footer-col a{display:block;font-size:13.5px;padding:4px 0;color:var(--ink);}
.footer-col a:hover{color:var(--accent-teal);}
.footer-base{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--ink-soft);}

/* ---- Home redesign (blue) — scoped to .hm-* ---- */
:root{--hm-blue:#1F5FD6;--hm-blue-soft:#E8F0FD;--hm-navy:#0B1F44;--hm-i1:#E8F0FD;--hm-i2:#E6F4EC;--hm-i3:#EEE9FB;--hm-i4:#FDEBEA;--hm-i5:#FFF1DC;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--hm-blue:#7FAAFF;--hm-blue-soft:#1B2A45;--hm-navy:#0E2A5C;--hm-i1:#1B2A45;--hm-i2:#173326;--hm-i3:#2A2540;--hm-i4:#3A2022;--hm-i5:#3A2E18;}}
:root[data-theme="dark"]{--hm-blue:#7FAAFF;--hm-blue-soft:#1B2A45;--hm-navy:#0E2A5C;--hm-i1:#1B2A45;--hm-i2:#173326;--hm-i3:#2A2540;--hm-i4:#3A2022;--hm-i5:#3A2E18;}
.hm-hero{text-align:center;padding:28px 0 8px;}
.hm-hero h1{font-size:clamp(32px,5.4vw,52px);line-height:1.08;letter-spacing:-0.02em;margin:0 0 12px;}
.hm-hero h1 span{color:var(--hm-blue);}
.hm-hero p{margin:0 auto 26px;max-width:56ch;font-size:17px;color:var(--ink-soft);}
.hm-search{display:flex;gap:8px;max-width:640px;margin:0 auto;padding:6px;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;box-shadow:0 6px 24px rgba(11,31,68,.07);}
.hm-search:focus-within{border-color:var(--hm-blue);}
.hm-search input{flex:1;min-width:0;min-height:48px;border:0;background:transparent;padding:0 14px;font:inherit;font-size:16px;color:var(--ink);outline:none;}
.hm-search button{min-height:48px;padding:0 22px;border:0;border-radius:10px;background:var(--hm-blue);color:#fff;font:inherit;font-weight:600;font-size:15px;cursor:pointer;}
.hm-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:22px 0 26px;}
.hm-tab{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:14.5px;font-weight:500;cursor:pointer;}
.hm-tab[aria-pressed="true"]{background:var(--hm-blue);border-color:var(--hm-blue);color:#fff;}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.hm-card{display:flex;gap:14px;align-items:flex-start;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink);text-decoration:none;min-height:96px;transition:border-color .15s,transform .15s;}
.hm-card:hover{border-color:var(--hm-blue);transform:translateY(-2px);}
.hm-ico{flex:0 0 46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--hm-blue);}
.hm-ico svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.hm-card b{display:block;font-size:16px;font-weight:600;margin-bottom:3px;}
.hm-card span.d{display:block;font-size:13.5px;line-height:1.45;color:var(--ink-soft);}
.hm-empty{display:none;text-align:center;color:var(--ink-soft);padding:30px 0;}
.hm-banner{--hm-purple:#A996F0;margin-top:30px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 43%;align-items:stretch;min-height:260px;border-radius:18px;overflow:hidden;background:var(--hm-navy);color:#fff;isolation:isolate;}
.hm-banner-text{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:38px 8px 38px 40px;}
.hm-banner h2{font-size:clamp(22px,3vw,30px);line-height:1.15;color:#fff;margin:0 0 8px;}
.hm-banner p{margin:0;color:#C9D6EE;font-size:15.5px;line-height:1.6;max-width:50ch;}
.hm-btns{display:flex;flex-wrap:wrap;gap:12px}
.hm-banner a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:10px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;}
.hm-banner a.primary{background:var(--hm-purple);color:#0B1F44;border:1.5px solid var(--hm-purple);}
.hm-banner a.primary:hover{background:#BDAEF6;border-color:#BDAEF6;}
.hm-banner a.alt{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55);}
.hm-banner a.alt:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.hm-banner a:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.hm-banner a.hm-textlink{display:inline;align-self:flex-start;min-height:0;padding:0;border:0;border-radius:0;background:none;color:#C9D6EE;font-weight:500;font-size:14.5px;text-decoration:underline;text-underline-offset:3px;flex:none;margin-top:-8px;}
.hm-banner a.hm-textlink:hover{color:#fff;background:none;}
.hm-banner-photo{display:block;position:relative;margin:0;min-height:100%;}
.hm-banner-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% 62%;}
.hm-banner-photo::before{content:"";position:absolute;inset:0 auto 0 0;width:38%;z-index:1;background:linear-gradient(to right,var(--hm-navy) 0%,color-mix(in srgb,var(--hm-navy) 55%,transparent) 45%,transparent 100%);}
@media (max-width:760px){
  .hm-banner{grid-template-columns:1fr;min-height:0;}
  .hm-banner-photo{order:-1;height:200px;}
  .hm-banner-photo img{object-position:55% 64%;}
  .hm-banner-photo::before{inset:auto 0 0 0;width:auto;height:45%;background:linear-gradient(to top,var(--hm-navy) 0%,transparent 100%);}
  .hm-banner-text{padding:6px 22px 26px;gap:18px;}
  .hm-banner a{flex:1 1 auto;}
}
@media (max-width:560px){.hm-search{flex-wrap:wrap}.hm-search button{width:100%}}
/* ---- Site-wide blue theme (matches the home page) ---- */
nav.primary a.active{color:var(--hm-blue);font-weight:600;}
nav.primary a:hover{color:var(--hm-blue);}
.menu-btn{border-radius:10px;}
.side-group a{border-radius:8px;}
.side-group a:hover{background:var(--hm-blue-soft);color:var(--hm-blue);}
.side-group a.active{background:var(--hm-blue-soft);color:var(--hm-blue);font-weight:600;}
.crumb:hover{color:var(--hm-blue);}
.cat-tag{font-weight:500;}
.tag-norway{background:var(--hm-blue-soft);color:var(--hm-blue);}
.tool-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);}
.tool-row{padding:16px 20px;transition:background .15s;}
.tool-row:last-child{border-bottom:0;}
.tool-row:hover{background:var(--hm-blue-soft);}
.tool-row .tool-name{font-weight:600;}
.tool-row .tool-go{color:var(--hm-blue);font-weight:600;}
.tool-row:not(.soon) .tool-go::after{content:" →";}
.card{border-radius:14px;box-shadow:0 6px 24px rgba(11,31,68,.06);margin-bottom:18px;}
.field input,.field select,.search-box{border-radius:10px;background:var(--surface);min-height:44px;}
.field input:focus,.field select:focus,.search-box:focus{border-color:var(--hm-blue);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--hm-blue) 18%,transparent);}
.toggle-row button{border-radius:10px;min-height:42px;font-weight:500;}
.toggle-row button[aria-pressed="true"]{background:var(--hm-blue);border-color:var(--hm-blue);color:#fff;}
.result .amount{color:var(--hm-blue);}
.btn{border-radius:10px;border-color:var(--hm-blue);background:var(--hm-blue);color:#fff;font-weight:600;min-height:44px;}
.btn:hover{filter:brightness(1.07);}
.btn.ghost{background:transparent;color:var(--hm-blue);}
.dropzone{border-radius:14px;border-color:color-mix(in srgb,var(--hm-blue) 35%,var(--line));background:var(--hm-blue-soft);}
.dropzone:hover{border-color:var(--hm-blue);}
.dropzone{display:block;margin-bottom:14px;}
table.rates th{background:var(--surface-sunken);}
canvas{border-radius:10px;}
.norway-band{background:var(--hm-navy);color:#fff;border-radius:18px;}
.norway-band h2{color:#fff;}
.norway-band p{color:#C9D6EE;}
.norway-grid{background:rgba(255,255,255,.14);border:0;border-radius:14px;overflow:hidden;}
.norway-grid a{background:var(--hm-navy);color:#fff;font-weight:500;padding:18px 16px;}
.norway-grid a:hover{background:color-mix(in srgb,#fff 10%,var(--hm-navy));}
.link-group a:hover{color:var(--hm-blue);}
footer{background:var(--surface);}
.footer-col a:hover{color:var(--hm-blue);}
/* text on blue fills: white in light mode, dark navy in dark mode for contrast */
:root{--on-blue:#fff;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--on-blue:#0B1F44;}}
:root[data-theme="dark"]{--on-blue:#0B1F44;}
.btn,.toggle-row button[aria-pressed="true"],.hm-search button,.hm-tab[aria-pressed="true"],.new-badge{color:var(--on-blue);}
.btn.ghost{color:var(--hm-blue);}

#p2w-resume[hidden], #p2w-new[hidden] { display: none !important; }
