/* ============================================ Minecraft-Themed Inventory Manager Dashboard ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&display=swap'); :root { --mc-dark: #1a1a1a; --mc-darker: #0e0e0e; --mc-stone: #7b7b7b; --mc-stone-light: #9d9d9d; --mc-stone-dark: #4b4b4b; --mc-dirt: #6b5030; --mc-dirt-dark: #4a3520; --mc-oak: #8b6d3c; --mc-oak-dark: #6b4e28; --mc-oak-light: #b89b60; --mc-grass: #5b8731; --mc-grass-light: #80b94e; --mc-grass-dark: #3d6b1a; --mc-inv-bg: #c6c6c6; --mc-inv-slot: #8b8b8b; --mc-inv-slot-border: #373737; --mc-inv-slot-light: #ffffff; --mc-text-white: #e0e0e0; --mc-text-gray: #a0a0a0; --mc-text-dark: #404040; --mc-text-yellow: #ffff55; --mc-text-green: #55ff55; --mc-text-red: #ff5555; --mc-text-aqua: #55ffff; --mc-text-gold: #ffaa00; --mc-text-light-purple: #ff55ff; --mc-text-blue: #5555ff; --mc-diamond: #4aedd9; --mc-emerald: #17dd62; --mc-redstone: #ff0000; --mc-lapis: #345ec3; --mc-border-highlight: #ffffff55; --mc-border-shadow: #00000088; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Silkscreen', 'Courier New', monospace; background: #2c2c2c; color: var(--mc-text-white); image-rendering: pixelated; overflow: hidden; } .app { width: 100vw; height: 100vh; display: flex; flex-direction: column; overflow: hidden; } /* === Header === */ .app-header { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1.25rem; background: var(--mc-oak-dark); border-bottom: 3px solid var(--mc-dark); box-shadow: inset 0 2px 0 var(--mc-oak-light), inset 0 -2px 0 var(--mc-dirt-dark); flex-shrink: 0; } .app-header h1 { font-size: 1.1rem; font-weight: 700; color: var(--mc-text-yellow); text-shadow: 2px 2px 0 var(--mc-dark); letter-spacing: 0.05em; } .header-right { display: flex; align-items: center; gap: 0.75rem; } /* === Alerts Bell === */ .alerts-bell { position: relative; background: none; border: 2px solid transparent; cursor: pointer; font-size: 1.2rem; padding: 0.25rem 0.375rem; border-radius: 0; transition: all 0.1s; line-height: 1; } .alerts-bell:hover { background: rgba(255, 255, 255, 0.1); border-color: #555; } .alerts-bell.has-alerts { animation: bell-shake 2s infinite ease-in-out; } .alerts-bell-badge { position: absolute; top: -4px; right: -4px; background: var(--mc-text-red); color: white; font-size: 0.5rem; font-weight: 700; font-family: 'Silkscreen', 'Courier New', monospace; padding: 1px 3px; min-width: 14px; text-align: center; border: 1px solid var(--mc-dark); text-shadow: 1px 1px 0 #000; } @keyframes bell-shake { 0%, 80%, 100% { transform: rotate(0deg); } 85% { transform: rotate(8deg); } 90% { transform: rotate(-8deg); } 95% { transform: rotate(4deg); } } /* === Connection Status === */ .connection-status { display: flex; align-items: center; gap: 0.5rem; padding: 0.375rem 0.75rem; border: 2px solid var(--mc-dark); font-weight: 700; font-size: 0.7rem; text-shadow: 1px 1px 0 var(--mc-dark); } .connection-status.connected { background: var(--mc-grass-dark); color: var(--mc-text-green); box-shadow: inset 0 1px 0 var(--mc-grass-light), inset 0 -1px 0 #2a5010; } .connection-status.disconnected { background: #6b1a1a; color: var(--mc-text-red); box-shadow: inset 0 1px 0 #a03030, inset 0 -1px 0 #400e0e; } .status-dot { width: 0.5rem; height: 0.5rem; border-radius: 0; animation: mc-blink 1.5s steps(2) infinite; } .connected .status-dot { background: var(--mc-text-green); box-shadow: 0 0 4px var(--mc-text-green); } .disconnected .status-dot { background: var(--mc-text-red); box-shadow: 0 0 4px var(--mc-text-red); } @keyframes mc-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } /* === Command Toast === */ .command-toast { position: fixed; top: 60px; left: 50%; transform: translateX(-50%); padding: 0.5rem 1.5rem; border: 2px solid var(--mc-dark); font-size: 0.75rem; font-weight: 700; z-index: 1000; text-shadow: 1px 1px 0 var(--mc-dark); animation: toast-in 0.2s ease; } .command-toast.success { background: var(--mc-grass-dark); color: var(--mc-text-green); } .command-toast.error { background: #6b1a1a; color: var(--mc-text-red); } @keyframes toast-in { from { opacity: 0; transform: translateX(-50%) translateY(-10px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } } /* === Main Content === */ .app-content { flex: 1; display: flex; overflow: hidden; } /* === Sidebar === */ .sidebar { width: 280px; background: #333; border-right: 3px solid var(--mc-dark); overflow-y: auto; flex-shrink: 0; } /* === Main Panel === */ .main-panel { flex: 1; display: flex; flex-direction: column; overflow: hidden; } /* === Panel Tabs === */ .panel-tabs { display: flex; gap: 0.25rem; padding: 0.5rem; background: #3b3b3b; border-bottom: 3px solid var(--mc-dark); overflow-x: auto; flex-shrink: 0; } .panel-tabs button { padding: 0.5rem 1rem; border: 2px solid var(--mc-dark); background: #5a5a5a; color: var(--mc-text-gray); border-radius: 0; font-size: 0.875rem; font-weight: 700; cursor: pointer; transition: all 0.1s; white-space: nowrap; font-family: 'Silkscreen', 'Courier New', monospace; text-shadow: 1px 1px 0 var(--mc-dark); box-shadow: inset 0 -2px 0 #444, inset 0 2px 0 #777; } .panel-tabs button:hover { background: #6b6b6b; color: var(--mc-text-white); } .panel-tabs button.active { background: #4a8c2a; color: white; box-shadow: inset 0 2px 0 #6ab04c, inset 0 -2px 0 #2d6b1a; } .panel-content-wrapper { flex: 1; overflow: hidden; display: flex; flex-direction: column; } /* === Scrollbar === */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #2c2c2c; } ::-webkit-scrollbar-thumb { background: #5a5a5a; border: 1px solid var(--mc-dark); } ::-webkit-scrollbar-thumb:hover { background: #6b6b6b; } /* === Section styling === */ .detail-section { margin-bottom: 1rem; padding: 0.875rem; background: #3b3b3b; border: 3px solid var(--mc-dark); border-radius: 0; box-shadow: inset 0 2px 0 #555, inset 0 -2px 0 #2a2a2a; } .detail-section h3 { font-size: 0.8rem; margin-bottom: 0.75rem; color: var(--mc-text-gold); font-weight: 700; display: flex; align-items: center; gap: 0.5rem; text-shadow: 1px 1px 0 var(--mc-dark); text-transform: uppercase; letter-spacing: 0.05em; } /* === MC Button === */ .mc-btn { padding: 0.5rem 0.75rem; border: 2px solid var(--mc-dark); border-radius: 0; font-size: 0.7rem; font-weight: 700; cursor: pointer; transition: all 0.05s; color: white; display: flex; align-items: center; justify-content: center; gap: 0.25rem; white-space: nowrap; font-family: 'Silkscreen', 'Courier New', monospace; text-shadow: 1px 1px 0 var(--mc-dark); background: #6b6b6b; box-shadow: inset 0 2px 0 #999, inset 0 -2px 0 #444; } .mc-btn:hover { background: #7b7b7b; box-shadow: inset 0 2px 0 #aaa, inset 0 -2px 0 #555; } .mc-btn:active { background: #555; box-shadow: inset 0 2px 0 #333, inset 0 -2px 0 #777; } .mc-btn.green { background: var(--mc-grass-dark); box-shadow: inset 0 2px 0 var(--mc-grass-light), inset 0 -2px 0 #2a5010; } .mc-btn.green:hover { background: var(--mc-grass); } .mc-btn.red { background: #8b2e2e; box-shadow: inset 0 2px 0 #bb4444, inset 0 -2px 0 #661a1a; } .mc-btn.red:hover { background: #a03e3e; } .mc-btn.blue { background: #2e4a8b; box-shadow: inset 0 2px 0 #4466bb, inset 0 -2px 0 #1a2a66; } .mc-btn.blue:hover { background: #3e5a9b; } .mc-btn.gold { background: #8b6b2e; box-shadow: inset 0 2px 0 #bb9944, inset 0 -2px 0 #664a1a; } .mc-btn.gold:hover { background: #9b7b3e; } /* === Responsive === */ @media (max-width: 1024px) { .sidebar { width: 220px; } } @media (max-width: 768px) { .app-content { flex-direction: column; } .sidebar { width: 100%; max-height: 200px; border-right: none; border-bottom: 3px solid var(--mc-dark); } } @media (max-width: 480px) { .app-header h1 { font-size: 0.85rem; } .panel-tabs button { font-size: 0.7rem; padding: 0.4rem 0.6rem; } } /* Reduced motion */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }