:root { color-scheme: light; --paper: #f5f3ed; --surface: #fffefa; --ink: #242c27; --muted: #606a60; --line: #dedfd5; --green: #285c46; --green-dark: #1d4634; --sage: #edf0e7; --error: #903f2e; --font: "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; font-family: var(--font); font-synthesis: none; -webkit-font-smoothing: antialiased; color: var(--ink); background: var(--paper); } * { box-sizing: border-box; } html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; } button, input, textarea, select { font: inherit; } button, select { cursor: pointer; } button { -webkit-tap-highlight-color: transparent; } button:disabled, select:disabled { cursor: default; } button:disabled { opacity: .48; } button, a, textarea, select { outline-offset: 2px; } :focus-visible { outline: 2px solid var(--green); } button, a { touch-action: manipulation; } [hidden] { display: none !important; } svg { flex-shrink: 0; } a { color: inherit; } .page-shell { width: min(1440px, 100%); height: 100vh; height: 100dvh; padding: 0 28px 20px; margin: 0 auto; display: flex; flex-direction: column; } .site-header { min-height: 60px; flex: 0 0 60px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); } .brand-group { display: flex; align-items: center; gap: 20px; min-width: 0; } .wordmark { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; font-size: 18px; font-weight: 650; letter-spacing: -.7px; white-space: nowrap; } .brand-mark { width: 25px; height: 25px; color: var(--green); } h1 { margin: 0; padding-left: 20px; border-left: 1px solid var(--line); font-family: Georgia, "Times New Roman", serif; font-size: 22px; font-weight: 400; letter-spacing: -.65px; } .connection { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--muted); min-width: 0; } #connection-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .status-dot { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #a4a79b; } .connection[data-state="ready"] .status-dot { background: var(--green); box-shadow: 0 0 0 4px #285c4610; } .connection[data-state="busy"] .status-dot { background: #ae7c2c; animation: breathe 1.8s ease-in-out infinite; } .connection[data-state="error"] .status-dot { background: var(--error); } main { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; } .model-toolbar { display: flex; flex: 0 0 auto; align-items: center; gap: 24px; padding: 14px 0; min-width: 0; } .model-picker { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 0 1 410px; } .field-label { display: block; font-size: 12px; font-weight: 650; letter-spacing: -.1px; flex-shrink: 0; } .select-wrap { position: relative; min-width: 0; flex: 1; } .select-wrap svg { pointer-events: none; position: absolute; right: 12px; top: 13px; width: 18px; height: 18px; color: var(--green); } select { appearance: none; -webkit-appearance: none; width: 100%; min-height: 44px; padding: 10px 37px 10px 12px; border: 1px solid #cdd3c7; border-radius: 7px; background: var(--surface); color: var(--ink); font-weight: 550; font-size: 14px; text-overflow: ellipsis; } select:disabled { color: var(--muted); } .model-info { min-width: 0; flex: 1; } .model-description { margin: 0 0 5px; font-size: 11px; line-height: 1.4; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .model-details { display: flex; gap: 8px 12px; align-items: center; flex-wrap: wrap; } .calibration-badge { color: #775b30; background: #eee6d6; border: 1px solid #e2d8c5; border-radius: 4px; padding: 4px 6px; font-size: 10px; line-height: 1.2; font-weight: 600; white-space: nowrap; } .calibration-badge[data-calibrated="true"] { background: #e4ecdf; color: var(--green); border-color: #d3e0cb; } .model-limit { font-size: 10px; color: var(--muted); white-space: nowrap; } .retry-button { flex-shrink: 0; } .workspace-form { flex: 1; min-height: 0; display: flex; } .workspace { width: 100%; min-width: 0; min-height: 0; display: grid; grid-template-columns: 1.06fr 1fr; grid-template-rows: minmax(0, 1fr) auto; grid-template-areas: "editor results" "actions results"; border: 1px solid #d6dbce; border-radius: 12px; background: var(--surface); box-shadow: 0 6px 32px #283b2710; } .editor-panel { grid-area: editor; padding: 20px 22px 12px; min-width: 0; min-height: 0; } .editor-views { height: 100%; min-width: 0; min-height: 0; display: grid; grid-template-rows: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; } .input-view { min-width: 0; min-height: 0; } .context-view { display: flex; flex-direction: column; gap: 8px; } .label-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 18px; flex-shrink: 0; } .label-row .field-hint { margin: 0; font-size: 10px; flex-shrink: 0; } .next-choices { display: none; } .examples { display: flex; align-items: center; gap: 10px; min-width: 0; flex-shrink: 0; } .example-label { font-size: 10px; color: var(--muted); } .example-buttons { display: flex; gap: 6px; min-width: 0; overflow-x: auto; scrollbar-width: thin; padding: 2px; } .example-button { flex-shrink: 0; min-height: 32px; padding: 6px 8px; border: 1px solid #dce0d5; border-radius: 5px; background: transparent; color: #5b655b; font-size: 10px; line-height: 1.35; transition: background .15s, border-color .15s; } .example-button:hover:not(:disabled) { background: #f0f2eb; border-color: #aebca7; } .example-button[aria-pressed="true"] { color: var(--green-dark); border-color: #a9bda0; background: #e9efdf; } textarea { display: block; width: 100%; flex: 1 1 0; min-width: 0; min-height: 0; border: 1px solid #dce0d5; border-radius: 7px; padding: 11px 12px; color: #384238; background: #fbfcf7; line-height: 1.55; font-size: 14px; resize: none; overflow: auto; transition: border-color .15s, background .15s; overscroll-behavior: contain; } textarea:hover { border-color: #bac5b3; } textarea:focus { border-color: var(--green); background: #fffefa; } textarea[readonly] { color: #687166; background: #f3f5ee; } textarea[aria-invalid="true"] { border-color: var(--error); } textarea::placeholder { color: #8b9289; } .field-hint { margin: 0; font-size: 10px; line-height: 1.5; color: var(--muted); flex-shrink: 0; } .choices-view { display: grid; grid-template-columns: .85fr 1.15fr; gap: 16px; } .field-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; min-height: 0; } .field-group > .field-label { min-height: 18px; display: flex; align-items: center; } .question-group { padding-bottom: 23px; } .options-input { line-height: 1.7; } .action-dock { grid-area: actions; min-width: 0; padding: 12px 22px 18px; } .error-message { max-height: 64px; overflow: auto; overscroll-behavior: contain; margin: 0 0 9px; border: 1px solid #e5c9bd; border-radius: 6px; padding: 8px 10px; color: var(--error); background: #fcf0e9; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; } .form-actions { display: flex; gap: 12px; align-items: center; min-width: 0; } .primary-button { display: inline-flex; flex: 1; justify-content: center; align-items: center; gap: 12px; min-width: 0; min-height: 46px; border: 1px solid var(--green); border-radius: 6px; padding: 10px 13px; background: var(--green); color: #fffefa; font-size: 13px; font-weight: 550; box-shadow: 0 2px 0 #1a392716; transition: background .15s; } .primary-button:hover:not(:disabled) { background: var(--green-dark); } .primary-button:disabled { opacity: .56; } .primary-button svg { width: 17px; height: 17px; } .button-spinner { display: none; width: 14px; height: 14px; border: 1.5px solid #ffffff55; border-top-color: white; border-radius: 50%; animation: spin .8s linear infinite; flex-shrink: 0; } .primary-button[data-loading="true"] .button-spinner { display: block; } .primary-button[data-loading="true"] .submit-arrow { display: none; } .keyboard-hint { color: #687360; font-size: 10px; white-space: nowrap; } kbd { font-family: inherit; } .text-button { flex-shrink: 0; min-height: 44px; border: 0; padding: 6px 3px; background: transparent; color: var(--green); font-size: 12px; line-height: 1.4; text-decoration-thickness: 1px; text-underline-offset: 3px; } .text-button:hover:not(:disabled) { text-decoration: underline; } .results-panel { grid-area: results; min-width: 0; min-height: 0; padding: 20px 24px 16px; border-left: 1px solid #d6dbce; border-radius: 0 11px 11px 0; background: var(--sage); display: flex; flex-direction: column; } .panel-heading { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: 12px; min-height: 24px; margin-bottom: 18px; } h2 { margin: 0; font-size: 15px; font-weight: 650; letter-spacing: -.35px; } .results-count { color: #617053; font-size: 10px; white-space: nowrap; } .empty-state, .loading-state { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; justify-content: safe center; align-items: center; padding: 12px 0; text-align: center; } .empty-state h3, .loading-state h3 { margin: 20px 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 400; letter-spacing: -.65px; } .empty-state p, .loading-state p { margin: 0; color: #64705d; font-size: 12px; line-height: 1.75; } .empty-mark { display: flex; flex-shrink: 0; align-items: center; justify-content: center; gap: 7px; width: 68px; height: 68px; border: 1px solid #d3ddc8; border-radius: 50%; background: #e6ecdd; } .empty-mark span { width: 6px; height: 6px; background: #9bac8b; border-radius: 50%; } .empty-mark span:nth-child(2) { width: 8px; height: 8px; background: #6c885c; } .loading-orbit { width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%; border: 1px solid #c8d5bd; border-top: 2px solid var(--green); animation: spin 1.3s linear infinite; } .elapsed-timer { display: inline-block; margin-top: 12px; color: var(--green); font-size: 12px; font-variant-numeric: tabular-nums; } .results-content { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; } .results-scroll { flex: 1; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; padding: 3px 4px 0 0; scrollbar-width: thin; scrollbar-color: #a5b997 transparent; } .result-question { font-family: Georgia, "Times New Roman", serif; font-size: 25px; line-height: 1.3; letter-spacing: -.55px; margin: 0 0 24px; overflow-wrap: anywhere; } .stale-notice { flex-shrink: 0; margin: 0 0 10px; border-left: 2px solid #a8b897; padding-left: 10px; font-size: 11px; color: #69795d; line-height: 1.5; } .probability-list { margin: 0; padding: 0; list-style: none; } .probability-item { margin-bottom: 22px; } .probability-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: baseline; column-gap: 9px; margin-bottom: 8px; } .option-index { font-size: 9px; font-weight: 600; color: #65735a; letter-spacing: .6px; } .option-text { color: #54614c; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; } .option-probability { font-size: 17px; letter-spacing: -.4px; font-weight: 550; color: #607151; font-variant-numeric: tabular-nums; } .probability-item:first-child .option-text { color: var(--green-dark); font-weight: 600; } .probability-item:first-child .option-probability { color: var(--green-dark); font-size: 23px; font-weight: 600; } .probability-track { margin-left: 31px; height: 8px; background: #dee5d5; border-radius: 2px; overflow: hidden; } .probability-fill { height: 100%; background: #a5b997; border-radius: 2px; transition: width .45s ease-out; } .probability-item:first-child .probability-fill { background: var(--green); } .probability-note { font-size: 10px; line-height: 1.6; color: #65735a; margin: 20px 0 15px; } .result-footer { flex-shrink: 0; min-width: 0; padding-top: 10px; border-top: 1px solid #d6dfcd; display: flex; align-items: center; justify-content: space-between; gap: 12px; } .result-metadata { display: flex; flex-direction: column; gap: 3px; font-size: 10px; color: #606e56; line-height: 1.5; min-width: 0; } .result-metadata span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .result-model { color: #52634a; font-weight: 550; } .copy-button { flex-shrink: 0; min-height: 44px; display: flex; align-items: center; gap: 5px; padding: 8px 10px; background: transparent; border: 1px solid #cbd7be; border-radius: 5px; color: #596d4d; font-size: 11px; } .copy-button:hover { background: #e2ead9; } .copy-button svg { width: 15px; height: 15px; } .workspace-tabs { grid-area: tabs; display: flex; border-bottom: 1px solid var(--line); padding: 0 8px; } .workspace-tabs button { flex: 1; min-width: 0; min-height: 44px; background: transparent; color: var(--muted); border: 0; border-bottom: 2px solid transparent; font-size: 13px; font-weight: 600; } .workspace-tabs button[aria-selected="true"] { color: var(--green-dark); border-bottom-color: var(--green); } .skip-link { position: fixed; z-index: 10; left: 15px; top: -80px; padding: 12px 16px; color: white; background: var(--green); border-radius: 5px; } .skip-link:not(:focus) { clip-path: inset(50%); clip: rect(0, 0, 0, 0); width: 1px; height: 1px; padding: 0; overflow: hidden; white-space: nowrap; } .skip-link:focus { top: 15px; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } .noscript-message { position: fixed; bottom: 10px; left: 10px; right: 10px; background: var(--surface); padding: 12px; text-align: center; color: var(--error); } @keyframes spin { to { transform: rotate(360deg); } } @keyframes breathe { 50% { opacity: .35; } } @media (max-width: 1150px) { .page-shell { padding: 0 18px 16px; } .keyboard-hint, .example-label { display: none; } .editor-panel { padding: 16px 16px 10px; } .action-dock { padding: 10px 16px 14px; } .results-panel { padding: 16px 18px 14px; } .editor-views { gap: 16px; } .choices-view { gap: 10px; } .options-group .label-row { flex-wrap: wrap; gap: 2px 6px; } } @media (max-width: 760px), (max-height: 520px) { .page-shell { padding: 0 12px 10px; } .site-header { flex-basis: 48px; min-height: 48px; } .brand-group { gap: 12px; } .wordmark { font-size: 16px; } .brand-mark { width: 22px; height: 22px; } h1 { font-size: 18px; padding-left: 12px; } .model-toolbar { gap: 10px; padding: 9px 0; flex-wrap: wrap; } .model-picker { flex: 1 1 100%; gap: 9px; } .model-info { flex: 1; } select, textarea { font-size: 16px; } .model-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; } .model-details { gap: 8px; } .model-limit { font-size: 10px; } .retry-button { min-height: 32px; } .workspace { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; grid-template-areas: "tabs" "content" "actions"; border-radius: 9px; } .editor-panel, .results-panel { grid-area: content; padding: 10px 12px; } .editor-panel { display: flex; } .workspace[data-active-view="results"] .editor-panel { display: none; } .editor-views { flex: 1; display: flex; min-height: 0; } .input-view { flex: 1; } .context-view { gap: 7px; } .context-view > .label-row { min-height: 30px; } .next-choices { display: block; min-height: 44px; margin: 0; } .example-buttons { width: 100%; gap: 5px; } .example-button { min-height: 44px; font-size: 11px; } .choices-view { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, .75fr) minmax(0, 1.25fr); gap: 14px; } .question-group { padding-bottom: 0; } .options-group .label-row { flex-wrap: nowrap; } .field-group { gap: 7px; } textarea { padding: 9px 10px; } .action-dock { padding: 8px 12px 10px; border-top: 1px solid #e8eade; } .form-actions { gap: 8px; } .form-actions .text-button { min-width: 44px; } .primary-button { min-height: 44px; gap: 8px; padding: 9px 10px; } .primary-button .submit-arrow { display: none; } .results-panel { border-left: 0; border-radius: 0; } .panel-heading { min-height: 20px; margin-bottom: 10px; } .result-question { font-size: 23px; margin-bottom: 20px; } .result-footer { padding-top: 8px; } .error-message { max-height: 56px; margin-bottom: 7px; font-size: 11px; } .empty-state h3, .loading-state h3 { font-size: 23px; } } @media (max-width: 430px) { h1 { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; } .connection { font-size: 10px; } } @media (max-width: 350px) { .page-shell { padding-left: 8px; padding-right: 8px; } .editor-panel, .results-panel { padding-left: 10px; padding-right: 10px; } .action-dock { padding-left: 10px; padding-right: 10px; } .calibration-badge { font-size: 9px; padding: 4px 5px; } .model-limit { font-size: 9px; } .label-row .field-hint { font-size: 9px; } .example-button { padding-left: 7px; padding-right: 7px; font-size: 10px; } .result-question { font-size: 21px; } .option-probability { font-size: 15px; } .probability-item:first-child .option-probability { font-size: 20px; } } @media (max-width: 760px) and (max-height: 700px) { .result-question { font-size: 20px; line-height: 1.3; margin-bottom: 12px; } .probability-item { margin-bottom: 12px; } .probability-item:last-child { margin-bottom: 0; } .probability-row { margin-bottom: 6px; } .probability-track { height: 6px; } .probability-note { margin: 8px 0 0; line-height: 1.4; } } @media (max-width: 599px) and (max-height: 520px) { .page-shell { padding-bottom: 8px; } .site-header { min-height: 22px; flex-basis: 22px; justify-content: flex-end; border-bottom: 0; } .brand-group, .examples, #context-hint, #options-hint, #option-count, .next-choices { display: none; } .model-toolbar { gap: 6px; padding: 4px 0; } .editor-panel, .results-panel { padding-top: 8px; padding-bottom: 8px; } .context-view > .label-row { min-height: 18px; } .choices-view { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 10px; } .action-dock { padding-top: 6px; padding-bottom: 6px; } .error-message { max-height: 42px; margin-bottom: 5px; padding: 5px 8px; } .empty-mark, .loading-orbit { display: none; } .empty-state, .loading-state { padding: 0; } .empty-state h3, .loading-state h3 { margin: 4px 0; font-size: 21px; } .elapsed-timer { margin-top: 5px; } .panel-heading { margin-bottom: 7px; } } @media (max-height: 520px) and (min-width: 600px) { .page-shell { padding-bottom: 8px; } .site-header { min-height: 42px; flex-basis: 42px; } .model-toolbar { flex-wrap: nowrap; gap: 14px; padding: 7px 0; } .model-picker { flex: 1 1 55%; } .model-info { flex: 1 1 45%; } .model-details { flex-wrap: nowrap; gap: 7px; } .workspace-tabs button { min-height: 44px; } .editor-panel, .results-panel { padding-top: 8px; padding-bottom: 8px; } .context-view { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto minmax(0, 1fr); gap: 6px 16px; } .context-view > .label-row { min-height: 44px; } .examples { grid-column: 2; grid-row: 1; } #context { grid-column: 1 / -1; grid-row: 2; height: 100%; } #context-hint { display: none; } .choices-view { grid-template-columns: .85fr 1.15fr; grid-template-rows: minmax(0, 1fr); gap: 16px; } .question-group { padding-bottom: 22px; } .action-dock { padding-top: 6px; padding-bottom: 6px; } .primary-button { flex: 0 1 300px; } .keyboard-hint { display: inline; margin-right: auto; } .error-message { max-height: 42px; padding: 5px 8px; margin-bottom: 5px; } .empty-state, .loading-state { padding: 0; } .empty-mark, .loading-orbit { display: none; } .empty-state h3, .loading-state h3 { margin: 4px 0; font-size: 21px; } .empty-state p, .loading-state p { font-size: 11px; } .elapsed-timer { margin-top: 5px; } .panel-heading { margin-bottom: 7px; } .result-question { font-size: 21px; margin-bottom: 16px; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }