
:root {
    --bg:#08111d;
    --panel:#101c2c;
    --panel2:#152338;
    --border:#263955;
    --text:#eaf1fb;
    --muted:#91a4bd;
    --accent:#63a8ff;
    --good:#53d69b;
    --danger:#ff6b78;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:
        Segoe UI,
        Arial,
        sans-serif;
}

header {
    border-bottom:1px solid var(--border);
    background:#0c1725;
}

.top {
    max-width:1100px;
    margin:auto;
    padding:18px 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.brand {
    font-size:20px;
    font-weight:700;
}

.brand small {
    display:block;
    font-size:12px;
    font-weight:500;
    color:var(--muted);
    margin-top:3px;
}

nav {
    display:flex;
    align-items:center;
    gap:14px;
}

nav a {
    color:var(--text);
    text-decoration:none;
}

main {
    max-width:1100px;
    margin:32px auto;
    padding:0 24px 50px;
}

.card {
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:12px;
    padding:24px;
    margin-bottom:20px;
}

.login-card {
    max-width:460px;
    margin:70px auto;
}

h1,h2,h3 {
    margin-top:0;
}

label {
    display:block;
    font-weight:600;
    margin:16px 0 7px;
}

input,
textarea,
select {
    width:100%;
    background:#0a1524;
    color:var(--text);
    border:1px solid var(--border);
    border-radius:8px;
    padding:11px 12px;
}

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

button,
.button {
    display:inline-block;
    margin-top:18px;
    border:0;
    border-radius:8px;
    padding:11px 16px;
    background:var(--accent);
    color:#06101c;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.secondary {
    background:var(--panel2);
    color:var(--text);
    border:1px solid var(--border);
}

table {
    width:100%;
    border-collapse:collapse;
}

th,
td {
    text-align:left;
    padding:12px 9px;
    border-bottom:1px solid var(--border);
}

th {
    color:var(--muted);
    font-size:13px;
}

a {
    color:var(--accent);
}

.muted {
    color:var(--muted);
}

.flash {
    padding:12px 14px;
    border-radius:8px;
    margin-bottom:16px;
    background:var(--panel2);
    border:1px solid var(--border);
}

.flash.error {
    border-color:var(--danger);
}

.flash.success {
    border-color:var(--good);
}

.ticket-description {
    white-space:pre-wrap;
    line-height:1.55;
}

.status {
    display:inline-block;
    padding:4px 9px;
    border-radius:999px;
    background:var(--panel2);
    border:1px solid var(--border);
    font-size:12px;
}

.portal-user {
    color:var(--muted);
    font-size:13px;
}

.logout-form {
    display:inline;
}

.logout-form button {
    margin:0;
    padding:7px 10px;
}

@media (max-width:720px) {
    .top {
        align-items:flex-start;
        flex-direction:column;
    }

    table {
        font-size:13px;
    }
}
