/* KKAI friendly UI layer: readable contrast + clear interaction feedback */

:root {
    --kk-focus-ring: rgba(37, 99, 235, 0.26);
    --kk-shadow-soft: 0 12px 28px rgba(16, 42, 67, 0.12);
    --kk-shadow-hover: 0 16px 32px rgba(16, 42, 67, 0.16);
    --kk-border-strong: #0f172a;
    --kk-menu-bg: #1f2937;
    --kk-menu-hover: #0f172a;
    --kk-text-main: #122237;
    --kk-text-muted: #4b6078;
}

.kkai-page {
    color: var(--kk-text-main);
    text-rendering: optimizeLegibility;
}

.kkai-page * {
    box-sizing: border-box;
}

.kkai-page :where(a, button, input, textarea, select) {
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 120ms ease;
}

.kkai-page :where(a, button, input, textarea, select):focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--kk-focus-ring);
}

.kkai-page :where(input, textarea, select) {
    color: var(--kk-text-main);
}

.kkai-page :where(input, textarea)::placeholder {
    color: #8b9aae;
    opacity: 1;
}

.kkai-page :where(button:hover, .btn:hover) {
    transform: translateY(-1px);
}

.kkai-page :where(button:active, .btn:active) {
    transform: translateY(0);
}

.kkai-page .glass {
    border-color: #ccdae9;
    box-shadow: var(--kk-shadow-soft);
}

.kkai-page .glass:hover {
    box-shadow: var(--kk-shadow-hover);
}

/* Home page */
.kkai-home #user-info {
    background: #ffffff;
    border-color: #c7d6e6;
    color: #1d3147;
}

.kkai-home #menu-btn {
    background: var(--kk-menu-bg) !important;
    color: #ffffff !important;
    border: 1px solid var(--kk-border-strong) !important;
    text-decoration: none !important;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.2);
}

.kkai-home #menu-btn:hover {
    background: var(--kk-menu-hover) !important;
}

.kkai-home #logout-btn {
    border: 1px solid #be123c;
    box-shadow: 0 6px 14px rgba(190, 24, 93, 0.2);
}

.kkai-home #query-input,
.kkai-home textarea,
.kkai-home select,
.kkai-home input {
    border-color: #c8d5e4 !important;
}

.kkai-home #query-input {
    line-height: 1.45;
}

.kkai-home #send-btn {
    min-width: 64px;
    font-weight: 700;
}

.kkai-home .example-query-btn {
    font-weight: 600;
    border-width: 1px;
}

/* Login page */
.kkai-login .login-card {
    border-color: #c8d8e9;
    box-shadow: var(--kk-shadow-soft);
}

.kkai-login #userid,
.kkai-login #password {
    font-size: 16px;
    border-color: #c8d5e5;
}

.kkai-login button[onclick="login()"] {
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 8px 18px rgba(15, 95, 168, 0.2);
}

/* Menu page */
.kkai-menu .shell {
    border-color: #c6d5e7;
    box-shadow: var(--kk-shadow-soft);
}

.kkai-menu .card {
    border-color: #c9d8e8;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.kkai-menu .btn-open {
    background: linear-gradient(140deg, #145ea8, #0f7f76);
    border: 0;
    box-shadow: 0 8px 16px rgba(20, 94, 168, 0.2);
}

.kkai-menu .btn-open:hover {
    filter: saturate(1.07) brightness(0.98);
}

.kkai-menu .btn-logout {
    color: #1f3a5a;
    border-color: #bfd1e6;
    background: #f8fbff;
}

/* Quote page */
.kkai-quote .card {
    border-color: #f7c78f;
    box-shadow: 0 16px 32px rgba(180, 83, 9, 0.14);
}

.kkai-quote .btn-primary {
    background: #b45309;
    border-color: #92400e;
}

.kkai-quote .btn-secondary {
    border-color: #f0b477;
    color: #7a3412;
}

/* Better spacing on small screens */
@media (max-width: 900px) {
    .kkai-home .glass {
        box-shadow: 0 10px 22px rgba(16, 42, 67, 0.11);
    }

    .kkai-page :where(button, .btn) {
        min-height: 38px;
    }
}

