@import url('https://fonts.googleapis.com/css2?family=Fredoka+One&family=Roboto:wght@400;700&display=swap');

body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    background: url('bg.png') no-repeat center top;
    background-size: cover;
    background-attachment: fixed;
    color: #333;
}

.portal-container {
    max-width: 1000px;
    margin: 150px auto 50px; /* Leave space for sky */
    display: flex;
    gap: 15px;
}

/* Common Panel Style */
.panel {
    background: linear-gradient(to bottom, #dff6fa, #bce8f1);
    border: 2px solid #5bc0de;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2), inset 0 2px 5px rgba(255,255,255,0.8);
    overflow: hidden;
    margin-bottom: 15px;
}

/* Left Column */
.col-left {
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.btn-game-start {
    display: block;
    background: linear-gradient(to bottom, #8cc63f, #39b54a);
    color: #fff;
    text-align: center;
    font-family: 'Fredoka One', cursive;
    font-size: 28px;
    text-decoration: none;
    padding: 30px 10px 15px;
    border-radius: 12px;
    border: 3px solid #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    position: relative;
    text-shadow: 2px 2px 0px #2a7d2e;
    transition: transform 0.2s;
}
.btn-game-start:hover {
    transform: scale(1.05);
}
.btn-game-start::before {
    content: "🍃";
    position: absolute;
    top: -15px;
    left: 10px;
    font-size: 30px;
}
.btn-game-start::after {
    content: "⭐";
    position: absolute;
    top: 5px;
    right: 20px;
    font-size: 20px;
}

.side-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(to bottom, #ffffff, #e6f7ff);
    border: 2px solid #a3d8f4;
    border-radius: 6px;
    padding: 10px 15px;
    text-decoration: none;
    color: #d9534f;
    font-weight: bold;
    font-size: 16px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: background 0.2s;
}
.side-btn:hover {
    background: linear-gradient(to bottom, #e6f7ff, #ffffff);
}
.side-btn .go {
    background: #8cc63f;
    color: white;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
}
.side-btn.orange { color: #f0ad4e; }
.side-btn.red { color: #d9534f; }
.side-btn.green { color: #5cb85c; }

.outfit-box {
    background: #fff;
    text-align: center;
    padding: 15px;
}
.outfit-box h3 {
    margin: 0 0 10px 0;
    color: #0056b3;
    font-size: 16px;
}
.outfit-box img {
    max-width: 100%;
    height: 120px;
    object-fit: contain;
}

/* Center Column */
.col-center {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.banner-box {
    height: 200px;
    background: linear-gradient(135deg, #ff9900, #ff5e00, #ffcc00);
    background-size: 200% 200%;
    animation: gradientShift 5s ease infinite;
    border-radius: 8px;
    border: 3px solid #0056b3;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: white;
    font-family: 'Fredoka One', cursive;
    font-size: 32px;
    text-shadow: 2px 2px 0px #cc7a00;
}
@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.free-gold {
    animation: pulseGold 1.5s infinite alternate;
}
@keyframes pulseGold {
    0% { transform: scale(1); text-shadow: 0 0 10px #fff, 2px 2px 0px #cc7a00; }
    100% { transform: scale(1.1); text-shadow: 0 0 30px #ffff00, 4px 4px 0px #cc7a00; color: #ffffaa; }
}

.news-box {
    background: #dff6fa;
}
.news-tabs {
    display: flex;
    background: #5bc0de;
}
.news-tabs button {
    flex: 1;
    background: none;
    border: none;
    padding: 10px;
    color: white;
    font-weight: bold;
    cursor: pointer;
    border-right: 1px solid #46b8da;
}
.news-tabs button.active {
    background: #dff6fa;
    color: #0056b3;
}
.news-list {
    padding: 15px;
    list-style: none;
    margin: 0;
}
.news-list li {
    padding: 8px 0;
    border-bottom: 1px dashed #bce8f1;
    display: flex;
    align-items: center;
    font-size: 14px;
}
.tag {
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    margin-right: 10px;
    font-weight: bold;
}
.tag-news { background: #5cb85c; }
.tag-notice { background: #d9534f; }
.tag-event { background: #5bc0de; }
.news-date {
    margin-left: auto;
    color: #666;
    font-size: 12px;
}

/* Right Column */
.col-right {
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.status-box {
    padding: 15px;
    font-size: 14px;
    font-weight: bold;
}
.status-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    color: #0056b3;
}
.status-online {
    color: #5cb85c;
}

/* Auth Cards */
.auth-container {
    max-width: 400px;
    margin: 150px auto 50px;
    background: linear-gradient(to bottom, #dff6fa, #bce8f1);
    border: 2px solid #5bc0de;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    padding: 20px;
}
.auth-container h2 {
    color: #0056b3;
    text-align: center;
    margin-top: 0;
}
.form-group { margin-bottom: 15px; }
.form-group label { display: block; font-weight: bold; color: #333; margin-bottom: 5px; }
.form-control { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; }
.btn-submit { width: 100%; background: #5cb85c; color: white; padding: 10px; border: none; border-radius: 4px; font-weight: bold; cursor: pointer; }
.btn-submit:hover { background: #4cae4c; }
.alert-error { background: #f2dede; color: #a94442; padding: 10px; border-radius: 4px; margin-bottom: 15px; }
.alert-success { background: #dff0d8; color: #3c763d; padding: 10px; border-radius: 4px; margin-bottom: 15px; }
.text-center { text-align: center; margin-top: 15px; }
.text-center a { color: #0056b3; text-decoration: none; font-weight: bold; }
