/* Shared sunrise + liquid-glass material. Layout and interaction hooks stay
   in their original files; every page opts into this presentation layer. */
body.sunrise-app {
    --glass-panel: rgba(255, 255, 255, .62);
    --glass-reading: rgba(255, 255, 255, .76);
    --glass-lavender: rgba(228, 222, 249, .72);
    --glass-field: rgba(255, 255, 255, .64);
    --glass-purple: rgba(79, 63, 139, .92);
    --glass-filter: blur(20px) saturate(1.25);
    --glass-edge: rgba(255, 255, 255, .82);
    --glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .92),
                    inset 0 -1px 0 rgba(255, 255, 255, .26),
                    0 8px 28px rgba(49, 39, 87, .10);
    --text: #292640;
    --text-light: #58546e;
    isolation: isolate;
    background: #d6d2e6;
    background-image: none;
}

.sunrise-app .app-landscape {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: url('/static/images/auth-sunrise.jpg') center 52% / cover no-repeat;
}
.sunrise-app .app-landscape::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(250, 248, 255, .18);
}
.sunrise-app.auth-scene:not(.auth-welcome) .app-landscape::after {
    background: rgba(250, 248, 255, .34);
}
/* Preserve the welcome composition the user approved. */
.sunrise-app.auth-welcome .app-landscape::after {
    background: linear-gradient(transparent 58%, rgba(251, 249, 250, .7));
}

.sunrise-app :is(.chat-main, .welcome-screen, .messages-container, .input-bar) {
    background: transparent;
}
.sunrise-app .input-bar { border-top: 0; }

/* A softly reflective top edge and a translucent, blurred body make one
   consistent material for menus, cards, conversation bubbles and controls. */
.sunrise-app :is(.sidebar, .message, .message-form, .floating-menu-btn,
    .welcome-text-wrap, .modal-card, .cooldown-content, .followup-chip,
    .auth-btn-secondary, .auth-back, .auth-link, .form-group input,
    .contact-textarea, .scribe-status-bar) {
    background: linear-gradient(145deg, rgba(255, 255, 255, .22), transparent 55%), var(--glass-panel);
    border: 1px solid var(--glass-edge);
    box-shadow: var(--glass-shadow);
    -webkit-backdrop-filter: var(--glass-filter);
    backdrop-filter: var(--glass-filter);
}

.sunrise-app .sidebar {
    margin: 12px 0 12px 12px;
    border-radius: 26px;
    min-height: 0;
    overflow: hidden;
}
.sunrise-app :is(.sidebar-header, .sidebar-footer) {
    background: transparent;
    border-color: rgba(94, 78, 145, .13);
}
.sunrise-app :is(.app-name, .username-display) { color: var(--text); }
.sunrise-app .chat-item { border: 1px solid transparent; color: #46405f; }
.sunrise-app .chat-item:hover { background: rgba(255, 255, 255, .36); }
.sunrise-app .chat-item.active {
    background: var(--glass-lavender);
    border-color: var(--glass-edge);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
    color: #3f327b;
}
.sunrise-app :is(.btn-about, .btn-logout, .chat-item-delete) { color: #5d5479; }
.sunrise-app :is(.btn-about, .btn-logout, .modal-close) {
    min-height: 44px;
    min-width: 44px;
    border-radius: 12px;
}
.sunrise-app .sidebar-backdrop,
.sunrise-app .modal-overlay,
.sunrise-app .cooldown-overlay {
    background: rgba(50, 39, 77, .18);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}
.sunrise-app :is(.modal-overlay, .cooldown-overlay) {
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.sunrise-app .welcome-text-wrap {
    width: calc(100% - 48px);
    max-width: 510px;
    padding: 32px 24px;
    border-radius: 28px;
}
.sunrise-app .welcome-copy p { color: #514b66; }
.sunrise-app .messages-container { padding-top: 28px; }
.sunrise-app .message { border-radius: 22px; margin-bottom: 16px; }
.sunrise-app .message.assistant { background-color: var(--glass-reading); }
.sunrise-app .message.user {
    width: fit-content;
    max-width: 94%;
    margin-left: auto;
    background-color: var(--glass-lavender);
}
.sunrise-app .message.assistant .message-avatar {
    background: rgba(235, 228, 251, .8);
    border-color: var(--glass-edge);
}
.sunrise-app .message-text { color: #292640; }
.sunrise-app .message.assistant .message-role { color: #5b506f; }
.sunrise-app .message-text blockquote {
    color: #49415f;
    background: rgba(222, 214, 245, .5);
}
.sunrise-app .message-text a { color: #493082; text-underline-offset: 3px; }
.sunrise-app :is(.copy-msg-btn, .download-pdf-btn) {
    color: #4e4076;
    background: rgba(255, 255, 255, .44);
    border-color: rgba(116, 95, 162, .20);
    border-radius: 10px;
    min-height: 36px;
    min-width: 36px;
}
.sunrise-app :is(.copy-msg-btn, .download-pdf-btn):hover { background: rgba(255, 255, 255, .78); }
.sunrise-app .copy-msg-btn.copied { color: #226c43; }
.sunrise-app .followup-chip { color: #44346f; min-height: 44px; }
.sunrise-app .followup-chip:hover { background-color: var(--glass-lavender); }
.sunrise-app .message-form { border-radius: 26px; background-color: var(--glass-reading); }
.sunrise-app .message-input { color: var(--text); background: transparent; }
.sunrise-app .message-input::placeholder { color: #686078; }
.sunrise-app .message-form:focus-within {
    border-color: #9686bf;
    box-shadow: var(--glass-shadow), 0 0 0 3px rgba(93, 69, 154, .16);
}
.sunrise-app .attachment-file {
    background: var(--glass-lavender);
    border-color: var(--glass-edge);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
    -webkit-backdrop-filter: var(--glass-filter);
    backdrop-filter: var(--glass-filter);
}
.sunrise-app .attachment-status {
    width: fit-content;
    max-width: calc(100% - 8px);
    border-radius: 7px;
    padding: 2px 5px;
    background: rgba(250, 248, 255, .75);
}
.sunrise-app .attachment-help { color: #51417c; }
.sunrise-app .attachment-help-content {
    background: rgba(250, 248, 255, .8);
    border-color: var(--glass-edge);
}
.sunrise-app .attachment-status.attachment-error { color: #8b2140; }
.sunrise-app .btn-attach { color: #51417c; }
.sunrise-app .btn-attach:hover { background: var(--glass-lavender); }
.sunrise-app .streaming-cursor { background: #594485; }

/* Purple glass remains dark enough for white button text. */
.sunrise-app :is(.btn-primary, .btn-send, .btn-welcome-start, .btn-new-chat, .sidebar-avatar) {
    background: linear-gradient(155deg, rgba(255, 255, 255, .10), transparent 65%), var(--glass-purple);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .5);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35),
                inset 0 -1px 0 rgba(43, 27, 85, .2), 0 5px 18px rgba(61, 43, 108, .16);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}
.sunrise-app :is(.btn-primary, .btn-send, .btn-welcome-start, .btn-new-chat):hover {
    background-color: rgba(63, 47, 116, .98);
}
.sunrise-app :is(.btn-send, .floating-menu-btn) { min-width: 44px; min-height: 44px; }
.sunrise-app :is(a, button):focus-visible { outline: 3px solid #695091; outline-offset: 3px; }

.sunrise-app .modal-card {
    background-color: var(--glass-reading);
    border-radius: 26px;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.sunrise-app .modal-header {
    background: rgba(220, 210, 244, .38);
    border-bottom: 1px solid rgba(255, 255, 255, .7);
}
.sunrise-app :is(.modal-title, .modal-contact-header) { color: var(--text); }
.sunrise-app :is(.modal-subtitle, .modal-about p) { color: #57506c; }
.sunrise-app :is(.modal-logo, .modal-close) {
    color: #51417c;
    background: rgba(255, 255, 255, .5);
    border: 1px solid rgba(255, 255, 255, .7);
}
.sunrise-app :is(.contact-form input, .contact-textarea) {
    background-color: var(--glass-field);
    font-size: 16px;
}
.sunrise-app :is(.contact-form input, .contact-textarea)::placeholder { color: #686078; }
.sunrise-app .cooldown-content { border-radius: 28px; padding: 28px; }
.sunrise-app .cooldown-msg { color: var(--text); }
.sunrise-app .cooldown-timer { color: #51417c; text-shadow: none; }

/* Auth keeps its approved layout, now with full-bleed scenery behind glass. */
.sunrise-app.auth-scene .form-group input { background-color: var(--glass-field); }
.sunrise-app.auth-scene .form-group input:focus { background-color: var(--glass-reading); border-color: #9686bf; }
.sunrise-app .auth-back { margin-left: 0; }
.sunrise-app.auth-scene .auth-link {
    padding: 12px;
    border-radius: 18px;
    color: #514b66;
}
.sunrise-app.auth-scene :is(.auth-form, .forgot-section) { margin-bottom: 28px; }
.sunrise-app .auth-help { color: #4c425e; }
.sunrise-app .auth-subtitle { color: #524d68; }
.sunrise-app .auth-btn-secondary:hover { background-color: var(--glass-reading); }
.sunrise-app .auth-forgot-link a { color: #42306f; }

@media (min-width: 1000px) {
    .sunrise-app.auth-welcome .app-landscape::after {
        background: linear-gradient(90deg, rgba(250, 249, 252, .58), rgba(250, 249, 252, .32) 40%, transparent 75%);
    }
}
@media (max-width: 768px) {
    .sunrise-app .sidebar {
        margin: 10px;
        /* Include the inset in the hidden position; leave no visible sliver. */
        transform: translateX(calc(-100% - 12px));
    }
    .sunrise-app .sidebar.open { transform: translateX(0); }
    .sunrise-app .messages-container { padding-top: calc(78px + env(safe-area-inset-top, 0px)); }
    .sunrise-app .welcome-text-wrap { padding: 28px 20px; }
    .sunrise-app .message { gap: 9px; }
}
@media (max-width: 540px) {
    .sunrise-app .modal-overlay { padding: 10px; }
    .sunrise-app .modal-card { max-height: calc(100dvh - 20px); }
}

/* Legible, solid surfaces when blur is unavailable or transparency unwanted. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    body.sunrise-app {
        --glass-panel: #f3f0f9;
        --glass-reading: #faf8fd;
        --glass-lavender: #e8e1f6;
        --glass-field: #faf8fd;
        --glass-purple: #514182;
        --glass-filter: none;
    }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
    body.sunrise-app {
        --glass-panel: #f3f0f9;
        --glass-reading: #faf8fd;
        --glass-lavender: #e8e1f6;
        --glass-field: #faf8fd;
        --glass-purple: #514182;
        --glass-filter: none;
    }
}
