/* Search functions */

    .search-container {
        text-align: center;
        margin-top: 0;
        position: relative;
    }
    
    .search-form {
        display: inline-block;
        width: 350px;
        max-width: 95%;
        position: relative;
    }
    
    .search-input {
        width: 350px;
        max-width: 100%;
        padding: 10px;
        font-size: 16px;
        border: 1px solid var(--border-input);
        border-radius: var(--radius-md);
        box-sizing: border-box;
    }
    
    .search-input:hover {
        border-color: var(--green);
    }

    .suggestions-dropdown {
        position: absolute;
        top: calc(100% + 4px); /* Place suggestions below the input field */
        left: 0;
        width: 350px; /* Matches the width of the search form */
        max-width: 100%; /* Allow the dropdown to shrink with the search bar */
        background-color: var(--bg-white);
        border: 1px solid var(--border-input);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-medium);
        max-height: 300px;
        overflow-y: auto;
        z-index: 1000;
        display: none;
    }
    
    .suggestion-item {
        padding: 10px;
        font-size: 14px;
        color: var(--text-secondary);
        cursor: pointer;
        border-bottom: 1px solid var(--border-hover);
    }

    .suggestion-item:hover {
        background-color: var(--green-ultralight);
    }

    .suggestion-item:last-child {
        border-bottom: none;
    }

    .search-results {
        margin-top: 20px;
        text-align: center;
    }
    
    .search-results ul {
        list-style-type: none; /* Removes the default bullet points */
        padding: 0; /* Removes any default padding */
        margin: 0; /* Removes any default margin */
    }
    
    .search-results li {
        margin-bottom: 5px; /* Adds spacing between each list item */
    }
    
    .suggestions-box {
        display: none; /* Hidden by default */
        position: absolute;
        background: var(--bg-white);
        border: 1px solid var(--border-input);
        border-radius: var(--radius-sm);
        max-height: 200px;
        overflow-y: auto;
        z-index: 1000;
        padding: 5px;
        box-shadow: var(--shadow-medium);
    }
    
    .suggestions-box div {
        padding: 8px;
        cursor: pointer;
    }
    .suggestions-box .highlighted {
        background: var(--green-ultralight) !important;
    }
    .suggestions-box div:hover {
        background-color: var(--green-ultralight);
    }

/* Image */

	.image {
		position: relative;
		display: inline-block;
		border-radius: 8px;
	}
		.image img {
			display: block;
			width: 100%;
			border-radius: 8px;
		}
		.image:before {
			content: '';
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
			background: url("images/overlay.png");
			border-radius: 8px;
		}
		.image.fit {
			display: block;
			width: 100%;
		}
		.image.featured {
			display: block;
			width: 100%;
			margin: 0 0 2em 0;
		}
		.image.left {
			float: left;
			margin: 0 2em 2em 0;
		}
		.image.centered {
			display: block;
			margin: 0 0 2em 0;
		}
			.image.centered img {
				margin: 0 auto;
				width: auto;
			}

/* Button */

	input[type="button"],
	input[type="submit"],
	input[type="reset"],
	button,
	.button {
		-webkit-appearance: none;
		display: inline-block;
		font-family: 'Open Sans Condensed', sans-serif;
		font-weight: 700;
		text-transform: uppercase;
		text-decoration: none;
        background: var(--green);
        color: var(--text-white);
		border: 0;
		line-height: 1em;
		border-radius: var(--radius-md);
		outline: 0;
		cursor: pointer;
		-moz-transition: background-color .2s ease-in-out;
		-webkit-transition: background-color .2s ease-in-out;
		-o-transition: background-color .2s ease-in-out;
		-ms-transition: background-color .2s ease-in-out;
		transition: 0.2s ease;
		font-size: 1.25rem;
		padding: var(--space-3) var(--space-5);
		margin: 15px 0 15px 0;
		text-align: center;
	}

		input[type="button"]:hover,
		input[type="submit"]:hover,
		input[type="reset"]:hover,
		button:hover,
		.button:hover {
			background: var(--green-dark);
            box-shadow: var(--shadow-medium);
            color: var(--text-white);
            text-decoration: none;
		}

		input[type="button"]:active,
		input[type="submit"]:active,
		input[type="reset"]:active,
		button:active,
		.button:active {
			background: var(--green-dark);
		}

		input[type="button"].large,
		input[type="submit"].large,
		input[type="reset"].large,
		button.large,
		.button.large {
			font-size: 1.65em;
		}

		.button-secondary {
			background: var(--gold);
		}

		.button-secondary:hover {
			background: var(--gold-dark);
		}
    
/* List */

	ul {
		list-style: disc;
		padding-left: 1em;
	}
	ul li {
		padding-left: 0.5em;
	}
	ol {
		list-style: decimal;
		padding-left: 1.25em;
	}
		ol li {
			padding-left: 0.25em;
		}


/* Menu [ONLY USED FOR FOOTER] */

	ul.menu {
		list-style: none;
		padding-left: 0;
	}
		ul.menu li {
			border-left: solid 1px var(--bg-main);
			display: inline-block;
			padding: 0 0 0 0.75em;
			margin: 0 0 0 0.75em;
		}
			ul.menu li:first-child {
				border-left: 0;
				margin-left: 0;
				padding-left: 0;
			}


/* Forms */

	form label {
		display: block;
		margin: 0 0 5px 0;
		font-family: 'Open Sans Condensed', sans-serif;
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text-secondary);
	}
	form input[type="text"],
	form input[type="email"],
	form input[type="password"],
	form select,
	form input[type="date"],
	form input[type="number"],
	form input[type="url"] {
		-webkit-appearance: none;
		display: block;
		width: 100%;
		border-radius: var(--radius-md);
		border: solid 2px var(--border-input);
		background: var(--bg-card);
	}
	form textarea {
		-webkit-appearance: none;
		display: block;
		width: 100%;
		border-radius: var(--radius-md);
		border: solid 2px var(--border-input);
		background: var(--bg-card);
		min-height: 9em;
		padding: 1em;
	}
		form input[type="text"]:focus,
		form input[type="email"]:focus,
		form input[type="password"]:focus,
		form select:focus {
			border-color: var(--border-hover);
		}
	form input[type="text"],
	form input[type="email"],
	form input[type="password"],
	form input[type="date"],
	form input[type="number"],
	form input[type="url"],
	form select {
		line-height: 3em;
		padding: 0 1em;
	}
	form ::-webkit-input-placeholder {
		color: var(--text-muted) !important;
	}
	form :-moz-placeholder {
		color: var(--text-muted) !important;
	}
	form ::-moz-placeholder {
		color: var(--text-muted) !important;
	}
	form :-ms-input-placeholder {
		color: var(--text-muted) !important;
	}
	form ::-moz-focus-inner {
		border: 0;
	}
    input[type='date'], input[type='time'] {
        -webkit-min-logical-height: 50px; /* dirty fix for field having no height on IOS */
    }
    form input:hover {
        outline: none !important;
        border: solid 2px var(--green-light);
        box-shadow: var(--shadow-soft);
    }
    form input:focus {
        outline: none !important;
        border: solid 2px var(--green);
        box-shadow: var(--shadow-medium);
    }
    form select:hover {
        outline: none !important;
        border: solid 2px var(--green-light);
        box-shadow: var(--shadow-soft);
    }
     form select:focus {
        outline: none !important;
        border: solid 2px var(--green);
        box-shadow: var(--shadow-medium);
    }
    form textarea:hover {
        outline: none !important;
        border: solid 2px var(--green-light);
        box-shadow: var(--shadow-soft);
    }
    form textarea:focus {
        outline: none !important;
        border: solid 2px var(--green);
        box-shadow: var(--shadow-medium);
    }

/* Tables */

	table {
        width: 80%; /* Set the table width to 80% of the page */
        max-width: 1000px; /* Limit the maximum width of the table */
        margin: 0 auto; /* Center the table horizontally */
        border-collapse: collapse;
        margin-top: 20px;
    }

    table, th, td {
        border: 1px solid var(--border-input);
    }

    th, td {
        padding: 8px;
        text-align: left;
    }

    /* Make table headers bold */
    th {
        font-weight: bold;
        background-color: var(--bg-main); /* Optional: Give a background color to headers */
    }

    /* Add some responsive design */
    @media screen and (max-width: 736px) {
        table {
            width: 97%; /* For small screens, make the table a bit wider */
        }
    }

/* Box */

	.box.highlight {
		text-align: center;
	}
		.box.highlight h2 {
			font-size: 2em;
			line-height: 1;
		}
		.box.highlight header > p {
			font-size: 1.5em;
		}


/*  INFO BOX  */

    
    /* ---- info-box bullet arrows ---- */
    .info-box ul {
        list-style: none;
        padding-left: 1em;
    }
    
    .info-box li {
        position: relative;
        padding-left: 24px;
        margin-bottom: 8px;
    }
    
    .info-box li::before {
        content: "➜";
        position: absolute;
        left: 0;
        top: 0;
        color: var(--green);
        font-weight: bold;
    }
    
    .info-box {
        max-width: 750px;
        margin: 1.5rem auto 1rem auto;
        padding: 1.25rem .2rem;
    
        background: var(--bg-white);
        border-radius: var(--radius-md);
        border: 1px solid var(--bg-main);
    
        box-shadow: var(--shadow-medium);
    
        line-height: 1.7;
        color: var(--text-primary);
    
        transition: box-shadow 0.2s ease;
    }
    
    .info-box p {
        margin: .5em .5em;
    }
    
    .info-box a {
        color: var(--green-dark);
        font-weight: 600;
        text-decoration: none;
    }
    
    .info-box a:hover {
        text-decoration: underline;
    }
    
    .info-box strong {
        font-weight: 600;
    }
    
    
    /* 🔥 MOBILE OPTIMIZATION */
    @media (max-width: 736px) {
        .info-box {
            margin: 0.5rem 0.5rem;          /* Add side margin on phones */
            font-size: 0.9rem;            /* Slightly smaller font */
            line-height: 1.6;
            border-radius: var(--radius-sm);           /* Smooth, less bulky on phones */
        }
    }
    



/* RESULTS TABLE  */
    
    .resultstable-header {
        padding: 30px;
        background-color: var(--gold-ultralight);
        border-left: 4px solid var(--gold);
        margin-bottom: 30px;
        text-align: center;
        box-shadow: var(--shadow-dark);
        margin-left: auto;
        margin-right: auto;
        margin-top: 25px;
    }
    
    .resultstable-header h2 {
        margin: 10px;
    }
    
    .resultstable-header h3 {
        margin: 10px;
        color: var(--green-dark);
    }
    
    .resultstable-header p {
        color: var(--text-primary);
        margin: 10px 0;
        line-height: 1.2;
    }
    
    @media (max-width: 736px) {
        .resultstable-header p {
            font-size: .9em;
        }
        .resultstable-header h2 {
            line-height: 1.3em;
        }
        .resultstable-header h3 {
            line-height: 1.3em;
        }
    }
    @media (max-width: 480px) {
        .resultstable-header p {
            font-size: .85em;
        }
    }
    

    .styled-results-table {
        width: 95%;
        border-collapse: collapse;
        background-color: var(--bg-white);
        box-shadow: var(--shadow-dark);
        border-radius: 12px;
        overflow: hidden;
        margin-bottom: 1.5em;
    }
    
    .styled-results-table th,
    .styled-results-table td {
        padding: 14px 16px;
        border-bottom: 1px solid var(--gray-300);
        vertical-align: middle;
        text-align: center;
        word-wrap: break-word;
        white-space: normal;
        font-size: 0.95rem;
        color: var(--text-primary);
    }
    
    .styled-results-table td:first-child,
    .styled-results-table th:first-child {
        text-align: left;
    }
    
    .styled-results-table th {
        background-color: var(--bg-white);
        color: var(--text-primary);
        font-weight: 600;
        font-size: 0.95rem;
    }
    
    .styled-results-table tbody tr.main-row:hover {
        background: var(--green-ultralight);
        cursor: pointer;
    }
    
    .main-link {
        text-decoration: none;
        color: var(--green-dark);
        font-weight: 600;
    }
    
    .main-link .city {
        display: block;
        color: var(--text-secondary);
        font-weight: normal;
        font-size: 0.85rem;
    }
    
    .main-link .small {
        display: inline;
        color: var(--text-secondary);
        font-weight: normal;
        font-size: 0.85rem;
    }
    
    .second-link {
        text-decoration: none;
        color: var(--gold);
        font-weight: 600;
    }
    
    .view-performance:hover,
    .main-link:hover {
        text-decoration: underline;
    }
    
    
    
    /* Division Subheading (for championships) */
    .division-subheading {
        background-color: var(--green-ultralight);
        border-left: 4px solid var(--green);
        padding: 16px 20px;
        margin: 30px 0 10px;
        text-align: center;
    }
    
    .division-subheading h3 {
        font-size: 20px;
        margin-bottom: 6px;
        color: var(--text-primary);
    }
    
    .division-subheading p {
        margin: 4px 0;
        font-size: 14px;
        color: var(--text-secondary);
    }
    
    @media (max-width: 736px) {
        .styled-results-table th,
        .styled-results-table td {
            padding: 10px;
            font-size: 0.85rem;
        }
    
        .main-link .city {
            font-size: 0.8rem;
        }
    }
    
    /* MEDAL */
        .medal {
            font-size: 20px;
            margin-right: 4px;
            vertical-align: middle;
        }
        
    
    /* DETAILS ROWS */
        
        /* TOGGLE FOR DETAILS */
            
            .details-row {
                display: none;
                overflow: hidden;
                max-height: 0;
                transition: max-height 0.35s ease, opacity 0.25s ease;
                opacity: 0;
            }
            
            .details-row.open {
                display: table-row;
                background: var(--bg-main);
                max-height: 500px; /* large enough to fit content */
                opacity: 1;
            }
            
            .details-inner {
                padding: 10px 5px;
            }
            
            .caret {
                display: inline-block;
                transition: transform 0.25s ease;
                cursor: pointer;
                font-size: 1.1em;
            }
            
            .details-row.open + .caret,
            .caret.open {
                transform: rotate(90deg);
            }
            
            /* Subtle global toggle */
            .global-toggle-row td {
                background: var(--bg-main);
                padding: 6px 10px;
                text-align: right;
                font-size: 0.9em;
                color: var(--text-muted);
            }
        
        /* PIECE CARDS */
            
            .pieces-section {
                margin: 10px 0 14px;
            }
            
            .pieces-label {
                font-weight: 600;
                font-size: .8rem;
                text-transform: uppercase;
                margin-bottom: 4px;
                color: var(--text-secondary);
            }
            
            .intro-label {
                color: var(--text-secondary); /* possibly set different color */
            }
            
            .pieces-list {
                display: grid;
                gap: 6px;
                grid-template-columns: 1fr;
            }
            
            @media (min-width: 736px) {
                .pieces-list {
                    grid-template-columns: 1fr 1fr;
                }
            }
            
            @media (min-width: 1680px) {
                .pieces-list {
                    grid-template-columns: 1fr 1fr 1fr;
                }
            }
            
            .pieces-item {
                padding: 10px 14px;
                border-left: 3px solid var(--gray-500);
                background: var(--bg-white);
                border-radius: 4px;
                display: flex;
                align-items: flex-start;
                justify-content: space-between;
                gap: 10px;
                transition: background 0.2s ease, box-shadow 0.2s ease;
                box-shadow: var(--shadow-soft);
                text-decoration: none;
                color: inherit;
            }
            
            .pieces-item:hover {
                background: var(--gray-200);
                box-shadow: var(--shadow-medium);
            }
            
            .pieces-item .piece-title {
                color: var(--green-dark);
                font-weight: 600;
            }

            .country-tag {
                display: inline-block;
                background: var(--blue-ultralight);
                color: var(--blue-dark);
                font-size: 0.75rem;
                font-weight: 600;
                padding: 1px 7px;
                border-radius: 8px;
                white-space: nowrap;
                vertical-align: middle;
            }
            
            .piece-title {
                font-size: 0.9rem;
                font-weight: 600;
            }
            
            .piece-meta {
                font-size: 0.8rem;
                font-weight: 500;
                color: var(--text-secondary);
            }
            
            .piece-points {
                font-size: 0.9rem;
                margin-left: 10px;
                white-space: nowrap;
                font-weight: 600;
            }
            
    /* Navigation to different results table */
    
.nav-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px 0;
    gap: 40px; /* default spacing */
    padding: 0 10px; /* distance from edges */
}

/* --- Responsive behavior --- */
/* When screen gets smaller, push buttons outward */
@media (max-width: 600px) {
    .nav-buttons {
        justify-content: space-between;
        gap: 10px; /* no fixed gap, they hug the sides */
        padding: 0 10px; /* distance from edges */
    }
    .nav-buttons button{
        font-size: .8rem;
        padding: 8px 3px;
    }
}
        

        
/* Orkesten graph */
.graph-container {
    background: var(--bg-white);
    padding: 20px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-input);
    box-shadow: var(--shadow-dark);
    margin-bottom: 1.5em;
}
#chartjs-tooltip {
    background: var(--bg-white);
    color: var(--gray-800);
    border: 1px solid var(--gray-300);
    border-radius: 10px;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.45;
    max-width: 240px;
    position: absolute;
    pointer-events: none;
    box-shadow: var(--shadow-medium);
    z-index: 9999;
}

.tooltip-content strong {
    font-size: 14px;
}


    
    
/* Event cards  */ 

    .suggestions-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(160px, 200px));
        gap: 10px;
        margin: 16px auto 0;      /* center container */
        max-width: 1000px;
        justify-content: center;  /* center grid tracks */
        align-items: stretch;
    }

    .suggestions-card {
        background: var(--bg-white);
        border-radius: 12px;
        box-shadow: var(--shadow-medium);
        padding: 16px;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        cursor: pointer;
        text-align: center;
    }
    
    .suggestions-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow-dark);
    }
    
    .suggestions-huge {
        font-weight: 700;
        color: var(--gold);
        line-height: 1.5;
        font-size: 2rem;
    }
    .suggestions-large {
        font-weight: 600;
        color: var(--green);
        margin-bottom: 2px;
        line-height: 1.3;
        font-size: 1.3rem;
    }
    .suggestions-sub {
        font-size: 0.875rem;
        color: var(--color-muted);
        margin-top: 0.25rem;
    }
    .suggestions-main {
        font-weight: 600;
        color: var(--green-dark);
        margin-bottom: 2px;
        font-size: 1rem;
        word-wrap: break-word;
        hyphens: auto;
        overflow-wrap: break-word;
    }
    
    .suggestions-second {
        font-size: 0.9rem;
        color: var(--text-secondary);
    }
    
    .suggestions-third {
        margin-top: 3px;
        font-size: 0.8rem;
        color: var(--text-muted);
    }
    
     /* 🔁 Responsive Scaling */
    @media (max-width: 736px) {
        .suggestions-card {
            padding: 10px;
        }
        .suggestions-main {
            font-size: 0.9rem;
        }
        .suggestions-second {
            font-size: 0.9rem;
        }
        .suggestions-third {
            font-size: 0.75rem;
        }
        .suggestions-grid {
            grid-template-columns: repeat(auto-fit, minmax(135px, 180px));
        }
    }
    
    @media (max-width: 480px) {
        .suggestions-card {
            padding: 8px;
        }
    
        .suggestions-main {
            font-size: 0.85rem;
        }
    
        .suggestions-second {
            font-size: 0.85rem;
        }
    
        .suggestions-third {
            font-size: 0.7rem;
        }
        .suggestions-grid {
            grid-template-columns: repeat(auto-fit, minmax(100px, 160px));
        }
    }

    .button-fixed {
        width: 150px;
    }
    @media (max-width: 736px) {
        .button-fixed {
            width: 150px;
            display: inline-block;
        }
    }
    

/* Interactive map: Overview bar charts */
    .container.map-container {
        margin-bottom: 1.5em;
        border-radius: var(--radius-lg);
    }
    
    .map-wrapper {
        position: relative;
        border-radius: var(--radius-lg);
        overflow: hidden;
        box-shadow: var(--shadow-medium);
    }
    
    .orchestra-bars {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 1.5em;
        max-width: 900px;
        margin: 0 auto;
    }
    
    .orchestra-type {
        display: flex;
        flex-direction: column;
        gap: 0.4em;
    }
    
    .orchestra-header {
        display: flex;
        justify-content: space-between;
        font-size: 1rem;
        color: var(--text-secondary);
    }
    
    .orchestra-bar-bg {
        background: var(--gray-200);
        border-radius: var(--radius-sm);
        height: 20px;
        overflow: hidden;
        position: relative;
    }
    
    .orchestra-bar-fill {
        height: 100%;
        border-radius: var(--radius-sm);
        width: 0;
        transition: width 0.6s ease-in-out;
    }
    
    
/* Dropdown menus */

/* Small toggle for results tables */
    
    
/* Formulieren */

    .form-container {
        width: 80%;
        max-width: 700px;
        margin: 0 auto;
        padding: 20px;
        background-color: var(--bg-main);
        box-shadow: var(--shadow-medium);
        border-radius: var(--radius-md);
    }

    .form-group {
        margin-bottom: 15px;
    }
    
    /* ---- form sections ---- */
    .form-section {
        background: var(--bg-white);
        padding: 20px 25px;
        margin-bottom: 28px;
        border-radius: 10px;
        box-shadow: var(--shadow-soft);
    }
    
    .section-title {
        margin-top: 0;
        margin-bottom: 15px;
        font-size: 1.3rem;
        color: var(--text-primary);
        font-weight: 600;
        display: flex;
        align-items: center;
        gap: 8px;
    }
    
    .input-container {
        display: flex;
        gap: 10px; /* Space between the inputs */
    }

    .input-container input {
        flex: 1; /* Make inputs take equal width */
        padding: 10px;
        border: 1px solid var(--border-input);
        border-radius: 5px;
    }
    
    .input-container input:hover {
        border-color: var(--green);
    }
    
    .input-wrapper {
        position: relative;
        flex: 1; /* Each input-wrapper takes equal space */
    }
    
    .input-wrapper input {
        width: 100%;
        padding: 10px;
        border: 1px solid var(--border-input);
        border-radius: 5px;
    }
    
    /* Media Queries for mobile devices */
    @media (max-width: 736px) {
        .form-container {
            width: 95%;
            padding: 8px;
        }
        .form-section {
            padding: 15px 12px;   /* was 20–25px → tighter on mobile */
        }
        input, select, textarea {
            font-size: .85rem; /* Make font size a bit smaller for mobile */
            padding: 0 .3em;
        }
        .input-container input {
            padding: 5px;
        }
        .input-wrapper input {
            padding: 5px;
        }
        .form-group input,
        .form-group select,
        .form-group textarea {
            width: 100%;
            box-sizing: border-box;
        }
    }

/* ============================================
   ADMIN SECTION  (body.admin-page)
   ============================================ */

body.admin-page {
    font-family: system-ui, sans-serif;
    background-color: var(--bg-main);
    margin: 0;
    padding: 2rem;
    color: var(--text-main);
}

body.admin-page.centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    box-sizing: border-box;
}

body.admin-page button.has-items {
    background-color: var(--green);
    color: var(--text-white);
}

body.admin-page button.has-items:hover {
    background-color: var(--green-dark);
}

body.admin-page h1 {
    text-align: center;
    color: var(--text-heading);
    margin-bottom: 1rem;
}

body.admin-page h2 {
    margin-top: 0;
    color: var(--text-heading);
    font-size: 1.8rem;
}

body.admin-page p {
    margin-bottom: 2rem;
    color: var(--text-secondary);
}

body.admin-page .table-container {
    background: var(--bg-white);
    border-radius: var(--radius-lg);
    padding: 1rem;
    box-shadow: var(--shadow-medium);
    overflow-x: auto;
    max-width: 1000px;
    margin: 0 auto;
}

body.admin-page .dashboard {
    background: var(--bg-white);
    padding: 2rem 2.5rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-dark);
    width: 90%;
    max-width: 500px;
    text-align: center;
}

body.admin-page table {
    width: 100%;
    border-collapse: collapse;
}

body.admin-page th,
body.admin-page td {
    padding: 0.8rem;
    text-align: left;
    border-bottom: 1px solid var(--border);
}

body.admin-page th {
    background-color: var(--admin-accent);
    color: var(--text-white);
    font-weight: 600;
}

body.admin-page tr:nth-child(even) {
    background-color: var(--gray-100);
}

body.admin-page tr:hover {
    background-color: var(--gray-200);
}

body.admin-page a.website-link {
    color: var(--admin-accent);
    text-decoration: none;
    word-break: break-all;
}

body.admin-page a.website-link:hover {
    text-decoration: underline;
}

body.admin-page a.logout {
    display: inline-block;
    text-decoration: none;
    color: var(--red);
    font-weight: 600;
    margin-bottom: 2rem;
    transition: color 0.2s;
}

body.admin-page a.logout:hover {
    color: var(--red-dark);
}

body.admin-page button {
    background-color: var(--admin-accent);
    color: var(--text-white);
    font-size: 0.8rem;
    padding: 0.8rem 1rem;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

body.admin-page button:hover {
    background-color: var(--admin-accent-dark);
}

body.admin-page button:active {
    transform: scale(0.98);
}

body.admin-page .login-error {
    color: var(--red);
    text-align: center;
    margin-bottom: 1rem;
}

body.admin-page .action-btn {
    border: none;
    border-radius: 0.4rem;
    padding: 0.4rem 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s;
}

body.admin-page .approve {
    background-color: var(--green);
    color: var(--text-white);
}

body.admin-page .approve:hover {
    background-color: var(--green-dark);
}

body.admin-page .reject {
    background-color: var(--red);
    color: var(--text-white);
}

body.admin-page .reject:hover {
    background-color: var(--red-dark);
}

body.admin-page .no-data {
    text-align: center;
    color: var(--text-muted);
    margin-top: 2rem;
}

body.admin-page .button-group {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Admin form override — prevent public form styles from leaking */
body.admin-page input[type="text"],
body.admin-page input[type="password"],
body.admin-page input[type="email"],
body.admin-page select {
    line-height: normal;
    padding: 0.5rem 0.8rem;
    font-size: 1rem;
    border: 1px solid var(--border-input);
    border-radius: 0.4rem;
    width: 100%;
    box-sizing: border-box;
}

body.admin-page input[type="text"]:focus,
body.admin-page input[type="password"]:focus,
body.admin-page input[type="email"]:focus,
body.admin-page select:focus {
    outline: none;
    border-color: var(--admin-accent);
}

body.admin-page #message {
    text-align: center;
    margin-top: 1rem;
    display: none;
    padding: 0.8rem;
    border-radius: 0.5rem;
}

body.admin-page #message.success {
    background-color: var(--green-ultralight);
    color: var(--green-dark);
    border: 1px solid var(--green-ultralight);
}

body.admin-page #message.error {
    background-color: var(--red-ultralight);
    color: var(--red-dark);
    border: 1px solid var(--red);
}

body.admin-page #searchInput {
    display: block;
    margin: 0 auto 1rem;
    padding: 0.6rem 1rem;
    width: 80%;
    max-width: 400px;
    border-radius: 0.5rem;
    border: 1px solid var(--border-input);
    font-size: 1rem;
}

@media (max-width: 480px) {
    body.admin-page .dashboard {
        padding: 1.5rem;
    }

    body.admin-page h2 {
        font-size: 1.4rem;
    }
}

/* ============================================
   SUBMISSION FORMS  (body.submission-page)
   ============================================ */

body.submission-page {
    font-family: system-ui, sans-serif;
    background-color: var(--bg-main);
    color: var(--text-main);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    margin: 0;
    padding: 1rem;
}

body.submission-page h1 {
    color: var(--text-heading);
    font-size: 1.5rem;
    margin-bottom: 1rem;
    text-align: center;
}

body.submission-page form {
    background: var(--bg-white);
    padding: 2rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-medium);
    width: 90%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

body.submission-page label {
    font-weight: 600;
    color: var(--text-secondary);
}

body.submission-page select {
    padding: 0.6rem;
    border: 1px solid var(--border-input);
    border-radius: 0.5rem;
    font-size: 1rem;
    background-color: var(--bg-white);
    transition: border-color 0.2s;
}

body.submission-page select:focus {
    border-color: var(--green);
    outline: none;
}

body.submission-page button {
    background-color: var(--green);
    color: var(--text-white);
    font-size: 1rem;
    font-weight: 600;
    padding: 0.8rem;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

body.submission-page button:hover {
    background-color: var(--green-dark);
}

body.submission-page button:active {
    transform: scale(0.98);
}

body.submission-page .success-message {
    margin-top: 1rem;
    padding: 1rem;
    background-color: var(--green-ultralight);
    color: var(--green-dark);
    border-radius: 0.5rem;
    border: 1px solid var(--green-ultralight);
    display: none;
}

body.submission-page .autocomplete-container {
    position: relative;
    width: 100%;
}

body.submission-page #conductor_name {
    padding: 0.6rem;
    border: 1px solid var(--border-input);
    border-radius: 0.5rem;
    font-size: 1rem;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

body.submission-page #conductor_name:focus {
    border-color: var(--green);
    outline: none;
}

body.submission-page #autocomplete-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-white);
    border: 1px solid var(--border-input);
    border-top: none;
    border-radius: 0 0 0.5rem 0.5rem;
    box-shadow: var(--shadow-soft);
    z-index: 10;
    max-height: 180px;
    overflow-y: auto;
}

body.submission-page #autocomplete-list div {
    padding: 0.6rem 0.8rem;
    cursor: pointer;
    transition: background-color 0.15s;
}

body.submission-page #autocomplete-list div:hover {
    background-color: var(--green-ultralight);
}


    
    
