/* ========================================
  ROBi Technology - Main Stylesheet
  Version: 2.0 (Complete Styles)
  ========================================
*/

/* --- 1. Global Variables and Base Styles --- */
@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@300;400;500;600;700&display=swap');

:root {
    --primary-orange: #f05a27;
    --hover-orange: #ea580c;
    --text-black: #000000;
    --text-gray: #4B5563;
    --bg-white: #ffffff;
    --light-orange: #FFF7ED; /* Used for backgrounds/accents */
    --border-radius-lg: 2rem;
    --border-radius-md: 1.5rem;
    --border-radius-sm: 0.5rem;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Hind Siliguri', sans-serif;
    background-color: var(--bg-white);
    color: var(--text-black);
    line-height: 1.5;
}

a { text-decoration: none; color: inherit; transition: 0.3s; }
ul { list-style: none; }
button { cursor: pointer; font-family: inherit; }

/* Utility Classes */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}
.full-width-container {
    max-width: 1400px; /* Used for dashboard header */
    margin: 0 auto;
    padding: 0 1rem;
}

/* --- 2. Header Styles (Used on all pages: index, dashboard) --- */
header {
    padding: 1.5rem 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.logo {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    flex-shrink: 0;
}
.logo span.orange { color: var(--primary-orange); }
.logo span.black { color: var(--text-black); }

.header-right {
    display: flex;
    align-items: center;
    gap: 2rem;
    position: relative; /* For dropdown */
}

.nav-menu {
    display: none;
    gap: 1rem;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--primary-orange);
    align-items: center;
}

.nav-divider { color: #D1D5DB; }
.nav-menu a:hover { color: var(--hover-orange); }

.header-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid #eee;
    cursor: pointer;
    flex-shrink: 0;
}
.header-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Style for the Login Button in Header */
.login-header-btn {
    background-color: var(--primary-orange);
    color: white;
    font-weight: 700;
    padding: 0.5rem 1rem;
    border-radius: var(--border-radius-sm);
    border: none;
    transition: background-color 0.3s;
    font-size: 0.9rem;
    text-transform: uppercase;
}
.login-header-btn:hover {
    background-color: var(--hover-orange);
}

/* NEW: Dropdown Menu Styles */
.header-profile-container {
    position: relative;
    z-index: 50;
}

.avatar-dropdown {
    position: absolute;
    top: 55px; /* Below the avatar */
    right: 0;
    background: white;
    border-radius: var(--border-radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    min-width: 150px;
    padding: 0.5rem 0;
    display: none;
    flex-direction: column;
}

.avatar-dropdown.show-dropdown {
    display: flex;
}

.dropdown-link {
    padding: 0.75rem 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-gray);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: background-color 0.2s;
}

.dropdown-link:hover {
    background-color: #F3F4F6;
    color: var(--primary-orange);
}

.logout-link {
    color: #B91C1C; /* Red color for logout */
    border-top: 1px solid #eee;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
}

@media (min-width: 768px) {
    .nav-menu { display: flex; font-size: 1rem; gap: 1.5rem; }
}

/* --- 3. Index Page Layout (Main Content) --- */
.index-main {
    padding-bottom: 4rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

/* Hero Slider Section */
.hero-section {
    width: 100%;
}

.hero-box {
    background-color: var(--primary-orange);
    border-radius: var(--border-radius-lg);
    padding: 4rem 2rem;
    text-align: center;
    color: white;
    position: relative;
    overflow: hidden;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 15px -3px rgba(249, 115, 22, 0.3);
}

.hero-text h2 {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

.nav-arrow {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: white;
    color: var(--primary-orange);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: transform 0.2s;
    z-index: 10;
}

.nav-arrow:hover { transform: translateY(-50%) scale(1.1); }
.nav-arrow.left { left: 2rem; }
.nav-arrow.right { right: 2rem; }

.pagination {
    position: absolute;
    bottom: 2rem;
    display: flex;
    gap: 0.8rem;
}

.dot {
    width: 14px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    transition: 0.3s;
    cursor: pointer;
}

.dot.active {
    background-color: white;
    transform: scale(1.2);
}

@media (min-width: 768px) {
    .hero-box { border-radius: var(--border-radius-lg); padding: 6rem 4rem; }
    .hero-text h2 { font-size: 3rem; }
    .nav-arrow { display: flex; }
}

/* Content Grid (Profile + Sidebar) */
.content-grid {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .content-grid {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
    }
}

/* Profile Section */
.profile-section {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.5rem;
}

.image-wrapper {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: 5px solid white;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    background-color: #eee;
}
.image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-info h1 {
    font-size: 2.5rem;
    color: var(--primary-orange);
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.status-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
}
.status-bar span.highlight { color: var(--primary-orange); }

.action-row {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.btn-portfolio {
    background-color: black;
    color: white;
    padding: 0.8rem 2.5rem;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 500;
    border: none;
    transition: background 0.3s;
}
.btn-portfolio:hover { background-color: #333; }

.description {
    color: var(--primary-orange);
    font-size: 0.95rem;
    max-width: 300px;
    line-height: 1.6;
    font-weight: 500;
}

@media (min-width: 768px) {
    .profile-section {
        flex-direction: row;
        text-align: left;
        align-items: flex-start;
        padding-left: 1rem;
    }
    .image-wrapper { width: 230px; height: 230px; flex-shrink: 0; }
    .profile-info h1 { font-size: 3.5rem; }
    .status-bar { justify-content: flex-start; }
    .action-row { flex-direction: row; }
}

/* Sidebar Section (Index Page) */
.sidebar-wrapper {
    width: 100%;
}

.sidebar-box {
    border: 2px solid var(--primary-orange);
    border-radius: var(--border-radius-lg);
    padding: 1.5rem;
}

.sidebar-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sidebar-btn {
    display: block;
    width: 100%;
    background-color: var(--primary-orange);
    color: white;
    text-align: center;
    padding: 0.8rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: 1rem;
    border: none;
    transition: all 0.3s;
}

.sidebar-btn:hover {
    background-color: var(--hover-orange);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

@media (min-width: 1024px) {
    .sidebar-wrapper { width: 320px; flex-shrink: 0; }
}

/* --- 4. Dashboard Styles --- */

/* NEW: Background image style (Added for Dolphin/Whale fix) */
.dashboard-background {
    background-color: #F8FAFC;
    /* Uncomment and update this if you want the image to appear behind the cards */
    /*
    background-image: url('background.jpg'); 
    background-size: cover;
    background-position: center bottom; 
    background-repeat: no-repeat;
    background-attachment: fixed;
    */
}

.dash-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 2rem 1rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 1024px) {
    .dash-container {
        grid-template-columns: 260px 1fr 320px; /* Sidebar | Main | Right-Panel */
        align-items: start;
    }
}

.card {
    background: white;
    border-radius: 1.5rem;
    padding: 1.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    position: relative;
}

/* Left Sidebar */
.dash-sidebar {
    background: white;
    border-radius: 1.5rem;
    padding: 2rem 1.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.sidebar-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.sidebar-avatar {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 3px solid var(--primary-orange);
    padding: 3px;
    margin-bottom: 1rem;
}
.sidebar-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.user-name {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--primary-orange);
    margin-bottom: 0.25rem;
}

.user-id-badge {
    background-color: var(--light-orange);
    color: var(--primary-orange);
    padding: 0.3rem 0.8rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.profile-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}
.action-icon-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--light-orange);
    color: var(--primary-orange);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.2s;
}
.action-icon-btn:hover {
    background-color: var(--primary-orange);
    color: white;
}

.dash-nav {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dash-nav-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.8rem 1rem;
    border-radius: 0.8rem;
    color: var(--text-gray);
    font-weight: 600;
    transition: 0.2s;
}
.dash-nav-item:hover {
    background-color: #F3F4F6;
    color: var(--primary-orange);
}
.dash-nav-item.active {
    background-color: var(--light-orange);
    color: var(--primary-orange);
    border-right: 4px solid var(--primary-orange);
}

/* NEW: Team Member List Styles */
.team-members-container {
    padding: 0 0.5rem;
}
.team-list-header {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-gray);
    margin-bottom: 0.8rem;
}
.team-member-item {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.5rem 0.5rem;
    border-radius: 0.5rem;
    transition: background-color 0.2s;
    cursor: pointer;
}
.team-member-item:hover {
    background-color: #F3F4F6;
}
.member-avatar {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.member-name {
    font-size: 0.9rem;
    font-weight: 600;
}


/* Middle Section */
.dash-main {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.section-header {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-black);
    margin-bottom: 1rem;
}

/* Progress Bar Styles */
.progress-row {
    display: flex;
    align-items: center;
    margin-bottom: 1.2rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--primary-orange);
}
.progress-label { width: 140px; flex-shrink: 0; }
.progress-track {
    flex: 1;
    height: 10px;
    background-color: #FFE4C4;
    border-radius: 10px;
    position: relative;
    margin: 0 1rem;
}
.progress-fill {
    height: 100%;
    background-color: var(--primary-orange);
    border-radius: 10px;
}
.progress-value { width: 60px; text-align: right; }

/* Bottom Grid (Stopwatch + Rank) */
.dash-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media (min-width: 768px) {
    .dash-grid-2 { grid-template-columns: 1fr 1fr; }
}

.stat-box {
    text-align: center;
    padding: 2rem 1rem;
    border: 1px solid #eee;
    border-radius: 1.5rem;
}

.stopwatch-time {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-orange);
    font-family: monospace;
    margin: 1rem 0;
}

.rank-text {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--primary-orange);
    line-height: 1;
    margin: 0.5rem 0;
}

.card-btn {
    background-color: #FED7AA;
    color: #9A3412;
    padding: 0.6rem 1.5rem;
    border-radius: 50px;
    font-weight: 700;
    border: none;
    margin-top: 1rem;
    display: inline-block;
    width: 100%;
    font-size: 0.9rem;
}

/* Right Panel */
.dash-right {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.total-time-card {
    text-align: center;
    border: 2px solid var(--primary-orange);
    color: var(--primary-orange);
}
.total-time-val {
    font-size: 2.5rem;
    font-weight: 700;
    font-family: monospace;
}

.notice-card {
    background-color: var(--light-orange);
    border: none;
    text-align: center;
}
.notice-text {
    color: #9A3412;
    font-weight: 600;
    font-size: 1.1rem;
    line-height: 1.6;
}

/* Chat Widget */
.chat-card {
    padding: 0;
    overflow: hidden;
    display: flex; /* Make chat card flexible for header/body/input */
    flex-direction: column;
    height: 480px; /* Fixed height for chat window */
}
.chat-header {
    background-color: var(--light-orange);
    padding: 1rem;
    text-align: center;
    font-weight: 700;
    color: #9A3412;
    border-bottom: 1px solid #FED7AA;
    flex-shrink: 0;
}
.chat-body {
    padding: 1rem;
    flex-grow: 1; /* Allow chat body to take up remaining height */
    overflow-y: auto;
    background: #fafafa;
}
.chat-msg {
    display: flex;
    gap: 0.8rem;
    margin-bottom: 1rem;
    align-items: flex-start;
}
.chat-avatar {
    width: 30px; /* Fixed Width */
    height: 30px; /* Fixed Height (Crucial for perfect circle) */
    border-radius: 50%;
    object-fit: cover; /* Ensures image fills the area without distortion */
    flex-shrink: 0;
}
.chat-bubble {
    background: white;
    padding: 0.5rem 0.8rem;
    border-radius: 0.8rem;
    border-top-left-radius: 0;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    font-size: 0.85rem;
}
.chat-user { font-weight: 700; font-size: 0.75rem; color: var(--text-gray); margin-bottom: 0.2rem; }

/* --- 5. Login Page Styles --- */

.login-body {
    background-color: #F3F4F6;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 2rem 1rem;
}

.login-card {
    background: white;
    max-width: 900px;
    width: 100%;
    border-radius: var(--border-radius-lg);
    padding: 3rem;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

@media (min-width: 768px) {
    .login-card {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 4rem;
    }
}

.login-left {
    flex: 1.5;
    
}

.login-logo {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 2rem;
}

.login-welcome h1 {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-orange);
    margin-bottom: 0.5rem;
}

.login-welcome p {
    color: var(--text-gray);
    margin-bottom: 2rem;
}

.login-form input {
    width: 100%;
    padding: 1rem;
    margin-bottom: 1.5rem;
    border: 1px solid #ccc;
    border-radius: var(--border-radius-sm);
    font-size: 1rem;
    transition: border-color 0.3s;
}

.login-form input:focus {
    outline: none;
    border-color: var(--primary-orange);
}

.login-buttons {
    display: flex;
    gap: 1.5rem;
    margin-top: 1rem;
}

.login-btn {
    padding: 0.8rem 2rem;
    border: none;
    border-radius: var(--border-radius-sm);
    font-weight: 700;
    transition: 0.3s;
    flex: 1;
    text-transform: uppercase;
}

.btn-login {
    background-color: var(--primary-orange);
    color: white;
}
.btn-login:hover {
    background-color: var(--hover-orange);
}

.btn-registration {
    background-color: #FEEEDD;
    color: var(--primary-orange);
    border: 1px solid var(--primary-orange);
}
.btn-registration:hover {
    background-color: var(--primary-orange);
    color: white;
}

.login-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 0;
}

.login-profile-image {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: linear-gradient(135deg, #FF9933, var(--primary-orange)); 
    padding: 5px; 
    overflow: hidden;
    margin-bottom: 1rem;
}

.login-profile-image img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.login-profile-name {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-orange);
    margin-bottom: 0.25rem;
}

.login-profile-title {
    font-size: 0.9rem;
    color: var(--text-gray);
    line-height: 1.4;
}

/* -------------------------------------------
   GLOBAL STYLES AND VARIABLES 
---------------------------------------------- */

@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@300;400;500;600;700&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css');

:root {
    --primary-orange: #F97316;
    --hover-orange: #ea580c;
    --light-orange: #FFF7ED;
    --secondary-color: #1F2937;
    --text-black: #000000;
    --text-gray: #4B5563;
    --card-background: #FFFFFF;
    --bg-light: #F3F4F6;
    --border-color: #E5E7EB;
    --border-radius-lg: 1.5rem;
    --border-radius-sm: 0.5rem;
    
    /* Profile Card specific colors */
    --profile-blue: #3f51b5;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Hind Siliguri', sans-serif;
    background-color: var(--bg-white);
    color: var(--text-black);
    line-height: 1.5;
}

a { text-decoration: none; color: inherit; transition: 0.3s; }
ul { list-style: none; }
button { cursor: pointer; font-family: inherit; }

/* Utility Classes */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}
.full-width-container {
    max-width: 1400px; /* Wider for dashboard headers */
    margin: 0 auto;
    padding: 0 1rem;
    height: 60px;
}

/* -------------------------------------------
   HEADER & DROPDOWN STYLES
---------------------------------------------- */

header {
    padding: 1.5rem 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
.logo { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; flex-shrink: 0; }
.logo span.orange { color: var(--primary-orange); }
.logo span.black { color: var(--text-black); }
.header-right { display: flex; align-items: center; gap: 1.5rem; }
.nav-menu { display: none; gap: 1.5rem; font-weight: 700; font-size: 1rem; color: var(--primary-orange); align-items: center; }
.nav-menu a:hover { color: var(--hover-orange); }
.nav-divider { color: var(--border-color); }
.header-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; border: 2px solid #eee; cursor: pointer; flex-shrink: 0; }
.header-avatar img { width: 100%; height: 100%; object-fit: cover; }
.login-header-btn { background-color: var(--primary-orange); color: white; padding: 0.5rem 1rem; border: none; border-radius: var(--border-radius-sm); font-weight: 600; transition: background-color 0.2s; }
.login-header-btn:hover { background-color: var(--hover-orange); }
.header-profile-container { position: relative; z-index: 100; }
.avatar-dropdown { position: absolute; top: 55px; right: 0; background-color: var(--card-background); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border-radius: var(--border-radius-sm); overflow: hidden; min-width: 180px; display: none; animation: slideDown 0.2s ease-out; }
.avatar-dropdown.show-dropdown { display: block; }
.dropdown-link { display: flex; align-items: center; gap: 10px; padding: 10px 15px; color: var(--text-gray); font-size: 0.95rem; font-weight: 500; }
.dropdown-link:hover { background-color: #f5f5f5; }
.logout-link { border-top: 1px solid #eee; color: #B91C1C; }
.logout-link:hover { background-color: #FEE2E2; }
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 768px) { .nav-menu { display: flex; } }


/* -------------------------------------------
   TOAST NOTIFICATION STYLES
---------------------------------------------- */
.toast-container { position: fixed; top: 20px; right: 20px; z-index: 2000; }
.toast { background-color: var(--card-background); padding: 1rem 1.5rem; border-radius: var(--border-radius-sm); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); font-weight: 700; font-size: 1rem; display: flex; align-items: center; gap: 10px; margin-bottom: 10px; opacity: 0; transform: translateX(100%); transition: transform 0.5s ease-out, opacity 0.5s ease-out; }
.toast.show { opacity: 1; transform: translateX(0); }
.success-toast { border-left: 5px solid #047857; color: #047857; }
.error-toast { border-left: 5px solid #B91C1C; color: #B91C1C; }


/* -------------------------------------------
   HOME PAGE STYLES (index.php)
---------------------------------------------- */

.home-main-content { background-color: var(--bg-light); padding: 0; margin: 0 auto; width: 100%; }
.hero-section { position: relative; padding-top: 30px; padding-bottom: 30px; width: 100%; margin-bottom: 30px; }
.hero-box { background-color: var(--primary-orange); border-radius: 2.5rem; padding: 5rem 2rem; text-align: center; color: white; position: relative; overflow: hidden; box-shadow: 0 10px 25px rgba(249, 115, 22, 0.5); }
.winner-title { text-align: center; font-size: 2rem; font-weight: 700; color: var(--secondary-color); margin-bottom: 2rem; padding-top: 1.5rem; }

/* New Top 3 Winners Grid */
.top-winners-grid { 
    display: flex; 
    justify-content: center; 
    gap: 30px; 
    flex-wrap: wrap; 
    margin-bottom: 40px; 
    padding: 0 1rem;
}

home-main-content { background-color: var(--bg-light); padding: 0; margin: 0 auto; width: 100%; }
.hero-section { position: relative; padding-top: 30px; padding-bottom: 30px; width: 100%; margin-bottom: 30px; }
.hero-box { background-color: var(--primary-orange); border-radius: 2.5rem; padding: 5rem 2rem; text-align: center; color: white; position: relative; overflow: hidden; box-shadow: 0 10px 25px rgba(249, 115, 22, 0.5); }
.winner-title { text-align: center; font-size: 2rem; font-weight: 700; color: var(--secondary-color); margin-bottom: 2rem; padding-top: 1.5rem; }

/* Top Winners Grid */
.top-winners-grid { display: flex; justify-content: center; gap: 30px; flex-wrap: wrap; margin-bottom: 40px; padding: 0 1rem; }

/* Winner Profile Card - Design Fix */
.winner-profile-card {
    background: var(--card-background);
    padding: 0; /* Reset padding for cleaner layout */
    border-radius: 16px; 
    text-align: center;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); 
    width: 280px; 
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #f0f0f0;
    overflow: hidden;
    padding-bottom: 20px;
}

.winner-profile-card:hover {
    transform: translateY(-8px); 
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12); 
}

/* Rank Badges */
.rank-circle { 
    position: absolute; 
    top: 15px; 
    left: 15px; 
    background: var(--primary-orange); 
    color: white; 
    width: 35px; 
    height: 35px; 
    border-radius: 50%; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-weight: 700; 
    font-size: 1rem; 
    border: 2px solid white; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    z-index: 10;
}
.rank-1 .rank-circle { background: #FFD700; color: #333; }
.rank-2 .rank-circle { background: #C0C0C0; color: #333; }
.rank-3 .rank-circle { background: #CD7F32; color: white; }

/* Image Container */
.winner-img-wrapper {
    width: 100%;
    height: 180px; /* Fixed height for cover image feel */
    overflow: hidden;
    background-color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
}

.winner-profile-img { 
   width: 62%;
    height: 97%;
    object-fit: cover;
    transition: transform 0.5s ease;
    border-radius: 67%;
}
    
}
.winner-profile-card:hover .winner-profile-img {
    transform: scale(1.05); /* Slight zoom on hover */
}

.winner-name { font-size: 1.4rem; color: var(--secondary-color); font-weight: 700; margin: 15px 0 5px; }
.winner-team { font-size: 0.95rem; color: #6B7280; margin-bottom: 8px; font-weight: 500; }
.winner-score { font-weight: 700; color: var(--primary-orange); margin-bottom: 15px; font-size: 1.1rem; }

.btn-portfolio { 
    background-color: var(--primary-orange); 
    color: white; 
    padding: 0.6rem 1.5rem; 
    border: none; 
    border-radius: 50px; 
    font-weight: 600; 
    transition: background-color 0.2s; 
    cursor: pointer; 
    display: inline-block;
}
.btn-portfolio:hover { background-color: var(--hover-orange); }

/* Bottom Content */
.bottom-content-grid { display: flex; gap: 30px; padding-bottom: 50px; padding-top: 20px; }
.sidebar-wrapper { flex: 0 0 300px; order: 2; }
.placeholder-content { flex: 1; order: 1; padding-top: 20px; } /* Removed extra styling here */
.placeholder-content .description { font-size: 1.1rem; color: var(--text-gray); font-weight: 500; line-height: 1.6; margin-bottom: 30px; }
.placeholder-card { background: var(--card-background); padding: 20px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); }
.placeholder-card h2 { font-size: 1.6rem; color: var(--secondary-color); margin-bottom: 10px; }

.sidebar-box { border: 2px solid var(--primary-orange); border-radius: 1.5rem; padding: 1rem; background: var(--card-background); }
.sidebar-btn { width: 100%; padding: 0.8rem; margin-bottom: 8px; background-color: var(--primary-orange); color: white; border: none; border-radius: 50px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; }
.sidebar-btn:hover { background-color: var(--hover-orange); transform: translateY(-2px); box-shadow: 0 2px 5px rgba(0,0,0,0.1); }


@media (max-width: 900px) {
    .top-winners-grid { flex-direction: column; align-items: center; gap: 25px; }
    .winner-profile-card { width: 90%; max-width: 350px; }
    .bottom-content-grid { flex-direction: column; }
    .sidebar-wrapper { order: 1; width: 100%; }
    .placeholder-content { order: 2; }
}


/* -------------------------------------------
   DASHBOARD & REUSABLE STYLES 
---------------------------------------------- */
.dashboard-background { background-color: var(--bg-light); }
.dash-container { max-width: 1400px; margin: 0 auto; padding: 1rem; display: flex; gap: 1.5rem; min-height: calc(100vh - 100px); }
.dash-sidebar { width: 280px; flex-shrink: 0; background-color: var(--card-background); border-radius: var(--border-radius-sm); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); padding: 1rem 0; height: fit-content; }
.dash-main { flex-grow: 1; display: flex; flex-direction: column; gap: 1.5rem; max-width: 700px; }
.dash-right { width: 320px; flex-shrink: 0; display: flex; flex-direction: column; gap: 1.5rem; height: fit-content; }
.card { background-color: var(--card-background); border-radius: var(--border-radius-sm); padding: 1.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); }
.sidebar-avatar { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; margin: 0 auto 0.5rem; border: 3px solid var(--primary-orange); }
.sidebar-avatar img { width: 100%; height: 100%; object-fit: cover; }
.dash-nav-item { display: flex; align-items: center; gap: 1rem; padding: 0.8rem 1rem; border-radius: var(--border-radius-sm); color: var(--text-gray); font-weight: 600; transition: background-color 0.2s, color 0.2s; }
.dash-nav-item:hover { background-color: #F3F4F6; }
.dash-nav-item.active { background-color: var(--light-orange); color: var(--primary-orange); border-right: 4px solid var(--primary-orange); font-weight: 700; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.dash-nav-item.active i { color: var(--primary-orange); }
.progress-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.75rem; }
.progress-label { width: 120px; flex-shrink: 0; font-size: 0.95rem; color: var(--text-gray); }
.progress-track { flex-grow: 1; background-color: #eee; height: 8px; border-radius: 4px; overflow: hidden; }
.progress-fill { height: 100%; background-color: var(--primary-orange); border-radius: 4px; }
.progress-value { font-weight: 600; font-size: 0.95rem; color: var(--primary-orange); }
.dash-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.stopwatch-time { font-size: 2.5rem; font-weight: 700; color: var(--primary-orange); margin: 1rem 0; }
.chat-body { height: 300px; overflow-y: auto; padding: 1rem; background-color: var(--card-background); }
.chat-msg { display: flex; gap: 0.5rem; align-items: flex-end; margin-bottom: 1rem; }
.chat-avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.chat-bubble { background: #f1f1f1; padding: 0.5rem 0.8rem; border-radius: 0.8rem; max-width: 200px; word-wrap: break-word; font-size: 0.9rem; }
.chat-msg.self-msg { flex-direction: row-reverse; }
.chat-msg.self-msg .chat-bubble { background: var(--light-orange); border-top-right-radius: 0; border-top-left-radius: 0.8rem; }
.team-list-toggle { display: flex; justify-content: space-between; align-items: center; padding: 0.8rem 1rem; border-radius: 0.8rem; color: var(--text-gray); font-weight: 600; cursor: pointer; transition: background-color 0.2s; margin-top: 1.5rem; }

/* -------------------------------------------
   LOGIN/REGISTRATION STYLES (REUSED)
---------------------------------------------- */
.login-body, .registration-body { background-color: var(--bg-light); display: flex; justify-content: center; align-items: center; min-height: 100vh; }
.login-card, .reg-card { background-color: var(--card-background); border-radius: var(--border-radius-lg); box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); display: flex; overflow: hidden; width: 90%; max-width: 1000px; margin: 20px; }
.login-left { padding: 3rem 2rem; flex: 2; }
.login-right { flex: 1; padding: 3rem 1.5rem; text-align: center; background-color: var(--light-orange); display: flex; flex-direction: column; justify-content: center; align-items: center; }
.reg-header { text-align: center; margin-bottom: 2rem; }
.reg-header h1 { color: var(--primary-orange); font-size: 2rem; }
.reg-header hr { width: 150px; height: 3px; background-color: var(--primary-orange); border: none; margin: 5px auto 0; }
.reg-form { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; align-items: flex-start; }
.input-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.input-group { margin-bottom: 10px; }
.input-group label { display: block; font-weight: 500; margin-bottom: 5px; }
.reg-form input:not([type="file"]), .reg-form select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 5px; font-size: 1rem; }
.nid-upload-section { display: flex; flex-direction: column; gap: 20px; }
.nid-upload-box { border: 2px dashed #ccc; border-radius: 10px; padding: 20px; text-align: center; color: #999; transition: border-color 0.2s, color 0.2s; cursor: pointer; position: relative; }
.custom-file-upload { display: inline-flex; align-items: center; gap: 5px; background: var(--primary-orange); color: white; padding: 8px 15px; border-radius: 5px; cursor: pointer; font-weight: 600; }
.file-browse-container { display: flex; align-items: center; gap: 10px; }
.confirm-button-container { grid-column: 1 / -1; margin-top: 10px; }
.btn-confirm { width: 100%; padding: 1rem; background-color: var(--primary-orange); color: white; border: none; border-radius: 10px; font-size: 1.2rem; font-weight: 700; }


/* -------------------------------------------
   USER PROFILE CARD (user_profile.php) - REUSED STYLES
---------------------------------------------- */

/* NOTE: Most of the profile-card-xxx classes are redefined here for the single profile view */

/* Profile Box */
.profile-card-container {
    background: var(--card-background);
    border-radius: var(--border-radius-lg);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 400px;
    overflow: hidden;
    margin-top: 30px;
}

.profile-card-header-bg {
    background-color: var(--profile-blue);
    height: 120px; 
    position: relative;
}

.profile-card-content {
    text-align: center;
    padding: 0 20px 20px;
    position: relative;
    margin-top: -70px;
}

.profile-card-avatar {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 5px solid white; 
    object-fit: cover;
    margin-bottom: 15px;
    box-shadow: 0 0 0 3px #ddd; 
}

.profile-card-name {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--secondary-color);
    margin-bottom: 5px;
}

.profile-card-title {
    font-size: 1rem;
    color: #6B7280;
    margin-bottom: 20px;
}

.profile-card-social-icons {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 25px;
}

.social-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.1rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.social-icon:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); }
.facebook { background-color: #3B5998; }
.twitter { background-color: #00ACEE; }
.instagram { background-color: #E4405F; }
.youtube { background-color: #CD201F; }

.profile-card-buttons {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
}

.profile-btn {
    padding: 10px 25px;
    border: none;
    border-radius: 50px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.subscribe-btn { background-color: var(--profile-blue); color: white; }
.subscribe-btn:hover { background-color: #303f9f; transform: translateY(-2px); }
.message-btn { background-color: #E0E0E0; color: #333; }
.message-btn:hover { background-color: #bdbdbd; transform: translateY(-2px); }

.profile-card-stats {
    display: flex;
    justify-content: space-around;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.stat-item { display: flex; flex-direction: column; align-items: center; color: #555; font-size: 0.9rem; }
.stat-item i { color: var(--primary-orange); margin-bottom: 5px; }
.stat-item span { font-weight: 600; color: var(--secondary-color); }


/* -------------------------------------------
   MEDIA QUERIES (REUSED)
---------------------------------------------- */
@media (max-width: 768px) {
    .login-card { flex-direction: column; }
    .login-right { padding: 1.5rem; }
    .nav-menu { display: none; }
    .reg-form { grid-template-columns: 1fr; }
    .input-field-grid { grid-template-columns: 1fr; }
    .bottom-content-grid { flex-direction: column; }
}

@media (max-width: 1200px) {
    .dash-container { flex-direction: column; }
    .dash-sidebar, .dash-right, .dash-main { width: 100%; max-width: none; }
}
@media (max-width: 600px) {
    .dash-grid-2 { grid-template-columns: 1fr; }
}


/* -------------------------------------------
   DASHBOARD SIDEBAR & BASE LAYOUT (REMAINDER)
---------------------------------------------- */

.dash-container { display: flex; max-width: 1400px; margin: 0 auto; padding: 1.5rem 2rem; gap: 1.5rem; min-height: calc(100vh - 80px); }
.dash-sidebar { width: 250px; flex-shrink: 0; background: white; border-radius: 12px; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); height: fit-content; }
.dash-main { flex-grow: 1; display: flex; flex-direction: column; gap: 1.5rem; }
.dash-nav { display: flex; flex-direction: column; padding: 0 0.5rem; }
.dash-nav-item { display: flex; align-items: center; gap: 10px; padding: 0.75rem 1rem; border-radius: 8px; color: var(--text-gray); font-weight: 500; transition: background-color 0.2s, color 0.2s; }
.dash-nav-item:hover { background-color: var(--light-orange); color: var(--primary-orange); }

/* Active Menu Style */
.dash-nav-item.active { 
    background-color: var(--light-orange); 
    color: var(--primary-orange); 
    border-right: 4px solid var(--primary-orange); 
    font-weight: 700;
}
.dash-nav-item.active i { color: var(--primary-orange); }

/* Sidebar Profile */
.sidebar-profile { padding: 1rem; text-align: center; border-bottom: 1px solid #eee; margin-bottom: 1rem; }
.sidebar-avatar { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; margin: 0 auto 0.5rem; border: 3px solid var(--primary-orange); }
.sidebar-avatar img { width: 100%; height: 100%; object-fit: cover; }
.user-name { font-size: 1.25rem; font-weight: 700; margin: 0.2rem 0; }
.user-id-badge { font-size: 0.9rem; color: var(--primary-orange); font-weight: 600; display: inline-flex; align-items: center; gap: 0.3rem; }
.profile-actions { display: flex; justify-content: center; gap: 1rem; margin-top: 1rem; }
.action-icon-btn { background: #eee; border: none; width: 36px; height: 36px; border-radius: 50%; color: var(--text-gray); transition: background-color 0.2s, color 0.2s; }
.action-icon-btn:hover { background-color: var(--primary-orange); color: white; }

/* -------------------------------------------
   6. Leaderboard Styles (New Strip Design)
---------------------------------------------- */

.leaderboard-card { 
    background: white; 
    border-radius: 12px; 
    padding: 2rem; 
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); 
    margin-bottom: 1.5rem; 
}
.leaderboard-header { 
    font-size: 1.8rem; 
    font-weight: 700; 
    color: var(--primary-orange); 
    text-align: center; 
    padding-bottom: 1rem; 
    margin-bottom: 1.5rem; 
}

/* --- 1. TOP 3 HIGHLIGHT STRIP --- */
.top-ranks-strip {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 40px;
    padding: 20px 0;
    border-bottom: 2px solid var(--border-color);
}

.top-rank-item {
    flex: 1;
    text-align: center;
    padding: 15px 10px;
    border-radius: 10px;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.top-rank-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
}

/* Specific Rank Backgrounds */
.top-rank-item.rank-1 { background-color: #FFFAE0; border: 2px solid #FFD700; } /* Gold Light */
.top-rank-item.rank-2 { background-color: #F8FAFC; border: 2px solid #C0C0C0; } /* Silver Light */
.top-rank-item.rank-3 { background-color: #FEF3F2; border: 2px solid #CD7F32; } /* Bronze Light */

.rank-strip-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary-orange);
    color: white;
    padding: 3px 10px;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 5px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.rank-1 .rank-strip-badge { background: #FFD700; color: var(--secondary-color); }
.rank-2 .rank-strip-badge { background: #C0C0C0; color: var(--secondary-color); }

.strip-avatar {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 8px;
    margin-top: 10px;
    border: 3px solid white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.strip-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--secondary-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.strip-score {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--primary-orange);
    margin-top: 5px;
}

/* --- 2. RANKED LIST (Rank 4+) --- */
.list-section-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--secondary-color);
    margin-bottom: 15px;
    text-align: left;
    padding-left: 10px;
}

/* Base list item styles reused from optimized CSS */
.leaderboard-list { margin-top: 0; padding: 0; }
.leaderboard-list-item { 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 1rem 1.2rem; 
    border-radius: 10px; 
    margin-bottom: 10px; 
    background: var(--card-background); 
    box-shadow: 0 1px 5px rgba(0,0,0,0.05); 
    transition: background-color 0.2s; 
    border: 1px solid transparent; 
}
.list-rank { width: 40px; font-size: 1.2rem; font-weight: 700; color: var(--secondary-color); flex-shrink: 0; }
.list-score { font-size: 1.4rem; font-weight: 800; color: #10B981; min-width: 80px; text-align: right; }
.list-profile { flex-grow: 1; display: flex; align-items: center; gap: 15px; }
.list-avatar { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; border: 2px solid #eee; }
.list-name { font-weight: 600; color: #1F2937; }
.list-team { font-size: 0.85rem; color: var(--text-gray); }
.view-portfolio-btn { background-color: var(--primary-orange); color: white; border: none; padding: 0.5rem 1rem; border-radius: 20px; font-size: 0.85rem; font-weight: 600; transition: background-color 0.2s; flex-shrink: 0; }
.view-portfolio-btn:hover { background-color: var(--hover-orange); }

/* --- Mobile Adjustments --- */
@media (max-width: 600px) {
    .top-ranks-strip { 
        flex-direction: column; 
        align-items: center; 
        gap: 20px;
    }
    .top-rank-item {
        width: 90%;
        max-width: 300px;
    }
    .leaderboard-list-item {
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 10px;
    }
    .list-profile {
        order: 1;
        flex-grow: 1;
        width: 100%;
    }
    .list-score {
        order: 2;
    }
    .view-portfolio-btn {
        order: 3;
        width: 100%;
        text-align: center;
        margin-top: 10px;
    }
}

/* Registration Specific Styles */
        
        .registration-body {
             background-color: var(--bg-light);
             display: flex;
             justify-content: center;
             align-items: center;
             min-height: 100vh;
             padding: 2rem 1rem;
        }

        .reg-card {
            background-color: var(--card-background);
            border-radius: 16px; 
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
            width: 95%;
            max-width: 1000px; /* Wider card as per image */
            margin: 20px auto;
            padding: 2rem 2.5rem; /* Padding for the entire card */
        }

        .reg-header {
            text-align: center;
            margin-bottom: 30px;
        }

        .reg-header h1 { 
            color: var(--primary-orange); 
            font-size: 2.5rem; /* Slightly larger title */
            font-weight: 800; 
            border-bottom: 2px solid var(--light-orange); 
            padding-bottom: 10px;
            display: inline-block; /* To make border-bottom fit content */
        }
        
        .reg-header p { 
            color: var(--text-gray); 
            margin-top: 10px; 
            font-size: 1.1rem;
        }

        .reg-form-layout { 
            display: grid; 
            grid-template-columns: 2fr 1fr; /* Two main columns: inputs | NID uploads */
            gap: 40px; /* Increased gap */
            margin-top: 20px;
        }
        
        /* Left Column for Inputs */
        .input-sections {
            display: grid;
            grid-template-columns: 1fr 1fr; /* Two columns for pairs of inputs */
            gap: 20px; /* Gap between input pairs */
        }
        
        .form-group-reg { 
            margin-bottom: 0; /* Remove default margin to let grid gap handle it */
            position: relative; /* For the asterisk */
        }
        .form-group-reg label { 
            display: block; 
            font-weight: 600; 
            margin-bottom: 5px; 
            color: var(--secondary-color); 
        }
        
        .form-group-reg label .required-asterisk {
            color: #EF4444; /* Red color for asterisk */
            margin-left: 4px;
        }

        .form-group-reg input, 
        .form-group-reg select { 
            padding: 12px; 
            border: 1px solid #ddd; 
            border-radius: 8px; 
            width: 100%; 
            box-sizing: border-box; 
            transition: border-color 0.2s, box-shadow 0.2s;
            font-size: 1rem; /* Slightly larger font for inputs */
        }
        .form-group-reg input:focus, 
        .form-group-reg select:focus {
            border-color: #3B82F6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
            outline: none;
        }
        
        /* Profile Picture Upload Section */
        .profile-pic-upload-group {
            grid-column: 1 / -1; /* Take full width within its column */
            margin-top: 10px; /* Space after previous inputs */
        }
        .profile-pic-upload-label {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-top: 5px;
        }
        .profile-pic-upload-btn {
            background-color: var(--primary-orange);
            color: white;
            padding: 10px 18px;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.2s;
            display: flex;
            align-items: center;
            gap: 8px;
            font-weight: 600;
        }
        .profile-pic-upload-btn:hover {
            background-color: #E27B00;
        }
        .profile-pic-upload-file-name {
            font-size: 0.95rem;
            color: var(--text-gray);
            flex-grow: 1; /* Allows text to take available space */
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            border: 1px solid #ddd;
            padding: 10px 15px;
            border-radius: 8px;
            background-color: #f9f9f9;
        }
        .profile-pic-upload-group input[type="file"] {
            display: none;
        }


        /* Right Column for NID Uploads */
        .nid-upload-section { 
            display: flex; /* Stack NID boxes vertically */
            flex-direction: column;
            gap: 20px; 
            margin-top: 0; /* Remove margin, handled by grid gap */
        }
        
        .nid-upload-box { 
            border: 2px dashed #ddd; /* Lighter dashed border */
            border-radius: 12px; 
            padding: 20px; /* Reduced padding */
            text-align: center; 
            cursor: pointer; 
            transition: all 0.2s ease; 
            background: #F9FAFB; /* Lighter background */
            height: 100%; /* Make boxes fill available height */
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            position: relative; /* For delete icon */
        }
        .nid-upload-box:hover { 
            background-color: #F3F4F6;
            border-color: #C0C0C0; /* Slight color change on hover */
        }
        .nid-upload-box input { display: none; }
        .nid-upload-box span { 
            display: block; 
            margin-top: 10px; /* Space from icon */
            font-size: 0.9rem; 
            color: var(--secondary-color); /* Darker text */
            font-weight: 600;
        }
        .nid-upload-box i { 
            color: var(--text-gray); /* Lighter icon color */
            margin-bottom: 5px; 
        }

        .nid-upload-box .delete-icon {
            position: absolute;
            top: 10px;
            right: 10px;
            color: #EF4444;
            cursor: pointer;
            opacity: 0; /* Hidden by default */
            transition: opacity 0.2s ease;
        }
        .nid-upload-box:hover .delete-icon {
            opacity: 1; /* Show on hover */
        }


        /* Submit Button */
        .confirm-button-container { 
            grid-column: 1 / -1; /* Spans across both columns */
            margin-top: 30px; 
            text-align: center;
        }
        .register-btn { 
            background-color: var(--primary-orange); /* Orange button as in image */
            color: white; 
            padding: 15px 30px; /* Larger padding */
            border: none; 
            border-radius: 8px; 
            font-weight: 700; 
            font-size: 1.1rem; /* Larger font */
            cursor: pointer; 
            transition: background-color 0.2s; 
            width: 100%;
            max-width: 400px; /* Limit width */
        }
        .register-btn:hover { background-color: #E27B00; } /* Darker orange on hover */
        
        .login-link { margin-top: 15px; font-size: 0.95rem; text-align: center; }
        .login-link a { color: var(--primary-orange); font-weight: 700; text-decoration: none; }
        .login-link a:hover { text-decoration: underline; }

        /* Message Box Styling */
        .message-box {
            padding: 12px;
            margin-bottom: 20px;
            border-radius: 8px;
            font-weight: 600;
            text-align: center;
        }
        .message-box.error {
            background-color: #FEE2E2; /* Red-100 */
            color: #991B1B; /* Red-800 */
            border: 1px solid #FCA5A5; /* Red-300 */
        }
        .message-box.success {
            background-color: #D1FAE5; /* Green-100 */
            color: #065F46; /* Green-800 */
            border: 1px solid #A7F3D0; /* Green-300 */
        }
        .message-box.warning {
            background-color: #FEF3C7; /* Yellow-100 */
            color: #92400E; /* Yellow-800 */
            border: 1px solid #FCD34D; /* Yellow-300 */
        }

        /* Responsive Overrides */
        @media (max-width: 900px) {
            .reg-form-layout {
                grid-template-columns: 1fr; /* Stack main columns on smaller screens */
                gap: 30px;
            }
            .input-sections {
                grid-template-columns: 1fr 1fr; /* Two columns for personal info */
            }
            .nid-upload-section {
                flex-direction: row; /* Keep NID boxes side by side if space allows */
                flex-wrap: wrap; /* Allow wrapping */
                justify-content: center;
            }
            .nid-upload-box {
                flex: 1 1 calc(50% - 10px); /* Adjust to fit two in a row */
                min-width: 250px;
            }
        }
        @media (max-width: 600px) {
            .reg-card {
                padding: 1.5rem;
            }
            .reg-header h1 {
                font-size: 2rem;
            }
            .input-sections {
                grid-template-columns: 1fr; /* Stack all personal inputs */
            }
            .nid-upload-section {
                flex-direction: column; /* Stack NID boxes vertically on very small screens */
            }
            .nid-upload-box {
                flex: 1 1 auto; /* Take full width */
            }
            .profile-pic-upload-label {
                flex-direction: column;
                align-items: flex-start;
            }
            .profile-pic-upload-btn {
                width: 100%;
                justify-content: center;
            }
            .profile-pic-upload-file-name {
                margin-top: 10px;
                width: 100%;
                text-align: center;
            }
        }
        