:root{
    --bg:#0b0f14; --panel:#111826; --text:#e5e7eb; --muted:#9ca3af;
    --ok:#22c55e; --warn:#facc15; --hot:#ef4444; --na:#6b7280;
    --barbg:#0b1220;
}
*{box-sizing:border-box}
body{
    margin:0; padding:48px;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    background:radial-gradient(circle at top,#0f172a,var(--bg));
    color:var(--text); min-height:100vh;
}
h1{margin:0 0 24px 0; font-weight:600; letter-spacing:.4px}
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(520px,1fr)); gap:24px}
.card{
    background:linear-gradient(180deg,#0f172a,var(--panel));
    border:1px solid #1f2937; border-radius:16px;
    padding:24px; box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.card h2{margin:0 0 12px 0; font-size:20px; font-weight:600}
.status{display:flex; align-items:center; gap:10px; margin-bottom:18px; font-size:14px}
.dot{width:10px;height:10px;border-radius:50%; background:var(--ok); box-shadow:0 0 12px var(--ok)}
.dot.warn{background:var(--warn); box-shadow:0 0 12px var(--warn)}
.dot.hot{background:var(--hot); box-shadow:0 0 12px var(--hot)}
.dot.na{background:var(--na); box-shadow:none}

.kv{
    display:grid;
    grid-template-columns:160px 1fr;
    gap:10px 16px;
    font-size:14px
}
.kv .k{color:var(--muted)}
.kv .v{
    color:var(--text);
    font-weight:500;
    font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
    line-height: 1.45;
    white-space: normal;
}

/* Storage rendering */
.storage{ display:flex; flex-direction:column; gap:12px; }
.storage-item{
    border:1px solid #1f2937;
    background:rgba(15,23,42,.45);
    border-radius:12px;
    padding:12px 12px 10px;
}
.storage-top{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}
.storage-name{ font-weight:600; font-size:14px; color:var(--text); }
.storage-pct{
    font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight:700;
    font-size:13px;
    color:var(--text);
}
.bar{
    height:10px;
    border-radius:999px;
    background:var(--barbg);
    overflow:hidden;
    border:1px solid #1f2937;
}
.bar > span{ display:block; height:100%; width:0%; background:var(--ok); }
.bar.warn > span{ background:var(--warn); }
.bar.hot  > span{ background:var(--hot); }
.bar.na   > span{ background:var(--na); }

.storage-meta{
    margin-top:8px;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    font-size:12px;
    color:var(--muted);
    font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
}
.storage-meta .mount{ opacity:.9; }

/* Domain lists */
.domains{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px 12px;
}
@media (max-width: 700px){
    .domains{ grid-template-columns:1fr; }
}
.domain-row{
    padding:8px 12px;
    border:1px solid #1f2937;
    background:rgba(15,23,42,.35);
    border-radius:12px;

    font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size:13px;
    font-weight:650;

    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
}
.domain-left{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.domain-right{
    font-size:12px;
    color:var(--muted);
    white-space:nowrap;
    font-weight:600;
}
.domain-right.ok{color:var(--ok)}
.domain-right.warn{color:var(--warn)}
.domain-right.hot{color:var(--hot)}
.domain-right.na{color:var(--na)}

.section-title{
    margin:18px 0 10px;
    font-size:12px;
    letter-spacing:.3px;
    color:var(--muted);
    text-transform:uppercase;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}

.small{color:var(--muted); font-size:12px; margin-top:14px}
.footer{margin-top:32px; font-size:12px; color:#6b7280}

/* Header / Topbar */
.header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 24px 0;
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    color:inherit;
}
.brand img{
    display:block;
    height:42px;          /* <- standardhöjd desktop */
    width:auto;
    max-width:320px;      /* skydd om den är bred */
    image-rendering:auto;
}

/* Top nav */
.topnav{
    display:flex;
    align-items:center;
    gap:10px;
}
.navlinks{
    display:flex;
    align-items:center;
    gap:8px;
}
.navlinks a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    border-radius:12px;
    border:1px solid rgba(31,41,55,.85);
    background:rgba(15,23,42,.35);
    color:var(--text);
    text-decoration:none;
    font-size:13px;
    font-weight:650;
    letter-spacing:.2px;
}
.navlinks a:hover{
    background:rgba(15,23,42,.55);
}
.navlinks a.active{
    background:rgba(15,23,42,.75);
    border-color:#374151;
}
.rolebadge{
    display:inline-flex;
    align-items:center;
    padding:10px 12px;
    border-radius:12px;
    border:1px solid rgba(31,41,55,.85);
    background:rgba(15,23,42,.25);
    color:var(--muted);
    font-size:12px;
    font-weight:700;
    letter-spacing:.3px;
    text-transform:uppercase;
    user-select:none;
}

/* Mobile menu */
.hamburger{
    display:none;
    border:1px solid rgba(31,41,55,.85);
    background:rgba(15,23,42,.35);
    color:var(--text);
    border-radius:12px;
    padding:10px 12px;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.mobilepanel{
    display:none;
    position:absolute;
    right:48px;
    top:88px;
    min-width:220px;
    background:linear-gradient(180deg,#0f172a,var(--panel));
    border:1px solid #1f2937;
    border-radius:16px;
    box-shadow:0 30px 80px rgba(0,0,0,.6);
    padding:10px;
    z-index:50;
}
.mobilepanel a{
    display:flex;
    padding:12px 12px;
    border-radius:12px;
    text-decoration:none;
    color:var(--text);
    border:1px solid transparent;
    font-size:13px;
    font-weight:650;
}
.mobilepanel a:hover{
    background:rgba(15,23,42,.55);
    border-color:rgba(31,41,55,.85);
}
.mobilepanel .sep{
    height:1px;
    background:#1f2937;
    margin:8px 0;
}

@media (max-width: 900px){
    .navlinks{ display:none; }
    .hamburger{ display:inline-flex; }
}

@media (max-width: 700px){
    body{ padding:24px; }
    .brand img{
        height:34px;      /* <- lite mindre på mobil */
        max-width:240px;
    }
    .mobilepanel{
        right:24px;
        top:74px;
    }
}

.pmodal{ position:fixed; inset:0; z-index:9999; }
.pmodal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.pmodal-card{
  position:relative;
  width:min(980px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  overflow:auto;
  margin:24px auto;
  background:linear-gradient(180deg,#0f172a,#0b1220);
  border:1px solid #1f2937;
  border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,.7);
}
.pmodal-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.pmodal-title{ font-weight:700; letter-spacing:.2px; }
.pmodal-close{
  width:34px; height:34px; border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
  color:inherit; font-size:20px; line-height:1;
  cursor:pointer;
}
.pmodal-body{ padding:16px; }
.domain-link{ color:inherit; text-decoration:none; }
.domain-link:hover{ text-decoration:underline; }
