@import url('fonts.css');

:root {
            --primary-color: #007bff;
            --primary-hover-color: #0056b3;
            --secondary-color: #6c757d;
            --accent-color: #004a98;
            --success-color: #28a745;
            --danger-color: #dc3545;
            --light-color: #f8f9fa;
            --dark-color: #343a40;
            --background-color: #eef2f7;
            --text-color: #333;
            --text-muted-color: #6c757d;
            --border-color: #ced4da;
            --card-background-color: #ffffff;
            --shadow-color: rgba(0, 0, 0, 0.1);
            --focus-ring-color: rgba(0, 123, 255, 0.25);

            --font-family-sans-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            --font-family-headings: var(--font-family-sans-serif);
            
            --current-background-color: var(--background-color);
            --current-text-color: var(--text-color);
            --current-card-background-color: var(--card-background-color);
            --current-border-color: var(--border-color);
            --current-light-color: var(--light-color);
            --current-dark-color: var(--dark-color);
            --current-shadow-color: var(--shadow-color);
            --current-modal-overlay-color: rgba(30, 40, 50, 0.7);

            --success-message-background-color: #e5ffe5;
            --success-message-icon-color: var(--success-color);
            --success-message-text-color: #2c7a7b;

            --dark-theme-background-color: #2c3e50;
            --dark-theme-text-color: #ecf0f1;
            --dark-theme-card-background-color: #34495e;
            --dark-theme-border-color: #4a6278;
            --dark-theme-light-color: #415a72;
            --dark-theme-modal-overlay-color: rgba(0, 0, 0, 0.8);

            --dark-theme-success-message-background-color: #2a4d3e;
            --dark-theme-success-message-icon-color: #68d391;
            --dark-theme-success-message-text-color: #c6f6d5;
        }

        html.dark-theme {
            --current-background-color: var(--dark-theme-background-color);
            --current-text-color: var(--dark-theme-text-color);
            --current-card-background-color: var(--dark-theme-card-background-color);
            --current-border-color: var(--dark-theme-border-color);
            --current-light-color: var(--dark-theme-light-color);
            --current-dark-color: var(--dark-theme-text-color);
            --current-shadow-color: var(--dark-theme-shadow-color);
            --current-modal-overlay-color: var(--dark-theme-modal-overlay-color);

            --success-message-background-color: var(--dark-theme-success-message-background-color);
            --success-message-icon-color: var(--dark-theme-success-message-icon-color);
            --success-message-text-color: var(--dark-theme-success-message-text-color);
        }

        body {
            font-family: var(--font-family-sans-serif);
            background-color: var(--current-background-color);
            color: var(--current-text-color);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            padding: 30px;
            line-height: 1.7;
        }
        .main-content-wrapper {
            width: 100%;
            max-width: 600px;
            display: flex;
            flex-direction: column;
            gap: 30px;
        }
        .app-section-styles {
            background-color: var(--current-card-background-color);
            padding: 40px;
            border-radius: 12px;
            box-shadow: 0 10px 40px var(--current-shadow-color);
            width: 100%;
        }
        .page-title {
            font-family: var(--font-family-headings);
            font-size: 2rem;
            font-weight: 600;
            color: var(--current-dark-color);
            margin-bottom: 1.5rem;
            text-align: center;
            margin-top: -0.5rem;
        }

        .modern-input-group {
            position: relative;
            border: 1px solid var(--current-border-color);
            background-color: var(--current-light-color);
            border-radius: 8px;
            padding: 12px 16px;
            display: flex;
            flex-direction: column;
            transition: all 0.3s ease;
            cursor: default;
        }

        .modern-input-group:has(input:not([type="button"]):not([type="submit"])),
        .modern-input-group:has(textarea) {
            cursor: text;
        }

        .modern-input-group:hover:not(:focus-within):not(:has(input[readonly])):not(:has(textarea[readonly])):not(:has(input[disabled])):not(:has(textarea[disabled])) {
            border-color: #adb5bd;
            background-color: var(--current-card-background-color);
        }

        .modern-input-group:focus-within:not(:has(input[readonly])):not(:has(textarea[readonly])):not(:has(input[disabled])):not(:has(textarea[disabled])) {
            border-color: var(--primary-color);
            border-width: 1px;
            background-color: var(--current-card-background-color);
        }

        .modern-label {
            font-size: 0.7rem;
            font-weight: 700;
            color: var(--text-muted-color);
            text-transform: uppercase;
            margin-bottom: 4px;
            letter-spacing: 0.05em;
            display: block;
            transition: color 0.3s ease;
            pointer-events: none;
            line-height: 1.2;
            text-align: left;
        }

        html.dark-theme .modern-label {
            color: var(--current-text-color);
        }

        .modern-input-group:focus-within:not(:has(input[readonly])):not(:has(textarea[readonly])):not(:has(input[disabled])):not(:has(textarea[disabled])) .modern-label {
            color: var(--primary-color);
        }

        .modern-input-group .form-input,
        .modern-input-group .form-textarea {
            border: none !important;
            background-color: transparent !important;
            padding: 0 !important;
            box-shadow: none !important;
            border-radius: 0 !important;
            min-height: auto !important;
            width: 100% !important;
            color: var(--current-text-color) !important;
            font-size: 1rem !important;
            line-height: 1.5 !important;
            margin: 2px 0 0 0 !important;
            resize: none;
        }

        .modern-input-group .form-textarea {
            margin-top: 6px !important;
        }

        .modern-input-group:has(input[readonly]),
        .modern-input-group:has(textarea[readonly]),
        .modern-input-group:has(input[disabled]),
        .modern-input-group:has(textarea[disabled]) {
            background-color: #e9ecef;
            cursor: not-allowed !important;
        }

        .modern-input-group:has(input[readonly]) .modern-label,
        .modern-input-group:has(textarea[readonly]) .modern-label,
        .modern-input-group:has(input[disabled]) .modern-label,
        .modern-input-group:has(textarea[disabled]) .modern-label {
            pointer-events: none;
        }

        .modern-input-group:has(input[readonly]) input,
        .modern-input-group:has(textarea[readonly]) textarea,
        .modern-input-group:has(input[disabled]) input,
        .modern-input-group:has(textarea[disabled]) textarea {
            caret-color: transparent;
            cursor: inherit;
        }

        html.dark-theme .modern-input-group:has(input[readonly]),
        html.dark-theme .modern-input-group:has(textarea[readonly]),
        html.dark-theme .modern-input-group:has(input[disabled]),
        html.dark-theme .modern-input-group:has(textarea[disabled]) {
            background-color: var(--dark-theme-light-color);
            opacity: 0.7;
        }

        .form-input, .form-textarea {
            width: 100%;
            padding: 14px 20px;
            border: 1px solid var(--current-border-color);
            background-color: var(--current-light-color);
            border-radius: 12px;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
            font-size: 1rem;
            font-family: var(--font-family-sans-serif);
            color: var(--current-text-color);
            resize: none;
        }
        .form-input:focus, .form-textarea:focus {
            outline: none;
            border-color: var(--primary-color);
            box-shadow: 0 0 0 4px var(--focus-ring-color);
        }
        .btn-primary {
            transition: background-color 0.2s ease-out, box-shadow 0.1s ease-out, transform 0.1s ease-out;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 10px;
            padding: 15px 24px;
            border-radius: 8px;
            font-family: var(--font-family-sans-serif);
            font-weight: 500;
            border: none;
            cursor: pointer;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            font-size: 0.9rem;
            background-color: var(--primary-color);
            color: white;
            box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2);
            margin-top: 7px;
            margin-bottom: -15px;
        }
        .btn-primary:hover {
            transform: translateY(-1px);
            box-shadow: 0 5px 12px rgba(0,0,0,0.12);
            background-color: var(--primary-hover-color);
        }
        .btn-primary:disabled {
            background-color: #b0bec5;
            color: #78909c;
            opacity: 0.7;
            cursor: not-allowed;
            box-shadow: none;
            transform: none;
        }
        .loading-spinner {
            border: 3px solid rgba(255, 255, 255, 0.3);
            border-top: 3px solid #fff;
            border-radius: 50%;
            width: 18px;
            height: 18px;
            animation: spin 0.8s linear infinite;
            display: inline-block;
            vertical-align: middle;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        .message-box {
            padding: 18px 30px;
            border-radius: 12px;
            text-align: center;
            margin-top: 20px;
            font-weight: 500;
        }
        .message-box.success {
            background-color: var(--success-message-background-color);
            color: var(--success-message-text-color);
            border: 1px solid var(--success-color);
        }
        .message-box.error {
            background-color: #ffebee;
            color: var(--danger-color);
            border: 1px solid var(--danger-color);
        }
        .message-box i[data-feather] {
            width: 1.5rem;
            height: 1.5rem;
            margin-right: 10px;
            vertical-align: middle;
        }
        .success-icon { color: var(--success-message-icon-color); }

        #logo-container {
            display: flex;
            justify-content: center;
            margin-bottom: 1rem;
            margin-top: 1rem;
        }
        #logo {
            height: 80px;
            width: auto;
            border-radius: 10px;
        }
        .login-link-container {
            text-align: center;
            margin-top: 20px;
        }
        .login-link {
            color: var(--primary-color);
            text-decoration: none;
            font-weight: 500;
        }
        .login-link:hover {
            text-decoration: underline;
        }
        html.dark-theme .login-link {
            color: var(--accent-color);
        }
        .hidden {
            display: none !important;
        }

        #public-ticket-section {
            position: relative;
        }

        #success-message-container {
            border-radius: 20px;
            background-color: var(--current-card-background-color);
        }

        .success-title {
            color: var(--current-dark-color);
        }

        .success-text {
            color: var(--current-text-color);
        }

        .checkmark-container {
            width: 100px;
            height: 100px;
            margin-bottom: 2rem;
            margin-top: -2rem;
        }
        .checkmark {
            width: 100px;
            height: 100px;
            border-radius: 50%;
            display: block;
            stroke-width: 3;
            stroke: white;
            stroke-miterlimit: 10;
            box-shadow: inset 0px 0px 0px var(--success-color);
            animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
        }
        html.dark-theme .checkmark {
            stroke: var(--dark-theme-success-message-icon-color);
            box-shadow: inset 0px 0px 0px var(--dark-theme-success-message-icon-color);
        }
        .checkmark-circle {
            stroke-dasharray: 166;
            stroke-dashoffset: 166;
            stroke-width: 2;
            stroke-miterlimit: 10;
            stroke: var(--success-color);
            fill: none;
            animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
        }
        html.dark-theme .checkmark-circle {
            stroke: var(--dark-theme-success-message-icon-color);
        }
        .checkmark-check {
            transform-origin: 50% 50%;
            stroke-dasharray: 48;
            stroke-dashoffset: 48;
            animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
        }

        @keyframes stroke {
            100% {
                stroke-dashoffset: 0;
            }
        }
        @keyframes scale {
            0%, 100% {
                transform: none;
            }
            50% {
                transform: scale3d(1.1, 1.1, 1);
            }
        }
        @keyframes fill {
            100% {
                box-shadow: inset 0px 0px 0px 60px var(--success-color);
            }
        }

        @layer properties;
        @layer theme, base, components, utilities;
        @layer theme {
        :root, :host {
            --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
            'Noto Color Emoji';
            --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
            monospace;
            --spacing: 0.25rem;
            --container-xs: 20rem;
            --text-sm: 0.875rem;
            --text-sm--line-height: calc(1.25 / 0.875);
            --text-2xl: 1.5rem;
            --text-2xl--line-height: calc(2 / 1.5);
            --font-weight-semibold: 600;
            --font-weight-bold: 700;
            --default-font-family: var(--font-sans);
            --default-mono-font-family: var(--font-mono);
        }
        }
        @layer base {
        *, ::after, ::before, ::backdrop, ::file-selector-button {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            border: 0 solid;
        }
        html, :host {
            line-height: 1.5;
            -webkit-text-size-adjust: 100%;
            tab-size: 4;
            font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
            font-feature-settings: var(--default-font-feature-settings, normal);
            font-variation-settings: var(--default-font-variation-settings, normal);
            -webkit-tap-highlight-color: transparent;
        }
        hr {
            height: 0;
            color: inherit;
            border-top-width: 1px;
        }
        abbr:where([title]) {
            -webkit-text-decoration: underline dotted;
            text-decoration: underline dotted;
        }
        h1, h2, h3, h4, h5, h6 {
            font-size: inherit;
            font-weight: inherit;
        }
        a {
            color: inherit;
            -webkit-text-decoration: inherit;
            text-decoration: inherit;
        }
        b, strong {
            font-weight: bolder;
        }
        code, kbd, samp, pre {
            font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace);
            font-feature-settings: var(--default-mono-font-feature-settings, normal);
            font-variation-settings: var(--default-mono-font-variation-settings, normal);
            font-size: 1em;
        }
        small {
            font-size: 80%;
        }
        sub, sup {
            font-size: 75%;
            line-height: 0;
            position: relative;
            vertical-align: baseline;
        }
        sub {
            bottom: -0.25em;
        }
        sup {
            top: -0.5em;
        }
        table {
            text-indent: 0;
            border-color: inherit;
            border-collapse: collapse;
        }
        :-moz-focusring {
            outline: auto;
        }
        progress {
            vertical-align: baseline;
        }
        summary {
            display: list-item;
        }
        ol, ul, menu {
            list-style: none;
        }
        img, svg, video, canvas, audio, iframe, embed, object {
            display: block;
        }
        img, video {
            max-width: 100%;
            height: auto;
        }
        button, input, select, optgroup, textarea, ::file-selector-button {
            font: inherit;
            font-feature-settings: inherit;
            font-variation-settings: inherit;
            letter-spacing: inherit;
            color: inherit;
            border-radius: 0;
            background-color: transparent;
            opacity: 1;
        }
        :where(select:is([multiple], [size])) optgroup {
            font-weight: bolder;
        }
        :where(select:is([multiple], [size])) optgroup option {
            padding-inline-start: 20px;
        }
        ::file-selector-button {
            margin-inline-end: 4px;
        }
        ::placeholder {
            opacity: 1;
        }
        @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
            ::placeholder {
            color: currentcolor;
            @supports (color: color-mix(in lab, red, red)) {
                color: color-mix(in oklab, currentcolor 50%, transparent);
            }
            }
        }
        textarea {
            resize: vertical;
        }
        ::-webkit-search-decoration {
            -webkit-appearance: none;
        }
        ::-webkit-date-and-time-value {
            min-height: 1lh;
            text-align: inherit;
        }
        ::-webkit-datetime-edit {
            display: inline-flex;
        }
        ::-webkit-datetime-edit-fields-wrapper {
            padding: 0;
        }
        ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
            padding-block: 0;
        }
        ::-webkit-calendar-picker-indicator {
            line-height: 1;
        }
        :-moz-ui-invalid {
            box-shadow: none;
        }
        button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button {
            appearance: button;
        }
        ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
            height: auto;
        }
        [hidden]:where(:not([hidden='until-found'])) {
            display: none!important;
        }
        }
        @layer utilities {
        .absolute {
            position: absolute;
        }
        .inset-0 {
            inset: calc(var(--spacing) * 0);
        }
        .z-10 {
            z-index: 10;
        }
        .mb-2 {
            margin-bottom: calc(var(--spacing) * 2);
        }
        .mb-3 {
            margin-bottom: calc(var(--spacing) * 3);
        }
        .mb-4 {
            margin-bottom: calc(var(--spacing) * 4);
        }
        .mb-6 {
            margin-bottom: calc(var(--spacing) * 6);
        }
        .block {
            display: block;
        }
        .flex {
            display: flex;
        }
        .hidden {
            display: none;
        }
        .w-full {
            width: 100%;
        }
        .max-w-xs {
            max-width: var(--container-xs);
        }
        .flex-col {
            flex-direction: column;
        }
        .items-center {
            align-items: center;
        }
        .justify-center {
            justify-content: center;
        }
        .p-4 {
            padding: calc(var(--spacing) * 4);
        }
        .gap-4 {
        gap: 1rem;
        }
        .text-2xl {
            font-size: var(--text-2xl);
            line-height: var(--tw-leading, var(--text-2xl--line-height));
        }
        .text-sm {
            font-size: var(--text-sm);
            line-height: var(--tw-leading, var(--text-sm--line-height));
        }
        .font-bold {
            --tw-font-weight: var(--font-weight-bold);
            font-weight: var(--font-weight-bold);
        }
        .font-semibold {
            --tw-font-weight: var(--font-weight-semibold);
            font-weight: var(--font-weight-semibold);
        }
        }
        @property --tw-font-weight {
        syntax: "*";
        inherits: false;
        }

        .file-upload-wrapper {
            display: flex;
            align-items: center;
            width: 100%;
            min-height: 24px;
        }

        .file-upload-label {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: 100%;
            cursor: pointer;
            color: var(--text-muted-color);
            font-size: 0.9rem;
        }

        .file-icon {
            width: 1.2rem !important;
            height: 1.2rem !important;
            color: var(--text-muted-color);
        }

        .clear-file-btn {
            background: none;
            border: none;
            padding: 4px;
            cursor: pointer;
            color: var(--danger-color);
            display: flex;
            align-items: center;
            justify-content: center;
            transition: opacity 0.2s;
        }

        .clear-file-btn:hover {
            opacity: 0.8;
        }

        .clear-file-btn i, .clear-file-btn svg {
            width: 1rem !important;
            height: 1rem !important;
        }

        .truncate {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 80%;
            font-size: 0.95rem;
            color: var(--current-text-color);
        }

        .dropdown-menu {
            position: absolute;
            top: calc(100% + 12px);
            right: 0;
            background-color: var(--current-card-background-color);
            border-radius: 12px;
            box-shadow: 0 10px 30px var(--current-shadow-color); 
            padding: 8px;
            min-width: 200px;
            z-index: 10;
            opacity: 0;
            transform: translateY(-15px) scale(0.98);
            transition: opacity 0.25s ease, transform 0.25s ease;
            pointer-events: none;
            display: flex;
            flex-direction: column;
            gap: 6px;
            border: 1px solid var(--current-border-color);
        }

        .dropdown-menu.show {
            opacity: 1;
            transform: translateY(0) scale(1);
            pointer-events: all;
        }

        .btn-user { 
            color: var(--current-text-color); 
            padding: 10px 15px;
            border-radius: 8px;
            background-color: transparent;
            text-transform: none;
            letter-spacing: normal;
            font-size: 0.95rem;
            transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
            display: flex;
            align-items: center;
            gap: 10px;
            border: none;
            cursor: pointer;
            width: 100%;
            text-align: left;
        }

        .btn-user:hover {
              background-color: var(--primary-color) !important;
              color: white !important;
        }

        html.dark-theme .btn-user:hover {
            background-color: var(--primary-hover-color);
            color: white;
        }

        .btn-user i, .btn-user svg {
            width: 1.15rem;
            height: 1.15rem;
        }


        html.dark-theme .btn-user i, html.dark-theme .btn-user svg {
            color: white;
        }

        html.dark-theme .btn-user:hover i, html.dark-theme .btn-user:hover svg {
            color: white;
        }

        .btn-danger-text {
            color: var(--danger-color) !important;
        }
        
        html.dark-theme .btn-danger-text {
            color: white !important;
        }
        
        .btn-danger-text:hover {
            background-color: var(--danger-color) !important;
            color: white !important;
        }

        .btn-danger-text:hover i, .btn-danger-text:hover svg {
            color: white !important;
        }

        .attachment-icon-container {
            position: absolute;
            bottom: 5px;
            right: 5px;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 5;
        }

        .attachment-icon-label {
            cursor: pointer !important;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 6px;
            border-radius: 8px;
            transition: all 0.2s ease;
            position: relative;
            background: transparent;
        }

        .attachment-icon-label:hover {
            background-color: rgba(0, 0, 0, 0.05);
            transform: translateY(-1px);
        }

        html.dark-theme .attachment-icon-label:hover {
            background-color: rgba(255, 255, 255, 0.1);
        }

        .attachment-icon-gray {
            color: #9ca3af;
            width: 1.8rem !important;
            height: 1.8rem !important;
        }

        .attachment-icon-blue {
            color: var(--primary-color);
            width: 1.8rem !important;
            height: 1.8rem !important;
        }

        .attachment-icon-plus {
            position: absolute;
            bottom: 4px;
            right: 4px;
            width: 1rem !important;
            height: 1rem !important;
            color: #9ca3af;
            background: var(--current-light-color);
            border-radius: 50%;
            border: 1px solid var(--current-border-color);
            padding: 1px;
        }

        html.dark-theme .attachment-icon-plus {
            background: var(--dark-theme-light-color);
        }

        .attachment-options-menu {
            top: auto;
            bottom: calc(100% + 5px);
            right: 0;
            min-width: 150px;
        }

        .relative {
            position: relative;
        }

        @layer properties {
        @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
            *, ::before, ::after, ::backdrop {
            --tw-font-weight: initial;
            }
        }
        }
