/* Host shell styling. Deliberately minimal: a scrolling transcript over a single
   input line, classic parser-IF terminal feel. The shell renders game output as
   text nodes into #transcript (white-space preserved for IF column/indent
   formatting); it never sets innerHTML from game text. */

:root {
    --bg: #1a1a1a;
    --fg: #e6e6e6;
    --dim: #8a8a8a;
    --accent: #cda434;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    height: 100%;
    background: var(--bg);
    color: var(--fg);
    font: 16px/1.5 "SFMono-Regular", "Consolas", "Liberation Mono", Menlo, monospace;
}

#screen {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-width: 80ch;
    margin: 0 auto;
    padding: 1rem;
}

#transcript {
    flex: 1 1 auto;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.prompt-text {
    color: var(--accent);
}

.player-echo {
    color: var(--accent);
}

.shell-notice {
    color: var(--dim);
    font-style: italic;
}

.shell-error {
    color: #e06c5a;
}

/* Inline so it flows directly after the prompt text on the same line; a generous
   fixed width keeps long commands on one line (the field scrolls horizontally
   past it). */
#input-line {
    display: inline-block;
    width: 40ch;
    max-width: 100%;
    background: transparent;
    border: none;
    color: var(--accent);
    caret-color: var(--accent);
    font: inherit;
    outline: none;
    padding: 0;
    vertical-align: baseline;
}
