Files
AeroMc-Launcher/src/styles.css
T
2026-10-03 14:20:38 +00:00

723 lines
47 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* AeroMC – heller MultiMC-Native-Look */
:root{
--win:#f0f0f0; --area:#e2e2e2; --bar:#e9eaed;
--border:#c4c7cc; --border2:#d6d8dc;
--text:#1c1c1c; --dim:#6b7280;
--sel:#dce8f6; --sel-br:#3a6ea5; --link:#2c5aa0; --accent:#3a6ea5;
--danger:#c0392b; --play:#3a9c3a;
--font:"Segoe UI",Tahoma,system-ui,sans-serif;
--mono:Consolas,"Cascadia Mono",monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:var(--font);font-size:12px;color:var(--text);background:var(--win)}
body{display:grid;grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(0,1fr);height:100vh;overflow:hidden}
.hidden{display:none!important}
.mono{font-family:var(--mono);font-size:12px}
.spacer{flex:1}
.opt,.hint{color:var(--dim)}
[data-ic] svg,.ic svg{width:16px;height:16px}
/* ===================== DUNKLER MODUS (native, dunkelgrau) ===================== */
:root[data-theme="dark"]{
--win:#2d2d30; --area:#242426; --bar:#333337;
--border:#3f3f46; --border2:#3a3a40;
--text:#e4e4e6; --dim:#9a9aa2;
--sel:#0e639c; --sel-br:#1177bb; --link:#4ea6ff; --accent:#1177bb;
--danger:#e06c6c; --play:#5cb85c;
--input:#1e1e1e;
}
:root[data-theme="dark"] body{background:var(--win)}
:root[data-theme="dark"] .search-wrap input,
:root[data-theme="dark"] .field input,
:root[data-theme="dark"] .field select,
:root[data-theme="dark"] .field textarea,
:root[data-theme="dark"] .mods-search input,
:root[data-theme="dark"] .path-row input,
:root[data-theme="dark"] .login-usercode{background:#1e1e1e;color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .modal-card{background:#2d2d30;border-color:#161618}
:root[data-theme="dark"] .modal-head{background:#333337}
:root[data-theme="dark"] .modal-body{background:#2d2d30}
:root[data-theme="dark"] .modal-foot{background:#2a2a2e}
:root[data-theme="dark"] .advanced{background:#242426}
:root[data-theme="dark"] .mods-list,
:root[data-theme="dark"] .account-item,
:root[data-theme="dark"] .screen-thumb{background:#1e1e1e}
:root[data-theme="dark"] .mod-icon,
:root[data-theme="dark"] .account-av,
:root[data-theme="dark"] .icon-preview{background:#3a3a40}
:root[data-theme="dark"] .mod-item+.mod-item{border-color:#333}
:root[data-theme="dark"] .mod-item:hover{background:#2a2f36}
:root[data-theme="dark"] .btn{background:linear-gradient(#3b3b40,#303034);color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .btn:hover{background:linear-gradient(#44444b,#35353b);border-color:#5a5a63}
:root[data-theme="dark"] .btn:active{background:#2a2a2e}
:root[data-theme="dark"] .btn-primary{background:linear-gradient(#2a7ac0,#1f66a8);border-color:#1a5a95;color:#fff}
:root[data-theme="dark"] .btn-primary:hover{background:linear-gradient(#3286cc,#2470b4)}
:root[data-theme="dark"] .btn-danger{color:#e88;border-color:#6a3a3a}
:root[data-theme="dark"] .btn-danger:hover{background:#3a2626}
:root[data-theme="dark"] .tbtn:hover,
:root[data-theme="dark"] .sbtn:hover,
:root[data-theme="dark"] .card:hover{background:#37373d;border-color:var(--border)}
:root[data-theme="dark"] .card.sel{background:#0e639c;border-color:#1177bb}
:root[data-theme="dark"] .card.sel .card-name{background:#1177bb;color:#fff}
:root[data-theme="dark"] .st-row2{background:#2a2a2e}
:root[data-theme="dark"] .st-row,
:root[data-theme="dark"] .group-header,
:root[data-theme="dark"] .empty h2,
:root[data-theme="dark"] .mods-col h4,
:root[data-theme="dark"] .field>span{color:var(--text)}
:root[data-theme="dark"] #btn-console svg,:root[data-theme="dark"] #btn-search svg{color:#c8c8cc}
:root[data-theme="dark"] .acct-av svg{color:#c8c8cc}
:root[data-theme="dark"] .mods-filters select,
:root[data-theme="dark"] .mods-search select,
:root[data-theme="dark"] .mmc-bar select{background:#1e1e1e;color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .upd-notes{background:#1e1e1e;color:var(--text)}
:root[data-theme="dark"] .modal-close{color:#aaa}
:root[data-theme="dark"] .modal-close:hover{color:#fff}
:root[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#4a4a52;border-color:var(--area)}
/* ---------- Titelleiste (ersetzt die weiße Windows-Leiste) ---------- */
/* Farben passend zu TITELLEISTE in main.js (dort für die Fensterknöpfe) */
:root{--titel-bg:#f0f0f0;--titel-fg:#1c1c1c}
:root[data-theme="dark"]{--titel-bg:#2d2d30;--titel-fg:#e4e4e6}
.titelleiste{display:flex;align-items:center;gap:8px;height:32px;padding:0 150px 0 10px;background:var(--titel-bg);color:var(--titel-fg);-webkit-app-region:drag;user-select:none;font-size:12px}
.titel-logo{width:16px;height:16px;flex:none}
.titel-text{white-space:nowrap}
body.fenster-inaktiv .titelleiste>*{opacity:.55}
body.is-popout>.titelleiste{display:none}
/* ---------- Toolbar ---------- */
.toolbar{display:flex;align-items:center;gap:2px;padding:5px 8px;min-width:0;overflow:hidden;background:var(--win);border-bottom:1px solid var(--border)}
.tbtn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 10px;border:1px solid transparent;border-radius:3px;background:none;color:var(--text);cursor:pointer;font-family:inherit;font-size:12px}
.tbtn:hover{background:#e2e6ec;border-color:var(--border2)}
.tbtn:active{background:#d7dde5}
.tbtn svg{width:18px;height:18px;color:#4b5563}
/* farbige Toolbar-Icons wie in MultiMC */
#btn-new svg{color:#3a9c3a}
#btn-import svg{color:#3d7ab5}
#btn-open-dir svg{color:#d8a72f}
#btn-console svg{color:#5a6470}
#btn-account svg{color:#3a9c3a}
#btn-settings svg{color:#3d7ab5}
.tbtn.big{font-size:13px;padding:8px 16px;border:1px solid var(--border);background:linear-gradient(#fdfdfd,#e9e9e9)}
.tbsep{width:1px;height:24px;background:var(--border);margin:0 5px}
.tbgrow{flex:1}
.search-wrap input{padding:5px 9px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--text);font-size:12px;width:150px}
.search-wrap input:focus{outline:none;border-color:var(--accent)}
/* eingeklappt nur die Lupe, aufgeklappt nur das Feld */
.search-wrap{display:flex;align-items:center}
.search-wrap:not(.offen) input{display:none}
.search-wrap.offen .tb-lupe{display:none}
.search-wrap.offen input{animation:suche-auf .16s ease-out}
@keyframes suche-auf{from{width:0;opacity:0}}
.tbtn.tb-lupe{padding:6px 8px}
#btn-search svg{color:#5a6470}
/* ---------- Arbeitsbereich ---------- */
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 172px;overflow:hidden;min-width:0;background:var(--area)}
.list-area{position:relative;overflow:hidden;min-height:0}
/* Skin-Hintergrund (wie MultiMCs Katze) – liegt hinter den Instanzen */
.list-area::after{
content:'';position:absolute;right:24px;bottom:8px;width:52%;height:88%;
background-image:var(--bg-skin,none);background-repeat:no-repeat;
background-position:right bottom;background-size:contain;
opacity:var(--bg-skin-opacity,.55);pointer-events:none;z-index:0;
}
.list{position:relative;z-index:1;height:100%;min-height:100%;overflow:auto;padding:4px 8px}
.side{background:var(--win);border-left:1px solid var(--border);overflow-y:auto;overflow-x:hidden;padding:10px 8px}
.side-empty{text-align:center;color:var(--dim);padding:24px 8px}
.side-ico{width:52px;height:52px;margin:0 auto 5px;display:grid;place-items:center;font-size:38px}
.side-ico img{width:56px;height:56px;object-fit:cover;border-radius:3px}
.side-title{text-align:center;font-weight:600;font-size:14px;word-break:break-word}
.side-grp{text-align:center;color:var(--link);font-size:11px;margin-top:2px;cursor:pointer}
.side-grp:hover{text-decoration:underline}
.hr{height:1px;background:var(--border);margin:6px 2px}
.sbtn{display:block;width:100%;text-align:center;padding:5px 4px;border:1px solid transparent;border-radius:3px;background:none;cursor:pointer;font-family:inherit;font-size:12px;color:var(--text)}
.sbtn:hover{background:#e2e6ec;border-color:var(--border2)}
.sbtn:disabled{opacity:.5;cursor:default}
.sbtn:disabled:hover{background:none;border-color:transparent}
.sbtn.play{font-weight:600}
.sbtn.del:hover{color:var(--danger)}
/* ---------- Instanzliste / Gruppen / Kacheln ---------- */
.group-section{margin-bottom:2px}
.group-header{display:flex;align-items:center;gap:7px;padding:5px 4px 2px;color:#333;font-weight:600;font-size:12px;cursor:pointer;user-select:none}
.group-header::after{content:'';flex:1;height:1px;background:var(--border);margin-left:6px}
.group-header .chev{font-size:9px;color:#888;width:10px;text-align:center}
.group-header.collapsed .chev{transform:none}
.group-count{color:var(--dim);font-weight:400}
.group-grid{display:grid;grid-template-columns:repeat(auto-fill,104px);gap:2px;padding:0 4px 4px;justify-content:start}
.group-section.collapsed .group-grid{display:none}
.card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 4px;border:1px solid transparent;border-radius:2px;cursor:pointer;position:relative}
.card:hover{background:#e3ecf7}
.card.sel{background:var(--sel);border-color:var(--sel-br)}
.card-icon{width:60px;height:60px;display:grid;place-items:center;font-size:40px}
.card-icon svg,.side-ico svg{display:block}
.mc-texture-icon{display:block;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.card-icon-img{width:60px;height:60px;object-fit:cover;border-radius:3px}
.card-name{width:100%;max-width:88px;box-sizing:border-box;font-size:12px;text-align:center;line-height:1.25;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.sel .card-name{background:var(--sel-br);color:#fff;border-radius:2px}
.card-badges{display:none}
.card-play{display:none}
.group-header.drop-hover,.group-section.drop-hover{outline:1px dashed var(--accent);outline-offset:1px}
.card.dragging{opacity:.4}
/* Datei von außen übers Fenster gezogen (.jar/.mrpack/.zip) */
body.file-drop-active::after{
content:"Datei loslassen zum Importieren";
position:fixed;inset:0;z-index:9999;
display:flex;align-items:center;justify-content:center;
background:rgba(0,0,0,.55);
color:#fff;font-size:20px;font-weight:600;
border:3px dashed var(--accent);
pointer-events:none;
}
/* ---------- Leerer Zustand ---------- */
.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dim);gap:8px}
.empty h2{color:#333;margin:0}
.empty p{max-width:340px;margin:0 0 8px}
/* ---------- Statusleiste (zwei Zeilen) ---------- */
.statusbar{display:flex;flex-direction:column;min-width:0;background:var(--win);border-top:1px solid var(--border)}
.st-row{display:flex;justify-content:space-between;padding:3px 10px;font-size:11px;color:#333}
.st-row2{background:#e4e4e4;border-top:1px solid var(--border2);color:#444}
.auth-warn{
display:inline-flex;align-items:center;gap:6px;
color:#fff;background:var(--danger);
padding:1px 10px;border-radius:3px;font-weight:600;cursor:pointer;
animation:authpulse 2s ease-in-out infinite;
}
.auth-warn::before{content:'⚠';font-size:12px}
.auth-warn:hover{filter:brightness(1.12)}
@keyframes authpulse{0%,100%{opacity:1}50%{opacity:.72}}
/* ---------- Modals ---------- */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:50}
/* Bestätigungsdialog immer über anderen Dialogen (z. B. Screenshots) */
#modal-confirm,#modal-prompt{z-index:120}
.modal-card{width:560px;max-width:calc(100vw - 40px);max-height:calc(100vh - 60px);background:#f6f6f6;border:1px solid #a9a9a9;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden}
.modal-sm{width:420px}.modal-lg{width:820px}
#modal-settings .modal-card{width:960px;max-width:calc(100vw - 32px)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#e8e8e8;border-bottom:1px solid var(--border)}
.modal-head h3{margin:0;font-size:14px;font-weight:600}
.modal-close{background:none;border:none;color:#666;font-size:15px;cursor:pointer;line-height:1}
.modal-close:hover{color:#000}
.modal-body{padding:16px;overflow:auto;background:#f6f6f6}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:#efefef}
/* Popup-Fenster (Einstellungen/Konsole): Haupt-UI ausblenden, das eine Modal
füllt das ganze (rahmenlose) Fenster; der eigene Kopfbereich ersetzt die
native Titelleiste – per -webkit-app-region per Maus verschiebbar */
body.is-popout>header.toolbar,body.is-popout>main.workspace,body.is-popout>footer.statusbar{display:none}
.popout-host{position:static;inset:auto;background:none;display:block}
/* !important: schlägt auch die spezifischere #modal-settings-Breitenregel oben */
.popout-host .modal-card{width:100%!important;max-width:none!important;height:100vh!important;max-height:none!important;border:none;border-radius:0;box-shadow:none;margin:0}
/* Inhalt soll die restliche Fensterhöhe füllen (scrollen statt Leerraum unter dem Fuß) */
.popout-host .modal-body{flex:1 1 auto;min-height:0}
/* Konsole/Logs/Screenshots haben einen einzelnen scrollbaren Kasten mit
fester Höhe (für den normalen Dialog gedacht) – im Popup-Fenster soll der
stattdessen die volle verbleibende Höhe ausfüllen statt Leerraum darunter
zu lassen */
#modal-console.popout-host .modal-body,
#modal-logs.popout-host .modal-body,
#modal-screens.popout-host .modal-body,
#modal-servers.popout-host .modal-body,
#modal-mods.popout-host .modal-body,
#modal-record.popout-host .modal-body{display:flex;flex-direction:column}
.popout-host .console-out,
#modal-logs.popout-host .crash-voll,
.popout-host .mods-list,
.popout-host .record-stage{flex:1 1 auto;height:auto;max-height:none;min-height:0}
/* Screenshots/Aufzeichnungen NICHT auf die volle Fensterhöhe zwingen (Grid-
Zeilen strecken sich sonst nicht mit, es bliebe bei wenigen Einträgen ein
großer sichtbar leerer Kasten stehen) - nur die feste 460px-Deckelung
aufheben, damit bei VIELEN Einträgen trotzdem mehr Platz genutzt wird */
.popout-host .screens-grid{max-height:none}
/* Mods-Fenster: die aktive Ansicht (Katalog/Installiert) muss selbst ein
Flex-Container werden, damit ihre eigene Liste (.mods-list) die Regel oben
nutzen und den restlichen Platz füllen kann */
#modal-mods.popout-host #m-pane-catalog,
#modal-mods.popout-host #m-pane-installed{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.popout-host .modal-head{-webkit-app-region:drag;cursor:default}
.popout-host .modal-head button,.popout-host .modal-head input,.popout-host .modal-head select{-webkit-app-region:no-drag}
/* Formular */
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field>span{font-size:12px;color:#333}
.field input,.field select,.field textarea{padding:6px 8px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--text);font-family:inherit;font-size:13px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field textarea{resize:vertical}
.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row .field{flex:1 1 0;min-width:0}
.field-icon{max-width:210px;min-width:0}
.backup-select-field{margin-top:14px;margin-bottom:0}
.backup-select-field select{width:100%}
.hint{font-size:12px}
.path-row{display:flex;gap:8px}
.path-row input{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--text);font-family:inherit;font-size:13px}
.advanced{border:1px solid var(--border);border-radius:3px;padding:12px 14px 2px;margin-top:4px;background:#fbfbfb}
.advanced legend{color:var(--dim);font-size:12px;padding:0 6px}
.version-row{display:flex;gap:8px}.version-row #f-version-type{max-width:120px}.version-row #f-version{flex:1}
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:3px;margin-top:6px;
width:100%;max-width:100%;max-height:132px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}
.icon-choice{display:flex;align-items:center;justify-content:center;padding:2px;border:1px solid transparent;border-radius:3px;background:none;cursor:pointer;min-width:0;overflow:hidden}
.icon-choice img{width:24px;height:24px;display:block;object-fit:contain;image-rendering:auto}
.icon-choice:hover{background:rgba(128,128,128,.18)}
.icon-choice.on{border-color:var(--accent);background:var(--sel)}
.icon-choice svg{display:block}
.icon-custom{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.icon-preview{width:34px;height:34px;border-radius:3px;overflow:hidden;background:#e4e4e4;border:1px solid var(--border)}
.icon-preview img{width:100%;height:100%;object-fit:cover}
.appinfo{margin-top:8px;font-size:12px;color:var(--dim);line-height:1.6}
.about-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:0 0 18px;padding:6px 0 14px;border-bottom:1px solid var(--border2);text-align:center}
.about-logo{width:56px;height:56px;border-radius:12px}
.about-name{font-size:18px;font-weight:600}
/* Buttons in Dialogen */
.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:3px;background:linear-gradient(#fdfdfd,#e9e9e9);color:var(--text);cursor:pointer;font-family:inherit;font-size:12px}
.btn:hover{background:linear-gradient(#ffffff,#e2e2e2);border-color:#9aa0a8}
.btn:active{background:#dcdcdc}
.btn:disabled{opacity:.5;cursor:default}
.btn svg{width:15px;height:15px}
.btn-primary{background:linear-gradient(#5a9be0,#3a7bc8);border-color:#2f6bb0;color:#fff}
.btn-primary:hover{background:linear-gradient(#69a8ea,#3f83d2)}
.btn-danger{color:var(--danger);border-color:#cbb0ac}
.btn-danger:hover{background:#f7e9e7;border-color:#c0392b}
.btn-lg{padding:9px 18px;font-size:13px}
.btn-mini{padding:4px 8px;font-size:11px}
/* Badges (dezent) */
.badge{font-size:10px;padding:1px 6px;border-radius:2px;background:#e2e2e2;color:#555;border:1px solid var(--border)}
/* Detail-Kopf (Mods/Login) */
.detail-head{display:flex;align-items:center;gap:12px}
.detail-icon{font-size:28px}
.detail-sub{color:var(--dim);font-size:12px;margin-top:2px}
/* Mods */
.mods-body{min-height:420px}
.mods-warn{background:#fdecea;border:1px solid #e0b4b0;color:#a5342a;border-radius:3px;padding:10px 12px;margin-bottom:12px}
.mods-search{display:flex;gap:8px;margin-bottom:10px;align-items:stretch}
.mods-search select{
flex:0 0 auto;min-width:140px;max-width:180px;
padding:7px 10px;border:1px solid var(--border);border-radius:3px;
background:var(--input,#fff);color:var(--text);
font-family:inherit;font-size:12px;
}
.mods-search select:focus{outline:none;border-color:var(--accent)}
.mods-filters{display:flex;gap:8px;margin-bottom:12px}
.mods-filters select{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:3px;background:var(--input,#fff);color:var(--text);font-family:inherit;font-size:12px}
.mods-filters select:focus{outline:none;border-color:var(--accent)}
#m-more{display:block;width:100%;margin-top:8px}
.mods-search input{flex:1;padding:7px 10px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--text)}
.mods-search input:focus{outline:none;border-color:var(--accent)}
.mods-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mods-col h4{margin:0 0 8px;font-size:12px;color:#333;font-weight:600;display:flex;align-items:center;gap:6px}
.mods-tabs{display:flex;gap:2px;margin-bottom:10px;border-bottom:1px solid var(--border)}
.mtab{padding:7px 14px;border:1px solid transparent;border-bottom:none;border-radius:3px 3px 0 0;background:none;color:var(--dim);cursor:pointer;font-family:inherit;font-size:12px;margin-bottom:-1px}
.mtab:hover{color:var(--text)}
.mtab.on{color:var(--text);background:var(--bar);border-color:var(--border);font-weight:600}
.mods-list{height:340px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border);border-radius:3px;background:#fff;padding:6px}
.mods-empty{color:var(--dim);text-align:center;padding:24px 8px;font-size:12px}
.mod-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:3px;max-width:100%;overflow:hidden}
.mod-item.clickable{cursor:pointer}
.mod-item.installing{opacity:.6}
.mod-item+.mod-item{border-top:1px solid #eee}
.mod-item:hover{background:#f0f4f8}
.mod-icon{width:38px;height:38px;border-radius:3px;flex:none;background:#e4e4e4;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:18px}
.mod-info{flex:1;min-width:0}
.mod-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mod-desc{font-size:12px;color:var(--dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mod-meta{font-size:11px;color:var(--dim);margin-top:2px}
.mod-new{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:9px;font-size:10px;font-weight:600;background:#2f7d32;color:#fff;vertical-align:middle}
.mod-off{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:9px;font-size:10px;font-weight:600;background:#6b6b6b;color:#fff;vertical-align:middle}
.crash-kern{margin:10px 0;padding:10px 12px;border-left:3px solid #c0392b;background:rgba(192,57,43,.08);border-radius:0 4px 4px 0}
.crash-zeile{display:flex;gap:8px;margin-bottom:5px;font-size:12px;line-height:1.45}
.crash-zeile:last-child{margin-bottom:0}
.crash-titel{flex:0 0 132px;color:var(--dim)}
.crash-wert{flex:1;word-break:break-word}
.crash-verlauf{margin:0;font-family:var(--mono);font-size:11px;line-height:1.5;color:var(--dim);white-space:pre-wrap;word-break:break-all}
.skin-vorschau{display:flex;gap:14px;margin-top:12px}
.skin-spalte{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.skin-label{font-size:11px;color:var(--dim)}
.skin-bild{height:300px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:rgba(0,0,0,.15);padding:6px;text-align:center;overflow:hidden}
/* Die gerenderte Figur soll das Feld ausfüllen; eine rohe 64x64-Textur wird
ohne Weichzeichnen vergrößert, damit sie nicht verschwommen wirkt. */
.skin-bild img{max-width:100%;max-height:100%;image-rendering:pixelated}
.skin-bild canvas{max-width:100%;max-height:100%;cursor:grab}
.skin-bild canvas:active{cursor:grabbing}
.popout-host .skin-bild{height:240px}
.skin-umhang{margin-top:12px;padding-top:10px;border-top:1px solid var(--border2)}
.skin-umhang .field-row{margin-top:6px}
.skin-umhang .field{margin-bottom:6px}
.skin-umhang-aero{display:flex;align-items:center;gap:8px;min-height:30px;flex-wrap:wrap}
.crash-details{margin-top:12px}
.crash-details summary{cursor:pointer;font-size:12px;color:var(--dim)}
.crash-voll{max-height:320px;overflow:auto;margin-top:8px;padding:10px;background:rgba(0,0,0,.25);border-radius:4px;font-family:var(--mono);font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.mod-aus .mod-name,.mod-aus .mod-meta{opacity:.55}
.mod-aus .mod-icon{filter:grayscale(1);opacity:.6}
.mod-action{flex:none}
/* Import */
.import-pane{min-height:180px}
.import-copy{margin:0 0 10px;font-size:13px;line-height:1.5}
/* MultiMC-Import */
.mmc-bar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.mmc-bar select{padding:6px 8px;border:1px solid var(--border);border-radius:3px;background:var(--input,#fff);color:var(--text);font-family:inherit;font-size:12px}
.mmc-bar select:focus{outline:none;border-color:var(--accent)}
.mmc-item{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:3px}
.mmc-item+.mmc-item{border-top:1px solid var(--border2)}
.mmc-item:hover{background:rgba(128,128,128,.10)}
.mmc-item input{width:16px;height:16px;flex:none}
.mmc-name{font-weight:600;font-size:13px}
.mmc-meta{font-size:11px;color:var(--dim)}
/* Bedrock */
.bd-actions{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.bd-meta{font-size:11px;color:var(--dim);margin-top:2px}
/* Login / Konten */
.login-code{text-align:center}
.login-link{color:var(--link);font-size:15px;display:inline-block;margin-bottom:12px;cursor:pointer;text-decoration:none}
.login-link:hover{text-decoration:underline}
.login-usercode{font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:3px;color:#222;background:#fff;border:1px solid var(--border);border-radius:4px;padding:12px;margin:6px 0 12px}
.login-error{color:var(--danger)!important;font-weight:600}
.account-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.account-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:3px;background:#fff;border:1px solid var(--border)}
.account-item.active{border-color:var(--accent)}
.account-av{width:34px;height:34px;border-radius:3px;flex:none;background:#e4e4e4;display:flex;align-items:center;justify-content:center;font-size:18px}
img.account-av{object-fit:cover;image-rendering:auto}
.account-main{flex:1;min-width:0}
.account-name{font-weight:600}
.account-tag{font-size:11px;color:var(--link)}
.account-actions{display:flex;gap:6px}
.account-empty{color:var(--dim);text-align:center;padding:10px}
/* Screenshots */
.screens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;max-height:460px;overflow:auto}
.screen-thumb{border:1px solid var(--border);border-radius:3px;overflow:hidden;background:#fff;cursor:pointer;position:relative}
.screen-thumb img{width:100%;height:100px;object-fit:cover;display:block}
.screen-thumb .screen-name{font-size:11px;color:var(--dim);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.screen-thumb .screen-del{position:absolute;top:4px;right:4px;opacity:0;background:var(--danger);color:#fff;border:none;border-radius:3px;width:24px;height:24px;cursor:pointer}
.screen-thumb:hover .screen-del{opacity:1}
.screen-thumb.selected{outline:2px solid var(--sel-br);outline-offset:1px;background:var(--sel)}
.screen-thumb .screen-check{position:absolute;top:4px;left:4px;width:18px;height:18px;margin:0;cursor:pointer;z-index:2}
.screens-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.screens-toolbar .hint{font-size:11px}
.screens-empty{color:var(--dim);text-align:center;padding:30px;grid-column:1/-1}
.record-thumb-img-wrap{position:relative}
.record-thumb-img-wrap img{background:#000}
.record-thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;text-shadow:0 1px 4px rgba(0,0,0,.7);pointer-events:none}
.record-thumb-size{font-size:10px;color:var(--dim);padding:0 6px 4px}
/* Freunde */
.tb-badge{display:inline-block;min-width:16px;height:16px;padding:0 4px;margin-left:6px;border-radius:8px;background:#d9453c;color:#fff;font-size:11px;font-weight:600;line-height:16px;text-align:center;box-sizing:border-box}
#modal-friends .field-row{margin-bottom:14px}
#modal-friends .field-row input{flex:1}
/* ---- Spielzeit-Statistik: Kennzahlen + Balken pro Instanz ---- */
:root{--stat-bar:#3a6ea5}
:root[data-theme="dark"]{--stat-bar:#3d8fe0}
.stats-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.stat-tile{border:1px solid var(--border);border-radius:4px;padding:8px 10px;min-width:0}
.stat-tile .stat-label{font-size:11px;color:var(--dim)}
.stat-tile .stat-value{font-size:18px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-tile .stat-sub{font-size:11px;color:var(--dim);line-height:1.35}
.stats-list{display:flex;flex-direction:column;gap:2px}
.stat-row{display:grid;grid-template-columns:minmax(0,38%) 1fr auto;align-items:center;gap:10px;padding:5px 4px;border-radius:3px}
.stat-row:hover{background:var(--sel)}
.stat-name{min-width:0}
.stat-name b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-name span{font-size:11px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.stat-track{height:8px}
.stat-bar{height:8px;background:var(--stat-bar);border-radius:0 4px 4px 0;min-width:2px}
.stat-value-cell{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:92px}
.popout-host .stats-list{max-height:none}
/* Clip-Modus-Leiste im Aufzeichnungsfenster */
.clip-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--border);border-radius:4px;background:var(--area)}
.clip-bar.aktiv{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.clip-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:600;user-select:none}
.clip-switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.clip-switch-track{position:relative;width:32px;height:18px;border-radius:9px;background:var(--border);transition:background .15s}
.clip-switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35);transition:left .15s}
.clip-switch input:checked + .clip-switch-track{background:var(--accent)}
.clip-switch input:checked + .clip-switch-track .clip-switch-knob{left:16px}
.clip-switch input:focus-visible + .clip-switch-track{outline:2px solid var(--accent);outline-offset:2px}
.clip-length{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.clip-length select{padding:3px 6px;border:1px solid var(--border);border-radius:3px;background:var(--input,#fff);color:var(--text);font-family:inherit;font-size:12px}
.clip-length select:disabled{opacity:.6}
.clip-status{flex:1;min-width:200px;font-size:12px;color:var(--dim)}
.clip-bar.aktiv .clip-status{color:var(--text)}
.clip-bar.aktiv .clip-status::before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--danger);vertical-align:1px;animation:rec-pulse 1.6s infinite}
/* ---- Absturz-Assistent ---- */
.crash-hilfe{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.crash-hilfe-titel{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.03em}
.crash-fund{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:4px;background:var(--area)}
.crash-fund-text{flex:1;min-width:0}
.crash-fund-text b{display:block;font-size:13px;margin-bottom:3px}
.crash-fund-text span{font-size:12px;color:var(--dim);line-height:1.45}
.crash-fund .btn{flex:0 0 auto;align-self:center}
.crash-fund.erledigt{border-left-color:var(--play)}
.crash-unklar{padding:10px 12px;border:1px dashed var(--border);border-radius:4px;font-size:12px;color:var(--dim)}
/* ---- Instanz teilen ---- */
.share-code-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--accent);border-radius:4px;background:var(--area);margin:10px 0}
.share-code{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:.12em;user-select:all}
.share-warn{color:var(--danger)}
.share-code-input{text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}
.share-preview{margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:4px;background:var(--area)}
.share-preview b{font-size:14px}
.share-preview .hint{margin:4px 0 0}
/* ---- Kurznachrichten ---- */
.friends-chat{display:flex;flex-direction:column;gap:8px;height:100%;min-height:340px}
.chat-head{display:flex;align-items:center;gap:10px}
.chat-head b{font-size:13px}
.chat-verlauf{flex:1;min-height:200px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border);border-radius:4px;background:var(--area)}
.popout-host .chat-verlauf{max-height:none}
.chat-leer{margin:auto;font-size:12px;color:var(--dim);text-align:center}
.chat-blase{max-width:78%;padding:6px 10px;border-radius:10px;font-size:12.5px;line-height:1.4;word-break:break-word;background:var(--win);border:1px solid var(--border);align-self:flex-start}
.chat-blase.ich{align-self:flex-end;background:var(--accent);border-color:var(--accent);color:#fff}
.chat-zeit{display:block;font-size:10px;opacity:.65;margin-top:2px}
.chat-schnell{display:flex;flex-wrap:wrap;gap:6px}
.chat-btn{position:relative}
.chat-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#e5484d;color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center}
.report-liste{margin:6px 0 10px;padding-left:20px;font-size:12px;line-height:1.6}
/* ---- Auswahl-Dialog ---- */
.wahl-liste{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}
.popout-host .wahl-liste{max-height:none}
.wahl-option{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:4px;background:var(--area);color:var(--text);font-family:inherit;text-align:left;cursor:pointer}
.wahl-option:hover{border-color:var(--accent)}
.wahl-option.an{border-color:var(--accent);background:var(--sel)}
.wahl-option:disabled{opacity:.5;cursor:default}
.wahl-bild{width:26px;height:26px;flex:0 0 auto}
.wahl-label{display:flex;flex-direction:column;min-width:0}
.wahl-label b{font-size:13px;font-weight:600}
.wahl-label small{font-size:11px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ---- Schnellstart-Taste auf der Kachel ---- */
.card{position:relative}
.card-taste{position:absolute;top:4px;right:4px;padding:1px 5px;border-radius:3px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;line-height:14px}
/* ---- Bilder im Chat ---- */
.chat-bild{display:block;max-width:100%;max-height:180px;border-radius:6px;margin-bottom:3px;cursor:zoom-in}
.screen-thumb .screen-teilen{right:32px;background:var(--accent)}
.friends-section-title{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.03em;margin:10px 0 6px}
.friend-row{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:3px}
.friend-row:hover{background:var(--sel,rgba(0,0,0,.04))}
.friend-dot{width:9px;height:9px;border-radius:50%;background:#8a8a8a;flex:0 0 auto}
.friend-dot.online{background:#3bb54a}
.friend-avatar{width:28px;height:28px;border-radius:4px;flex:0 0 auto;background:#1e1e1e;object-fit:contain}
.friend-info{flex:1;min-width:0}
.friend-name{font-size:13px}
.friend-status{font-size:11px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friends-empty{color:var(--dim);font-size:12px;padding:8px 4px}
/* Spielaufzeichnung */
.record-search{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 0;color:var(--dim)}
.record-stage{display:flex;flex-direction:column;gap:10px}
.record-video{width:100%;flex:1 1 auto;min-height:360px;background:#000;border-radius:4px;object-fit:contain}
.record-toolbar{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.record-live-badge{display:flex;align-items:center;gap:8px;color:var(--danger);font-size:13px;font-weight:600}
#record-timer{font-variant-numeric:tabular-nums}
.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:rec-pulse 1s infinite}
@keyframes rec-pulse{0%,100%{opacity:1}50%{opacity:.25}}
.record-audio-bar{display:flex;align-items:center;gap:10px;padding:2px 2px}
.record-mic-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.record-source-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.record-source-row .checkbox-field{margin-bottom:0;flex:1;min-width:0;font-size:13px;gap:6px}
.record-vol{width:110px}
/* Konsole (dunkel wie ein Log) */
.console-out{height:440px;overflow:auto;margin:0;background:#1e1e1e;border:1px solid var(--border);border-radius:3px;padding:10px;font-family:var(--mono);font-size:12px;color:#d4d4d4;white-space:pre-wrap;word-break:break-word;line-height:1.5}
.log-line{white-space:pre-wrap}
.log-error{color:#f48771}.log-warn{color:#dcdcaa}.log-info{color:#569cd6}
/* Einstellungen */
.settings-body{display:flex;padding:0;min-height:0;background:var(--area)}
.settings-nav{width:190px;flex:none;background:linear-gradient(180deg,var(--bar),rgba(128,128,128,.08));border-right:1px solid var(--border);padding:14px 10px;display:flex;flex-direction:column;gap:4px}
.settings-nav-label{padding:2px 10px 8px;color:var(--dim);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.snav{text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:none;color:var(--text);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,transform .15s}
.snav:hover{background:rgba(128,128,128,.12)}
.snav.on{background:var(--sel);border-color:var(--sel-br);color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.settings-content{flex:1;padding:20px 22px;overflow:auto}
.settings-hero{margin-bottom:18px}
.settings-hero h4{margin:0 0 6px;font-size:20px;font-weight:700}
.settings-hero p{margin:0;color:var(--dim);font-size:13px;line-height:1.5}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.settings-grid-stack{grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-card{background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:12px;padding:16px 16px 12px;box-shadow:0 1px 0 rgba(255,255,255,.5)}
.settings-card h5{margin:0 0 14px;font-size:13px;font-weight:700;color:var(--text)}
.settings-card-wide{grid-column:span 2}
.settings-card .field:last-child,.settings-card .checkbox-field:last-of-type{margin-bottom:0}
.settings-kv{display:grid;gap:10px}
.settings-kv-row{display:flex;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--border2)}
.settings-kv-row:last-child{padding-bottom:0;border-bottom:none}
.settings-kv-label{color:var(--dim);font-size:12px}
.settings-kv-value{text-align:right;font-weight:600;font-size:12px;word-break:break-word}
.appinfo{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;font-size:12px;line-height:1.6}
.appinfo-item{padding:10px 12px;border:1px solid var(--border2);border-radius:10px;background:rgba(128,128,128,.06)}
.appinfo-item.full{grid-column:span 2}
.appinfo-label{display:block;color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.appinfo-value{display:block;margin-top:4px;font-weight:600;word-break:break-word}
.info-card{max-width:760px}
.info-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--border2)}
.info-status{font-size:12px;color:var(--dim)}
.modal-sep{border-top:1px solid var(--border2)}
.info-meta{margin-top:10px}
.info-meta .settings-kv-row{align-items:center}
.info-meta .settings-kv-label{text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.info-meta .settings-kv-value{text-align:left;font-size:13px;font-weight:600}
.info-meta-link{color:var(--link);text-decoration:none}
.info-meta-link:hover{text-decoration:underline}
.spane h4{margin:0 0 14px;font-size:14px;font-weight:600}
.status-ok{color:#2e8b2e!important;font-weight:600}
.status-bad{color:var(--danger)!important;font-weight:600}
:root[data-theme="dark"] .status-ok{color:#5cd65c!important}
.checkbox-field{display:flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer;font-size:13px}
.checkbox-field input{width:16px;height:16px}
.field-port{max-width:110px;flex:none}
:root[data-theme="dark"] .settings-body{background:#252528}
:root[data-theme="dark"] .settings-nav{background:linear-gradient(180deg,#2f2f34,#242428)}
:root[data-theme="dark"] .settings-card{background:rgba(30,30,30,.88);border-color:#3b3b42;box-shadow:none}
:root[data-theme="dark"] .settings-kv-row{border-bottom-color:#36363c}
:root[data-theme="dark"] .about-brand{border-bottom-color:#36363c}
:root[data-theme="dark"] .appinfo-item{background:rgba(255,255,255,.03);border-color:#36363c}
:root[data-theme="dark"] .info-meta-link{color:#7fc7ff}
@media (max-width: 900px){
#modal-settings .modal-card{max-width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
.settings-body{flex-direction:column;min-height:0}
.settings-nav{width:auto;border-right:none;border-bottom:1px solid var(--border);padding:10px;flex-direction:row;flex-wrap:wrap}
.settings-nav-label{width:100%;padding:0 4px 6px}
.snav{flex:1 1 150px}
.settings-content{padding:16px}
.settings-grid,.settings-grid-stack{grid-template-columns:1fr}
.settings-card-wide{grid-column:auto}
.appinfo{grid-template-columns:1fr}
.appinfo-item.full{grid-column:auto}
.field-row{flex-direction:column;gap:0}
.path-row{flex-direction:column}
}
/* Popup-Fenster sind eigenständige, meist schmalere Fenster -- die
Zeilenumbruch-Regel oben ist für die (deutlich breitere) Haupt-App gedacht
und soll hier nicht greifen (sonst z. B. Version/Icon im Instanz-Fenster
untereinander statt nebeneinander) */
.is-popout .field-row{flex-direction:row}
.is-popout .path-row{flex-direction:row}
/* Konto-Button mit 3D-Skin-Kopf */
.acct-btn{gap:8px}
.acct-av{display:inline-flex;align-items:center;justify-content:center}
.acct-av svg{width:18px;height:18px;color:#4b5563}
.acct-head{width:24px;height:26px;object-fit:contain;image-rendering:auto;margin-top:-2px;margin-bottom:-2px}
/* Update-Dialog */
.upd-version{display:flex;align-items:center;justify-content:center;gap:12px;margin:4px 0 14px;font-size:15px}
.upd-old{color:var(--dim)}
.upd-arrow{color:var(--dim)}
.upd-newv{font-weight:700;color:var(--accent)}
.upd-channel{margin:-6px 0 12px;text-align:center}
.upd-notes{max-height:180px;overflow:auto;background:var(--input,#fff);border:1px solid var(--border);border-radius:3px;padding:10px 12px;font-size:12px;white-space:pre-wrap;margin-bottom:12px}
.upd-progress{margin:10px 0}
.upd-bar{height:8px;background:var(--border2);border-radius:4px;overflow:hidden}
.upd-bar-fill{height:100%;width:0;background:var(--accent);transition:width .2s}
.backup-progress{margin-top:12px}
.backup-progress-bar{height:10px;background:var(--border2);border-radius:999px;overflow:hidden}
.backup-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#3a7bc8,#5aa1e6);transition:width .2s;background-size:220% 100%}
.backup-progress-fill-busy{animation:backup-progress-shift 1.2s linear infinite}
.backup-progress-text{margin-top:6px}
@keyframes backup-progress-shift{
from{background-position:0 0}
to{background-position:220% 0}
}
/* Kontextmenü (Rechtsklick auf Instanz) */
.ctx{
position:fixed;z-index:200;min-width:210px;padding:4px;
background:var(--win);border:1px solid var(--border);border-radius:4px;
box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.ctx-item{
display:block;width:100%;text-align:left;padding:6px 12px;
border:none;border-radius:3px;background:none;color:var(--text);
font-family:inherit;font-size:12px;cursor:pointer;white-space:nowrap;
}
.ctx-item:hover{background:var(--sel);color:var(--text)}
.ctx-item:disabled{opacity:.45;cursor:default;background:none}
.ctx-strong{font-weight:600}
.ctx-danger:hover{background:var(--danger);color:#fff}
.ctx-sep{height:1px;background:var(--border);margin:4px 6px}
/* Toast */
.toast{position:fixed;bottom:42px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 16px;border-radius:4px;box-shadow:0 6px 20px rgba(0,0,0,.4);z-index:100;font-size:13px}
.toast.err{background:#a5342a}
/* Scrollbars (hell) */
::-webkit-scrollbar{width:14px;height:14px}
::-webkit-scrollbar-thumb{background:#c1c1c1;border:3px solid var(--area);border-radius:7px}
::-webkit-scrollbar-thumb:hover{background:#a8a8a8}
/* ===================== Skin-Editor ===================== */
#modal-skineditor .se-karte{width:1100px;max-width:calc(100vw - 32px);height:760px;max-height:calc(100vh - 40px)}
.se-modus{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--bar)}
.se-modus-btn{padding:5px 14px;border:none;background:none;color:var(--dim);font:inherit;font-size:12px;cursor:pointer}
.se-modus-btn+.se-modus-btn{border-left:1px solid var(--border)}
.se-modus-btn:hover{color:var(--text)}
.se-modus-btn.on{background:var(--accent);color:#fff;font-weight:600}
.se-body{display:grid;grid-template-columns:200px minmax(0,1fr) 270px;gap:14px;flex:1 1 auto;min-height:0;overflow:hidden;padding:12px 14px}
.se-werkzeuge{display:flex;flex-direction:column;gap:14px;overflow:auto;min-height:0;padding-right:2px}
.se-gruppe{display:flex;flex-direction:column;gap:6px}
.se-titel{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dim)}
.se-tools{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.se-tool{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1px solid var(--border);border-radius:4px;background:var(--bar);color:var(--text);font:inherit;font-size:11px;cursor:pointer}
.se-tool svg{width:18px;height:18px}
.se-tool:hover:not(:disabled){border-color:var(--sel-br)}
.se-tool.on{background:var(--sel);border-color:var(--sel-br);font-weight:600}
.se-tool:disabled{opacity:.4;cursor:default}
.se-farbzeile{display:flex;gap:6px;align-items:center}
.se-farbzeile input[type=color]{width:42px;height:30px;padding:0 2px;border:1px solid var(--border);border-radius:4px;background:var(--bar);cursor:pointer}
.se-farbzeile input[type=text]{flex:1;min-width:0;height:30px;padding:0 8px;border:1px solid var(--border);border-radius:4px;font-family:var(--mono);font-size:12px;background:#fff;color:var(--text)}
:root[data-theme="dark"] .se-farbzeile input[type=text]{background:#1e1e1e}
.se-zuletzt{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}
.se-farbfeld{aspect-ratio:1;border:1px solid rgba(0,0,0,.25);border-radius:3px;cursor:pointer;padding:0}
.se-farbfeld:hover{transform:scale(1.12)}
.se-farbfeld.on{outline:2px solid var(--sel-br);outline-offset:1px}
.se-ebenen{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.se-ebene{padding:6px 4px;border:none;background:var(--bar);color:var(--dim);font:inherit;font-size:12px;cursor:pointer}
.se-ebene+.se-ebene{border-left:1px solid var(--border)}
.se-ebene.on{background:var(--sel);color:var(--text);font-weight:600}
.se-check{display:flex;align-items:center;gap:6px;cursor:pointer}
.se-check input{margin:0}
.se-check:has(input:disabled){opacity:.5;cursor:default}
.se-feld{display:flex;flex-direction:column;gap:3px}
.se-feld select{height:28px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--text);font:inherit}
:root[data-theme="dark"] .se-feld select{background:#1e1e1e}
.se-undo{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.se-undo .btn{justify-content:center}
.se-gruppe>.btn-mini{align-self:flex-start}
.se-mitte{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0}
.se-buehne{flex:1 1 auto;min-height:0;position:relative;border:1px solid var(--border);border-radius:6px;background:var(--area);overflow:hidden}
.se-info{min-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.se-seite{display:flex;flex-direction:column;gap:6px;min-height:0}
.se-mini{position:relative;height:320px;border:1px solid var(--border);border-radius:6px;background:var(--area);overflow:hidden}
.se-tipp{margin:4px 0 0;line-height:1.45}
.se-ansicht{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.se-ansicht canvas{display:block}
.se-2d canvas{cursor:crosshair;border-radius:2px}
.se-3d canvas{cursor:grab}
.se-3d canvas:active{cursor:grabbing}
.se-2d[data-werkzeug="pipette"] canvas{cursor:copy}
.se-3d-leer{position:absolute}
.se-ablage{display:none}
.se-u2d canvas{cursor:crosshair}
.se-u2d[data-werkzeug="pipette"] canvas{cursor:copy}
.se-fuss{align-items:center}
.se-status{flex:1;min-width:0;margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}