/* machine_head.css */

/* Reset default margins and paddings */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Apply a black background with a star pattern */
body {
    background-color: black;
    color: lime;
    font-family: 'Courier New', Courier, monospace;
    height: 100vh; /* Full viewport height */
    overflow: hidden; /* Prevent body scroll */
}

/* Header styles */
header {
    background-color: black;
    color: cyan;
    text-align: center;
    padding: 20px 0;
    text-shadow: 0 0 5px cyan;
    border-bottom: 3px double lime;
    height: 80px; /* Fixed header height */
    flex-shrink: 0; /* Prevent header from shrinking */
}

header h1 {
    font-size: 2.5em;
}

/* Container to hold nav and main content */
.container {
    display: flex;
    height: calc(100vh - 80px); /* Full height minus header */
}

/* Navigation styles */
nav {
    width: 200px;
    background-color: rgba(0, 0, 0, 0.8);
    border-right: 3px double lime;
    padding-top: 20px;
    flex-shrink: 0; /* Prevent nav from shrinking */
    overflow-y: auto; /* Allow nav to scroll if needed */
}

nav ul {
    list-style-type: none;
}

nav li {
    border-bottom: 1px solid lime;
}

nav li:last-child {
    border-bottom: none;
}

nav a {
    display: block;
    color: lime;
    text-decoration: none;
    padding: 10px;
    font-weight: bold;
}

nav a:hover {
    background-color: lime;
    color: black;
}

/* Main content styles */
main {
    flex-grow: 1;
    padding: 20px;
    background-image: 
        radial-gradient(white 0.5px, transparent 0.5px),
        radial-gradient(white 0.5px, transparent 0.5px);
    background-size: 10px 10px;
    background-position: 0 0, 5px 5px;
    overflow-y: auto; /* Only main content scrolls */
    height: 100%; /* Take full height of container */
}

/* Paragraph styles in main content */
main p {
    font-size: 1.2em;
}

/* Flash Messages */
.flash-messages {
    list-style-type: none;
    padding: 0;
    margin-bottom: 20px;
}

.flash-messages li {
    color: red;
    text-align: center;
    margin-bottom: 10px;
}

/* Message Board Container */
.message-board {
    margin-top: 20px;
}

/* Message Board Heading */
.message-board h2 {
    color: cyan;
    text-shadow: 0 0 5px cyan;
    margin-bottom: 20px;
}

/* Message Form */
.message-board form {
    margin-bottom: 20px;
}

.message-board textarea {
    width: 100%;
    padding: 10px;
    border: 2px inset lime;
    background-color: black;
    color: lime;
    font-family: 'Courier New', Courier, monospace;
}

.message-board input[type="submit"] {
    padding: 10px 20px;
    background-color: lime;
    color: black;
    font-weight: bold;
    border: 2px outset lime;
    cursor: pointer;
    margin-top: 10px;
}

/* Messages */
.message {
    border-bottom: 1px solid lime;
    padding: 10px 0;
}

.message p {
    margin: 5px 0;
}

.message strong {
    color: cyan;
}

/* Fix the missing dot for flash-messages class */
.flash-messages {
    margin-bottom: 20px;
}

.alert {
    padding: 12px;
    margin-bottom: 10px;
    border-radius: 4px;
    background-color: rgba(0, 0, 0, 0.7); /* Dark lime background */
    border: 1px solid lime;
    color: lime;
}

.status-success {
    background-color: rgba(0, 255, 255, 0.1); /* Dark cyan background */
    border: 1px solid cyan;
    color: cyan;
    padding: 15px;
    border-radius: 5px;
    margin: 10px 0;
}

.status-warning {
    background-color: rgba(255, 255, 0, 0.1); /* Dark yellow background */
    border: 1px solid yellow;
    color: yellow;
    padding: 15px;
    border-radius: 5px;
    margin: 10px 0;
}

.group-badge {
    display: inline-block;
    padding: 4px 8px;
    margin: 2px;
    border-radius: 12px;
    font-size: 0.85em;
    font-weight: bold;
    border: 1px solid;
}

.group-user { 
    background-color: rgba(0, 123, 255, 0.2); 
    color: #4da6ff; 
    border-color: #4da6ff;
}
.group-media { 
    background-color: rgba(40, 167, 69, 0.2); 
    color: #5cb85c; 
    border-color: #5cb85c;
}
.group-comms { 
    background-color: rgba(23, 162, 184, 0.2); 
    color: #5bc0de; 
    border-color: #5bc0de;
}
.group-clown { 
    background-color: rgba(220, 53, 69, 0.2); 
    color: #d9534f; 
    border-color: #d9534f;
}

.group-lldap_admin { 
    background-color: rgba(255, 0, 255, 0.2); 
    color: #ff69b4; 
    border-color: #ff69b4;
}

.form-row {
    display: flex;
    gap: 15px;
}

.form-row .form-group {
    flex: 1;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: cyan;
}

.form-group input, .form-group select {
    width: 100%;
    padding: 8px;
    border: 2px inset lime;
    border-radius: 4px;
    font-size: 14px;
    background-color: black;
    color: lime;
    font-family: 'Courier New', Courier, monospace;
}

.form-group input:focus, .form-group select:focus {
    outline: none;
    border-color: cyan;
    box-shadow: 0 0 5px cyan;
}

.form-group small {
    display: block;
    margin-top: 5px;
    color: #888;
    font-size: 12px;
}

.btn-primary {
    background-color: lime;
    color: black;
    padding: 10px 20px;
    border: 2px outset lime;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    display: inline-block;
    font-family: 'Courier New', Courier, monospace;
}

.btn-primary:hover {
    background-color: cyan;
    color: black;
    border-color: cyan;
    text-shadow: 0 0 3px black;
}

.permissions-info {
    background-color: rgba(0, 0, 0, 0.7);
    border: 1px solid lime;
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
}

.permission-level {
    font-weight: bold;
    color: cyan;
    margin-top: 10px;
}

.permission-note {
    margin-top: 10px;
    font-style: italic;
    color: lime;
}

.permission-note a {
    color: cyan;
    text-decoration: none;
}

.permission-note a:hover {
    text-decoration: underline;
    text-shadow: 0 0 3px cyan;
}

.info-section {
    background-color: rgba(0, 0, 0, 0.7);
    border: 1px solid lime;
    padding: 15px;
    border-radius: 5px;
    margin-top: 20px;
}

.group-descriptions {
    list-style: none;
    padding: 0;
}

.group-descriptions li {
    padding: 8px 0;
    display: flex;
    align-items: center;
    gap: 10px;
    color: lime;
}

.note {
    background-color: rgba(0, 0, 0, 0.8);
    border: 1px solid cyan;
    padding: 10px;
    border-radius: 4px;
    margin-top: 15px;
    border-left: 4px solid cyan;
    color: lime;
}

.profile-form {
    background-color: rgba(0, 0, 0, 0.7);
    border: 1px solid lime;
    padding: 20px;
    border-radius: 5px;
}

.password-section {
    margin-top: 20px;
}

.profile-info {
    margin-bottom: 20px;
}

.generate-form {
    background-color: rgba(0, 0, 0, 0.7);
    border: 1px solid lime;
    padding: 20px;
    border-radius: 5px;
}

.usage-tracker {
    background-color: rgba(0, 0, 0, 0.5);
    border: 1px solid #333;
    padding: 10px;
    border-radius: 4px;
    margin-top: 10px;
}

.limit-reached {
    color: #ff6b6b;
    font-weight: bold;
}

.limit-available {
    color: lime;
    font-weight: bold;
}

.no-links-available {
    background-color: rgba(255, 165, 0, 0.1);
    border: 1px solid orange;
    padding: 20px;
    border-radius: 5px;
    text-align: center;
    color: orange;
}

.no-links-available h3 {
    margin-top: 0;
    color: orange;
}

.limits-summary {
    margin-top: 10px;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
}

.limits-summary p {
    margin: 5px 0;
    font-size: 0.9em;
}

