/** * WP Multi Suite - Gemeinsames Admin-Design-System * * Alle Regeln sind unter .wpm-admin gescoped, damit keine fremden * Admin-Seiten beeinflusst werden. Wird nur auf den eigenen Seiten * geladen (Hook-Registry in wp-multi-toolkit.php). */ .wpm-admin { --wpm-primary: #0073aa; --wpm-primary-dark: #005f8a; --wpm-primary-light: #e8f4fa; --wpm-success: #2ecc71; --wpm-success-bg: #e9f7ef; --wpm-warning: #f39c12; --wpm-warning-bg: #fef5e7; --wpm-danger: #e74c3c; --wpm-danger-bg: #fdecea; --wpm-info-bg: #e8f4fa; --wpm-text: #2d3436; --wpm-text-soft: #4a5568; --wpm-text-muted: #718096; --wpm-border: #e2e8f0; --wpm-bg-soft: #f5f7fa; --wpm-radius: 12px; --wpm-radius-sm: 8px; --wpm-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); --wpm-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05); max-width: 1200px; margin: 20px 20px 20px 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; color: var(--wpm-text); } /* ---------- Marken-Header ---------- */ .wpm-admin .wpm-header { display: flex; align-items: center; gap: 20px; background: linear-gradient(135deg, var(--wpm-primary) 0%, var(--wpm-primary-dark) 100%); border-radius: var(--wpm-radius); padding: 22px 28px; margin-bottom: 24px; box-shadow: var(--wpm-shadow); color: #fff; } .wpm-admin .wpm-header__logo { height: 52px; width: auto; flex-shrink: 0; border-radius: var(--wpm-radius-sm); background: rgba(255, 255, 255, 0.12); padding: 6px; } .wpm-admin .wpm-header__text { min-width: 0; } .wpm-admin .wpm-header__title { margin: 0; padding: 0; font-size: 24px; font-weight: 600; line-height: 1.25; color: #fff; } .wpm-admin .wpm-header__sub { margin: 4px 0 0; font-size: 14px; color: rgba(255, 255, 255, 0.85); } /* ---------- Karten & Grid ---------- */ .wpm-admin .wpm-card { background: #fff; border-radius: var(--wpm-radius); box-shadow: var(--wpm-shadow); padding: 24px; margin-bottom: 24px; transition: transform 0.25s ease, box-shadow 0.25s ease; } .wpm-admin .wpm-card:hover { transform: translateY(-2px); } .wpm-admin .wpm-card__title { margin: 0 0 16px; padding: 0 0 12px; font-size: 18px; font-weight: 600; color: var(--wpm-text); border-bottom: 1px solid var(--wpm-border); } .wpm-admin .wpm-grid { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 24px; } .wpm-admin .wpm-grid--2 { grid-template-columns: 1fr 1fr; } .wpm-admin .wpm-grid--3 { grid-template-columns: repeat(3, 1fr); } .wpm-admin .wpm-grid > .wpm-card { margin-bottom: 0; } /* ---------- Formulare ---------- */ .wpm-admin .wpm-field { display: grid; grid-template-columns: 220px 1fr; gap: 8px 24px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--wpm-border); } .wpm-admin .wpm-field:last-of-type { border-bottom: none; } .wpm-admin .wpm-field__label { font-weight: 600; font-size: 14px; color: var(--wpm-text); padding-top: 6px; } .wpm-admin .wpm-field__hint { display: block; font-size: 12px; color: var(--wpm-text-muted); margin-top: 4px; font-weight: 400; } .wpm-admin .wpm-card input[type="text"], .wpm-admin .wpm-card input[type="url"], .wpm-admin .wpm-card input[type="email"], .wpm-admin .wpm-card input[type="number"], .wpm-admin .wpm-card input[type="date"], .wpm-admin .wpm-card select, .wpm-admin .wpm-card textarea { width: 100%; max-width: 640px; padding: 10px 12px; border: 1px solid var(--wpm-border); border-radius: var(--wpm-radius-sm); font-size: 14px; line-height: 1.5; background: #fff; color: var(--wpm-text); box-shadow: none; transition: border-color 0.2s, box-shadow 0.2s; } .wpm-admin .wpm-card input:focus, .wpm-admin .wpm-card select:focus, .wpm-admin .wpm-card textarea:focus { border-color: var(--wpm-primary); box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.12); outline: none; } /* Auswahl-Menüs klar als Dropdown erkennbar machen (eigener Pfeil) */ .wpm-admin .wpm-card select { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 36px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%23718096' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 10px 6px; } .wpm-admin .wpm-card textarea { resize: vertical; } /* Settings-API-Markup (form-table) innerhalb Karten harmonisieren */ .wpm-admin .wpm-card .form-table { margin-top: 0; background: transparent; border-radius: 0; padding: 0; box-shadow: none; } .wpm-admin .wpm-card .form-table th { font-weight: 600; font-size: 14px; color: var(--wpm-text); width: 220px; padding: 14px 24px 14px 0; } .wpm-admin .wpm-card .form-table td { padding: 14px 0; } .wpm-admin .wpm-card .form-table tr { border-bottom: 1px solid var(--wpm-border); } .wpm-admin .wpm-card .description, .wpm-admin .wpm-card small { font-size: 12px; color: var(--wpm-text-muted); font-style: normal; } /* ---------- Buttons ---------- */ .wpm-admin .wpm-btn, .wpm-admin .button, .wpm-admin .button-primary, .wpm-admin .button-secondary { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: var(--wpm-radius-sm); font-size: 14px; font-weight: 500; line-height: 1.4; text-decoration: none; cursor: pointer; border: 1px solid var(--wpm-border); background: var(--wpm-bg-soft); color: var(--wpm-text); transition: all 0.2s ease; height: auto; min-height: 0; } .wpm-admin .wpm-btn--primary, .wpm-admin .button-primary { background: var(--wpm-primary); border-color: var(--wpm-primary); color: #fff; text-shadow: none; box-shadow: none; } .wpm-admin .wpm-btn--primary:hover, .wpm-admin .button-primary:hover { background: var(--wpm-primary-dark); border-color: var(--wpm-primary-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 115, 170, 0.3); } .wpm-admin .wpm-btn:hover, .wpm-admin .button:hover, .wpm-admin .button-secondary:hover { background: var(--wpm-border); color: var(--wpm-text); transform: translateY(-1px); } .wpm-admin .wpm-btn--danger { background: var(--wpm-danger); border-color: var(--wpm-danger); color: #fff; } .wpm-admin .wpm-btn--danger:hover { background: #c0392b; border-color: #c0392b; color: #fff; box-shadow: 0 2px 8px rgba(231, 76, 60, 0.3); } .wpm-admin .wpm-btn--ghost { background: transparent; border-color: transparent; color: var(--wpm-primary); } .wpm-admin .wpm-btn--ghost:hover { background: var(--wpm-primary-light); color: var(--wpm-primary-dark); } /* ---------- Tabellen ---------- */ .wpm-admin .wpm-table-wrap { border-radius: var(--wpm-radius-sm); overflow: hidden; box-shadow: var(--wpm-shadow-sm); border: 1px solid var(--wpm-border); } .wpm-admin table.wpm-table { width: 100%; border-collapse: collapse; background: #fff; border: none; box-shadow: none; } .wpm-admin table.wpm-table th { background: var(--wpm-bg-soft); font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--wpm-text); padding: 14px 16px; text-align: left; border-bottom: 2px solid var(--wpm-border); } .wpm-admin table.wpm-table td { padding: 13px 16px; font-size: 14px; color: var(--wpm-text-soft); border-bottom: 1px solid var(--wpm-border); } .wpm-admin table.wpm-table tbody tr:last-child td { border-bottom: none; } .wpm-admin table.wpm-table tbody tr:nth-child(even) { background: #fafbfc; } .wpm-admin table.wpm-table tbody tr:hover { background: var(--wpm-primary-light); } .wpm-admin table.wpm-table th a { color: var(--wpm-primary); text-decoration: none; } /* ---------- Notices ---------- */ .wpm-admin .wpm-notice { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--wpm-radius-sm); margin-bottom: 20px; font-size: 14px; animation: wpmFadeIn 0.4s ease; } .wpm-admin .wpm-notice--success { background: var(--wpm-success-bg); border-left: 4px solid var(--wpm-success); } .wpm-admin .wpm-notice--warning { background: var(--wpm-warning-bg); border-left: 4px solid var(--wpm-warning); } .wpm-admin .wpm-notice--error { background: var(--wpm-danger-bg); border-left: 4px solid var(--wpm-danger); } .wpm-admin .wpm-notice--info { background: var(--wpm-info-bg); border-left: 4px solid var(--wpm-primary); } @keyframes wpmFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } /* ---------- Badges / Status-Pills ---------- */ .wpm-admin .wpm-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.6; background: var(--wpm-bg-soft); color: var(--wpm-text-soft); } .wpm-admin .wpm-badge--success { background: var(--wpm-success-bg); color: #1e8449; } .wpm-admin .wpm-badge--warning { background: var(--wpm-warning-bg); color: #b9770e; } .wpm-admin .wpm-badge--danger { background: var(--wpm-danger-bg); color: #b03a2e; } /* ---------- Statistik-Kacheln ---------- */ .wpm-admin .wpm-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; margin-bottom: 24px; } .wpm-admin .wpm-stat-card { background: #fff; border-radius: var(--wpm-radius); box-shadow: var(--wpm-shadow-sm); border: 1px solid var(--wpm-border); padding: 20px; display: flex; align-items: center; gap: 14px; } .wpm-admin .wpm-stat-card .dashicons { font-size: 28px; width: 28px; height: 28px; color: var(--wpm-primary); flex-shrink: 0; } .wpm-admin .wpm-stat-card__value { font-size: 26px; font-weight: 700; color: var(--wpm-text); line-height: 1.1; } .wpm-admin .wpm-stat-card__label { font-size: 12px; color: var(--wpm-text-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 2px; } /* ---------- Tabs ---------- */ .wpm-admin .wpm-tabs { display: flex; gap: 4px; margin-bottom: 24px; border-bottom: 2px solid var(--wpm-border); } .wpm-admin .wpm-tab { padding: 10px 20px; font-size: 14px; font-weight: 500; color: var(--wpm-text-soft); text-decoration: none; border-radius: var(--wpm-radius-sm) var(--wpm-radius-sm) 0 0; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all 0.2s; } .wpm-admin .wpm-tab:hover { background: var(--wpm-bg-soft); color: var(--wpm-text); } .wpm-admin .wpm-tab--active { color: var(--wpm-primary); border-bottom-color: var(--wpm-primary); font-weight: 600; } /* ---------- Modul-Übersicht (Landing-Page) ---------- */ .wpm-admin .wpm-modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; } .wpm-admin .wpm-module { display: flex; align-items: flex-start; gap: 14px; background: #fff; border: 1px solid var(--wpm-border); border-radius: var(--wpm-radius); padding: 18px; text-decoration: none; color: var(--wpm-text); box-shadow: var(--wpm-shadow-sm); transition: all 0.2s ease; } .wpm-admin .wpm-module:hover { transform: translateY(-2px); box-shadow: var(--wpm-shadow); border-color: var(--wpm-primary); } .wpm-admin .wpm-module .dashicons { font-size: 26px; width: 26px; height: 26px; color: var(--wpm-primary); flex-shrink: 0; margin-top: 2px; } .wpm-admin .wpm-module__title { font-size: 15px; font-weight: 600; margin: 0 0 4px; color: var(--wpm-text); } .wpm-admin .wpm-module__desc { font-size: 12.5px; color: var(--wpm-text-muted); margin: 0; line-height: 1.5; } /* ---------- Footer ---------- */ .wpm-admin .wpm-footer { text-align: center; font-size: 12px; color: var(--wpm-text-muted); padding: 8px 0 20px; } .wpm-admin .wpm-footer a { color: var(--wpm-primary); text-decoration: none; } /* ---------- Responsive ---------- */ @media (max-width: 1024px) { .wpm-admin .wpm-grid--2, .wpm-admin .wpm-grid--3 { grid-template-columns: 1fr; } .wpm-admin .wpm-field { grid-template-columns: 1fr; } } @media (max-width: 768px) { .wpm-admin { margin: 10px 10px 10px 0; } .wpm-admin .wpm-header { flex-direction: column; text-align: center; gap: 10px; padding: 18px; } .wpm-admin .wpm-card { padding: 16px; } .wpm-admin .wpm-table-wrap { overflow-x: auto; } }