.app-shell { min-height: 100vh; padding: 28px; } .app-shell__header { display: flex; justify-content: space-between; gap: 24px; align-items: start; margin-bottom: 18px; } .app-shell__eyebrow, .panel-frame__eyebrow, .prompt-composer__label, .status-strip__label { margin: 0 0 8px; font-family: var(--font-display); font-size: 0.58rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent-amber); } .app-shell h1, .panel-frame__title { margin: 0; font-family: var(--font-display); line-height: 1.3; text-transform: uppercase; } .app-shell h1 { font-size: clamp(1.3rem, 2vw, 2rem); } .app-shell__title { min-width: 0; } .app-shell__project { margin: 10px 0 0; max-width: min(70vw, 760px); color: var(--text-dim); font-size: 0.78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .app-shell__project span { color: var(--accent-amber); } .app-shell__meta { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; } .app-shell__meta span { padding: 6px 10px; border: 1px solid rgba(70, 121, 84, 0.45); background: rgba(15, 22, 17, 0.56); color: var(--text-dim); font-size: 0.7rem; } .shell-frame { position: relative; padding: 16px; border: 4px solid #374739; background: linear-gradient(180deg, #2a352b 0%, #161d17 100%); box-shadow: 0 16px 50px rgba(0, 0, 0, 0.45); } .shell-frame__bezel { position: absolute; inset: 8px; border: 2px solid rgba(255, 255, 255, 0.08); pointer-events: none; } .shell-frame__screen { position: relative; overflow: hidden; min-height: 78vh; padding: 18px; border: 4px solid #081108; background: radial-gradient(circle at center, rgba(34, 65, 43, 0.35), transparent 50%), linear-gradient(180deg, rgba(11, 18, 12, 0.98) 0%, rgba(7, 12, 8, 0.98) 100%); } .shell-frame__content { position: relative; z-index: 1; } .panel-frame, .prompt-composer, .error-banner { border: 3px solid var(--border-dark); box-shadow: inset 0 0 0 2px var(--border-light), var(--shadow-panel); background: linear-gradient(180deg, rgba(26, 34, 29, 0.95) 0%, rgba(14, 19, 16, 0.95) 100%); } .is-green { color: var(--accent-green); } .is-red { color: var(--accent-red); } .is-cyan { color: var(--accent-cyan); } .is-amber { color: var(--accent-amber); } .session-toolbar { display: flex; gap: 8px; flex-wrap: wrap; } .session-toolbar--inline { justify-content: flex-end; margin-bottom: 0; flex-wrap: nowrap; } .pixel-button { position: relative; border: 0; padding: 0; cursor: pointer; text-transform: uppercase; background: transparent; min-width: 128px; } .pixel-button span { display: block; padding: 12px 12px; border: 3px solid var(--border-dark); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.06); font-family: var(--font-display); font-size: 0.56rem; letter-spacing: 0.12em; } .pixel-button:hover span { transform: translate(-1px, -1px); } .pixel-button:active span { transform: translate(1px, 1px); } .pixel-button:disabled { cursor: not-allowed; opacity: 0.45; } .pixel-button--green span { background: linear-gradient(180deg, rgba(55, 112, 68, 0.9), rgba(20, 58, 28, 0.96)); color: var(--text-main); } .pixel-button--cyan span { background: linear-gradient(180deg, rgba(35, 104, 112, 0.9), rgba(16, 49, 54, 0.96)); color: #d8feff; } .pixel-button--red span { background: linear-gradient(180deg, rgba(125, 56, 56, 0.9), rgba(63, 21, 21, 0.96)); color: #ffe6e6; } .pixel-button--amber span { background: linear-gradient(180deg, rgba(132, 95, 37, 0.9), rgba(70, 45, 12, 0.96)); color: #fff2d5; } .error-banner { margin-bottom: 16px; padding: 12px 14px; color: var(--accent-red); } .toast-stack { position: absolute; right: 18px; bottom: 18px; z-index: 5; display: grid; gap: 10px; width: min(420px, calc(100vw - 64px)); } .toast { display: grid; gap: 8px; width: 100%; padding: 12px 14px; text-align: left; border: 3px solid var(--border-dark); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.05), var(--shadow-panel); background: linear-gradient(180deg, rgba(60, 22, 22, 0.98), rgba(18, 8, 8, 0.98)); color: #ffd9d9; cursor: pointer; } .toast--info { background: linear-gradient(180deg, rgba(18, 52, 55, 0.98), rgba(8, 17, 20, 0.98)); color: #d8feff; } .toast__label { font-family: var(--font-display); font-size: 0.58rem; letter-spacing: 0.16em; color: var(--accent-amber); } .toast__message { font-size: 0.82rem; line-height: 1.45; word-break: break-word; } .console-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.9fr); gap: 16px; align-items: start; } .console-grid__main, .console-grid__side { display: flex; flex-direction: column; gap: 16px; min-width: 0; } .console-grid__side { min-width: 0; } .console-grid__main { min-width: 0; } .panel-frame__header { padding: 14px 16px 0; display: flex; justify-content: space-between; gap: 14px; align-items: start; } .panel-frame__body { padding: 14px 16px 16px; } .panel-frame__extra { flex-shrink: 0; } .chat-panel { display: flex; flex-direction: column; } .chat-panel .panel-frame__body { height: 62vh; min-height: 62vh; } .chat-stream, .team-card__body { min-height: 420px; max-height: 62vh; overflow: auto; padding: 16px; border: 2px solid var(--border-mid); background: linear-gradient(180deg, rgba(4, 8, 5, 0.88) 0%, rgba(8, 12, 9, 0.92) 100%); } .chat-panel .chat-stream { height: 100%; min-height: 100%; max-height: none; } .chat-stream pre, .team-message pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: var(--font-body); } .chat-stream pre { color: var(--accent-green); line-height: 1.55; } .empty-state { display: grid; gap: 10px; min-height: 100%; place-content: center; text-align: center; color: var(--text-dim); font-family: var(--font-display); font-size: 0.62rem; line-height: 1.9; } .empty-state--small { font-size: 0.56rem; } .prompt-composer { padding: 14px; } .prompt-composer textarea { width: 100%; min-height: 110px; resize: vertical; border: 3px solid var(--border-dark); box-shadow: inset 0 0 0 2px var(--border-mid); background: rgba(5, 10, 6, 0.95); color: var(--text-main); padding: 14px; outline: none; } .prompt-composer textarea::placeholder { color: var(--text-muted); } .prompt-composer__actions { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 12px; color: var(--text-muted); font-size: 0.78rem; } .team-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; } .team-card { border: 2px solid var(--border-mid); background: linear-gradient(180deg, rgba(10, 16, 11, 0.92), rgba(8, 12, 9, 0.96)); box-shadow: inset 0 0 0 1px rgba(114, 255, 132, 0.08); min-height: 348px; } .team-card__header { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 12px 14px; border-bottom: 1px dashed rgba(70, 121, 84, 0.32); } .team-card__identity { display: flex; gap: 10px; align-items: center; min-width: 0; } .team-card__icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--border-light); background: rgba(35, 52, 41, 0.72); font-size: 1rem; } .team-card__identity h3, .team-card__identity p { margin: 0; } .team-card__identity h3 { font-size: 0.9rem; } .team-card__identity p { color: var(--text-muted); font-size: 0.72rem; } .team-card__count { display: inline-flex; min-width: 28px; justify-content: center; padding: 4px 6px; border: 1px solid var(--accent-cyan); color: var(--accent-cyan); font-family: var(--font-display); font-size: 0.62rem; } .team-card__body { min-height: 276px; max-height: 276px; } .team-message { display: grid; gap: 8px; padding: 0 0 10px; margin-bottom: 10px; border-bottom: 1px dashed rgba(70, 121, 84, 0.22); } .team-message:last-child { margin-bottom: 0; border-bottom: 0; padding-bottom: 0; } .team-message__speaker { color: var(--accent-cyan); font-family: var(--font-display); font-size: 0.6rem; } .team-message pre { color: var(--text-main); line-height: 1.45; font-size: 0.84rem; } @media (max-width: 1024px) { .console-grid { grid-template-columns: 1fr; } .team-board { grid-template-columns: 1fr; } } @media (max-width: 640px) { .app-shell { padding: 14px; } .app-shell__header, .prompt-composer__actions { flex-direction: column; align-items: stretch; } .app-shell__project { max-width: 100%; } .shell-frame__screen { min-height: auto; padding: 12px; } .panel-frame__header { flex-direction: column; align-items: stretch; } .session-toolbar--inline { justify-content: stretch; flex-wrap: wrap; } }