        /* --- CSS GERAL --- */
        body { margin: 0; padding: 0; font-family: 'Lato', sans-serif; background-color: #0f1012; overflow-x: hidden; color:#ccc; }
        .fixed-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(0,0,0,0.85), rgba(0,0,0,0.85)), url('img/bg_landing.jpg'); background-size: cover; z-index: -10; }
        
        .navbar { position: fixed; top: 0; left: 0; width: 100%; height: 80px; z-index: 5000; background: rgba(8, 4, 2, 0.95); border-bottom: 1px solid #d4af37; box-shadow: 0 5px 20px #000; display: flex; justify-content: space-between; align-items: center; padding: 0 30px; backdrop-filter: blur(5px); }
        .nav-logo img { height: 50px; transition: 0.3s; filter: drop-shadow(0 0 2px #000); }
        .nav-logo img:hover { transform: scale(1.05); }
        .nav-links { list-style: none; display: flex; gap: 20px; }
        .nav-links a { text-decoration: none; color: #bbb; font-family: 'Cinzel'; font-weight: bold; transition: 0.3s; }
        .nav-links a:hover, .nav-links a.active { color: #d4af37; }
        .nav-right { display: flex; align-items: center; gap: 20px; }

        .main-grid { display: grid; grid-template-columns: 1fr 300px; gap: 30px; max-width: 1200px; margin: 120px auto 50px auto; padding: 0 20px; }
        .hub-container { background: url('img/pergaminho.png'); background-size: 100% 100%; background-color: #e3dac2; box-shadow: 0 0 50px #000; border-radius: 5px; padding: 40px; color: #333; min-height: 600px; border: 1px solid #8b4513; }

        .alert-box { padding: 15px; margin-bottom: 20px; border-radius: 4px; font-weight: bold; text-align: center; }
        .alert-error { background: rgba(139, 0, 0, 0.2); border: 1px solid #8b0000; color: #8b0000; }
        .alert-success { background: rgba(0, 100, 0, 0.2); border: 1px solid #006400; color: #006400; }

        .hub-header { border-bottom: 2px solid #8b4513; padding-bottom: 20px; margin-bottom: 30px; display: flex; justify-content: space-between; align-items: center; }
        .hub-header h1 { font-family: 'MedievalSharp'; margin: 0; font-size: 2rem; color: #5a0000; }
        .account-status { font-family: 'Cinzel'; font-weight: bold; color: #800000; }

        .hub-tabs { display: flex; gap: 10px; margin-bottom: 30px; border-bottom: 1px solid #aaa; flex-wrap: wrap; }
        .tab-btn { background: rgba(0,0,0,0.1); border: 1px solid #aaa; border-bottom: none; padding: 10px 20px; font-family: 'Cinzel'; font-weight: bold; cursor: pointer; transition: 0.3s; color: #555; }
        .tab-btn:hover { background: rgba(212, 175, 55, 0.2); }
        .tab-btn.active { background: #d4af37; color: #000; border-color: #d4af37; }
        .tab-btn.admin-tab { color: #800000; border-color: #800000; }
        .tab-btn.admin-tab.active { background: #800000; color: #fff; }
        .tab-content { display: none; animation: fadeIn 0.5s; }
        .tab-content.active { display: block; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

        .char-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
        .char-card { 
            background: rgba(0,0,0,0.05); border: 1px solid #8b4513; padding: 15px; border-radius: 5px; 
            position: relative; transition: 0.3s; display: flex; align-items: center; gap: 15px; 
            cursor: pointer;
        }
        .char-card:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.2); background: rgba(255,255,255,0.4); }
        .char-img img { transform: scale(1.2); image-rendering: pixelated; }
        
        /* ESTILO PARA PERSONAGEM OCULTO */
        .char-hidden { opacity: 0.6; filter: grayscale(100%); background: rgba(0,0,0,0.1); }
        .char-hidden:hover { opacity: 0.9; filter: grayscale(50%); }

        .char-actions { display: flex; flex-direction: column; gap: 5px; }
        .btn-mini { padding: 5px; border: 1px solid #aaa; background: #fff; cursor: pointer; border-radius: 3px; color: #555; font-size: 0.8rem; transition: 0.2s; }
        .btn-mini:hover { background: #eee; color: #000; }
        .btn-del { color: #a00000; border-color: #ffcccc; }
        .btn-del:hover { background: #ffe6e6; }
        .btn-hide { color: #555; }
        
        .status-badge { position: absolute; top: 10px; right: 10px; width: 10px; height: 10px; border-radius: 50%; }
        .online { background: #00cc00; box-shadow: 0 0 5px #00cc00; }
        .offline { background: #cc0000; }

        .create-char-form { background: rgba(0,0,0,0.03); padding: 20px; border: 1px dashed #8b4513; margin-bottom: 20px; display: none; border-radius: 5px; }
        .form-row { margin-bottom: 15px; }
        .form-input { width: 100%; padding: 10px; border: 1px solid #8b4513; background: #fff; font-family: 'Cinzel'; }
        .btn-action { width: 100%; padding: 10px; background: #222; color: #d4af37; border: 2px solid #d4af37; font-family: 'Cinzel'; font-weight: bold; cursor: pointer; transition: 0.2s; }
        .btn-action:hover { background: #d4af37; color: #000; }

        .btn-logout-panel { display:inline-block; padding: 5px 15px; border: 1px solid #8b0000; background: #5a0000; color: #fff; text-decoration: none; font-weight: bold; font-size: 0.8rem; border-radius: 4px; }
        .btn-logout-panel:hover { background: #8b0000; }

        .login-wrapper { text-align: center; max-width: 400px; margin: 50px auto; border: 2px solid #8b4513; padding: 30px; border-radius: 5px; background: rgba(0,0,0,0.05); }

        .sidebar { display: flex; flex-direction: column; gap: 20px; }
        .widget { background: rgba(0, 0, 0, 0.6); border: 1px solid #444; border-radius: 5px; padding: 15px; backdrop-filter: blur(5px); }
        .widget-title { font-family: 'Cinzel'; color: #d4af37; border-bottom: 1px solid #d4af37; padding-bottom: 5px; margin-bottom: 15px; text-transform: uppercase; font-size: 1rem; }
        .search-input { width: 100%; padding: 10px; background: #222; border: 1px solid #555; color: #fff; box-sizing: border-box; }
        .search-btn { width: 100%; margin-top: 5px; padding: 10px; background: #d4af37; border: none; font-weight: bold; cursor: pointer; transition:0.3s; }

        .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); z-index: 9999; justify-content: center; align-items: center; }
        .modal-content { background: #e3dac2; padding: 30px; border: 2px solid #8b4513; width: 300px; text-align: center; border-radius: 5px; position:relative; }
        .close-modal { position:absolute; top:5px; right:10px; cursor:pointer; font-size:1.5rem; color:#8b0000; }

        .admin-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
        .admin-btn { padding: 15px; background: #800000; color: #fff; border: 1px solid #000; text-align: center; font-family: 'Cinzel'; cursor: pointer; transition: 0.3s; text-decoration: none; display: block; }
        .admin-btn:hover { background: #a00000; box-shadow: 0 0 10px #ff0000; transform: scale(1.05); }

        @media (max-width: 900px) { .main-grid { grid-template-columns: 1fr; } .hub-container { min-height: auto; } }
