:root {
    --bg:#0b1118; --bg-elevated:#111a24; --surface:#16212d;
    --surface-hover:#1b2a39; --text:#eef4f8; --muted:#9eb0bf;
    --accent:#38bdf8; --accent-strong:#0ea5e9; --accent-soft:rgba(56,189,248,.12);
    --border:rgba(255,255,255,.09); --danger:#ef4444; --success:#22c55e;
    --radius:14px; --radius-small:9px; --content-width:1440px;
    --shadow:0 18px 45px rgba(0,0,0,.24);
}
*,*::before,*::after { box-sizing:border-box; }
html { min-height:100%; background:var(--bg); }
body {
    margin:0; min-height:100vh; color:var(--text); line-height:1.6;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:radial-gradient(circle at top left,rgba(14,165,233,.12),transparent 35rem),var(--bg);
}
a { color:var(--accent); text-decoration:none; }
a:hover { color:#7dd3fc; }
img { max-width:100%; height:auto; }
h1,h2,h3,p { overflow-wrap:anywhere; }
.site-header { position:sticky; top:0; z-index:100; border-bottom:1px solid var(--border); background:rgba(11,17,24,.94); backdrop-filter:blur(18px); }
.header-inner,.main-inner,.footer-inner { width:min(calc(100% - 2rem),var(--content-width)); margin-inline:auto; }
.header-inner { min-height:74px; display:flex; align-items:center; gap:2rem; }
.brand { display:flex; align-items:center; gap:.8rem; color:var(--text); font-size:1.25rem; font-weight:800; letter-spacing:-.03em; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:linear-gradient(135deg,var(--accent),#2563eb); box-shadow:0 8px 24px rgba(14,165,233,.28); }
.header-account { display:flex; align-items:center; gap:8px; margin-left:auto; }
.header-username { color:var(--muted); font-size:.9rem; }
.main-inner { padding-block:2rem; }
.button,button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:.65rem 1rem; border:1px solid transparent; border-radius:9px; cursor:pointer; background:var(--accent-strong); color:#fff; font:inherit; font-weight:700; }
.button:hover,button:hover { filter:brightness(1.08); color:#fff; }
.button.secondary { border-color:var(--border); background:var(--surface); color:var(--text); }
.hero { position:relative; overflow:hidden; padding:clamp(2rem,5vw,5rem); border:1px solid var(--border); border-radius:20px; background:linear-gradient(135deg,rgba(14,165,233,.16),rgba(37,99,235,.07)),var(--bg-elevated); box-shadow:var(--shadow); }
.hero::after { content:""; position:absolute; right:-8rem; top:-8rem; width:24rem; height:24rem; border-radius:50%; background:rgba(56,189,248,.08); }
.hero h1 { position:relative; z-index:1; max-width:850px; margin:0 0 1rem; font-size:clamp(2.3rem,7vw,5.3rem); line-height:.98; letter-spacing:-.06em; }
.hero p { position:relative; z-index:1; max-width:760px; margin:0; color:var(--muted); font-size:clamp(1rem,2vw,1.25rem); }
.hero + .portal-layout { margin-top:1.5rem; }
.portal-layout { display:grid; grid-template-areas:"left main right"; grid-template-columns:250px minmax(0,1fr) 290px; gap:20px; align-items:start; }
.portal-left { grid-area:left; } .portal-middle { grid-area:main; min-width:0; } .portal-right { grid-area:right; }
.portal-left,.portal-right { position:sticky; top:94px; display:flex; flex-direction:column; gap:16px; }
.sidebar-box,.card,.feature-card,.forum-category-card { border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:0 10px 30px rgba(0,0,0,.12); }
.sidebar-box { overflow:hidden; padding:16px; }
.sidebar-box h2 { margin:0 0 12px; font-size:1.05rem; }
.sidebar-section + .sidebar-section { margin-top:18px; }
.sidebar-section h3 { margin:0 0 7px; color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; }
.sidebar-nav { display:grid; gap:4px; }
.sidebar-link { display:block; width:100%; padding:9px 10px; border:0; border-radius:var(--radius-small); background:transparent; color:var(--muted); text-align:left; font-weight:400; }
.sidebar-link:hover,.sidebar-link.active { color:var(--text); background:var(--accent-soft); filter:none; }
.sidebar-user { margin:0 0 10px; }
.sidebar-logout { margin:0; }
.card { padding:1.5rem; }
.section-heading { margin-bottom:1.5rem; }
.section-heading h1,.section-heading h2 { margin:.2rem 0 .5rem; font-size:clamp(2rem,4vw,3.35rem); line-height:1.05; letter-spacing:-.045em; }
.section-heading p { max-width:720px; margin:0; color:var(--muted); }
.eyebrow,.feature-kicker,.script-language { color:var(--accent); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.feature-card { display:flex; min-height:190px; padding:1.4rem; flex-direction:column; justify-content:flex-end; color:var(--text); transition:.2s ease; }
.feature-card:hover { transform:translateY(-2px); border-color:rgba(56,189,248,.35); background:var(--surface-hover); color:var(--text); }
.feature-card strong { margin:.25rem 0; font-size:1.4rem; }
.feature-card p { margin:0; color:var(--muted); }
.cms-page .card,.prose { line-height:1.75; }
.prose h2,.prose h3 { margin-top:1.6em; line-height:1.25; }
.prose a { text-decoration:underline; text-underline-offset:2px; }
.empty-state { text-align:center; }
.empty-state.compact { padding:1rem; color:var(--muted); }
.auth-card { width:min(100%,560px); margin-inline:auto; }
.auth-card h1,.profile-editor h1 { margin-top:0; }
.auth-switch { margin:1.4rem 0 0; color:var(--muted); }
label { display:block; margin-bottom:.35rem; font-weight:700; }
input,textarea,select { width:100%; padding:.75rem .85rem; border:1px solid var(--border); border-radius:8px; outline:none; background:#0d151e; color:var(--text); font:inherit; }
input:focus,textarea:focus,select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
textarea { min-height:180px; resize:vertical; }
.form-row { margin-bottom:1rem; }
.notice { margin-bottom:1rem; padding:1rem; border:1px solid rgba(56,189,248,.25); border-radius:9px; background:var(--accent-soft); }
.notice.error { border-color:rgba(239,68,68,.35); background:rgba(239,68,68,.09); }
.profile-current { display:flex; align-items:center; gap:18px; margin-bottom:28px; }
.profile-avatar-large,.profile-avatar-empty { width:112px; height:112px; flex:0 0 112px; border:1px solid var(--border); border-radius:50%; object-fit:cover; }
.profile-avatar-empty { display:grid; place-items:center; color:var(--muted); font-size:.8rem; text-align:center; }
.profile-account-data { margin-top:4px; color:var(--muted); }
.profile-checkbox { display:inline-flex; align-items:center; gap:8px; }
.profile-checkbox input { width:auto; }
.forum-hub { display:grid; gap:18px; }
.forum-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:1.6rem; border:1px solid var(--border); border-radius:var(--radius); background:linear-gradient(135deg,rgba(56,189,248,.09),transparent 58%),var(--surface); box-shadow:0 10px 30px rgba(0,0,0,.12); }
.forum-intro-copy h1 { margin:.15rem 0 .45rem; font-size:clamp(2.2rem,5vw,3.65rem); line-height:1; letter-spacing:-.05em; }
.forum-intro-copy p { max-width:650px; margin:0; color:var(--muted); }
.forum-overview-stats { display:flex; flex:none; overflow:hidden; margin:0; border:1px solid var(--border); border-radius:11px; background:rgba(0,0,0,.16); }
.forum-overview-stats div { min-width:96px; padding:.7rem .9rem; text-align:center; }
.forum-overview-stats div + div { border-left:1px solid var(--border); }
.forum-overview-stats dt { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.055em; }
.forum-overview-stats dd { margin:0; font-size:1.35rem; font-weight:800; }
.forum-category-list { display:grid; gap:18px; }
.forum-category-card { overflow:hidden; }
.forum-category-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:1.25rem 1.4rem; border-bottom:1px solid var(--border); background:rgba(255,255,255,.018); }
.forum-category-card h2 { margin:.15rem 0 0; font-size:1.35rem; }
.forum-category-heading p { margin:.3rem 0 0; color:var(--muted); }
.forum-count { flex:none; padding:5px 9px; border:1px solid rgba(56,189,248,.22); border-radius:999px; background:var(--accent-soft); color:#bae6fd; font-size:.72rem; font-weight:800; }
.forum-board-list { display:grid; }
.forum-board-row { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1.05rem 1.4rem; color:var(--text); transition:.18s ease; }
.forum-board-row + .forum-board-row { border-top:1px solid var(--border); }
.forum-board-row:hover { padding-left:1.55rem; background:var(--surface-hover); color:var(--text); }
.forum-board-icon { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(56,189,248,.2); border-radius:11px; background:var(--accent-soft); color:var(--accent); font-size:1.05rem; font-weight:800; }
.forum-board-copy { display:grid; }
.forum-board-copy strong { font-size:1.02rem; }
.forum-board-copy small { color:var(--muted); }
.forum-board-open { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }
.forum-board-row:hover .forum-board-open { color:var(--accent); }
.forum-category-empty { margin:0; padding:1.1rem 1.4rem; color:var(--muted); }
.forum-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-bottom:1rem; color:var(--muted); font-size:.85rem; }
.forum-board-hero { padding:clamp(1.5rem,4vw,2.6rem); border:1px solid var(--border); border-radius:var(--radius); background:linear-gradient(135deg,rgba(56,189,248,.1),transparent 58%),var(--surface); box-shadow:var(--shadow); }
.forum-board-hero h1 { margin:.2rem 0 .7rem; font-size:clamp(2rem,5vw,3.5rem); line-height:1; letter-spacing:-.05em; }
.forum-board-hero p { max-width:720px; margin:0 0 1.4rem; color:var(--muted); }
.forum-board-hero .button { margin-top:.4rem; }
.back-link { display:inline-block; margin-bottom:1rem; color:var(--muted); }
.script-library-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.script-library-header h1,.script-detail-header h1 { margin:0; font-size:clamp(2rem,4vw,3.35rem); line-height:1.05; }
.script-library-header p,.script-description { margin:.45rem 0 0; color:var(--muted); }
.script-search { display:flex; gap:8px; width:min(100%,430px); }
.script-list { display:grid; gap:14px; }
.script-list-item { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; padding:1.35rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); transition:.2s ease; }
.script-list-item:hover { border-color:rgba(56,189,248,.35); background:var(--surface-hover); }
.script-list-item h2 { margin:.35rem 0; }
.script-list-item h2 a { color:var(--text); }
.script-list-item p { margin:0; color:var(--muted); }
.script-meta-row { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; color:var(--muted); font-size:.8rem; }
.script-language { padding:4px 8px; border:1px solid rgba(56,189,248,.22); border-radius:7px; background:var(--accent-soft); }
.script-open { flex:none; padding:.55rem .8rem; border-radius:8px; background:var(--accent-soft); font-weight:700; }
.script-detail-header { padding:1.5rem; border:1px solid var(--border); border-radius:var(--radius) var(--radius) 0 0; background:var(--surface); }
.script-detail-header h1 { margin-top:.7rem; }
.script-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:1.25rem; }
.script-code-shell { overflow:hidden; border:1px solid var(--border); border-top:0; border-radius:0 0 var(--radius) var(--radius); background:#070c12; box-shadow:var(--shadow); }
.script-code-topbar { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 1rem; border-bottom:1px solid var(--border); color:var(--muted); font-size:.8rem; }
.script-code-scroll { overflow:auto; max-height:70vh; }
.script-code-lines { min-width:max-content; margin:0; padding:1rem 1.5rem 1rem 4rem; color:#607487; background:#070c12; }
.script-code-lines li { padding-left:1rem; }
.script-code-lines code { color:#dbeafe; white-space:pre; font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.osw-regions-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.osw-regions-header h1 { margin:0; font-size:clamp(2rem,4vw,3.35rem); }
.osw-regions-header p { margin:0; color:var(--muted); }
.osw-regions-summary,.osw-mrtg-values { display:flex; overflow:hidden; border:1px solid var(--border); border-radius:11px; }
.osw-regions-summary > div,.osw-mrtg-values > div { min-width:90px; padding:9px 12px; text-align:center; background:rgba(255,255,255,.025); }
.osw-regions-summary > div + div,.osw-mrtg-values > div + div { border-left:1px solid var(--border); }
.osw-regions-summary strong,.osw-mrtg-values strong { display:block; font-size:1.2rem; }
.osw-regions-summary span,.osw-mrtg-values span { display:block; color:var(--muted); font-size:.65rem; text-transform:uppercase; }
.osw-regions-list { display:grid; gap:26px; }
.osw-region-card { overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(255,255,255,.028); box-shadow:0 20px 55px rgba(0,0,0,.18); }
.osw-region-top { display:grid; grid-template-columns:minmax(240px,34%) minmax(0,1fr); }
.osw-region-image { position:relative; min-height:310px; overflow:hidden; background:rgba(0,0,0,.24); }
.osw-region-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.osw-region-noimage { min-height:310px; display:grid; place-items:center; font-weight:800; opacity:.3; }
.osw-region-status { position:absolute; left:14px; bottom:14px; display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border-radius:20px; background:rgba(4,8,12,.86); font-size:.74rem; font-weight:700; }
.osw-region-status i { width:8px; height:8px; border-radius:50%; background:currentColor; }
.osw-region-status.online { color:#6ee7b7; } .osw-region-status.stale { color:#94a3b8; }
.osw-region-info { padding:24px; }
.osw-region-title { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.osw-region-title h2 { margin:0; font-size:1.55rem; }
.osw-region-grid { color:var(--muted); font-size:.82rem; word-break:break-all; }
.osw-region-live { min-width:105px; padding:12px 14px; border:1px solid rgba(56,189,248,.18); border-radius:11px; background:rgba(56,189,248,.09); text-align:center; }
.osw-region-live strong { display:block; font-size:1.75rem; }
.osw-region-live span { display:block; color:var(--muted); font-size:.68rem; }
.osw-region-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:17px; }
.osw-region-tags span { padding:5px 9px; border:1px solid var(--border); border-radius:7px; background:rgba(255,255,255,.035); font-size:.75rem; }
.osw-region-tags .rating { font-weight:800; }
.osw-region-description-box { margin-top:20px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.025); }
.osw-region-description-box h3 { margin:0 0 10px; color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.055em; }
.osw-region-description-text { line-height:1.7; font-size:.92rem; }
.osw-region-description-empty { color:var(--muted); font-size:.82rem; font-style:italic; }
.osw-region-tech { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:20px; overflow:hidden; border-radius:9px; background:var(--border); }
.osw-region-tech > div { padding:11px 12px; background:rgba(7,12,17,.8); }
.osw-region-tech > div.wide { grid-column:1/-1; }
.osw-region-tech span { display:block; color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.045em; }
.osw-region-tech strong { display:block; font-size:.82rem; word-break:break-word; }
.osw-region-mrtg { padding:20px 24px 22px; border-top:1px solid var(--border); background:rgba(0,0,0,.12); }
.osw-mrtg-header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:14px; }
.osw-mrtg-header h3,.osw-mrtg-header p { margin:0; } .osw-mrtg-header p { color:var(--muted); font-size:.73rem; }
.osw-mrtg-values .live { background:rgba(56,189,248,.09); }
.osw-mrtg-chart { overflow:hidden; padding:8px 8px 5px; border-radius:10px; background:rgba(0,0,0,.23); }
.osw-mrtg-svg { display:block; width:100%; height:auto; min-height:180px; color:var(--accent); }
.osw-mrtg-gridline { stroke:rgba(255,255,255,.065); stroke-width:1; vector-effect:non-scaling-stroke; }
.osw-mrtg-y-label { fill:rgba(255,255,255,.42); font-size:10px; }
.osw-mrtg-area { fill:currentColor; opacity:.11; }
.osw-mrtg-line { fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.osw-mrtg-current-line { stroke:currentColor; stroke-width:1.5; stroke-dasharray:5 5; opacity:.65; }
.osw-mrtg-current-dot { fill:currentColor; stroke:rgba(255,255,255,.8); stroke-width:1.5; }
.osw-mrtg-x-axis { display:flex; justify-content:space-between; padding:0 10px 4px 46px; color:var(--muted); font-size:.62rem; }
.osw-mrtg-note { margin-top:9px; color:var(--muted); font-size:.72rem; }
.site-footer { margin-top:3rem; border-top:1px solid var(--border); color:var(--muted); }
.footer-inner { display:flex; justify-content:space-between; gap:1rem; padding-block:1.5rem; }
.footer-links { display:flex; gap:1rem; }
@media (max-width:1180px) {
    .portal-layout { grid-template-areas:"left main" "right right"; grid-template-columns:220px minmax(0,1fr); }
    .portal-right { position:static; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
}
@media (max-width:900px) {
    .osw-region-top { grid-template-columns:1fr; } .osw-region-image { min-height:340px; }
    .script-library-header { align-items:stretch; flex-direction:column; } .script-search { width:100%; }
}
@media (max-width:760px) {
    .portal-layout { grid-template-areas:"main" "left" "right"; grid-template-columns:1fr; }
    .portal-left,.portal-right { position:static; } .portal-left { margin-top:8px; }
    .header-inner { flex-wrap:wrap; padding-block:.7rem; } .header-account { margin-left:0; width:100%; flex-wrap:wrap; }
    .feature-grid { grid-template-columns:1fr; } .feature-card { min-height:150px; }
    .forum-intro { align-items:stretch; flex-direction:column; }
    .forum-overview-stats { align-self:flex-start; }
    .forum-category-heading { align-items:flex-start; flex-direction:column; }
    .forum-board-row { grid-template-columns:38px minmax(0,1fr); padding-inline:1rem; }
    .forum-board-row:hover { padding-left:1rem; }
    .forum-board-icon { width:38px; height:38px; }
    .forum-board-open { display:none; }
}
@media (max-width:650px) {
    .header-inner,.main-inner,.footer-inner { width:min(calc(100% - 1rem),var(--content-width)); }
    .hero { padding:2rem 1.3rem; }
    .osw-regions-header,.osw-region-title,.osw-mrtg-header { align-items:stretch; flex-direction:column; }
    .osw-regions-summary,.osw-mrtg-values { width:100%; } .osw-regions-summary > div,.osw-mrtg-values > div { flex:1; min-width:0; }
    .osw-region-live { width:100%; text-align:left; } .osw-region-tech { grid-template-columns:1fr; }
    .osw-region-tech > div.wide { grid-column:auto; } .osw-region-info,.osw-region-mrtg { padding:16px; } .osw-region-image { min-height:250px; }
    .script-list-item { align-items:flex-start; flex-direction:column; } .script-open { width:100%; text-align:center; }
    .script-search { flex-direction:column; } .footer-inner { flex-direction:column; }
}


/* RANDOM REGIONS SIDEBAR */

.sidebar-random-regions {
    margin-top: 1rem;
}

.sidebar-random-regions h2 {
    margin: 0 0 .75rem;
    font-size: 1rem;
}

.sidebar-random-regions-list {
    display: grid;
    gap: .55rem;
}

.sidebar-random-region {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .45rem;
    border-radius: .6rem;
    text-decoration: none;
    background: rgba(255, 255, 255, .035);
    transition:
        background .18s ease,
        transform .18s ease;
}

.sidebar-random-region:hover {
    background: rgba(255, 255, 255, .07);
    transform: translateX(2px);
}

.sidebar-random-region-image {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    overflow: hidden;
    border-radius: .45rem;
    background: rgba(255, 255, 255, .05);
}

.sidebar-random-region-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sidebar-random-region-name {
    min-width: 0;
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

/* ENDE RANDOM REGIONS SIDEBAR */

