diff --git a/assets/css/forum-style.css b/assets/css/forum-style.css index 5e1090a..8f282b5 100644 --- a/assets/css/forum-style.css +++ b/assets/css/forum-style.css @@ -1,8 +1,8 @@ -/* Shop Orders (Profil) */ -.wbf-shop-orders-list { +/* Shop Orders (Profil) — scoped unter .wbf-wrap für korrekte CSS-Variablen & Spezifität */ +.wbf-wrap .wbf-shop-orders-list { margin-top: 1.2rem; } -.wbf-shop-orders-table { +.wbf-wrap .wbf-shop-orders-table { width: 100%; border-collapse: collapse; background: var(--c-surface); @@ -11,27 +11,30 @@ box-shadow: var(--shadow-sm); font-size: .97em; } -.wbf-shop-orders-table th, .wbf-shop-orders-table td { +.wbf-wrap .wbf-shop-orders-table th, +.wbf-wrap .wbf-shop-orders-table td { padding: .65em 1em; border-bottom: 1px solid var(--c-border); } -.wbf-shop-orders-table th { - background: var(--c-surface2); - color: var(--c-text-dim); - font-weight: 600; - font-size: .93em; - text-transform: uppercase; - letter-spacing: .04em; +.wbf-wrap .wbf-shop-orders-table th { + background: var(--c-surface2) !important; + color: var(--c-text-dim) !important; + font-weight: 600 !important; + font-size: .93em !important; + text-transform: uppercase !important; + letter-spacing: .04em !important; + padding: .65em 1em !important; + border-bottom: 1px solid var(--c-border) !important; } -.wbf-shop-orders-table tr:last-child td { border-bottom: none; } -.wbf-shop-order-row { +.wbf-wrap .wbf-shop-orders-table tr:last-child td { border-bottom: none; } +.wbf-wrap .wbf-shop-order-row { cursor: pointer; transition: background .15s; } -.wbf-shop-order-row:hover { +.wbf-wrap .wbf-shop-order-row:hover { background: var(--c-primary-l); } -.wbf-shop-order-details-inner { +.wbf-wrap .wbf-shop-order-details-inner { background: var(--c-bg2); border-radius: var(--radius-sm); padding: 1em 1.2em; @@ -40,16 +43,17 @@ color: var(--c-text); font-size: .98em; } -.wbf-shop-order-cancelled td, .wbf-shop-order-cancelled .wbf-shop-order-details-inner { +.wbf-wrap .wbf-shop-order-cancelled td, +.wbf-wrap .wbf-shop-order-cancelled .wbf-shop-order-details-inner { color: var(--c-danger); text-decoration: line-through; opacity: .7; } -.wbf-shop-order-details { +.wbf-wrap .wbf-shop-order-details { background: var(--c-surface2); transition: display .2s; } -.wbf-shop-order-toggle { +.wbf-wrap .wbf-shop-order-toggle { background: var(--c-surface2); border: 1px solid var(--c-border); color: var(--c-muted); @@ -59,7 +63,7 @@ cursor: pointer; transition: background .15s, color .15s; } -.wbf-shop-order-toggle:hover { +.wbf-wrap .wbf-shop-order-toggle:hover { background: var(--c-primary-l); color: var(--c-primary); } @@ -665,186 +669,229 @@ a.wbf-btn--primary:hover { padding-top: 1rem; border-top: 1px solid var(--c-border); } -/* ── Verbindungen / Connection Cards ────────────────────────────────────── */ -.wbf-connection-card { - display: grid; - grid-template-columns: 56px 1fr; - grid-template-rows: auto auto; - gap: 0 1.1rem; - padding: 1.4rem 1.25rem; - border-bottom: 1px solid var(--c-border); - transition: background .15s; +/* ── Service Connection Cards (wbf-svc-*) ─────────────────────────── */ +.wbf-svc-list { + display: flex; + flex-direction: column; + gap: 0; } -.wbf-connection-card:last-child { border-bottom: none; } -.wbf-connection-card:hover { background: rgba(255,255,255,.025); } -.wbf-connection-card__icon { - grid-column: 1; - grid-row: 1 / 3; - width: 48px; - height: 48px; - border-radius: 12px; - border: 1px solid transparent; +/* Individual card */ +.wbf-svc-card { + border-bottom: 1px solid var(--c-border); + transition: background .12s; +} +.wbf-svc-card:last-child, +.wbf-svc-card--last { border-bottom: none; } +.wbf-svc-card:hover { background: rgba(255,255,255,.015); } + +/* Main row: icon + info + actions */ +.wbf-svc-card__row { + display: flex; + align-items: center; + gap: .9rem; + padding: .9rem 1.1rem; +} + +/* Service icon */ +.wbf-svc-icon { + width: 36px; height: 36px; + border-radius: 9px; display: flex; align-items: center; justify-content: center; - font-size: 1.35rem; - align-self: center; + font-size: .95rem; + flex-shrink: 0; + border: 1px solid transparent; +} +.wbf-svc-icon--mc { + background: rgba(0,180,216,.12); + border-color: rgba(0,180,216,.25); + color: var(--c-primary); +} +.wbf-svc-icon--discord { + background: rgba(88,101,242,.14); + border-color: rgba(88,101,242,.28); + color: #7289da; } -/* Titelzeile — rechts oben */ -.wbf-connection-card__head { - grid-column: 2; - grid-row: 1; - display: flex; - align-items: center; - gap: .6rem; - margin-bottom: .5rem; -} - -.wbf-connection-card__body { +/* Info column */ +.wbf-svc-info { flex: 1; min-width: 0; + display: flex; + flex-direction: column; + gap: .18rem; } - -.wbf-connection-card__title { - font-weight: 700; - font-size: .92rem; - color: var(--c-text); - line-height: 1; -} - -.wbf-connection-card__desc { - font-size: .82rem; - color: var(--c-muted); - line-height: 1.55; - margin-bottom: .85rem; -} - -/* Content-Bereich — grid row 2, rechte Spalte */ -.wbf-connection-card__content { - grid-column: 2; - grid-row: 2; -} - -/* Plugin-Output normalisieren */ -.wbf-connection-card__content p { - font-size: .8rem; - color: var(--c-muted); - line-height: 1.5; - margin: 0 0 .7rem; - font-weight: 400 !important; -} -.wbf-connection-card__content label { - display: block; - font-size: .75rem; - font-weight: 600; - color: var(--c-text-dim); - text-transform: uppercase; - letter-spacing: .04em; - margin-bottom: .35rem; -} -.wbf-connection-card__content .wbf-mc-row, -.wbf-connection-card__content > form, -.wbf-connection-card__content > div { +.wbf-svc-info__top { display: flex; align-items: center; - gap: .55rem; + gap: .5rem; + flex-wrap: wrap; +} +.wbf-svc-name { + font-size: .88rem; + font-weight: 700; + color: var(--c-text); + white-space: nowrap; +} +.wbf-svc-desc { + font-size: .75rem; + color: var(--c-muted); + line-height: 1.4; +} + +/* Status badge */ +.wbf-svc-badge { + display: inline-flex; + align-items: center; + gap: .25rem; + font-size: .68rem; + font-weight: 700; + padding: 2px 7px; + border-radius: 20px; + white-space: nowrap; + letter-spacing: .02em; +} +.wbf-svc-badge--on { + background: rgba(22,163,74,.12); + color: #16a34a; + border: 1px solid rgba(22,163,74,.25); +} +.wbf-svc-badge--off { + background: rgba(148,163,184,.1); + color: var(--c-muted); + border: 1px solid rgba(148,163,184,.2); +} + +/* Linked user pill */ +.wbf-svc-linked-user { + display: inline-flex; + align-items: center; + gap: .35rem; + font-size: .78rem; + font-weight: 600; + color: var(--c-text); + background: rgba(0,180,216,.08); + border: 1px solid rgba(0,180,216,.2); + padding: 2px 8px 2px 5px; + border-radius: 20px; +} +.wbf-svc-linked-user--discord { + background: rgba(88,101,242,.1); + border-color: rgba(88,101,242,.22); + color: #7289da; +} +.wbf-svc-linked-user i { font-size: .75rem; } + +/* Actions */ +.wbf-svc-actions { + display: flex; + align-items: center; + gap: .4rem; + flex-shrink: 0; flex-wrap: wrap; } -/* Input + Button auf einer Linie halten */ -.wbf-connect-row { - display: flex !important; - align-items: center !important; - gap: .55rem !important; - flex-wrap: nowrap !important; +/* Status message */ +.wbf-svc-msg { + font-size: .78rem; + min-height: 0; + padding: 0; } -.wbf-connect-row input[type="text"] { - flex: 1 1 0; - min-width: 0; - max-width: none !important; -} -.wbf-connect-row button, -.wbf-connect-row .wbf-btn { - flex-shrink: 0; - white-space: nowrap; +.wbf-svc-msg:not(:empty) { padding: 0 1.1rem .4rem; } + +/* Expandable form area */ +.wbf-svc-card__form { + padding: .75rem 1.1rem .9rem 3.35rem; /* align with text, after icon */ + border-top: 1px solid rgba(255,255,255,.05); + background: rgba(0,0,0,.12); } -/* Alle Verknüpfen-Buttons in Connection-Cards vereinheitlichen */ -.wbf-connection-card__content .wbf-btn, -.wbf-connection-card__content button:not(.wbf-bb-spoiler__btn) { - padding: .5rem 1rem !important; - font-size: .83rem !important; - font-weight: 600 !important; - height: 2.25rem !important; - line-height: 1 !important; - display: inline-flex !important; - align-items: center !important; - gap: .4rem !important; - border-radius: var(--radius-sm) !important; - border: 1.5px solid transparent !important; - cursor: pointer !important; - font-family: inherit !important; - transition: var(--transition) !important; - white-space: nowrap !important; -} -/* Primär (Verknüpfen / Code senden) */ -.wbf-connection-card__content .wbf-btn--primary, -.wbf-connection-card__content button.wbf-btn--primary { - background: var(--c-primary) !important; - color: #fff !important; - border-color: var(--c-primary) !important; - box-shadow: 0 0 10px rgba(0,180,216,.25) !important; -} -.wbf-connection-card__content .wbf-btn--primary:hover { - background: var(--c-primary-d) !important; - border-color: var(--c-primary-d) !important; -} -/* Ghost (Zurück / Trennen) */ -.wbf-connection-card__content .wbf-btn--ghost, -.wbf-connection-card__content button.wbf-btn--ghost { - background: transparent !important; - color: var(--c-text-dim) !important; - border-color: var(--c-border-d) !important; -} -.wbf-connection-card__content .wbf-btn--ghost:hover { - border-color: var(--c-primary) !important; - color: var(--c-primary) !important; -} -/* MC-Plugin: dessen Button via content selector normalisieren */ -.wbf-connection-card__content input[type="submit"], -.wbf-connection-card__content .mc-connect-btn { - padding: .5rem 1rem !important; - height: 2.25rem !important; - font-size: .83rem !important; - font-weight: 600 !important; - background: var(--c-primary) !important; - color: #fff !important; - border: 1.5px solid var(--c-primary) !important; - border-radius: var(--radius-sm) !important; - cursor: pointer !important; - font-family: inherit !important; - white-space: nowrap !important; - display: inline-flex !important; - align-items: center !important; -} -.wbf-connection-card__content input[type="text"] { - flex: 1; - min-width: 160px; - max-width: 280px; - padding: .45rem .75rem; +/* Token box */ +.wbf-svc-token-box { + background: var(--c-surface2); border: 1px solid var(--c-border); - border-radius: var(--radius-sm, 6px); - background: var(--c-bg); - color: var(--c-text); - font-size: .88rem; + border-radius: var(--radius-sm); + padding: .75rem 1rem; } -.wbf-connection-card__content input[type="text"]:focus { +.wbf-svc-token-box__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: .5rem; + font-size: .78rem; + color: var(--c-muted); + margin-bottom: .45rem; + flex-wrap: wrap; +} +.wbf-svc-token-box__header code { + color: var(--c-primary); + font-size: .82rem; + font-weight: 700; +} +.wbf-svc-token-code { + display: block; + font-size: 1.5rem; + letter-spacing: .3em; + font-weight: 800; + color: var(--c-accent); + font-family: 'Courier New', monospace; +} + +/* Form inputs inside svc card */ +.wbf-svc-card__form input[type="text"], +.wbf-svc-card__form input[type="password"] { + background: var(--c-bg2); + border: 1.5px solid var(--c-border-d); + border-radius: var(--radius-sm); + padding: .45rem .75rem; + font-family: inherit; + font-size: .84rem; + color: var(--c-text); + transition: var(--transition); + width: 100%; + max-width: 280px; +} +.wbf-svc-card__form input:focus { outline: none; border-color: var(--c-primary); - box-shadow: 0 0 0 3px rgba(0,180,216,.15); + box-shadow: 0 0 0 3px rgba(0,180,216,.12); } +.wbf-svc-card__form .wbf-connect-row { + display: flex; + align-items: center; + gap: .5rem; + flex-wrap: wrap; +} +.wbf-svc-card__form label { + display: block; + font-size: .7rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: .05em; + color: var(--c-text-dim); + margin-bottom: .3rem; +} +.wbf-svc-card__form p { + font-size: .78rem; + color: var(--c-muted); + margin: 0 0 .5rem; + line-height: 1.45; +} + +/* Keep old connection card classes for backwards compat / filter output */ +.wbf-connection-badge { + display: inline-flex; + align-items: center; + gap: .3rem; + font-size: .7rem; + font-weight: 600; + padding: 2px 8px; + border-radius: 20px; +} +.wbf-connection-badge--connected { color: #16a34a; background: rgba(22,163,74,.12); border: 1px solid rgba(22,163,74,.25); } +.wbf-connection-badge--disconnected { color: var(--c-muted); background: rgba(148,163,184,.08); border: 1px solid var(--c-border); } .wbf-connection-card__content button, .wbf-connection-card__content .wbf-btn { white-space: nowrap; @@ -4285,4 +4332,1228 @@ select.wbf-cf-input option { background: var(--c-surface2); color: var(--c-text) margin-top: 10px; font-size: .82rem; text-align: center; +} +/* ═══════════════════════════════════════════════════════════════════════ + PROFIL REDESIGN v2 — Modern Premium Dark + Überschreibt alle bestehenden .wbf-profile-* Styles gezielt + ═══════════════════════════════════════════════════════════════════════ */ + +/* ── Layout ────────────────────────────────────────────────────────────── */ +.wbf-wrap .wbf-profile-layout { + grid-template-columns: 285px 1fr; + gap: 1.5rem; + align-items: start; +} + +/* ── SIDEBAR ───────────────────────────────────────────────────────────── */ +.wbf-wrap .wbf-profile-sidebar { + position: sticky; + top: 68px; + border-radius: 16px; + background: linear-gradient(175deg, #1c2236 0%, #161b2c 60%, #131829 100%); + border: 1px solid rgba(0,180,216,.18); + box-shadow: + 0 12px 40px rgba(0,0,0,.5), + inset 0 1px 0 rgba(255,255,255,.06), + 0 0 0 0.5px rgba(0,180,216,.08); + overflow: hidden; + align-items: stretch; + text-align: center; +} + +/* Banner */ +.wbf-wrap .wbf-profile-banner { + height: 150px; + border-radius: 0; + position: relative; + overflow: hidden; +} +.wbf-wrap .wbf-profile-banner__img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} +.wbf-wrap .wbf-profile-banner__placeholder { + width: 100%; + height: 100%; + background: + radial-gradient(ellipse 80% 100% at 20% 60%, rgba(0,180,216,.35) 0%, transparent 55%), + radial-gradient(ellipse 60% 80% at 85% 25%, rgba(100,60,220,.28) 0%, transparent 50%), + linear-gradient(135deg, #0a1628 0%, #0f1f3a 40%, #141028 70%, #0a1225 100%); +} +.wbf-wrap .wbf-profile-banner__placeholder::after { + content: ''; + position: absolute; + inset: 0; + background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2300b4d8' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + opacity: .6; +} +.wbf-wrap .wbf-banner-upload-btn { + position: absolute; + bottom: 10px; + right: 10px; + width: 34px; + height: 34px; + border-radius: 50%; + background: rgba(0,0,0,.6); + backdrop-filter: blur(8px); + border: 1px solid rgba(255,255,255,.2); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + font-size: .82rem; + cursor: pointer; + transition: all .2s; + z-index: 2; +} +.wbf-wrap .wbf-banner-upload-btn:hover { + background: rgba(0,180,216,.55); + border-color: var(--c-primary); + transform: scale(1.1); + box-shadow: 0 0 16px rgba(0,180,216,.4); +} + +/* Avatar */ +.wbf-wrap .wbf-profile-sidebar__avatar-wrap { + margin-top: -58px; + padding-bottom: 0; + z-index: 2; + display: flex; + justify-content: center; + position: relative; +} +.wbf-wrap .wbf-profile-sidebar__avatar-wrap::before { + content: ''; + position: absolute; + top: -4px; + width: 120px; + height: 120px; + border-radius: 50%; + background: conic-gradient(from 0deg, #00b4d8, #6366f1, #a78bfa, #00b4d8); + animation: wbf-ring-spin 6s linear infinite; + opacity: .75; + z-index: -1; +} +@keyframes wbf-ring-spin { to { transform: rotate(360deg); } } + +.wbf-wrap .wbf-profile-sidebar__avatar { + width: 108px; + height: 108px; + border-radius: 50%; + border: 4px solid #161b2c; + object-fit: cover; + box-shadow: + 0 0 0 1px rgba(0,180,216,.3), + 0 8px 28px rgba(0,0,0,.6); + display: block; + position: relative; + z-index: 1; +} +.wbf-wrap .wbf-avatar-upload-btn { + position: absolute; + bottom: 4px; + right: calc(50% - 62px); + width: 30px; + height: 30px; + border-radius: 50%; + background: var(--c-primary); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + font-size: .72rem; + cursor: pointer; + z-index: 3; + box-shadow: 0 2px 8px rgba(0,0,0,.4); + transition: transform .2s, background .2s; + border: 2px solid #161b2c; +} +.wbf-wrap .wbf-avatar-upload-btn:hover { + transform: scale(1.12); + background: var(--c-primary-d); +} + +/* Identity */ +.wbf-wrap .wbf-profile-sidebar__identity { + padding: .85rem 1.25rem .7rem; + border-bottom: 1px solid rgba(255,255,255,.06); + gap: .3rem; + align-items: center; +} +.wbf-wrap .wbf-profile-sidebar__identity h2 { + font-size: 1.1rem; + font-weight: 800; + color: #fff; + letter-spacing: -.02em; + margin: 0; +} +.wbf-wrap .wbf-profile-sidebar__username { + font-size: .76rem; + color: rgba(255,255,255,.38); + letter-spacing: .01em; +} +.wbf-wrap .wbf-profile-online-badge { + display: inline-flex; + align-items: center; + gap: .35rem; + font-size: .73rem; + font-weight: 700; + color: #22c55e; + background: rgba(34,197,94,.1); + border: 1px solid rgba(34,197,94,.2); + border-radius: 20px; + padding: .2rem .65rem; + letter-spacing: .02em; +} +.wbf-wrap .wbf-profile-online-dot { + width: 7px; + height: 7px; + border-radius: 50%; + background: #22c55e; + box-shadow: 0 0 8px rgba(34,197,94,.9); + animation: wbf-pulse-grn 2s infinite; + flex-shrink: 0; +} +@keyframes wbf-pulse-grn { + 0%, 100% { box-shadow: 0 0 5px rgba(34,197,94,.8); } + 50% { box-shadow: 0 0 12px rgba(34,197,94,.5); } +} +.wbf-wrap .wbf-profile-lastseen { + font-size: .72rem; + color: rgba(255,255,255,.3); + display: flex; + align-items: center; + gap: .3rem; +} + +/* Stats */ +.wbf-wrap .wbf-profile-sidebar__stats { + background: rgba(0,0,0,.18); + border-bottom: 1px solid rgba(255,255,255,.05); +} +.wbf-wrap .wbf-profile-sidebar__stat { + padding: 1rem .5rem; + position: relative; +} +.wbf-wrap .wbf-profile-sidebar__stat:first-child { + border-right: 1px solid rgba(255,255,255,.06); +} +.wbf-wrap .wbf-profile-sidebar__stat span { + font-size: 1.5rem; + font-weight: 800; + color: var(--c-primary); + line-height: 1; + text-shadow: 0 0 20px rgba(0,180,216,.5); +} +.wbf-wrap .wbf-profile-sidebar__stat em { + font-style: normal; + font-size: .62rem; + color: rgba(255,255,255,.3); + text-transform: uppercase; + letter-spacing: .08em; + display: block; + margin-top: .3rem; +} + +/* Sections (Bio, Sig, Custom Fields) */ +.wbf-wrap .wbf-profile-sidebar__section { + padding: .9rem 1.25rem; + border-bottom: 1px solid rgba(255,255,255,.05); + text-align: left; +} +.wbf-wrap .wbf-profile-sidebar__section:last-child { + border-bottom: none; +} +.wbf-wrap .wbf-profile-sidebar__section-label { + font-size: .64rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: .1em; + color: var(--c-primary); + margin-bottom: .45rem; + display: flex; + align-items: center; + gap: .35rem; + opacity: .85; +} +.wbf-wrap .wbf-profile-sidebar__section p, +.wbf-wrap .wbf-profile-sidebar__bio-text, +.wbf-wrap .wbf-profile-sidebar__sig { + font-size: .8rem; + color: rgba(255,255,255,.5); + line-height: 1.6; + margin: 0; +} + +/* ── TAB NAVIGATION (Pill Style) ───────────────────────────────────────── */ +.wbf-wrap .wbf-profile-tabs { + display: flex; + gap: 3px; + margin-bottom: 1.25rem; + border-bottom: none; + padding: 4px; + background: rgba(0,0,0,.25); + border: 1px solid rgba(255,255,255,.07); + border-radius: 12px; + overflow-x: auto; + scrollbar-width: none; + flex-wrap: wrap; +} +.wbf-wrap .wbf-profile-tabs::-webkit-scrollbar { display: none; } + +.wbf-wrap .wbf-profile-tab { + display: inline-flex; + align-items: center; + gap: .4rem; + padding: .55rem 1rem; + font-size: .8rem; + font-weight: 600; + color: rgba(255,255,255,.38); + text-decoration: none; + border-radius: 8px; + border-bottom: none; + margin-bottom: 0; + white-space: nowrap; + transition: color .15s, background .15s, box-shadow .15s; + letter-spacing: .01em; + flex-shrink: 0; +} +.wbf-wrap .wbf-profile-tab:hover { + color: rgba(255,255,255,.7); + background: rgba(255,255,255,.06); + border-bottom-color: transparent; +} +.wbf-wrap .wbf-profile-tab.active { + color: #fff; + background: rgba(0,180,216,.18); + border-bottom-color: transparent; + box-shadow: + 0 0 16px rgba(0,180,216,.2), + inset 0 1px 0 rgba(0,180,216,.25), + 0 1px 0 rgba(0,180,216,.1); +} +.wbf-wrap .wbf-profile-tab.active i { + color: var(--c-primary); + filter: drop-shadow(0 0 4px rgba(0,180,216,.6)); +} +.wbf-wrap .wbf-profile-tab i { + font-size: .78rem; +} + +/* ── CONTENT CARDS ─────────────────────────────────────────────────────── */ +.wbf-wrap .wbf-profile-main { + display: flex; + flex-direction: column; + gap: 1.1rem; +} +.wbf-wrap .wbf-profile-card { + border-radius: 14px; + background: linear-gradient(175deg, #1c2236 0%, #171c2d 100%); + border: 1px solid rgba(255,255,255,.07); + box-shadow: 0 4px 24px rgba(0,0,0,.35); + overflow: hidden; + transition: border-color .2s, box-shadow .2s; +} +.wbf-wrap .wbf-profile-card:hover { + border-color: rgba(0,180,216,.2); + box-shadow: 0 6px 32px rgba(0,0,0,.4), 0 0 0 1px rgba(0,180,216,.06); +} +.wbf-wrap .wbf-profile-card__header { + padding: .9rem 1.4rem; + font-size: .73rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: .09em; + color: rgba(255,255,255,.4); + border-bottom: 1px solid rgba(255,255,255,.06); + background: rgba(0,0,0,.2); + display: flex; + align-items: center; + gap: .5rem; +} +.wbf-wrap .wbf-profile-card__header i { + color: var(--c-primary); + filter: drop-shadow(0 0 4px rgba(0,180,216,.5)); + font-size: .85rem; +} +.wbf-wrap .wbf-profile-card__body { + padding: 1.4rem; +} + +/* ── PROFILE EDIT FORM ─────────────────────────────────────────────────── */ +.wbf-wrap .wbf-profile-edit-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: .75rem 1.25rem; +} +.wbf-wrap .wbf-form-row label { + font-size: .68rem; + letter-spacing: .07em; + color: rgba(255,255,255,.38); +} +.wbf-wrap .wbf-form-row input[type="text"], +.wbf-wrap .wbf-form-row input[type="email"], +.wbf-wrap .wbf-form-row input[type="password"], +.wbf-wrap .wbf-form-row input[type="url"], +.wbf-wrap .wbf-form-row textarea, +.wbf-wrap .wbf-form-row select, +.wbf-wrap .wbf-cf-input { + background: rgba(0,0,0,.3); + border-color: rgba(255,255,255,.1); + border-radius: 8px; + color: rgba(255,255,255,.85); + transition: border-color .15s, box-shadow .15s, background .15s; +} +.wbf-wrap .wbf-form-row input:focus, +.wbf-wrap .wbf-form-row textarea:focus, +.wbf-wrap .wbf-form-row select:focus, +.wbf-wrap .wbf-cf-input:focus { + background: rgba(0,180,216,.04); + border-color: rgba(0,180,216,.45); + box-shadow: 0 0 0 3px rgba(0,180,216,.1), 0 0 16px rgba(0,180,216,.08); +} + +/* ── AKTIVITÄT — Post Items ────────────────────────────────────────────── */ +.wbf-wrap .wbf-profile-post-item { + padding: .75rem 1.4rem; + border-bottom: 1px solid rgba(255,255,255,.045); + transition: background .15s; +} +.wbf-wrap .wbf-profile-post-item:hover { + background: rgba(0,180,216,.04); +} +.wbf-wrap .wbf-profile-post-item__title { + color: var(--c-primary); + font-size: .84rem; + font-weight: 600; +} +.wbf-wrap .wbf-profile-post-item__time { + color: rgba(255,255,255,.28); + font-size: .68rem; +} + +/* ── SHOP TABLE ─────────────────────────────────────────────────────────── */ +.wbf-wrap .wbf-shop-orders-table { + background: transparent; + border-radius: 10px; + overflow: hidden; + border: 1px solid rgba(255,255,255,.07); +} +.wbf-wrap .wbf-shop-orders-table th, +.wbf-wrap .wbf-shop-orders-table td { + padding: .8em 1.1em; + border-bottom: 1px solid rgba(255,255,255,.06); +} +.wbf-wrap .wbf-shop-orders-table th { + background: rgba(0,0,0,.25) !important; + color: rgba(255,255,255,.38) !important; + font-weight: 700 !important; + font-size: .68rem !important; + text-transform: uppercase !important; + letter-spacing: .09em !important; + padding: .75em 1.1em !important; + border-bottom: 1px solid rgba(255,255,255,.08) !important; +} +.wbf-wrap .wbf-shop-order-row:hover { + background: rgba(0,180,216,.06); +} + +/* ── DM + IGNORE BUTTON (auf fremdem Profil) ──────────────────────────── */ +.wbf-wrap .wbf-profile-main > div[style*="justify-content:flex-end"] { + gap: .6rem; + margin-bottom: 1rem; + padding: .85rem 1.25rem; + background: rgba(0,0,0,.2); + border: 1px solid rgba(255,255,255,.06); + border-radius: 12px; + justify-content: flex-end; +} + +/* ── Responsive ────────────────────────────────────────────────────────── */ +@media (max-width: 900px) { + .wbf-wrap .wbf-profile-layout { + grid-template-columns: 1fr; + } + .wbf-wrap .wbf-profile-sidebar { + position: static; + border-radius: 14px; + } + .wbf-wrap .wbf-profile-sidebar__avatar-wrap::before { + display: none; + } + .wbf-wrap .wbf-profile-edit-grid { + grid-template-columns: 1fr; + } + .wbf-wrap .wbf-profile-tabs { + flex-wrap: nowrap; + overflow-x: auto; + } +} +@media (max-width: 480px) { + .wbf-wrap .wbf-profile-tab { + padding: .5rem .7rem; + font-size: .76rem; + } + .wbf-wrap .wbf-profile-card__body { + padding: 1rem; + } +} + +/* ═══════════════════════════════════════════════════════════════════════ */ + +/* ══════════════════════════════════════════════════════════════════════ + PROFIL v4 — Neues Design (wbf-pv-*) + ══════════════════════════════════════════════════════════════════════ */ + +/* ── Outer wrapper ──────────────────────────────────────────────────── */ +.wbf-pv { + display: flex; + flex-direction: column; + gap: 0; + border-radius: var(--radius); + overflow: hidden; + box-shadow: var(--shadow-lg); +} + +/* ── HERO ─────────────────────────────────────────────────────────────── */ +.wbf-pv-hero { + background: var(--c-surface); + border: 1px solid var(--c-border); + border-bottom: none; + border-radius: var(--radius) var(--radius) 0 0; + overflow: hidden; +} + +/* Banner */ +.wbf-pv-banner { + position: relative; + width: 100%; + height: 220px; + overflow: hidden; + background: linear-gradient(135deg, #060d1a 0%, #0a1628 40%, #061830 60%, #040b14 100%); +} +.wbf-pv-banner__placeholder { + width: 100%; height: 100%; + background: + linear-gradient(135deg, #060d1a 0%, #0d1f3c 40%, #071626 70%, #040c18 100%); + position: relative; +} +/* subtle animated particle-like grid on placeholder */ +.wbf-pv-banner__placeholder::before { + content: ''; + position: absolute; inset: 0; + background-image: + radial-gradient(circle at 20% 50%, rgba(0,180,216,.18) 0%, transparent 50%), + radial-gradient(circle at 80% 30%, rgba(72,202,228,.12) 0%, transparent 45%), + radial-gradient(circle at 55% 80%, rgba(0,96,199,.1) 0%, transparent 40%); + animation: wbf-banner-breathe 6s ease-in-out infinite alternate; +} +@keyframes wbf-banner-breathe { + from { opacity: .7; } + to { opacity: 1; } +} +.wbf-pv-banner__img { + width: 100%; height: 100%; + object-fit: cover; + display: block; + transition: transform .4s ease; +} +.wbf-pv-banner:hover .wbf-pv-banner__img { transform: scale(1.02); } +.wbf-pv-banner__overlay { + position: absolute; inset: 0; + background: linear-gradient(to bottom, + transparent 30%, + rgba(10,18,30,.55) 70%, + rgba(10,18,30,.9) 100%); + pointer-events: none; +} +.wbf-pv-banner__upload { + position: absolute; + bottom: 14px; right: 14px; + display: inline-flex; + align-items: center; + gap: .4rem; + padding: .4rem .85rem; + background: rgba(0,0,0,.55); + backdrop-filter: blur(8px); + border: 1px solid rgba(255,255,255,.18); + border-radius: 20px; + color: rgba(255,255,255,.85); + font-size: .75rem; + font-weight: 600; + cursor: pointer; + transition: background .2s, border-color .2s, color .2s; + letter-spacing: .02em; + z-index: 11; +} +.wbf-pv-banner__upload:hover { + background: rgba(0,180,216,.45); + border-color: var(--c-primary); + color: #fff; +} + +/* Identity row: sits below banner, avatar overlaps */ +.wbf-pv-identity-row { + display: flex; + align-items: flex-end; + gap: 1.25rem; + padding: 0 1.75rem 1.5rem; + margin-top: -50px; + position: relative; + z-index: 2; + flex-wrap: wrap; +} + +/* Avatar */ +.wbf-pv-avatar-wrap { + position: relative; + flex-shrink: 0; + margin-bottom: .15rem; +} +.wbf-pv-avatar-ring { + width: 110px; height: 110px; + border-radius: 50%; + padding: 3px; + background: linear-gradient(135deg, var(--c-primary) 0%, #48cae4 50%, #6366f1 100%); + box-shadow: 0 0 24px rgba(0,180,216,.4), 0 4px 14px rgba(0,0,0,.5); +} +.wbf-pv-avatar { + width: 100%; height: 100%; + border-radius: 50%; + object-fit: cover; + display: block; + border: 3px solid var(--c-surface); + background: var(--c-bg2); +} +.wbf-pv-online-dot { + position: absolute; + bottom: 6px; right: 6px; + width: 16px; height: 16px; + border-radius: 50%; + background: #22c55e; + border: 3px solid var(--c-surface); + box-shadow: 0 0 10px rgba(34,197,94,.8); + animation: wbf-pulse-green 2s infinite; +} +.wbf-pv-avatar-cam { + position: absolute; + inset: 3px; + border-radius: 50%; + background: rgba(0,0,0,.6); + backdrop-filter: blur(3px); + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: .95rem; + cursor: pointer; + opacity: 0; + transition: opacity .18s; +} +.wbf-pv-avatar-wrap:hover .wbf-pv-avatar-cam { opacity: 1; } + +/* Identity text */ +.wbf-pv-identity { + flex: 1; + min-width: 0; + padding-bottom: .25rem; +} +.wbf-pv-name { + font-size: 1.6rem; + font-weight: 800; + color: #fff; + margin: 0 0 .35rem; + letter-spacing: -.02em; + text-shadow: 0 2px 12px rgba(0,0,0,.5); + line-height: 1.1; +} +.wbf-pv-meta { + display: flex; + align-items: center; + gap: .5rem; + flex-wrap: wrap; + margin-bottom: .6rem; +} +.wbf-pv-username { + font-size: .82rem; + color: var(--c-muted); + font-weight: 500; +} +.wbf-pv-online-badge { + display: inline-flex; + align-items: center; + gap: .3rem; + font-size: .72rem; + font-weight: 700; + color: #22c55e; + background: rgba(34,197,94,.12); + border: 1px solid rgba(34,197,94,.28); + padding: 2px 8px; + border-radius: 20px; +} +.wbf-pv-online-pulse { + width: 6px; height: 6px; + border-radius: 50%; + background: #22c55e; + box-shadow: 0 0 5px rgba(34,197,94,.9); + animation: wbf-pulse 2s infinite; + flex-shrink: 0; +} +.wbf-pv-lastseen { + font-size: .75rem; + color: var(--c-muted); + display: inline-flex; + align-items: center; + gap: .3rem; +} +/* Stats pills */ +.wbf-pv-stats-row { + display: flex; + align-items: center; + gap: .5rem; +} +.wbf-pv-stat { + display: flex; + flex-direction: column; + gap: .05rem; +} +.wbf-pv-stat span { + font-size: 1.05rem; + font-weight: 700; + color: var(--c-primary); + line-height: 1; + text-shadow: 0 0 12px rgba(0,180,216,.4); +} +.wbf-pv-stat em { + font-style: normal; + font-size: .62rem; + text-transform: uppercase; + letter-spacing: .07em; + color: var(--c-muted); +} +.wbf-pv-stat-sep { + width: 1px; + height: 28px; + background: rgba(255,255,255,.1); + margin: 0 .25rem; +} + +/* Actions */ +.wbf-pv-actions { + display: flex; + gap: .5rem; + align-items: center; + flex-wrap: wrap; + margin-bottom: .25rem; + margin-left: auto; +} + +/* ── TABS BAR ────────────────────────────────────────────────────────── */ +.wbf-pv-tabs-bar { + display: flex; + background: var(--c-surface2); + border: 1px solid var(--c-border); + border-top: none; + border-bottom: none; + padding: 0 1.25rem; + overflow-x: auto; + scrollbar-width: none; + gap: 0; +} +.wbf-pv-tabs-bar::-webkit-scrollbar { display: none; } +.wbf-pv-tab { + display: inline-flex; + align-items: center; + gap: .4rem; + padding: .85rem 1rem; + font-size: .83rem; + font-weight: 600; + color: var(--c-muted); + text-decoration: none; + border-bottom: 2px solid transparent; + margin-bottom: -1px; + white-space: nowrap; + transition: color .15s, border-color .15s; + letter-spacing: .01em; +} +.wbf-pv-tab:hover { color: var(--c-text); border-bottom-color: rgba(255,255,255,.2); } +.wbf-pv-tab.active { color: var(--c-primary); border-bottom-color: var(--c-primary); } +.wbf-pv-tab i { font-size: .75rem; } + +/* ── BODY ────────────────────────────────────────────────────────────── */ +.wbf-pv-body { + display: grid; + grid-template-columns: 260px 1fr; + gap: 0; + border: 1px solid var(--c-border); + border-top: 1px solid rgba(255,255,255,.06); + border-radius: 0 0 var(--radius) var(--radius); + background: var(--c-bg); + min-height: 400px; +} + +/* ── SIDEBAR ─────────────────────────────────────────────────────────── */ +.wbf-pv-sidebar { + background: var(--c-surface); + border-right: 1px solid var(--c-border); + display: flex; + flex-direction: column; + gap: 0; + border-radius: 0 0 0 var(--radius); +} +.wbf-pv-sb-section { + padding: 1rem 1.1rem; + border-bottom: 1px solid var(--c-border); +} +.wbf-pv-sb-section:last-child { border-bottom: none; } +.wbf-pv-sb-label { + display: flex; + align-items: center; + gap: .4rem; + font-size: .65rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: .09em; + color: var(--c-primary); + margin-bottom: .55rem; +} +.wbf-pv-sb-label i { font-size: .65rem; } +.wbf-pv-sb-text { + font-size: .82rem; + color: var(--c-text-dim); + line-height: 1.6; +} +.wbf-pv-sb-sig { + font-size: .78rem; + color: var(--c-muted); + font-style: italic; + line-height: 1.55; +} +.wbf-pv-sb-section--sig { + background: rgba(0,180,216,.03); + border-left: 2px solid rgba(0,180,216,.25); +} +/* Custom field rows in sidebar */ +.wbf-pv-cf-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: .5rem; + margin-bottom: .45rem; + font-size: .8rem; +} +.wbf-pv-cf-row:last-child { margin-bottom: 0; } +.wbf-pv-cf-lbl { + color: var(--c-muted); + flex-shrink: 0; + font-size: .75rem; +} +.wbf-pv-cf-val { + color: var(--c-text-dim); + text-align: right; + word-break: break-word; +} +.wbf-pv-cf-val--link { + color: var(--c-primary); + text-decoration: none; +} +.wbf-pv-cf-val--link:hover { text-decoration: underline; } + +/* ── CONTENT ─────────────────────────────────────────────────────────── */ +.wbf-pv-content { + padding: 1.25rem; + display: flex; + flex-direction: column; + gap: 1.1rem; + min-width: 0; +} + +/* ── Responsive ─────────────────────────────────────────────────────── */ +@media (max-width: 900px) { + .wbf-pv-body { grid-template-columns: 1fr; } + .wbf-pv-sidebar { border-right: none; border-bottom: 1px solid var(--c-border); border-radius: 0; } + .wbf-pv-banner { height: 160px; } + .wbf-pv-name { font-size: 1.3rem; } +} +@media (max-width: 600px) { + .wbf-pv-banner { height: 130px; } + .wbf-pv-identity-row { padding: 0 1rem 1.25rem; margin-top: -40px; gap: .75rem; } + .wbf-pv-avatar-ring { width: 88px; height: 88px; } + .wbf-pv-name { font-size: 1.1rem; } + .wbf-pv-actions { margin-left: 0; width: 100%; } + .wbf-pv-tabs-bar { padding: 0 .5rem; } + .wbf-pv-tab { padding: .7rem .65rem; font-size: .78rem; } + .wbf-pv-content { padding: .85rem; } +} + + +/* Hide description, standalone labels AND label text — show only inputs/buttons */ +.wbf-svc-gallery-actions > p, +.wbf-svc-gallery-actions p:not(:has(input)), +.wbf-svc-gallery-actions label:not(:has(input)) { + display: none !important; +} +/* Label that wraps input: hide the text node, show input inline */ +.wbf-svc-gallery-actions label:has(input) { + display: inline-flex !important; + align-items: center !important; + gap: .4rem !important; + margin: 0 !important; + font-size: 0 !important; /* hides label text */ + color: transparent !important; +} +.wbf-svc-gallery-actions label:has(input) input { + font-size: .82rem !important; + color: var(--c-text) !important; +} +/* Make the connect row inline */ +.wbf-svc-gallery-actions .wbf-connect-row, +.wbf-svc-gallery-actions > div { + display: flex !important; + align-items: center !important; + gap: .4rem !important; + flex-wrap: nowrap !important; + margin: 0 !important; +} +/* Compact input in gallery actions */ +.wbf-svc-gallery-actions input[type="text"] { + width: 160px !important; + min-width: 0 !important; + max-width: 180px !important; + background: var(--c-bg2) !important; + border: 1.5px solid var(--c-border-d) !important; + border-radius: var(--radius-sm) !important; + padding: .38rem .65rem !important; + font-size: .82rem !important; + color: var(--c-text) !important; + font-family: inherit !important; +} +.wbf-svc-gallery-actions input[type="text"]:focus { + outline: none !important; + border-color: var(--c-primary) !important; + box-shadow: 0 0 0 3px rgba(0,180,216,.12) !important; +} + + + +/* Actions-Bereich immer gleich breit und rechtsbündig */ +.wbf-svc-card__row { + align-items: center !important; +} +.wbf-svc-actions { + min-width: 260px !important; + justify-content: flex-end !important; + flex-shrink: 0 !important; +} + +/* Einheitliches Input-Styling für alle inline-Felder */ +.wbf-svc-actions input[type="text"], +.wbf-svc-gallery-actions input[type="text"], +.wbf-svc-discord-inline input[type="text"] { + width: 155px !important; + min-width: 0 !important; + background: var(--c-bg2) !important; + border: 1.5px solid var(--c-border-d) !important; + border-radius: var(--radius-sm) !important; + padding: .4rem .7rem !important; + font-size: .82rem !important; + font-family: inherit !important; + color: var(--c-text) !important; + height: 2.1rem !important; + box-sizing: border-box !important; + transition: border-color .15s !important; +} +.wbf-svc-actions input[type="text"]:focus, +.wbf-svc-gallery-actions input[type="text"]:focus, +.wbf-svc-discord-inline input[type="text"]:focus { + outline: none !important; + border-color: var(--c-primary) !important; + box-shadow: 0 0 0 3px rgba(0,180,216,.12) !important; +} +.wbf-svc-actions input[type="text"]::placeholder, +.wbf-svc-gallery-actions input[type="text"]::placeholder, +.wbf-svc-discord-inline input[type="text"]::placeholder { + color: var(--c-muted) !important; +} + +/* Einheitliche Buttons */ +.wbf-svc-actions .wbf-btn, +.wbf-svc-gallery-actions .wbf-btn, +.wbf-svc-discord-inline .wbf-btn { + height: 2.1rem !important; + padding: 0 .9rem !important; + font-size: .79rem !important; + font-weight: 600 !important; + white-space: nowrap !important; + display: inline-flex !important; + align-items: center !important; + gap: .35rem !important; + border-radius: var(--radius-sm) !important; + cursor: pointer !important; + font-family: inherit !important; + transition: var(--transition) !important; + box-sizing: border-box !important; +} +/* Primary-Stil für alle Haupt-Aktions-Buttons */ +.wbf-svc-actions .wbf-btn--primary, +.wbf-svc-gallery-actions .wbf-btn--primary, +.wbf-svc-discord-inline .wbf-btn--primary, +/* Fallback: alle Buttons ohne --ghost / --outline werden primär */ +.wbf-svc-actions button:not(.wbf-btn--ghost):not(.wbf-btn--outline) { + background: var(--c-primary) !important; + color: #fff !important; + border: 1.5px solid var(--c-primary) !important; + box-shadow: 0 0 10px rgba(0,180,216,.2) !important; +} +.wbf-svc-actions .wbf-btn--primary:hover, +.wbf-svc-gallery-actions .wbf-btn--primary:hover, +.wbf-svc-discord-inline .wbf-btn--primary:hover { + background: var(--c-primary-d) !important; + border-color: var(--c-primary-d) !important; + box-shadow: 0 0 16px rgba(0,180,216,.35) !important; +} +/* Ghost-Stil für Sekundär-Buttons (Trennen etc.) */ +.wbf-svc-actions .wbf-btn:not(.wbf-btn--primary) { + background: var(--c-surface2) !important; + color: var(--c-text-dim) !important; + border: 1.5px solid var(--c-border-d) !important; + box-shadow: none !important; +} +.wbf-svc-actions .wbf-btn:not(.wbf-btn--primary):hover { + border-color: var(--c-primary) !important; + color: var(--c-primary) !important; +} + +/* Input + Button immer flex-row, kein Wrap */ +.wbf-svc-gallery-actions, +.wbf-svc-discord-inline { + display: flex !important; + align-items: center !important; + gap: .4rem !important; + flex-wrap: nowrap !important; +} + + +/* Zielt auf ALLE Buttons/Inputs in den Actions-Bereichen, + unabhängig von Klassen die das Plugin setzt */ + +.wbf-svc-card .wbf-svc-actions button, +.wbf-svc-card .wbf-svc-actions input[type="submit"], +.wbf-svc-card .wbf-svc-actions input[type="button"], +.wbf-svc-card .wbf-svc-actions a.wbf-btn, +.wbf-svc-gallery-actions button, +.wbf-svc-gallery-actions input[type="submit"], +.wbf-svc-gallery-actions input[type="button"], +.wbf-svc-discord-inline button { + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; + padding: 0 .9rem !important; + font-size: .8rem !important; + font-weight: 600 !important; + line-height: 1 !important; + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: .35rem !important; + border-radius: 6px !important; + white-space: nowrap !important; + font-family: inherit !important; + cursor: pointer !important; + box-sizing: border-box !important; + vertical-align: middle !important; + background: var(--c-primary) !important; + color: #fff !important; + border: 1.5px solid var(--c-primary) !important; + box-shadow: 0 0 10px rgba(0,180,216,.2) !important; + transition: background .15s, box-shadow .15s !important; +} +.wbf-svc-card .wbf-svc-actions button:hover, +.wbf-svc-gallery-actions button:hover, +.wbf-svc-discord-inline button:hover { + background: var(--c-primary-d) !important; + box-shadow: 0 0 16px rgba(0,180,216,.35) !important; +} + +/* Sekundär-Buttons (Trennen, Zurück) */ +.wbf-svc-card .wbf-svc-actions button.wbf-btn--ghost, +.wbf-svc-card .wbf-svc-actions button:not(.wbf-btn--primary)[id*="disconnect"], +.wbf-svc-card .wbf-svc-actions button:not(.wbf-btn--primary)[id*="unlink"], +.wbf-svc-card .wbf-svc-actions button:not(.wbf-btn--primary)[id*="back"] { + background: var(--c-surface2) !important; + color: var(--c-text-dim) !important; + border-color: var(--c-border-d) !important; + box-shadow: none !important; +} +.wbf-svc-card .wbf-svc-actions button.wbf-btn--ghost:hover, +.wbf-svc-card .wbf-svc-actions button:not(.wbf-btn--primary)[id*="disconnect"]:hover, +.wbf-svc-card .wbf-svc-actions button:not(.wbf-btn--primary)[id*="unlink"]:hover { + border-color: var(--c-danger) !important; + color: var(--c-danger) !important; + background: rgba(240,82,82,.08) !important; +} + +/* Alle Inline-Inputs gleich groß */ +.wbf-svc-card .wbf-svc-actions input[type="text"], +.wbf-svc-gallery-actions input[type="text"], +.wbf-svc-discord-inline input[type="text"] { + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; + padding: 0 .7rem !important; + font-size: .82rem !important; + font-family: inherit !important; + background: var(--c-bg2) !important; + border: 1.5px solid var(--c-border-d) !important; + border-radius: 6px !important; + color: var(--c-text) !important; + box-sizing: border-box !important; + width: 155px !important; + vertical-align: middle !important; +} + +/* ══════════════════════════════════════════════════════════════════════ + SERVICE CARDS — Buttons & Inputs einheitlich (finale Version) + ══════════════════════════════════════════════════════════════════════ */ + +/* Feste Breite für den Actions-Bereich = alle Buttons rechtsbündig */ +.wbf-profile-card .wbf-svc-card .wbf-svc-card__row { + align-items: center !important; +} +.wbf-profile-card .wbf-svc-card .wbf-svc-actions { + min-width: 260px !important; + justify-content: flex-end !important; + flex-shrink: 0 !important; +} + +/* ─ Alle Buttons in Service-Cards: exakt gleiche Größe ─────────────── */ +.wbf-profile-card .wbf-svc-list button, +.wbf-profile-card .wbf-svc-list input[type="submit"], +.wbf-profile-card .wbf-svc-list input[type="button"], +.wbf-profile-card .wbf-svc-list a.button, +.wbf-profile-card .wbf-svc-list .wbf-btn { + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; + padding: 0 1rem !important; + font-size: .8rem !important; + font-weight: 600 !important; + line-height: 34px !important; + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: .35rem !important; + border-radius: 6px !important; + white-space: nowrap !important; + font-family: inherit !important; + cursor: pointer !important; + box-sizing: border-box !important; + vertical-align: middle !important; + background: var(--c-primary) !important; + color: #fff !important; + border: 1.5px solid var(--c-primary) !important; + box-shadow: 0 0 10px rgba(0,180,216,.2) !important; + transition: background .15s, box-shadow .15s !important; + text-decoration: none !important; +} +.wbf-profile-card .wbf-svc-list button:hover, +.wbf-profile-card .wbf-svc-list input[type="submit"]:hover, +.wbf-profile-card .wbf-svc-list .wbf-btn:hover { + background: var(--c-primary-d) !important; + box-shadow: 0 0 16px rgba(0,180,216,.4) !important; +} + +/* Sekundär-Buttons (Trennen / Zurück) */ +.wbf-profile-card .wbf-svc-list button[id*="disconnect"], +.wbf-profile-card .wbf-svc-list button[id*="unlink"], +.wbf-profile-card .wbf-svc-list button[id*="back"], +.wbf-profile-card .wbf-svc-list button.wbf-btn--ghost { + background: var(--c-surface2) !important; + color: var(--c-text-dim) !important; + border-color: var(--c-border-d) !important; + box-shadow: none !important; +} +.wbf-profile-card .wbf-svc-list button[id*="disconnect"]:hover, +.wbf-profile-card .wbf-svc-list button[id*="unlink"]:hover { + border-color: var(--c-danger) !important; + color: var(--c-danger) !important; + background: rgba(240,82,82,.08) !important; +} + +/* ─ Alle Text-Inputs in Service-Cards: exakt gleiche Größe ─────────── */ +.wbf-profile-card .wbf-svc-list input[type="text"] { + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; + padding: 0 .7rem !important; + font-size: .82rem !important; + font-family: inherit !important; + background: var(--c-bg2) !important; + border: 1.5px solid var(--c-border-d) !important; + border-radius: 6px !important; + color: var(--c-text) !important; + box-sizing: border-box !important; + width: 155px !important; + vertical-align: middle !important; + line-height: normal !important; +} +.wbf-profile-card .wbf-svc-list input[type="text"]:focus { + outline: none !important; + border-color: var(--c-primary) !important; + box-shadow: 0 0 0 3px rgba(0,180,216,.12) !important; +} +.wbf-profile-card .wbf-svc-list input[type="text"]::placeholder { + color: var(--c-muted) !important; +} + +/* ─ Inline-Wrappers für Gallerie + Discord ──────────────────────────── */ +.wbf-svc-gallery-actions, +.wbf-svc-discord-inline { + display: flex !important; + align-items: center !important; + gap: .4rem !important; + flex-wrap: nowrap !important; +} + +/* ─ Gallerie Label-Text ausblenden, Input sichtbar lassen ───────────── */ +.wbf-svc-gallery-actions > p, +.wbf-svc-gallery-actions p:not(:has(input)), +.wbf-svc-gallery-actions label:not(:has(input)) { + display: none !important; +} +.wbf-svc-gallery-actions label:has(input) { + display: inline-flex !important; + align-items: center !important; + gap: .4rem !important; + margin: 0 !important; + font-size: 0 !important; + color: transparent !important; +} +.wbf-svc-gallery-actions label:has(input) input { + font-size: .82rem !important; + color: var(--c-text) !important; +} + +/* ── Discord send-code Button direkt fixieren ──────────────────────── */ +#wbf-discord-send-code, +#wbf-discord-relink, +#wbf-mc-gen-btn, +#wbf-mc-unlink-btn { + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; + padding-top: 0 !important; + padding-bottom: 0 !important; + line-height: 1 !important; + overflow: hidden !important; + box-sizing: border-box !important; +} +/* Icons in svc-buttons nicht größer als nötig */ +.wbf-profile-card .wbf-svc-list button i, +.wbf-profile-card .wbf-svc-list .wbf-btn i { + font-size: .8rem !important; + line-height: 1 !important; + flex-shrink: 0 !important; } \ No newline at end of file diff --git a/assets/js/forum-script.js b/assets/js/forum-script.js index a43b597..db38036 100644 --- a/assets/js/forum-script.js +++ b/assets/js/forum-script.js @@ -634,11 +634,11 @@ // Sofort-Vorschau var objectUrl = URL.createObjectURL(file); var $wrap = $('#wbfProfileBannerWrap'); - var $existing = $wrap.find('.wbf-profile-banner__img'); + var $existing = $wrap.find('.wbf-pv-banner__img'); // Falls noch kein Banner-Bild existiert, eins einfügen if ($existing.length === 0) { - $wrap.prepend(''); + $wrap.prepend(''); } else { $existing.attr('src', objectUrl).css('opacity', '.4'); } @@ -655,7 +655,7 @@ processData: false, contentType: false, success: function (res) { - var $img = $wrap.find('.wbf-profile-banner__img'); + var $img = $wrap.find('.wbf-pv-banner__img'); if (res.success) { URL.revokeObjectURL(objectUrl); $img.attr('src', res.data.banner_url + '?v=' + Date.now()); @@ -663,7 +663,7 @@ $img.css('opacity', ''); }, error: function () { - $wrap.find('.wbf-profile-banner__img').css('opacity', ''); + $wrap.find('.wbf-pv-banner__img').css('opacity', ''); } }); }); @@ -1218,6 +1218,17 @@ url = base + sep + 'forum_thread=' + n.thread_id; text = actor + ' hat deinen Beitrag geliket'; sub = n.thread_title || ''; + } else if (n.type === 'plugin_update') { + url = n.plugin_url || base; + var versionStr = n.plugin_version ? ' auf v' + $('').text(n.plugin_version).html() + '' : ''; + var pluginName = $('').text(n.plugin_title || 'Plugin').html(); + text = '' + pluginName + ' wurde aktualisiert' + versionStr; + sub = 'Plugin-Update · Beobachtungsliste'; + if (n.plugin_thumb) { + avatar = ''; + } else { + avatar = '
'; + } } else { // reply (default) url = base + sep + 'forum_thread=' + n.thread_id; @@ -2265,7 +2276,7 @@ $btn.prop('disabled', false).html(' Code senden'); if (res.success) { wbfDcMsg(' ' + (res.data.message || 'Code gesendet!'), '#16a34a'); - $('#wbf-dc-step1').slideUp(200, function () { $('#wbf-dc-step2').slideDown(200); }); + $('#wbf-dc-step1-inline').slideUp(150); $('#wbf-dc-step2').slideDown(200); $('#wbf-discord-code-input').val('').focus(); wbfDcStep = 2; } else { @@ -2323,7 +2334,7 @@ // „Zurück" in Schritt 2 $(document).on('click', '#wbf-discord-code-back', function () { - $('#wbf-dc-step2').slideUp(200, function () { $('#wbf-dc-step1').slideDown(200); }); + $('#wbf-dc-step2').slideUp(200); $('#wbf-dc-step1-inline').slideDown(150); wbfDcMsg(''); wbfDcStep = 1; });