@font-face{font-family:"InterVariable";font-style:normal;font-weight:100 900;font-display:swap;src:url("/static/fonts/InterVariable.woff2") format("woff2")}
*{box-sizing:border-box}
html,body{margin:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans); background:var(--bg); color:var(--text);
  font-size:var(--fs-md); line-height:1.55; letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-feature-settings:"cv05" 1,"ss03" 1; min-height:100vh; padding-bottom:5rem;
}
a{color:var(--accent);text-decoration:none}
::selection{background:var(--accent-soft)}
:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:6px}
.ico{width:1.25rem;height:1.25rem;display:inline-block;vertical-align:middle;flex:0 0 auto}

/* ---- Topbar ---- */
.topbar{display:flex;align-items:center;gap:var(--sp-5);padding:.8rem 2rem;
  background:color-mix(in srgb,var(--bg-tint) 80%,transparent);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:20;backdrop-filter:saturate(150%) blur(20px);-webkit-backdrop-filter:saturate(150%) blur(20px)}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:680;font-size:1.14rem;letter-spacing:-.02em;color:var(--text)}
.brand .glyph{width:24px;height:24px;border-radius:8px;background:var(--aurora);box-shadow:0 4px 12px -3px color-mix(in srgb,var(--accent) 60%,transparent);flex:none}
.mainnav{display:flex;gap:.1rem}
.mainnav a{color:var(--text-muted);padding:.5rem .9rem;border-radius:var(--radius-sm);font-weight:540;font-size:var(--fs-sm);letter-spacing:-.01em;transition:background .16s var(--ease),color .16s var(--ease)}
.mainnav a:hover{background:var(--surface-2);color:var(--text)}
.mainnav a.active{background:var(--surface-2);color:var(--text);font-weight:600}
.topbar-right{display:flex;align-items:center;gap:.55rem;margin-left:auto}
.langpicker{margin:0}
.langpicker select{background:var(--surface-2);color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:var(--fs-sm);cursor:pointer;font-family:inherit;transition:.16s var(--ease)}
.langpicker select:hover{background:var(--surface-3);color:var(--text)}
.theme button{background:var(--surface-2);color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-sm);width:40px;height:40px;cursor:pointer;font-size:1.05rem;transition:.16s var(--ease);display:grid;place-items:center}
.theme button:hover{color:var(--text);background:var(--surface-3)}

/* ---- Layout ---- */
.content{max-width:1040px;margin:0 auto;padding:3rem 1.6rem 1rem}
.content>*{animation:rise .55s var(--ease-out) both}
.content>*:nth-child(2){animation-delay:.05s}
.content>*:nth-child(3){animation-delay:.1s}
.content>*:nth-child(4){animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
h1{font-size:clamp(1.9rem,3.4vw,2.5rem);font-weight:700;letter-spacing:-.03em;line-height:1.06;margin:.1rem 0 1.6rem}
h2{font-weight:660;letter-spacing:-.02em}
h3{font-size:var(--fs-lg);font-weight:640;letter-spacing:-.02em;margin:.1rem 0 .6rem}

/* ---- Hero ---- */
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin:.5rem 0 3rem}
.hero-kicker{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:640;margin:0 0 .7rem}
.hero-title{font-size:clamp(2.4rem,5.2vw,3.5rem);font-weight:700;letter-spacing:-.035em;line-height:1.02;margin:0;color:var(--text)}
.hero-sub{color:var(--text-muted);margin:.75rem 0 0;font-size:var(--fs-lg);max-width:46ch}

/* ---- Sektioner ---- */
.section-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-subtle);font-weight:640;margin:2.6rem 0 1.1rem;display:flex;align-items:center;gap:.8rem}
.section-label::after{content:"";flex:1;height:1px;background:var(--border)}

/* ---- Halsokort ---- */
.hcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1rem;margin-bottom:.5rem}
.hcard{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--shadow-sm)}
.hcard-ico{width:2.6rem;height:2.6rem;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.hcard-ico .ico{width:1.35rem;height:1.35rem}
.hcard-body{min-width:0}
.hrow{display:flex;align-items:center;gap:.5rem}
.hlbl{font-weight:560;color:var(--text-muted);font-size:var(--fs-sm)}
.hval{margin-top:.2rem;font-weight:660;font-size:1.1rem;letter-spacing:-.01em}
.dot{width:.6rem;height:.6rem;border-radius:50%;display:inline-block;flex:0 0 auto}
.dot-ok{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 20%,transparent)}
.dot-down{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent)}
.dot-warn{background:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 20%,transparent)}
.dot-unknown{background:var(--text-subtle)}

/* ---- Statistik-kort ---- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1.1rem}
.stat{display:flex;flex-direction:column;padding:1.6rem 1.6rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:inherit;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .22s var(--ease-out),border-color .2s,box-shadow .22s}
.stat-ico{width:2.8rem;height:2.8rem;display:grid;place-items:center;border-radius:14px;background:var(--accent-soft);color:var(--accent);margin-bottom:1rem}
.stat-ico .ico{width:1.45rem;height:1.45rem}
.stat-num{font-size:2.4rem;font-weight:720;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.stat-lbl{color:var(--text-muted);font-size:var(--fs-sm);margin-top:.35rem}
.stat::after{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--aurora);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease-out)}
.stat:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}
.stat:hover::after{transform:scaleX(1)}

/* ---- Generiska kort ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--sp-4)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem 1.6rem;box-shadow:var(--shadow-sm);transition:.22s var(--ease);position:relative}
a.card{text-decoration:none;color:inherit}
a.card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}
.card .big{font-size:2.2rem;font-weight:720;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.card .lbl{color:var(--text-muted);font-size:var(--fs-sm);margin-top:.3rem}

/* ---- Tabeller ---- */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:.75rem .7rem;border-bottom:1px solid var(--border)}
th{color:var(--text-subtle);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em}
tbody tr{transition:background .12s var(--ease)}
tbody tr:hover{background:var(--surface-2)}

/* ---- Formular ---- */
label{display:block;color:var(--text-muted);font-size:var(--fs-sm);font-weight:540;margin:.8rem 0 .35rem}
input,textarea,select{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.68rem .8rem;font:inherit;letter-spacing:-.01em;transition:.16s var(--ease)}
input:hover,textarea:hover,select:hover{border-color:var(--text-subtle)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
textarea{min-height:12rem;line-height:1.65;resize:vertical}
::placeholder{color:var(--text-subtle)}

/* ---- Knappar ---- */
.btn{display:inline-flex;align-items:center;gap:.45rem;background:var(--accent);color:var(--accent-contrast);border:none;padding:.65rem 1.15rem;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-weight:620;letter-spacing:-.01em;box-shadow:var(--shadow-sm);transition:.16s var(--ease)}
.btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:var(--surface);color:var(--text);box-shadow:none;border:1px solid var(--border-strong)}
.btn.ghost:hover{background:var(--surface-2);border-color:var(--text-subtle)}
.btn.green{background:var(--success);color:#fff}
.btn.danger{background:var(--danger);color:#fff}
.btn.danger:hover{filter:brightness(1.05)}
.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none;background:var(--surface-3);color:var(--text-subtle);box-shadow:none}
.btn-lg{padding:.8rem 1.35rem;font-size:var(--fs-md);border-radius:var(--radius);box-shadow:0 8px 22px -10px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn-lg .ico{width:1.1rem;height:1.1rem}

.row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.rowform{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.lang{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.4rem 1.5rem;margin-bottom:1.1rem;background:var(--surface);box-shadow:var(--shadow-sm)}
.pill{display:inline-flex;align-items:center;font-size:var(--fs-xs);font-weight:600;padding:.24rem .65rem;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-muted);letter-spacing:.01em}
.link{color:var(--accent);font-weight:560}
.help{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.55}
.flash{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--text);padding:.8rem 1.1rem;border-radius:var(--radius-sm);margin-bottom:1.4rem;box-shadow:var(--shadow-sm);font-weight:540}

/* ---- Meny/listkort ---- */
.menu{display:grid;gap:.7rem}
.menu-item{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.3rem;color:var(--text);font-weight:540;box-shadow:var(--shadow-sm);transition:.2s var(--ease)}
a.menu-item:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-md)}

/* ---- Moderering ---- */
.modgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.1rem;margin:1.1rem 0}
.modcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.6rem}
.modcard h3{margin:0 0 .4rem}

/* ---- Kontroll/nodlage ---- */
.notice{background:color-mix(in srgb,var(--warning) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);border-radius:var(--radius);padding:.85rem 1.1rem;margin-bottom:1.2rem;color:var(--text)}
.panic-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}
.panic-box.is-locked{border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 5%,var(--surface))}
.panic-head{display:flex;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:620;margin-bottom:.5rem}
.confirmer{display:flex;flex-direction:column;gap:.55rem;max-width:360px;margin-top:.5rem}
.clbl{font-size:var(--fs-sm);color:var(--text-muted)}
.confirm-input{max-width:220px}

/* ---- Footer ---- */
.foot{max-width:1040px;margin:3rem auto 0;padding:1.5rem 1.6rem 2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.foot .sig{color:var(--text-subtle);font-size:var(--fs-xs)}
.slava{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);padding:.35rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:linear-gradient(180deg,rgba(0,87,183,.09),rgba(255,215,0,.09))}

/* ---- Bottennav (mobil) ---- */
.bottomnav{display:none}
@media (max-width:820px){
  .mainnav{display:none}
  .content{padding-top:1.6rem}
  .topbar{padding:.7rem 1.2rem}
  .bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:color-mix(in srgb,var(--bg-tint) 90%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border)}
  .bottomnav a{flex:1;text-align:center;padding:.9rem .3rem;color:var(--text-muted);font-weight:540;font-size:var(--fs-sm)}
  .bottomnav a.active{color:var(--accent);font-weight:620}
}

/* ================= Morkt norrsken (valbart tema) ================= */
[data-mode="dark"] body{
  background:
    radial-gradient(1200px 700px at 8% -10%, color-mix(in srgb,var(--accent) 26%,transparent) 0%, transparent 58%),
    radial-gradient(1050px 720px at 110% -5%, color-mix(in srgb,var(--info) 24%,transparent) 0%, transparent 56%),
    radial-gradient(1000px 800px at 95% 108%, color-mix(in srgb,#8B5CF6 20%,transparent) 0%, transparent 60%),
    linear-gradient(165deg, #0d1826 0%, var(--bg) 42%, #060912 100%);
  background-attachment:fixed;
}
[data-mode="dark"] body::before{
  content:"";position:fixed;inset:-30%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(40% 32% at 18% 12%, color-mix(in srgb,var(--accent) 48%,transparent), transparent 68%),
    radial-gradient(38% 30% at 86% 8%, color-mix(in srgb,var(--info) 42%,transparent), transparent 70%),
    radial-gradient(42% 34% at 80% 92%, color-mix(in srgb,#8B5CF6 38%,transparent), transparent 70%);
  filter:blur(72px) saturate(1.2);opacity:.6;animation:aurora 42s ease-in-out infinite alternate;
}
@keyframes aurora{0%{transform:translate3d(-4%,-3%,0) scale(1.05)}100%{transform:translate3d(5%,4%,0) scale(1.16)}}
@media (prefers-reduced-motion:reduce){[data-mode="dark"] body::before{animation:none}}
[data-mode="dark"] .topbar{background:color-mix(in srgb,var(--bg) 62%,transparent)}
[data-mode="dark"] .card,[data-mode="dark"] .stat,[data-mode="dark"] .hcard,
[data-mode="dark"] .lang,[data-mode="dark"] .panic-box,[data-mode="dark"] .modcard,
[data-mode="dark"] .menu-item{
  background:linear-gradient(180deg, color-mix(in srgb,var(--surface) 74%,transparent), color-mix(in srgb,var(--surface) 92%,transparent));
  backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);
}

/* ================= Apple Liquid Glass (ljust default) ================= */
body{
  background:
    radial-gradient(1100px 640px at 6% -6%, color-mix(in srgb,var(--accent) 16%,transparent), transparent 54%),
    radial-gradient(1000px 700px at 104% 2%, color-mix(in srgb,var(--info) 14%,transparent), transparent 54%),
    radial-gradient(900px 780px at 58% 112%, color-mix(in srgb,#8B5CF6 11%,transparent), transparent 60%),
    var(--bg);
  background-attachment:fixed;
}
.card,.stat,.hcard,.lang,.panic-box,.modcard,.menu-item,.flash{
  background:color-mix(in srgb,var(--surface) 58%,transparent);
  backdrop-filter:blur(28px) saturate(185%);-webkit-backdrop-filter:blur(28px) saturate(185%);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75), var(--shadow-md);
}
a.card:hover,a.menu-item:hover,.stat:hover{border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.85), var(--shadow-lg)}
.topbar{
  background:color-mix(in srgb,var(--bg-tint) 55%,transparent);
  backdrop-filter:blur(30px) saturate(185%);-webkit-backdrop-filter:blur(30px) saturate(185%);
  border-bottom:1px solid rgba(255,255,255,.5);
  box-shadow:0 1px 0 rgba(255,255,255,.4)
}
.hcard-ico,.stat-ico{box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.btn.ghost{
  background:color-mix(in srgb,var(--surface) 52%,transparent);
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)
}
.pill{background:color-mix(in srgb,var(--surface) 55%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5)}
.langpicker select,.theme button{background:color-mix(in srgb,var(--surface) 50%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.slava{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}

/* morkt tema: behall aurora-glaset, ingen ljus kant */
[data-mode="dark"] .card,[data-mode="dark"] .stat,[data-mode="dark"] .hcard,
[data-mode="dark"] .lang,[data-mode="dark"] .panic-box,[data-mode="dark"] .modcard,
[data-mode="dark"] .menu-item,[data-mode="dark"] .flash{
  border:1px solid var(--border);box-shadow:var(--shadow-md);
}
[data-mode="dark"] .topbar{border-bottom:1px solid var(--border);box-shadow:none}


/* ---- tema-valjare (Utseende) ---- */
.iconbtn{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);transition:.16s var(--ease);border:1px solid transparent}
.iconbtn:hover{background:var(--surface-3);color:var(--text)}
.iconbtn .ico,.theme button .ico{width:1.2rem;height:1.2rem}
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-bottom:1.6rem}
.theme-card{margin:0}
.theme-swatch{width:100%;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0;overflow:hidden;text-align:left;transition:.18s var(--ease);box-shadow:var(--shadow-sm);color:var(--text)}
.theme-swatch:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.is-current .theme-swatch{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.sw-preview{display:block;height:66px;background:var(--sw-bg);position:relative;border-bottom:1px solid var(--border)}
.sw-dot{position:absolute;left:12px;bottom:12px;width:28px;height:28px;border-radius:9px;background:var(--sw-ac);box-shadow:0 3px 10px -2px var(--sw-ac)}
.sw-name{display:block;padding:.6rem .8rem;font-weight:560;font-size:var(--fs-sm)}

/* server-editor */
.role-dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;margin-right:.5rem;vertical-align:middle;box-shadow:0 0 0 2px color-mix(in srgb,var(--border) 60%,transparent)}

/* server-editor v2 */
.ed-list{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.1rem}
.ed-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem 1rem;box-shadow:var(--shadow-sm);flex-wrap:wrap}
.ed-main{display:flex;align-items:center;gap:.6rem;min-width:0;font-size:1.02rem}
.ed-type{font-size:var(--fs-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;font-weight:600;background:var(--surface-3);padding:.16rem .55rem;border-radius:var(--radius-pill)}
.ed-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.inline-f{margin:0;display:flex;gap:.3rem;align-items:center}
.inline-f input{width:auto;max-width:150px;padding:.35rem .55rem}
.btn.sm{padding:.35rem .7rem;font-size:var(--fs-sm);font-weight:560}
.btn.ghost.danger-text{color:var(--danger)}

/* server-editor: live Discord-preview */
.create-with-preview{display:flex;gap:1.6rem;flex-wrap:wrap;align-items:flex-start}
.create-with-preview form{flex:1;min-width:280px}
.preview-col{min-width:210px}
.preview-label{font-size:var(--fs-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.1em;font-weight:640;margin-bottom:.4rem}
.dc-preview{background:#2b2d31;border-radius:10px;padding:.55rem .5rem;min-width:200px;box-shadow:var(--shadow-md)}
.dc-chan{color:#949ba4;display:flex;align-items:center;gap:.35rem;padding:.3rem .45rem;border-radius:5px;font-size:.98rem}
.dc-chan.priv{color:#80848e}
.dc-hash{color:#80848e;font-weight:600}
.dc-cat{color:#949ba4;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:.3rem .45rem}
.dc-lock{font-size:.72rem}
.dc-role{font-weight:600;display:flex;align-items:center;gap:.35rem;padding:.2rem .45rem}
.dc-member{display:flex;align-items:center;gap:.55rem;margin-top:.5rem;padding:.25rem .45rem}
.dc-avatar{width:24px;height:24px;border-radius:50%;background:#5865F2;display:inline-block;flex:0 0 auto}

.gp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem}

.topbar-back{margin-right:.1rem;width:36px;height:36px}
@media (max-width:820px){.topbar-back{width:34px;height:34px}}

.backbtn{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.42rem .95rem;font:inherit;font-weight:560;font-size:var(--fs-sm);cursor:pointer;margin-bottom:1.3rem;transition:.16s var(--ease)}
.backbtn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-strong);transform:translateX(-2px)}
.backbtn .ico{width:1rem;height:1rem}

/* Visa som roll */
.viewas select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.3rem .5rem;font:inherit;font-size:.82rem;max-width:150px}
.viewas-banner{margin:0 0 1rem;padding:.55rem .9rem;border-radius:10px;background:rgba(227,185,94,.14);border:1px solid rgba(227,185,94,.45);font-size:.9rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.viewas-banner .inline{display:inline;margin:0}
.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit;padding:0}


/* Modmail */
.modmail{display:grid;grid-template-columns:220px 1fr;gap:1rem;margin-top:1rem}
.mm-list{display:flex;flex-direction:column;gap:.3rem}
.mm-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .7rem;border-radius:9px;background:var(--surface);border:1px solid var(--border);color:var(--text);text-decoration:none}
.mm-item.active{border-color:var(--accent)}
.mm-badge{background:var(--accent);color:#1a1205;border-radius:999px;padding:0 .45rem;font-size:.72rem;font-weight:700}
.mm-thread{display:flex;flex-direction:column;gap:.5rem}
.mm-msg{max-width:80%;padding:.5rem .8rem;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
.mm-msg.out{align-self:flex-end;background:rgba(227,185,94,.14);border-color:rgba(227,185,94,.4)}
.mm-meta{font-size:.72rem;opacity:.6;margin-top:.25rem}
.mm-reply{display:flex;flex-direction:column;gap:.5rem;margin-top:.6rem}
.mm-reply textarea{width:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.6rem;font:inherit}
.mm-reply button{align-self:flex-end}
@media(max-width:640px){.modmail{grid-template-columns:1fr}}


/* Ctrl+K kommandopalett */
.cmdk{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;backdrop-filter:blur(3px)}
.cmdk[hidden]{display:none}
.cmdk-box{width:min(560px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden}
.cmdk-box input{width:100%;box-sizing:border-box;padding:1rem 1.1rem;border:0;background:transparent;color:var(--text);font:inherit;font-size:1.05rem;outline:none;border-bottom:1px solid var(--border)}
.cmdk-results{list-style:none;margin:0;padding:.35rem;max-height:50vh;overflow:auto}
.cmdk-item{display:flex;gap:.6rem;align-items:center;padding:.55rem .7rem;border-radius:9px;cursor:pointer;color:var(--text)}
.cmdk-item.sel{background:rgba(227,185,94,.16)}
.cmdk-kind{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;opacity:.55;min-width:54px}


/* Guide-omslag */
.guide-image{margin-bottom:1rem}
.guide-cover{max-width:min(360px,100%);border-radius:12px;border:1px solid var(--border);margin-bottom:.5rem}
.guide-image .row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}


/* Login + konto */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.login-card{width:min(360px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.6rem;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.login-card h1{margin:.2rem 0 1rem;text-align:center}
.login-card label,.stack label{display:block;margin-bottom:.7rem;font-size:.9rem}
.login-card input,.stack input{width:100%;box-sizing:border-box;margin-top:.25rem;padding:.6rem .7rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit}
.login-card button{width:100%;margin-top:.4rem}
.stack{max-width:380px}
.tbl{width:100%;border-collapse:collapse;margin:.5rem 0}
.tbl th,.tbl td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border)}
.tbl .row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

.login-langs{display:flex;gap:.8rem;justify-content:center;margin-top:1rem;font-size:.85rem}
.login-langs a{color:var(--text-muted);text-decoration:none}
.login-langs a.on{color:var(--accent);font-weight:600}


/* Ärendesystem */
.dropzone{border:2px dashed var(--border);border-radius:12px;padding:1.1rem;text-align:center;color:var(--text-muted);cursor:pointer;margin:.6rem 0;transition:.15s}
.dropzone.over{border-color:var(--accent);background:rgba(227,185,94,.1)}
.ticket-imgs{display:flex;gap:.6rem;flex-wrap:wrap;margin:.6rem 0}
.ticket-img{position:relative}
.ticket-img img{height:110px;border-radius:10px;border:1px solid var(--border);object-fit:cover}
.ticket-img form{position:absolute;top:4px;right:4px}
.ticket-img .linkbtn{background:rgba(0,0,0,.55);color:#fff;border-radius:50%;width:22px;height:22px;line-height:1}
.edit-box{margin:1rem 0;border:1px solid var(--border);border-radius:10px;padding:.6rem .9rem}
.edit-box summary{cursor:pointer}
.edit-box input,.edit-box textarea{width:100%;box-sizing:border-box;margin:.3rem 0;padding:.5rem;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit}


/* Ärende-dashboard */
.ticket-filters{display:flex;gap:.4rem;margin:1rem 0;flex-wrap:wrap}
.tfilter{padding:.4rem .85rem;border-radius:999px;background:var(--surface-2);color:var(--text-muted);text-decoration:none;font-size:.85rem;border:1px solid transparent;transition:.15s}
.tfilter:hover{color:var(--text)}
.tfilter.on{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.tcount{opacity:.6;font-size:.75rem;margin-left:.15rem}
.ticket-table{width:100%}
.ticket-row{cursor:pointer;transition:background .12s}
.ticket-row:hover{background:var(--surface-2)}
.ticket-empty{text-align:center;color:var(--text-muted);padding:2.2rem!important}
.badge{padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}
.badge-ny{background:color-mix(in srgb,var(--info) 18%,transparent);color:var(--info)}
.badge-pagar{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}
.badge-klar{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success)}
