:root { --toolbox-background: #f6f7fb; --toolbox-surface: #fff; --toolbox-surface-soft: #eff1f7; --toolbox-text: #202332; --toolbox-muted: #656b7d; --toolbox-border: #d9dce7; --toolbox-accent: #5b4ec4; --toolbox-accent-hover: #493caf; --toolbox-accent-soft: #ece9ff; --toolbox-accent-contrast: #fff; --toolbox-focus: #137d75; --toolbox-danger: #b42342; } * { box-sizing: border-box; } html { min-width: 20rem; min-height: 100%; background: var(--toolbox-background); scrollbar-gutter: stable; } body { min-width: 20rem; min-height: 100vh; margin: 0; background: var(--toolbox-background); color: var(--toolbox-text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; } button, input, select, textarea { font: inherit; } button, .button { min-height: 2.55rem; display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.55rem 0.8rem; border: 1px solid var(--toolbox-border); border-radius: 0.65rem; background: var(--toolbox-surface); color: var(--toolbox-text); font-weight: 720; cursor: pointer; } button:hover:not(:disabled), .button:hover { border-color: var(--toolbox-accent); background: var(--toolbox-surface-soft); } :where(button, input, select, textarea, a):focus-visible { outline: 3px solid color-mix(in srgb, var(--toolbox-focus) 42%, transparent); outline-offset: 2px; } input, select, textarea { width: 100%; min-height: 2.55rem; padding: 0.58rem 0.7rem; border: 1px solid var(--toolbox-border); border-radius: 0.62rem; background: var(--toolbox-surface); color: var(--toolbox-text); } textarea { min-height: 10rem; resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; line-height: 1.48; } .toolbox-shell__main { width: min(100%, 90rem); padding: clamp(0.75rem, 1.8vw, 1.5rem); } .workbench { display: grid; gap: 1rem; } .hero, .panel { border: 1px solid var(--toolbox-border); border-radius: 0.9rem; background: var(--toolbox-surface); box-shadow: 0 8px 28px rgb(30 36 70 / 4%); } .hero { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding: clamp(1.1rem, 3vw, 2rem); } .hero h1, .panel h2, .panel h3, .help-dialog h2, .fatal h1 { margin: 0; letter-spacing: -0.025em; } .hero p:not(.eyebrow) { max-width: 52rem; margin: 0.55rem 0 0; color: var(--toolbox-muted); line-height: 1.55; } .eyebrow { margin: 0 0 0.3rem; color: var(--toolbox-accent); font-size: 0.69rem; font-weight: 820; letter-spacing: 0.115em; text-transform: uppercase; } .privacy-pill { flex: 0 0 auto; padding: 0.38rem 0.62rem; border-radius: 999px; background: var(--toolbox-accent-soft); color: var(--toolbox-accent); font-size: 0.75rem; font-weight: 760; } .panel { padding: 1rem; } .panel-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: 0.9rem; } .capability-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 0.75rem; } .capability-grid article { padding: 0.9rem; border: 1px solid var(--toolbox-border); border-radius: 0.72rem; background: var(--toolbox-surface-soft); } .capability-grid p { margin: 0.4rem 0 0; color: var(--toolbox-muted); line-height: 1.48; } .workspace-tabs { display: flex; gap: 0.4rem; overflow-x: auto; padding-bottom: 0.2rem; } .workspace-tabs button[aria-selected="true"] { border-color: var(--toolbox-accent); background: var(--toolbox-accent); color: var(--toolbox-accent-contrast); } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 0.85rem; } .field { display: grid; gap: 0.35rem; } .field > span { font-size: 0.76rem; font-weight: 750; } .muted { color: var(--toolbox-muted); } .result { padding: 0.8rem; border: 1px solid var(--toolbox-border); border-radius: 0.68rem; background: var(--toolbox-surface-soft); overflow-wrap: anywhere; } .loading, .fatal { width: min(100% - 2rem, 60rem); margin: 2rem auto; padding: 1rem; } .help-dialog { width: min(36rem, calc(100% - 2rem)); border: 1px solid var(--toolbox-border); border-radius: 0.9rem; background: var(--toolbox-surface); color: var(--toolbox-text); } .help-dialog::backdrop { background: rgb(20 24 45 / 55%); } .dialog-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; } .source-controls { display: grid; grid-template-columns: minmax(15rem, 22rem) minmax(15rem, 1fr) minmax( 16rem, 2fr ); gap: 0.7rem; align-items: end; padding: 0.85rem; border: 1px solid var(--toolbox-border); border-radius: 0.9rem; background: var(--toolbox-surface); } .workspace { display: grid; gap: 0.9rem; } .generator-layout { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(20rem, 1.25fr); gap: 1rem; align-items: start; } .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: 0.65rem; } .actions { display: flex; gap: 0.55rem; flex-wrap: wrap; } .primary { border-color: var(--toolbox-accent); background: var(--toolbox-accent); color: var(--toolbox-accent-contrast); } .check { display: flex; gap: 0.55rem; align-items: center; font-weight: 700; } .check input { width: auto; min-height: auto; } .result { display: grid; gap: 0.8rem; min-width: 0; padding: 1rem; border: 1px solid var(--toolbox-border); border-radius: 0.9rem; background: var(--toolbox-surface); } .result pre { max-height: 35rem; margin: 0; padding: 0.8rem; overflow: auto; border-radius: 0.65rem; background: var(--toolbox-surface-soft); white-space: pre-wrap; overflow-wrap: anywhere; } .empty { margin: 0; padding: 2rem; border: 1px dashed var(--toolbox-border); border-radius: 0.9rem; color: var(--toolbox-muted); text-align: center; } .warning, .error, .success, .notice { margin: 0; padding: 0.7rem; border: 1px solid var(--toolbox-border); border-radius: 0.65rem; line-height: 1.5; } .warning { border-color: #d9a72e; background: #fff8df; color: #725000; } .error { border-color: var(--toolbox-danger); color: var(--toolbox-danger); } .success { border-color: #55a875; background: #eaf8ef; color: #176137; } .notice { background: var(--toolbox-surface-soft); } details { border: 1px solid var(--toolbox-border); border-radius: 0.65rem; } summary { padding: 0.65rem; font-weight: 750; cursor: pointer; } details pre { margin: 0 0.65rem 0.65rem !important; } @media (max-width: 62rem) { .source-controls, .generator-layout { grid-template-columns: 1fr; } } @media (max-width: 42rem) { .hero { flex-direction: column; } .privacy-pill { order: -1; } }