:root {
    --eclipse-void: oklch(0.05 0 0);
    --eclipse-graphite: oklch(0.12 0 0);
    --eclipse-charcoal: oklch(0.16 0 0);
    --eclipse-smoke: oklch(0.22 0 0);
    --eclipse-dim: oklch(0.28 0 0);
    --eclipse-soft-white: oklch(0.96 0.005 90);
    --eclipse-bone: oklch(0.82 0.008 85);
    --eclipse-fog: oklch(0.58 0.005 85);
    --eclipse-ash: oklch(0.38 0.003 85);
    --eclipse-corona: oklch(0.92 0.015 90);
    --eclipse-corona-bright: oklch(0.98 0.02 90);
    --eclipse-corona-dim: oklch(0.75 0.01 90);
    --eclipse-bronze: oklch(0.62 0.10 65);
    --eclipse-bronze-dim: oklch(0.50 0.08 65);
    --eclipse-oxblood: oklch(0.45 0.12 25);
    --eclipse-oxblood-dim: oklch(0.35 0.08 25);
    --eclipse-amber: oklch(0.60 0.10 75);
    --eclipse-amber-dim: oklch(0.48 0.07 75);
    --eclipse-sage: oklch(0.55 0.06 145);
    --eclipse-sage-dim: oklch(0.42 0.04 145);
    --eclipse-steel: oklch(0.52 0.04 250);
    --eclipse-steel-dim: oklch(0.40 0.03 250);
    --eclipse-transition-fast: 120ms ease;
    --eclipse-transition-normal: 200ms ease;
    --eclipse-transition-slow: 350ms ease;

    --background: var(--eclipse-void);
    --foreground: var(--eclipse-soft-white);
    --card: var(--eclipse-graphite);
    --card-foreground: var(--eclipse-soft-white);
    --popover: var(--eclipse-charcoal);
    --popover-foreground: var(--eclipse-soft-white);
    --primary: var(--eclipse-corona);
    --primary-foreground: var(--eclipse-void);
    --secondary: var(--eclipse-charcoal);
    --secondary-foreground: var(--eclipse-bone);
    --muted: var(--eclipse-charcoal);
    --muted-foreground: var(--eclipse-fog);
    --accent: var(--eclipse-smoke);
    --accent-foreground: var(--eclipse-bone);
    --destructive: var(--eclipse-oxblood);
    --destructive-foreground: var(--eclipse-soft-white);
    --border: var(--eclipse-smoke);
    --input: var(--eclipse-smoke);
    --ring: var(--eclipse-corona-dim);

    --status-success: var(--eclipse-sage);
    --status-success-foreground: var(--eclipse-soft-white);
    --status-warning: var(--eclipse-amber);
    --status-warning-foreground: var(--eclipse-soft-white);
    --status-error: var(--eclipse-oxblood);
    --status-error-foreground: var(--eclipse-soft-white);
    --status-info: var(--eclipse-steel);
    --status-info-foreground: var(--eclipse-soft-white);
    --status-neutral: var(--eclipse-fog);
    --status-neutral-foreground: var(--eclipse-soft-white);

    --divergence-low: var(--eclipse-sage);
    --divergence-medium: var(--eclipse-amber);
    --divergence-high: var(--eclipse-bronze);
    --divergence-critical: var(--eclipse-oxblood);

    --confidence-high: var(--eclipse-sage);
    --confidence-medium: var(--eclipse-steel);
    --confidence-low: var(--eclipse-amber);

    --radius: 8px;
    --shadow-elevation-1: 0 1px 2px rgb(0 0 0 / 0.03), 0 1px 3px rgb(0 0 0 / 0.05);
    --shadow-elevation-2: 0 2px 4px -1px rgb(0 0 0 / 0.04), 0 4px 6px -1px rgb(0 0 0 / 0.06);
    --font-sans: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, ui-monospace, monospace;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--background);
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--background);
    color: var(--foreground);
    font-family: var(--font-sans);
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

button,
input,
select {
    font: inherit;
}

code,
.mono {
    font-family: var(--font-mono);
}

.rohobo-support-root {
    position: fixed;
    inset: 0;
    z-index: 90;
    pointer-events: none;
}

.rohobo-support-button {
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 92;
    display: flex;
    width: 44px;
    min-height: 116px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 0;
    transform: translateY(-50%);
    border: 1px solid oklch(0.26 0.010 85);
    border-right: 0;
    border-radius: 14px 0 0 14px;
    background: oklch(0.16 0.006 85);
    color: oklch(0.65 0.01 85);
    box-shadow:
        0 4px 32px rgb(0 0 0 / 0.50),
        -1px 0 0 rgb(255 255 255 / 0.03);
    cursor: pointer;
    font-family: var(--font-sans);
    line-height: 1;
    pointer-events: auto;
    transition:
        background-color var(--eclipse-transition-fast),
        border-color var(--eclipse-transition-fast),
        color var(--eclipse-transition-fast);
}

.rohobo-support-button:hover,
.rohobo-support-button:focus-visible,
.rohobo-support-button.is-open {
    border-color: oklch(0.32 0.012 85);
    background: oklch(0.20 0.008 85);
    color: oklch(0.85 0.01 85);
    outline: none;
}

.rohobo-support-button__marker {
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: oklch(0.54 0.055 65);
    box-shadow: 0 0 10px oklch(0.45 0.08 65 / 0.22);
}

.rohobo-support-button__label {
    color: inherit;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
}

.rohobo-support-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgb(0 0 0 / 0.30);
    backdrop-filter: blur(2px);
    pointer-events: auto;
}

.rohobo-support-popout {
    position: fixed;
    top: 50%;
    right: 64px;
    z-index: 91;
    display: flex;
    flex-direction: column;
    width: min(400px, calc(100vw - 96px));
    max-height: min(620px, calc(100vh - 48px));
    overflow: hidden;
    transform: translateY(-50%);
    border: 1px solid oklch(0.24 0.010 85);
    border-radius: 16px;
    background: oklch(0.14 0.006 85);
    box-shadow:
        0 12px 64px rgb(0 0 0 / 0.70),
        0 0 0 1px rgb(255 255 255 / 0.04);
    color: oklch(0.92 0.01 85);
    pointer-events: auto;
}

.rohobo-support-popout__header,
.rohobo-support-popout__footer {
    flex: 0 0 auto;
    background: oklch(0.12 0.005 85);
}

.rohobo-support-popout__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 24px;
    border-bottom: 1px solid oklch(0.22 0.008 85);
}

.rohobo-support-popout__heading {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.rohobo-support-popout__back {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    place-items: center;
    margin: -5px 0 0 -7px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: oklch(0.55 0.01 85);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}

.rohobo-support-popout__back:hover,
.rohobo-support-popout__back:focus-visible {
    background: oklch(0.18 0.006 85);
    color: oklch(0.75 0.01 85);
    outline: none;
}

.rohobo-support-popout__eyebrow,
.rohobo-support-section-label,
.rohobo-support-field > span,
.rohobo-support-upload span,
.rohobo-support-context span {
    color: oklch(0.50 0.01 85);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.rohobo-support-popout__title {
    margin: 4px 0 0;
    color: oklch(0.92 0.01 85);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.25;
}

.rohobo-support-popout__close {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: oklch(0.50 0.01 85);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}

.rohobo-support-popout__close:hover,
.rohobo-support-popout__close:focus-visible {
    background: oklch(0.18 0.006 85);
    color: oklch(0.75 0.01 85);
    outline: none;
}

.rohobo-support-popout__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.rohobo-support-home,
.rohobo-support-contact,
.rohobo-support-help {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.rohobo-support-home-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    border: 1px solid oklch(0.26 0.010 85);
    border-radius: 12px;
    background: oklch(0.18 0.006 85);
    box-shadow: 0 2px 8px rgb(0 0 0 / 0.20);
    color: inherit;
    cursor: pointer;
    padding: 20px;
    text-align: left;
    transition:
        background-color var(--eclipse-transition-fast),
        border-color var(--eclipse-transition-fast);
}

.rohobo-support-home-card:hover,
.rohobo-support-home-card:focus-visible {
    border-color: oklch(0.30 0.012 85);
    background: oklch(0.20 0.008 85);
    outline: none;
}

.rohobo-support-home-card__marker {
    display: block;
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    margin-top: 6px;
    border: 1px solid oklch(0.54 0.055 65 / 0.78);
    border-radius: 50%;
    background: oklch(0.22 0.010 85);
    box-shadow: 0 0 12px oklch(0.45 0.08 65 / 0.18);
}

.rohobo-support-home-card__copy {
    display: grid;
    flex: 1 1 auto;
    gap: 6px;
    min-width: 0;
}

.rohobo-support-home-card__copy strong {
    color: oklch(0.92 0.01 85);
    font-size: 14px;
    line-height: 1.2;
}

.rohobo-support-home-card__copy span {
    color: oklch(0.58 0.01 85);
    font-size: 12px;
    line-height: 1.5;
}

.rohobo-support-home-card__arrow {
    color: oklch(0.45 0.01 85);
    font-size: 20px;
    line-height: 1;
}

.rohobo-support-ai {
    display: flex;
    min-height: 430px;
    flex-direction: column;
}

.rohobo-support-ai__notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 24px;
    border-bottom: 1px solid oklch(0.20 0.008 85);
    background: oklch(0.11 0.004 85);
}

.rohobo-support-ai__notice span {
    display: grid;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    place-items: center;
    margin-top: 2px;
    border: 1px solid oklch(0.30 0.010 85);
    border-radius: 50%;
    color: oklch(0.60 0.01 85);
    font-size: 10px;
    font-weight: 800;
}

.rohobo-support-ai__notice p {
    margin: 0;
    color: oklch(0.58 0.01 85);
    font-size: 11px;
    line-height: 1.55;
}

.rohobo-support-ai__body {
    flex: 1 1 auto;
    padding: 24px;
}

.rohobo-support-ai__intro,
.rohobo-support-help__intro {
    margin: 0 0 20px;
    color: oklch(0.68 0.01 85);
    font-size: 14px;
    line-height: 1.5;
}

.rohobo-support-prompt-list {
    display: grid;
    gap: 9px;
}

.rohobo-support-prompt,
.rohobo-support-article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    border: 1px solid oklch(0.26 0.010 85);
    border-radius: 9px;
    background: oklch(0.18 0.006 85);
    color: oklch(0.75 0.01 85);
    cursor: default;
    font: inherit;
    font-size: 13px;
    line-height: 1.35;
    padding: 12px 14px;
    text-align: left;
}

.rohobo-support-prompt small,
.rohobo-support-article span:last-child {
    color: oklch(0.45 0.01 85);
    font-size: 11px;
}

.rohobo-support-ai__input {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    padding: 20px;
    border-top: 1px solid oklch(0.22 0.008 85);
    background: oklch(0.11 0.004 85);
}

.rohobo-support-field {
    display: grid;
    gap: 9px;
}

.rohobo-support-textarea {
    width: 100%;
    border: 1px solid oklch(0.28 0.010 85);
    border-radius: 12px;
    background: oklch(0.18 0.006 85);
    color: oklch(0.92 0.01 85);
    font: inherit;
    font-size: 14px;
    outline: none;
}

.rohobo-support-textarea:disabled {
    color: oklch(0.45 0.01 85);
    cursor: not-allowed;
}

.rohobo-support-dropdown {
    position: relative;
}

.rohobo-support-dropdown__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 44px;
    border: 1px solid oklch(0.28 0.010 85);
    border-radius: 12px;
    background: oklch(0.18 0.006 85);
    color: oklch(0.92 0.01 85);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    letter-spacing: 0;
    padding: 0 12px;
    text-align: left;
}

.rohobo-support-dropdown__trigger:hover,
.rohobo-support-dropdown__trigger:focus-visible,
.rohobo-support-dropdown__trigger.is-open,
.rohobo-support-textarea:focus {
    border-color: oklch(0.38 0.015 85);
    background: oklch(0.20 0.008 85);
    outline: none;
}

.rohobo-support-dropdown__chevron {
    color: oklch(0.50 0.01 85);
    flex: 0 0 auto;
    font-size: 18px;
    line-height: 1;
    transition: transform var(--eclipse-transition-fast);
}

.rohobo-support-dropdown__trigger.is-open .rohobo-support-dropdown__chevron {
    transform: rotate(90deg);
}

.rohobo-support-dropdown__menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    z-index: 2;
    overflow: hidden;
    border: 1px solid oklch(0.28 0.010 85);
    border-radius: 12px;
    background: oklch(0.18 0.006 85);
    box-shadow:
        0 16px 40px rgb(0 0 0 / 0.50),
        0 0 0 1px rgb(255 255 255 / 0.04);
    padding: 4px;
}

.rohobo-support-dropdown__option {
    display: block;
    width: 100%;
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: oklch(0.72 0.01 85);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    letter-spacing: 0;
    padding: 8px 10px;
    text-align: left;
}

.rohobo-support-dropdown__option:hover,
.rohobo-support-dropdown__option:focus-visible,
.rohobo-support-dropdown__option.is-selected {
    background: oklch(0.22 0.008 85);
    color: oklch(0.92 0.01 85);
    outline: none;
}

.rohobo-support-textarea {
    min-height: 110px;
    padding: 12px 14px;
    resize: none;
}

.rohobo-support-textarea.rohobo-support-textarea--ai {
    min-height: 44px;
}

.rohobo-support-textarea::placeholder {
    color: oklch(0.45 0.01 85);
}

.rohobo-support-upload {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 62px;
    padding: 14px;
    border: 1px dashed oklch(0.28 0.010 85);
    border-radius: 12px;
    background: oklch(0.16 0.005 85);
    color: oklch(0.58 0.01 85);
}

.rohobo-support-upload strong {
    color: oklch(0.68 0.01 85);
    font-size: 13px;
    font-weight: 600;
    text-align: right;
}

.rohobo-support-context {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid oklch(0.22 0.008 85);
    border-radius: 12px;
    background: oklch(0.12 0.004 85);
}

.rohobo-support-context strong {
    color: oklch(0.72 0.01 85);
    font-size: 13px;
}

.rohobo-support-related {
    display: grid;
    gap: 9px;
}

.rohobo-support-help {
    gap: 22px;
}

.rohobo-support-article-group {
    display: grid;
    gap: 10px;
}

.rohobo-support-article-group__rows {
    overflow: hidden;
    border: 1px solid oklch(0.24 0.008 85);
    border-radius: 12px;
    background: oklch(0.16 0.005 85);
}

.rohobo-support-article-group__rows .rohobo-support-article {
    border: 0;
    border-radius: 0;
    background: transparent;
}

.rohobo-support-article-group__rows .rohobo-support-article + .rohobo-support-article {
    border-top: 1px solid oklch(0.22 0.008 85);
}

.rohobo-support-send {
    flex: 0 0 auto;
    min-height: 44px;
    border: 1px solid oklch(0.24 0.008 85);
    border-radius: 12px;
    background: oklch(0.18 0.006 85);
    color: oklch(0.45 0.01 85);
    cursor: not-allowed;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    padding: 0 14px;
}

.rohobo-support-popout__footer {
    display: flex;
    align-items: center;
    justify-content: stretch;
    gap: 12px;
    padding: 20px 24px;
    border-top: 1px solid oklch(0.22 0.008 85);
}

.rohobo-support-cancel,
.rohobo-support-submit {
    flex: 1 1 0;
    min-height: 44px;
    border-radius: 12px;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 650;
    letter-spacing: 0;
    padding: 0 14px;
}

.rohobo-support-cancel {
    border: 1px solid oklch(0.28 0.010 85);
    background: oklch(0.18 0.006 85);
    color: oklch(0.72 0.01 85);
}

.rohobo-support-submit {
    border: 1px solid oklch(0.92 0.02 85);
    background: var(--eclipse-corona);
    color: var(--eclipse-void);
}

.rohobo-support-submit--static {
    cursor: default;
    opacity: 0.72;
}

.rohobo-support-cancel:hover,
.rohobo-support-cancel:focus-visible {
    background: oklch(0.22 0.008 85);
    outline: none;
}

@media (max-width: 560px) {
    .rohobo-support-button {
        right: 16px;
        bottom: 16px;
        top: auto;
        width: 48px;
        min-height: 48px;
        padding: 0;
        transform: none;
        border-right: 1px solid oklch(0.26 0.010 85);
        border-radius: 999px;
    }

    .rohobo-support-button__label {
        display: none;
    }

    .rohobo-support-popout {
        right: 16px;
        bottom: 16px;
        top: auto;
        width: calc(100vw - 32px);
        max-height: calc(100vh - 32px);
        transform: none;
    }

    .rohobo-support-popout__footer {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .rohobo-support-cancel,
    .rohobo-support-submit {
        width: 100%;
    }
}
