.app-shell { display: grid; min-height: 100svh; grid-template-columns: minmax(320px, 420px) minmax(560px, 880px); gap: 18px; align-items: stretch; justify-content: center; padding: 28px; color: #18211f; background: linear-gradient(135deg, rgba(20, 94, 84, 0.16), transparent 34%), linear-gradient(225deg, rgba(168, 75, 49, 0.11), transparent 30%), linear-gradient(180deg, #fcfcf8 0%, #f3f4ed 100%); } .app-shell.debug-mode { grid-template-columns: clamp(330px, 18vw, 390px) minmax(0, 1.08fr) minmax(0, 0.92fr); align-items: stretch; place-items: stretch; gap: 14px; justify-content: stretch; padding: 18px; } .app-shell.debug-mode .product-panel { padding: 18px; gap: 14px; } .app-shell.debug-mode .product-summary h2 { max-width: none; font-size: 24px; } .app-shell.debug-mode .value-grid, .app-shell.debug-mode .model-mode-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); } .app-shell.debug-mode .value-grid div { min-height: 92px; padding: 11px; } .app-shell.debug-mode .project-status div { grid-template-columns: 82px minmax(0, 1fr); } .app-shell.debug-mode .product-summary h2 { line-height: 1.15; } .app-shell.debug-mode .trust-panel p { font-size: 11px; } .app-shell.debug-mode .message { max-width: min(820px, 94%); } .app-shell.debug-mode .debug-panel > header, .app-shell.debug-mode .chat-header { padding: 16px 18px; } .app-shell.debug-mode .debug-scroll { padding: 16px; } .app-shell.debug-mode .debug-block { padding: 14px 16px; } .chat-card { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; width: 100%; height: calc(100svh - 56px); overflow: hidden; border: 1px solid rgba(203, 211, 204, 0.86); border-radius: 8px; background: rgba(255, 255, 255, 0.96); box-shadow: 0 30px 90px rgba(27, 40, 36, 0.16); } .chat-card.drag-active { border-color: rgba(23, 101, 92, 0.8); box-shadow: 0 0 0 3px rgba(23, 101, 92, 0.12), 0 30px 90px rgba(27, 40, 36, 0.16); } .drop-overlay { position: absolute; z-index: 20; inset: 70px 18px 88px; display: grid; place-items: center; border: 2px dashed rgba(23, 101, 92, 0.62); border-radius: 8px; background: rgba(247, 250, 245, 0.88); pointer-events: none; backdrop-filter: blur(3px); } .drop-overlay div { display: grid; max-width: 420px; justify-items: center; gap: 8px; padding: 20px; color: #145e54; text-align: center; } .drop-overlay strong { color: #111816; font-size: 20px; } .drop-overlay span { color: #65716d; font-size: 13px; line-height: 1.6; } .debug-mode .chat-card, .debug-panel { width: 100%; height: calc(100svh - 48px); } .product-panel { display: grid; grid-template-rows: auto auto auto auto auto 1fr; align-content: start; gap: 18px; height: calc(100svh - 56px); padding: 22px; overflow: hidden; border: 1px solid rgba(203, 211, 204, 0.72); border-radius: 8px; background: rgba(19, 31, 28, 0.94); color: #f6f4ea; box-shadow: 0 30px 90px rgba(27, 40, 36, 0.2); } .product-brand { display: flex; align-items: center; gap: 12px; } .product-brand .brand-mark { background: #f3efe2; color: #145e54; } .product-brand p { margin: 0 0 4px; color: #aebbb6; font-size: 12px; font-weight: 700; } .product-brand h1, .product-summary h2 { margin: 0; color: #fffdf4; } .product-brand h1 { font-size: 20px; line-height: 1.18; } .product-summary { padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, 0.12); } .product-summary p { margin: 0 0 10px; color: #d3c497; font-size: 13px; font-weight: 800; } .product-summary h2 { max-width: 12em; font-size: 30px; line-height: 1.18; } .value-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .value-grid div, .project-status, .model-mode-panel, .account-panel, .trust-panel { border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 8px; background: rgba(255, 255, 255, 0.055); } .value-grid div { display: grid; min-height: 112px; align-content: space-between; gap: 10px; padding: 13px; } .value-grid svg { color: #d3c497; } .value-grid span, .project-status span { color: #b9c6c1; font-size: 12px; } .value-grid strong { color: #ffffff; font-size: 15px; line-height: 1.3; } .project-status { display: grid; gap: 12px; padding: 14px; } .project-status div { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 10px; align-items: center; } .project-status strong { min-width: 0; overflow: hidden; color: #ffffff; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; } .model-mode-panel { display: grid; gap: 11px; padding: 14px; } .model-mode-title { display: grid; gap: 4px; } .model-mode-title span { color: #b9c6c1; font-size: 12px; } .model-mode-title strong { color: #ffffff; font-size: 13px; line-height: 1.35; } .model-mode-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .model-mode-buttons button { min-width: 0; min-height: 34px; border: 1px solid rgba(255, 255, 255, 0.13); border-radius: 8px; background: rgba(255, 255, 255, 0.08); color: #dce5e1; cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; } .model-mode-buttons button.active { border-color: rgba(211, 196, 151, 0.85); background: #d3c497; color: #12211d; } .account-panel { display: grid; gap: 11px; padding: 14px; } .account-title, .account-actions { display: flex; align-items: center; gap: 8px; } .account-title { color: #ffffff; } .account-title svg { color: #d3c497; } .account-panel p { margin: 0; overflow: hidden; color: #b9c6c1; font-size: 13px; line-height: 1.5; text-overflow: ellipsis; } .auth-form { display: grid; gap: 8px; } .auth-form input { width: 100%; min-width: 0; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 8px; background: rgba(255, 255, 255, 0.08); color: #ffffff; font: inherit; outline: none; padding: 10px 11px; } .auth-form input::placeholder { color: #90a09a; } .auth-form input:focus { border-color: rgba(211, 196, 151, 0.65); } .account-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, 0.11); color: #ffffff; cursor: pointer; font: inherit; font-size: 13px; padding: 8px 10px; } .account-actions button:first-child { flex: 1; background: #d3c497; color: #12211d; font-weight: 700; } .account-actions button:disabled { cursor: not-allowed; opacity: 0.58; } .account-error { color: #ffd2c2 !important; } .trust-panel { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-self: end; padding: 14px; color: #dce5e1; } .trust-panel svg { color: #d3c497; } .trust-panel p { margin: 0; font-size: 12px; line-height: 1.6; } .debug-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid #d9dfd7; border-radius: 8px; background: rgba(255, 255, 255, 0.92); box-shadow: 0 28px 90px rgba(36, 49, 44, 0.14); } .chat-header { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-bottom: 1px solid #e1e5df; background: #ffffff; } .project-tools { display: grid; grid-template-columns: 38px minmax(170px, 240px) 38px 38px; gap: 8px; align-items: center; margin-left: auto; } .project-tools select { min-width: 0; height: 38px; padding: 0 10px; border: 1px solid #cbd3cc; border-radius: 8px; color: #18211f; background: #fbfcf8; font: inherit; font-size: 13px; outline: none; } .project-tools select:focus { border-color: #17655c; box-shadow: 0 0 0 3px rgba(23, 101, 92, 0.12); } .project-tools button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 8px; color: #17655c; background: #eef5ee; cursor: pointer; } .project-tools button:disabled { cursor: not-allowed; opacity: 0.45; } .debug-panel > header { padding: 20px 22px; border-bottom: 1px solid #e1e5df; background: #ffffff; } .debug-panel header p { margin: 0 0 6px; color: #17655c; font-size: 14px; font-weight: 800; } .debug-panel h2 { margin: 0; color: #111816; font-size: 20px; line-height: 1.2; } .brand-mark { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 8px; color: #f7f7f2; background: #17655c; } .chat-header h1 { margin: 0; color: #111816; font-size: 20px; line-height: 1.2; } .chat-header p { margin: 4px 0 0; color: #65716d; font-size: 14px; } .message-list { display: flex; flex-direction: column; gap: 14px; overflow-y: auto; padding: 22px 22px 18px; } .debug-scroll { display: grid; align-content: start; gap: 14px; overflow-y: auto; padding: 18px; } .debug-block { padding: 14px; border: 1px solid #e1e5df; border-radius: 8px; background: #fbfcf8; } .debug-block h3 { margin: 0 0 12px; color: #13201d; font-size: 15px; } .debug-block dl, .debug-block dd { margin: 0; } .debug-block dl { display: grid; gap: 8px; } .debug-block dl div, .feature-row { display: grid; grid-template-columns: minmax(112px, 1fr) auto; gap: 8px; align-items: start; } .debug-block dt, .feature-row span, .prob-row span { color: #65716d; font-size: 13px; } .debug-block dd, .feature-row strong, .prob-row strong { color: #13201d; font-weight: 800; text-align: right; } .missing-note { margin: 0; padding: 10px; border-radius: 8px; color: #7f412f; background: #fff1e9; font-size: 13px; line-height: 1.5; } .debug-scope-note { margin: 0 0 12px; padding: 10px 12px; border: 1px solid rgba(20, 94, 84, 0.14); border-radius: 8px; color: #35534d; background: rgba(20, 94, 84, 0.06); font-size: 12px; line-height: 1.6; } .candidate-debug-grid { display: grid; gap: 12px; } .candidate-debug-card { display: grid; gap: 12px; padding: 12px; border: 1px solid rgba(203, 211, 204, 0.88); border-radius: 8px; background: rgba(255, 255, 255, 0.72); } .candidate-debug-card header { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .candidate-debug-card h4 { margin: 0; color: #145e54; font-size: 14px; } .candidate-debug-card header strong { color: #145e54; font-size: 24px; line-height: 1; } .candidate-debug-card > p { margin: 0; color: #4f5f59; font-size: 13px; line-height: 1.65; } .candidate-debug-table { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid rgba(203, 211, 204, 0.9); border-radius: 8px; background: #fff; } .candidate-debug-table-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 42px; padding: 8px 10px; border-right: 1px solid rgba(225, 229, 223, 0.95); border-bottom: 1px solid rgba(225, 229, 223, 0.95); } .candidate-debug-table-row:nth-child(3n) { border-right: 0; } .candidate-debug-table-row:nth-last-child(-n + 3) { border-bottom: 0; } .candidate-debug-table-row span { color: #65716d; font-size: 12px; line-height: 1.35; } .candidate-debug-table-row strong { color: #145e54; font-size: 15px; font-weight: 900; line-height: 1.1; text-align: right; white-space: nowrap; } .control-questions { display: grid; gap: 8px; margin: 10px 0 0; padding-left: 18px; color: #65716d; font-size: 12px; line-height: 1.55; } .evidence-grid { display: grid; gap: 10px; margin-top: 10px; } .evidence-grid div { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid #e4e8e1; } .evidence-grid strong { color: #13201d; font-size: 12px; } .evidence-grid span { color: #65716d; font-size: 12px; line-height: 1.55; } .feature-row { margin-top: 10px; padding-top: 10px; border-top: 1px solid #e4e8e1; } .feature-row small { grid-column: 1 / -1; color: #7b8581; font-size: 12px; } .feature-row em { display: block; margin-top: 3px; color: #87918d; font-style: normal; font-size: 12px; } .project-memory dl { margin-bottom: 12px; } .memory-timeline { display: grid; gap: 10px; } .memory-item { display: grid; grid-template-columns: auto auto; gap: 6px 10px; padding-top: 10px; border-top: 1px solid #e4e8e1; } .memory-item span { color: #65716d; font-size: 12px; } .memory-item strong { color: #17655c; font-size: 12px; text-align: right; } .memory-item p { grid-column: 1 / -1; display: -webkit-box; overflow: hidden; margin: 0; color: #25332f; font-size: 12px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .debug-block code { display: block; margin-top: 8px; padding: 10px; border-radius: 8px; color: #24413c; background: #eef5ee; font-family: "Noto Sans Mono", "Source Code Pro", "Liberation Mono", ui-monospace, monospace; font-size: 12px; line-height: 1.5; white-space: pre-wrap; } .prob-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 44px; gap: 10px; align-items: center; margin-top: 10px; } .prob-row i { display: block; height: 9px; min-width: 2px; border-radius: 999px; background: #17655c; } .success-grade { display: grid; grid-template-columns: 1fr auto; align-items: center; margin-bottom: 12px; padding: 10px; border-radius: 8px; background: #eef5ee; } .success-grade span { color: #65716d; font-size: 12px; } .success-grade strong { color: #17655c; font-size: 13px; text-transform: uppercase; } .success-grade.danger { background: #fff1e9; } .success-grade.danger strong { color: #8a3f2a; } .success-grade.balanced { background: #f3f2ea; } .success-grade.balanced strong { color: #715f2d; } .driver-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; } .stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; } .stage-grid div { display: grid; gap: 6px; padding: 10px; border: 1px solid #e4e8e1; border-radius: 8px; background: #ffffff; } .stage-grid span { color: #65716d; font-size: 12px; line-height: 1.35; } .stage-grid strong { color: #17655c; font-size: 18px; line-height: 1; } .stage-grid small { color: #87918d; font-size: 10px; line-height: 1.2; word-break: break-word; } .stage-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; } .stage-detail-grid div { padding: 10px; border: 1px solid #e4e8e1; border-radius: 8px; background: #fbfcf8; } .stage-detail-grid h4 { margin: 0 0 6px; color: #13201d; font-size: 12px; } .stage-detail-grid p { margin: 0; color: #65716d; font-size: 12px; line-height: 1.55; } .driver-grid > div { display: grid; gap: 7px; align-content: start; padding: 10px; border: 1px solid #e4e8e1; border-radius: 8px; background: #ffffff; } .driver-grid h4 { margin: 0 0 2px; color: #13201d; font-size: 12px; } .driver-grid p { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin: 0; color: #65716d; font-size: 12px; } .driver-grid strong { color: #13201d; } .formula-version { display: block; margin-top: 10px; color: #87918d; font-size: 11px; } .debug-block pre { max-height: 360px; overflow: auto; margin: 0; padding: 12px; border-radius: 8px; color: #21302c; background: #ffffff; white-space: pre-wrap; word-break: break-word; font-family: "Noto Sans Mono", "Source Code Pro", "Liberation Mono", ui-monospace, monospace; font-size: 12px; line-height: 1.55; } .empty-debug { margin: 18px; color: #65716d; line-height: 1.7; } .message { max-width: min(720px, 92%); padding: 14px 16px; border-radius: 8px; } .message.assistant { align-self: flex-start; border: 1px solid #e1e5df; background: #fcfdf9; box-shadow: 0 10px 28px rgba(31, 45, 40, 0.06); } .message.user { align-self: flex-end; color: #ffffff; background: #145e54; box-shadow: 0 10px 26px rgba(20, 94, 84, 0.18); } .message pre { margin: 0; white-space: pre-wrap; word-break: break-word; font: inherit; line-height: 1.68; } .decision-grid-card { display: grid; gap: 14px; padding: 16px; border: 1px solid #e1e5df; border-radius: 8px; background: #fbfcf8; } .decision-grid-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid #dfe5dd; } .decision-grid-card > header p, .decision-grid-subtitle { margin: 0; color: #65716d; font-size: 12px; line-height: 1.5; } .decision-grid-card > header h2 { margin: 4px 0 0; color: #111816; font-size: 19px; line-height: 1.25; } .decision-grid-card > header span { display: grid; min-width: 58px; min-height: 42px; place-items: center; border: 1px solid #cbd3cc; border-radius: 8px; background: #ffffff; color: #145e54; font-size: 18px; font-weight: 900; } .simple-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; } .simple-grid > article, .simple-grid > .grid-detail-card { min-width: 0; max-height: none; overflow-y: auto; padding: 14px; border: 1px solid #e1e5df; border-radius: 8px; background: #ffffff; } .simple-grid h3, .grid-detail-card summary { margin: 0 0 10px; color: #145e54; font-size: 15px; font-weight: 800; line-height: 1.35; } .simple-grid p, .grid-detail-body p { margin: 0 0 8px; color: #2d3935; font-size: 13px; line-height: 1.68; } .notebook-conclusion { color: #111d19 !important; font-weight: 900; } .candidate-rate-grid, .dimension-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-top: 10px; } .candidate-rate-card, .dimension-card, .key-missing-dimensions, .dimension-empty { padding: 10px; border: 1px solid #e1e5df; border-radius: 8px; background: #fbfcf8; } .candidate-rate-card h4, .dimension-card-title strong, .key-missing-dimensions h4 { margin: 0 0 6px; color: #145e54; font-size: 13px; } .candidate-rate-card div, .rate-cell div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } .candidate-rate-card strong, .rate-cell strong { color: #145e54; } .candidate-rate-card span, .rate-cell span, .candidate-rate-card p, .dimension-card p, .dimension-empty { color: #65716d; font-size: 12px; line-height: 1.55; } .missing-dimensions-cell { grid-column: 1 / -1; } .simple-grid > article:nth-child(3), .simple-grid > article:nth-child(4) { max-height: 460px; } .message.loading { display: inline-flex; align-items: center; gap: 9px; color: #56635f; } .message.loading svg, .chat-input button[type='submit'] svg { animation: spin 900ms linear infinite; } .chat-input button[type='submit'] svg:not(.lucide-loader-circle) { animation: none; } .chat-input { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 10px; padding: 14px 16px; border-top: 1px solid #e1e5df; background: #ffffff; } .chat-input textarea { width: 100%; min-height: 54px; max-height: 160px; resize: vertical; padding: 13px 14px; border: 1px solid #cbd3cc; border-radius: 8px; color: #18211f; background: #fbfcf8; font: inherit; line-height: 1.55; outline: none; } .chat-input textarea:focus { border-color: #17655c; box-shadow: 0 0 0 3px rgba(23, 101, 92, 0.12); } .chat-input button { display: grid; width: 48px; height: 52px; place-items: center; align-self: end; border: 0; border-radius: 8px; cursor: pointer; } .chat-input button[type='submit'] { color: #ffffff; background: #145e54; } .attach-button { color: #145e54; background: #eef5ee; } .chat-input button:disabled { cursor: not-allowed; opacity: 0.48; } .login-required-tip { margin: -6px 18px 10px; color: #697570; font-size: 12px; line-height: 1.45; } .legal-strip { display: flex; min-height: 38px; align-items: center; gap: 8px; padding: 0 18px 12px; color: #697570; background: #ffffff; font-size: 12px; line-height: 1.45; } .legal-strip svg { flex: 0 0 auto; color: #145e54; } .legal-strip span { min-width: 0; flex: 1; } .legal-strip strong { color: #384741; } .legal-strip a { color: #145e54; font-weight: 800; text-decoration: none; } .legal-strip a:hover { text-decoration: underline; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 680px) { .app-shell { gap: 12px; grid-template-columns: 1fr; min-height: 100svh; padding: 12px; } .chat-card { width: 100%; height: auto; min-height: 72svh; border-radius: 8px; } .chat-header { display: grid; grid-template-columns: auto minmax(0, 1fr); padding: 16px; } .project-tools { width: 100%; grid-column: 1 / -1; grid-template-columns: 38px minmax(0, 1fr) 38px 38px; margin-left: 0; } .message-list { padding: 16px; } .message { max-width: 96%; } .legal-strip { align-items: flex-start; flex-wrap: wrap; padding: 0 16px 12px; } } @media (max-width: 980px) { .app-shell { grid-template-columns: 1fr; padding: 16px; } .product-panel { height: auto; } .app-shell.debug-mode { grid-template-columns: 1fr; } .chat-card, .debug-mode .chat-card, .debug-panel { height: min(760px, calc(100svh - 24px)); } } @media (max-width: 1500px) { .app-shell.debug-mode { grid-template-columns: minmax(300px, 340px) minmax(0, 1.04fr) minmax(0, 0.96fr); gap: 12px; padding: 14px; } .app-shell.debug-mode .product-panel { padding: 16px; } .app-shell.debug-mode .product-summary h2 { font-size: 22px; } .candidate-debug-table { grid-template-columns: repeat(2, minmax(0, 1fr)); } .candidate-debug-table-row:nth-child(3n) { border-right: 1px solid rgba(225, 229, 223, 0.95); } .candidate-debug-table-row:nth-child(2n) { border-right: 0; } .candidate-debug-table-row:nth-last-child(-n + 3) { border-bottom: 1px solid rgba(225, 229, 223, 0.95); } .candidate-debug-table-row:nth-last-child(-n + 1) { border-bottom: 0; } } @media (max-width: 1240px) { .app-shell.debug-mode { grid-template-columns: minmax(260px, 300px) minmax(0, 1fr); grid-template-areas: "side chat" "debug debug"; } .app-shell.debug-mode .product-panel { grid-area: side; height: min(680px, calc(100svh - 28px)); } .app-shell.debug-mode .chat-card { grid-area: chat; height: min(680px, calc(100svh - 28px)); } .app-shell.debug-mode .debug-panel { grid-area: debug; height: min(780px, calc(100svh - 28px)); } } @media (max-width: 760px) { .app-shell.debug-mode { grid-template-columns: 1fr; grid-template-areas: "side" "chat" "debug"; padding: 12px; } .app-shell.debug-mode .product-panel, .app-shell.debug-mode .chat-card, .app-shell.debug-mode .debug-panel { height: auto; min-height: 0; } .app-shell.debug-mode .product-panel { max-height: none; } .app-shell.debug-mode .value-grid, .app-shell.debug-mode .model-mode-buttons { grid-template-columns: 1fr 1fr; } .app-shell.debug-mode .debug-scroll { max-height: none; } .candidate-debug-table { grid-template-columns: 1fr; } .candidate-debug-table-row, .candidate-debug-table-row:nth-child(2n), .candidate-debug-table-row:nth-child(3n), .candidate-debug-table-row:nth-last-child(-n + 3) { border-right: 0; border-bottom: 1px solid rgba(225, 229, 223, 0.95); } .candidate-debug-table-row:last-child { border-bottom: 0; } .simple-grid { grid-template-columns: 1fr; } .simple-grid > article, .simple-grid > .grid-detail-card { max-height: none; } } @media (max-width: 680px) { .product-panel { display: grid; grid-template-rows: none; gap: 12px; height: auto; padding: 16px; overflow: visible; border-radius: 8px; box-shadow: 0 18px 50px rgba(27, 40, 36, 0.16); } .product-brand { align-items: center; } .product-brand .brand-mark { width: 44px; height: 44px; } .product-brand h1 { font-size: 18px; } .product-summary { padding-top: 10px; } .product-summary p { margin-bottom: 8px; font-size: 12px; } .product-summary h2 { max-width: none; font-size: 24px; line-height: 1.2; } .value-grid { grid-template-columns: 1fr; } .value-grid div { min-height: 86px; padding: 12px; } .project-status { gap: 10px; } .project-status div { grid-template-columns: 92px minmax(0, 1fr); } .model-mode-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); } .account-panel { gap: 10px; padding: 12px; } .auth-form { grid-template-columns: 1fr; } .auth-form input, .account-actions button { min-height: 44px; } .trust-panel { padding: 12px; } .chat-card { height: auto; min-height: 72svh; overflow: hidden; } .app-shell.authenticated .product-panel { grid-template-columns: 1fr; gap: 10px; padding: 12px; } .app-shell.authenticated .product-summary, .app-shell.authenticated .value-grid, .app-shell.authenticated .project-status, .app-shell.authenticated .model-mode-panel, .app-shell.authenticated .trust-panel { display: none; } .app-shell.authenticated .account-panel { padding: 10px; } .app-shell.authenticated .account-panel p { font-size: 12px; } .app-shell.authenticated .chat-card { min-height: calc(100svh - 156px); } } .admin-shell { min-height: 100svh; padding: 28px; color: #18211f; background: linear-gradient(135deg, rgba(20, 94, 84, 0.14), transparent 34%), linear-gradient(180deg, #fcfcf8 0%, #f3f4ed 100%); } .admin-login-card, .admin-page { width: min(1180px, 100%); margin: 0 auto; border: 1px solid rgba(203, 211, 204, 0.86); border-radius: 8px; background: rgba(255, 255, 255, 0.96); box-shadow: 0 30px 90px rgba(27, 40, 36, 0.14); } .admin-login-card { display: grid; gap: 22px; max-width: 460px; margin-top: 12svh; padding: 28px; } .admin-login-card .product-brand h1, .admin-page h1 { color: #10211d; } .admin-login-form { display: grid; gap: 12px; } .admin-login-form input, .admin-toolbar input, .admin-table select { min-height: 40px; border: 1px solid rgba(194, 205, 198, 0.95); border-radius: 8px; background: #fff; color: #17231f; font: inherit; outline: none; padding: 9px 11px; } .admin-login-form input:focus, .admin-toolbar input:focus, .admin-table select:focus { border-color: #14756a; } .admin-login-form button, .admin-actions button, .admin-table button { min-height: 38px; border: 0; border-radius: 8px; background: #126b61; color: #fff; cursor: pointer; font: inherit; font-weight: 700; padding: 8px 12px; } .admin-login-form button:disabled { cursor: not-allowed; opacity: 0.55; } .admin-page { display: grid; gap: 18px; padding: 24px; } .admin-header, .admin-toolbar, .admin-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .admin-header p { margin: 0 0 4px; color: #64736d; font-size: 12px; font-weight: 800; } .admin-header h1 { margin: 0; font-size: 28px; } .admin-actions span { color: #64736d; font-size: 13px; } .admin-actions button:last-child { background: #eef4ef; color: #1c302b; } .admin-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; } .admin-metrics div { display: grid; gap: 10px; min-height: 92px; align-content: center; border: 1px solid rgba(203, 211, 204, 0.9); border-radius: 8px; background: #f8faf5; padding: 14px; } .admin-metrics span, .admin-table small { color: #718079; font-size: 12px; } .admin-metrics strong { color: #12251f; font-size: 28px; } .admin-toolbar { border-top: 1px solid rgba(203, 211, 204, 0.75); padding-top: 18px; } .admin-toolbar div { display: flex; align-items: center; gap: 8px; } .admin-toolbar svg { color: #126b61; } .admin-toolbar input { width: min(320px, 100%); } .admin-table-wrap { overflow: auto; border: 1px solid rgba(203, 211, 204, 0.9); border-radius: 8px; } .admin-table { width: 100%; min-width: 1120px; border-collapse: collapse; background: #fff; } .admin-table th, .admin-table td { border-bottom: 1px solid rgba(203, 211, 204, 0.75); padding: 12px; text-align: left; vertical-align: middle; } .admin-table th { background: #f5f8f3; color: #5e6e68; font-size: 12px; } .admin-table td:first-child { display: grid; gap: 5px; } .admin-table td { color: #18211f; font-size: 14px; } .admin-table button { min-height: 34px; background: #eef4ef; color: #1c302b; } @media (max-width: 880px) { .admin-shell { padding: 14px; } .admin-header, .admin-toolbar { align-items: stretch; flex-direction: column; } .admin-actions { justify-content: flex-start; flex-wrap: wrap; } .admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }