@font-face{font-family:"Apolun Nova";src:url(ApolunNova-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
:root{
  --bg:#fafbfc; --surface:#ffffff; --ink:#142234; --muted:#596775; --line:#d9e0e5;
  --accent:#0ab4ef; --accent-ink:#0b101d; --ghost:rgba(20,34,52,.06);
  --check1:#edf3f9; --check2:#ffffff; --r:8px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0b101d; --surface:#111827; --ink:#e4f7ff; --muted:#8798a8; --line:#1f2b3f;
    --ghost:rgba(228,247,255,.05); --check1:#18202f; --check2:#111827; }
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--bg); color:var(--ink);
  font:14px/1.55 ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace;
  min-height:100vh; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:980px; margin:0 auto; padding:28px 16px 80px}
header{display:flex; flex-wrap:wrap; align-items:center; gap:12px 28px; margin-bottom:56px}
.brand{display:flex; align-items:center; gap:10px; font-weight:600; letter-spacing:-.01em}
.brand{text-decoration:none;color:var(--ink)}
.brand .mark{width:28px;height:28px;display:block}
.brand b{font-family:"Apolun Nova",system-ui,sans-serif;font-weight:300;font-size:22px;letter-spacing:-.02em}
.brand span{color:var(--muted);font-size:13px;border-left:1px solid var(--line);padding-left:10px;margin-left:2px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.privacy{color:var(--muted); font-size:13px}
h1{
  font-family:"Apolun Nova",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-weight:300; font-size:clamp(30px,5.5vw,52px); line-height:1.1; letter-spacing:-.025em;
  margin:0 0 30px;
}
h1 em{font-style:normal; color:var(--accent)}
h1 em::after{content:"▌"; margin-left:.08em; font-family:ui-monospace,Menlo,monospace; animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* formatväljare */
.row{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.label{font-size:12px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); margin:0 0 10px}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{
  appearance:none; border:1.5px solid var(--line); background:transparent; color:var(--ink);
  padding:7px 14px; border-radius:var(--r); font:inherit; font-weight:600; cursor:pointer;
  transition:all .15s ease;
}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink); color:var(--bg); border-color:var(--ink)}
.chip[disabled]{opacity:.35; cursor:not-allowed; text-decoration:line-through}
.opts{display:flex; flex-wrap:wrap; gap:28px 40px; margin-top:26px}
.opt{min-width:150px}
.opt .chip{padding:5px 12px; font-size:13px}
input[type=range]{width:180px; accent-color:var(--accent); vertical-align:middle}
input[type=color]{width:36px;height:30px;border:1.5px solid var(--line);border-radius:8px;background:none;padding:2px;cursor:pointer;vertical-align:middle}
.val{font-variant-numeric:tabular-nums; margin-left:8px; font-weight:600}
.hidden{display:none!important}
.maxrow{display:flex; align-items:center; gap:8px; color:var(--muted)}
.maxrow input{width:92px; font:inherit; color:var(--ink); background:var(--surface); border:1.5px solid var(--line); border-radius:var(--r); padding:5px 10px; -moz-appearance:textfield}
.maxrow input::-webkit-outer-spin-button,.maxrow input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.maxrow input:hover{border-color:var(--ink)}
.maxrow input::placeholder{color:var(--muted); opacity:.7}
.check{display:inline-flex; align-items:center; gap:8px; margin-top:12px; color:var(--muted); cursor:pointer; user-select:none}
.check:hover{color:var(--ink)}
.check input{appearance:none; width:16px; height:16px; margin:0; border:1.5px solid var(--line); border-radius:4px; background:var(--surface); display:grid; place-content:center; cursor:pointer}
.check input:checked{background:var(--accent); border-color:var(--accent)}
.check input:checked::after{content:""; width:8px; height:4px; border:solid var(--accent-ink); border-width:0 0 2px 2px; transform:rotate(-45deg) translate(1px,-1px)}
.hint{margin:8px 0 0; font-size:12px; color:var(--muted)}

/* dropzon */
.drop{
  position:relative; overflow:hidden; margin-top:40px;
  border:2px dashed var(--line); border-radius:16px; background:var(--surface);
  min-height:220px; display:grid; place-items:center; text-align:center; cursor:pointer;
  transition:border-color .2s, background .2s, transform .2s;
}
.drop:hover{border-color:var(--muted)}
.drop.over{border-color:var(--accent); border-style:solid; background:color-mix(in srgb,var(--accent) 7%,var(--surface)); transform:scale(1.008)}
.ghost{
  position:absolute; inset:0; display:grid; place-items:center; pointer-events:none;
  font-family:inherit; font-weight:600; font-size:clamp(80px,17vw,170px);
  color:var(--ghost); letter-spacing:-.04em; line-height:1; transition:color .2s;
}
.drop.over .ghost{color:color-mix(in srgb,var(--accent) 22%,transparent)}
.drop-inner{position:relative; padding:40px 20px}
.drop-inner b{display:block; font-size:18px; font-weight:600; letter-spacing:-.01em}
.drop-inner span{color:var(--muted)}
.drop-inner u{text-decoration-color:var(--accent); text-underline-offset:3px}

/* resultat */
.bar{display:flex; justify-content:space-between; align-items:center; margin:44px 0 14px}
.bar h2{margin:0; font-size:12px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); font-weight:500}
.btn{
  appearance:none; border:0; cursor:pointer; font:inherit; font-weight:600; text-decoration:none;
  background:var(--accent); color:var(--accent-ink); padding:8px 16px; border-radius:var(--r);
  display:inline-flex; align-items:center; gap:8px; transition:transform .12s, filter .12s;
}
.btn:hover{filter:brightness(1.07)} .btn:active{transform:scale(.97)}
.btn.ghosty{background:transparent; color:var(--muted); font-weight:500; padding:8px 12px}
.btn.ghosty:hover{color:var(--ink)}
.list{display:grid; gap:12px}
.card{
  display:grid; grid-template-columns:84px 1fr auto; gap:18px; align-items:center;
  background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 16px 12px 12px;
  animation:in .35s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes in{from{opacity:0; transform:translateY(10px) scale(.98)}}
.thumb{
  width:84px; height:84px; border-radius:var(--r); overflow:hidden;
  background:conic-gradient(var(--check1) 25%,var(--check2) 0 50%,var(--check1) 0 75%,var(--check2) 0) 0 0/14px 14px;
  display:grid; place-items:center;
}
.thumb img{max-width:100%; max-height:100%; display:block}
.meta{min-width:0}
.name{font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sub{color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums}
.sub .arrow{color:var(--accent); margin:0 4px}
.err{color:#d6361c}
.actions{display:flex; align-items:center; gap:4px}
.x{appearance:none; border:0; background:none; color:var(--muted); font-size:22px; line-height:1; cursor:pointer; padding:6px 10px; border-radius:var(--r)}
.x:hover{color:var(--ink)}
.spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:s .7s linear infinite;display:inline-block;vertical-align:-3px}
@keyframes s{to{transform:rotate(360deg)}}
footer{margin-top:60px; color:var(--muted); font-size:13px}
@media (max-width:560px){
  .card{grid-template-columns:64px 1fr; } .thumb{width:64px;height:64px}
  .actions{grid-column:1/-1; justify-content:space-between}
  header{margin-bottom:36px}
}

/* nav */
.nav{display:flex; gap:4px}
.nav a{padding:6px 12px; border-radius:var(--r); color:var(--muted); text-decoration:none; font-weight:600; border-bottom:2px solid transparent; border-radius:0}
.nav a:hover{color:var(--ink)}
.nav a[aria-current=page]{color:var(--ink); border-bottom-color:var(--accent)}
.privacy{margin-left:auto}
@media (max-width:700px){.privacy{display:none}}

/* units */
.q{display:block; margin:0 auto; width:100%; max-width:560px; font:inherit; font-size:16px; padding:10px 14px; color:var(--ink); background:var(--surface); border:1.5px solid var(--line); border-radius:var(--r); outline:none; transition:border-color .15s}
.q:focus{border-color:var(--accent)}
.q::placeholder{color:var(--muted); opacity:.55}
.examples{margin-top:28px; justify-content:center}
#view-units > .label{text-align:center; max-width:560px; margin-left:auto; margin-right:auto}
.examples .chip{padding:4px 11px; font-size:13px; font-weight:500; color:var(--muted)}
.examples .chip:hover{color:var(--ink)}
#uresult{margin-top:80px}
.hero{background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px 26px; margin-bottom:28px; animation:in .3s both}
.hero .eq{color:var(--muted)}
.big{appearance:none; border:0; background:none; padding:0; color:var(--ink); font:inherit; font-size:clamp(34px,7vw,64px); font-weight:500; letter-spacing:-.04em; line-height:1.15; cursor:pointer; text-align:left; word-break:break-all}
.big span{color:var(--accent); font-size:.5em; letter-spacing:0; margin-left:.2em}
.cap{color:var(--muted); margin-top:6px}
.ugrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px}
.ucard{appearance:none; font:inherit; color:var(--ink); text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 16px; cursor:pointer; display:grid; gap:2px; transition:border-color .15s,transform .12s; animation:in .3s both}
.ucard:hover{border-color:var(--accent)}
.ucard:active{transform:scale(.98)}
.uv{font-size:20px; font-weight:600; letter-spacing:-.02em; word-break:break-all}
.uv b{color:var(--muted); font-weight:600; font-size:14px; margin-left:4px; letter-spacing:0}
.un{color:var(--muted); font-size:12px}
.uhint{color:var(--muted)}
.toast{position:fixed; left:50%; bottom:28px; transform:translate(-50%,20px); background:var(--ink); color:var(--bg); padding:8px 16px; border-radius:var(--r); opacity:0; pointer-events:none; transition:all .2s; z-index:10}
.toast.show{opacity:1; transform:translate(-50%,0)}

/* centered headings + fully centered Units view */
h1{text-align:center}
#view-units{text-align:center}
#uresult .label{text-align:center}
.hero{text-align:center}
.big{text-align:center}
.ugrid{grid-template-columns:repeat(auto-fit,210px); justify-content:center}
.ucard{text-align:center; justify-items:center}
@media (max-width:480px){.ugrid{grid-template-columns:1fr 1fr}}

/* everything centered */
header{justify-content:center}
.privacy{margin-left:0}
#view-images{text-align:center}
.chips,.opts,.row,.maxrow{justify-content:center}
.bar{flex-direction:column; align-items:center; gap:12px}
.card{text-align:left}
footer{text-align:center}

/* clearer menu: segmented control */
.nav{gap:2px; padding:3px; border:1.5px solid var(--line); border-radius:12px; background:var(--surface)}
.nav a{padding:7px 20px; border-radius:9px; border-bottom:0; color:var(--ink); font-size:14px; transition:background .15s}
.nav a:hover{background:var(--check1); color:var(--ink)}
.nav a[aria-current=page]{background:var(--accent); color:var(--accent-ink)}
.nav a:focus-visible{outline:2px solid var(--accent); outline-offset:2px}

.sr-only{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
#usupports{margin-top:18px; text-align:center}

/* ---------- lead, SEO content, site links ---------- */
.lead{text-align:center; color:var(--muted); max-width:62ch; margin:-12px auto 34px}
h1 + .lead{margin-top:-14px}
.content{max-width:680px; margin:96px auto 0; text-align:left; color:var(--ink)}
.content h2{font-size:15px; margin:36px 0 10px; letter-spacing:-.01em}
.content h2:first-child{margin-top:0}
.content p,.content li{color:var(--muted)}
.content ul,.content ol{padding-left:22px; margin:10px 0}
.content ul.inline{display:flex; flex-wrap:wrap; gap:6px 18px; list-style:none; padding:0}
.content a,footer a{color:var(--ink); text-decoration-color:var(--accent); text-underline-offset:3px}
.content table{border-collapse:collapse; width:100%; max-width:360px; font-variant-numeric:tabular-nums}
.content th,.content td{text-align:left; padding:6px 0; border-bottom:1px solid var(--line)}
.content th{color:var(--muted); font-weight:500}
.sitelinks{display:flex; flex-wrap:wrap; gap:28px 56px; justify-content:center; text-align:left; margin-bottom:36px}
.sitelinks h2{font-size:12px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); font-weight:500; margin:0 0 10px}
.sitelinks ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 16px; max-width:440px}
.sitelinks a{color:var(--muted); text-decoration:none; font-size:13px}
.sitelinks a:hover{color:var(--ink)}

/* calmer SEO text: smaller but still readable (contrast stays >= 4.5:1), link lists collapsed */
.content{margin-top:64px; font-size:13px; line-height:1.65}
.content h2{font-size:13px; margin:26px 0 8px}
.content p,.content li{margin:0 0 8px}
.more{margin:0 0 28px; text-align:center}
.more summary{display:inline-block; cursor:pointer; color:var(--muted); font-size:13px; padding:4px 10px; border-radius:var(--r); list-style:none}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:" +"}
.more[open] summary::after{content:" –"}
.more summary:hover{color:var(--ink)}
.more .sitelinks{margin:18px 0 0}

/* conversion table: collapsed, left-aligned */
.more.tbl{text-align:left; margin:14px 0 0}
.more.tbl summary{padding-left:0; color:var(--ink)}
.more.tbl table{margin-top:10px}
