| :root { |
| --bg-dark: #0a0b10; |
| --bg-panel: rgba(18, 20, 28, 0.75); |
| --border-glass: rgba(57, 255, 20, 0.2); |
| |
| --accent-lime: #39FF14; |
| --accent-magenta: #ff003c; |
| |
| --text-main: #f0f4f8; |
| --text-muted: #8a94a6; |
| |
| --font-sans: 'Inter', sans-serif; |
| --font-mono: 'JetBrains Mono', monospace; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| body { |
| background-color: var(--bg-dark); |
| color: var(--text-main); |
| font-family: var(--font-sans); |
| min-height: 100vh; |
| overflow: hidden; |
| } |
|
|
| |
| .ambient-glow { |
| position: fixed; |
| border-radius: 50%; |
| filter: blur(120px); |
| z-index: -1; |
| opacity: 0.3; |
| pointer-events: none; |
| } |
| .ambient-glow.top-left { |
| top: -10vw; |
| left: -10vw; |
| width: 40vw; |
| height: 40vw; |
| background: radial-gradient(circle, rgba(57, 255, 20, 0.2) 0%, rgba(0,0,0,0) 70%); |
| } |
| .ambient-glow.bottom-right { |
| bottom: -15vw; |
| right: -10vw; |
| width: 50vw; |
| height: 50vw; |
| background: radial-gradient(circle, rgba(57, 255, 20, 0.15) 0%, rgba(0,0,0,0) 70%); |
| } |
|
|
| .app-container { |
| display: flex; |
| flex-direction: column; |
| height: 100vh; |
| padding: 1.5rem; |
| gap: 1.5rem; |
| } |
|
|
| .glass-header { |
| background: var(--bg-panel); |
| backdrop-filter: blur(16px); |
| border: 1px solid var(--border-glass); |
| border-radius: 0; |
| padding: 1rem 2rem; |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); |
| } |
|
|
| .logo { display: flex; align-items: center; gap: 12px; } |
| .logo .icon { font-size: 1.5rem; } |
| .logo h1 { font-size: 1.5rem; font-weight: 700; color: var(--accent-lime); letter-spacing: 2px; } |
| .subtitle { font-weight: 300; color: var(--text-muted); font-size: 0.9rem; } |
|
|
| .controls { |
| display: flex; |
| gap: 12px; |
| } |
|
|
| button { |
| cursor: pointer; |
| font-family: var(--font-sans); |
| border: none; |
| transition: all 0.2s; |
| } |
| .action-btn { |
| background: rgba(255, 255, 255, 0.05); |
| color: var(--text-main); |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| padding: 8px 20px; |
| border-radius: 0; |
| font-size: 0.9rem; |
| font-weight: 600; |
| } |
| .action-btn:hover:not(:disabled) { background: rgba(255, 255, 255, 0.1); } |
| .action-btn.primary { |
| background: rgba(57, 255, 20, 0.1); |
| color: var(--accent-lime); |
| border-color: rgba(57, 255, 20, 0.3); |
| } |
| .action-btn.primary:hover:not(:disabled) { |
| background: rgba(57, 255, 20, 0.2); |
| box-shadow: 0 0 15px rgba(57, 255, 20, 0.4); |
| } |
| .action-btn.danger { |
| color: var(--accent-magenta); |
| border-color: rgba(255, 0, 60, 0.3); |
| } |
| .action-btn:disabled { opacity: 0.4; cursor: not-allowed; } |
| .nav-link { |
| text-decoration: none; |
| display: inline-flex; |
| align-items: center; |
| color: var(--accent-lime); |
| background: rgba(57, 255, 20, 0.08); |
| border-color: rgba(57, 255, 20, 0.35); |
| letter-spacing: 0.5px; |
| } |
| .nav-link:hover { background: rgba(57, 255, 20, 0.2); box-shadow: 0 0 14px rgba(57, 255, 20, 0.3); } |
|
|
| .dashboard-grid { |
| display: flex; |
| flex-direction: column; |
| gap: 1.5rem; |
| flex: 1; |
| min-height: 0; |
| } |
| |
| .breeding-panel { flex: 0 0 auto; max-height: 46vh; } |
| .inventory-panel { flex: 1 1 0; min-height: 0; } |
|
|
| .glass-panel { |
| background: var(--bg-panel); |
| backdrop-filter: blur(16px); |
| border: 1px solid var(--border-glass); |
| border-radius: 0; |
| display: flex; |
| flex-direction: column; |
| overflow: hidden; |
| } |
|
|
| .panel-header { |
| padding: 1rem 1.5rem; |
| border-bottom: 1px solid rgba(255, 255, 255, 0.05); |
| background: rgba(0, 0, 0, 0.2); |
| } |
| .panel-header h2 { font-size: 1.1rem; color: var(--accent-lime); display: flex; align-items: center; gap: 8px; } |
|
|
| .panel-content { |
| flex: 1; |
| overflow-y: auto; |
| padding: 1.5rem; |
| } |
|
|
| .panel-content::-webkit-scrollbar { width: 8px; } |
| .panel-content::-webkit-scrollbar-track { background: transparent; } |
| .panel-content::-webkit-scrollbar-thumb { background: rgba(57, 255, 20, 0.2); border-radius: 0; } |
|
|
| |
| #inventory-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); |
| gap: 1.5rem; |
| align-content: start; |
| align-items: start; |
| } |
|
|
| .seed-card { |
| background: rgba(0, 0, 0, 0.4); |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| border-radius: 0; |
| padding: 1rem; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 10px; |
| cursor: pointer; |
| transition: all 0.2s; |
| position: relative; |
| overflow: hidden; |
| } |
| .seed-card { overflow: visible; } |
| .seed-card:hover { |
| transform: translateY(-4px); |
| border-color: var(--accent-lime); |
| box-shadow: 0 4px 20px rgba(57, 255, 20, 0.15); |
| } |
| .seed-card.selected { |
| border-color: var(--accent-lime); |
| background: rgba(57, 255, 20, 0.05); |
| box-shadow: 0 0 15px rgba(57, 255, 20, 0.2); |
| } |
|
|
| .seed-img { |
| width: 96px; |
| height: 96px; |
| flex-shrink: 0; |
| object-fit: contain; |
| image-rendering: pixelated; |
| } |
|
|
| .seed-name { |
| font-weight: 700; |
| text-align: center; |
| font-size: 0.95rem; |
| width: 100%; |
| white-space: normal; |
| word-break: break-word; |
| } |
| .seed-type { font-family: var(--font-mono); font-size: 0.75rem; color: var(--accent-lime); } |
| .seed-stage { font-size: 0.8rem; color: var(--text-muted); } |
|
|
| .grow-btn { |
| width: 100%; |
| padding: 6px; |
| background: rgba(255, 255, 255, 0.1); |
| color: white; |
| border-radius: 0; |
| font-size: 0.8rem; |
| margin-top: auto; |
| } |
| .grow-btn:hover { background: rgba(255, 255, 255, 0.2); } |
|
|
| |
| .breeding-pit { |
| flex: 1; |
| min-height: 0; |
| display: flex; |
| flex-direction: row; |
| gap: 1rem; |
| padding: 1rem; |
| overflow: hidden; |
| } |
|
|
| .parent-slot { |
| flex: 1 1 0; |
| min-height: 0; |
| background: rgba(0, 0, 0, 0.3); |
| border: 1px dashed rgba(255, 255, 255, 0.2); |
| border-radius: 0; |
| display: flex; |
| flex-direction: column; |
| padding: 1.25rem; |
| overflow-y: auto; |
| overflow-x: hidden; |
| } |
| .parent-slot::-webkit-scrollbar { width: 8px; } |
| .parent-slot::-webkit-scrollbar-track { background: transparent; } |
| .parent-slot::-webkit-scrollbar-thumb { background: rgba(57, 255, 20, 0.2); border-radius: 0; } |
| .empty-slot { |
| flex: 1; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| color: var(--text-muted); |
| font-family: var(--font-mono); |
| font-style: italic; |
| } |
|
|
| .parent-details { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 1rem; |
| width: 100%; |
| } |
| .parent-img { |
| width: 128px; |
| height: 128px; |
| flex-shrink: 0; |
| object-fit: contain; |
| image-rendering: pixelated; |
| background: rgba(0,0,0,0.5); |
| border-radius: 0; |
| } |
| .parent-stats { |
| flex: 1; |
| display: flex; |
| flex-direction: column; |
| gap: 4px; |
| min-width: 140px; |
| } |
| .stat-row { |
| display: flex; |
| justify-content: space-between; |
| gap: 8px; |
| min-width: 0; |
| font-family: var(--font-mono); |
| font-size: 0.8rem; |
| border-bottom: 1px solid rgba(255,255,255,0.05); |
| padding-bottom: 4px; |
| } |
| .stat-label { color: var(--text-muted); white-space: nowrap; flex-shrink: 0; } |
| .stat-val { |
| color: var(--accent-lime); |
| text-align: right; |
| min-width: 0; |
| white-space: normal; |
| overflow-wrap: anywhere; |
| } |
| .lineage-canvas { max-width: 100%; } |
|
|
| |
| .seed-card[title] { position: relative; } |
|
|
| |
| #toast-host { |
| position: fixed; |
| bottom: 1.5rem; |
| right: 1.5rem; |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| z-index: 1000; |
| pointer-events: none; |
| } |
| .toast { |
| min-width: 240px; |
| max-width: 360px; |
| padding: 12px 16px; |
| background: var(--bg-panel); |
| backdrop-filter: blur(16px); |
| border: 1px solid var(--border-glass); |
| border-left-width: 3px; |
| color: var(--text-main); |
| font-family: var(--font-mono); |
| font-size: 0.85rem; |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); |
| opacity: 0; |
| transform: translateX(20px); |
| transition: opacity 0.3s ease, transform 0.3s ease; |
| } |
| .toast.show { opacity: 1; transform: translateX(0); } |
| .toast-success { border-left-color: var(--accent-lime); } |
| .toast-error { border-left-color: var(--accent-magenta); } |
| .toast-info { border-left-color: var(--text-muted); } |
|
|
| |
| @media (max-width: 820px) { |
| body { overflow: auto; } |
| .app-container { height: auto; min-height: 100vh; } |
| .glass-header { flex-direction: column; align-items: stretch; gap: 8px; padding: 0.8rem 1rem; } |
| .logo h1 { font-size: 1.1rem; } |
| .controls { flex-wrap: wrap; justify-content: center; } |
| .controls .action-btn { flex: 1 1 auto; text-align: center; } |
| .breeding-panel { flex: none; max-height: none; min-height: 60vh; } |
| .breeding-pit { flex-direction: column; } |
| .inventory-panel { flex: none; min-height: 65vh; } |
| #inventory-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 1rem; } |
| } |
|
|