:root {
    --oasys-bg: #0b0c13;
    --oasys-bg-soft: #11131d;
    --oasys-card: rgba(20, 21, 34, .92);
    --oasys-purple: #9a45f5;
    --oasys-purple-2: #7d2fd3;
    --oasys-text: #ffffff;
    --oasys-muted: #a9a9b8;
    --oasys-border: rgba(255, 255, 255, .10);
    --oasys-danger: #ff7676;
    --oasys-success: #75d69a;
    --oasys-radius: 18px;
    --oasys-shadow: 0 18px 60px rgba(0, 0, 0, .35);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 50% 0%, rgba(119, 61, 185, .18), transparent 34%),
        var(--oasys-bg);
    color: var(--oasys-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }

.app-shell {
    width: min(100%, 1180px);
    min-height: 100vh;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.app-header {
    min-height: 64px;
    padding: 18px 22px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    border-bottom: 1px solid rgba(255,255,255,.04);
}

.oasys-logo {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .24em;
}
.oasys-signature { color: var(--oasys-muted); font-size: 11px; }

.app-content { flex: 1; width: 100%; padding: 0px 18px 40px; }

.app-footer {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-top: 1px solid rgba(255,255,255,.05);
    background: rgba(5, 6, 11, .46);
}
.app-footer strong { letter-spacing: .22em; font-size: 14px; }
.app-footer span { color: var(--oasys-muted); font-size: 10px; }

.button {
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    cursor: pointer;
    transition: transform .15s ease, opacity .15s ease;
}
.button:hover { transform: translateY(-1px); }
.button-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--oasys-purple), var(--oasys-purple-2));
    box-shadow: 0 10px 30px rgba(144, 60, 230, .22);
}
.button-secondary {
    color: #fff;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--oasys-border);
}

.form-alert {
    margin-bottom: 18px;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.45;
}
.form-alert ul { margin: 8px 0 0 18px; padding: 0; }
.form-alert-error { background: rgba(255, 90, 90, .10); border: 1px solid rgba(255, 100, 100, .25); color: #ffd7d7; }
.form-alert-success { background: rgba(80, 210, 130, .10); border: 1px solid rgba(80, 210, 130, .24); color: #d9ffe6; }

@media (max-width: 640px) {
    .app-content { padding: 22px 14px 32px; }
    .app-header { min-height: 58px; padding: 15px 14px; }
}
