395 lines
8.7 KiB
CSS
395 lines
8.7 KiB
CSS
/* ================================================
|
||
mine.css – Mine Gebäude UI
|
||
Passt zum bestehenden Design aus building.css
|
||
und dem qm-popup / game-notification System
|
||
================================================ */
|
||
|
||
/* ── Panel-Wrapper ─────────────────────────────── */
|
||
.mine-panel {
|
||
padding: 14px 16px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0;
|
||
}
|
||
|
||
/* ── Header-Zeile: Level + Zyklusinfo ──────────── */
|
||
.mine-header-row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.mine-level-badge {
|
||
background: linear-gradient(135deg, #3a2200, #6a3c00);
|
||
border: 1px solid #c8952a;
|
||
border-radius: 20px;
|
||
padding: 4px 12px;
|
||
color: #f0c84a;
|
||
font-size: 12px;
|
||
font-weight: bold;
|
||
letter-spacing: 0.04em;
|
||
}
|
||
|
||
.mine-cycles {
|
||
font-size: 11px;
|
||
color: #a07830;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* ── Trennlinie ────────────────────────────────── */
|
||
.mine-divider {
|
||
height: 1px;
|
||
background: linear-gradient(90deg, transparent, #7a5a1a, transparent);
|
||
margin: 10px 0;
|
||
}
|
||
|
||
/* ── Abschnitt-Titel ───────────────────────────── */
|
||
.mine-section-title {
|
||
font-size: 11px;
|
||
color: #a07830;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.08em;
|
||
margin: 0 0 8px 0;
|
||
}
|
||
|
||
/* ── Ressourcen-Auswahl ────────────────────────── */
|
||
.mine-res-selector {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 6px;
|
||
margin-bottom: 4px;
|
||
}
|
||
|
||
.mine-res-btn {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 4px;
|
||
background: linear-gradient(180deg, #2a1e0a 0%, #1a1206 100%);
|
||
border: 1px solid rgba(122, 90, 26, 0.5);
|
||
border-radius: 8px;
|
||
padding: 10px 8px;
|
||
cursor: pointer;
|
||
transition: border-color 0.2s, background 0.2s, transform 0.1s;
|
||
color: #c8a860;
|
||
}
|
||
|
||
.mine-res-btn:hover:not(:disabled):not(.mine-res-btn-active) {
|
||
border-color: #c8952a;
|
||
background: linear-gradient(180deg, #3a2a0e 0%, #2a1e08 100%);
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
.mine-res-btn-active {
|
||
background: linear-gradient(180deg, #4a3010 0%, #3a2008 100%);
|
||
border-color: #f0c84a;
|
||
box-shadow: 0 0 8px rgba(240, 200, 74, 0.25);
|
||
cursor: default;
|
||
}
|
||
|
||
.mine-res-btn-icon {
|
||
font-size: 20px;
|
||
line-height: 1;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 28px;
|
||
height: 28px;
|
||
}
|
||
|
||
.mine-res-btn-icon img {
|
||
width: 28px;
|
||
height: 28px;
|
||
object-fit: contain;
|
||
filter: drop-shadow(0 1px 3px rgba(0,0,0,0.7));
|
||
display: block;
|
||
}
|
||
|
||
.mine-res-btn-name {
|
||
font-size: 12px;
|
||
font-weight: bold;
|
||
color: #f0c84a;
|
||
}
|
||
|
||
.mine-res-btn-amount {
|
||
font-size: 10px;
|
||
color: #a07830;
|
||
}
|
||
|
||
/* ── Aktuelle Produktion ───────────────────────── */
|
||
.mine-resources {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 6px;
|
||
}
|
||
|
||
.mine-resource-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
background: rgba(255, 255, 255, 0.03);
|
||
border: 1px solid rgba(122, 90, 26, 0.3);
|
||
border-radius: 6px;
|
||
padding: 7px 12px;
|
||
transition: border-color 0.2s, background 0.2s;
|
||
}
|
||
|
||
.mine-resource-row.mine-resource-ready {
|
||
border-color: rgba(200, 149, 42, 0.55);
|
||
background: rgba(200, 149, 42, 0.07);
|
||
}
|
||
|
||
.mine-resource-icon {
|
||
font-size: 18px;
|
||
line-height: 1;
|
||
flex-shrink: 0;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
/* Ressource Icons – einheitliche Größe */
|
||
.mine-resource-icon-gold,
|
||
.mine-resource-icon-iron,
|
||
.mine-resource-icon-wood,
|
||
.mine-resource-icon-stone {
|
||
width: 28px;
|
||
height: 28px;
|
||
flex-shrink: 0;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.mine-resource-icon-gold img,
|
||
.mine-resource-icon-iron img,
|
||
.mine-resource-icon-wood img,
|
||
.mine-resource-icon-stone img {
|
||
width: 28px;
|
||
height: 28px;
|
||
object-fit: contain;
|
||
filter: drop-shadow(0 1px 3px rgba(0,0,0,0.7));
|
||
display: block;
|
||
}
|
||
|
||
.mine-resource-label {
|
||
flex: 1;
|
||
font-size: 13px;
|
||
font-weight: bold;
|
||
color: #ffffff;
|
||
}
|
||
|
||
.mine-resource-amount {
|
||
font-size: 15px;
|
||
font-weight: bold;
|
||
color: #f0c84a;
|
||
min-width: 32px;
|
||
text-align: right;
|
||
text-shadow: 0 1px 3px rgba(0,0,0,0.6);
|
||
}
|
||
|
||
/* ── Fortschrittsbalken ────────────────────────── */
|
||
.mine-progress-wrap {
|
||
height: 5px;
|
||
background: rgba(255,255,255,0.07);
|
||
border-radius: 3px;
|
||
margin: 8px 0 6px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.mine-progress-bar {
|
||
height: 100%;
|
||
background: linear-gradient(90deg, #c8952a, #f0c84a);
|
||
border-radius: 3px;
|
||
transition: width 0.6s ease;
|
||
}
|
||
|
||
/* ── Timer-Zeile ───────────────────────────────── */
|
||
.mine-timer-row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 2px 0;
|
||
}
|
||
|
||
.mine-timer-label {
|
||
font-size: 12px;
|
||
color: #a07830;
|
||
}
|
||
|
||
.mine-timer {
|
||
font-size: 13px;
|
||
font-family: monospace;
|
||
color: #f0c84a;
|
||
background: rgba(0,0,0,0.35);
|
||
border: 1px solid #7a5a1a;
|
||
border-radius: 5px;
|
||
padding: 3px 10px;
|
||
letter-spacing: 0.05em;
|
||
}
|
||
|
||
.mine-timer-full {
|
||
color: #ff9040;
|
||
border-color: #ff6020;
|
||
animation: minePulse 1s ease-in-out infinite;
|
||
}
|
||
|
||
/* ── Schleifen-Bereich ─────────────────────────── */
|
||
.mine-loop-row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.mine-loop-dots {
|
||
display: flex;
|
||
gap: 6px;
|
||
align-items: center;
|
||
}
|
||
|
||
.mine-loop-dot {
|
||
width: 14px;
|
||
height: 14px;
|
||
border-radius: 50%;
|
||
background: rgba(255,255,255,0.08);
|
||
border: 1px solid rgba(122, 90, 26, 0.5);
|
||
transition: background 0.3s, border-color 0.3s;
|
||
}
|
||
|
||
.mine-loop-dot-active {
|
||
background: linear-gradient(135deg, #a030f0, #6010c0);
|
||
border-color: #c060ff;
|
||
box-shadow: 0 0 6px rgba(160, 48, 240, 0.6);
|
||
}
|
||
|
||
.mine-loop-info {
|
||
font-size: 12px;
|
||
color: #a07830;
|
||
}
|
||
|
||
.mine-loop-maxed {
|
||
color: #f0c84a;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.mine-btn-loop {
|
||
width: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 6px;
|
||
background: linear-gradient(180deg, #3a1060 0%, #200840 100%);
|
||
color: #d090ff;
|
||
border: 1px solid #8040c0;
|
||
border-radius: 6px;
|
||
padding: 8px 16px;
|
||
font-size: 12px;
|
||
font-family: sans-serif;
|
||
font-weight: bold;
|
||
cursor: pointer;
|
||
letter-spacing: 0.03em;
|
||
transition: filter 0.15s, transform 0.1s;
|
||
box-shadow: 0 2px 6px rgba(0,0,0,0.4);
|
||
}
|
||
|
||
.mine-btn-loop:hover:not(:disabled) {
|
||
filter: brightness(1.25);
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
.mine-btn-loop:active:not(:disabled) {
|
||
transform: translateY(0);
|
||
filter: brightness(0.9);
|
||
}
|
||
|
||
.mine-btn-loop.mine-btn-disabled,
|
||
.mine-btn-loop:disabled {
|
||
background: linear-gradient(180deg, #1a1020 0%, #100810 100%);
|
||
border-color: #3a2050;
|
||
color: #604080;
|
||
cursor: not-allowed;
|
||
box-shadow: none;
|
||
transform: none;
|
||
filter: none;
|
||
}
|
||
|
||
.mine-loop-gem-icon {
|
||
font-size: 14px;
|
||
}
|
||
|
||
.mine-loop-no-gems {
|
||
font-size: 10px;
|
||
color: #804060;
|
||
font-weight: normal;
|
||
}
|
||
|
||
/* ── Aktions-Bereich ───────────────────────────── */
|
||
.mine-actions {
|
||
margin-top: 4px;
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
|
||
/* ── Abholen-Button ────────────────────────────── */
|
||
.mine-btn-collect {
|
||
background: linear-gradient(180deg, #c8952a 0%, #7a5310 100%);
|
||
color: #fff8e0;
|
||
border: 1px solid #f0c84a;
|
||
border-radius: 6px;
|
||
padding: 9px 28px;
|
||
font-size: 13px;
|
||
font-family: sans-serif;
|
||
font-weight: bold;
|
||
cursor: pointer;
|
||
letter-spacing: 0.04em;
|
||
transition: filter 0.15s, transform 0.1s;
|
||
text-shadow: 0 1px 2px rgba(0,0,0,0.6);
|
||
width: 100%;
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.5);
|
||
}
|
||
|
||
.mine-btn-collect:hover:not(:disabled) {
|
||
filter: brightness(1.2);
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
.mine-btn-collect:active:not(:disabled) {
|
||
transform: translateY(0);
|
||
filter: brightness(0.95);
|
||
}
|
||
|
||
.mine-btn-collect.mine-btn-disabled,
|
||
.mine-btn-collect:disabled {
|
||
background: linear-gradient(180deg, #3a3020 0%, #2a2010 100%);
|
||
border-color: #5a4a1a;
|
||
color: #7a6a3a;
|
||
cursor: not-allowed;
|
||
box-shadow: none;
|
||
transform: none;
|
||
filter: none;
|
||
}
|
||
|
||
/* ── Lade- & Fehlerzustände ────────────────────── */
|
||
.mine-loading {
|
||
padding: 24px;
|
||
text-align: center;
|
||
color: #a07830;
|
||
font-size: 13px;
|
||
letter-spacing: 0.04em;
|
||
animation: minePulse 1.2s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes minePulse {
|
||
0%, 100% { opacity: 1; }
|
||
50% { opacity: 0.45; }
|
||
}
|
||
|
||
.mine-error {
|
||
padding: 16px;
|
||
text-align: center;
|
||
color: #c84040;
|
||
font-size: 12px;
|
||
}
|