/* Blueprint News — standalone app chrome. The briefing itself is styled by render/bpn-render.css; this only dresses the surrounding generator UI (control rail, stage, library) in the same SLA palette and fonts. */ :root { --bg: #0a0e14; --rail: #11161f; --rail-2: #161c26; --line: #2c333f; --text: #eef3fa; --muted: #9fb0c4; --gold: #d6b24e; --gold-deep: #b88a24; --accent: #d05e1a; --display: "Modesto Condensed", "Josefin Sans", sans-serif; --head: "Josefin Sans", system-ui, sans-serif; --mono: "Roboto Mono", ui-monospace, monospace; } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; background: radial-gradient(circle at 18% -10%, rgba(208, 94, 26, 0.10), transparent 40%), linear-gradient(180deg, #0b0f16, #070a0f); color: var(--text); font-family: var(--head); font-size: 16px; } .app { display: grid; grid-template-columns: 320px 1fr; min-height: 100vh; } /* ---------- top wordmark bar ---------- */ .topbar { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 12px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #11161f, #0c1017); } .topbar__mark { font-family: var(--display); font-weight: 700; font-size: 1.9rem; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1; } .topbar__mark b { color: var(--gold); } .topbar__tag { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); } .topbar__spacer { flex: 1; } .topbar__hint { font-family: var(--mono); font-size: 0.7rem; color: var(--muted); letter-spacing: 0.08em; } /* ---------- control rail ---------- */ .rail { border-right: 1px solid var(--line); background: var(--rail); padding: 18px; display: flex; flex-direction: column; gap: 16px; overflow-y: auto; max-height: calc(100vh - 58px); } .field { display: grid; gap: 6px; } .field > label { font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); } .field input, .field select { width: 100%; padding: 9px 11px; border-radius: 8px; border: 1px solid var(--line); background: #0a0e14; color: var(--text); font-family: var(--head); font-size: 0.96rem; } .field input:focus, .field select:focus { outline: none; border-color: var(--gold); } .field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } /* sliders */ .field input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; padding: 0; border: none; border-radius: 999px; background: linear-gradient(90deg, var(--gold-deep), var(--gold)); cursor: pointer; } .field input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #f4efe5; border: 2px solid var(--gold-deep); cursor: pointer; } .field input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #f4efe5; border: 2px solid var(--gold-deep); cursor: pointer; } .slider-readout { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.02em; color: var(--gold); margin-top: 2px; } .seed-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; } .seed-row input { font-family: var(--mono); font-size: 0.86rem; } .btn { border-radius: 8px; border: 1px solid var(--line); background: var(--rail-2); color: var(--text); font-family: var(--head); font-weight: 600; letter-spacing: 0.03em; padding: 10px 14px; cursor: pointer; transition: filter 0.12s, border-color 0.12s; } .btn:hover { filter: brightness(1.12); border-color: var(--muted); } .btn--primary { border: 1px solid var(--gold-deep); background: linear-gradient(180deg, var(--gold), var(--gold-deep)); color: #1a1208; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; } .btn--ghost { background: transparent; } .btn--sm { padding: 8px 10px; font-size: 0.82rem; } .btn-row { display: flex; gap: 8px; flex-wrap: wrap; } .rail__divider { height: 1px; background: var(--line); margin: 2px 0; } .rail__heading { font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin: 0; } /* library */ .library { display: grid; gap: 8px; } .lib-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; padding: 9px 11px; border-radius: 8px; border: 1px solid var(--line); background: #0a0e14; } .lib-item__main { min-width: 0; cursor: pointer; } .lib-item__title { font-family: var(--head); font-weight: 600; font-size: 0.92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lib-item__meta { font-family: var(--mono); font-size: 0.68rem; color: var(--muted); } .lib-item__band { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: middle; } .lib-del { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 1rem; padding: 4px 6px; border-radius: 6px; } .lib-del:hover { color: var(--danger, #ff5b5b); background: rgba(255,91,91,0.1); } .lib-empty { font-family: var(--mono); font-size: 0.74rem; color: var(--muted); } /* ---------- stage ---------- */ .stage { padding: 22px; overflow-y: auto; max-height: calc(100vh - 58px); } .viewtoggle { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; margin: 0 auto 18px; background: var(--rail); gap: 2px; } .viewtoggle button { border: none; background: transparent; color: var(--muted); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 7px 16px; border-radius: 999px; cursor: pointer; } .viewtoggle button[aria-pressed="true"] { background: linear-gradient(180deg, var(--gold), var(--gold-deep)); color: #1a1208; font-weight: 700; } .stage__bar { display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; } .output { display: grid; gap: 26px; } /* ---------- responsive ---------- */ @media (max-width: 860px) { .app { grid-template-columns: 1fr; } .rail { max-height: none; border-right: none; border-bottom: 1px solid var(--line); } .stage { max-height: none; } .topbar__tag, .topbar__hint { display: none; } } @media print { .topbar, .rail, .stage__bar { display: none !important; } .app { display: block; } .stage { padding: 0; max-height: none; overflow: visible; } }