:root { font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; color: #173042; background: #f2f6f4; font-synthesis: none; text-rendering: optimizeLegibility; } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 85% 3%, rgba(242, 187, 90, 0.22), transparent 28rem), linear-gradient(180deg, #e7f0ed 0, #f5f7f4 28rem, #f2f6f4 100%); } button { border: 0; border-radius: 999px; padding: 0.8rem 1.25rem; font: inherit; font-weight: 700; color: #fff; background: #cb6d35; cursor: pointer; transition: transform 150ms ease, opacity 150ms ease; } button:hover { transform: translateY(-1px); } button:disabled { cursor: not-allowed; opacity: 0.65; } .button-secondary { color: #244356; background: #e5ece9; } main { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: 5rem 0; } /* 回忆时间轴与大模型管理:沿用家庭首页的暖白、陶土红和雾蓝设计语言。 */ .customer-page--conversations .workspace__header, .customer-page--models .workspace__header { margin-bottom: 18px; } .memory-timeline-page { display: block !important; min-height: 0 !important; border: 0 !important; overflow: visible !important; background: transparent !important; } .memory-timeline-grid { display: grid; grid-template-columns: minmax(280px, .78fr) minmax(420px, 1.28fr) minmax(220px, .62fr); gap: 16px; align-items: start; } .memory-timeline-grid > * { min-width: 0; border: 1px solid #eadeda; border-radius: 18px; background: #fffdfb; box-shadow: 0 10px 30px rgba(91, 64, 55, .055); } .memory-timeline-grid .conversation-list { display: flex; max-height: min(720px, calc(100dvh - 210px)); overflow: hidden; flex-direction: column; } .memory-timeline-grid .conversation-filter { border-bottom: 1px solid #eee4e1; background: #faf6f2; } .memory-timeline-grid .conversation-filter__fields { grid-template-columns: 1fr 1fr; } .memory-timeline-grid .conversation-filter__fields label:nth-child(n+3) { display: none; } .memory-timeline-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .memory-timeline-list { padding: 8px 0 12px; } .timeline-day-group + .timeline-day-group { border-top: 1px solid #eee5e1; } .timeline-day-group__header { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 8px; width: 100%; padding: 11px 14px; border: 0; border-radius: 0; color: #66514a; background: #fffaf7; box-shadow: none; text-align: left; } .timeline-day-group__header:hover { color: #793b2c; background: #f8eeea; transform: none; box-shadow: none; } .timeline-day-group__header > span:first-child { display: flex; align-items: baseline; gap: 7px; min-width: 0; } .timeline-day-group__header strong { color: #553f39; font-size: 13px; } .timeline-day-group__header small, .timeline-day-group__count { color: #9a8179; font-size: 11px; font-weight: 500; } .timeline-day-group__chevron { color: #a27164; font-size: 18px; line-height: 1; transform: rotate(-90deg); transition: transform .18s ease; } .timeline-day-group__chevron.is-expanded { transform: rotate(0deg); } .timeline-day-group__items { position: relative; padding: 2px 0 8px; } .timeline-day-group__items::before { position: absolute; top: 9px; bottom: 17px; left: 25px; width: 2px; content: ""; background: #dfcbc4; } .memory-timeline-list .conversation-row { position: relative; grid-template-columns: 16px 36px 1fr; margin: 0 8px; width: calc(100% - 16px); border: 0; border-radius: 13px; background: transparent; } .memory-timeline-list .conversation-row.active { background: #f7ebe6; box-shadow: inset 3px 0 #a73920; } .memory-timeline-list .conversation-row > .tag { grid-column: 3; justify-self: start; } .memory-timeline-dot { z-index: 1; width: 11px; height: 11px; border: 3px solid #fffdfb; border-radius: 50%; background: #b86a55; box-shadow: 0 0 0 1px #d7b8ae; } .memory-summary-panel { padding: 24px; } .memory-summary-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; } .memory-summary-panel h3 { margin: 3px 0 0; color: #493834; font-family: "Noto Serif SC", "Songti SC", serif; font-size: 24px; } .memory-summary-panel__mood { padding: 7px 10px; border-radius: 999px; color: #50725f; background: #edf5ef; white-space: nowrap; } .memory-summary-panel__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 14px 0 20px; color: #8a7872; font-size: 12px; } .memory-summary-block { margin-top: 14px; padding: 17px 18px; border: 1px solid #ede3df; border-radius: 14px; background: #fff; } .memory-summary-block--warm { border-color: #ecd5cd; background: #fff6f1; } .memory-summary-block h4 { margin: 0 0 9px; color: #6b4f47; font-size: 14px; } .memory-summary-block p { margin: 0; color: #574b47; line-height: 1.85; } .memory-keywords { display: flex; flex-wrap: wrap; gap: 8px; } .memory-keywords span { padding: 5px 10px; border-radius: 999px; color: #78564d; background: #f4e9e4; font-size: 12px; } .memory-summary-panel > footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; } .memory-summary-empty { display: grid; place-items: center; min-height: 370px; color: #9a8179; text-align: center; } .memory-summary-empty .anticon { font-size: 36px; } .memory-summary-empty h3 { margin-bottom: 0; } .memory-model-card { position: sticky; top: 84px; padding: 22px; text-align: center; } .memory-model-card__icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 13px; border-radius: 16px; color: #fff; background: #6f8c98; font-size: 24px; } .memory-model-card > p { margin: 5px 0; color: #907d77; font-size: 12px; } .memory-model-card h3 { margin: 6px 0; color: #493834; } .memory-model-card small { display: block; overflow-wrap: anywhere; color: #887873; line-height: 1.6; } .memory-model-card > div { margin: 16px 0; padding: 8px; border-radius: 10px; color: #65736a; background: #f2f5f1; font-size: 12px; } .memory-model-card > div span { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #b2aaa6; } .memory-model-card > div span.is-active { background: #65a176; box-shadow: 0 0 0 3px #dceddf; } .memory-model-card__history { padding-top: 14px; border-top: 1px solid #eee4e1; line-height: 1.7; } .memory-model-card__history strong { overflow-wrap: anywhere; color: #6f5a54; font-weight: 600; } .model-management-page { display: grid; gap: 18px; } .model-active-hero { display: flex; align-items: center; justify-content: space-between; padding: 24px 26px; border: 1px solid #dfd2ce; border-radius: 18px; background: linear-gradient(120deg, #fffaf6, #edf4f4); } .model-active-hero > div { display: flex; align-items: center; gap: 16px; } .model-active-hero__icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; color: #fff; background: #6d8995; font-size: 26px; } .model-active-hero p, .model-active-hero h3 { margin: 0; } .model-active-hero h3 { margin: 3px 0; color: #493934; font-size: 24px; } .model-active-hero span { color: #7f6e68; } .model-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .model-config-card { padding: 21px; border: 1px solid #eadeda; border-radius: 18px; background: #fffdfb; box-shadow: 0 9px 25px rgba(94, 68, 60, .05); } .model-config-card.is-active { border-color: #9db7aa; box-shadow: inset 0 3px #6f9b7d, 0 9px 25px rgba(94, 68, 60, .05); } .model-config-card header { display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; } .model-config-card header > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; color: #6c8792; background: #eaf1f2; font-size: 21px; } .model-config-card h3, .model-config-card p { margin: 0; } .model-config-card header p { color: #927e77; font-size: 12px; } .model-config-card header b { padding: 5px 9px; border-radius: 999px; color: #597462; background: #eaf3ed; font-size: 11px; } .model-config-card dl { margin: 18px 0; padding: 12px 0; border-block: 1px solid #eee5e1; } .model-config-card dl div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 5px 0; font-size: 12px; } .model-config-card dt { color: #9a8781; } .model-config-card dd { margin: 0; overflow-wrap: anywhere; color: #5c4d48; } .model-config-card footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .model-config-card footer > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; } .model-test-status { color: #8a7b76; font-size: 12px; } .model-test-status--passed { color: #4f8260; } .model-test-status--failed { color: #a33f2d; } .model-empty { grid-column: 1 / -1; padding: 54px; border: 1px dashed #d9c8c2; border-radius: 18px; color: #8e7c76; background: #fffaf7; text-align: center; } .model-empty > .anticon { font-size: 38px; } .model-security-note { display: flex; gap: 14px; padding: 18px; border-radius: 14px; color: #5d6963; background: #edf3ef; } .model-security-note > .anticon { margin-top: 3px; color: #5e8a6b; font-size: 20px; } .model-security-note p { margin: 5px 0 0; line-height: 1.65; } .model-parameter-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .model-create-dialog { width: min(900px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); } .model-create-dialog .workspace-dialog__body { display: grid; gap: 16px; overflow-y: auto; } .model-create-dialog label > small { display: block; margin-top: 5px; color: #917f78; font-size: 11px; line-height: 1.5; } .model-provider-catalog { display: grid; gap: 13px; padding: 15px; border: 1px solid #eadfda; border-radius: 14px; background: #fbf8f5; } .model-provider-group { display: grid; grid-template-columns: 142px minmax(0, 1fr); gap: 12px; align-items: start; } .model-provider-group > div:first-child { padding-top: 8px; } .model-provider-group > div:first-child strong, .model-provider-group > div:first-child small { display: block; } .model-provider-group > div:first-child strong { color: #4f413c; font-size: 13px; } .model-provider-group > div:first-child small { margin-top: 3px; color: #998680; font-size: 10px; line-height: 1.45; } .model-provider-group > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .model-provider-group button { min-height: 64px; padding: 9px 11px; border: 1px solid #e6d9d4; border-radius: 11px; color: #594a45; background: #fff; text-align: left; box-shadow: none; } .model-provider-group button:hover { border-color: #9baeb7; background: #f7fafb; } .model-provider-group button.is-selected { border-color: #617e8b; color: #344e5a; background: #edf4f6; box-shadow: inset 0 0 0 1px #617e8b; } .model-provider-group button span, .model-provider-group button small { display: block; } .model-provider-group button span { font-size: 13px; font-weight: 700; } .model-provider-group button small { margin-top: 3px; overflow: hidden; color: #93817a; font-size: 10px; font-weight: 400; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; } .model-provider-selection { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 12px; color: #53636a; background: #edf3f4; } .model-provider-selection strong, .model-provider-selection span { display: block; } .model-provider-selection span { margin-top: 2px; color: #78888e; font-size: 11px; } .model-provider-selection a { color: #506f7c; font-size: 12px; white-space: nowrap; } .model-advanced-settings { padding: 12px 14px; border: 1px solid #e9dfdb; border-radius: 12px; background: #fffdfb; } .model-advanced-settings summary { color: #695752; cursor: pointer; font-size: 13px; font-weight: 650; } .model-advanced-settings[open] summary { margin-bottom: 13px; } /* 非首页业务页统一为轻量、长者优先的内容画布。 */ .customer-page:not(.customer-page--home) > .workspace { border-color: #e9deda; border-radius: 18px; background: rgba(255, 253, 251, .96); box-shadow: 0 14px 38px rgba(78, 59, 52, .055); } .customer-page:not(.customer-page--home) .workspace__header { padding: 3px 2px 18px; } .customer-page:not(.customer-page--home) .panel-section, .customer-page:not(.customer-page--home) .customer-message-panel, .customer-page:not(.customer-page--home) .customer-billing-panel { border-radius: 16px; box-shadow: 0 8px 24px rgba(87, 65, 57, .04); } @media (max-width: 1180px) { .memory-timeline-grid { grid-template-columns: minmax(270px, .8fr) minmax(390px, 1.2fr); } .memory-model-card { position: static; grid-column: 1 / -1; text-align: left; } .model-card-grid { grid-template-columns: 1fr; } } @media (max-width: 760px) { .memory-timeline-grid { grid-template-columns: 1fr; } .memory-summary-panel { padding: 18px; } .memory-summary-panel > header, .model-active-hero, .model-config-card footer { align-items: stretch; flex-direction: column; } .memory-model-card { grid-column: auto; } .model-parameter-row { grid-template-columns: 1fr; } .model-provider-group { grid-template-columns: 1fr; } .model-provider-group > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); } .model-provider-selection { align-items: flex-start; flex-direction: column; } } .hero { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 3rem; } .eyebrow { margin: 0 0 0.75rem; color: #a4532b; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.16em; } h1, h2, h3, h4 { margin: 0; color: #10283a; } h1 { max-width: 13em; font-family: Georgia, "Songti SC", serif; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.08; } h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); } .hero__description { max-width: 44rem; margin: 1.3rem 0 0; color: #506675; font-size: 1.05rem; line-height: 1.8; } .notice { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.2rem; padding: 1rem 1.25rem; border: 1px solid #e4bba4; border-radius: 1rem; background: #fff6f0; } .notice p { margin: 0.3rem 0 0; color: #775644; } .status-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; } .status-card { min-height: 13rem; padding: 1.5rem; border: 1px solid rgba(21, 53, 72, 0.09); border-radius: 1.4rem; background: rgba(255, 255, 255, 0.8); box-shadow: 0 1rem 3rem rgba(24, 55, 66, 0.06); } .status-card__topline { display: flex; justify-content: space-between; color: #6e8089; } .status-card__dot { width: 0.65rem; height: 0.65rem; border-radius: 50%; background: #82929a; } .status-card--good .status-card__dot { background: #4b9b72; box-shadow: 0 0 0 0.35rem rgba(75, 155, 114, 0.12); } .status-card--warning .status-card__dot { background: #d07942; box-shadow: 0 0 0 0.35rem rgba(208, 121, 66, 0.12); } .status-card strong { display: block; margin-top: 2.3rem; color: #163348; font-size: 1.65rem; } .status-card p { margin: 0.8rem 0 0; color: #647783; line-height: 1.6; } .identity-panel { display: grid; grid-template-columns: 0.9fr 1.6fr; gap: 3rem; margin-top: 1rem; padding: 2rem; border: 1px solid rgba(21, 53, 72, 0.09); border-radius: 1.4rem; background: rgba(255, 255, 255, 0.88); } .identity-panel__intro > p:last-child { color: #647783; line-height: 1.7; } .identity-panel__state, .identity-panel__login { align-self: center; color: #647783; } .identity-panel__login strong { display: block; color: #183548; font-size: 1.25rem; } .identity-panel__login p { margin: 0.65rem 0 1.2rem; line-height: 1.6; } .identity-panel__login > div { display: flex; gap: 0.6rem; } .identity-panel__account { display: grid; gap: 0.8rem; } .identity-panel__account-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .identity-panel__account-head strong, .identity-panel__account-head span { display: block; } .identity-panel__account-head span { margin-top: 0.25rem; color: #768791; font-size: 0.86rem; } .account-card { padding: 1rem; border-radius: 1rem; background: #edf3f0; } .account-card p { margin: 0 0 0.25rem; color: #687d87; font-size: 0.82rem; } .account-card > strong { color: #183548; } .membership { display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.8rem; padding-top: 0.8rem; border-top: 1px solid #d7e2dd; color: #4e6672; font-size: 0.88rem; } .workspace-shell { margin-top: 1rem; padding: 1rem; border: 1px solid rgba(21, 53, 72, 0.09); border-radius: 1.5rem; background: rgba(228, 237, 233, 0.72); } .workspace-shell__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: 0.8rem 1rem 1rem; } .workspace-shell__heading h2 { font-size: 1.45rem; } .workspace-shell__heading > p { max-width: 31rem; margin: 0; color: #627781; font-size: 0.82rem; line-height: 1.65; text-align: right; } .workspace-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.55rem; padding: 0.55rem; border: 1px solid #d5e1dc; border-radius: 1.15rem; background: rgba(255, 255, 255, 0.72); } .workspace-nav__item { display: grid; min-width: 0; gap: 0.25rem; padding: 0.85rem 1rem; border: 1px solid transparent; border-radius: 0.85rem; color: #45616d; background: transparent; text-align: left; box-shadow: none; } .workspace-nav__item:hover { border-color: #d3dfda; background: #f4f8f6; } .workspace-nav__item.active { border-color: #c8ddd3; color: #fff; background: #245a4c; box-shadow: 0 0.65rem 1.5rem rgba(36, 90, 76, 0.16); } .workspace-nav__item strong { font-size: 0.9rem; } .workspace-nav__item span { overflow: hidden; color: #768a92; font-size: 0.68rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; } .workspace-nav__item.active span { color: #c9ded6; } .workspace-shell__content > .workspace, .workspace-shell__content > .ops-workspace { margin-top: 0.75rem; } .milestone-panel { display: grid; grid-template-columns: 0.9fr 1.6fr; gap: 3rem; margin-top: 1rem; padding: 2rem; border-radius: 1.4rem; color: #fff; background: #10283a; } .milestone-panel h2 { color: #fff; } .milestone-panel ol { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.7rem; margin: 0; padding: 0; list-style: none; } .milestone-panel li { color: #8fa2ad; font-size: 0.85rem; line-height: 1.5; } .milestone-panel li span { display: block; margin-bottom: 1rem; color: #637985; font-size: 1.4rem; } .milestone-panel li.done, .milestone-panel li.active { color: #fff; } .milestone-panel li.done span { color: #75b690; } .milestone-panel li.active span { color: #efaf6d; } .workspace { margin-top: 1rem; padding: 2rem; border: 1px solid rgba(21, 53, 72, 0.09); border-radius: 1.4rem; background: rgba(255, 255, 255, 0.9); box-shadow: 0 1rem 3rem rgba(24, 55, 66, 0.06); } .workspace__header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; } .workspace__header > div:first-child > p:last-child { margin: 0.7rem 0 0; color: #647783; } .workspace__actions { display: flex; align-items: end; gap: 0.7rem; } .event-stream-status { display: inline-flex; align-items: center; align-self: center; gap: 0.35rem; padding: 0.35rem 0.6rem; border-radius: 999px; color: #5b7568; background: #e8f2ec; font-size: 0.68rem; font-weight: 800; white-space: nowrap; } .event-stream-status::before { width: 0.42rem; height: 0.42rem; border-radius: 50%; background: #4c9a70; content: ""; } .event-stream-status--connecting, .event-stream-status--reconnecting { color: #8a652d; background: #fff1da; } .event-stream-status--connecting::before, .event-stream-status--reconnecting::before { background: #d38a36; } .accept-invitation { display: flex; align-items: end; justify-content: flex-end; gap: 0.6rem; margin-top: 0.8rem; } .accept-invitation label { width: min(25rem, 100%); } .accept-invitation input, .invitation-secret input { width: 100%; box-sizing: border-box; border: 1px solid #ccd9d4; border-radius: 0.8rem; padding: 0.72rem 0.85rem; color: #183548; background: #fff; font: inherit; } .household-create { margin-top: 0.8rem; border: 1px solid #dbe6e1; border-radius: 1rem; background: #f8faf9; } .household-create summary { padding: 0.85rem 1rem; color: #355764; font-size: 0.8rem; font-weight: 800; cursor: pointer; } .household-create[open] summary { border-bottom: 1px solid #e2eae6; } .household-create .tool-form { border: 0; border-radius: 0 0 1rem 1rem; } .workspace label { display: grid; gap: 0.35rem; color: #6d7f88; font-size: 0.78rem; font-weight: 700; } .workspace select { min-width: 12rem; border: 1px solid #ccd9d4; border-radius: 0.8rem; padding: 0.72rem 2rem 0.72rem 0.85rem; color: #183548; background: #fff; font: inherit; } .workspace__summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.8rem; margin-top: 1.5rem; } .conversation-readiness { display: grid; gap: 1rem; margin-top: 1rem; padding: 1.1rem; border: 1px solid #d9e5e0; border-radius: 1.1rem; background: linear-gradient(145deg,#f7faf8,#fff); } .conversation-readiness--ready { border-color: #bcd9ca; background: linear-gradient(145deg,#eef8f2,#fff); } .conversation-readiness--blocked { border-color: #ead5bd; background: linear-gradient(145deg,#fff8ef,#fff); } .conversation-readiness--loading { color: #6d8189; font-size: .76rem; } .conversation-readiness__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .conversation-readiness__head h3 { margin: .2rem 0; color: #294c59; } .conversation-readiness__head p { margin: 0; color: #6c8088; font-size: .75rem; } .readiness-state { flex: none; padding: .36rem .7rem; border-radius: 999px; font-size: .7rem; font-weight: 800; } .readiness-state--ready { color: #26694b; background: #dfeee5; } .readiness-state--blocked { color: #945426; background: #fae9d6; } .conversation-readiness__checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; } .readiness-check { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .65rem; min-width: 0; padding: .7rem .8rem; border: 1px solid #e2e9e6; border-radius: .78rem; background: rgba(255,255,255,.82); } .readiness-check__icon { display: grid; place-items: center; width: 1.55rem; height: 1.55rem; border-radius: 50%; color: #fff; background: #3a7d63; font-size: .72rem; font-weight: 900; } .readiness-check--blocked .readiness-check__icon { background: #b66d38; } .readiness-check--attention .readiness-check__icon { background: #8a7a39; } .readiness-check strong { display: block; color: #385864; font-size: .75rem; } .readiness-check p { margin: .16rem 0 0; color: #71848b; font-size: .68rem; line-height: 1.45; } .conversation-readiness__foot { margin: 0; color: #788990; font-size: .66rem; line-height: 1.55; } .story-source-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; } .metric { padding: 1rem; border-radius: 1rem; background: #edf3f0; } .metric > span { color: #6a7d86; font-size: 0.78rem; } .metric strong { display: block; margin-top: 0.35rem; color: #163348; font-size: 1.65rem; } .metric p { margin: 0.25rem 0 0; color: #72838b; font-size: 0.78rem; } .workspace__tabs { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 1.5rem 0 1rem; padding: 0.3rem; border-radius: 1rem; background: #eef3f1; } .tab-button { border-radius: 0.75rem; padding: 0.7rem 1rem; color: #647983; background: transparent; } .tab-button.active { color: #fff; background: #244d57; } .tab-button:hover { transform: none; } .workspace__inline-error { margin: 0 0 1rem; padding: 0.8rem 1rem; border-radius: 0.8rem; color: #8d422e; background: #fff0ea; } .workspace__action-message { margin: 1rem 0 0; padding: 0.8rem 1rem; border-radius: 0.8rem; color: #276246; background: #e5f3ea; } .workspace__readonly-note { margin: 0 0 1rem; padding: 0.8rem 1rem; border-radius: 0.8rem; color: #667982; background: #f0f4f2; font-size: 0.82rem; } .workspace__tools { display: grid; gap: 0.7rem; margin-bottom: 1rem; } .tool-form { display: grid; grid-template-columns: minmax(11rem, 1fr) minmax(10rem, 0.75fr) minmax(12rem, 1.25fr) auto; align-items: end; gap: 0.7rem; padding: 0.9rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #f7f9f8; } .tool-form > div strong, .tool-form > div span { display: block; } .tool-form > div strong { color: #284754; font-size: 0.88rem; } .tool-form > div span { margin-top: 0.2rem; color: #778990; font-size: 0.72rem; line-height: 1.45; } .tool-form input { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #ccd9d4; border-radius: 0.8rem; padding: 0.72rem 0.85rem; color: #183548; background: #fff; font: inherit; } .tool-form select { width: 100%; min-width: 0; } .tool-form__wide { min-width: 0; } .tool-form textarea, .profile-editor textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #ccd9d4; border-radius: 0.8rem; padding: 0.72rem 0.85rem; color: #183548; background: #fff; font: inherit; line-height: 1.5; resize: vertical; } .subject-create-form { grid-template-columns: repeat(3, minmax(0, 1fr)); } .subject-create-form > div:first-child { grid-column: 1 / -1; } .subject-create-form .tool-form__wide { grid-column: span 2; } .profile-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 0.65rem; margin: 1rem 0; padding: 1rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #f7faf8; } .profile-editor .section-title { grid-column: 1 / -1; } .profile-editor .section-title > div p { margin: 0.2rem 0 0; color: #778990; font-size: 0.7rem; line-height: 1.45; } .profile-editor input, .profile-editor select { width: 100%; min-width: 0; box-sizing: border-box; } .profile-editor__wide { grid-column: 1 / -1; } .profile-editor > button { justify-self: end; } .consent-confirm { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: 0.5rem !important; color: #566e79 !important; font-size: 0.72rem !important; font-weight: 500 !important; line-height: 1.45; } .consent-confirm input { width: auto; margin-top: 0.15rem; accent-color: #cb6d35; } .workspace__claim { margin-bottom: 1rem; } .row-actions { display: flex; flex: none; align-items: center; gap: 0.35rem; } .button-small { padding: 0.35rem 0.65rem; border-radius: 0.55rem; font-size: 0.7rem; } .button-danger { color: #934633; background: #fae8e3; } .status { display: inline-flex; align-items: center; min-height: 1.6rem; padding: 0.15rem 0.55rem; border-radius: 999px; color: #607580; background: #edf1ef; font-size: 0.68rem; font-weight: 800; white-space: nowrap; } .status.ready, .status.completed, .status.confirmed { color: #27704e; background: #e2f1e8; } .status.running, .status.uploading, .status.assigned, .status.downloading, .status.installing { color: #8a5a20; background: #fff0d8; } .status.paused, .status.failed, .status.retired, .status.rolled_back { color: #934633; background: #fae8e3; } .member-layout { display: grid; gap: 1rem; } .invitation-secret { display: grid; grid-template-columns: minmax(10rem, 0.8fr) minmax(14rem, 1.4fr) auto auto; align-items: center; gap: 0.6rem; padding: 0.9rem; border: 1px solid #e4bba4; border-radius: 1rem; background: #fff6f0; } .invitation-secret strong { color: #743e27; } .invitation-secret p { margin: 0.2rem 0 0; color: #8b6a58; font-size: 0.72rem; } .member-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .member-columns > section { padding: 1rem; border: 1px solid #dfe8e4; border-radius: 1rem; } .member-row { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; padding: 0.75rem 0; border-bottom: 1px solid #edf1ef; } .member-row:last-child { border-bottom: 0; } .member-row strong { color: #284754; font-size: 0.86rem; } .member-row p { margin: 0.2rem 0 0; color: #77878e; font-size: 0.74rem; } .member-row__actions { display: flex; flex: none; align-items: center; gap: 0.35rem; } .member-row__actions select { min-width: 6.8rem; padding-top: 0.45rem; padding-bottom: 0.45rem; } .workspace__split { display: grid; grid-template-columns: 15rem 1fr; min-height: 29rem; border: 1px solid #dfe8e4; border-radius: 1.1rem; overflow: hidden; } .resource-list { padding: 1rem; background: #f3f6f4; } .resource-list__title, .section-title, .conversation-filter { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .resource-list__title { margin-bottom: 0.7rem; color: #526b76; } .resource-list__title span, .section-title span { color: #7a8c94; font-size: 0.78rem; } .resource-button, .conversation-row { width: 100%; margin-top: 0.4rem; border-radius: 0.8rem; padding: 0.8rem; text-align: left; color: #34515f; background: transparent; } .resource-button:hover, .conversation-row:hover { transform: none; background: #e6eeea; } .resource-button.active, .conversation-row.active { color: #183548; background: #fff; box-shadow: 0 0.35rem 1rem rgba(24, 55, 66, 0.07); } .resource-button strong, .resource-button span { display: block; } .resource-button span { margin-top: 0.2rem; color: #7b8b92; font-size: 0.76rem; font-weight: 500; } .resource-detail { min-width: 0; padding: 1.4rem; } .resource-detail__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .resource-detail__head h3 { font-size: 1.65rem; } .resource-detail__head > div > p:last-child { margin: 0.4rem 0 0; color: #70828b; font-size: 0.84rem; } .permission { padding: 0.35rem 0.65rem; border-radius: 999px; color: #687c85; background: #edf1ef; font-size: 0.72rem; font-weight: 800; } .permission--write { color: #27704e; background: #e2f1e8; } .detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem; margin-top: 1.2rem; } .info { min-width: 0; padding: 0.75rem; border: 1px solid #e2eae6; border-radius: 0.8rem; } .info span, .info strong { display: block; } .info span { color: #7a8c94; font-size: 0.72rem; } .info strong { margin-top: 0.3rem; overflow: hidden; color: #284754; font-size: 0.88rem; text-overflow: ellipsis; white-space: nowrap; } .section-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.5rem; } .section-title { padding-bottom: 0.5rem; border-bottom: 1px solid #e2e9e6; } .data-row { display: flex; align-items: start; justify-content: space-between; gap: 0.7rem; padding: 0.75rem 0; border-bottom: 1px solid #edf1ef; } .data-row strong { color: #284754; font-size: 0.86rem; } .data-row p { margin: 0.2rem 0 0; color: #77878e; font-size: 0.75rem; line-height: 1.45; } .tag { flex: none; padding: 0.25rem 0.5rem; border-radius: 999px; color: #6d7f87; background: #edf1ef; font-size: 0.68rem; font-weight: 800; } .tag--confirmed, .tag--completed, .tag--active { color: #27704e; background: #e2f1e8; } .tag--pending, .tag--preparing, .tag--room_issued, .tag--starting_agent, .tag--stopping { color: #9a5a25; background: #fff0df; } .tag--rejected, .tag--failed, .tag--expired, .tag--revoked { color: #9b4936; background: #fae8e3; } .tag--used { color: #607580; background: #edf1ef; } .empty-copy { color: #84939a; font-size: 0.82rem; line-height: 1.6; } .empty-copy.padded { padding: 1rem; } .device-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; } .device-card { padding: 1.2rem; border: 1px solid #dfe8e4; border-radius: 1rem; } .device-card__head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.7rem; } .device-card__head strong, .device-card__head span { display: block; } .device-card__head > div span { margin-top: 0.15rem; color: #7b8b92; font-size: 0.76rem; } .presence-dot { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: #9aa7ab; box-shadow: 0 0 0 0.3rem #edf1ef; } .presence-dot.online { background: #4b9b72; box-shadow: 0 0 0 0.3rem #e2f1e8; } .sync-bar { display: flex; justify-content: space-between; margin-top: 1rem; padding: 0.75rem; border-radius: 0.8rem; color: #607580; background: #f3f6f4; font-size: 0.8rem; } .device-card__time { margin: 0.7rem 0 0; color: #7a8b92; font-size: 0.74rem; } .device-volume { margin-top: 0.75rem; padding: 0.8rem; border: 1px solid #dfe8e4; border-radius: 0.8rem; background: #fbfcfb; } .device-volume__head, .device-volume__meta { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; } .device-volume__head label { color: #395762; font-size: 0.78rem; font-weight: 800; } .device-volume__head strong { color: #27704e; font-size: 0.86rem; } .device-volume input[type="range"] { width: 100%; margin: 0.7rem 0 0.45rem; padding: 0; accent-color: #4b9b72; } .device-volume__meta { color: #71858e; font-size: 0.68rem; } .device-volume .row-actions { margin-top: 0.75rem; } .firmware-workspace { display: grid; gap: 1rem; } .firmware-tools .tool-form { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; } .firmware-tools .tool-form > div:first-child { grid-column: 1 / -1; } .firmware-tools .tool-form__wide { grid-column: span 2; } .firmware-tools .tool-form > button { justify-self: end; } .firmware-key-ledger { padding: 0.9rem; border: 1px solid #dbe6e1; border-radius: 0.9rem; background: #fbfcfb; } .firmware-key-ledger .section-title { margin-bottom: 0.75rem; } .firmware-key-ledger .section-title p { margin: 0.2rem 0 0; color: #71858e; font-size: 0.7rem; } .firmware-key-card { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; padding: 0.75rem 0.8rem; border: 1px solid #e0e8e4; border-radius: 0.8rem; background: #f8faf9; } .firmware-key-card > div:first-child { min-width: 0; } .firmware-key-card strong, .firmware-key-card code, .firmware-key-card p { display: block; } .firmware-key-card code { margin-top: 0.25rem; color: #536d77; font-size: 0.68rem; overflow-wrap: anywhere; } .firmware-key-card p { margin: 0.25rem 0 0; color: #7b8b92; font-size: 0.68rem; } .firmware-digest { grid-column: span 3; min-width: 0; padding: 0.7rem 0.85rem; border: 1px dashed #b9cbc3; border-radius: 0.8rem; background: #fff; } .firmware-digest span, .firmware-digest strong, .firmware-digest code { display: block; } .firmware-digest span { color: #71858e; font-size: 0.7rem; } .firmware-digest strong { margin-top: 0.2rem; color: #294956; font-size: 0.78rem; } .firmware-digest code { overflow: hidden; margin-top: 0.25rem; color: #73858c; font-size: 0.68rem; text-overflow: ellipsis; white-space: nowrap; } .firmware-device-select { grid-column: span 3; display: flex; flex-wrap: wrap; gap: 0.55rem 1rem; min-width: 0; margin: 0; padding: 0.7rem 0.85rem; border: 1px solid #d4dfda; border-radius: 0.8rem; background: #fff; } .firmware-device-select legend { padding: 0 0.35rem; color: #71858e; font-size: 0.7rem; font-weight: 700; } .firmware-device-select label { display: flex; align-items: center; gap: 0.35rem; color: #536d77; font-size: 0.74rem; } .firmware-device-select input { width: auto; accent-color: #cb6d35; } .firmware-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .panel-section { min-width: 0; padding: 1.15rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; } .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 0.8rem; } .section-heading h3 { margin-top: 0.1rem; color: #244754; font-size: 1.05rem; } .section-heading > span { color: #71858e; font-size: 0.74rem; } .stack-list { display: grid; gap: 0.55rem; } .stack-card { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; width: 100%; box-sizing: border-box; padding: 0.75rem 0.8rem; border: 1px solid #e0e8e4; border-radius: 0.8rem; color: #294956; background: #f8faf9; text-align: left; } .stack-card > div:first-child strong, .stack-card > div:first-child span { display: block; } .stack-card > div:first-child strong { font-size: 0.8rem; } .stack-card > div:first-child span, .stack-card .row-actions > span:not(.status), .stack-card code { margin-top: 0.2rem; color: #7b8b92; font-size: 0.68rem; } .stack-card--button:hover, .stack-card--button.selected { transform: none; border-color: #9fbaae; background: #eef5f1; } .firmware-recovery-form { display: grid; gap: 0.75rem; margin-top: 0.9rem; padding: 0.9rem; border: 1px solid #d7e3dd; border-radius: 0.85rem; background: #f7faf8; } .firmware-recovery-form > div:first-child p { margin: 0.25rem 0 0; color: #71858e; font-size: 0.72rem; } .firmware-recovery-form label { display: grid; gap: 0.35rem; color: #405b65; font-size: 0.75rem; font-weight: 700; } .firmware-recovery-form label small { color: #71858e; font-size: 0.68rem; font-weight: 400; } .firmware-recovery-form .firmware-digest { grid-column: auto; } .firmware-recovery-form .firmware-digest code { overflow-wrap: anywhere; white-space: normal; } .firmware-recovery-form .workspace__action-message, .firmware-recovery-form .workspace__inline-error { margin: 0; } .firmware-impact { display: grid; gap: 0.75rem; margin-top: 0.9rem; padding: 0.9rem; border: 1px solid #d4e2dc; border-radius: 0.85rem; background: #f8faf9; } .firmware-impact .section-title p { margin: 0.2rem 0 0; color: #71858e; font-size: 0.68rem; overflow-wrap: anywhere; } .firmware-impact__metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; } .firmware-impact__metrics article { min-width: 0; padding: 0.65rem 0.7rem; border: 1px solid #e0e8e4; border-radius: 0.7rem; background: #fff; } .firmware-impact__metrics span, .firmware-impact__metrics strong, .firmware-impact__metrics small { display: block; } .firmware-impact__metrics span { color: #71858e; font-size: 0.66rem; } .firmware-impact__metrics strong { margin: 0.12rem 0; color: #294956; font-size: 1.05rem; } .firmware-impact__metrics small { color: #71858e; font-size: 0.64rem; line-height: 1.45; } .firmware-impact__devices { display: grid; gap: 0.45rem; } .firmware-impact__devices article { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0.75rem; padding: 0.65rem 0.7rem; border: 1px solid #e0e8e4; border-radius: 0.7rem; background: #fff; } .firmware-impact__devices strong, .firmware-impact__devices code, .firmware-impact__devices span, .firmware-impact__devices small { display: block; } .firmware-impact__devices code { margin: 0.15rem 0; color: #607580; font-size: 0.64rem; overflow-wrap: anywhere; } .firmware-impact__devices span, .firmware-impact__devices small { color: #71858e; font-size: 0.64rem; } .firmware-impact__devices > article > div:last-child { text-align: right; } .firmware-impact__devices > article > div:last-child strong { margin: 0.2rem 0; color: #395762; font-size: 0.7rem; } .firmware-detail__actions { display: flex; align-items: end; justify-content: flex-end; gap: 0.55rem; margin-bottom: 1rem; padding: 0.8rem; border-radius: 0.8rem; background: #f5f8f6; } .firmware-detail__actions label { display: grid; gap: 0.3rem; margin-right: auto; } .firmware-detail__actions label span { color: #71858e; font-size: 0.7rem; font-weight: 700; } .firmware-assignment-list { display: grid; gap: 0.6rem; } .firmware-assignment { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(15rem, 1.4fr); align-items: center; gap: 1rem; padding: 0.8rem; border: 1px solid #e0e8e4; border-radius: 0.8rem; } .firmware-assignment > div:first-child strong, .firmware-assignment > div:first-child span { display: block; } .firmware-assignment > div:first-child strong { color: #294956; font-size: 0.8rem; } .firmware-assignment > div:first-child span { margin-top: 0.2rem; color: #7b8b92; font-size: 0.68rem; } .firmware-progress > div { display: flex; justify-content: space-between; color: #607580; font-size: 0.72rem; } .firmware-progress progress { width: 100%; height: 0.55rem; margin-top: 0.35rem; accent-color: #4b9b72; } .firmware-progress small { display: block; margin-top: 0.25rem; color: #71858e; font-size: 0.66rem; line-height: 1.35; } .firmware-event-timeline { grid-column: 1 / -1; display: grid; gap: 0.35rem; margin: 0; padding: 0.65rem 0 0; border-top: 1px solid #edf1ef; list-style: none; } .firmware-event-timeline li { display: grid; grid-template-columns: 8rem minmax(12rem, 1fr) auto; align-items: baseline; gap: 0.55rem; color: #536c77; font-size: 0.67rem; } .firmware-event-timeline time { color: #829198; font-variant-numeric: tabular-nums; } .firmware-event-timeline code { max-width: 18rem; overflow-wrap: anywhere; color: #476b5b; font-size: 0.62rem; } .firmware-event-timeline__empty { grid-column: 1 / -1; margin: 0; padding-top: 0.55rem; border-top: 1px solid #edf1ef; color: #8a989e; font-size: 0.66rem; } .upload-queue { margin-top: 0.65rem; padding: 0.7rem 0.75rem; border: 1px solid #dfe8e4; border-radius: 0.75rem; background: #f5f8f6; } .upload-queue > div { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; } .upload-queue span { color: #71858e; font-size: 0.68rem; } .upload-queue strong { color: #395762; font-size: 0.72rem; } .upload-queue p { margin: 0.35rem 0 0; color: #71858e; font-size: 0.66rem; line-height: 1.45; } .upload-queue--pending { border-color: #edd5aa; background: #fff8e9; } .upload-queue--pending strong { color: #8a5a20; } .upload-queue--failed { border-color: #e7c4bb; background: #faece8; } .upload-queue--failed strong, .upload-queue--failed p { color: #934633; } .conversation-layout { display: grid; grid-template-columns: 0.9fr 1.1fr; min-height: 31rem; border: 1px solid #dfe8e4; border-radius: 1.1rem; overflow: hidden; } .conversation-list { border-right: 1px solid #dfe8e4; background: #f6f8f7; } .conversation-filter { padding: 1rem; } .conversation-filter__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; } .conversation-filter label { width: auto; min-width: 0; } .conversation-filter label:first-child { grid-column: 1 / -1; } .conversation-filter select, .conversation-filter input { min-width: 0; width: 100%; box-sizing: border-box; } .conversation-filter__summary { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; margin-top: 0.7rem; } .conversation-filter__summary > span { color: #7b8b92; font-size: 0.72rem; } .conversation-list__error { margin: 0 1rem 0.8rem; padding: 0.65rem 0.75rem; border-radius: 0.7rem; color: #934633; background: #fae8e3; font-size: 0.72rem; } .conversation-list__more { display: flex; justify-content: center; padding: 0.9rem; border-top: 1px solid #e6ece9; } .conversation-list__more button { width: 100%; } .conversation-row { display: flex; align-items: center; justify-content: space-between; margin: 0; border-radius: 0; border-top: 1px solid #e6ece9; } .conversation-row div strong, .conversation-row div span { display: block; } .conversation-row div span { margin-top: 0.25rem; color: #7b8b92; font-size: 0.74rem; font-weight: 500; } .conversation-detail { padding: 1.4rem; } .timeline { margin-top: 1.3rem; } .timeline h4 { margin-bottom: 0.6rem; } .timeline__item { display: grid; grid-template-columns: auto 1fr; gap: 0.8rem; min-height: 3.4rem; } .timeline__item > span { width: 0.55rem; height: 0.55rem; margin-top: 0.25rem; border-radius: 50%; background: #5c9b7a; box-shadow: 0 0 0 0.25rem #e5f0ea; } .timeline__item strong { color: #34515f; font-size: 0.82rem; } .timeline__item p { margin: 0.2rem 0 0; color: #809097; font-size: 0.72rem; } .content-block { margin-top: 1.25rem; } .recording-block { padding: 1rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fbfcfb; } .recording-notice { margin: 0.7rem 0 0; padding: 0.75rem; border-radius: 0.75rem; color: #647982; background: #eef3f1; font-size: 0.76rem; line-height: 1.55; } .recording-notice--restricted { color: #7f571f; background: #fff2dc; } .recording-notice--error { color: #934633; background: #fae8e3; } .recording-capabilities { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; margin-top: 0.7rem; } .recording-capabilities small { flex: 1 1 16rem; color: #7b8b92; font-size: 0.68rem; text-align: right; } .recording-segments { display: grid; gap: 0.55rem; margin-top: 0.75rem; } .recording-segment { display: grid; grid-template-columns: minmax(10rem, 1fr) auto; align-items: center; gap: 0.6rem; padding: 0.75rem; border: 1px solid #e2e9e6; border-radius: 0.8rem; background: #fff; } .recording-segment > div:first-child strong, .recording-segment > div:first-child span { display: block; } .recording-segment > div:first-child strong { color: #294956; font-size: 0.78rem; } .recording-segment > div:first-child span { margin-top: 0.2rem; color: #7b8b92; font-size: 0.68rem; } .recording-audio { grid-column: 1 / -1; width: 100%; height: 2.25rem; } .recording-admin { display: grid; gap: 0.8rem; margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px dashed #d6e1dc; } .recording-grant-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 0.55rem; } .recording-grant-form > div { grid-column: 1 / -1; } .recording-grant-form > div strong, .recording-grant-form > div span { display: block; } .recording-grant-form > div strong { color: #294956; font-size: 0.8rem; } .recording-grant-form > div span { margin-top: 0.2rem; color: #7b8b92; font-size: 0.67rem; line-height: 1.4; } .recording-grant-form label span { font-size: 0.66rem; } .recording-grant-form input, .recording-grant-form select { width: 100%; min-width: 0; box-sizing: border-box; padding: 0.55rem 0.6rem; font-size: 0.72rem; } .recording-grant-form button { justify-self: end; padding: 0.6rem 0.7rem; font-size: 0.7rem; white-space: nowrap; } .recording-grants > article { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; padding: 0.55rem 0; border-bottom: 1px solid #e8eeeb; } .recording-grants > article strong, .recording-grants > article span { display: block; } .recording-grants > article strong { color: #395762; font-size: 0.73rem; } .recording-grants > article span { margin-top: 0.2rem; color: #7b8b92; font-size: 0.66rem; } .summary-card { margin-top: 0.65rem; padding: 0.8rem; border-radius: 0.8rem; background: #f2f6f4; } .summary-card strong { color: #294956; font-size: 0.82rem; } .summary-card p { margin: 0.35rem 0; color: #506a75; font-size: 0.82rem; line-height: 1.6; white-space: pre-wrap; } .summary-card small { color: #829198; } .turn-row { margin-top: 0.6rem; padding: 0.75rem 0.85rem; border: 1px solid #e0e9e5; border-radius: 0.85rem; } .turn-row--subject { margin-right: 2rem; background: #eef6f1; } .turn-row--agent { margin-left: 2rem; background: #f7f5f1; } .turn-row > div { display: flex; justify-content: space-between; gap: 1rem; } .turn-row strong { color: #294956; font-size: 0.8rem; } .turn-row span { color: #829198; font-size: 0.7rem; } .turn-row p { margin: 0.35rem 0 0; color: #526d77; font-size: 0.82rem; line-height: 1.55; } .story-layout { display: grid; grid-template-columns: 17rem 1fr; min-height: 34rem; border: 1px solid #dfe8e4; border-radius: 1.1rem; overflow: hidden; } .story-sidebar { padding: 1rem; border-right: 1px solid #dfe8e4; background: #f5f8f6; } .story-sidebar > label { display: block; margin-bottom: 1rem; } .story-sidebar > label select { width: 100%; } .story-button { width: 100%; padding: 0.75rem; border-radius: 0.8rem; text-align: left; color: #385561; background: transparent; } .story-button:hover { transform: none; background: #e7efeb; } .story-button.active { background: #fff; box-shadow: 0 0.35rem 1rem rgba(24, 55, 66, 0.07); } .story-button strong, .story-button span { display: block; } .story-button strong { font-size: 0.82rem; line-height: 1.45; } .story-button span { margin-top: 0.25rem; color: #7c8d94; font-size: 0.7rem; } .memory-title { margin-top: 1.3rem; } .memory-search { width: 100%; box-sizing: border-box; margin-top: 0.65rem; border: 1px solid #ccd9d4; border-radius: 0.7rem; padding: 0.6rem 0.7rem; color: #183548; background: #fff; font: inherit; font-size: 0.76rem; } .memory-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .45rem; padding: 0.7rem 0; border-bottom: 1px solid #e1e9e5; } .memory-row.selected { margin: 0 -.45rem; padding: .7rem .45rem; border-radius: .7rem; background: #e7efeb; } .memory-row__select { min-width: 0; padding: 0; color: inherit; background: transparent; text-align: left; } .memory-row__select:hover { transform: none; background: transparent; } .memory-row strong, .memory-row span { display: block; } .memory-row strong { overflow: hidden; color: #385561; font-size: 0.78rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; } .memory-row span { margin-top: 0.25rem; color: #7c8d94; font-size: 0.68rem; } .story-detail { min-width: 0; padding: 1.4rem; } .story-editor, .story-reason { display: block; margin-top: 1rem; color: #607580; font-size: 0.76rem; font-weight: 700; } .story-editor textarea, .story-reason input { width: 100%; box-sizing: border-box; margin-top: 0.35rem; border: 1px solid #ccd9d4; border-radius: 0.8rem; padding: 0.85rem; color: #183548; background: #fff; font: inherit; line-height: 1.65; resize: vertical; } .story-editor textarea:disabled { color: #526a74; background: #f4f7f5; } .story-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.8rem; } .memory-management { min-width: 0; } .memory-management__content { margin-top: 1rem; padding: 1rem; border: 1px solid #dfe8e4; border-radius: .9rem; background: #f7faf8; } .memory-management__content span, .memory-management__content small { color: #71858e; font-size: .72rem; } .memory-management__content p { margin: .45rem 0; color: #2f4f5b; font-size: .9rem; line-height: 1.7; white-space: pre-wrap; } .memory-management__tabs { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; padding: .4rem; border-radius: .8rem; background: #eef3f1; } .memory-management__tabs button { padding: .55rem .8rem; color: #526c77; background: transparent; box-shadow: none; } .memory-management__tabs button:hover { transform: none; background: #fff; } .memory-management__tabs button.active { color: #fff; background: #245f51; } .memory-management__tabs button.danger { color: #934633; } .memory-management__tabs button.danger.active { color: #fff; background: #a84f39; } .memory-management__form { display: grid; gap: .8rem; margin-top: .8rem; padding: 1rem; border: 1px solid #dfe8e4; border-radius: .9rem; background: #fff; } .memory-management__form > p { margin: 0; color: #657b84; font-size: .78rem; line-height: 1.6; } .memory-management__form label:not(.consent-confirm) { display: grid; gap: .35rem; color: #607580; font-size: .76rem; font-weight: 700; } .memory-management__form input, .memory-management__form textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #ccd9d4; border-radius: .75rem; padding: .75rem .8rem; color: #183548; background: #fff; font: inherit; } .memory-management__form textarea { resize: vertical; line-height: 1.65; } .memory-management__form > button { justify-self: end; } .memory-management__form--delete { border-color: #e4b8ad; background: #fff7f4; } .memory-management__form--delete > p { color: #815d54; } .memory-management__form--delete > button:not(:disabled) { color: #fff; background: #a84f39; } .source-row { position: relative; padding: 0.75rem 0; border-bottom: 1px solid #edf1ef; } .source-row strong { color: #34515f; font-size: 0.78rem; } .source-row p { margin: 0.3rem 0; color: #697d86; font-size: 0.78rem; line-height: 1.55; } .fact-review-card { padding: 1rem; border: 1px solid #eadfd9; border-radius: 14px; background: #fff; box-shadow: 0 8px 20px rgba(66, 48, 39, 0.04); } .fact-review-card + .fact-review-card { margin-top: 0.75rem; } .fact-review-card > p { margin: 0.8rem 0; color: #334750; line-height: 1.65; } .fact-review-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; } .fact-review-card__head > div { display: grid; gap: 0.2rem; } .fact-review-card__head strong { color: #263d47; } .fact-review-card__head span { color: #7b8b91; font-size: 0.76rem; } .fact-review-card__meta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 0.8rem; color: #71838a; font-size: 0.75rem; } .fact-review-reason, .fact-review-form label { display: grid; gap: 0.35rem; color: #536970; font-size: 0.75rem; } .fact-review-reason input, .fact-review-form input, .fact-review-form textarea, .fact-review-form select { width: 100%; } .fact-review-form { display: grid; gap: 0.75rem; margin-top: 0.9rem; } .fact-review-form textarea { min-height: 7rem; resize: vertical; } .state-panel { display: grid; place-content: center; min-height: 12rem; padding: 2rem; text-align: center; } .state-panel strong { color: #294956; } .state-panel p { max-width: 30rem; margin: 0.5rem auto 0; color: #7a8b92; line-height: 1.6; } .state-panel button { justify-self: center; margin-top: 0.8rem; } .privacy-layout { display: grid; gap: 1rem; } .privacy-toolbar { display: grid; grid-template-columns: minmax(11rem, .7fr) minmax(18rem, 1.8fr) auto; align-items: end; gap: 1rem; padding: 1.2rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #f8faf9; } .privacy-toolbar label { display: grid; min-width: 0; gap: 0.35rem; } .privacy-toolbar select { width: 100%; min-width: 0; } .privacy-toolbar label span, .privacy-toolbar p { color: #71858e; font-size: 0.78rem; } .privacy-toolbar p { margin: 0.3rem 0 0; line-height: 1.55; } .privacy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 0.9rem; } .privacy-card { padding: 1.2rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; box-shadow: 0 0.45rem 1.2rem rgba(24, 55, 66, 0.05); } .privacy-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.8rem; } .privacy-card__head div { display: grid; gap: 0.25rem; } .privacy-card__head div span, .privacy-card > p { color: #71858e; font-size: 0.76rem; } .privacy-counts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.5rem; margin: 1rem 0; } .privacy-counts .info { min-width: 0; } .privacy-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; } .privacy-exports { padding: 1.2rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; } .privacy-delete-confirmation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; padding: 1.2rem; border: 1px solid #e4b8ad; border-radius: 1rem; background: #fff7f4; box-shadow: 0 .6rem 1.5rem rgba(120, 54, 38, .08); } .privacy-delete-confirmation__head, .privacy-delete-confirmation > p, .privacy-delete-confirmation__error, .privacy-delete-confirmation__actions { grid-column: 1 / -1; } .privacy-delete-confirmation__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; } .privacy-delete-confirmation__head h4 { margin-top: .15rem; color: #713d31; font-size: 1.05rem; } .privacy-delete-confirmation > p { margin: 0; color: #815d54; font-size: .78rem; line-height: 1.6; } .privacy-delete-confirmation label { display: grid; min-width: 0; gap: .35rem; color: #744b42; font-size: .76rem; font-weight: 700; } .privacy-delete-confirmation textarea, .privacy-delete-confirmation input { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #d8b7af; border-radius: .75rem; padding: .7rem .8rem; color: #412d29; background: #fff; font: inherit; } .privacy-delete-confirmation textarea { min-height: 5.2rem; resize: vertical; } .privacy-delete-confirmation input[aria-invalid="true"] { border-color: #b45d49; box-shadow: 0 0 0 .18rem rgba(180, 93, 73, .12); } .privacy-delete-confirmation__error { color: #934633 !important; font-weight: 700; } .privacy-delete-confirmation__actions { display: flex; justify-content: flex-end; gap: .55rem; } .privacy-delete-confirmation__actions button[type="submit"]:not(:disabled) { color: #fff; background: #a84f39; box-shadow: 0 .35rem .8rem rgba(139, 59, 40, .18); } .ops-workspace { margin-top: 1rem; padding: 2rem; border: 1px solid #dce7e2; border-radius: 1.5rem; background: rgba(255,255,255,.9); box-shadow: 0 1.2rem 3rem rgba(24,55,66,.08); } .ops-workspace__head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.2rem; } .ops-workspace__head h2 { margin: .25rem 0; } .ops-workspace__head p { margin: 0; color: #6e828b; line-height: 1.55; } .ops-workspace__head label { display: grid; min-width: 18rem; gap: .35rem; color: #657982; font-size: .76rem; font-weight: 700; } .ops-workspace select, .ops-workspace input, .ops-workspace textarea { width: 100%; box-sizing: border-box; border: 1px solid #cbd9d3; border-radius: .75rem; padding: .7rem .8rem; color: #183548; background: #fff; font: inherit; } .ops-workspace textarea { resize: vertical; font-family: "Cascadia Mono", Consolas, monospace; font-size: .76rem; line-height: 1.55; } .ops-config-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: .8rem; margin: 1rem 0; padding: 1.2rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #f7faf8; } .ops-config-form label { display: grid; min-width: 0; gap: .35rem; color: #657982; font-size: .76rem; font-weight: 700; } .ops-config-form__intro, .ops-config-form__wide { grid-column: 1 / -1; } .ops-config-form__intro strong, .ops-config-form__intro span { display: block; } .ops-config-form__intro strong { color: #284754; } .ops-config-form__intro span { margin-top: .2rem; color: #778990; font-size: .74rem; } .ops-bundle-composer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; min-width: 0; margin: 0; padding: 1rem; border: 1px solid #d9e4df; border-radius: .85rem; background: #fff; } .ops-bundle-composer legend { padding: 0 .35rem; color: #284754; font-size: .78rem; font-weight: 800; } .ops-bundle-composer > small { grid-column: 1 / -1; color: #70848d; font-size: .72rem; line-height: 1.5; } .ops-bundle-composer > small.ops-bundle-composer__warning { color: #9a4c2d; } .ops-config-form__note { margin: 0; padding: .75rem .85rem; border-radius: .75rem; color: #617780; background: #edf4f1; font-size: .74rem; line-height: 1.5; } .ops-config-form button { justify-self: end; } .ops-gate-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .ops-gate-card { display: grid; align-content: start; gap: .65rem; padding: 1rem; border: 1px solid #dfe8e4; border-radius: 1rem; background: #f7faf8; } .ops-gate-card > p { margin: -.35rem 0 0; color: #71858d; font-size: .73rem; } .ops-gate-card label { display: grid; gap: .3rem; color: #657982; font-size: .74rem; font-weight: 700; } .ops-gate-card button { justify-self: start; } .ops-gate-card small { color: #70848d; } .ops-ledger-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .ops-ledger { overflow: hidden; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; } .ops-ledger > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid #e6ece9; background: #f4f8f6; } .ops-ledger > div span, .ops-ledger > p { color: #71858d; font-size: .72rem; } .ops-ledger > p { margin: 0; padding: 1rem; } .ops-ledger ul { max-height: 15rem; overflow: auto; margin: 0; padding: 0; list-style: none; } .ops-ledger li { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .7rem 1rem; border-bottom: 1px solid #edf1ef; color: #637a83; font-size: .72rem; } .ops-ledger li:last-child { border-bottom: 0; } .ops-ledger li > span:first-child { display: grid; min-width: 0; gap: .15rem; } .ops-ledger li small { overflow-wrap: anywhere; color: #71858d; } .external-dependency-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; } .external-dependency-grid .diagnostic-card { margin: 0; } .ops-rollout-panel { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: end; gap: .8rem; margin: 1rem 0; padding: 1rem; border: 1px solid #d6e4de; border-radius: 1rem; background: #f0f7f3; } .ops-rollout-panel > div, .ops-rollout-panel__reason { grid-column: 1 / -1; } .ops-rollout-panel > div p { margin: .25rem 0 0; color: #71858d; font-size: .74rem; } .ops-rollout-panel label { display: grid; gap: .35rem; color: #657982; font-size: .74rem; font-weight: 700; } .ops-version-list { margin-top: 1rem; } .ops-version-group { margin-top: .8rem; overflow: hidden; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; } .ops-version-group > div:first-child { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border-bottom: 1px solid #e5ece8; background: #f4f8f6; } .ops-version-group > div:first-child span { color: #70848d; font-size: .75rem; } .ops-version { display: grid; grid-template-columns: minmax(14rem,.8fr) minmax(20rem,1.6fr) auto; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 1px solid #edf1ef; } .ops-version:last-child { border-bottom: 0; } .ops-version__summary { display: grid; gap: .25rem; } .ops-version__summary span, .ops-version__summary small { color: #70848d; font-size: .73rem; line-height: 1.45; } .ops-version details summary { color: #3c5d69; font-size: .76rem; cursor: pointer; } .ops-diff { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .5rem; } .ops-diff pre { max-height: 14rem; overflow: auto; margin: 0; padding: .6rem; border-radius: .55rem; color: #395965; background: #eef4f1; font-size: .68rem; white-space: pre-wrap; } .ops-version details p { margin: .4rem 0 0; color: #72858d; font-size: .7rem; } .ops-version__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; } .ops-version-transition { grid-column: 1 / -1; width: 100%; } .ops-version-transition__scope { grid-column: 1 / -1; margin: 0; } .ops-evidence-list { grid-column: 1 / -1; display: grid; gap: .35rem; margin: 0; padding: .6rem .8rem; border-radius: .7rem; background: #f4f8f6; list-style: none; } .ops-evidence-list li { display: flex; gap: .7rem; color: #637a83; font-size: .72rem; } .ops-evidence-list strong { color: #2d725b; } .ops-evaluation-editor { grid-column: 1 / -1; margin-top: 0; } .ops-evaluation-editor h4 { margin: .1rem 0 0; color: #4e4a3c; } .ops-billing { background: linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,251,249,.96)); } .billing-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .billing-summary-grid article { display: grid; gap: .3rem; padding: 1rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f4f8f6; } .billing-summary-grid span, .billing-summary-grid small { color: #71858d; font-size: .72rem; } .billing-summary-grid strong { color: #234957; font-size: 1.3rem; } .billing-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: .8rem; margin: 1rem 0; padding: 1.2rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f7faf8; } .billing-form label { display: grid; min-width: 0; gap: .35rem; color: #657982; font-size: .76rem; font-weight: 700; } .billing-form__intro, .billing-form__wide { grid-column: 1 / -1; } .billing-form__intro { display: grid; gap: .2rem; } .billing-form__intro span { color: #71858d; font-size: .74rem; } .billing-form button { justify-self: end; } .billing-form--quota { border-color: #d5e1e9; background: #f5f8fa; } .billing-rate-table { overflow-x: auto; border: 1px solid #dfe8e4; border-radius: .8rem; background: #fff; } .billing-rate-table > div, .billing-rate-table label { display: grid; grid-template-columns: minmax(7rem,.8fr) minmax(10rem,1.3fr) minmax(7rem,.8fr) minmax(9rem,.9fr); align-items: center; gap: .5rem; padding: .55rem .7rem; } .billing-rate-table > div { color: #71858d; background: #edf4f1; font-size: .7rem; font-weight: 700; } .billing-rate-table label { border-top: 1px solid #edf1ef; } .billing-rate-table label strong { color: #3d5e69; font-size: .72rem; } .billing-rate-table input { padding: .52rem .6rem; font-size: .72rem; } .billing-ledger-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .billing-ledger, .billing-policy-list { overflow: hidden; border: 1px solid #dfe8e4; border-radius: 1rem; background: #fff; } .billing-ledger > div, .billing-policy-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid #e6ece9; background: #f4f8f6; } .billing-ledger > div span, .billing-policy-list > div span, .billing-ledger > p, .billing-policy-list > p { color: #71858d; font-size: .72rem; } .billing-ledger > p, .billing-policy-list > p { margin: 0; padding: 1rem; } .billing-ledger ul, .billing-policy-list ul { max-height: 19rem; overflow: auto; margin: 0; padding: 0; list-style: none; } .billing-ledger li, .billing-policy-list li { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .75rem 1rem; border-bottom: 1px solid #edf1ef; color: #637a83; font-size: .72rem; } .billing-ledger li:last-child, .billing-policy-list li:last-child { border-bottom: 0; } .billing-ledger li > span:first-child, .billing-policy-list li > span:first-child { display: grid; min-width: 0; gap: .2rem; } .billing-ledger small, .billing-policy-list small { overflow-wrap: anywhere; color: #71858d; } .billing-ledger b { color: #2d725b; white-space: nowrap; } .conversation-usage { display: grid; grid-template-columns: minmax(12rem,.8fr) minmax(16rem,1.4fr); gap: 1rem; margin: 1rem 0; padding: 1rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f4f8f6; } .conversation-usage > div { display: grid; align-content: start; gap: .25rem; } .conversation-usage > div span, .conversation-usage small, .conversation-usage > p { color: #71858d; font-size: .72rem; } .conversation-usage > div strong { color: #245567; font-size: 1.15rem; } .conversation-usage ul { margin: 0; padding: 0; list-style: none; } .conversation-usage li { display: flex; justify-content: space-between; gap: .8rem; padding: .35rem 0; border-bottom: 1px solid #e3ebe7; color: #607781; font-size: .72rem; } .conversation-usage li:last-child { border-bottom: 0; } .conversation-usage li strong { color: #2d725b; white-space: nowrap; } .conversation-usage > p { margin: 0; } .ops-alerts { background: linear-gradient(145deg,rgba(255,255,255,.97),rgba(248,250,249,.97)); } .ops-diagnostics { background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(245,250,252,.98)); } .diagnostic-search { display: grid; grid-template-columns: minmax(12rem,.45fr) minmax(20rem,1fr) auto; align-items: end; gap: .8rem; margin: 1rem 0; padding: 1rem; border: 1px solid #d9e6e7; border-radius: 1rem; background: #f5f9fa; } .diagnostic-search label { display: grid; gap: .35rem; color: #657982; font-size: .76rem; font-weight: 700; } .diagnostic-results { display: grid; gap: .8rem; margin-top: 1rem; } .diagnostic-card { padding: 1rem; border: 1px solid #dce7e7; border-radius: 1rem; background: #fff; } .diagnostic-card__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .diagnostic-card__head > div { display: grid; gap: .25rem; } .diagnostic-card__head strong { color: #284a59; overflow-wrap: anywhere; } .diagnostic-card__head span { color: #71858d; font-size: .74rem; } .diagnostic-card dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 1rem 0; } .diagnostic-card dl div { min-width: 0; padding: .7rem; border-radius: .7rem; background: #f5f8f8; } .diagnostic-card dt { color: #71858d; font-size: .68rem; } .diagnostic-card dd { margin: .25rem 0 0; color: #355967; font: .72rem/1.5 "Cascadia Mono",Consolas,monospace; overflow-wrap: anywhere; } .sensitive-access-request { display: grid; grid-template-columns: 1.2fr .8fr; gap: .8rem 1rem; margin-top: 1rem; padding: 1rem; border: 1px solid #e4d5b8; border-radius: 1rem; background: #fffaf0; } .sensitive-access-request__head, .sensitive-access-request > p, .sensitive-access-request > label:first-of-type, .sensitive-access-request__actions { grid-column: 1 / -1; } .sensitive-access-request__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .sensitive-access-request__head h3 { margin-top: .1rem; color: #4e4a3c; } .sensitive-access-request > p { margin: 0; color: #746b58; font-size: .75rem; line-height: 1.6; } .sensitive-access-request > p strong { overflow-wrap: anywhere; color: #4d5e62; } .sensitive-access-request label, .sensitive-access-request fieldset { display: grid; gap: .35rem; color: #657982; font-size: .72rem; font-weight: 700; } .sensitive-access-request textarea { min-height: 5rem; resize: vertical; } .sensitive-access-request fieldset { grid-template-columns: 1fr; margin: 0; padding: .75rem; border: 1px solid #ded7c8; border-radius: .7rem; background: rgba(255,255,255,.7); } .sensitive-access-request fieldset legend { padding: 0 .3rem; } .sensitive-access-request fieldset label { display: flex; align-items: center; gap: .45rem; font-weight: 600; } .sensitive-access-request fieldset input { width: auto; accent-color: #c56a32; } .sensitive-access-request__actions { display: flex; justify-content: flex-end; gap: .5rem; } .controlled-operation--danger { border-color: #e8c3ba; background: #fff7f4; } .controlled-operation__confirmation { grid-column: 1 / -1; display: flex !important; align-items: flex-start; gap: .55rem !important; padding: .75rem; border: 1px solid #e4d5b8; border-radius: .7rem; background: rgba(255,255,255,.75); font-weight: 600 !important; line-height: 1.5; } .controlled-operation__confirmation input { flex: 0 0 auto; width: auto; margin-top: .12rem; accent-color: #b64f3f; } form[aria-label="联调问题流转编辑"] > label { grid-column: 1 / -1; } form[aria-label="联调问题流转编辑"] label small { color: #7b898d; font-weight: 500; line-height: 1.5; } .integration-issues { display: grid; gap: .8rem; } .integration-issues .section-heading { align-items: end; } .integration-issues .section-heading p { margin: .25rem 0 0; color: #71858d; font-size: .74rem; } .issue-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; } .issue-summary-grid article { display: grid; gap: .25rem; padding: 1rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f5f8f7; } .issue-summary-grid span, .issue-summary-grid small { color: #71858d; font-size: .72rem; } .issue-summary-grid strong { color: #234957; font-size: 1.3rem; } .issue-summary-grid .issue-gate-pass { border-color: #b8ddcd; background: #f1faf6; } .issue-summary-grid .issue-gate-blocked { border-color: #efc3bd; background: #fff5f3; } .issue-summary-grid .issue-gate-blocked strong { color: #a43f35; } .integration-issue-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: .7rem; padding: 1rem; border: 1px solid #d9e6e7; border-radius: 1rem; background: #f5f9fa; } .integration-issue-form label { display: grid; gap: .35rem; color: #657982; font-size: .72rem; font-weight: 700; } .integration-issue-form label:first-child { grid-column: 1 / -1; } .integration-issue-form fieldset { min-width: 0; margin: 0; padding: .75rem; border: 1px solid #d9e6e7; border-radius: .7rem; } .integration-issue-form .checkbox-label { display: flex; align-items: center; gap: .45rem; min-width: 0; overflow-wrap: anywhere; } .integration-issue-form .checkbox-label input { flex: 0 0 auto; width: auto; } .integration-issue-form textarea { min-height: 5rem; resize: vertical; } .integration-issue-form button { justify-self: end; } .integration-issue-card > p { margin: .7rem 0 0; color: #506c77; font-size: .76rem; line-height: 1.6; white-space: pre-wrap; } .alert-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .alert-summary-grid article { display: grid; gap: .25rem; padding: 1rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f5f8f7; } .alert-summary-grid span, .alert-summary-grid small { color: #71858d; font-size: .72rem; } .alert-summary-grid strong { color: #234957; font-size: 1.35rem; } .alert-queue-layout { display: grid; grid-template-columns: minmax(20rem,.85fr) minmax(25rem,1.15fr); min-height: 28rem; overflow: hidden; border: 1px solid #dce7e2; border-radius: 1rem; background: #fff; } .alert-queue { border-right: 1px solid #e2e9e6; } .alert-queue__toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid #e6ece9; background: #f4f8f6; } .alert-queue__toolbar label { display: grid; gap: .2rem; color: #71858d; font-size: .68rem; } .alert-queue__toolbar select { min-width: 8rem; padding: .45rem .55rem; font-size: .72rem; } .alert-queue > p { margin: 0; padding: 1rem; color: #71858d; font-size: .74rem; } .alert-queue ul { max-height: 35rem; overflow: auto; margin: 0; padding: 0; list-style: none; } .alert-queue li { border-bottom: 1px solid #edf1ef; } .alert-queue li.selected { box-shadow: inset .22rem 0 #2d725b; background: #f3f8f5; } .alert-queue li button { display: grid; grid-template-columns: auto minmax(0,1fr); width: 100%; gap: .7rem; padding: .8rem 1rem; border: 0; border-radius: 0; color: inherit; background: transparent; text-align: left; box-shadow: none; } .alert-queue li button > span:last-child { display: grid; gap: .2rem; min-width: 0; } .alert-queue li button strong { overflow: hidden; color: #31515e; font-size: .77rem; text-overflow: ellipsis; white-space: nowrap; } .alert-queue li button small { color: #72858d; font-size: .68rem; line-height: 1.45; } .alert-severity { align-self: start; min-width: 2.2rem; padding: .25rem .4rem; border-radius: 999px; color: #fff; font-size: .64rem; font-weight: 800; text-align: center; } .alert-severity--critical { background: #a53b3b; } .alert-severity--high { background: #c56a32; } .alert-severity--medium { background: #aa882b; } .alert-severity--low { background: #447b72; } .alert-detail { min-width: 0; padding: 1.2rem; } .alert-detail__title { display: flex; align-items: start; justify-content: space-between; gap: 1rem; } .alert-detail__title span { color: #7a8b92; font-family: "Cascadia Mono",Consolas,monospace; font-size: .68rem; } .alert-detail__title h3 { margin: .25rem 0 0; color: #294a57; } .alert-detail__title b { padding: .3rem .6rem; border-radius: 999px; color: #2d725b; background: #e7f2ed; font-size: .7rem; white-space: nowrap; } .alert-detail > p, .alert-detail__empty p { color: #657b84; font-size: .76rem; line-height: 1.65; } .alert-detail dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem .8rem; margin: 1rem 0; } .alert-detail dl div { min-width: 0; padding: .65rem; border-radius: .7rem; background: #f5f8f7; } .alert-detail dt { color: #7b8c93; font-size: .65rem; } .alert-detail dd { overflow-wrap: anywhere; margin: .25rem 0 0; color: #3f5d68; font-size: .72rem; } .alert-detail__actions { display: flex; flex-wrap: wrap; gap: .5rem; } .alert-detail__empty { display: grid; place-content: center; min-height: 24rem; text-align: center; } .alert-timeline { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid #e3ebe7; } .alert-timeline > p { color: #71858d; font-size: .72rem; } .alert-timeline ol { position: relative; margin: .8rem 0 0; padding: 0 0 0 1.4rem; list-style: none; } .alert-timeline ol::before { position: absolute; top: .3rem; bottom: .3rem; left: .35rem; width: 1px; content: ""; background: #ccdcd5; } .alert-timeline li { position: relative; margin-bottom: .8rem; } .alert-timeline li::before { position: absolute; top: .3rem; left: -1.35rem; width: .58rem; height: .58rem; border: .18rem solid #fff; border-radius: 50%; content: ""; background: #3f806b; box-shadow: 0 0 0 1px #b9cec5; } .alert-timeline li span { color: #2f5a68; font-size: .72rem; font-weight: 800; } .alert-timeline li p { margin: .18rem 0; color: #607781; font-size: .71rem; } .alert-timeline li small { color: #839198; font-size: .65rem; } .alert-config-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; } .alert-config-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; align-items: end; gap: .7rem; padding: 1rem; border: 1px solid #dce7e2; border-radius: 1rem; background: #f7faf8; } .alert-config-form > div, .alert-config-form__wide { grid-column: 1 / -1; } .alert-config-form > div { display: grid; gap: .2rem; } .alert-config-form > div span { color: #71858d; font-size: .72rem; } .alert-config-form label { display: grid; gap: .3rem; color: #657982; font-size: .72rem; font-weight: 700; } .alert-config-form button { justify-self: end; } .alert-config-form--silence { align-content: start; border-color: #e4dfd2; background: #faf9f5; } .alert-ledger-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; } .alert-ledger-grid > section { overflow: hidden; border: 1px solid #dce7e2; border-radius: 1rem; background: #fff; } .alert-ledger-grid section > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid #e6ece9; background: #f4f8f6; } .alert-ledger-grid section > div span { color: #71858d; font-size: .72rem; } .alert-ledger-grid ul { max-height: 18rem; overflow: auto; margin: 0; padding: 0; list-style: none; } .alert-ledger-grid li { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .75rem 1rem; border-bottom: 1px solid #edf1ef; } .alert-ledger-grid li > span { display: grid; min-width: 0; gap: .2rem; } .alert-ledger-grid li strong { color: #3a5965; font-size: .72rem; } .alert-ledger-grid li small, .alert-ledger-grid li b { overflow-wrap: anywhere; color: #71858d; font-size: .68rem; font-weight: 400; } @media (max-width: 760px) { main { padding: 3rem 0; } .hero { align-items: start; flex-direction: column; gap: 1.5rem; } .status-grid { grid-template-columns: 1fr; } .identity-panel { grid-template-columns: 1fr; gap: 2rem; } .membership { align-items: start; flex-direction: column; gap: 0.25rem; } .workspace-shell { padding: 0.7rem; } .workspace-shell__heading { align-items: start; flex-direction: column; gap: 0.7rem; padding: 0.65rem; } .workspace-shell__heading > p { text-align: left; } .workspace-nav { display: flex; overflow-x: auto; scroll-snap-type: x proximity; } .workspace-nav__item { min-width: 10.5rem; scroll-snap-align: start; } .milestone-panel { grid-template-columns: 1fr; gap: 2rem; } .milestone-panel ol { grid-template-columns: repeat(2, 1fr); } .workspace { padding: 1.2rem; } .workspace__header { align-items: stretch; flex-direction: column; } .workspace__actions { align-items: stretch; flex-direction: column; } .accept-invitation { align-items: stretch; flex-direction: column; } .accept-invitation label { width: 100%; } .tool-form { grid-template-columns: 1fr; align-items: stretch; } .subject-create-form, .profile-editor { grid-template-columns: 1fr; } .subject-create-form > div:first-child, .subject-create-form .tool-form__wide, .profile-editor .section-title, .profile-editor__wide { grid-column: auto; } .invitation-secret, .member-columns { grid-template-columns: 1fr; } .member-row { align-items: start; flex-direction: column; } .workspace__summary, .detail-grid { grid-template-columns: repeat(2, 1fr); } .conversation-readiness__head { flex-direction: column; } .conversation-readiness__checks { grid-template-columns: 1fr; } .readiness-check { grid-template-columns: auto minmax(0,1fr); } .readiness-check button { grid-column: 2; justify-self: start; } .story-source-actions { justify-content: flex-start; } .workspace__split, .conversation-layout, .story-layout { grid-template-columns: 1fr; } .resource-list { display: flex; overflow-x: auto; gap: 0.4rem; } .resource-list__title { display: none; } .resource-button { min-width: 10rem; margin: 0; } .section-columns, .device-grid { grid-template-columns: 1fr; } .firmware-tools .tool-form, .firmware-columns, .firmware-assignment, .firmware-impact__metrics, .firmware-impact__devices article { grid-template-columns: 1fr; } .firmware-event-timeline li { grid-template-columns: 1fr; gap: 0.2rem; } .firmware-tools .tool-form__wide, .firmware-digest, .firmware-device-select { grid-column: auto; } .firmware-detail__actions { align-items: stretch; flex-direction: column; } .firmware-detail__actions label { margin-right: 0; } .firmware-impact__devices > article > div:last-child { text-align: left; } .recording-grant-form, .recording-segment { grid-template-columns: 1fr; } .recording-grant-form > div { grid-column: 1 / -1; } .recording-capabilities small { text-align: left; } .conversation-list { border-right: 0; border-bottom: 1px solid #dfe8e4; } .conversation-filter__fields { grid-template-columns: 1fr; } .conversation-filter label:first-child { grid-column: auto; } .story-sidebar { border-right: 0; border-bottom: 1px solid #dfe8e4; } .privacy-toolbar { grid-template-columns: 1fr; align-items: stretch; } .privacy-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .privacy-delete-confirmation { grid-template-columns: 1fr; } .privacy-delete-confirmation__head, .privacy-delete-confirmation > p, .privacy-delete-confirmation__error, .privacy-delete-confirmation__actions { grid-column: auto; } .ops-workspace { padding: 1.2rem; } .ops-workspace__head { align-items: stretch; flex-direction: column; } .ops-workspace__head label { min-width: 0; } .ops-config-form, .ops-bundle-composer, .ops-version, .ops-gate-grid, .ops-rollout-panel, .ops-ledger-grid, .billing-summary-grid, .billing-form, .billing-ledger-grid, .alert-summary-grid, .alert-queue-layout, .alert-config-grid, .alert-ledger-grid, .diagnostic-search, .diagnostic-card dl, .integration-issue-form, .external-dependency-grid, .issue-summary-grid, .sensitive-access-request { grid-template-columns: 1fr; } .sensitive-access-request__head, .sensitive-access-request > p, .sensitive-access-request > label:first-of-type, .sensitive-access-request__actions { grid-column: auto; } .ops-config-form__intro, .ops-config-form__wide { grid-column: auto; } .ops-rollout-panel > div, .ops-rollout-panel__reason, .ops-evidence-list { grid-column: auto; } .ops-config-form button { justify-self: stretch; } .ops-diff { grid-template-columns: 1fr; } .ops-version__actions { justify-content: flex-start; } .billing-form__intro, .billing-form__wide { grid-column: auto; } .billing-form button { justify-self: stretch; } .billing-rate-table > div, .billing-rate-table label { min-width: 38rem; } .billing-policy-list li { align-items: flex-start; flex-direction: column; } .conversation-usage { grid-template-columns: 1fr; } .alert-queue { border-right: 0; border-bottom: 1px solid #e2e9e6; } .alert-detail dl { grid-template-columns: 1fr; } .alert-config-form { grid-template-columns: 1fr; } .alert-config-form > div, .alert-config-form__wide { grid-column: auto; } .alert-config-form button { justify-self: stretch; } } /* Customer portal: a separate family-facing shell. */ .customer-layout { min-height: 100vh; color: #1f2329; background: #f5f6f8; } .customer-layout button:hover { transform: none; } .customer-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; height: 50px; padding: 0 22px 0 14px; border-bottom: 1px solid #e8eaee; background: #fff; box-shadow: 0 2px 8px rgba(31, 35, 41, 0.04); } .customer-header__brand, .customer-header__actions, .customer-account-button, .customer-sider__title, .customer-sider__help, .customer-profile__identity { display: flex; align-items: center; } .customer-header__brand { gap: 10px; color: #646a73; white-space: nowrap; } .customer-header__brand > strong { color: #1f2329; font-size: 18px; } .customer-brand-mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; color: #fff; background: #5b5ce2; font-size: 17px; } .customer-brand-divider { width: 1px; height: 22px; margin: 0 5px; background: #e3e6eb; } .customer-header__actions { gap: 10px; } .customer-search { width: min(320px, 28vw); } .customer-account-button { gap: 8px; height: 42px; padding: 0 8px; color: #3f444c; background: transparent; } .customer-layout__body { min-height: calc(100vh - 50px); } .customer-sider { position: sticky !important; top: 50px; align-self: flex-start; height: calc(100vh - 50px); overflow: auto; border-right: 1px solid #e8eaee; background: #fff !important; } .customer-sider__title { gap: 10px; height: 58px; padding: 0 24px; color: #30343b; font-weight: 700; } .customer-sider .ant-menu { border-inline-end: 0 !important; padding: 0 10px; background: transparent; } .customer-sider .ant-menu-item, .customer-sider .ant-menu-submenu-title { margin-block: 3px; font-size: 14px; } .customer-sider__help { gap: 10px; margin: 22px 14px; padding: 12px; border: 1px solid #e8eaee; border-radius: 8px; color: #5b5ce2; background: #f8f8ff; } .customer-sider__help div { display: grid; gap: 2px; } .customer-sider__help strong { color: #3f444c; font-size: 12px; } .customer-sider__help span { color: #8b9199; font-size: 10px; } .customer-content { min-width: 0; background: #f5f6f8; } .customer-page { width: min(1440px, 100%); margin: 0 auto; padding: 22px 28px 48px; } .customer-page__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 14px 0 18px; } .customer-page__header h1 { max-width: none; color: #1f2329; font-family: inherit; font-size: 26px; line-height: 1.35; } .customer-page__header p { margin: 6px 0 0; color: #646a73; line-height: 1.6; } .customer-auth-state { display: flex; justify-content: center; } .customer-auth-state .ant-card-body { display: flex; align-items: center; gap: 12px; color: #646a73; } .customer-page > .workspace { margin-top: 0; padding: 20px; border: 1px solid #e3e6eb; border-radius: 10px; background: #fff; box-shadow: none; } .customer-page .workspace__header { align-items: center; padding-bottom: 16px; border-bottom: 1px solid #eef0f3; } .customer-page .workspace__header h2 { color: #1f2329; font-size: 18px; } .customer-page .workspace__header > div:first-child > p:last-child { color: #7b818a; font-size: 13px; } .customer-page .eyebrow { margin-bottom: 5px; color: #5b5ce2; font-size: 10px; letter-spacing: .13em; } .customer-page .workspace__actions select { min-width: 160px; border-radius: 7px; } .customer-page .workspace__summary { margin-top: 16px; } .customer-page .metric { border: 1px solid #e8eaee; border-radius: 8px; background: #fafbfc; } .customer-page .conversation-readiness, .customer-page .conversation-readiness--ready, .customer-page .conversation-readiness--blocked { border-radius: 8px; background: #fff; } .customer-welcome-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 16px; padding: 24px; border: 1px solid #dedfff; border-radius: 10px; background: #f7f7ff; } .customer-welcome-card h3 { color: #22263d; font-size: 22px; } .customer-welcome-card p:not(.eyebrow) { max-width: 650px; margin: 8px 0 0; color: #686e7b; line-height: 1.7; } .customer-welcome-card > button { flex: none; border-radius: 7px; color: #fff; background: #5b5ce2; } .customer-quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; } .customer-quick-grid button { display: grid; gap: 6px; min-width: 0; padding: 16px; border: 1px solid #e6e8ec; border-radius: 8px; color: #646a73; background: #fff; text-align: left; } .customer-quick-grid button:hover { border-color: #b8b9f5; background: #fafaff; } .customer-quick-grid strong { color: #1f2329; font-size: 24px; } .customer-quick-grid small { overflow: hidden; color: #8b9199; text-overflow: ellipsis; white-space: nowrap; } .customer-action-list { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 12px; margin-top: 14px; } .customer-action-list > div, .customer-action-list > button { padding: 16px; border: 1px solid #e6e8ec; border-radius: 8px; background: #fff; text-align: left; } .customer-action-list > div { border: 0; padding-left: 0; } .customer-action-list > button { display: grid; gap: 6px; color: #1f2329; } .customer-action-list > button span { color: #8b9199; font-size: 12px; font-weight: 400; line-height: 1.5; } .customer-billing-panel, .customer-message-panel { margin-top: 16px; } .panel-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 14px; } .panel-title h3 { color: #1f2329; font-size: 18px; } .panel-title p:not(.eyebrow) { margin: 6px 0 0; color: #7b818a; } .billing-total-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 14px 0; } .billing-total-grid article { padding: 20px; border: 1px solid #e6e8ec; border-radius: 8px; background: #fafbfc; } .billing-total-grid span, .billing-total-grid small { display: block; color: #7b818a; } .billing-total-grid strong { display: block; margin: 8px 0; color: #1f2329; font-size: 26px; } .billing-category-list { border: 1px solid #e6e8ec; border-radius: 8px; overflow: hidden; } .billing-category-list div { display: flex; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid #eef0f3; } .billing-category-list div:last-child { border-bottom: 0; } .quota-note { margin-top: 14px; padding: 16px; border-left: 3px solid #5b5ce2; background: #f7f7ff; } .quota-note p { margin: 5px 0 0; color: #646a73; line-height: 1.65; } .message-list, .message-timeline { display: grid; gap: 8px; } .message-item { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid #e6e8ec; border-radius: 8px; background: #fff; } .message-item > span { width: 8px; height: 8px; border-radius: 50%; background: #5b5ce2; } .message-item--warning > span { background: #d98b12; } .message-item strong { color: #30343b; } .message-item p { margin: 3px 0 0; color: #8b9199; } .message-timeline { margin-top: 18px; } .message-timeline h4 { margin: 0 0 4px; } .message-timeline article { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid #eef0f3; } .message-timeline time, .message-timeline p { color: #8b9199; } .message-timeline p { margin: 3px 0 0; } .customer-login-card { max-width: 560px; margin: 70px auto 0; text-align: center; } .customer-login-card .ant-card-body { padding: 42px; } .customer-login-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 18px; border-radius: 12px; color: #5b5ce2; background: #eeeeff; font-size: 23px; } .customer-login-notes { display: flex; justify-content: center; gap: 22px; margin-top: 24px; color: #7b818a; font-size: 12px; } .customer-profile { display: grid; gap: 16px; } .customer-profile__identity { gap: 18px; } .customer-profile__identity > div { flex: 1; } .customer-profile__identity h2, .customer-profile__identity p { margin: 0; } .customer-profile__identity p { margin-top: 4px; color: #8b9199; } .customer-membership-list { margin-top: 18px; } .customer-membership-list > div { padding: 12px 0; border-top: 1px solid #eef0f3; } .customer-membership-list > div > div { display: flex; justify-content: space-between; } .customer-membership-list small { color: #8b9199; } @media (max-width: 1000px) { .customer-search { display: none; } .customer-quick-grid { grid-template-columns: repeat(2, 1fr); } .customer-action-list { grid-template-columns: 1fr; } } @media (max-width: 720px) { .customer-header { padding-inline: 8px; } .customer-header__brand > strong, .customer-header__brand > span:not(.customer-brand-mark), .customer-account-button > span, .customer-account-button > .anticon-down { display: none; } .customer-sider { position: fixed !important; z-index: 90; } .customer-content { margin-left: 72px; } .customer-page { padding: 16px 12px 32px; } .customer-page__header { flex-direction: column; gap: 8px; } .customer-page > .workspace { padding: 14px; } .customer-page .workspace__header, .customer-welcome-card { align-items: flex-start; flex-direction: column; } .customer-page .workspace__actions { align-items: stretch; flex-direction: column; width: 100%; } .customer-quick-grid, .billing-total-grid { grid-template-columns: 1fr; } .message-timeline article { grid-template-columns: 1fr; gap: 4px; } } /* Ant Design enterprise console refresh */ :root { color: #1f2329; background: #f5f6f8; --console-primary: #5b5ce2; --console-primary-soft: #ebe9ff; --console-text: #1f2329; --console-muted: #646a73; --console-border: #e3e6eb; --console-fill: #f7f8fa; --console-white: #fff; } html { background: #f5f6f8; } body { color: var(--console-text); background: #f5f6f8; } button { min-height: 34px; border: 1px solid var(--console-primary); border-radius: 8px; padding: 0.42rem 0.9rem; color: #fff; background: var(--console-primary); box-shadow: none; font-size: 0.82rem; transition: border-color 150ms ease, background 150ms ease, color 150ms ease; } button:hover { transform: none; border-color: #7979eb; background: #6c6de8; } button:disabled { opacity: 0.55; } .button-secondary { border-color: #d8dbe2; color: #3d424a; background: #fff; } .app-layout { min-height: 100vh; } .maintenance-layout { min-height: 100vh; background: #f5f6f8; } .maintenance-header { position: fixed; inset: 0 0 auto; z-index: 110; display: flex; height: 60px; padding: 0 22px; align-items: center; justify-content: space-between; border-bottom: 1px solid #dfe3ea; background: #fff; line-height: normal; } .maintenance-header__brand, .maintenance-header__actions { display: flex; align-items: center; gap: 11px; } .maintenance-header__brand > strong { color: #172033; font-size: 16px; } .maintenance-brand-mark { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #225fc9, #5434a5); } .maintenance-brand-divider { width: 1px; height: 18px; background: #dfe3ea; } .maintenance-search { width: min(320px, 25vw); } .maintenance-account { display: flex; align-items: center; gap: 8px; } .maintenance-layout__body { min-height: 100vh; padding-top: 60px; } .maintenance-sider { position: sticky !important; top: 60px; height: calc(100vh - 60px); overflow: auto; border-right: 1px solid #dfe3ea; background: #f8f9fb !important; } .maintenance-sider .ant-layout-sider-children { display: flex; min-height: 100%; flex-direction: column; } .maintenance-sider__title { display: flex; height: 58px; padding: 0 20px; align-items: center; gap: 10px; color: #293249; font-weight: 650; white-space: nowrap; } .maintenance-sider__title .anticon { color: #315ea8; font-size: 18px; } .maintenance-sider .ant-menu { flex: 1; padding: 0 10px; border-inline-end: 0 !important; background: transparent; } .maintenance-sider .ant-menu-item { height: 42px; margin-block: 4px; line-height: 42px; } .maintenance-sider .ant-menu-item-selected { color: #244f94; background: #e7eefb; font-weight: 650; } .maintenance-sider__meta { display: grid; gap: 3px; margin: 12px; padding: 12px; border: 1px solid #dfe3ea; border-radius: 8px; color: #737b8c; background: #fff; font-size: 11px; } .maintenance-sider__meta strong { color: #293249; font-size: 12px; } .maintenance-content { min-width: 0; background: #f5f6f8; } .maintenance-page { width: 100%; padding: 18px 24px 40px; } .maintenance-page > .ant-breadcrumb { margin-bottom: 10px; font-size: 12px; } .maintenance-page__header { display: flex; margin-bottom: 16px; align-items: center; justify-content: space-between; } .maintenance-page__header > div { display: flex; align-items: center; gap: 12px; } .maintenance-page__header h1 { margin: 0; color: #172033; font-size: 24px; } .maintenance-page__header p { margin: 4px 0 0; color: #697185; } .maintenance-page__icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: #fff; background: #315ea8; font-size: 18px; } .maintenance-auth-state { display: flex; align-items: center; gap: 10px; } .maintenance-auth-state .ant-card-body { display: flex; align-items: center; gap: 10px; } .maintenance-login { max-width: 640px; margin: 8vh auto; text-align: center; } .maintenance-login > .ant-card-body > .anticon { color: #315ea8; font-size: 40px; } .maintenance-login p { max-width: 520px; margin: 0 auto 24px; color: #697185; line-height: 1.8; } .maintenance-workspace { width: 100%; } .maintenance-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .maintenance-role-card { margin-top: 14px; } .maintenance-role-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; } .maintenance-role-list article { display: grid; gap: 5px; padding: 15px; border: 1px solid #e1e5ec; border-radius: 9px; background: #fafbfc; } .maintenance-role-list article span { color: #315ea8; font-weight: 650; } .maintenance-role-list article small { color: #7a8293; line-height: 1.55; } .ops-device-workspace { display: grid; gap: 14px; } .ops-device-toolbar > .ant-card-body { display: flex; align-items: center; justify-content: space-between; gap: 18px; } .ops-device-toolbar > .ant-card-body > div:first-child { display: grid; gap: 4px; } .ops-device-toolbar span, .ops-device-table-card small { color: #697185; } .ops-device-table-card .ant-table-cell { vertical-align: middle; } .ops-device-table-card .ant-typography code { white-space: nowrap; } .quality-workspace { display: grid; gap: 14px; } .quality-toolbar .ant-card-body { display: flex; align-items: center; justify-content: space-between; gap: 18px; } .quality-toolbar .ant-card-body > div:first-child { display: grid; gap: 4px; } .quality-toolbar strong { color: #202a3d; } .quality-toolbar span { color: #737b8c; font-size: 12px; } .quality-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } .quality-metric .ant-card-body { display: grid; gap: 6px; } .quality-metric span { color: #697185; font-size: 12px; } .quality-metric strong { color: #172033; font-size: 28px; line-height: 1.2; } .quality-metric small { color: #8a91a0; } .quality-state { display: grid; min-height: 180px; place-items: center; align-content: center; gap: 9px; color: #737b8c; text-align: center; } .quality-state > .anticon { color: #315ea8; font-size: 34px; } .quality-version-list { display: grid; gap: 12px; } .quality-version-list > article { display: grid; gap: 14px; padding: 16px; border: 1px solid #e1e5ec; border-radius: 10px; background: #fafbfc; } .quality-version-list header { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .quality-version-list header > div { display: grid; gap: 3px; } .quality-version-list header strong { color: #202a3d; } .quality-version-list header span { color: #737b8c; font-size: 12px; } .quality-version-metrics { display: grid; grid-template-columns: repeat(6, minmax(90px, 1fr)); gap: 8px; } .quality-version-metrics > span { display: grid; gap: 5px; padding: 10px; border-radius: 8px; color: #737b8c; background: #fff; font-size: 11px; } .quality-version-metrics strong { color: #293249; font-size: 17px; } .quality-error-types { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; } .quality-error-types small { margin-right: 4px; color: #737b8c; } .quality-error-types > span:not(.ant-tag) { color: #9399a6; font-size: 12px; } .device-binding-actions { display: flex; margin-top: 16px; padding: 15px 0 0; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--console-border); } .device-binding-actions p { margin: 4px 0 0; color: var(--console-muted); font-size: 12px; } .workspace-dialog-backdrop--nested { z-index: 230; } .device-binding-impact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 13px; border: 1px solid; border-radius: 9px; font-size: 12px; } .device-binding-impact strong, .device-binding-impact p { grid-column: 1 / -1; } .device-binding-impact p { margin: 0; line-height: 1.6; } .device-binding-impact--allowed { border-color: #b9dfc9; color: #236941; background: #f3fbf6; } .device-binding-impact--blocked { border-color: #efc4bd; color: #9c3327; background: #fff6f4; } .privacy-consent-selection { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--console-border); border-radius: 9px; } .privacy-consent-selection label { display: flex !important; flex-direction: row !important; align-items: center; gap: 9px; } .privacy-consent-selection input { width: 16px !important; height: 16px; } @media (max-width: 900px) { .maintenance-search, .maintenance-header__brand > span:not(.maintenance-brand-mark) { display: none; } .maintenance-page { padding: 14px 14px 28px; } .ops-device-toolbar > .ant-card-body { align-items: stretch; flex-direction: column; } .maintenance-status-grid { grid-template-columns: 1fr; } .quality-toolbar .ant-card-body { align-items: stretch; flex-direction: column; } .quality-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .quality-version-metrics { grid-template-columns: repeat(2, minmax(90px, 1fr)); } } .app-header { position: fixed; inset: 0 0 auto; z-index: 100; display: flex; height: 60px; padding: 0 22px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--console-border); line-height: normal; box-shadow: 0 1px 5px rgba(31, 35, 41, 0.04); } .app-header__brand, .app-header__tools { display: flex; align-items: center; gap: 12px; } .app-header__brand > strong { color: #15181d; font-size: 16px; white-space: nowrap; } .app-header__collapse.ant-btn { width: 36px; padding: 0; color: #3d424a; } .brand-mark, .page-icon { display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #1677ff, #6c4cff); } .brand-mark { width: 32px; height: 32px; border-radius: 8px; font-size: 17px; } .header-search { width: min(300px, 24vw); } .header-user { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .app-layout__body { min-height: 100vh; padding-top: 60px; } .app-sider { position: sticky !important; top: 60px; height: calc(100vh - 60px); overflow: auto; border-right: 1px solid var(--console-border); } .app-sider .ant-layout-sider-children { display: flex; min-height: 100%; flex-direction: column; } .sider-product { display: flex; height: 58px; padding: 0 20px; align-items: center; gap: 10px; color: #252a31; font-size: 14px; font-weight: 600; white-space: nowrap; } .sider-product .anticon { color: var(--console-primary); font-size: 18px; } .app-sider .ant-menu { flex: 1; border-inline-end: 0 !important; padding: 0 10px; } .app-sider .ant-menu-item { height: 42px; margin-block: 4px; line-height: 42px; } .app-sider .ant-menu-item-group-title { padding: 12px 14px 4px; color: #8f959e; font-size: 12px; } .app-sider .ant-menu-item-selected { font-weight: 600; } .sider-meta { display: grid; gap: 3px; margin: 12px; padding: 12px; border: 1px solid var(--console-border); border-radius: 8px; color: var(--console-muted); background: #fff; font-size: 11px; } .sider-meta strong { color: #363b43; font-size: 12px; } .app-content { min-width: 0; background: #f5f6f8; } .page-container { width: 100%; max-width: 1560px; margin: 0 auto; padding: 22px 28px 40px; } .page-breadcrumb { margin-bottom: 14px; color: #8f959e; font-size: 12px; } .hero { align-items: center; gap: 24px; margin: 0 0 20px; padding: 4px 0 2px; } .hero h1 { max-width: none; color: #171a1f; font-family: inherit; font-size: 24px; line-height: 1.4; } .page-icon { width: 36px; height: 36px; border-radius: 10px; font-size: 18px; } .hero__description { max-width: 64rem; margin: 8px 0 0 46px; color: var(--console-muted); font-size: 14px; line-height: 1.65; } .eyebrow { margin: 0 0 7px; color: var(--console-primary); font-size: 11px; letter-spacing: 0.12em; } h1, h2, h3, h4 { color: var(--console-text); } h2 { font-size: 20px; } h3 { font-size: 16px; } .status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 16px; } .status-card { min-height: 132px; padding: 0; border-color: var(--console-border); border-radius: 10px; background: #fff; box-shadow: none; } .status-card .ant-card-body { padding: 18px 20px; } .status-card__topline { color: #7b818a; font-size: 13px; } .status-card strong { margin-top: 19px; color: #1f2329; font-size: 22px; line-height: 1.2; } .status-card p { overflow: hidden; margin: 8px 0 0; color: #7b818a; font-size: 12px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; } .identity-panel, .workspace-shell, .milestone-panel, .workspace, .ops-workspace { border: 1px solid var(--console-border); border-radius: 10px; background: #fff; box-shadow: none; } .identity-panel { grid-template-columns: minmax(260px, 0.75fr) minmax(360px, 1.5fr); gap: 34px; margin-top: 14px; padding: 22px 24px; } .identity-panel__intro > p:last-child, .identity-panel__state, .identity-panel__login, .identity-panel__login p { color: var(--console-muted); } .identity-panel__intro h2 { font-size: 19px; } .identity-panel__login strong { color: var(--console-text); font-size: 16px; } .identity-panel__account-head span { color: #8a9099; } .account-card { padding: 12px 14px; border: 1px solid var(--console-border); border-radius: 8px; background: var(--console-fill); } .account-card > strong { color: var(--console-text); } .membership { border-color: var(--console-border); color: #535961; } .workspace-shell { margin-top: 14px; padding: 0; overflow: hidden; } .workspace-shell__heading { align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--console-border); background: #fff; } .workspace-shell__heading h2 { font-size: 19px; } .workspace-shell__heading > p { color: var(--console-muted); font-size: 12px; } .workspace-shell__content { padding: 0; } .workspace-shell__content > .workspace, .workspace-shell__content > .ops-workspace { margin-top: 0; } .workspace, .ops-workspace { margin-top: 0; padding: 22px; border: 0; border-radius: 0; } .workspace__header, .ops-workspace__head { align-items: center; } .workspace__header > div:first-child > p:last-child, .ops-workspace__head p { color: var(--console-muted); } .workspace__tabs { gap: 4px; margin: 20px 0 16px; padding: 4px; border: 1px solid var(--console-border); border-radius: 8px; background: #f7f8fa; } .tab-button { min-height: 32px; border: 0; border-radius: 6px; padding: 6px 12px; color: #5f656d; background: transparent; } .tab-button:hover { color: var(--console-primary); background: #f0efff; } .tab-button.active { color: var(--console-primary); background: #fff; box-shadow: 0 1px 4px rgba(31, 35, 41, 0.08); } .workspace select, .workspace input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), .workspace textarea, .ops-workspace select, .ops-workspace input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), .ops-workspace textarea { min-height: 36px; border: 1px solid #d8dbe2; border-radius: 7px; padding: 7px 10px; color: #252a31; background: #fff; box-shadow: none; } .workspace input:focus, .workspace select:focus, .workspace textarea:focus, .ops-workspace input:focus, .ops-workspace select:focus, .ops-workspace textarea:focus { outline: none; border-color: #7778e6; box-shadow: 0 0 0 2px rgba(91, 92, 226, 0.12); } .workspace label, .ops-workspace label, .ops-config-form label, .billing-form label, .alert-config-form label, .diagnostic-search label { color: #5d636c; font-size: 12px; font-weight: 600; } .tool-form, .subject-create-form, .profile-editor, .conversation-readiness, .panel-section, .ops-config-form, .ops-gate-card, .ops-rollout-panel, .billing-form, .conversation-usage, .diagnostic-search, .alert-config-form, .privacy-delete-confirmation, .firmware-recovery-form, .firmware-impact { border-color: var(--console-border); border-radius: 8px; background: var(--console-fill); box-shadow: none; } .summary-card, .device-card, .diagnostic-card, .billing-summary-grid article, .alert-summary-grid article, .ops-ledger, .ops-version-group, .billing-ledger, .billing-policy-list, .alert-ledger-grid > section, .firmware-key-ledger, .firmware-key-card, .firmware-impact__metrics article, .firmware-impact__devices article { border-color: var(--console-border); border-radius: 8px; background: #fff; box-shadow: none; } .workspace__split, .conversation-layout, .story-layout, .alert-queue-layout, .billing-rate-table { border-color: var(--console-border); border-radius: 8px; } .resource-list, .conversation-list, .story-sidebar, .alert-queue, .billing-rate-table > div, .ops-ledger > div, .ops-version-group > div:first-child, .billing-ledger > div, .billing-policy-list > div, .alert-queue__toolbar, .alert-ledger-grid section > div { background: #f7f8fa; } .resource-button, .conversation-row { border-radius: 7px; color: #50565e; } .resource-button:hover, .conversation-row:hover { background: #eeeff2; } .resource-button.active, .conversation-row.active { color: var(--console-primary); background: #fff; box-shadow: 0 1px 4px rgba(31, 35, 41, 0.08); } .ops-billing, .ops-alerts, .ops-diagnostics { background: #fff; } .billing-summary-grid strong, .alert-summary-grid strong, .summary-card strong, .diagnostic-card__head strong { color: var(--console-text); } .status-pill, .event-stream-status, .alert-severity, .alert-detail__title b { border-radius: 5px; } .event-stream-status { color: #137a50; background: #e9f7f0; } .event-stream-status--connecting, .event-stream-status--reconnecting { color: #a86500; background: #fff5df; } .workspace__inline-error { border: 1px solid #ffd6d2; border-radius: 7px; color: #b42318; background: #fff2f0; } .workspace__action-message { border: 1px solid #cdebdc; border-radius: 7px; color: #137a50; background: #edf9f3; } .workspace__readonly-note, .ops-config-form__note { border-radius: 7px; color: #646a73; background: #f2f3f5; } .alert-queue li.selected { box-shadow: inset 3px 0 var(--console-primary); background: #f4f3ff; } .alert-timeline ol::before { background: #d8dbe2; } .alert-timeline li::before { background: var(--console-primary); box-shadow: 0 0 0 1px #c8c9f6; } .milestone-panel { grid-template-columns: 300px 1fr; gap: 30px; margin-top: 14px; padding: 20px 24px; color: var(--console-text); background: #fff; } .milestone-panel h2 { color: var(--console-text); font-size: 18px; } .milestone-panel ol { gap: 10px; } .milestone-panel li { color: #8b9199; font-size: 11px; } .milestone-panel li span { margin-bottom: 7px; color: #a5abb3; font-size: 14px; font-weight: 700; } .milestone-panel li.done, .milestone-panel li.active { color: #4d535b; } .milestone-panel li.done span { color: #1f9d68; } .milestone-panel li.active span { color: var(--console-primary); } @media (max-width: 1080px) { .header-search { display: none; } .identity-panel { grid-template-columns: 1fr; gap: 18px; } .milestone-panel { grid-template-columns: 1fr; } .milestone-panel ol { grid-template-columns: repeat(4, 1fr); } } @media (max-width: 760px) { .app-header { padding: 0 10px; } .app-header__brand > strong, .app-header__brand .ant-tag, .header-user, .app-header__tools > .ant-badge { display: none; } .app-sider { position: fixed !important; z-index: 80; } .app-sider:not(.ant-layout-sider-collapsed) { box-shadow: 8px 0 24px rgba(31, 35, 41, 0.12); } .app-content { margin-left: 72px; } .page-container { padding: 16px 12px 28px; } .hero { align-items: flex-start; gap: 14px; } .hero__description { margin-left: 0; } .status-grid { grid-template-columns: 1fr; } .identity-panel { gap: 16px; padding: 18px; } .workspace-shell__heading { align-items: flex-start; flex-direction: column; gap: 6px; } .workspace-shell__heading > p { text-align: left; } .workspace, .ops-workspace { padding: 16px; } .milestone-panel { padding: 18px; } .milestone-panel ol { grid-template-columns: repeat(2, 1fr); } } /* Long-term care profile management: warm Kinship visual language. */ .workspace--subjects { --subject-primary: #a73920; --subject-primary-strong: #86220a; --subject-coral: #f27052; --subject-surface: #fbf9f8; --subject-surface-low: #f5f3f3; --subject-border: #ead8d3; --subject-text: #1b1c1c; --subject-muted: #715e59; overflow: visible; border-color: #eee1dd !important; background: var(--subject-surface) !important; } .workspace--subjects .workspace__header { border-bottom-color: #eadfdb; } .workspace--subjects .workspace__header h2 { color: var(--subject-text); font-size: 24px; } .workspace--subjects .eyebrow { color: var(--subject-primary); } .workspace--subjects .workspace__actions select, .workspace--subjects .workspace__actions .button-secondary { border-color: var(--subject-border); background: #fff; } .subject-add-button, .subject-create-modal footer button[type="submit"], .subject-editor-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: #fff; background: var(--subject-primary); box-shadow: 0 8px 18px rgba(167, 57, 32, .18); } .subject-add-button:hover, .subject-create-modal footer button[type="submit"]:hover, .subject-editor-actions button:hover { background: var(--subject-primary-strong); } .subject-management { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; } .subject-card-layout { order: 1; display: block; overflow: visible; border: 0; background: transparent; } .subject-management-operations { order: 2; border: 1px solid var(--subject-border); border-radius: 14px; background: #fff; } .subject-management-operations > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; color: var(--subject-text); cursor: pointer; list-style: none; } .subject-management-operations > summary::-webkit-details-marker { display: none; } .subject-management-operations > summary span { font-weight: 700; } .subject-management-operations > summary small { color: var(--subject-muted); font-size: 12px; font-weight: 400; } .subject-management-operations[open] > summary { border-bottom: 1px solid #f0e5e2; } .subject-management-operations__forms { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 16px; } .subject-management-operations .tool-form { margin: 0; border-color: var(--subject-border); border-radius: 12px; background: var(--subject-surface); } .subject-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } .subject-profile-card { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 16px; min-height: 260px; padding: 24px; overflow: hidden; border: 1px solid #eadfdb; border-radius: 14px; color: var(--subject-text); background: #fff; box-shadow: 0 8px 24px rgba(80, 48, 39, .06); text-align: left; } .subject-profile-card:hover, .subject-profile-card.active { border-color: #dcb7ad; background: #fffdfc; box-shadow: 0 12px 28px rgba(111, 55, 39, .11); transform: translateY(-2px); } .subject-profile-card__avatar { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; color: #184b72; background: #d4e3ff; font-size: 25px; } .subject-profile-card__avatar--1 { color: #86220a; background: #ffdad2; } .subject-profile-card__avatar--2 { color: #633f00; background: #ffddb3; } .subject-profile-card__identity { display: grid; align-content: center; gap: 5px; min-width: 0; } .subject-profile-card__identity strong { color: var(--subject-text); font-size: 19px; } .subject-profile-card__identity small { overflow: hidden; color: var(--subject-muted); text-overflow: ellipsis; white-space: nowrap; } .subject-profile-card__status { align-self: start; padding: 5px 9px; border-radius: 6px; color: #633f00; background: #fff1d6; font-size: 11px; font-weight: 700; } .subject-profile-card__facts { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .subject-profile-card__facts > span { display: grid; gap: 5px; padding: 12px; border-radius: 9px; background: var(--subject-surface-low); } .subject-profile-card__facts small { color: var(--subject-muted); font-size: 11px; } .subject-profile-card__facts strong { color: var(--subject-text); font-size: 13px; } .subject-profile-card__footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 16px; border-top: 1px solid #eee4e1; } .subject-profile-card__footer small { color: var(--subject-primary); } .subject-profile-card__footer > span { display: inline-flex; align-items: center; gap: 6px; color: var(--subject-primary); font-weight: 700; } .subject-profile-card--add { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; border: 2px dashed #dcc2bb; box-shadow: none; text-align: center; } .subject-profile-card--add > span { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; color: #86220a; background: var(--subject-coral); font-size: 25px; } .subject-profile-card--add > strong { font-size: 19px; } .subject-profile-card--add > small { color: var(--subject-muted); } .subject-modal-backdrop { position: fixed; inset: 0; z-index: 320; display: grid; place-items: center; padding: 24px; background: rgba(30, 24, 22, .42); backdrop-filter: blur(5px); } .subject-create-modal, .subject-detail-modal { overflow: hidden; border: 1px solid rgba(255,255,255,.7); border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(45, 30, 26, .2); } .subject-create-modal { width: min(560px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; } .subject-create-modal > header, .subject-detail-modal__header { display: flex; align-items: center; gap: 18px; padding: 20px 24px; border-bottom: 1px solid #eee5e2; background: #fff; } .subject-create-modal > header > div, .subject-detail-modal__header > div:first-child { flex: 1; } .subject-create-modal h3, .subject-detail-modal h3 { color: var(--subject-text); font-size: 20px; } .subject-create-modal header p, .subject-detail-modal__header p { margin: 4px 0 0; color: var(--subject-muted); font-size: 12px; } .subject-create-modal header button, .subject-detail-modal__header > button { padding: 9px; color: #58423d; background: transparent; box-shadow: none; } .subject-create-modal__body { display: grid; gap: 18px; padding: 24px; background: var(--subject-surface); } .dialogue-presets { display: grid; gap: 10px; } .dialogue-presets > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; } .dialogue-presets > div:first-child > strong { color: var(--subject-text); font-size: 13px; } .dialogue-presets > div:first-child > small { color: var(--subject-muted); font-size: 11px; } .dialogue-presets > div:last-child, .dialogue-presets--editor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .dialogue-presets button { display: grid; gap: 4px; min-height: 72px; padding: 12px; border: 1px solid #dfcfca; border-radius: 12px; color: var(--subject-text); text-align: left; background: #fff; box-shadow: none; } .dialogue-presets button:hover:not(:disabled) { border-color: var(--subject-primary); background: #fff8f5; transform: translateY(-1px); } .dialogue-presets button strong { font-size: 13px; } .dialogue-presets button span { color: var(--subject-muted); font-size: 11px; font-weight: 400; line-height: 1.45; } .dialogue-presets button:disabled { cursor: not-allowed; opacity: .58; } .dialogue-presets--editor { margin-top: 12px; } .subject-avatar-upload { display: grid; place-items: center; gap: 8px; width: 92px; height: 92px; margin: 0 auto 4px; border: 1px solid #e3d6d2; border-radius: 50%; color: #58423d; background: #f4f1f0; } .subject-avatar-upload > svg { font-size: 28px; } .subject-avatar-upload span { font-size: 11px; } .subject-create-modal__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .subject-field { display: grid; gap: 7px; color: var(--subject-text); font-size: 13px; font-weight: 700; } .subject-field input, .subject-field select, .subject-field textarea { width: 100%; min-width: 0; padding: 11px 13px; border: 1px solid #dfc0b9; border-radius: 9px; outline: none; color: var(--subject-text); background: #fbf9f8; font: inherit; font-weight: 400; } .subject-field textarea { min-height: 96px; resize: vertical; } .subject-field input:focus, .subject-field select:focus, .subject-field textarea:focus { border-color: var(--subject-primary); box-shadow: 0 0 0 3px rgba(167, 57, 32, .09); } .subject-field input:disabled, .subject-field select:disabled, .subject-field textarea:disabled { color: #6f625f; background: #f1eeee; } .subject-field small { color: var(--subject-muted); font-size: 11px; font-weight: 400; line-height: 1.55; } .subject-create-modal > footer { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 16px 24px; border-top: 1px solid #eee5e2; } .subject-create-modal > footer button { min-width: 110px; } .subject-modal-cancel { color: #58423d; background: transparent; box-shadow: none; } .subject-detail-modal { width: min(980px, 100%); max-height: calc(100vh - 48px); } .subject-detail-modal__header { min-height: 80px; } .subject-profile-completion { display: flex !important; align-items: center; gap: 8px; flex: none !important; padding: 7px 12px; border-radius: 999px; background: var(--subject-surface-low); } .subject-profile-completion > span { display: grid; place-items: center; width: 40px; height: 40px; border: 3px solid var(--subject-primary); border-radius: 50%; color: var(--subject-primary); } .subject-profile-completion strong { font-size: 10px; } .subject-profile-completion small { color: var(--subject-muted); font-size: 11px; } .subject-detail-modal__body { max-height: calc(100vh - 129px); overflow-y: auto; padding: 22px; background: var(--subject-surface); } .subject-detail-summary { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid var(--subject-border); border-radius: 12px; background: #fff; } .subject-detail-summary > div { display: grid; flex: 1; gap: 4px; } .subject-detail-summary > div strong { color: var(--subject-text); font-size: 17px; } .subject-detail-summary > div small { color: var(--subject-muted); } .subject-profile-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; padding: 0; border: 0; background: transparent; } .subject-editor-card, .subject-record-card { padding: 18px; border: 1px solid var(--subject-border); border-radius: 13px; background: #fff; box-shadow: 0 6px 18px rgba(80, 48, 39, .04); } .subject-editor-card--presets, .subject-editor-card--avoid, .subject-editor-card--basics, .subject-editor-actions { grid-column: 1 / -1; } .subject-editor-card--avoid { border-color: #f0cbc3; } .subject-section-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; } .subject-section-heading > div { flex: 1; } .subject-section-heading h4 { color: var(--subject-text); font-size: 17px; } .subject-section-heading p { margin: 3px 0 0; color: var(--subject-muted); font-size: 11px; line-height: 1.5; } .subject-section-heading > strong { color: var(--subject-primary); } .subject-section-icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; color: #003e73; background: #d4e3ff; font-size: 16px; } .subject-section-icon--topic { color: #86220a; background: #ffdad2; } .subject-section-icon--avoid { color: #93000a; background: #ffdad6; } .subject-section-icon--clock { color: #633f00; background: #ffddb3; } .subject-section-icon--safe { color: #004883; background: #d4e3ff; } .subject-chip-list { display: flex; flex-wrap: wrap; gap: 7px; min-height: 31px; margin-bottom: 12px; } .subject-chip-list > span { padding: 6px 10px; border: 1px solid #dfc0b9; border-radius: 999px; color: #58423d; background: #f1eeee; font-size: 11px; } .subject-chip-list--avoid > span { border-radius: 7px; color: #7d2b22; background: #fff0ed; } .subject-chip-list > small, .subject-topic-list > small { align-self: center; color: #978783; } .subject-topic-list { display: grid; gap: 7px; min-height: 31px; margin-bottom: 12px; } .subject-topic-list > span { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #ece1de; border-radius: 7px; color: #58423d; background: var(--subject-surface); font-size: 11px; } .subject-topic-list svg { color: var(--subject-primary); } .subject-basics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .subject-field--wide { grid-column: 1 / -1; } .subject-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border: 1px solid var(--subject-border); border-radius: 12px; background: #fff; } .subject-editor-actions span { color: var(--subject-muted); font-size: 12px; } .subject-editor-actions button { justify-self: auto; } .subject-record-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; } .subject-data-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-top: 1px solid #eee5e2; } .subject-data-row > div:first-child { min-width: 0; } .subject-data-row strong { color: var(--subject-text); font-size: 12px; } .subject-data-row p { margin: 4px 0 0; color: var(--subject-muted); font-size: 11px; line-height: 1.5; } @media (max-width: 1050px) { .subject-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .subject-management-operations__forms { grid-template-columns: 1fr; } } @media (max-width: 720px) { .workspace--subjects .workspace__actions { width: 100%; } .subject-card-grid, .subject-profile-editor, .subject-record-grid, .subject-basics-grid, .subject-create-modal__row { grid-template-columns: 1fr; } .subject-editor-card--presets, .subject-editor-card--avoid, .subject-editor-card--basics, .subject-editor-actions, .subject-field--wide { grid-column: auto; } .dialogue-presets > div:first-child { align-items: flex-start; flex-direction: column; } .dialogue-presets > div:last-child, .dialogue-presets--editor { grid-template-columns: 1fr; } .subject-modal-backdrop { align-items: end; padding: 0; } .subject-create-modal, .subject-detail-modal { width: 100%; max-height: 94vh; border-radius: 18px 18px 0 0; } .subject-detail-modal__header { align-items: flex-start; } .subject-profile-completion small { display: none; } .subject-detail-summary { align-items: flex-start; } .subject-editor-actions { align-items: stretch; flex-direction: column; } .subject-editor-actions button { width: 100%; } .subject-management-operations > summary { align-items: flex-start; flex-direction: column; } } /* Follow-up: let elder management use the full work area and use direct tag editors. */ .customer-page--subjects { width: 100%; max-width: none; } .customer-page--subjects > .workspace { width: 100%; } .customer-page--subjects .subject-card-grid { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); } .subject-tag-editor { display: grid; gap: 12px; } .subject-tag-editor__chips { display: flex; flex-wrap: wrap; gap: 9px; min-height: 32px; } .subject-tag-editor__chips > span { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 5px 9px 5px 12px; border: 1px solid #dfc0b9; border-radius: 999px; color: #2f2927; background: #f1eeee; font-size: 12px; } .subject-tag-editor__chips > span strong { color: inherit; font-weight: 600; } .subject-tag-editor__chips > span button { display: inline-grid; place-items: center; width: 17px; height: 17px; padding: 0; border-radius: 50%; color: #fff; background: #58423d; box-shadow: none; font-size: 9px; } .subject-tag-editor__chips > span button:hover { color: #fff; background: #93000a; transform: none; } .subject-tag-editor__chips > small { align-self: center; color: #978783; } .subject-tag-editor__input { position: relative; } .subject-tag-editor__input input { width: 100%; height: 46px; padding: 10px 48px 10px 14px; border: 1px solid #dfc0b9; border-radius: 9px; outline: none; color: #1b1c1c; background: #fbf9f8; font: inherit; } .subject-tag-editor__input input:focus { border-color: #a73920; box-shadow: 0 0 0 3px rgba(167, 57, 32, .09); } .subject-tag-editor__input button { position: absolute; top: 50%; right: 11px; display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border-radius: 50%; color: #fff; background: #a73920; box-shadow: none; transform: translateY(-50%); } .subject-tag-editor__input button:hover { background: #86220a; transform: translateY(-50%); } .subject-tag-editor__input button:disabled { background: #c9bbb7; } .subject-tag-editor--topic .subject-tag-editor__chips > span { border-color: #e8c7c0; background: #fff3f0; } .subject-tag-editor--avoid .subject-tag-editor__chips > span { border-color: #efc9c1; color: #7d2b22; background: #fff0ed; } .subject-tag-editor__note { display: block; margin-top: 10px; color: #715e59; font-size: 11px; line-height: 1.55; } @media (max-width: 720px) { .customer-page--subjects { padding-inline: 12px; } .customer-page--subjects .subject-card-grid { grid-template-columns: 1fr; } } /* Family center visual system: extend the elder-management language to every customer page. */ .customer-layout { --family-primary: #a73920; --family-primary-strong: #86220a; --family-bg: #f5f2f1; --family-surface: #fffdfc; --family-surface-soft: #f8f5f4; --family-border: #eadeda; --family-border-strong: #ddc3bc; --family-text: #211d1c; --family-muted: #756762; --family-success: #297454; color: var(--family-text); background: var(--family-bg); } .customer-header { border-bottom-color: var(--family-border); background: rgba(255, 253, 252, .96); box-shadow: 0 4px 18px rgba(77, 48, 40, .04); backdrop-filter: blur(14px); } .customer-header__brand > strong { color: var(--family-text); } .customer-brand-mark { color: #fff; background: var(--family-primary); box-shadow: 0 6px 14px rgba(167, 57, 32, .2); } .customer-brand-divider { background: var(--family-border); } .customer-search .ant-input-affix-wrapper, .customer-search .ant-input-group-addon .ant-btn { border-color: var(--family-border) !important; background: var(--family-surface-soft) !important; } .customer-search .ant-input-affix-wrapper:focus-within { border-color: var(--family-primary) !important; box-shadow: 0 0 0 3px rgba(167, 57, 32, .08) !important; } .customer-account-button .ant-avatar { color: var(--family-primary); background: #f8e6e1; } .customer-sider { border-right-color: var(--family-border); background: #fffdfc !important; } .customer-sider__title { color: var(--family-primary); } .customer-sider .ant-menu-item-selected, .customer-sider .ant-menu-submenu-selected > .ant-menu-submenu-title { color: var(--family-primary) !important; background: #f8e8e3 !important; } .customer-sider .ant-menu-item:hover, .customer-sider .ant-menu-submenu-title:hover { color: var(--family-primary) !important; background: #fbf2ef !important; } .customer-sider__help { border-color: var(--family-border); background: var(--family-surface-soft); } .customer-content { width: auto; margin: 0; padding: 0; background: var(--family-bg); } .customer-page, .customer-page--subjects { width: 100%; max-width: none; padding: 28px clamp(20px, 2.4vw, 42px) 48px; } .customer-page .ant-breadcrumb { color: #978984; font-size: 12px; } .customer-page__header { margin: 14px 0 20px; } .customer-page__header h1 { color: var(--family-text); font-size: clamp(24px, 2vw, 30px); letter-spacing: -.02em; } .customer-page__header p { color: var(--family-muted); } .customer-page__header .ant-tag { border: 0; border-radius: 999px; padding: 5px 11px; color: var(--family-success); background: #e9f5ee; } .customer-page > .workspace, .customer-page > .customer-profile, .customer-page > .customer-auth-state { width: 100%; } .customer-page > .workspace { padding: clamp(18px, 2vw, 28px); overflow: visible; border: 1px solid var(--family-border) !important; border-radius: 16px !important; background: var(--family-surface) !important; box-shadow: 0 12px 32px rgba(76, 46, 38, .05) !important; } .customer-page .workspace__header { align-items: flex-end; border-bottom-color: #efe5e2; } .customer-page .workspace__header h2 { color: var(--family-text); font-size: 22px; } .customer-page .workspace__header > div:first-child > p:last-child { color: var(--family-muted); } .customer-page .eyebrow { color: var(--family-primary); letter-spacing: .16em; } .customer-page .workspace__actions { align-items: flex-end; } .customer-page .workspace__actions label > span { color: var(--family-muted); } .customer-page button:not(.ant-btn), .customer-layout .ant-btn-primary { border-radius: 9px; } .customer-page button:not(.ant-btn):not(.button-secondary):not(.button-danger):not(.tab-button):not(.resource-button):not(.conversation-row):not(.story-button):not(.subject-profile-card):not(.story-candidate-card), .customer-layout .ant-btn-primary { border-color: var(--family-primary); color: #fff; background: var(--family-primary); box-shadow: 0 6px 14px rgba(167, 57, 32, .14); } .customer-page .button-secondary { border-color: var(--family-border-strong); color: #614d47; background: #fff; box-shadow: none; } .customer-page .button-secondary:hover { border-color: var(--family-primary); color: var(--family-primary); background: #fff9f7; } .customer-page .button-danger { border-color: #d9a99e; color: #9b321e; background: #fff2ef; box-shadow: none; } .customer-page .workspace select, .customer-page .workspace input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), .customer-page .workspace textarea { border-color: var(--family-border-strong); border-radius: 9px; color: var(--family-text); background: #fff; } .customer-page .workspace input:focus, .customer-page .workspace select:focus, .customer-page .workspace textarea:focus { border-color: var(--family-primary); box-shadow: 0 0 0 3px rgba(167, 57, 32, .08); } .customer-page .tool-form, .customer-page .profile-editor, .customer-page .conversation-readiness, .customer-page .panel-section, .customer-page .privacy-toolbar, .customer-page .privacy-exports, .customer-page .memory-management, .customer-page .firmware-workspace, .customer-page .customer-billing-panel, .customer-page .customer-message-panel { border-color: var(--family-border); border-radius: 13px; background: var(--family-surface-soft); box-shadow: none; } .customer-page .tool-form { padding: 18px; } .customer-page .tool-form > div:first-child strong, .customer-page .section-title h4, .customer-page .panel-title h3 { color: var(--family-text); } .customer-page .tool-form > div:first-child span, .customer-page .empty-copy { color: var(--family-muted); } .customer-page .workspace__summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } .customer-page .metric, .customer-page .summary-card, .customer-page .device-card, .customer-page .privacy-card, .customer-page .billing-total-grid article, .customer-page .customer-quick-grid button, .customer-page .customer-action-list > button, .customer-page .member-columns > section, .customer-page .subject-record-card { border: 1px solid var(--family-border); border-radius: 13px; background: #fff; box-shadow: 0 7px 20px rgba(76, 46, 38, .04); } .customer-page .metric strong, .customer-page .summary-card strong, .customer-page .billing-total-grid strong, .customer-page .customer-quick-grid strong { color: var(--family-text); } .customer-page .customer-welcome-card { border: 1px solid #edcec5; border-radius: 15px; background: linear-gradient(120deg, #fff9f6 0%, #fffdfc 58%, #f8efea 100%); box-shadow: 0 10px 26px rgba(118, 55, 37, .06); } .customer-page .customer-welcome-card h3 { color: var(--family-text); } .customer-page .customer-welcome-card > button { background: var(--family-primary); box-shadow: 0 7px 16px rgba(167, 57, 32, .16); } .customer-page .customer-quick-grid { gap: 14px; } .customer-page .customer-quick-grid button:hover, .customer-page .customer-action-list > button:hover { border-color: #d8afa5; background: #fffaf8; transform: translateY(-1px); } .customer-page .customer-action-list > div { padding-left: 2px; } .customer-page .accept-invitation, .customer-page .household-create, .customer-page .invitation-secret, .customer-page .invitation-token, .customer-page .quota-note { border-color: var(--family-border); border-radius: 12px; background: var(--family-surface-soft); } .customer-page .member-columns { gap: 16px; } .customer-page .member-columns > section { overflow: hidden; } .customer-page .section-title { padding-bottom: 13px; border-bottom-color: #eee4e1; } .customer-page .member-row, .customer-page .data-row { border-bottom-color: #f0e7e4; } .customer-page .device-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; } .customer-page .device-card { padding: 18px; } .customer-page .device-card__head { border-bottom-color: #eee5e2; } .customer-page .device-volume { border-color: var(--family-border); border-radius: 10px; background: var(--family-surface-soft); } .customer-page .device-volume input[type="range"] { accent-color: var(--family-primary); } .customer-page .conversation-layout, .customer-page .story-layout, .customer-page .workspace__split { border-color: var(--family-border); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(76, 46, 38, .04); } .customer-page .conversation-list, .customer-page .story-sidebar, .customer-page .resource-list { border-color: var(--family-border); background: var(--family-surface-soft); } .customer-page .conversation-row, .customer-page .resource-button, .customer-page .story-button { color: #66534d; } .customer-page .conversation-row:hover, .customer-page .resource-button:hover, .customer-page .story-button:hover { background: #f6ece9; } .customer-page .conversation-row.active, .customer-page .resource-button.active, .customer-page .story-button.active { color: var(--family-primary); background: #fff; box-shadow: 0 4px 12px rgba(93, 50, 38, .08); } .customer-page .conversation-detail, .customer-page .story-detail, .customer-page .resource-detail { background: #fff; } .customer-page .content-block, .customer-page .conversation-usage, .customer-page .recording-notice, .customer-page .memory-management__content { border-color: var(--family-border); border-radius: 11px; background: var(--family-surface-soft); } .customer-page .privacy-layout { gap: 16px; } .customer-page .privacy-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; } .customer-page .privacy-card { padding: 18px; } .customer-page .privacy-counts .info, .customer-page .detail-grid .info { border-radius: 9px; background: var(--family-surface-soft); } .customer-page .billing-category-list, .customer-page .billing-ledger, .customer-page .billing-policy-list { border-color: var(--family-border); border-radius: 12px; } .customer-page .billing-category-list div, .customer-page .billing-ledger li, .customer-page .billing-policy-list li { border-bottom-color: #f0e7e4; } .customer-page .message-list { gap: 10px; } .customer-page .message-item { border-color: var(--family-border); border-radius: 12px; box-shadow: 0 5px 14px rgba(76, 46, 38, .035); } .customer-page .message-item > span { background: var(--family-primary); } .customer-page .message-timeline article { border-bottom-color: #efe5e2; } .customer-profile > .ant-card, .customer-profile .ant-col > .ant-card, .customer-login-card { border-color: var(--family-border); border-radius: 15px; background: var(--family-surface); box-shadow: 0 9px 25px rgba(76, 46, 38, .05); } .customer-profile__identity .ant-avatar, .customer-login-icon { color: var(--family-primary); background: #f8e6e1; } .customer-profile .ant-tag { border: 0; border-radius: 999px; color: var(--family-primary); background: #f8e8e3; } .customer-membership-list > div { border-top-color: #eee5e2; } .customer-page .tag, .customer-page .status, .customer-page .permission, .customer-page .event-stream-status { border-radius: 999px; } .customer-page .event-stream-status { color: var(--family-success); background: #e9f5ee; } .customer-page .workspace__action-message { border-color: #cce4d7; border-radius: 10px; color: var(--family-success); background: #eff8f3; } .customer-page .workspace__inline-error { border-color: #efcbc3; border-radius: 10px; background: #fff3f0; } .customer-page .workspace__readonly-note { border-radius: 10px; color: var(--family-muted); background: var(--family-surface-soft); } /* Keep compact icon and cancel controls neutral inside the elder profile dialogs. */ .customer-page .subject-create-modal header button, .customer-page .subject-detail-modal__header > button, .customer-page .subject-modal-cancel { border-color: transparent !important; color: #786d68 !important; background: #f5f2f0 !important; box-shadow: none !important; } .customer-page .subject-create-modal header button, .customer-page .subject-detail-modal__header > button { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0 !important; border-radius: 50% !important; } .customer-page .subject-create-modal header button:hover, .customer-page .subject-detail-modal__header > button:hover { color: #4f4845 !important; background: #ebe7e4 !important; transform: none !important; } .customer-page .subject-modal-cancel { background: transparent !important; } /* Profile presets are choices, so keep them calm and distinct from submit actions. */ .customer-page .dialogue-presets button { border-color: #e7dfda !important; color: #3f3936 !important; background: #fbf8f4 !important; box-shadow: none !important; } .customer-page .dialogue-presets button:nth-child(2) { border-color: #dce5ef !important; background: #f3f7fb !important; } .customer-page .dialogue-presets button:nth-child(3) { border-color: #dce7dc !important; background: #f3f7f2 !important; } .customer-page .dialogue-presets button strong { color: #3f3936; } .customer-page .dialogue-presets button span { color: #7a706b; } .customer-page .dialogue-presets button:hover:not(:disabled) { border-color: #cbbeb7 !important; color: #2e2927 !important; background: #fff !important; box-shadow: 0 5px 14px rgba(76, 60, 54, .07) !important; } .customer-page .subject-tag-editor__chips > span button { border: 0 !important; color: #aaa19d !important; background: transparent !important; box-shadow: none !important; } .customer-page .subject-tag-editor__chips > span button:hover { color: #7d3329 !important; background: transparent !important; transform: none !important; } .customer-page .subject-tag-editor--topic .subject-tag-editor__chips > span button { color: #9aa3ac !important; background: transparent !important; } .customer-page .subject-tag-editor--avoid .subject-tag-editor__chips > span button { color: #ad928d !important; background: transparent !important; } .customer-page .button-danger { border-color: #e7cfc9 !important; color: #985347 !important; background: #fcf5f3 !important; box-shadow: none !important; } .customer-page .button-danger:hover:not(:disabled) { border-color: #d9b8b0 !important; color: #7f4036 !important; background: #f6e7e3 !important; transform: none !important; } .customer-page .subject-tag-editor__input button { border: 0; color: #fff; background: var(--family-primary); box-shadow: none; } .customer-page .subject-tag-editor__input button:hover { background: var(--family-primary-strong) !important; } @media (max-width: 1180px) { .customer-page .workspace__summary, .customer-page .customer-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .customer-page .customer-action-list { grid-template-columns: repeat(3, 1fr); } .customer-page .customer-action-list > div { grid-column: 1 / -1; } } @media (max-width: 760px) { .customer-page { padding: 20px 14px 36px; } .customer-page__header { align-items: flex-start; } .customer-page__header .ant-tag { display: none; } .customer-page > .workspace { padding: 16px; border-radius: 13px !important; } .customer-page .workspace__header { align-items: flex-start; } .customer-page .workspace__actions { width: 100%; } .customer-page .workspace__actions label, .customer-page .workspace__actions select, .customer-page .workspace__actions button { width: 100%; } .customer-page .workspace__summary, .customer-page .customer-quick-grid, .customer-page .customer-action-list, .customer-page .device-grid, .customer-page .privacy-grid { grid-template-columns: 1fr; } .customer-page .customer-action-list > div { grid-column: auto; } .customer-page .customer-welcome-card { align-items: flex-start; flex-direction: column; } .customer-page .customer-welcome-card > button { width: 100%; } } /* Browse-first information architecture: compact page chrome, fixed cards, modal operations. */ .customer-page { padding-top: 8px; } .customer-page__header { margin: 6px 0 12px; } .customer-page__header h1 { font-size: 25px; } .customer-page__header p { margin-top: 3px; } .customer-page > .workspace { padding-top: 16px; } .customer-page .workspace__header { min-height: 42px; justify-content: flex-end; padding-bottom: 12px; } .customer-page .workspace__header > div:first-child { display: none; } .customer-page .workspace__actions { flex-wrap: wrap; justify-content: flex-end; } .customer-page .customer-welcome-card { background: #fff9f6; } .customer-page--subjects .subject-management { margin-top: 14px; } .customer-page--subjects .subject-card-layout { min-height: 0; box-shadow: none; } .customer-page--subjects .subject-card-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 370px)); justify-content: start; gap: 16px; } .customer-page--subjects .subject-profile-card { width: 100%; min-height: 220px; aspect-ratio: 1.62 / 1; padding: 20px; } .customer-page--subjects .subject-profile-card--add { min-height: 220px; } .subject-management-operations:not([open]) { display: none; } .subject-management-operations[open] { position: fixed; top: 50%; left: 50%; z-index: 330; width: min(980px, calc(100vw - 48px)); max-height: calc(100vh - 48px); margin: 0; overflow: auto; background: #fffdfc; box-shadow: 0 24px 70px rgba(45, 30, 26, .24); transform: translate(-50%, -50%); } .subject-management-operations > summary button { flex: none; border: 0 !important; color: #58423d !important; background: transparent !important; box-shadow: none !important; } .workspace-dialog-backdrop { position: fixed; inset: 0; z-index: 360; display: grid; place-items: center; padding: 24px; background: rgba(35, 25, 22, .44); backdrop-filter: blur(5px); } .workspace-dialog { display: grid; width: min(560px, 100%); max-height: calc(100vh - 48px); margin: 0; overflow: auto; border: 1px solid var(--family-border) !important; border-radius: 18px !important; background: #fffdfc !important; box-shadow: 0 24px 70px rgba(45, 30, 26, .22) !important; } .workspace-dialog--wide { width: min(860px, 100%); } .workspace-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 24px; border-bottom: 1px solid #eee5e2; } .workspace-dialog > header h3 { margin: 0; color: var(--family-text); font-size: 20px; } .workspace-dialog > header p { margin: 5px 0 0; color: var(--family-muted); font-size: 12px; line-height: 1.5; } .workspace-dialog > header > button { border: 0 !important; padding: 8px !important; color: #58423d !important; background: transparent !important; box-shadow: none !important; } .workspace-dialog__body { display: grid; gap: 16px; padding: 22px 24px; background: var(--family-surface-soft); } .workspace-dialog__body label { display: grid; gap: 7px; } .workspace-dialog__body small { color: var(--family-muted); font-size: 11px; line-height: 1.55; } .workspace-dialog__grid { grid-template-columns: 1fr 1fr; } .workspace-dialog__wide { grid-column: 1 / -1; } .workspace-dialog > footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 15px 24px; border-top: 1px solid #eee5e2; } .workspace-dialog > footer button { min-width: 100px; } .family-controlled-operation.workspace-dialog { padding: 22px; } .privacy-delete-confirmation.workspace-dialog { padding: 22px; } .customer-page--members .customer-page__header, .customer-page--members .workspace__header { display: none; } .customer-page--members > .workspace { padding-top: 0; } .family-overview { display: grid; gap: 24px; width: 100%; max-width: none; margin: 0; } .family-overview__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 2px 0 12px; border-bottom: 1px solid #e9e8e7; } .family-overview__identity { display: grid; gap: 4px; min-width: 0; } .family-overview__head small { color: #58423d; font-size: 11px; letter-spacing: .06em; } .family-overview__head p { margin: 0; color: var(--family-muted); font-size: 12px; } .family-overview__title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; } .family-switcher { position: relative; display: inline-flex; align-items: center; } .family-switcher select { width: auto; max-width: min(440px, 58vw); height: 46px; padding: 0 34px 0 0; border: 0; color: #1b1c1c; background: transparent; font-size: 30px; font-weight: 700; line-height: 40px; appearance: none; cursor: pointer; } .family-switcher select:focus { outline: 2px solid rgba(0, 96, 172, .24); outline-offset: 3px; } .family-switcher > svg { position: absolute; right: 7px; color: #58423d; pointer-events: none; } .family-icon-button { display: grid !important; place-items: center; width: 36px; height: 36px; padding: 0 !important; border: 0 !important; border-radius: 50% !important; color: #0060ac !important; background: #d4e3ff !important; box-shadow: none !important; } .family-icon-button--delete { color: #8b716b !important; background: transparent !important; } .family-icon-button:disabled { opacity: .45; cursor: not-allowed; } .family-add-button { margin-left: 8px; border-radius: 999px !important; padding-inline: 18px !important; } .family-accept-button { border-radius: 999px !important; } .family-overview__layout { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24vw, 440px); gap: 24px; align-items: start; } .family-members-panel { min-width: 0; } .family-members-panel .section-title { min-height: 28px; } .family-member-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 12px; } .family-member-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; min-height: 112px; padding: 24px; border: 1px solid transparent; border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(76, 46, 38, .035); } .family-member-card--owner { border-color: #f1c0b5; } .family-member-card__avatar { position: relative; display: grid; place-items: center; width: 62px; height: 62px; border: 2px solid #efc1b7; border-radius: 50%; color: var(--family-primary); background: #fff7f4; font-size: 24px; } .family-member-card__avatar > small { position: absolute; right: -4px; bottom: -3px; display: grid; place-items: center; width: 23px; height: 23px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--family-primary); font-size: 11px; } .family-member-card__content { display: grid; gap: 7px; } .family-member-card__content > strong { color: var(--family-text); font-size: 16px; } .family-role { justify-self: start; padding: 3px 9px; border-radius: 999px; color: #004883; background: #d4e3ff; font-size: 10px; } .family-role--owner { color: #86220a; background: #ffdad2; } .family-member-menu { position: relative; } .family-member-menu summary { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #58423d; cursor: pointer; list-style: none; } .family-member-menu summary::-webkit-details-marker { display: none; } .family-member-menu summary:hover { color: var(--family-primary); background: #f5f3f3; } .family-member-menu > div { position: absolute; top: 40px; right: 0; z-index: 12; display: grid; min-width: 138px; padding: 6px; border: 1px solid #e9e8e7; border-radius: 10px; background: #fff; box-shadow: 0 12px 28px rgba(45, 30, 26, .14); } .family-member-menu button { padding: 8px 10px !important; border: 0 !important; color: #1b1c1c !important; background: transparent !important; box-shadow: none !important; text-align: left; } .family-member-menu button:hover { background: #f5f3f3 !important; } .family-member-menu button.danger { color: #ba1a1a !important; } .family-member-card--invite { display: flex; align-items: center; justify-content: center; flex-direction: column; border: 2px dashed #dfc0b9; color: var(--family-text) !important; background: #f5f3f3 !important; box-shadow: none !important; } .family-member-card--invite:hover { border-color: var(--family-primary); background: #fff7f4 !important; } .family-member-card--invite > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #58423d; background: #e4e2e2; font-size: 20px; } .family-overview__aside { display: grid; gap: 20px; } .family-home-card, .family-activity-card { overflow: hidden; border: 0; border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(76, 46, 38, .04); } .family-home-card__image { min-height: 132px; padding: 16px; background-image: url('https://lh3.googleusercontent.com/aida-public/AB6AXuAeacxv6Wc3RqAtRr34IaICDCv7_my_KoRCmeOOsMy71ApDJkqhwBxBQ2HFtLsbPlQtHZfUT6s9dcYmKXRkn_OGdA8-FjlXwEWb75wml_FNpscxeiBv3-_DEmjCgSIc5glFN6Wqks-NUbyAqk12fNcUaFVgr9TgAJl-dhBnkCy4hke2Fm6ANwIhZrao6v_RHAHb0SPvK7NOlH012NliOSMrFcxjwAudqaMrCPNcTCu2a9_ZtPbNKtFBjA'); background-position: center; background-size: cover; } .family-home-card__image > div { display: flex; align-items: flex-end; gap: 8px; min-height: 100px; margin: -16px; padding: 16px; color: #fff; background: rgba(30, 24, 21, .48); } .family-home-card__image span { display: grid; gap: 2px; } .family-home-card__image strong { font-size: 18px; } .family-home-card__image small { color: rgba(255,255,255,.82); } .family-home-card footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; } .family-home-card footer span { padding: 4px 10px; border-radius: 6px; color: #633f00; background: #ffddb3; font-size: 10px; } .family-home-card footer button { padding: 4px !important; border: 0 !important; color: var(--family-primary) !important; background: transparent !important; box-shadow: none !important; font-size: 11px; } .family-activity-card { padding: 20px; } .family-activity-card article { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid #f0e7e4; } .family-activity-card article:last-child { border-bottom: 0; } .family-activity-card article > svg { padding: 8px; border-radius: 50%; color: #004883; background: #d4e3ff; font-size: 32px; } .family-activity-card article strong { color: var(--family-text); font-size: 12px; } .family-activity-card article p { margin: 3px 0 0; color: var(--family-muted); font-size: 10px; } .family-activity-card__more { width: 100%; margin-top: 8px; padding: 8px !important; border: 0 !important; color: var(--family-primary) !important; background: transparent !important; box-shadow: none !important; } .subject-list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; border: 1px solid var(--family-border); border-radius: 12px; background: #fff; } .subject-list-toolbar > div { display: grid; gap: 3px; } .subject-list-toolbar span { color: var(--family-muted); font-size: 11px; } .customer-page--conversations .conversation-layout, .customer-page--stories .story-layout { display: block; min-height: 0; overflow: visible; border: 0; background: transparent; box-shadow: none; } .customer-page--conversations .conversation-list, .customer-page--stories .story-sidebar { border: 0; border-radius: 13px; background: #fff; box-shadow: 0 7px 20px rgba(76, 46, 38, .04); } .customer-page--conversations .conversation-filter { border: 1px solid var(--family-border); border-radius: 13px 13px 0 0; background: var(--family-surface-soft); } .customer-page--conversations .conversation-row { margin: 8px 12px; border: 1px solid var(--family-border); border-radius: 10px; background: #fff; } .customer-page--conversations .conversation-row.active { border-color: #d7aea4; } .customer-page--conversations .conversation-detail.workspace-dialog, .customer-page--stories .story-detail.workspace-dialog { padding: 0; } .customer-page--conversations .conversation-detail .workspace-dialog__body, .customer-page--stories .story-detail .workspace-dialog__body { overflow-y: auto; } .customer-page--stories .story-sidebar { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; padding: 16px; } .customer-page--stories .story-sidebar > label, .customer-page--stories .story-sidebar > .section-title, .customer-page--stories .story-sidebar > .memory-search { grid-column: 1 / -1; } .customer-page--stories .story-button, .customer-page--stories .memory-row { min-width: 0; border: 1px solid var(--family-border); border-radius: 11px; background: #fff; } .customer-page--stories .story-button { min-height: 78px; } .customer-page--stories .memory-row { padding: 10px; } .device-card__manage { width: 100%; margin-top: 12px; } /* Device management reference layout. */ .device-list-panel { display: grid; gap: 20px; padding: clamp(18px, 2vw, 24px); border: 1px solid var(--family-border); border-radius: 14px; background: #fffdfc; box-shadow: 0 6px 20px rgba(76, 46, 38, .04); } .device-list-panel__heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-bottom: 14px; border-bottom: 1px solid #e9e8e7; } .device-list-panel__heading > div { display: flex; align-items: center; gap: 9px; } .device-list-panel__heading strong { color: var(--family-text); font-size: 17px; } .device-list-panel__heading span { padding: 3px 8px; border-radius: 999px; color: #58423d; background: #e9e8e7; font-size: 10px; } .device-list-panel__heading p { margin: 0; color: var(--family-muted); font-size: 11px; } .customer-page--devices .device-grid { display: grid; grid-template-columns: 1fr; gap: 16px; } .customer-page--devices .device-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 188px; padding: 0; overflow: hidden; border: 1px solid #e4e2e2; border-radius: 12px; background: #f5f3f3; } .customer-page--devices .device-card--online { border-color: #cfe1d7; } .device-card__main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 22px; } .device-card__identity { display: flex; align-items: center; gap: 15px; min-width: 0; } .device-card__icon { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; color: #58423d; background: #e4e2e2; font-size: 23px; } .device-card--online .device-card__icon { color: var(--family-success); background: #e9f5ee; } .device-card__icon > small { position: absolute; right: -2px; bottom: -2px; display: grid; place-items: center; width: 20px; height: 20px; border: 2px solid #f5f3f3; border-radius: 50%; color: #58423d; background: #e4e2e2; font-size: 10px; } .device-card__icon > small > span { width: 8px; height: 8px; border-radius: 50%; background: var(--family-success); } .device-card__identity h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; color: var(--family-text); font-size: 17px; } .device-card__identity h3 span { padding: 3px 8px; border-radius: 999px; color: #004883; background: #d4e3ff; font-size: 10px; font-weight: 500; } .device-card__identity p { display: flex; align-items: center; gap: 5px; margin: 6px 0 0; color: var(--family-muted); font-size: 11px; } .device-card__main > .permission { align-self: start; display: inline-flex; align-items: center; gap: 5px; } .device-card__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .device-card__facts > div { display: grid; gap: 7px; padding: 14px; border: 1px solid #e9e8e7; border-radius: 9px; background: #fff; } .device-card__facts small { color: var(--family-muted); font-size: 10px; } .device-card__facts strong { display: flex; align-items: center; gap: 9px; color: var(--family-text); font-size: 13px; } .device-card__facts .presence-dot { width: 8px; height: 8px; box-shadow: none; } .device-card__side { display: grid; align-items: center; padding: 22px; border-left: 1px solid #e4e2e2; background: #fffdfc; } .device-card__side .device-card__manage { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: auto; min-width: 150px; margin: 0; } .device-list-empty { display: grid; place-items: center; min-height: 220px; padding: 32px; border: 2px dashed #dfc0b9; border-radius: 12px; text-align: center; background: #fbf9f8; } .device-list-empty > span, .story-board-empty > span { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; color: #58423d; background: #e9e8e7; font-size: 28px; } .device-list-empty h3, .story-board-empty h3 { margin: 12px 0 5px; color: var(--family-text); font-size: 17px; } .device-list-empty p, .story-board-empty p { max-width: 420px; margin: 0; color: var(--family-muted); font-size: 12px; line-height: 1.6; } /* Story and curated-memory reference layout. */ .customer-page--stories .customer-page__header { padding-bottom: 16px; border-bottom: 1px solid #e4e2e2; } .customer-page--stories > .workspace { padding: 0; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; } .customer-page--stories .workspace__header { min-height: 64px; padding: 12px 16px; border: 1px solid #e9e8e7; border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(76, 46, 38, .035); } .customer-page--stories .workspace__actions { width: 100%; } .customer-page--stories .workspace-story-subject { width: min(420px, 40%); margin-right: auto; } .customer-page--stories .workspace-story-subject select { width: 100%; } .customer-page--stories .story-board { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; min-height: 0; margin-top: 20px; overflow: visible; border: 0; background: transparent; } .story-candidates, .confirmed-memories { display: grid; gap: 14px; } .story-board__section-title { display: flex; align-items: end; justify-content: space-between; } .story-board__section-title h3 { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--family-text); font-size: 18px; } .story-board__section-title h3 > span { padding: 3px 8px; border-radius: 999px; color: #58423d; background: #e4e2e2; font-size: 10px; } .story-board__section-title h3 > small { color: var(--family-muted); font-size: 12px; font-weight: 400; } .story-board__section-title--bordered { padding-bottom: 8px; border-bottom: 1px solid #e4e2e2; } .story-candidate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } .customer-page--stories .story-candidate-card { display: flex; align-items: flex-start; justify-content: space-between; flex-direction: column; min-height: 192px; padding: 24px; border: 1px solid #e4e2e2; border-radius: 12px; color: var(--family-text); background: #fff; box-shadow: 0 4px 12px rgba(76, 46, 38, .035); text-align: left; } .customer-page--stories .story-candidate-card:hover, .customer-page--stories .story-candidate-card.active { border-color: #d6a69b; background: #fffaf8; box-shadow: 0 12px 24px rgba(76, 46, 38, .08); } .story-candidate-card__status { display: inline-flex; align-items: center; gap: 5px; color: #825500; font-size: 11px; } .story-candidate-card > strong { display: -webkit-box; overflow: hidden; margin: 10px 0; color: var(--family-text); font-size: 14px; font-weight: 400; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .story-candidate-card > small { display: inline-flex; align-items: center; gap: 4px; color: var(--family-muted); font-size: 10px; } .memory-search-field { position: relative; display: block; } .memory-search-field > svg { position: absolute; top: 50%; left: 14px; z-index: 1; color: #58423d; transform: translateY(-50%); } .memory-search-field input { width: 100%; padding-left: 42px !important; border-radius: 12px !important; } .confirmed-memory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; } .confirmed-memory-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px; border: 1px solid #e4e2e2; border-radius: 11px; background: #fff; } .confirmed-memory-card.selected { border-color: #d6a69b; background: #fffaf8; } .confirmed-memory-card > button:first-child { min-width: 0; padding: 0 !important; border: 0 !important; color: inherit !important; background: transparent !important; box-shadow: none !important; text-align: left; } .confirmed-memory-card strong { display: -webkit-box; overflow: hidden; color: var(--family-text); font-size: 13px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .confirmed-memory-card span { display: block; margin-top: 6px; color: var(--family-muted); font-size: 10px; } .story-board-empty { grid-column: 1 / -1; display: grid; place-items: center; min-height: 200px; padding: 32px; border: 1px dashed #dfc0b9; border-radius: 12px; background: #fff; text-align: center; } .story-board-empty--compact { min-height: 192px; } .story-review-fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 12px; } .story-review-fields > label { display: grid; gap: 6px; } .story-review-fields > label > span { color: var(--family-muted); font-size: 11px; } @media (max-width: 1000px) { .family-overview__layout { grid-template-columns: 1fr; } .family-overview__aside { grid-template-columns: 1fr 1fr; } } @media (max-width: 720px) { .customer-page { padding-top: 6px; } .customer-page .workspace__header { align-items: stretch; } .customer-page .workspace__actions { justify-content: stretch; } .customer-page--subjects .subject-card-grid, .family-member-grid, .family-overview__aside, .workspace-dialog__grid { grid-template-columns: 1fr; } .customer-page--subjects .subject-profile-card { aspect-ratio: auto; } .workspace-dialog-backdrop { align-items: end; padding: 0; } .workspace-dialog { width: 100%; max-height: 94vh; border-radius: 18px 18px 0 0 !important; } .family-overview__head { align-items: stretch; flex-direction: column; } .family-overview__title-row { align-items: center; } .family-switcher { width: 100%; } .family-switcher select { width: 100%; max-width: none; font-size: 24px; } .family-add-button { width: 100%; margin: 6px 0 0; } .family-accept-button { width: 100%; } .family-member-card { min-height: 104px; padding: 18px; } .device-list-panel__heading { align-items: flex-start; flex-direction: column; } .customer-page--devices .device-card { grid-template-columns: 1fr; } .device-card__main { grid-template-columns: 1fr; padding: 18px; } .device-card__main > .permission { justify-self: start; } .device-card__facts { grid-column: auto; grid-template-columns: 1fr; } .device-card__side { padding: 14px 18px 18px; border-top: 1px solid #e4e2e2; border-left: 0; } .device-card__side .device-card__manage { width: 100%; } .customer-page--stories .workspace-story-subject { width: 100%; margin-right: 0; } .story-candidate-grid, .confirmed-memory-grid { grid-template-columns: 1fr; } .story-review-fields { grid-template-columns: 1fr; } } @media (min-width: 721px) and (max-width: 1180px) { .story-candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } /* Apple-inspired gallery system: shared across the family and maintenance surfaces. */ :root { --apple-blue: #0066cc; --apple-blue-focus: #0071e3; --apple-blue-dark: #2997ff; --apple-ink: #1d1d1f; --apple-muted: #7a7a7a; --apple-canvas: #fff; --apple-parchment: #f5f5f7; --apple-pearl: #fafafc; --apple-hairline: #e0e0e0; --apple-divider: #f0f0f0; --apple-dark: #272729; --apple-black: #000; --family-primary: var(--apple-blue); --family-primary-strong: var(--apple-blue-focus); --family-text: var(--apple-ink); --family-muted: var(--apple-muted); --family-border: var(--apple-hairline); --family-border-strong: #c7c7cc; --family-surface: var(--apple-canvas); --family-surface-soft: var(--apple-parchment); font-family: "SF Pro Text", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; color: var(--apple-ink); background: var(--apple-parchment); } html { background: var(--apple-parchment); } body { color: var(--apple-ink); background: var(--apple-parchment); font-family: inherit; font-size: 17px; line-height: 1.47; letter-spacing: -.022em; } button, input, select, textarea { font-family: inherit; } h1, h2, h3, h4, .ant-typography h1, .ant-typography h2, .ant-typography h3, .ant-typography h4 { color: var(--apple-ink); font-family: "SF Pro Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-weight: 600; letter-spacing: -.01em; } a { color: var(--apple-blue); } a:hover { color: var(--apple-blue-focus); } :where(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--apple-blue-focus); outline-offset: 3px; } /* The global bar is the sole black chrome surface. */ .customer-header, .maintenance-header, .app-header { height: 44px; padding-inline: 22px; border: 0; color: #fff; background: var(--apple-black) !important; box-shadow: none; } .customer-header__brand, .maintenance-header__brand, .app-header__brand, .customer-header__brand > strong, .maintenance-header__brand > strong, .app-header__brand > strong { color: #fff; } .customer-header .ant-btn, .maintenance-header .ant-btn, .app-header .ant-btn { color: #fff; } .customer-header .ant-btn:hover, .maintenance-header .ant-btn:hover, .app-header .ant-btn:hover { color: var(--apple-blue-dark) !important; background: rgba(255,255,255,.08) !important; } .customer-header .ant-avatar, .maintenance-header .ant-avatar, .app-header .ant-avatar { color: #fff; background: #333336; } .customer-brand-mark, .maintenance-brand-mark, .app-brand-mark { width: 28px; height: 28px; border-radius: 50%; color: #fff; background: transparent !important; box-shadow: none; } .customer-brand-divider, .maintenance-brand-divider, .app-brand-divider { background: #424245; } .customer-header .ant-tag, .maintenance-header .ant-tag, .app-header .ant-tag { border: 0; color: #fff; background: #333336; } .customer-search .ant-input-affix-wrapper, .customer-search .ant-input-group-addon .ant-btn, .maintenance-search.ant-input-affix-wrapper, .app-search.ant-input-affix-wrapper { height: 32px; border: 0 !important; color: #fff; background: #272729 !important; box-shadow: none !important; } .customer-search input, .maintenance-search input, .app-search input { color: #fff !important; background: transparent !important; } .customer-search input::placeholder, .maintenance-search input::placeholder, .app-search input::placeholder { color: #a1a1a6 !important; } .customer-layout__body, .maintenance-layout__body, .app-layout__body { padding-top: 44px; background: var(--apple-parchment); } .customer-sider, .maintenance-sider, .app-sider { top: 44px; height: calc(100vh - 44px); border-right: 1px solid var(--apple-hairline); background: var(--apple-parchment) !important; } .customer-content, .maintenance-content, .app-content { background: var(--apple-parchment) !important; } .customer-sider__title, .maintenance-sider__title, .app-sider__title { height: 52px; color: var(--apple-ink); font-size: 14px; font-weight: 600; } .customer-sider__title .anticon, .maintenance-sider__title .anticon, .app-sider__title .anticon { color: var(--apple-blue); } .customer-sider .ant-menu, .maintenance-sider .ant-menu, .app-sider .ant-menu { background: transparent !important; } .customer-sider .ant-menu-item, .customer-sider .ant-menu-submenu-title, .maintenance-sider .ant-menu-item, .app-sider .ant-menu-item { min-height: 44px; border-radius: 11px; color: #333; } .customer-sider .ant-menu-item-selected, .customer-sider .ant-menu-submenu-selected > .ant-menu-submenu-title, .maintenance-sider .ant-menu-item-selected, .app-sider .ant-menu-item-selected { color: var(--apple-blue) !important; background: #fff !important; box-shadow: inset 0 0 0 1px var(--apple-divider); } .customer-sider .ant-menu-item:hover, .customer-sider .ant-menu-submenu-title:hover, .maintenance-sider .ant-menu-item:hover, .app-sider .ant-menu-item:hover { color: var(--apple-blue) !important; background: rgba(255,255,255,.7) !important; } .customer-sider__help, .maintenance-sider__meta, .app-sider__meta { border: 1px solid var(--apple-hairline); border-radius: 11px; color: var(--apple-muted); background: var(--apple-pearl); box-shadow: none; } /* Spacious editorial page headers and quiet utility cards. */ .customer-page, .maintenance-page, .app-page { width: min(1440px, 100%); margin-inline: auto; padding: 32px clamp(20px, 3vw, 48px) 80px; } .customer-page__header, .maintenance-page__header, .app-page__header { margin: 14px 0 32px; } .customer-page__header h1, .maintenance-page__header h1, .app-page__header h1 { font-size: clamp(34px, 3.2vw, 40px); line-height: 1.1; font-weight: 600; } .customer-page__header p, .maintenance-page__header p, .app-page__header p { margin-top: 8px; color: var(--apple-muted); font-size: 17px; line-height: 1.47; } .maintenance-page__icon, .app-page__icon { border-radius: 50%; color: var(--apple-blue); background: #fff; box-shadow: none; } .ant-breadcrumb { color: var(--apple-muted); font-size: 12px; } .ant-card, .workspace, .ops-workspace, .device-list-panel, .family-member-card, .family-home-card, .family-activity-card, .subject-profile-card, .story-candidate-card, .confirmed-memory-card, .panel-section, .tool-form, .profile-editor, .conversation-readiness, .privacy-card, .message-item { border: 1px solid var(--apple-hairline) !important; border-radius: 18px !important; background: var(--apple-canvas) !important; box-shadow: none !important; } .workspace, .ops-workspace { padding: clamp(24px, 3vw, 48px); } .customer-page > .workspace { padding: clamp(24px, 3vw, 48px); } .workspace__header, .ops-workspace__head { padding-bottom: 24px; border-bottom: 1px solid var(--apple-divider); } .workspace__header h2, .ops-workspace__head h2 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.2; } .eyebrow { color: var(--apple-blue); font-size: 12px; font-weight: 600; letter-spacing: .12em; } /* One interaction color, two button grammars. */ button:not(.ant-btn), .ant-btn-primary { min-height: 44px; border-radius: 9999px !important; color: #fff; background: var(--apple-blue); box-shadow: none !important; font-size: 14px; font-weight: 400; transition: background-color 160ms ease, transform 160ms ease, opacity 160ms ease; } button:not(.ant-btn):hover, .ant-btn-primary:hover { color: #fff; background: var(--apple-blue-focus) !important; transform: none; } .button-secondary, .ant-btn-default { border: 1px solid var(--apple-hairline) !important; color: var(--apple-blue) !important; background: #fff !important; } .button-secondary:hover, .ant-btn-default:hover { border-color: var(--apple-blue) !important; color: var(--apple-blue-focus) !important; background: #fff !important; } .button-small { min-height: 32px !important; padding: 6px 14px !important; border-radius: 8px !important; } .button-danger { color: #b42318 !important; background: #fff !important; border-color: #e9b9b4 !important; } .button-danger:hover { color: #fff !important; background: #b42318 !important; } /* Forms read as white capsules; text areas remain practical utility rectangles. */ input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, .ant-input, .ant-select-selector, .ant-input-affix-wrapper { min-height: 44px; border-color: var(--apple-hairline) !important; border-radius: 9999px !important; color: var(--apple-ink); background: #fff !important; box-shadow: none !important; } textarea, .ant-input[type="textarea"] { min-height: 96px; border-color: var(--apple-hairline) !important; border-radius: 11px !important; background: #fff !important; box-shadow: none !important; } input:focus, select:focus, textarea:focus, .ant-input-affix-wrapper:focus-within { border-color: var(--apple-blue) !important; box-shadow: 0 0 0 3px rgba(0,102,204,.14) !important; outline: 0; } .metric, .summary-card, .info, .readiness-check, .device-card__facts > div, .billing-total-grid article { border: 0; border-radius: 11px; background: var(--apple-parchment); box-shadow: none; } .metric strong, .summary-card strong, .info strong { color: var(--apple-ink); } .workspace__tabs { padding: 4px; border-radius: 9999px; background: #e8e8ed; } .tab-button { min-height: 40px !important; border-radius: 9999px !important; color: #515154 !important; background: transparent !important; } .tab-button.active { color: #fff !important; background: var(--apple-blue) !important; } .tag, .status, .permission, .event-stream-status, .ant-tag { border-radius: 9999px; } .workspace__action-message { color: #186a3b; background: #edf8f1; } .workspace__inline-error { color: #9f2d20; background: #fff1ef; } .workspace__readonly-note { color: var(--apple-muted); background: var(--apple-parchment); } /* Dark editorial moments replace decorative gradients. */ .milestone-panel, .customer-welcome-card { border: 0 !important; border-radius: 0 !important; color: #fff; background: var(--apple-dark) !important; box-shadow: none !important; } .milestone-panel h2, .customer-welcome-card h3 { color: #fff !important; } .milestone-panel p, .customer-welcome-card p { color: #ccc !important; } .customer-welcome-card > button { background: var(--apple-blue) !important; } .conversation-readiness, .conversation-readiness--ready, .conversation-readiness--blocked { background-image: none !important; } .workspace-dialog-backdrop { background: rgba(0,0,0,.48); backdrop-filter: blur(12px); } .workspace-dialog, .subject-management-operations[open] { border-radius: 18px !important; background: #fff !important; box-shadow: 0 18px 60px rgba(0,0,0,.22) !important; } .workspace-dialog__body { background: var(--apple-parchment); } @media (max-width: 900px) { .customer-header, .maintenance-header, .app-header { padding-inline: 12px; } .customer-header__brand > span:last-child, .maintenance-header__brand > span:last-child, .customer-account-button > span, .maintenance-account > span { display: none; } .customer-search, .maintenance-search { width: min(42vw, 280px); } .customer-page, .maintenance-page, .app-page { padding: 24px 20px 64px; } .workspace, .ops-workspace, .customer-page > .workspace { padding: 24px; } } @media (max-width: 720px) { .customer-sider, .maintenance-sider, .app-sider { position: fixed !important; top: 44px; left: 0; z-index: 100; width: 224px !important; min-width: 224px !important; max-width: 224px !important; height: calc(100dvh - 44px); transform: translateX(0); transition: transform 180ms ease; } .customer-sider.ant-layout-sider-collapsed, .maintenance-sider.ant-layout-sider-collapsed, .app-sider.ant-layout-sider-collapsed { transform: translateX(-100%); } .customer-content, .maintenance-content, .app-content { width: 100%; margin-left: 0 !important; } .customer-header__brand > strong, .maintenance-header__brand > strong, .customer-brand-divider, .maintenance-brand-divider, .customer-search, .maintenance-search { display: none; } .customer-page__header h1, .maintenance-page__header h1, .app-page__header h1 { font-size: 34px; } .customer-page__header, .maintenance-page__header, .app-page__header { align-items: flex-start; gap: 16px; } .workspace, .ops-workspace, .customer-page > .workspace { padding: 20px; border-radius: 0 !important; } .workspace-dialog { border-radius: 18px 18px 0 0 !important; } } /* Conversation duration and optional billed-cost overview. */ .usage-overview { display: grid; gap: 18px; margin: 18px 0 26px; color: #242427; } .usage-overview__toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 2px 2px 0; } .usage-overview__toolbar h3 { margin-bottom: 7px; font-size: 22px; font-weight: 650; letter-spacing: -.02em; } .usage-overview__toolbar p:last-child { margin: 0; color: #77777d; font-size: 13px; } .usage-overview__filters { display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: 10px; } .usage-overview__filters label { display: grid; gap: 5px; min-width: 142px; } .usage-overview__filters label > span { color: #77777d; font-size: 11px; font-weight: 600; } .usage-overview__filters label > strong { display: flex; align-items: center; min-height: 40px; padding: 0 15px; border: 1px solid #e5e5e8; border-radius: 999px; color: #424247; background: #fff; font-size: 13px; font-weight: 550; } .usage-overview__filters select { min-height: 40px !important; padding: 0 34px 0 14px; font-size: 13px; } .usage-overview__reload { display: grid; place-items: center; width: 40px; height: 40px; padding: 0 !important; border: 1px solid #e5e5e8 !important; border-radius: 50% !important; color: #4f5359 !important; background: #fff !important; } .usage-overview__mode { display: inline-flex; justify-self: start; gap: 3px; padding: 4px; border-radius: 999px; background: #f0f0f2; } .usage-overview__mode button { display: flex; align-items: center; gap: 7px; min-height: 34px !important; padding: 0 15px !important; border-radius: 999px !important; color: #737378 !important; background: transparent !important; font-size: 12px; font-weight: 600; box-shadow: none !important; } .usage-overview__mode button.active { color: #202024 !important; background: #fff !important; box-shadow: 0 1px 4px rgba(0,0,0,.08) !important; } .usage-overview__mode button:disabled { cursor: not-allowed; opacity: .48; } .usage-overview__metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); overflow: hidden; border: 1px solid #ececee; border-radius: 18px; background: #fff; } .usage-overview__metrics article { position: relative; display: grid; place-items: center; gap: 7px; min-height: 92px; padding: 17px 12px; text-align: center; } .usage-overview__metrics article:not(:last-child)::after { position: absolute; top: 18px; right: 0; bottom: 18px; width: 1px; background: #efeff1; content: ""; } .usage-overview__metrics strong { color: #2f3034; font-size: clamp(17px,2vw,22px); font-weight: 560; letter-spacing: -.025em; } .usage-overview__metrics span { color: #7d7d82; font-size: 12px; } .usage-overview__metrics.is-loading { opacity: .58; } .usage-activity-card { overflow: hidden; padding: 22px 24px 16px; border: 1px solid #ececee; border-radius: 18px; background: #fff; } .usage-activity-card > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; } .usage-activity-card > header > div:first-child { display: flex; align-items: baseline; gap: 10px; } .usage-activity-card > header strong { color: #29292d; font-size: 14px; } .usage-activity-card > header span { color: #909096; font-size: 11px; } .usage-density-tabs { display: flex; gap: 4px; } .usage-density-tabs button { min-height: 30px !important; padding: 0 7px !important; border-radius: 7px !important; color: #96969c !important; background: transparent !important; font-size: 12px; font-weight: 550; } .usage-density-tabs button.active { color: #25252a !important; background: #f1f1f3 !important; } .usage-heatmap-scroll { overflow-x: auto; padding: 2px 2px 10px; scrollbar-width: thin; } .usage-months { display: grid; grid-auto-rows: 14px; gap: 4px; width: max-content; margin: 0 0 9px 30px; color: #919197; font-size: 10px; } .usage-months span { overflow: visible; white-space: nowrap; } .usage-heatmap-wrap { display: flex; align-items: flex-start; gap: 10px; min-width: 820px; } .usage-weekdays { display: grid; grid-template-rows: repeat(3,18px); gap: 8px; width: 20px; padding-top: 7px; color: #aaaab0; font-size: 9px; } .usage-heatmap { display: grid; grid-auto-flow: column; grid-auto-columns: 11px; grid-template-rows: repeat(7,11px); gap: 4px; width: max-content; min-height: 101px; } .usage-heatmap button,.usage-heatmap > span { width: 11px; min-height: 11px !important; height: 11px; padding: 0 !important; border: 0 !important; border-radius: 3px !important; transform: none !important; } .usage-heatmap > span { background: transparent; } .usage-heatmap button { outline-offset: 2px; } .usage-heatmap button.selected { outline: 2px solid #4f7fbf; } .usage-heatmap .level-0,.usage-legend .level-0 { background: #f1f2f4 !important; } .usage-heatmap .level-1,.usage-legend .level-1 { background: #dbe8f8 !important; } .usage-heatmap .level-2,.usage-legend .level-2 { background: #b9d0ef !important; } .usage-heatmap .level-3,.usage-legend .level-3 { background: #82aada !important; } .usage-heatmap .level-4,.usage-legend .level-4 { background: #3977c4 !important; } .usage-activity-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 28px; padding-top: 9px; border-top: 1px solid #f2f2f3; color: #8a8a90; font-size: 11px; } .usage-legend { display: flex; align-items: center; gap: 5px; white-space: nowrap; } .usage-legend i { display: block; width: 10px; height: 10px; border-radius: 3px; } .usage-overview__details { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 16px; } .usage-overview__details > section { overflow: hidden; border: 1px solid #ececee; border-radius: 18px; background: #fff; } .usage-overview__details > section > header { display: flex; justify-content: space-between; padding: 17px 19px 13px; border-bottom: 1px solid #f1f1f2; } .usage-overview__details > section > header strong { font-size: 14px; } .usage-overview__details > section > header span { color: #96969c; font-size: 11px; } .usage-device-list,.usage-recent-list { display: grid; max-height: 360px; overflow-y: auto; } .usage-device-list article,.usage-recent-list article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 19px; border-bottom: 1px solid #f3f3f4; } .usage-device-list article:last-child,.usage-recent-list article:last-child { border-bottom: 0; } .usage-device-list article > div,.usage-recent-list article > div { display: grid; gap: 4px; min-width: 0; } .usage-device-list article > div:last-child,.usage-recent-list article > div:last-child { flex: none; text-align: right; } .usage-device-list strong,.usage-recent-list strong { overflow: hidden; color: #343438; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } .usage-device-list span,.usage-recent-list span,.usage-recent-list time { color: #929298; font-size: 10px; } .usage-recent-list time { flex: 0 0 76px; } .usage-recent-list article > div:nth-child(2) { flex: 1; } .usage-empty { margin: 0; padding: 28px 19px; color: #99999f; font-size: 12px; text-align: center; } @media (max-width: 1080px) { .usage-overview__toolbar { align-items: flex-start; flex-direction: column; } .usage-overview__filters { justify-content: flex-start; width: 100%; } .usage-overview__metrics { grid-template-columns: repeat(3,minmax(0,1fr)); } .usage-overview__metrics article:nth-child(3)::after { display: none; } .usage-overview__details { grid-template-columns: 1fr; } } @media (max-width: 720px) { .usage-overview { margin-inline: -4px; } .usage-overview__filters { display: grid; grid-template-columns: 1fr 1fr; } .usage-overview__filters label { min-width: 0; } .usage-overview__filters label:first-child { grid-column: 1 / -1; } .usage-overview__metrics { grid-template-columns: repeat(2,minmax(0,1fr)); border-radius: 14px; } .usage-overview__metrics article { min-height: 82px; } .usage-overview__metrics article:nth-child(even)::after { display: none; } .usage-overview__metrics article:last-child { grid-column: 1 / -1; } .usage-activity-card { padding-inline: 14px; border-radius: 14px; } .usage-activity-card > header { align-items: flex-start; flex-direction: column; } .usage-activity-card > footer { align-items: flex-start; flex-direction: column; } .usage-overview__details > section { border-radius: 14px; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } } /* Customer experience v1 — Conversation Journal, selected product direction. */ .customer-layout { --journal-paper: #fbfaf7; --journal-card: #fffefd; --journal-ink: #242526; --journal-muted: #73716d; --journal-line: #e7e2da; --journal-blue: #315d9b; --journal-blue-soft: #edf3fb; --journal-coral: #e66d3d; --journal-green: #6ca658; min-height: 100vh; color: var(--journal-ink); background: var(--journal-paper); } .customer-header { height: 74px !important; padding-inline: 26px !important; border-bottom: 1px solid var(--journal-line) !important; color: var(--journal-ink) !important; background: rgba(255,254,252,.98) !important; } .customer-header__brand, .customer-header__brand > strong, .customer-header .ant-btn { color: var(--journal-ink) !important; } .customer-header__brand > strong { font-size: 22px; letter-spacing: -.03em; } .customer-brand-mark { width: 34px; height: 34px; color: var(--journal-ink) !important; } .customer-header__actions { margin-left: auto; } .customer-search { width: min(34vw, 370px); } .customer-search .ant-input-affix-wrapper, .customer-search .ant-input-group-addon .ant-btn { height: 44px; border: 1px solid var(--journal-line) !important; color: var(--journal-ink) !important; background: #fff !important; } .customer-search input { color: var(--journal-ink) !important; } .customer-search input::placeholder { color: #a5a19b !important; } .customer-header .ant-avatar { color: var(--journal-ink); background: #f3ede4; } .customer-layout__body { padding-top: 74px; background: var(--journal-paper); } .customer-sider { top: 74px; height: calc(100vh - 74px); border-right: 1px solid var(--journal-line); background: #fffefd !important; } .customer-sider__title { height: 56px; padding-inline: 22px; color: var(--journal-muted); } .customer-sider .ant-menu { padding: 8px 12px; } .customer-sider .ant-menu-item, .customer-sider .ant-menu-submenu-title { min-height: 52px; margin-block: 3px; border-radius: 8px; color: #494a49; font-size: 15px; } .customer-sider .ant-menu-item-selected, .customer-sider .ant-menu-submenu-selected > .ant-menu-submenu-title { color: var(--journal-blue) !important; background: var(--journal-blue-soft) !important; box-shadow: none !important; } .customer-sider__help { margin: auto 16px 20px; border-radius: 10px; background: #faf7f2; } .customer-content { background: var(--journal-paper) !important; } .customer-page.customer-page { width: min(1500px,100%) !important; padding: 0 28px 64px !important; } .customer-page.customer-page--home { padding-inline: 28px !important; } .customer-page > .ant-breadcrumb, .customer-page > .customer-page__header { display: none; } .customer-page.customer-page > .workspace { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; } .workspace__header { margin: 0 0 20px; padding: 18px 0 20px; border-bottom-color: var(--journal-line); } .workspace__header h2 { font-size: 28px; } .workspace__header > div:first-child > p:last-child { color: var(--journal-muted); } .workspace--home > .workspace__header { display: none; } .household-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 0 0 5px; border-bottom: 1px solid var(--journal-line); scrollbar-width: thin; } .household-tabs button { min-width: 76px; min-height: 34px !important; padding: 0 18px !important; border: 1px solid var(--journal-line) !important; border-radius: 8px !important; color: #4b4946 !important; background: #fffefd !important; white-space: nowrap; } .household-tabs button.active { color: var(--journal-ink) !important; background: #f6ecdf !important; border-color: #e8d8c5 !important; font-weight: 650; } .household-tabs .household-tabs__add { min-width: 38px; width: 38px; padding: 0 !important; } .conversation-journal { display: grid; gap: 7px; } .elder-switcher { display: flex; gap: clamp(18px,4vw,64px); min-height: 85px; overflow-x: auto; padding: 0 26px; align-items: center; } .elder-switcher > button { display: grid; justify-items: center; gap: 2px; min-width: 96px; min-height: 85px !important; padding: 2px 8px !important; border: 0 !important; border-radius: 12px !important; color: var(--journal-ink) !important; background: transparent !important; } .elder-switcher img { width: 64px; height: 64px; border: 4px solid transparent; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px #d9d4cc; } .elder-switcher button.active img { border-color: #fff; box-shadow: 0 0 0 2px var(--journal-blue), 0 4px 14px rgba(49,93,155,.16); } .elder-switcher strong { font-size: 13px; } .elder-switcher small { color: var(--journal-muted); font-size: 11px; } .journal-grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(320px,1fr); gap: 16px; } .journal-grid { margin-bottom: 9px; } .journal-lower-grid { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 16px; } .journal-grid,.journal-lower-grid,.journal-card { min-width: 0; } .journal-card { border: 1px solid var(--journal-line); border-radius: 12px; background: var(--journal-card); box-shadow: 0 2px 8px rgba(75,67,57,.025); } .journal-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 24px 26px 10px; } .journal-card h3 { margin: 0; color: var(--journal-ink); font-size: 22px; line-height: 1.2; } .journal-card header p { margin: 7px 0 0; color: var(--journal-muted); } .elder-presence { padding: 5px 9px; border-radius: 999px; color: #8c6354; background: #f7eee8; font-size: 11px; } .elder-presence.is-online { color: #437d43; background: #edf6e9; } .journal-weekly__chart { display: grid; grid-template-columns: repeat(7,minmax(58px,1fr)); gap: 8px; min-height: 260px; padding: 0 18px 14px; align-items: end; } .journal-weekly__chart article { display: grid; justify-items: center; align-content: end; gap: 7px; min-width: 0; min-height: 245px; padding: 10px 4px 8px; border-radius: 10px; } .journal-weekly__chart article.is-today { background: var(--journal-blue-soft); } .journal-weekly__chart article > div { display: grid; text-align: center; } .journal-weekly__chart time { color: #4f4e4b; font-size: 12px; } .journal-weekly__chart small { color: var(--journal-muted); font-size: 10px; } .journal-weekly__chart strong { color: #77736e; font-size: 11px; font-weight: 500; } .journal-duration { width: 20px; min-height: 3px; border-radius: 4px 4px 2px 2px; background: #5e86c1; } .is-today .journal-duration { background: var(--journal-blue); } .journal-mood { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #aaa6a0; background: #eeeae4; } .journal-mood--positive { color: #5e9a4d; background: #ecf6e7; } .journal-mood--attention { color: var(--journal-coral); background: #fff0e8; } .journal-weekly > footer { display: flex; justify-content: space-between; gap: 12px; padding: 12px 26px 18px; border-top: 1px solid var(--journal-line); color: var(--journal-muted); font-size: 11px; } .journal-weekly > footer span { display: flex; align-items: center; gap: 7px; } .journal-legend-duration { width: 12px; height: 12px; border-radius: 3px; background: #5e86c1; } .latest-chat { padding-bottom: 18px; } .latest-chat__topics { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 24px 10px; } .latest-chat__topics span { padding: 5px 10px; border-radius: 7px; color: #4e5865; background: #eff2f6; font-size: 12px; } .latest-chat blockquote { margin: 4px 24px 16px; padding: 16px; border: 1px solid var(--journal-line); border-radius: 10px; color: #4f4d49; font-size: 14px; line-height: 1.7; } .latest-chat__mood { display: flex; gap: 12px; margin: 0 24px 16px; padding: 15px 0; border-top: 1px dashed var(--journal-line); } .latest-chat__mood > .anticon { margin-top: 2px; color: var(--journal-coral); font-size: 22px; } .latest-chat__mood div { display: grid; gap: 4px; } .latest-chat__mood strong { font-size: 14px; } .latest-chat__mood small { color: var(--journal-muted); line-height: 1.6; } .latest-chat > button { width: calc(100% - 48px); margin: 0 24px; border-radius: 8px !important; background: var(--journal-blue) !important; } .journal-empty { display: grid; place-items: center; gap: 12px; padding: 48px 24px 28px; color: var(--journal-muted); text-align: center; } .journal-empty > .anticon { font-size: 32px; } .family-attention > header { justify-content: flex-start; color: var(--journal-coral); } .family-attention > button { display: grid; gap: 7px; width: calc(100% - 46px); margin: 8px 23px 24px; padding: 18px !important; border: 1px solid #f0d9c9 !important; border-radius: 10px !important; color: #694833 !important; background: #fff7ef !important; text-align: left; } .family-attention > button span { color: #8b6d5a; font-size: 12px; line-height: 1.6; } .family-attention__calm { display: flex; align-items: center; gap: 12px; margin: 8px 23px 24px; padding: 18px; border-radius: 10px; color: #52704c; background: #f1f7ee; line-height: 1.6; } .recent-activity > div { display: grid; padding: 0 22px; } .recent-activity > div > button { display: grid; grid-template-columns: 28px 78px minmax(150px,1fr) minmax(90px,.7fr); align-items: center; gap: 10px; min-height: 58px !important; padding: 8px 4px !important; border: 0 !important; border-bottom: 1px solid var(--journal-line) !important; border-radius: 0 !important; color: var(--journal-ink) !important; background: transparent !important; text-align: left; } .recent-activity > div > button > .anticon { color: var(--journal-blue); font-size: 18px; } .recent-activity time,.recent-activity span { overflow: hidden; color: var(--journal-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .recent-activity > footer { display: flex; justify-content: center; padding: 8px 20px 14px; } .recent-activity > footer button { min-height: 32px !important; color: var(--journal-blue) !important; background: transparent !important; } .customer-layout button:not(.ant-btn) { border-radius: 8px !important; } .customer-layout button:disabled, .customer-layout [role="button"][aria-disabled="true"] { cursor: not-allowed !important; opacity: .5; transform: none !important; } .subject-avatar-upload { position: relative; display: grid; grid-row: span 2; place-items: center; align-content: center; gap: 7px; min-height: 132px; overflow: hidden; border: 1px dashed #c9c0b5; border-radius: 12px; color: var(--journal-blue); background: #fbf8f3; cursor: pointer; } .subject-avatar-upload input,.subject-avatar-editor input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; } .subject-avatar-upload > .anticon { font-size: 27px; } .subject-avatar-upload img { width: 108px; height: 108px; border-radius: 50%; object-fit: cover; } .subject-avatar-upload small { color: var(--journal-muted); } .subject-avatar-error { grid-column: 1 / -1; margin: 0; color: #a94132; font-size: 12px; } .subject-profile-card__avatar { overflow: hidden; } .subject-profile-card__avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; } .subject-avatar-editor { position: relative; display: flex; align-items: center; gap: 18px; width: max-content; cursor: pointer; } .subject-avatar-editor img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; } .subject-avatar-editor > span { color: var(--journal-blue); } .conversation-row { grid-template-columns: 34px minmax(0,1fr) auto !important; } .conversation-row__mood { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #9e9a94; background: #efede9; } .conversation-row__mood--positive { color: #5e984e; background: #edf6e9; } .conversation-row__mood--attention { color: var(--journal-coral); background: #fff0e8; } .conversation-row > div { min-width: 0; } .conversation-row > div > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .conversation-row > div > small { color: var(--journal-blue); } .permission-matrix-card { margin-top: 18px; } .permission-matrix-note { margin: 0 0 16px; color: var(--journal-muted); line-height: 1.65; } .permission-matrix-wrap { overflow-x: auto; } .permission-matrix { width: 100%; min-width: 700px; border-collapse: collapse; } .permission-matrix th,.permission-matrix td { padding: 12px 14px; border-bottom: 1px solid var(--journal-line); text-align: center; } .permission-matrix thead th { color: var(--journal-muted); background: #faf7f2; font-size: 12px; } .permission-matrix tbody th { display: grid; gap: 2px; text-align: left; } .permission-matrix tbody th strong { font-size: 13px; } .permission-matrix tbody th small { color: #9a9690; font-size: 10px; font-weight: 400; } .permission-matrix td { color: #c8c3bc; } .permission-matrix td.is-enabled { color: var(--journal-blue); } .customer-profile { display: grid; gap: 18px; padding-top: 14px; } @media (max-width: 1050px) { .journal-grid,.journal-lower-grid { grid-template-columns: 1fr; } .elder-switcher { gap: 24px; } } @media (max-width: 720px) { .customer-header { height: 58px !important; } .customer-layout__body { padding-top: 58px; } .customer-sider { top: 58px; height: calc(100dvh - 58px); } .customer-page.customer-page,.customer-page.customer-page--home { padding: 10px 12px 44px !important; } .customer-page.customer-page > .workspace { padding: 0 !important; } .customer-header__brand > strong { display: block; font-size: 18px; } .household-tabs { padding-inline: 2px; } .elder-switcher { min-height: 116px; padding-inline: 8px; } .elder-switcher img { width: 62px; height: 62px; } .elder-switcher > button { min-width: 78px; min-height: 100px !important; } .journal-card { overflow: hidden; } .journal-weekly__chart { width: 100%; max-width: 100%; overflow-x: auto; grid-template-columns: repeat(7,64px); justify-content: start; } .journal-card > header { padding-inline: 18px; } .latest-chat blockquote,.latest-chat__mood { margin-inline: 18px; } .latest-chat > button { width: calc(100% - 36px); margin-inline: 18px; } .recent-activity > div > button { grid-template-columns: 28px minmax(0,1fr); gap: 5px 10px; } .recent-activity > div > button > .anticon { grid-column: 1; grid-row: 1 / 4; } .recent-activity time,.recent-activity strong,.recent-activity span { grid-column: 2; } } /* Keep the selected visual target authoritative over legacy workspace rules. */ .customer-page--conversations .memory-timeline-grid { display: grid; grid-template-columns: minmax(280px,.78fr) minmax(420px,1.28fr) minmax(220px,.62fr); gap: 16px; } .customer-page--conversations .memory-timeline-grid .conversation-list { border-right: 1px solid #eadeda; background: #fffdfb; } .customer-page--conversations .memory-timeline-list .conversation-row { grid-template-columns: 16px 34px minmax(0,1fr) !important; } .customer-page--conversations .memory-timeline-list .conversation-row > .tag { grid-column: 3; } .customer-page--conversations .workspace__header, .customer-page--models .workspace__header { justify-content: space-between; } .customer-page--conversations .workspace__header > div:first-child, .customer-page--models .workspace__header > div:first-child { display: block; } .memory-summary-block--story { border-color: #ead7bf; background: #fffaf1; } .memory-summary-block--story strong { display: block; margin-bottom: 7px; color: #644d3e; font-family: "Noto Serif SC", "Songti SC", serif; } @media (max-width: 1180px) { .customer-page--conversations .memory-timeline-grid { grid-template-columns: minmax(270px,.8fr) minmax(390px,1.2fr); } .customer-page--conversations .memory-model-card { grid-column: 1 / -1; } } @media (max-width: 760px) { .customer-page--conversations .memory-timeline-grid { grid-template-columns: 1fr; } .customer-page--conversations .memory-model-card { grid-column: auto; } } /* Keep family-facing interactive cards in the warm, calm customer palette. */ .customer-page .timeline-day-group__header:not(.ant-btn) { border: 0 !important; border-radius: 0 !important; color: #66514a !important; background: #fffaf7 !important; box-shadow: none !important; } .customer-page .timeline-day-group__header:not(.ant-btn):hover { color: #793b2c !important; background: #f8eeea !important; } :is(.customer-page, .maintenance-workspace) .model-provider-group button:not(.ant-btn) { border: 1px solid #e6d9d4 !important; color: #594a45 !important; background: #fff !important; box-shadow: none !important; } :is(.customer-page, .maintenance-workspace) .model-provider-group button:not(.ant-btn):hover { border-color: #cfa79c !important; color: #6e3f34 !important; background: #fff8f5 !important; } :is(.customer-page, .maintenance-workspace) .model-provider-group button.is-selected:not(.ant-btn) { border-color: #78919a !important; color: #344e5a !important; background: #edf4f6 !important; box-shadow: inset 0 0 0 1px #78919a !important; } .ops-content-model-workspace { display: grid; gap: 16px; } .customer-page .reminder-todos { display: grid; overflow: hidden; margin: 0 18px 18px; border: 1px solid #eee2de; border-radius: 12px; background: #fff; } .customer-page .reminder-todo:not(.ant-btn) { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 70px; padding: 13px 16px !important; border: 0 !important; border-bottom: 1px solid #f0e7e4 !important; border-radius: 0 !important; color: #554641 !important; background: #fff !important; box-shadow: none !important; text-align: left; } .customer-page .reminder-todo:last-child { border-bottom: 0 !important; } .customer-page .reminder-todo:hover:not(.ant-btn) { color: #554641 !important; background: #fff8f5 !important; } .customer-page .reminder-todo > span { width: 7px; height: 7px; border-radius: 50%; background: #6f91a1; } .customer-page .reminder-todo--warm > span { background: #d27755; } .customer-page .reminder-todo strong, .customer-page .reminder-todo p { margin: 0; } .customer-page .reminder-todo strong { color: #4e3e39; font-size: 13px; } .customer-page .reminder-todo p { margin-top: 4px; color: #8b7770; font-size: 11px; font-weight: 400; line-height: 1.45; } .customer-page .reminder-todo small { color: #8e4939; font-size: 11px; white-space: nowrap; } .customer-page .reminder-history__summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; margin: 0 18px 18px; border: 1px solid #eee2de; border-radius: 12px; background: #fff; } .customer-page .reminder-history__summary > button:not(.ant-btn), .customer-page .reminder-history__summary > div { display: grid; gap: 5px; min-height: 84px; padding: 17px 18px !important; border: 0 !important; border-right: 1px solid #f0e7e4 !important; border-radius: 0 !important; color: #554641 !important; background: #fff !important; box-shadow: none !important; text-align: left; } .customer-page .reminder-history__summary > *:last-child { border-right: 0 !important; } .customer-page .reminder-history__summary > button:hover:not(.ant-btn) { color: #554641 !important; background: #fff8f5 !important; } .customer-page .reminder-history__summary strong { color: #65473e; font-size: 23px; } .customer-page .reminder-history__summary span { color: #8b7770; font-size: 11px; font-weight: 500; } @media (max-width: 760px) { .memory-timeline-grid .conversation-list { max-height: min(640px, 68dvh); } .customer-page .reminder-history__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .customer-page .reminder-history__summary > *:nth-child(2) { border-right: 0 !important; } .customer-page .reminder-history__summary > *:nth-child(-n+2) { border-bottom: 1px solid #f0e7e4 !important; } }