@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');

:root {
    --clr-bg-primary: #121217;
    --clr-bg-secondary: #1e1e24;
    --clr-text-primary: #ffffff;
    --clr-text-secondary: #a0a0a0;
    --clr-accent: #4fa6d9;
    --clr-accent-hover: #2c7bc9;
    --clr-success: #8dc4e7;
    --clr-error: #ff7070;
    --clr-gold: #ffcc00;
    --fnt-family: "Ubuntu", "Arial", sans-serif;
    --fnt-size-base: 18px;
    --fnt-size-h1: 2.5rem;
    --fnt-size-h2: 2rem;
    --fnt-size-medium: 1.125rem;
    --fnt-size-small: 0.875rem;
    --fnt-size-xsmall: 0.75rem;
    --space-sm: 10px;
    --space-md: 20px;
    --space-lg: 50px;
    --radius-sm: 5px;
    --radius-xl: 50px;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--fnt-family);
    background-color: var(--clr-bg-primary);
    color: var(--clr-text-primary);
    min-height: 100vh;
    height: 100%;
    text-align: center;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
}

pre {
    white-space: pre-wrap;
    word-wrap: break-word;
}

.container {
    flex-grow: 1;
    padding: var(--space-lg) var(--space-md) 0;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

header h1 {
    font-size: var(--fnt-size-h1);
    margin-bottom: var(--space-md);
    color: var(--clr-accent);
    font-weight: 600;
}

h2 {
    font-size: var(--fnt-size-h2);
    margin-bottom: var(--space-md);
    color: var(--clr-accent);
    font-weight: 500;
}

.p_http_error {
    font-size: var(--fnt-size-medium);
    color: var(--clr-accent);
    margin-top: var(--space-md);
    font-weight: bold;
}

form {
    display: block;
    margin: 0 auto;
    max-width: 800px;
}

input, textarea, select {
    width: 100%;
    max-width: 500px;
    padding: 12px 15px;
    margin-bottom: var(--space-sm);
    border: 1px solid var(--clr-accent);
    border-radius: var(--radius-xl);
    background-color: var(--clr-bg-secondary);
    color: var(--clr-text-primary);
    font-size: var(--fnt-size-medium);
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

input[type="checkbox"] {
    width: auto;
    margin-right: 10px;
    vertical-align: top;
}

.simple-captcha-img {
    vertical-align: middle;
    display: block;
    margin: 10px auto 0;
    border: 1px solid #4fa6d9;
    border-radius: 5px;
}

.simple-captcha-text {
    margin-top: 10px;
}

textarea {
    border-radius: var(--radius-sm);
}

input:focus, textarea:focus, select:focus {
    border-color: var(--clr-success);
    box-shadow: 0 0 5px rgba(79, 166, 217, 0.5);
}

input::placeholder, textarea::placeholder {
    color: var(--clr-text-secondary);
}

input:disabled {
    background-color: #383842;
    color: var(--clr-text-secondary);
    border-color: #383842;
}

textarea {
    resize: vertical;
    min-height: 120px;
}

button {
    width: 100%;
    max-width: 500px;
    padding: 12px 15px;
    border: none;
    border-radius: var(--radius-xl);
    background-color: var(--clr-accent);
    color: var(--clr-text-primary);
    font-size: var(--fnt-size-medium);
    cursor: pointer;
    font-weight: 600;
    transition: background-color 0.3s ease, transform 0.1s ease;
}

button:hover {
    background-color: var(--clr-accent-hover);
}

button:active {
    transform: scale(0.99);
}

.small_button {
    width: 110px;
    padding: 5px 8px;
    font-size: var(--fnt-size-small);
    max-width: none;
}

.dark_grey_button {
    background-color: #4a4a55;
    color: var(--clr-text-primary);
}

.dark_grey_button:hover {
    background-color: #383842;
}

.dark_red_button {
    background-color: #d94f4f;
    color: var(--clr-text-primary);
}

.dark_red_button:hover {
    background-color: #c03939;
}

.dark_blue_button {
    background-color: #4f7bd9;
    color: var(--clr-text-primary);
}

.dark_blue_button:hover {
    background-color: #2c5cc9;
}

.p_short_result {
    text-align: center;
    color: var(--clr-success);
    font-size: var(--fnt-size-medium);
    margin-top: var(--space-md);
}

.p_short_result a {
    font-size: var(--fnt-size-small);
    color: var(--clr-accent);
    text-decoration: none;
    font-style: italic;
    transition: color 0.3s ease;
}

.p_short_result a:hover {
    color: var(--clr-success);
}

.p_short_result_password {
    text-align: center;
    color: var(--clr-text-secondary);
    font-size: var(--fnt-size-small);
}

.p_short_result_password_content {
    font-family: monospace;
    background-color: var(--clr-bg-secondary);
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    display: inline-block;
    color: var(--clr-success);
}

.p_error {
    color: var(--clr-error);
    text-align: center;
    font-weight: bold;
    margin-top: var(--space-md);
    margin-left: auto;
    margin-right: auto;
    max-width: 350px;
    font-size: var(--fnt-size-medium);
    padding: 10px;
    border: 1px solid var(--clr-error);
    border-radius: var(--radius-sm);
    background-color: rgba(255, 112, 112, 0.1);
}

.p_success {
    color: var(--clr-success);
    text-align: center;
    font-weight: bold;
    margin-top: var(--space-md);
    font-size: var(--fnt-size-medium);
    padding: 10px;
    border: 1px solid var(--clr-success);
    border-radius: var(--radius-sm);
    background-color: rgba(141, 196, 231, 0.1);
}

.a_link, .a, .a_white {
    color: var(--clr-accent);
    text-decoration: none;
    transition: color 0.3s ease;
}

.a:hover {
    color: var(--clr-accent-hover);
}

.a_link {
    font-size: var(--fnt-size-xsmall);
}

.a_no_underline {
    text-decoration: none;
}

.a_white {
    color: var(--clr-text-primary);
}

.img_qr_code {
    margin: 30px auto;
    max-width: 150px;
    max-height: 150px;
    display: block;
    border: 4px solid var(--clr-text-primary);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.p_bold {
    font-weight: bold;
}

.p_italic {
    font-style: italic;
}

.p_size_medium {
    font-size: var(--fnt-size-medium);
}

.home_main_section, .div_link_content_view, .div_terms, .profile_container, .small_table {
    background-color: var(--clr-bg-secondary);
    padding: var(--space-md);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    margin: var(--space-md) auto;
    border-top: 3px solid var(--clr-accent);
    text-align: left;
}

.home_main_section {
    text-align: center;
    max-width: 650px;
}

.div_link_content_view {
    max-width: 800px;
}

.div_terms {
    max-width: 500px;
}

.align_left {
    text-align: left;
}

.align_right {
    text-align: right;
}

.align_center {
    text-align: center;
}

.pre_content_view {
    background-color: var(--clr-bg-primary);
    color: var(--clr-text-primary);
    padding: 10px;
    border-radius: var(--radius-sm);
    border: 1px solid #383842;
    overflow-x: auto;
}

.p_medium_title {
    font-size: var(--fnt-size-medium);
    color: var(--clr-accent);
}

.p_terms_title {
    text-align: left;
    margin-top: 0;
    font-weight: 600;
}

.p_app_page_title {
    font-weight: bold;
    font-size: 1.5rem;
    margin-top: 0;
}

.p_tos {
    text-align: left;
    font-size: var(--fnt-size-small);
    margin: 0;
}

.button_premium {
    background: linear-gradient(90deg, rgba(255, 183, 42, 1) 0%, rgba(242, 232, 90, 1) 35%, rgba(255, 183, 42, 1) 100%);
    color: var(--clr-bg-primary);
    font-weight: bold;
    font-size: var(--fnt-size-medium);
    padding: 12px 20px;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    margin: var(--space-md) auto;
    box-shadow: 0 4px 15px rgba(255, 204, 0, 0.4);
}

.button_premium:hover {
    background: linear-gradient(90deg, rgba(242, 232, 90, 1) 0%, rgba(255, 183, 42, 1) 35%, rgba(242, 232, 90, 1) 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 204, 0, 0.6);
}

.premium_text_gold {
    color: var(--clr-gold);
    background: linear-gradient(90deg, rgba(242, 232, 90, 1) 0%, rgba(255, 183, 42, 1) 35%, rgba(242, 232, 90, 1) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: bold;
}

.green_gradient_text {
    color: #bcffbc;
    background: linear-gradient(90deg, rgba(188, 255, 188, 1) 0%, rgba(42, 255, 183, 1) 35%, rgba(188, 255, 188, 1) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: bold;
}

.red_text_color {
    color: var(--clr-error);
}

.small_table {
    border: none;
    border-collapse: collapse;
    margin-left: auto;
    margin-right: auto;
    max-width: 500px;
}

.small_table td {
    font-weight: 500;
    text-align: left;
    border: 1px solid #383842;
    padding: 10px 15px;
    background-color: var(--clr-bg-primary);
    border-radius: var(--radius-sm);
    margin-bottom: 5px;
}

.no_margin {
    margin: 0;
}

.small_margin_bottom {
    margin-bottom: 8px;
}

.mini_margin_horizontal {
    margin-left: 4px;
    margin-right: 4px;
}

.small_text {
    font-size: var(--fnt-size-small);
}

.mini_text {
    font-size: var(--fnt-size-xsmall);
}

.light_grey_text {
    color: var(--clr-text-secondary);
}

.hidden {
    display: none;
}

.svg_table_icon {
    width: 18px;
    height: 18px;
    margin-left: 8px;
    vertical-align: middle;
}

.home_links_section {
    margin-top: var(--space-sm);
}

.profile_picture {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.profile_img_flag {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    border-radius: 5px;
}

.profile_info_country_bio_container {
    display: inline-block;
    margin-top: var(--space-sm);
    margin-bottom: var(--space-sm);
}

.profile_bio {
    vertical-align: middle;
    font-size: var(--fnt-size-medium);
    margin-left: var(--space-sm);
    color: var(--clr-text-secondary);
}

.profile_container {
    max-width: 600px;
    text-align: center;
    margin: 0 auto;
}

.profile_social_card {
    margin: 10px auto;
    padding: 10px;
    background-color: var(--clr-bg-primary);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    text-align: center;
}

.profile_social_card:hover {
    filter: brightness(1.2);
}

.profile_social_icon {
    width: 24px;
    height: 24px;
    vertical-align: bottom;
    filter: invert(100%);
    margin-right: 4px;
}

.profile_social_text {
    color: var(--clr-text-primary);
    font-size: var(--fnt-size-small);
    font-weight: 500;
}

.profile_verified_badge_icon {
    width: 22px;
    height: 22px;
    vertical-align: middle;
}

.profile_school_icon {
    width: 14px;
    height: 14px;
    vertical-align: middle;
    filter: invert(100%) brightness(70%);
    margin-right: 4px;
}

.my_account_edit_container {
    max-width: 500px;
    text-align: center;
    margin: var(--space-md) auto;
    background-color: var(--clr-bg-secondary);
    padding: var(--space-md);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    border-top: 3px solid var(--clr-accent);
}

.icon_preview_image {
    width: 60px;
    height: 60px;
    margin: 0 auto;
    filter: invert(100%);
}

.icon_preview_name {
    font-size: var(--fnt-size-small);
    margin: 0 auto;
    color: var(--clr-text-primary);
    word-wrap: break-word;
}

.icons_preview_container {
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--space-md);
}

.icon_preview_box {
    background-color: var(--clr-bg-secondary);
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    text-align: center;
    border-top: 3px solid var(--clr-accent);
}

@media (max-width: 768px) {
    :root {
        --fnt-size-h1: 2rem;
        --fnt-size-h2: 1.5rem;
        --fnt-size-base: 16px;
        --space-lg: 30px;
        --space-md: 15px;
        --space-sm: 8px;
    }

    .container {
        padding: var(--space-md) 15px 0;
    }

    input, textarea, select, button {
        font-size: 16px;
    }

    .small_table {
        max-width: 100%;
        width: 100%;
    }

    .div_link_content_view, .div_terms, .small_table {
        padding: var(--space-md) 15px;
    }
}