.product-page, .product-loading { min-height: 100vh; color: #111111; background: #f6f6f4; } .product-page { display: flex; flex-direction: column; } .product-loading { display: grid; place-content: center; gap: 16px; text-align: center; } .product-loading button, .product-loading a { min-height: 44px; padding: 11px 18px; border: 1px solid #111111; color: #111111; background: #ffffff; text-decoration: none; } .product-header { display: flex; min-height: 68px; align-items: stretch; padding: 0 max(3vw, 32px); border-bottom: 1px solid #9c9c96; background: #ffffff; } .product-brand { display: flex; align-items: center; margin-right: 24px; color: #111111; font-family: Arial Black, "Segoe UI", sans-serif; font-size: 25px; font-weight: 900; text-decoration: none; } .product-header nav { display: flex; align-items: stretch; gap: 4px; } .product-header nav a { display: flex; min-width: 72px; align-items: center; justify-content: center; padding: 0 14px; color: #111111; font-weight: 700; text-decoration: none; } .product-header nav a[aria-current="page"] { background: #f2f500; } .workspace-art { position: relative; display: grid; min-height: 238px; grid-template-columns: minmax(330px, 0.7fr) minmax(500px, 1.7fr); gap: 40px; align-items: center; overflow: hidden; padding: 30px max(3vw, 32px); border-bottom: 1px solid #9c9c96; background: #eeeee9; } .workspace-art > div:first-child { z-index: 2; } .workspace-art strong { display: block; font-family: Arial Black, "Segoe UI", sans-serif; font-size: 90px; font-weight: 900; line-height: 0.9; } .workspace-art h1 { margin: 20px 0 0; font-size: 25px; } .workspace-art-system { position: relative; display: grid; min-height: 160px; align-content: center; justify-items: end; padding: 32px 14%; border-bottom: 1px solid #65655f; font-family: Consolas, monospace; font-size: 12px; } .workspace-art-system::before { position: absolute; top: 20px; left: 4%; width: 50%; height: 105px; background: #b9b9b4; content: ""; } .workspace-art-system::after { position: absolute; top: 62px; right: 8%; width: 58%; height: 70px; background: #f2f500; content: ""; } .workspace-art-system i { position: absolute; z-index: 1; top: 0; right: 33%; width: 1px; height: 100%; background: #4f4f4a; } .workspace-art-system b { z-index: 2; min-width: 190px; } .workspace-main { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 22px; max-width: 1540px; margin: 0 auto; padding: 28px max(3vw, 32px) 64px; } .generation-area { min-width: 0; } .workspace-compact-heading, .recent-projects header, .project-current > header, .project-history > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; } .workspace-compact-heading { margin-bottom: 18px; } .workspace-compact-heading p, .projects-title p, .project-detail-header p { margin: 0 0 4px; font-family: Consolas, monospace; font-size: 11px; font-weight: 700; } .workspace-compact-heading h1, .projects-title h1, .project-detail-header h1 { margin: 0; } .prompt-label { display: block; margin-bottom: 10px; font-size: 17px; font-weight: 800; } .generation-area textarea { width: 100%; min-height: 124px; resize: vertical; padding: 16px; border: 1px solid #6f6f69; border-radius: 0; background: #ffffff; line-height: 1.6; } .generation-options { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(360px, 0.8fr); gap: 10px; margin-top: 12px; } .model-status, .ratio-control, .reference-input { border: 1px solid #8f8f89; background: #ffffff; } .model-status { display: grid; gap: 6px; align-content: center; min-height: 76px; padding: 12px 14px; } .model-status select { min-width: 0; width: 100%; min-height: 38px; padding: 6px 30px 6px 9px; border: 1px solid #75756f; color: #111111; background: #ffffff; font: inherit; } .model-status span, .ratio-control legend, .reference-input small { color: #65655f; font-size: 12px; } .ratio-control { min-width: 0; margin: 0; padding: 8px 12px 12px; } .ratio-control legend { padding: 0 4px; } .ratio-control > div { display: grid; grid-template-columns: repeat(4, minmax(58px, 1fr)); gap: 6px; } .ratio-control label { min-width: 0; } .ratio-control input { position: absolute; opacity: 0; pointer-events: none; } .ratio-control span { display: grid; min-height: 38px; place-items: center; border: 1px solid #85857f; font-family: Consolas, monospace; font-weight: 700; } .ratio-control input:checked + span { border-color: #111111; background: #f2f500; } .ratio-control input:focus-visible + span { outline: 2px solid #1769aa; outline-offset: 2px; } .reference-input { display: grid; grid-template-columns: auto 1fr; gap: 6px 20px; align-items: center; min-height: 76px; margin-top: 12px; padding: 13px 16px; cursor: pointer; } .reference-input > span { font-weight: 800; } .reference-input small { overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .reference-input input { grid-column: 1 / -1; width: 100%; } .generation-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; } .generation-submit span { color: #5b5b55; font-size: 13px; } .generation-submit button, .failed-draft-bar button { min-width: 220px; min-height: 48px; border: 1px solid #111111; background: #f2f500; font-weight: 800; } .generation-submit button:disabled, .failed-draft-bar button:disabled { cursor: not-allowed; background: #deded9; color: #777770; } .current-task { grid-column: 2; grid-row: 1 / span 2; min-height: 430px; padding: 22px; border: 1px solid #75756f; background: #ffffff; } .current-task h2 { margin: 0; font-size: 18px; } .current-task-empty { display: grid; min-height: 330px; place-content: center; gap: 12px; justify-items: center; text-align: center; } .current-task-empty i { width: 34px; height: 34px; border: 3px dashed #777770; border-radius: 50%; } .current-task-empty span { color: #6a6a64; font-size: 13px; } .current-task-active { display: grid; gap: 22px; align-content: start; margin-top: 28px; padding-top: 18px; border-top: 1px solid #a6a6a0; } .current-task-active .task-state { justify-self: start; padding: 7px 10px; border: 1px solid #111111; background: #f2f500; font-family: Consolas, monospace; font-size: 12px; font-weight: 800; } .current-task-active > strong { overflow-wrap: anywhere; font-size: 20px; line-height: 1.4; } .current-task-active dl { display: grid; gap: 0; margin: 0; border-top: 1px solid #b6b6b0; } .current-task-active dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid #b6b6b0; } .current-task-active dt { color: #65655f; } .current-task-active dd { margin: 0; font-weight: 800; } .current-task-active a, .current-task-active button { color: #111111; font-weight: 800; } .current-task-active button { justify-self: start; min-height: 42px; padding: 8px 12px; border: 1px solid #111111; background: #f2f500; } .capacity-critical, .generation-notice { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 12px; padding: 12px 14px; border: 1px solid #111111; } .capacity-critical { background: #ffdf66; } .capacity-critical span, .generation-notice span { font-size: 13px; } .generation-notice { background: #ffffff; } .generation-notice button { flex: 0 0 auto; min-height: 38px; padding: 7px 12px; border: 1px solid #111111; background: #f2f500; font-weight: 800; } .recent-projects { grid-column: 1; margin-top: 28px; } .recent-projects h2 { margin: 0; font-size: 18px; } .recent-projects a { color: #1769aa; font-weight: 700; } .projects-page, .project-detail-page { width: min(1340px, calc(100% - 64px)); margin: 0 auto; padding: 44px 0 80px; } .projects-title { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid #a4a49e; } .projects-title h1 { font-size: 40px; } .projects-title > strong { font-family: Consolas, monospace; font-size: 15px; } .projects-tabs { display: flex; gap: 0; margin-top: 22px; } .projects-tabs button { min-width: 132px; min-height: 44px; border: 1px solid #868680; background: #ffffff; font-weight: 700; } .projects-tabs button + button { border-left: 0; } .projects-tabs button[aria-selected="true"] { background: #111111; color: #ffffff; } .projects-controls { display: grid; grid-template-columns: minmax(220px, 1fr) 170px 170px; gap: 10px; margin: 14px 0 24px; } .projects-controls input, .projects-controls select { min-width: 0; min-height: 44px; padding: 8px 12px; border: 1px solid #8a8a84; border-radius: 0; background: #ffffff; } .project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .project-grid.compact { margin-top: 14px; } .project-card { position: relative; min-width: 0; border: 1px solid #7b7b75; background: #ffffff; } .project-select { position: absolute; z-index: 2; top: 12px; left: 12px; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #111111; background: #ffffff; } .project-select input { width: 18px; height: 18px; } .project-placeholder { display: grid; height: 154px; grid-template-columns: repeat(4, 1fr); overflow: hidden; border-bottom: 1px solid #a5a59f; background: #d8d8d3; } .project-placeholder span { display: grid; place-items: end center; padding-bottom: 14px; color: #b2b2ad; font-family: Arial Black, sans-serif; font-size: 54px; } .project-placeholder span:nth-child(2) { background: #c4c4bf; } .project-placeholder span:nth-child(3) { background: #ecece8; } .project-card[data-status="failed_empty"] .project-placeholder { background: #e7e7e2; filter: grayscale(1); } .project-card[data-status="active"] .project-placeholder span:nth-child(3) { background: #f2f500; } .project-card-body { display: grid; min-height: 198px; grid-template-rows: minmax(48px, auto) auto auto auto 1fr; gap: 8px; padding: 16px; } .project-card-body > div { display: flex; align-items: start; justify-content: space-between; gap: 12px; } .project-card h3 { display: -webkit-box; overflow: hidden; margin: 0; font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .project-card-body > div span { flex: 0 0 auto; padding: 3px 6px; background: #e9e9e5; font-family: Consolas, monospace; font-size: 10px; } .project-card-body p, .project-card-body time { margin: 0; color: #676761; font-size: 12px; } .project-card-body > a { align-self: end; justify-self: start; color: #111111; font-weight: 800; } .project-card-body .trash-expiry { color: #8f1d14; font-weight: 700; } .project-card-body .project-card-actions { display: flex; align-self: end; justify-content: flex-start; gap: 8px; flex-wrap: wrap; } .project-card-actions a, .project-card-actions button { display: inline-grid; min-height: 38px; place-items: center; padding: 7px 10px; border: 1px solid #111111; border-radius: 0; color: #111111; background: #ffffff; font-size: 12px; font-weight: 800; text-decoration: none; } .project-card-actions button:disabled { border-color: #b2b2ac; color: #777770; background: #dfdfda; cursor: not-allowed; } .project-card[data-status="trashed"] .project-card-actions button:last-child:not(:disabled) { border-color: #a52e24; color: #8f1d14; } .projects-stale, .projects-notice { padding: 12px 14px; border-left: 5px solid #d14a3b; background: #fff1ef; font-weight: 700; } .projects-notice { border-color: #287b45; background: #edf8f0; } .projects-empty { display: grid; min-height: 360px; place-content: center; justify-items: center; text-align: center; } .projects-empty a, .projects-empty button { min-height: 44px; padding: 11px 18px; border: 1px solid #111111; color: #111111; background: #f2f500; font-weight: 700; text-decoration: none; } .failed-draft-bar { position: sticky; z-index: 5; bottom: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; padding: 14px 18px; border: 1px solid #111111; background: #ffffff; box-shadow: 6px 6px 0 #111111; } .project-detail-header { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid #9f9f99; } .project-detail-header > a { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #111111; color: #111111; font-size: 20px; text-decoration: none; } .project-detail-header h1 { overflow-wrap: anywhere; font-size: 34px; } .project-detail-header > span { padding: 9px 12px; border: 1px solid #8e8e88; font-family: Consolas, monospace; font-weight: 700; } .project-conflict { display: grid; grid-template-columns: minmax(260px, 0.75fr) minmax(280px, 1fr) auto; gap: 24px; align-items: center; margin: 24px 0 0; padding: 20px; border: 2px solid #b42318; background: #fff4f2; } .project-conflict h2, .project-conflict p { margin: 0; } .project-conflict > div:first-child p { font-family: Consolas, monospace; font-size: 11px; font-weight: 700; } .project-conflict > div:first-child span { display: inline-block; margin: 8px 14px 0 0; font-family: Consolas, monospace; font-size: 12px; } .project-conflict-actions { display: grid; min-width: 190px; gap: 8px; } .project-conflict button { min-height: 42px; padding: 9px 14px; border: 1px solid #111111; border-radius: 0; background: #ffffff; font-weight: 800; } .project-conflict button:first-child:not(:disabled) { background: #f2f500; } .project-conflict > strong { grid-column: 1 / -1; color: #8f1d14; } .project-identity { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 28px; align-items: center; padding: 22px 0; border-bottom: 1px solid #c2c2bc; } .project-identity h2, .project-identity p { margin: 0; } .save-status { display: inline-block; margin-top: 8px; padding-left: 9px; border-left: 3px solid #2f7d4a; font-size: 12px; } .save-status.dirty, .save-status.saving { border-color: #8a6a00; } .save-status.failed, .save-status.conflicted { border-color: #b42318; color: #8f1d14; } .project-identity p { margin-top: 4px; color: #6b6b65; font-family: Consolas, monospace; font-size: 11px; } .project-identity form { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: 8px; } .project-identity input, .project-identity button { min-width: 0; min-height: 44px; border: 1px solid #85857f; border-radius: 0; } .project-identity input { padding: 9px 12px; background: #ffffff; } .project-identity button { background: #f2f500; font-weight: 800; } .project-identity form span { grid-column: 1 / -1; font-size: 12px; } .project-detail-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr); gap: 28px; padding-top: 28px; } .project-current > header, .project-history > header { min-height: 42px; margin-bottom: 12px; } .project-current h2, .project-history h2 { margin: 0; font-size: 19px; } .project-current > .project-placeholder { height: auto; min-height: 480px; border: 1px solid #73736d; } .project-current > .project-placeholder span { font-size: 80px; } .project-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; } .project-actions a, .project-actions button, .project-retry { display: grid; min-height: 44px; place-items: center; border: 1px solid #111111; color: #111111; background: #ffffff; font-weight: 700; text-align: center; text-decoration: none; } .project-actions > :first-child { background: #f2f500; } .project-actions button:disabled { border-color: #b2b2ac; color: #777770; background: #dfdfda; cursor: not-allowed; } .project-blocker { margin: 10px 0 0; color: #a52e24; font-weight: 700; } .project-retry { width: 180px; margin-top: 12px; background: #f2f500; } .project-history ol { display: grid; max-height: 650px; gap: 10px; overflow-y: auto; margin: 0; padding: 0; list-style: none; } .project-history li { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 12px; padding: 8px; border: 1px solid #a4a49e; background: #ffffff; } .project-history li[data-current="true"] { border: 3px solid #111111; padding: 6px; } .project-history li .project-placeholder { height: 88px; border: 0; } .project-history li .project-placeholder span { padding-bottom: 7px; font-size: 18px; } .project-history li > div:last-child { display: grid; align-content: center; gap: 8px; } .project-history time { color: #6b6b65; font-size: 11px; } .history-empty { display: grid; min-height: 320px; place-content: center; padding: 28px; border: 1px dashed #94948e; text-align: center; } .history-empty p { max-width: 320px; overflow-wrap: anywhere; color: #65655f; } .project-latest-exports { margin-top: 22px; border: 1px solid #111111; background: #ffffff; } .project-latest-exports > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid #111111; } .project-latest-exports h2, .project-latest-exports p { margin: 0; } .project-latest-exports p { font-family: Consolas, monospace; font-size: 11px; font-weight: 700; } .project-latest-exports > header > span { color: #65655f; font-size: 12px; } .latest-exports-empty { display: grid; min-height: 150px; place-items: center; gap: 18px; padding: 28px; text-align: center; } .latest-exports-empty > strong { font-size: 18px; } .latest-exports-empty > div { display: flex; gap: 8px; } .latest-exports-empty a, .project-latest-exports li > a { display: inline-grid; min-height: 40px; place-items: center; padding: 8px 14px; border: 1px solid #111111; color: #111111; background: #ffffff; font-weight: 800; text-decoration: none; } .latest-exports-empty a:first-child { background: #f2f500; } .project-latest-exports ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 18px; list-style: none; } .project-latest-exports li { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 16px; padding: 16px; border: 1px solid #b9b9b1; } .project-latest-exports li > div { display: flex; align-items: baseline; gap: 10px; } .project-latest-exports li > time { color: #65655f; font-size: 12px; } .project-latest-exports li > a { grid-column: 2; grid-row: 1 / span 2; } .project-leave-overlay { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 24px; background: rgb(17 17 17 / 58%); } .project-purge-overlay { position: fixed; z-index: 40; inset: 0; display: grid; place-items: center; padding: 24px; background: rgb(17 17 17 / 62%); } .project-purge-dialog { width: min(520px, 100%); padding: 28px; border: 2px solid #111111; background: #ffffff; box-shadow: 10px 10px 0 #d14a3b; } .project-purge-dialog > p:first-child { margin: 0 0 8px; font-family: Consolas, monospace; font-size: 11px; font-weight: 700; } .project-purge-dialog h2 { margin: 0 0 10px; } .project-purge-dialog > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 22px; } .project-purge-dialog button { min-height: 44px; border: 1px solid #111111; border-radius: 0; background: #ffffff; font-weight: 800; } .project-purge-dialog button:first-child { color: #ffffff; background: #a52e24; } .project-leave-dialog { width: min(560px, 100%); padding: 28px; border: 2px solid #111111; background: #ffffff; box-shadow: 10px 10px 0 #f2f500; } .project-leave-dialog > p { margin: 0 0 8px; font-family: Consolas, monospace; font-size: 11px; font-weight: 700; } .project-leave-dialog > h2 { margin: 0 0 8px; } .project-leave-dialog > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 22px; } .project-leave-dialog button { min-height: 44px; padding: 9px; border: 1px solid #111111; border-radius: 0; background: #ffffff; font-weight: 800; } .project-leave-dialog button:first-child { background: #f2f500; } .project-leave-dialog > strong { display: block; margin-top: 14px; color: #8f1d14; } .local-only-footer { display: grid; width: 100%; min-height: 48px; margin-top: auto; place-items: center; padding: 8px 20px; color: #ffffff; background: #111111; font-size: 13px; font-weight: 700; text-align: center; } @media (max-width: 920px) { .workspace-art { grid-template-columns: 1fr; } .workspace-art-system { display: none; } .workspace-main { grid-template-columns: 1fr; } .current-task { grid-column: 1; grid-row: auto; min-height: 260px; } .current-task-empty { min-height: 190px; } .recent-projects { grid-column: 1; } .generation-options, .project-detail-grid { grid-template-columns: 1fr; } .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 600px) { .product-header { display: grid; padding: 0 16px; } .product-brand { min-height: 54px; margin: 0; } .product-header nav { min-width: 0; overflow-x: auto; border-top: 1px solid #d0d0ca; } .product-header nav a { min-width: 68px; min-height: 48px; padding: 0 10px; } .workspace-art { min-height: 190px; padding: 28px 20px; } .workspace-art strong { font-size: 66px; } .workspace-art h1 { font-size: 23px; } .workspace-main, .projects-page, .project-detail-page { width: 100%; padding-right: 16px; padding-left: 16px; } .generation-options, .generation-submit, .reference-input, .projects-title, .failed-draft-bar, .project-identity { grid-template-columns: 1fr; } .generation-submit, .projects-title, .failed-draft-bar { align-items: stretch; flex-direction: column; } .generation-submit button, .failed-draft-bar button { width: 100%; min-width: 0; } .reference-input small { text-align: left; } .capacity-critical, .generation-notice { align-items: flex-start; flex-direction: column; } .projects-title { display: grid; } .projects-controls { grid-template-columns: 1fr; } .project-grid { grid-template-columns: 1fr; } .project-detail-header { grid-template-columns: 44px minmax(0, 1fr); } .project-detail-header > span { grid-column: 2; justify-self: start; } .project-conflict { grid-template-columns: 1fr; } .project-conflict-actions { min-width: 0; } .project-identity { display: grid; gap: 14px; } .project-identity form { grid-template-columns: 1fr; } .project-leave-dialog > div { grid-template-columns: 1fr; } .project-purge-dialog > div { grid-template-columns: 1fr; } .project-actions { grid-template-columns: 1fr; } .project-latest-exports ul { grid-template-columns: 1fr; } .latest-exports-empty > div { width: 100%; flex-direction: column; } .project-current > .project-placeholder { min-height: 360px; } .local-only-footer { font-size: 11px; } }