/* ================================================================ POPUP.CSS — Dynasty of Knights — Gebäude Popup Styles ================================================================ */ /* ================================ POPUP WRAPPER ================================ */ .building-popup { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 580px; background: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(255, 255, 255, 0.012) 2px, rgba(255, 255, 255, 0.012) 4px ), linear-gradient(160deg, #2e1c07 0%, #1a0e04 40%, #221508 100%); border: 2px solid #9a7a28; border-radius: 6px; display: none; flex-direction: column; z-index: 1000; overflow: visible; box-shadow: 0 0 0 1px rgba(200, 168, 64, 0.3), 0 0 40px rgba(200, 150, 12, 0.1), 0 30px 80px rgba(0, 0, 0, 0.6), inset 0 0 60px rgba(0, 0, 0, 0.27); } .building-popup.active { display: flex; } /* ================================ ECKORNAMENTE ================================ */ .popup-corner { position: absolute; width: 30px; height: 30px; z-index: 10; pointer-events: none; } .popup-corner.c-tl { top: -4px; left: -4px; } .popup-corner.c-tr { top: -4px; right: -4px; transform: scaleX(-1); } .popup-corner.c-bl { bottom: -4px; left: -4px; transform: scaleY(-1); } .popup-corner.c-br { bottom: -4px; right: -4px; transform: scale(-1); } /* ================================ HEADER ================================ */ .popup-header { background: linear-gradient( 90deg, #0a0602 0%, #3d2510 20%, #4a2e12 50%, #3d2510 80%, #0a0602 100% ); border-bottom: 2px solid #9a7a28; padding: 0 20px; height: 46px; display: flex; align-items: center; justify-content: space-between; position: relative; flex-shrink: 0; } .popup-header::after { content: ""; position: absolute; bottom: -5px; left: 5%; right: 5%; height: 3px; background: linear-gradient( 90deg, transparent, rgba(200, 150, 12, 0.67), rgba(240, 208, 96, 0.6), rgba(200, 150, 12, 0.67), transparent ); filter: blur(1px); pointer-events: none; } .popup-title-wrap { display: flex; align-items: center; gap: 10px; } .popup-title-gem { width: 11px; height: 11px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f0d080, #c8960c, #7a4a00); box-shadow: 0 0 8px rgba(200, 150, 12, 0.53); flex-shrink: 0; } #popup-title { font-family: "Cinzel Decorative", "Palatino Linotype", serif; font-size: 13px; font-weight: 700; color: #f5e090; letter-spacing: 3px; text-shadow: 0 0 20px rgba(200, 150, 12, 0.53), 0 1px 3px rgba(0, 0, 0, 0.6); text-transform: uppercase; } .popup-close { width: 26px; height: 26px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #5a1808, #2a0a04); border: 1px solid #8a3010; color: #e06040; font-size: 11px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.094); user-select: none; } .popup-close:hover { background: radial-gradient(circle at 40% 35%, #8a2010, #4a1008); border-color: #e04020; color: #ff9080; box-shadow: 0 0 10px rgba(200, 64, 32, 0.27); } /* ================================ BODY: SIDEBAR + CONTENT ================================ */ .popup-body { display: flex; flex: 1; min-height: 380px; overflow: hidden; border-radius: 0 0 4px 4px; } /* ================================ VERTIKALE TAB-SIDEBAR ================================ */ .popup-tabs { width: 62px; background: repeating-linear-gradient( 90deg, transparent, transparent 1px, rgba(255, 255, 255, 0.008) 1px, rgba(255, 255, 255, 0.008) 2px ), linear-gradient(180deg, #1a0e04 0%, #120a03 100%); border-right: 2px solid #7a5a18; display: flex; flex-direction: column; align-items: center; padding: 14px 0; gap: 8px; position: relative; flex-shrink: 0; } .popup-tabs::after { content: ""; position: absolute; right: -4px; top: 8%; bottom: 8%; width: 3px; background: linear-gradient( 180deg, transparent, rgba(200, 150, 12, 0.33), rgba(240, 208, 96, 0.2), rgba(200, 150, 12, 0.33), transparent ); filter: blur(1px); pointer-events: none; } /* ================================ TAB BUTTONS ================================ */ .popup-tabs .tab { width: 44px; height: 44px; border-radius: 4px; border: 1px solid #4a3408; background: linear-gradient(145deg, #2e1c08 0%, #1a0e04 100%); cursor: pointer; display: flex; align-items: center; justify-content: center; position: relative; transition: all 0.2s; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.031), inset 0 -1px 0 rgba(0, 0, 0, 0.2); padding: 0; outline: none; } .popup-tabs .tab:hover { border-color: #c8960c; background: linear-gradient(145deg, #3e2c10 0%, #2a1a08 100%); box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.125), 0 0 14px rgba(200, 150, 12, 0.133), 0 0 0 1px rgba(200, 150, 12, 0.267); } .popup-tabs .tab.active { border-color: #c8960c; background: linear-gradient(145deg, #5a3a14 0%, #3a2208 100%); box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.25), 0 0 18px rgba(200, 150, 12, 0.2), 0 0 0 1px rgba(200, 150, 12, 0.4); } /* Aktiver Tab: goldener Balken rechts */ .popup-tabs .tab.active::after { content: ""; position: absolute; right: -3px; top: 20%; height: 60%; width: 4px; background: linear-gradient(180deg, #f0d060, #c8960c); border-radius: 2px 0 0 2px; box-shadow: 0 0 8px #c8960c; } /* Tab SVG Icons */ .tab-icon { width: 26px; height: 26px; display: none; } .tab-icon-default { display: block; } .tab-icon-active { display: none; } .tab.active .tab-icon-default { display: none; } .tab.active .tab-icon-active { display: block; } /* Tooltip */ .tab-tip { position: absolute; left: 54px; top: 50%; transform: translateY(-50%); background: linear-gradient(135deg, #2e1c08, #1a0e04); border: 1px solid #9a7a28; color: #f0d080; font-size: 11px; font-family: "Cinzel", "Palatino Linotype", serif; letter-spacing: 1px; padding: 5px 10px; border-radius: 4px; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.15s; z-index: 20; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(200, 150, 12, 0.2); } .tab-tip::before { content: ""; position: absolute; left: -5px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-right: 5px solid #9a7a28; } .popup-tabs .tab:hover .tab-tip { opacity: 1; } /* ================================ POPUP CONTENT AREA ================================ */ .popup-content { flex: 1; overflow-y: auto; padding: 20px 22px; } .popup-content::-webkit-scrollbar { width: 5px; } .popup-content::-webkit-scrollbar-track { background: #0f0803; } .popup-content::-webkit-scrollbar-thumb { background: #5a3a10; border-radius: 3px; } .popup-content::-webkit-scrollbar-thumb:hover { background: #c8960c; } .tab-content { display: none; animation: popupFadeIn 0.2s ease; } .tab-content.active { display: block; } @keyframes popupFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } /* ================================ INFO TAB INHALT ================================ */ .popup-info-title { font-family: "Cinzel", "Palatino Linotype", serif; font-size: 14px; font-weight: 600; color: #f0d060; letter-spacing: 2px; text-shadow: 0 0 12px rgba(200, 150, 12, 0.33); margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(122, 90, 24, 0.3); position: relative; } .popup-info-title::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 40%; height: 1px; background: linear-gradient(90deg, #c8960c, transparent); } .popup-stat-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 10px; margin-bottom: 4px; border-radius: 3px; background: linear-gradient(90deg, #1e1206 0%, #120a03 100%); border: 1px solid #3a2808; font-size: 13px; transition: border-color 0.15s; } .popup-stat-row:hover { border-color: #6a4a14; } .popup-stat-key { color: #fff; } .popup-stat-val { color: #e0c060; font-weight: 600; font-family: "Cinzel", serif; font-size: 15px; } .popup-desc { font-size: 13px; color: #cccccc; line-height: 1.8; font-style: italic; padding: 10px 12px; border-left: 2px solid rgba(200, 150, 12, 0.4); background: #1a1005; border-radius: 0 4px 4px 0; margin-top: 8px; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); } /* Fortschrittsbalken */ .popup-xp-wrap { margin-top: 14px; } .popup-xp-label { font-size: 11px; color: #705030; margin-bottom: 5px; font-family: "Cinzel", serif; letter-spacing: 1px; } .popup-xp-track { height: 10px; background: #0a0602; border: 1px solid #4a3208; border-radius: 5px; overflow: hidden; position: relative; } .popup-xp-fill { height: 100%; background: linear-gradient(90deg, #6a3a08 0%, #c8960c 60%, #f0d060 100%); border-radius: 5px; position: relative; transition: width 0.6s ease; } .popup-xp-fill::after { content: ""; position: absolute; top: 1px; left: 4px; right: 8px; height: 3px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.188)); border-radius: 3px; } .popup-xp-shimmer { position: absolute; top: 0; right: 0; bottom: 0; width: 20px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25)); animation: popupShimmer 2s ease-in-out infinite; } @keyframes popupShimmer { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } } .popup-divider { text-align: center; color: #4a3010; font-size: 13px; letter-spacing: 8px; margin: 14px 0 4px; } /* ================================ UPGRADE TAB INHALT ================================ */ .popup-upgrade-btn { display: block; width: 100%; margin-top: 16px; padding: 12px; background: linear-gradient(160deg, #6a4018 0%, #3e2408 50%, #6a4018 100%); border: 1px solid #c8960c; border-radius: 4px; color: #f5e090; font-family: "Cinzel Decorative", "Palatino Linotype", serif; font-size: 11px; letter-spacing: 3px; cursor: pointer; transition: all 0.2s; box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.25), 0 0 20px rgba(200, 150, 12, 0.11); } .popup-upgrade-btn:hover { background: linear-gradient(160deg, #8a5824 0%, #5a3410 50%, #8a5824 100%); box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.375), 0 0 30px rgba(200, 150, 12, 0.2); letter-spacing: 4px; } /* ================================ GAME NOTIFICATION ================================ */ #game-notification-overlay { display: none; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.65); z-index: 9998; } #game-notification { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 9999; width: 360px; background: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(255, 255, 255, 0.012) 2px, rgba(255, 255, 255, 0.012) 4px ), linear-gradient(160deg, #2e1c07 0%, #1a0e04 40%, #221508 100%); border: 2px solid #9a7a28; border-radius: 6px; overflow: visible; box-shadow: 0 0 0 1px rgba(200, 168, 64, 0.3), 0 0 40px rgba(200, 150, 12, 0.15), 0 30px 80px rgba(0, 0, 0, 0.7), inset 0 0 60px rgba(0, 0, 0, 0.27); } .notification-header { background: linear-gradient( 90deg, #0a0602 0%, #3d2510 20%, #4a2e12 50%, #3d2510 80%, #0a0602 100% ); border-bottom: 2px solid #9a7a28; padding: 0 18px; height: 44px; display: flex; align-items: center; gap: 10px; position: relative; } .notification-header::after { content: ""; position: absolute; bottom: -5px; left: 5%; right: 5%; height: 3px; background: linear-gradient( 90deg, transparent, rgba(200, 150, 12, 0.67), rgba(240, 208, 96, 0.6), rgba(200, 150, 12, 0.67), transparent ); filter: blur(1px); pointer-events: none; } #notification-icon { font-size: 16px; } #notification-title { font-family: "Cinzel Decorative", "Palatino Linotype", serif; font-size: 12px; font-weight: 700; color: #f5e090; letter-spacing: 2px; text-shadow: 0 0 20px rgba(200, 150, 12, 0.53), 0 1px 3px rgba(0, 0, 0, 0.6); text-transform: uppercase; } .notification-body { padding: 22px 20px 14px; } #notification-message { font-family: "Cinzel", "Palatino Linotype", serif; font-size: 13px; color: #ccc8b0; line-height: 1.7; margin: 0; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); } .notification-footer { padding: 0 20px 18px; display: flex; justify-content: flex-end; } .notification-btn { background: linear-gradient(160deg, #6a4018 0%, #3e2408 50%, #6a4018 100%); border: 1px solid #c8960c; border-radius: 4px; color: #f5e090; font-family: "Cinzel", "Palatino Linotype", serif; font-size: 12px; letter-spacing: 2px; padding: 8px 22px; cursor: pointer; transition: all 0.2s; box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.25), 0 0 16px rgba(200, 150, 12, 0.1); } .notification-btn:hover { background: linear-gradient(160deg, #8a5824 0%, #5a3410 50%, #8a5824 100%); box-shadow: inset 0 1px 0 rgba(200, 150, 12, 0.375), 0 0 26px rgba(200, 150, 12, 0.2); letter-spacing: 3px; }