| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833 |
- /* All visual values are owned by this prototype's token layer. */
- :root, [data-preview-palette="midnight"] {
- color-scheme: light;
- --bg: #edf1f6;
- --surface: #ffffff;
- --surface-soft: #f5f7fa;
- --surface-hover: #eaf0f7;
- --rail-bg: #f0f3f8;
- --ink: #172337;
- --ink-secondary: #495b74;
- --ink-muted: #61728a;
- --line: #dce3ed;
- --line-strong: #c5d0df;
- --accent: #315acb;
- --accent-hover: #2548aa;
- --accent-soft: #eaf0ff;
- --on-accent: #ffffff;
- --nav-bg: #18243a;
- --nav-ink: #f3f6fc;
- --nav-text: #c4cfdf;
- --nav-muted: #9aadc8;
- --nav-line: #30405a;
- --nav-hover: #24334d;
- --nav-active: #2c4167;
- --nav-accent: #b4ccff;
- --nav-brand: #4269d8;
- --nav-on-brand: #ffffff;
- --theme-preview-light: #ffffff;
- --theme-preview-dark: #212c40;
- --theme-preview-line: #c4cfdf;
- --theme-preview-line-dark: #71829d;
- --success: #207550;
- --success-soft: #edf7f1;
- --warning: #91600e;
- --warning-soft: #fff7e8;
- --danger: #c33f42;
- --danger-soft: #fff0f0;
- --info: #315fa8;
- --info-soft: #edf3fd;
- --metric-fill: #5476ca;
- --blue: #476184;
- --blue-soft: #edf2fa;
- --avatar-ink: #46618c;
- --avatar-bg: #eaf0fa;
- --avatar-ink-alt: #596780;
- --avatar-bg-alt: #edf0f5;
- --neutral: #687385;
- --neutral-soft: #eff1f5;
- --overlay: #18223966;
- --shadow: 0 16px 56px #17243c1f;
- --motion-fast: 120ms;
- --motion-page: 160ms;
- --motion-detail: 200ms;
- --motion-panel: 240ms;
- --motion-exit: 160ms;
- --ease-standard: cubic-bezier(.2, 0, 0, 1);
- --fs-xs: 11px;
- --fs-sm: 12px;
- --fs-caption: 13px;
- --fs-body: 14px;
- --fs-input: 16px;
- --fs-title: 20px;
- --fs-heading: 28px;
- --fs-display: 36px;
- --r-sm: 6px;
- --r-md: 10px;
- --r-lg: 16px;
- --r-round: 999px;
- --nav-width: 200px;
- --list-width: 274px;
- --result-width: 320px;
- --font: "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
- --mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
- }
- :root[data-theme="dark"], [data-preview-palette="midnight"][data-preview-theme="dark"] {
- color-scheme: dark;
- --bg: #11151c;
- --surface: #191f29;
- --surface-soft: #1e2531;
- --surface-hover: #2a3342;
- --rail-bg: #141b26;
- --nav-bg: #0c1320;
- --nav-hover: #1a2940;
- --nav-active: #243957;
- --nav-line: #25324a;
- --ink: #edf1f8;
- --ink-secondary: #b8c2d2;
- --ink-muted: #98a6bc;
- --line: #2d3747;
- --line-strong: #414f65;
- --accent: #93b5ff;
- --accent-hover: #b0c9ff;
- --accent-soft: #253451;
- --on-accent: #14203b;
- --success: #8ed2ac;
- --success-soft: #1d352c;
- --warning: #e8bf77;
- --warning-soft: #382f22;
- --danger: #f2a0a5;
- --danger-soft: #3b272f;
- --info: #acc9fa;
- --info-soft: #273a55;
- --metric-fill: #a8c2ff;
- --blue: #aac1e4;
- --blue-soft: #28364b;
- --avatar-ink: #b7cdf2;
- --avatar-bg: #2b3b56;
- --avatar-ink-alt: #bac7db;
- --avatar-bg-alt: #2d3748;
- --neutral: #acb7c9;
- --neutral-soft: #2b3341;
- --overlay: #070b12a6;
- --shadow: 0 18px 70px #00000055;
- }
- /* Palettes replace the full surface hierarchy; semantic status colors stay fixed. */
- :root[data-palette="platinum"], [data-preview-palette="platinum"] {
- --bg: #f2f3f5; --surface: #ffffff; --surface-soft: #f7f7f8; --surface-hover: #e9eaec; --rail-bg: #eceef0;
- --ink: #202124; --ink-secondary: #45474b; --ink-muted: #62666d; --line: #dfe1e4; --line-strong: #c4c7cc;
- --accent: #25272a; --accent-hover: #111214; --accent-soft: #e8e9eb; --on-accent: #ffffff;
- --nav-bg: #202124; --nav-ink: #f5f5f6; --nav-text: #c6c8cc; --nav-muted: #a9adb4; --nav-line: #393b3f;
- --nav-hover: #303236; --nav-active: #3b3d41; --nav-accent: #ffffff; --nav-brand: #f5f5f6; --nav-on-brand: #202124;
- --metric-fill: #6c737d; --blue: #5c6572; --blue-soft: #eceef1;
- --avatar-ink: #565d67; --avatar-bg: #e9eaec; --avatar-ink-alt: #62666d; --avatar-bg-alt: #eeeff0;
- --neutral: #656a72; --neutral-soft: #eceef0; --overlay: #11121470; --shadow: 0 16px 56px #2021241f;
- }
- :root[data-palette="platinum"][data-theme="dark"], [data-preview-palette="platinum"][data-preview-theme="dark"] {
- --bg: #18191b; --surface: #222426; --surface-soft: #292b2e; --surface-hover: #383b3f; --rail-bg: #1d1f21;
- --ink: #f2f3f4; --ink-secondary: #c5c8cc; --ink-muted: #a7abb1; --line: #383b3f; --line-strong: #565a60;
- --accent: #f1f2f3; --accent-hover: #ffffff; --accent-soft: #373a3e; --on-accent: #202124;
- --nav-bg: #111214; --nav-ink: #f2f3f4; --nav-text: #c6c8cc; --nav-muted: #a4a8ae; --nav-line: #303236;
- --nav-hover: #25272a; --nav-active: #34373b; --nav-accent: #f1f2f3; --nav-brand: #f1f2f3; --nav-on-brand: #202124;
- --metric-fill: #c0c4ca; --blue: #bfc5ce; --blue-soft: #34373b;
- --avatar-ink: #c9cdd3; --avatar-bg: #373a3e; --avatar-ink-alt: #c5c8cd; --avatar-bg-alt: #393c40;
- --neutral: #bec2c8; --neutral-soft: #373a3e; --overlay: #08090bb0; --shadow: 0 18px 70px #00000066;
- }
- :root[data-palette="ice"], [data-preview-palette="ice"] {
- --bg: #f6f8fc; --surface: #ffffff; --surface-soft: #f1f4f9; --surface-hover: #e7ecf5; --rail-bg: #edf1f7;
- --ink: #202a3c; --ink-secondary: #46536b; --ink-muted: #606e86; --line: #dce2ec; --line-strong: #c2ccdc;
- --accent: #4056c7; --accent-hover: #3045ae; --accent-soft: #e8ecfb; --on-accent: #ffffff;
- --nav-bg: #e9edf5; --nav-ink: #202a3c; --nav-text: #394761; --nav-muted: #53617a; --nav-line: #d3dae7;
- --nav-hover: #dce3ef; --nav-active: #d9e1f2; --nav-accent: #4056c7; --nav-brand: #4056c7; --nav-on-brand: #ffffff;
- --metric-fill: #536ac9; --blue: #4056a3; --blue-soft: #e9eefb;
- --avatar-ink: #475b9a; --avatar-bg: #e6ebf7; --avatar-ink-alt: #55647f; --avatar-bg-alt: #e9edf3;
- --neutral: #626e83; --neutral-soft: #e9edf3; --overlay: #18243b66; --shadow: 0 16px 56px #27354d1c;
- }
- :root[data-palette="ice"][data-theme="dark"], [data-preview-palette="ice"][data-preview-theme="dark"] {
- --bg: #171b24; --surface: #202632; --surface-soft: #272f3d; --surface-hover: #343f51; --rail-bg: #1b222e;
- --ink: #f0f3fa; --ink-secondary: #bec8d9; --ink-muted: #a1aec3; --line: #343e4f; --line-strong: #515f76;
- --accent: #b4c2ff; --accent-hover: #cbd4ff; --accent-soft: #303957; --on-accent: #1d2546;
- --nav-bg: #111722; --nav-ink: #f0f3fa; --nav-text: #c7d0e0; --nav-muted: #a6b3c9; --nav-line: #2b3546;
- --nav-hover: #212b3c; --nav-active: #2c3954; --nav-accent: #b4c2ff; --nav-brand: #b4c2ff; --nav-on-brand: #1d2546;
- --metric-fill: #acbcff; --blue: #b6c7fa; --blue-soft: #2b354c;
- --avatar-ink: #becbfa; --avatar-bg: #2d3854; --avatar-ink-alt: #c1cce0; --avatar-bg-alt: #303a4c;
- --neutral: #bdc7d8; --neutral-soft: #303947; --overlay: #080c14b0; --shadow: 0 18px 70px #00000066;
- }
- :root[data-palette="clay"], [data-preview-palette="clay"] {
- --bg: #f3f0eb; --surface: #fffdfa; --surface-soft: #f7f3ee; --surface-hover: #ede7df; --rail-bg: #eee9e2;
- --ink: #2a2623; --ink-secondary: #514943; --ink-muted: #70665f; --line: #e2dbd3; --line-strong: #cfc4b9;
- --accent: #af482b; --accent-hover: #92391f; --accent-soft: #f6e8e1; --on-accent: #ffffff;
- --nav-bg: #302c29; --nav-ink: #f7f3ef; --nav-text: #d5cbc3; --nav-muted: #b9ada4; --nav-line: #49413c;
- --nav-hover: #403a35; --nav-active: #50453d; --nav-accent: #f1ad8e; --nav-brand: #f1ad8e; --nav-on-brand: #30211b;
- --metric-fill: #ad674d; --blue: #665b55; --blue-soft: #eee9e4;
- --avatar-ink: #795643; --avatar-bg: #f0e7df; --avatar-ink-alt: #6d5d52; --avatar-bg-alt: #eee9e4;
- --neutral: #70665f; --neutral-soft: #eee9e4; --overlay: #211b1770; --shadow: 0 16px 56px #38281e1c;
- }
- :root[data-palette="clay"][data-theme="dark"], [data-preview-palette="clay"][data-preview-theme="dark"] {
- --bg: #1d1a18; --surface: #292522; --surface-soft: #322d29; --surface-hover: #433a34; --rail-bg: #221f1c;
- --ink: #f3eee9; --ink-secondary: #d0c5bc; --ink-muted: #b2a69c; --line: #403832; --line-strong: #5d5047;
- --accent: #f0a184; --accent-hover: #ffb89c; --accent-soft: #49342c; --on-accent: #3b2119;
- --nav-bg: #171513; --nav-ink: #f3eee9; --nav-text: #d2c7be; --nav-muted: #afa197; --nav-line: #38302b;
- --nav-hover: #2b2521; --nav-active: #3c3029; --nav-accent: #f0a184; --nav-brand: #f0a184; --nav-on-brand: #3b2119;
- --metric-fill: #e09a7c; --blue: #d3b49e; --blue-soft: #3c332d;
- --avatar-ink: #e3b99c; --avatar-bg: #40332c; --avatar-ink-alt: #d7c2b2; --avatar-bg-alt: #3a332e;
- --neutral: #cec0b5; --neutral-soft: #39332e; --overlay: #0d0a08b0; --shadow: 0 18px 70px #00000066;
- }
- :root[data-palette="slate"], [data-preview-palette="slate"] {
- --bg: #f1f0f5; --surface: #ffffff; --surface-soft: #f6f5f9; --surface-hover: #eae8f0; --rail-bg: #eceaf1;
- --ink: #282633; --ink-secondary: #4c4a5d; --ink-muted: #666476; --line: #dfdde7; --line-strong: #c7c3d2;
- --accent: #6952a3; --accent-hover: #55418b; --accent-soft: #efebf8; --on-accent: #ffffff;
- --nav-bg: #282735; --nav-ink: #f4f2fa; --nav-text: #d1cde0; --nav-muted: #b2adc6; --nav-line: #403e50;
- --nav-hover: #373546; --nav-active: #48445d; --nav-accent: #c9baf1; --nav-brand: #c9baf1; --nav-on-brand: #302844;
- --metric-fill: #7a66ad; --blue: #5e5b76; --blue-soft: #eeedf3;
- --avatar-ink: #655a91; --avatar-bg: #eeebf5; --avatar-ink-alt: #666174; --avatar-bg-alt: #efedf2;
- --neutral: #686678; --neutral-soft: #edecf1; --overlay: #201d2b70; --shadow: 0 16px 56px #2826331c;
- }
- :root[data-palette="slate"][data-theme="dark"], [data-preview-palette="slate"][data-preview-theme="dark"] {
- --bg: #1b1a22; --surface: #26242f; --surface-soft: #302d3b; --surface-hover: #413d50; --rail-bg: #211f29;
- --ink: #f2f0f8; --ink-secondary: #c9c5d7; --ink-muted: #aaa6bc; --line: #3d394a; --line-strong: #5a556d;
- --accent: #c9baf1; --accent-hover: #dacff7; --accent-soft: #3c354f; --on-accent: #302844;
- --nav-bg: #17161e; --nav-ink: #f2f0f8; --nav-text: #d0cce0; --nav-muted: #aaa5bf; --nav-line: #343141;
- --nav-hover: #282634; --nav-active: #383447; --nav-accent: #c9baf1; --nav-brand: #c9baf1; --nav-on-brand: #302844;
- --metric-fill: #c1b1ee; --blue: #c3badf; --blue-soft: #373343;
- --avatar-ink: #c9bdf0; --avatar-bg: #373249; --avatar-ink-alt: #c9c2da; --avatar-bg-alt: #393644;
- --neutral: #c4bfd2; --neutral-soft: #383543; --overlay: #0c0b10b0; --shadow: 0 18px 70px #00000066;
- }
- * { box-sizing: border-box; }
- html, body { margin: 0; height: 100%; }
- body { background: var(--bg); color: var(--ink); font: var(--fs-body)/1.6 var(--font); -webkit-font-smoothing: antialiased; }
- button, input, textarea, select { font: inherit; }
- button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
- button { cursor: pointer; color: inherit; border: 0; background: none; }
- button:disabled { opacity: .5; cursor: not-allowed; }
- a { color: var(--accent); text-decoration: none; }
- button, a, select { touch-action: manipulation; }
- button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
- h1, h2, h3, h4, p { margin: 0; }
- h1 { font-size: var(--fs-heading); font-weight: 600; letter-spacing: -.7px; line-height: 1.35; }
- h2 { font-size: var(--fs-title); font-weight: 600; letter-spacing: -.3px; }
- h3 { font-size: var(--fs-input); font-weight: 600; }
- small { font-size: var(--fs-sm); }
- svg.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
- .icon-sm svg.icon { width: 16px; height: 16px; }
- .muted { color: var(--ink-muted); }
- .secondary { color: var(--ink-secondary); }
- .mono { font-family: var(--mono); font-size: var(--fs-sm); }
- .eyebrow { font: 500 var(--fs-xs)/1.5 var(--mono); letter-spacing: 1.6px; color: var(--ink-muted); text-transform: uppercase; }
- .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
- .grow { flex: 1; min-width: 0; }
- .row { display: flex; align-items: center; gap: 12px; }
- .spread { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
- .stack { display: grid; gap: 16px; }
- .divider { border-top: 1px solid var(--line); margin: 24px 0; }
- .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 0 16px; border-radius: var(--r-sm); font-size: var(--fs-caption); font-weight: 500; white-space: nowrap; transition: background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
- .btn:hover { background: var(--surface-hover); }
- .btn-primary { background: var(--accent); color: var(--on-accent); }
- .btn-primary:hover { background: var(--accent-hover); }
- .btn-outline { border: 1px solid var(--line-strong); background: var(--surface); }
- .btn-soft { color: var(--accent); background: var(--accent-soft); }
- .btn-danger { color: var(--danger); background: var(--danger-soft); }
- .icon-btn { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; border-radius: var(--r-sm); flex-shrink: 0; }
- .icon-btn:hover { background: var(--surface-hover); }
- .text-link { color: var(--accent); min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0 5px; font-size: var(--fs-caption); }
- .badge { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-xs); line-height: 22px; padding: 0 7px; border-radius: var(--r-sm); background: var(--surface-hover); color: var(--ink-secondary); white-space: nowrap; }
- .badge.accent { background: var(--info-soft); color: var(--info); }
- .badge.success { background: var(--success-soft); color: var(--success); }
- .badge.warning { background: var(--warning-soft); color: var(--warning); }
- .badge.danger { background: var(--danger-soft); color: var(--danger); }
- .dot { display: inline-block; height: 6px; width: 6px; background: currentColor; border-radius: var(--r-round); flex-shrink: 0; }
- .avatar { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: var(--r-md); font-size: var(--fs-title); font-family: "Microsoft YaHei", serif; color: var(--avatar-ink); background: var(--avatar-bg); flex: 0 0 auto; font-weight: 500; }
- .avatar.sand, .avatar.rose { color: var(--avatar-ink-alt); background: var(--avatar-bg-alt); }
- .avatar.blue { color: var(--avatar-ink); background: var(--avatar-bg); }
- .avatar.neutral { color: var(--neutral); background: var(--neutral-soft); }
- .avatar.person { font: 600 var(--fs-caption)/1 var(--font); border-radius: var(--r-round); background: var(--surface-hover); color: var(--ink-secondary); }
- .avatar.small { width: 30px; height: 30px; font-size: var(--fs-body); border-radius: var(--r-sm); }
- .avatar.large { width: 64px; height: 64px; font-size: var(--fs-heading); border-radius: var(--r-lg); }
- .avatar-stack { display: flex; padding-left: 0; }
- .avatar-stack .avatar { border: 2px solid var(--surface); margin-left: -6px; }
- .avatar-stack .avatar:first-child { margin-left: 0; }
- .demo-strip { height: 44px; background: var(--bg); color: var(--ink-secondary); display: flex; justify-content: center; align-items: center; gap: 12px; font-size: var(--fs-xs); border-bottom: 1px solid var(--line); }
- .demo-strip .demo-label { display: flex; gap: 6px; align-items: center; }
- .demo-strip button { font-size: var(--fs-xs); text-decoration: underline; text-underline-offset: 3px; }
- .demo-strip .strip-control { min-height: 44px; padding: 0 12px; }
- .app-shell { height: calc(100dvh - 44px); display: grid; grid-template-columns: var(--nav-width) minmax(0, 1fr); overflow: hidden; }
- .sidebar {
- --ink: var(--nav-ink);
- --ink-secondary: var(--nav-text);
- --ink-muted: var(--nav-muted);
- --line: var(--nav-line);
- --surface-hover: var(--nav-hover);
- --accent: var(--nav-accent);
- --accent-soft: var(--nav-active);
- --on-accent: var(--nav-bg);
- background: var(--nav-bg); color: var(--nav-ink); padding: 28px 16px 16px;
- display: flex; flex-direction: column; border-right: 1px solid var(--nav-line); overflow-y: auto;
- }
- .sidebar .brand-mark { background: var(--nav-brand); color: var(--nav-on-brand); }
- .sidebar .nav-link.active { color: var(--nav-ink); box-shadow: inset 3px 0 0 var(--nav-accent); }
- .sidebar .nav-count { background: var(--nav-accent); color: var(--nav-bg); }
- .sidebar .profile-button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
- .brand { display: flex; gap: 10px; align-items: center; padding: 0 12px; }
- .brand-mark { background: var(--accent); color: var(--on-accent); display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: var(--r-md); }
- .brand-mark svg { width: 22px; height: 22px; }
- .brand-word { font-size: var(--fs-title); font-weight: 650; letter-spacing: -.8px; }
- .workspace-label { padding: 25px 12px 14px; font-size: var(--fs-xs); color: var(--ink-muted); display: flex; align-items: center; gap: 7px; }
- .nav-items { display: grid; gap: 6px; }
- .nav-link { display: flex; align-items: center; min-height: 46px; gap: 12px; padding: 0 12px; color: var(--ink-secondary); border-radius: var(--r-sm); font-size: var(--fs-caption); transition: background .15s; }
- .nav-link:hover { background: var(--surface-hover); }
- .nav-link.active { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
- .nav-count { margin-left: auto; min-width: 20px; text-align: center; font-size: var(--fs-xs); background: var(--accent); color: var(--on-accent); border-radius: var(--r-sm); }
- .nav-section-label { padding: 24px 12px 10px; color: var(--ink-muted); font-size: var(--fs-xs); }
- .nav-project { display: flex; align-items: center; gap: 8px; color: var(--ink-secondary); font-size: var(--fs-sm); text-align: left; min-height: 44px; padding: 0 12px; border-radius: var(--r-sm); }
- .nav-project:hover { background: var(--surface-hover); }
- .project-dot { width: 7px; height: 7px; border: 1.5px solid var(--ink-muted); border-radius: var(--r-sm); flex-shrink: 0; }
- .sidebar-bottom { margin-top: auto; }
- .sidebar-help { border-bottom: 1px solid var(--line); padding: 14px 10px; color: var(--ink-muted); font-size: var(--fs-xs); }
- .profile-button { width: 100%; display: flex; align-items: center; gap: 9px; min-height: 66px; text-align: left; }
- .profile-button strong { font-size: var(--fs-caption); font-weight: 500; }
- .profile-button small { display: block; color: var(--ink-muted); font-size: var(--fs-xs); }
- .workspace { min-width: 0; min-height: 0; background: var(--bg); overflow: auto; position: relative; scrollbar-gutter: stable; }
- .workspace:has(> .conversation-layout) { overflow: hidden; scrollbar-gutter: auto; }
- .page { padding: 30px 32px 36px; width: calc(100% - 48px); min-height: calc(100% - 48px); max-width: 1440px; margin: 24px auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); }
- .page-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 26px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
- .page-heading p { color: var(--ink-muted); margin-top: 6px; font-size: var(--fs-caption); }
- .breadcrumbs { display: flex; gap: 8px; color: var(--ink-muted); align-items: center; margin-bottom: 20px; font-size: var(--fs-sm); }
- .breadcrumbs button { min-height: 44px; color: var(--ink-secondary); }
- .section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; gap: 12px; }
- .section-heading h2 { font-size: var(--fs-input); }
- .section-count { font-family: var(--mono); font-size: var(--fs-sm); margin-left: 8px; color: var(--ink-muted); }
- .input-wrap { display: flex; gap: 8px; align-items: center; background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--r-sm); min-height: 44px; padding: 0 12px; color: var(--ink-muted); }
- .input-wrap input { width: 100%; min-width: 0; background: none; border: none; color: var(--ink); min-height: 42px; font-size: var(--fs-caption); }
- .input-wrap:focus-within { border-color: var(--accent); }
- .input-wrap input:focus { outline: none; }
- input::placeholder, textarea::placeholder { color: var(--ink-muted); }
- .toolbar { display: flex; align-items: center; gap: 16px; justify-content: space-between; padding-bottom: 20px; }
- .toolbar > .tabs { min-width: 0; max-width: 100%; }
- .toolbar > .input-wrap { width: 240px; max-width: 100%; flex-shrink: 0; }
- .tabs { display: flex; align-items: center; gap: 5px; overflow-x: auto; scrollbar-width: none; }
- .tab { min-height: 44px; padding: 0 14px; white-space: nowrap; border-radius: var(--r-sm); color: var(--ink-secondary); font-size: var(--fs-caption); }
- .tab:hover { background: var(--surface-hover); }
- .tab.active { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
- .tab .count { margin-left: 5px; font: var(--fs-xs) var(--mono); opacity: .8; }
- .segmented { display: inline-flex; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 3px; background: var(--surface-soft); }
- .segmented .tab { min-height: 44px; }
- .segmented .tab.active { background: var(--surface); box-shadow: 0 1px 3px var(--line); color: var(--ink); }
- .conversation-layout { height: 100%; display: grid; grid-template-columns: var(--list-width) minmax(0, 1fr) var(--result-width); }
- .conversation-list { background: var(--surface-soft); border-right: 1px solid var(--line-strong); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
- .list-title { display: flex; align-items: center; justify-content: space-between; padding: 23px 22px 17px; min-height: 83px; }
- .list-title h1 { font-size: var(--fs-title); }
- .list-search { padding: 0 18px 14px; }
- .list-filter { display: flex; padding: 0 18px 12px; gap: 8px; border-bottom: 1px solid var(--line); }
- .list-filter .tab { padding: 0 12px; }
- .chat-list-scroll { overflow: auto; flex: 1; padding: 8px; }
- .chat-row { width: 100%; display: flex; gap: 12px; padding: 17px 12px; border-radius: var(--r-md); text-align: left; min-height: 92px; }
- .chat-row.active { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
- .chat-row:hover:not(.active) { background: var(--surface-soft); }
- .chat-row .avatar { width: 40px; height: 40px; }
- .chat-row-title { display: flex; justify-content: space-between; gap: 6px; align-items: baseline; }
- .chat-row-title strong { font-size: var(--fs-body); font-weight: 600; }
- .chat-row-title time { font-size: var(--fs-xs); color: var(--ink-muted); }
- .chat-row .preview { color: var(--ink-secondary); font-size: var(--fs-sm); margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.65; }
- .unread { background: var(--accent); color: var(--on-accent); min-width: 17px; height: 17px; line-height: 17px; text-align: center; border-radius: var(--r-round); font-size: var(--fs-xs); }
- .list-foot { padding: 15px 22px; border-top: 1px solid var(--line); font-size: var(--fs-xs); color: var(--ink-muted); display: flex; gap: 8px; align-items: center; }
- .chat-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--surface); }
- .chat-header { min-height: 84px; display: flex; align-items: center; padding: 16px 28px; gap: 12px; border-bottom: 1px solid var(--line-strong); }
- .chat-header h2 { font-size: var(--fs-title); }
- .chat-header .agent-description { font-size: var(--fs-sm); color: var(--ink-muted); margin-top: 2px; }
- .chat-header .avatar { width: 38px; height: 38px; }
- .chat-header-tools { display: flex; margin-left: auto; gap: 4px; }
- .chat-context { margin: 18px 28px 0; padding: 9px 12px; display: flex; align-items: center; gap: 9px; border-radius: var(--r-sm); color: var(--ink-secondary); background: var(--surface-soft); border: 1px solid var(--line); font-size: var(--fs-sm); }
- .chat-context button { padding: 0 5px; min-height: 44px; color: var(--accent); }
- .messages { overflow-y: auto; min-height: 0; flex: 1; padding: 22px 28px 28px; scroll-behavior: auto; }
- .date-divider { text-align: center; font-size: var(--fs-xs); color: var(--ink-muted); margin: 2px 0 26px; }
- .message { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 24px; }
- .message .avatar { width: 28px; height: 28px; font-size: var(--fs-caption); margin-top: 3px; border-radius: var(--r-sm); }
- .message-body { max-width: min(88%, 680px); min-width: 0; }
- .message-meta { display: flex; gap: 9px; align-items: center; font-size: var(--fs-xs); color: var(--ink-muted); margin-bottom: 7px; }
- .message-meta strong { font-size: var(--fs-sm); color: var(--ink-secondary); font-weight: 500; }
- .bubble { color: var(--ink); line-height: 1.85; white-space: pre-wrap; overflow-wrap: anywhere; }
- .message.me { flex-direction: row-reverse; }
- .message.me .message-meta { justify-content: flex-end; }
- .message.me .bubble { background: var(--accent-soft); padding: 12px 16px; border-radius: var(--r-md) var(--r-sm) var(--r-md) var(--r-md); }
- .message.me .message-body { max-width: 82%; }
- .message-file { margin-top: 14px; background: var(--surface); border: 1px solid var(--line-strong); padding: 14px; width: 100%; max-width: 360px; display: flex; align-items: center; gap: 12px; text-align: left; border-radius: var(--r-md); }
- .message-file:hover { border-color: var(--accent); }
- .message-file strong { display: block; font-size: var(--fs-caption); font-weight: 600; white-space: normal; }
- .message-file small { color: var(--ink-muted); font-size: var(--fs-xs); }
- .file-icon { width: 38px; height: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--line-strong); color: var(--accent); border-radius: var(--r-sm); flex-shrink: 0; background: var(--surface); }
- .file-icon span { font: 600 var(--fs-xs)/1.5 var(--mono); letter-spacing: .4px; }
- .file-icon svg { width: 18px; height: 18px; }
- .file-icon.csv { color: var(--blue); }
- .message-task { text-align: left; margin-top: 12px; min-height: 44px; color: var(--warning); display: flex; align-items: center; gap: 8px; }
- .send-error { color: var(--danger); font-size: var(--fs-sm); display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
- .send-error button { min-height: 44px; text-decoration: underline; }
- .composer-area { padding: 0 24px 16px; background: var(--surface); }
- .composer { border: 1px solid var(--line-strong); border-radius: var(--r-md); padding: 12px 12px 8px; transition: border-color .15s; }
- .composer:focus-within { border-color: var(--accent); }
- .composer textarea { resize: none; width: 100%; min-height: 48px; max-height: 160px; padding: 2px 5px; background: none; border: none; color: var(--ink); line-height: 1.7; font-size: var(--fs-body); display: block; }
- .composer textarea:focus { outline: none; }
- .composer-actions { display: flex; align-items: center; justify-content: space-between; }
- .composer-actions .hint { font-size: var(--fs-xs); color: var(--ink-muted); margin-left: auto; margin-right: 12px; }
- .send-btn { min-width: 44px; padding: 0 13px; }
- .composer-note { font-size: var(--fs-xs); color: var(--ink-muted); text-align: center; margin-top: 8px; }
- .connection-notice { padding: 10px 20px; color: var(--warning); background: var(--warning-soft); font-size: var(--fs-sm); display: flex; align-items: center; gap: 9px; }
- .connection-notice button { min-height: 44px; margin-left: auto; text-decoration: underline; }
- .result-rail { background: var(--rail-bg); border-left: 1px solid var(--line-strong); min-width: 0; overflow: auto; }
- .rail-header { padding: 24px; min-height: 84px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 8px; }
- .rail-header h2 { font-size: var(--fs-body); }
- .rail-section { padding: 22px 22px 0; }
- .rail-project { padding: 17px 0 22px; border-bottom: 1px solid var(--line); }
- .rail-project strong { display: block; font-size: var(--fs-body); font-weight: 600; margin: 8px 0 4px; }
- .rail-project p { font-size: var(--fs-sm); color: var(--ink-muted); line-height: 1.8; }
- .rail-file { width: 100%; text-align: left; background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--r-md); padding: 17px 15px; margin: 12px 0 0; transition: border-color var(--motion-fast), background-color var(--motion-fast); }
- .rail-file:hover { border-color: var(--line-strong); background: var(--surface-soft); }
- .rail-file strong { font-size: var(--fs-caption); font-weight: 600; display: block; margin: 12px 0 4px; }
- .rail-file p { font-size: var(--fs-xs); color: var(--ink-muted); margin-bottom: 14px; }
- .rail-file .spread { font-size: var(--fs-xs); color: var(--ink-muted); }
- .rail-file .file-icon { width: 32px; height: 38px; }
- .rail-foot { padding: 22px; color: var(--ink-muted); font-size: var(--fs-xs); line-height: 1.8; }
- .rail-toggle { display: none; }
- .banner { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-radius: var(--r-md); background: var(--warning-soft); color: var(--warning); margin-bottom: 28px; }
- .banner p { font-size: var(--fs-sm); opacity: .9; margin-top: 3px; }
- .banner .btn { margin-left: auto; color: inherit; }
- .overview-stats { display: grid; grid-template-columns: repeat(4, 1fr); padding: 8px 0 28px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
- .overview-stat { border-right: 1px solid var(--line); padding-left: 28px; }
- .overview-stat:first-child { padding-left: 0; }
- .overview-stat:last-child { border: none; }
- .overview-stat span { color: var(--ink-muted); font-size: var(--fs-sm); }
- .overview-stat strong { display: block; font: 500 var(--fs-heading)/1.5 var(--font); margin-top: 4px; letter-spacing: -.5px; }
- .overview-stat strong small { font-size: var(--fs-sm); margin-left: 6px; color: var(--ink-muted); font-weight: 400; }
- .agent-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
- .agent-card { border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px; background: var(--surface); }
- .agent-card .agent-name { min-height: 44px; text-align: left; }
- .agent-card .agent-name strong { display: block; }
- .agent-card .agent-name small { color: var(--ink-muted); font-size: var(--fs-xs); }
- .agent-task { margin: 20px 0; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: var(--fs-caption); }
- .agent-task .eyebrow { margin-bottom: 7px; font-size: var(--fs-xs); }
- .metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
- .metric .spread { font-size: var(--fs-xs); color: var(--ink-muted); margin-bottom: 6px; }
- .metric .spread strong { color: var(--ink-secondary); font-family: var(--mono); font-size: var(--fs-xs); font-weight: 500; }
- .bar { height: 4px; background: var(--surface-hover); overflow: hidden; border-radius: var(--r-round); }
- .bar > span { display: block; height: 100%; width: var(--value); background: var(--metric-fill); border-radius: var(--r-round); }
- .metric-footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 17px; color: var(--ink-muted); font-size: var(--fs-xs); align-items: center; }
- .metric-footer .text-link { font: var(--fs-sm) var(--mono); }
- .agent-card-footer { display: flex; justify-content: space-between; border-top: 1px solid var(--line); margin-top: 12px; padding-top: 10px; gap: 8px; }
- .agent-card-footer .btn { padding: 0 10px; }
- .view-switch { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 26px; }
- .view-switch .tab { border-radius: 0; border-bottom: 2px solid transparent; min-height: 52px; }
- .view-switch .tab.active { color: var(--accent); border-bottom-color: var(--accent); background: none; }
- .contact-group { padding: 18px 0 8px; color: var(--ink-muted); font-size: var(--fs-xs); }
- .contact-row { width: 100%; display: flex; align-items: center; gap: 14px; min-height: 82px; text-align: left; border-bottom: 1px solid var(--line); padding: 14px 12px; }
- .contact-row:hover { background: var(--surface-soft); }
- .contact-row .specialty { color: var(--ink-muted); font-size: var(--fs-sm); margin-top: 2px; }
- .contact-row .contact-owner { font-size: var(--fs-sm); color: var(--ink-muted); margin-right: 36px; }
- .contact-child { padding-left: 60px; }
- .content-narrow { max-width: 980px; }
- .split-workspace { display: grid; grid-template-columns: 310px minmax(0, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; min-height: 580px; }
- .split-list { padding: 10px; border-right: 1px solid var(--line); background: var(--surface-soft); }
- .project-row { width: 100%; padding: 18px 16px; text-align: left; border-radius: var(--r-sm); margin-bottom: 6px; border: 1px solid transparent; }
- .project-row.active { background: var(--surface); border-color: var(--line); }
- .project-row:hover { background: var(--surface); }
- .project-row h3 { margin: 8px 0; font-size: var(--fs-body); }
- .project-row p { font-size: var(--fs-sm); color: var(--ink-muted); line-height: 1.8; }
- .project-row .spread { margin-top: 18px; font-size: var(--fs-xs); color: var(--ink-muted); }
- .project-detail { padding: 32px; min-width: 0; }
- .project-detail h2 { font-size: var(--fs-heading); margin: 12px 0; }
- .project-detail > p { color: var(--ink-secondary); font-size: var(--fs-caption); line-height: 1.9; }
- .detail-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 28px 0; gap: 20px; }
- .detail-facts dt { font-size: var(--fs-xs); color: var(--ink-muted); margin-bottom: 5px; }
- .detail-facts dd { margin: 0; font-size: var(--fs-caption); overflow-wrap: anywhere; }
- .inline-agent { min-height: 48px; display: flex; align-items: center; gap: 8px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--r-sm); }
- .inline-agents { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 28px; }
- .artifact-row { display: flex; align-items: center; gap: 14px; padding: 17px 0; width: 100%; border-bottom: 1px solid var(--line); text-align: left; }
- .artifact-row:hover { background: var(--surface-soft); }
- .artifact-row strong { display: block; font-size: var(--fs-caption); font-weight: 500; }
- .artifact-row p { color: var(--ink-muted); font-size: var(--fs-xs); margin-top: 3px; }
- .artifact-row .artifact-time { font-size: var(--fs-xs); color: var(--ink-muted); }
- .task-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
- select { min-height: 44px; padding: 0 35px 0 12px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); color: var(--ink); background: var(--surface); max-width: 100%; }
- .task-layout { display: grid; grid-template-columns: minmax(290px, .92fr) minmax(0, 1.3fr); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; min-height: 600px; }
- .task-list { border-right: 1px solid var(--line); background: var(--surface-soft); padding: 8px; }
- .task-list-head { display: flex; justify-content: space-between; color: var(--ink-muted); font-size: var(--fs-xs); padding: 10px 12px 14px; }
- .task-row { width: 100%; padding: 18px 14px; text-align: left; border-radius: var(--r-sm); margin-bottom: 6px; border: 1px solid transparent; }
- .task-row.active { border-color: var(--line); background: var(--surface); }
- .task-row:hover { background: var(--surface); }
- .task-row h3 { font-size: var(--fs-caption); margin: 10px 0 8px; }
- .task-row .task-meta { display: flex; gap: 12px; color: var(--ink-muted); font-size: var(--fs-xs); }
- .task-row .blocked-note { font-size: var(--fs-xs); color: var(--warning); margin-top: 8px; display: flex; align-items: center; gap: 5px; }
- .task-detail { padding: 28px 30px; min-width: 0; }
- .task-detail h2 { margin: 16px 0 20px; }
- .task-detail .banner { padding: 14px; align-items: flex-start; font-size: var(--fs-sm); margin-bottom: 22px; }
- .task-detail .detail-facts { grid-template-columns: 1fr 1fr; gap: 14px; margin: 18px 0; }
- .detail-section { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 24px; }
- .detail-section h3 { font-size: var(--fs-caption); margin-bottom: 15px; }
- .markdown { font-size: var(--fs-caption); color: var(--ink-secondary); line-height: 1.95; overflow-wrap: anywhere; }
- .markdown h1 { font-size: var(--fs-input); color: var(--ink); margin: 14px 0 12px; letter-spacing: 0; }
- .markdown h2 { font-size: var(--fs-body); color: var(--ink); margin: 22px 0 10px; }
- .markdown p { margin: 9px 0; }
- .markdown ul { padding-left: 22px; }
- .run-row { display: flex; gap: 12px; padding-bottom: 20px; position: relative; }
- .run-row::before { content: ""; position: absolute; left: 9px; top: 25px; bottom: 0; width: 1px; background: var(--line); }
- .run-row:last-child::before { display: none; }
- .run-node { width: 20px; height: 24px; color: var(--accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
- .run-node.warning { color: var(--warning); }
- .run-row strong { font-size: var(--fs-sm); font-weight: 500; }
- .run-row p { font-size: var(--fs-xs); color: var(--ink-muted); margin-top: 3px; overflow-wrap: anywhere; }
- .run-row time { margin-left: auto; color: var(--ink-muted); font: var(--fs-xs)/2 var(--mono); }
- .comment { padding: 12px 15px; background: var(--surface-soft); border-radius: var(--r-sm); font-size: var(--fs-sm); color: var(--ink-secondary); }
- .empty-inline { color: var(--ink-muted); font-size: var(--fs-sm); padding: 10px 0; }
- .event-group { margin-top: 22px; }
- .event-date { color: var(--ink-muted); font-size: var(--fs-sm); padding: 10px 0 18px; }
- .event-date strong { color: var(--ink); margin-right: 12px; font-weight: 500; }
- .event-row { display: flex; gap: 18px; align-items: flex-start; padding: 20px 0; border-top: 1px solid var(--line); text-align: left; width: 100%; }
- .event-row:hover { background: var(--surface-soft); }
- .event-icon { width: 40px; height: 40px; border-radius: var(--r-round); background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
- .event-icon.alert { background: var(--warning-soft); color: var(--warning); }
- .event-icon.execution { background: var(--blue-soft); color: var(--blue); }
- .event-row h3 { font-size: var(--fs-body); font-weight: 500; }
- .event-row p { color: var(--ink-muted); font-size: var(--fs-sm); margin-top: 5px; }
- .event-row time { color: var(--ink-muted); font: var(--fs-sm)/1.8 var(--mono); margin-left: auto; }
- .results-group { margin-top: 30px; }
- .results-group-header { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 14px; }
- .results-group-header h2 { font-size: var(--fs-input); }
- .result-table-labels { display: grid; grid-template-columns: 1fr 140px 100px 44px; color: var(--ink-muted); padding: 13px 0 0; font-size: var(--fs-xs); }
- .results-group .artifact-row .source { width: 140px; display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--ink-secondary); }
- .results-group .artifact-row .artifact-time { width: 100px; }
- .settings-page { max-width: 1240px; width: 100%; margin: 0 auto; min-height: 100%; background: transparent; border: none; }
- .settings-page > .page-heading { border-bottom: none; margin-bottom: 22px; padding-bottom: 0; }
- .settings-layout { display: grid; grid-template-columns: 242px minmax(0, 1fr); gap: 24px; align-items: start; }
- .account-panel { position: sticky; top: 24px; min-width: 0; padding: 24px; background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--r-md); }
- .identity-block { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 0 0 16px; }
- .identity-block h2 { margin-bottom: 5px; }
- .identity-block p { color: var(--ink-muted); font-size: var(--fs-caption); }
- .account-facts { padding: 22px 0 6px; margin: 22px 0 0; border-top: 1px solid var(--line); }
- .account-facts > div { margin-bottom: 18px; }
- .account-facts dt { color: var(--ink-muted); font-size: var(--fs-sm); margin-bottom: 5px; }
- .account-facts dd { margin: 0; font-size: var(--fs-caption); font-weight: 500; overflow-wrap: anywhere; }
- .account-note { display: flex; gap: 9px; align-items: flex-start; padding: 15px 0; border-top: 1px solid var(--line); color: var(--ink-muted); }
- .account-note svg { width: 16px; height: 16px; margin-top: 3px; }
- .account-note p { font-size: var(--fs-xs); line-height: 1.8; }
- .account-logout { width: 100%; color: var(--danger); margin-top: 10px; }
- .settings-content { min-width: 0; background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--r-md); overflow: hidden; }
- .settings-section { padding: 22px 26px; border-bottom: 1px solid var(--line); }
- .settings-section-heading { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
- .settings-section-heading > svg { width: 18px; height: 18px; color: var(--ink-secondary); }
- .settings-section-heading h3 { font-size: var(--fs-input); }
- .settings-appearance { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(200px, 290px); align-items: center; gap: 20px; }
- .setting-copy { min-width: 0; }
- .setting-copy h4 { font-size: var(--fs-caption); font-weight: 500; line-height: 1.6; }
- .setting-copy p { margin-top: 5px; color: var(--ink-muted); font-size: var(--fs-sm); line-height: 1.75; }
- .theme-switch { justify-self: end; }
- .palette-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; min-width: 0; }
- .palette-choice { border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 7px; text-align: left; background: var(--surface); min-width: 0; }
- .palette-choice.selected { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
- .palette-thumbnail { height: 44px; display: grid; grid-template-columns: 23% 1fr 22%; border: 1px solid var(--line-strong); border-radius: var(--r-sm); overflow: hidden; background: var(--surface); }
- .palette-thumb-nav { background: var(--nav-bg); border-right: 1px solid var(--nav-line); padding: 7px 4px; display: grid; align-content: start; gap: 4px; }
- .palette-thumb-nav span { height: 3px; background: var(--nav-text); opacity: .6; border-radius: var(--r-round); }
- .palette-thumb-content { padding: 8px; display: grid; align-content: center; gap: 5px; }
- .palette-thumb-content span { display: block; height: 3px; width: 100%; background: var(--line-strong); border-radius: var(--r-round); }
- .palette-thumb-content span:first-child { width: 55%; background: var(--ink-secondary); }
- .palette-thumb-content span:last-child { width: 38%; height: 6px; background: var(--accent); }
- .palette-thumb-rail { background: var(--rail-bg); border-left: 1px solid var(--line-strong); }
- .palette-choice-label { display: flex; align-items: center; gap: 6px; font-size: var(--fs-sm); padding: 7px 2px 1px; font-weight: 500; }
- .palette-choice-description { display: block; font-size: var(--fs-xs); color: var(--ink-muted); padding: 0 2px; }
- .theme-radio { margin-left: auto; width: 16px; height: 16px; border: 1px solid var(--line-strong); border-radius: var(--r-round); display: grid; place-items: center; }
- .palette-choice.selected .theme-radio { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
- .theme-radio svg { width: 12px; height: 12px; }
- .settings-palettes { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(145px, .55fr) minmax(0, 2fr); align-items: center; gap: 20px; }
- .setting-row { display: flex; align-items: center; gap: 20px; justify-content: space-between; min-height: 66px; }
- .settings-content .setting-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; min-height: 68px; }
- .settings-content .setting-row > .btn { justify-self: end; }
- .setting-row p { color: var(--ink-muted); font-size: var(--fs-sm); margin-top: 3px; }
- .setting-value { color: var(--ink-secondary); font-size: var(--fs-caption); }
- .settings-about { min-height: 66px; padding: 10px 26px; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--surface-soft); color: var(--ink-muted); font-size: var(--fs-sm); }
- .agent-profile-hero { display: flex; align-items: center; gap: 20px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
- .profile-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding: 30px 0; border-bottom: 1px solid var(--line); }
- .profile-metrics .metric strong { font: 500 var(--fs-heading)/1.5 var(--mono); display: block; color: var(--ink); }
- .profile-metrics .metric > span { font-size: var(--fs-sm); color: var(--ink-muted); }
- .mobile-nav, .mobile-header, .mobile-back, .mobile-only { display: none; }
- .state-panel { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 35px 20px; gap: 10px; }
- .state-symbol { background: var(--surface-hover); color: var(--ink-muted); width: 56px; height: 56px; border-radius: var(--r-lg); display: grid; place-items: center; margin-bottom: 6px; }
- .state-panel h3 { font-size: var(--fs-body); }
- .state-panel p { max-width: 290px; font-size: var(--fs-sm); color: var(--ink-muted); line-height: 1.8; }
- .state-panel .btn { margin-top: 8px; }
- .skeleton { width: 100%; max-width: 400px; display: grid; gap: 18px; padding: 12px; }
- .skeleton-line { height: 12px; border-radius: var(--r-sm); background: var(--surface-hover); animation: breathe 1.2s ease-in-out infinite alternate; }
- .skeleton-line:nth-child(2) { width: 72%; }
- .skeleton-line:nth-child(3) { width: 88%; }
- .overlay-backdrop { position: fixed; inset: 0; background: var(--overlay); z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; }
- .dialog { background: var(--surface); width: min(480px, 100%); max-height: calc(100dvh - 48px); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: auto; }
- .dialog-head { padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); }
- .dialog-head h2 { font-size: var(--fs-input); }
- .dialog-body { padding: 24px; }
- .dialog-body > p { color: var(--ink-secondary); font-size: var(--fs-caption); line-height: 1.9; margin-bottom: 20px; }
- .dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
- .drawer-backdrop { justify-content: flex-end; padding: 0; }
- .drawer { height: 100dvh; max-height: 100dvh; width: 410px; border-radius: 0; display: flex; flex-direction: column; }
- .drawer .dialog-body { overflow: auto; min-height: 0; }
- .drawer .rail-section { padding: 0; }
- .drawer .rail-foot { padding-left: 0; }
- .preview-dialog { width: min(880px, 100%); height: calc(100dvh - 64px); display: flex; flex-direction: column; }
- .preview-dialog .dialog-head { padding: 14px 24px; }
- .preview-toolbar { display: flex; gap: 8px; align-items: center; }
- .preview-body { overflow: auto; min-height: 0; background: var(--surface-soft); padding: 32px; flex: 1; }
- .document-paper { background: var(--surface); border: 1px solid var(--line); padding: 42px 48px; max-width: 680px; margin: auto; min-height: 100%; }
- .document-paper .document-brand { color: var(--accent); font-size: var(--fs-xs); letter-spacing: 2px; margin-bottom: 32px; font-family: var(--mono); }
- .document-paper .markdown h1 { font-size: var(--fs-heading); margin: 0 0 28px; }
- .document-paper .markdown h2 { font-size: var(--fs-input); margin-top: 28px; }
- .document-paper .markdown { font-size: var(--fs-body); }
- .csv-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); white-space: nowrap; }
- .csv-table th, .csv-table td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; }
- .csv-table th { color: var(--ink-muted); background: var(--surface-soft); font-weight: 500; }
- .lab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
- .lab-grid .btn { justify-content: flex-start; }
- .lab-group { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 20px; }
- .lab-group h3 { font-size: var(--fs-caption); margin-bottom: 12px; }
- .lab-group .setting-row { min-height: 52px; }
- #toast { position: fixed; bottom: 28px; left: 50%; transform: translateX(-50%); z-index: 150; background: var(--ink); color: var(--surface); border-radius: var(--r-md); padding: 12px 20px; font-size: var(--fs-caption); max-width: calc(100vw - 32px); width: max-content; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: opacity var(--motion-fast); }
- #toast.visible { opacity: 1; }
- .skip-link { position: fixed; left: 16px; top: -100px; z-index: 200; padding: 12px 20px; background: var(--surface); border: 2px solid var(--accent); border-radius: var(--r-sm); }
- .skip-link:focus { top: 16px; }
- .login-shell { min-height: calc(100dvh - 44px); display: grid; grid-template-columns: 1.1fr 1fr; background: var(--surface); }
- .login-story { background: var(--accent-soft); padding: 48px 64px; display: flex; flex-direction: column; }
- .login-story .brand { padding: 0; }
- .login-story-content { margin: auto 0; padding: 70px 0; }
- .login-story h1 { font-size: var(--fs-display); font-weight: 500; line-height: 1.55; margin: 20px 0; letter-spacing: -1px; }
- .login-story p { color: var(--ink-secondary); max-width: 340px; line-height: 1.9; }
- .login-flow { margin-top: 50px; display: flex; align-items: center; gap: 18px; padding: 22px 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); font-size: var(--fs-caption); color: var(--accent); }
- .login-form-area { display: flex; align-items: center; justify-content: center; padding: 40px; }
- .login-form { width: 100%; max-width: 360px; }
- .login-form h2 { font-size: var(--fs-heading); margin-bottom: 8px; }
- .login-form > p { color: var(--ink-muted); font-size: var(--fs-caption); margin-bottom: 26px; }
- .form-field { margin: 20px 0; }
- .form-field label { display: block; margin-bottom: 8px; font-size: var(--fs-caption); color: var(--ink-secondary); }
- .form-field input { min-height: 48px; width: 100%; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); color: var(--ink); padding: 10px 12px; font-size: var(--fs-input); }
- .form-error { font-size: var(--fs-sm); color: var(--danger); padding: 4px 0 14px; }
- .login-submit { width: 100%; margin-top: 10px; min-height: 48px; }
- .demo-credentials { font-size: var(--fs-sm); color: var(--ink-muted); margin-top: 22px; line-height: 1.9; background: var(--surface-soft); padding: 14px; border-radius: var(--r-sm); }
- .narrow-desktop { display: none; }
- .upload-progress { width: 100%; margin-top: 8px; accent-color: var(--accent); }
- .upload-label { font-size: var(--fs-xs); color: var(--ink-muted); }
- .no-wrap { white-space: nowrap; }
- .full-width { width: 100%; }
- .hidden { display: none !important; }
- @keyframes breathe { from { opacity: .4; } to { opacity: 1; } }
- /* Route/dialog motion is opt-in in app.js. Data updates never replay it. */
- .nav-link, .tab, .icon-btn, .chat-row, .mobile-nav a, .mobile-nav .nav-icon {
- transition: background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard);
- }
- /* Breakpoint tokens: bp-dk-full=1280, bp-dk-4col=1150,
- bp-dk-3col=940, bp-dk-2col=768. CSS range syntax centralizes them here. */
- @media (width < 1280px) {
- :root { --nav-width: 176px; --list-width: 244px; --result-width: 300px; }
- .page { padding: 30px; }
- .chat-header { padding-inline: 20px; }
- .messages { padding-inline: 20px; }
- .chat-context { margin-inline: 20px; }
- .agent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
- .settings-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 20px; }
- .settings-section { padding-inline: 22px; }
- .settings-appearance, .settings-palettes { grid-template-columns: minmax(0, 1fr); gap: 12px; }
- .palette-options { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 320px; }
- .theme-switch { justify-self: start; }
- }
- @media (width < 1150px) {
- .conversation-layout { grid-template-columns: var(--list-width) minmax(0, 1fr); }
- .result-rail { display: none; }
- .rail-toggle { display: inline-grid; }
- .split-workspace { grid-template-columns: 250px minmax(0, 1fr); }
- .project-detail { padding: 24px; }
- .task-layout { grid-template-columns: minmax(230px, .85fr) minmax(0, 1fr); }
- .task-detail { padding: 22px; }
- .settings-layout { grid-template-columns: minmax(0, 1fr); }
- .account-panel { position: static; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 24px; }
- .account-panel .identity-block { flex-direction: row; align-items: center; padding: 0; }
- .account-panel > .badge { align-self: start; justify-self: end; }
- .account-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 18px; margin: 0; }
- .account-facts > div { margin-bottom: 0; }
- .account-note { border: none; padding: 0; }
- .account-logout { width: auto; margin: 0; align-self: center; }
- .settings-appearance, .settings-palettes { grid-template-columns: minmax(0, 1fr) minmax(200px, 300px); }
- .theme-switch { justify-self: end; }
- }
- @media (width < 940px) {
- :root { --nav-width: 72px; --list-width: 250px; }
- .sidebar { padding: 25px 10px 12px; }
- .sidebar .brand { padding: 0; justify-content: center; }
- .sidebar .brand-word, .sidebar .workspace-label, .sidebar .nav-link > span, .sidebar .nav-section-label, .sidebar .nav-project, .sidebar-help, .sidebar .profile-button .grow, .sidebar .profile-button > svg { display: none; }
- .nav-items { margin-top: 35px; gap: 12px; }
- .nav-link { justify-content: center; padding: 0; }
- .profile-button { justify-content: center; }
- .page { padding: 28px; }
- }
- @media (width < 768px) {
- .app-shell:not(.mobile) .narrow-desktop { position: absolute; display: flex; inset: 0; align-items: center; justify-content: center; background: var(--surface); z-index: 30; padding: 28px; text-align: center; }
- .app-shell:not(.mobile) .narrow-desktop > div { max-width: 340px; }
- .narrow-desktop p { color: var(--ink-muted); margin: 16px 0; }
- .login-shell { grid-template-columns: 1fr; }
- .login-story { display: none; }
- .login-form-area { padding: 32px 24px; }
- .login-form-area .mobile-only { display: flex; margin-bottom: 44px; }
- }
- /* Mobile is a separate view tree, not a shrunken desktop workspace. */
- .app-shell.mobile { display: block; background: var(--surface); height: calc(100dvh - 44px); }
- .mobile .workspace { height: 100%; padding-bottom: calc(72px + env(safe-area-inset-bottom)); background: var(--surface); scrollbar-gutter: auto; }
- .mobile.is-chat .workspace { padding-bottom: 0; overflow: hidden; }
- .mobile .mobile-header { display: flex; justify-content: space-between; align-items: center; min-height: 68px; padding: 12px 20px; border-bottom: 1px solid var(--line); background: var(--surface); }
- .mobile-header h1 { font-size: var(--fs-title); }
- .mobile .mobile-only { display: flex; }
- .mobile .mobile-back { display: inline-grid; }
- .mobile .desktop-only { display: none !important; }
- .mobile .mobile-nav { position: fixed; display: grid; grid-template-columns: repeat(5, 1fr); bottom: 0; left: 0; right: 0; height: calc(70px + env(safe-area-inset-bottom)); padding: 5px 8px env(safe-area-inset-bottom); border-top: 1px solid var(--line-strong); background: var(--surface); z-index: 40; }
- .mobile-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--ink-muted); font-size: var(--fs-xs); border-radius: var(--r-sm); }
- .mobile-nav a.active { color: var(--accent); font-weight: 600; }
- .mobile-nav a.active .nav-icon { background: var(--accent-soft); }
- .mobile-nav .nav-icon { width: 42px; height: 29px; display: grid; place-items: center; border-radius: var(--r-round); }
- .mobile.is-chat .mobile-nav { display: none; }
- .mobile .page { padding: 22px 20px 28px; width: 100%; max-width: none; min-height: 0; margin: 0; border: none; border-radius: 0; }
- .mobile .page-heading { margin-bottom: 22px; align-items: flex-start; gap: 12px; }
- .mobile .page-heading h1 { font-size: var(--fs-title); letter-spacing: -.4px; }
- .mobile .page-heading p { font-size: var(--fs-sm); }
- .mobile .page-heading .btn { padding: 0 10px; }
- .mobile .toolbar { flex-wrap: wrap; align-items: stretch; gap: 12px; }
- .mobile .toolbar .input-wrap { width: 100%; }
- .mobile .tabs { max-width: 100%; }
- .mobile .tab { padding-inline: 12px; }
- .mobile input, .mobile textarea, .mobile select { font-size: var(--fs-input); }
- .mobile .overview-stats { grid-template-columns: repeat(4, 1fr); gap: 0; padding-bottom: 22px; margin-bottom: 22px; }
- .mobile .overview-stat { padding-left: 14px; }
- .mobile .overview-stat:first-child { padding-left: 0; }
- .mobile .overview-stat strong { font-size: var(--fs-title); }
- .mobile .overview-stat span { font-size: var(--fs-xs); }
- .mobile .overview-stat small { display: none; }
- .mobile .agent-grid { grid-template-columns: 1fr; gap: 14px; }
- .mobile .agent-card { padding: 20px; }
- .mobile .banner { padding: 14px; align-items: flex-start; gap: 10px; margin-bottom: 22px; }
- .mobile .banner > svg { margin-top: 4px; }
- .mobile .banner strong { font-size: var(--fs-caption); }
- .mobile .banner p { font-size: var(--fs-xs); }
- .mobile .banner .btn { padding: 0 5px; min-width: 44px; }
- .mobile .view-switch { margin-bottom: 18px; }
- .mobile .conversation-list { border: none; height: 100%; }
- .mobile .list-title { min-height: 76px; padding: 20px; }
- .mobile .list-search, .mobile .list-filter { padding-inline: 20px; }
- .mobile .chat-list-scroll { padding: 0 12px; }
- .mobile .chat-row { padding: 18px 8px; border-radius: 0; border-bottom: 1px solid var(--line); }
- .mobile .chat-row .avatar { width: 46px; height: 46px; }
- .mobile .chat-row .preview { font-size: var(--fs-caption); }
- .mobile .chat-main { height: 100%; }
- .mobile .chat-header { padding: 10px 12px 10px 6px; min-height: 72px; gap: 8px; }
- .mobile .chat-header .avatar { width: 36px; height: 36px; }
- .mobile .chat-header-tools { gap: 0; }
- .mobile .chat-header .agent-description { font-size: var(--fs-xs); }
- .mobile .chat-context { margin: 12px 16px 0; padding: 4px 10px; gap: 7px; font-size: var(--fs-xs); }
- .mobile .messages { padding: 20px 16px; }
- .mobile .message { gap: 8px; margin-bottom: 25px; }
- .mobile .message-body { max-width: calc(100% - 36px); }
- .mobile .message.me .message-body { max-width: 85%; }
- .mobile .message.me .avatar { display: none; }
- .mobile .bubble { line-height: 1.85; }
- .mobile .composer-area { padding: 8px 12px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
- .mobile .composer { padding: 10px 9px 5px; }
- .mobile .composer textarea { min-height: 30px; max-height: 100px; font-size: var(--fs-input); }
- .mobile .composer-note { display: none; }
- .mobile .composer-actions .hint { font-size: var(--fs-xs); }
- .mobile .contact-row { min-height: 80px; padding-inline: 0; gap: 12px; }
- .mobile .contact-owner { display: none; }
- .mobile .contact-row .specialty { font-size: var(--fs-xs); }
- .mobile .contact-row > .badge { font-size: var(--fs-xs); }
- .mobile .contact-child { padding-left: 35px; }
- .mobile .split-workspace { display: block; min-height: 0; border: none; border-radius: 0; }
- .mobile .split-list { border: none; background: none; padding: 0; }
- .mobile .project-row { border: 1px solid var(--line); padding: 20px; border-radius: var(--r-md); margin-bottom: 14px; }
- .mobile .project-row h3 { font-size: var(--fs-input); }
- .mobile .project-detail { padding: 0; }
- .mobile .project-detail h2 { font-size: var(--fs-title); }
- .mobile .detail-facts { gap: 12px; }
- .mobile .task-toolbar { gap: 10px; }
- .mobile .task-toolbar > select { width: 100%; }
- .mobile .task-layout { display: block; min-height: 0; border: none; border-radius: 0; }
- .mobile .task-list { border: none; padding: 0; background: none; }
- .mobile .task-row { border-bottom: 1px solid var(--line); border-radius: 0; padding: 18px 0; margin: 0; }
- .mobile .task-row.active { border: none; border-bottom: 1px solid var(--line); }
- .mobile .task-detail { padding: 0; }
- .mobile .task-detail h2 { font-size: var(--fs-title); }
- .mobile .event-row { gap: 12px; }
- .mobile .event-icon { width: 36px; height: 36px; }
- .mobile .event-row h3 { font-size: var(--fs-caption); }
- .mobile .event-row p { font-size: var(--fs-xs); }
- .mobile .event-row time { font-size: var(--fs-xs); }
- .mobile .event-date { font-size: var(--fs-xs); }
- .mobile .event-date strong { font-size: var(--fs-caption); }
- .mobile .results-group { margin-top: 24px; }
- .mobile .result-table-labels { display: none; }
- .mobile .results-group .artifact-row .source { display: none; }
- .mobile .results-group .artifact-row .artifact-time { display: none; }
- .mobile .artifact-row { gap: 12px; }
- .mobile .artifact-row .artifact-time { display: none; }
- .mobile .setting-row { align-items: flex-start; flex-wrap: wrap; padding: 12px 0; gap: 12px; }
- .mobile .setting-row > .segmented { max-width: 100%; }
- .mobile .identity-block { gap: 16px; }
- .mobile .settings-page { background: var(--bg); min-height: 100%; }
- .mobile .settings-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
- .mobile .account-panel { padding: 20px; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 10px; position: static; }
- .mobile .account-panel .identity-block { grid-column: 1 / -1; }
- .mobile .account-panel > .badge { display: none; }
- .mobile .account-facts { grid-template-columns: minmax(0, 1fr); gap: 14px; }
- .mobile .account-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
- .mobile .account-facts dt { margin: 0; }
- .mobile .account-facts dd { text-align: right; }
- .mobile .account-note { grid-column: 1 / -1; }
- .mobile .account-logout { grid-column: 1 / -1; width: 100%; }
- .mobile .settings-section { padding: 20px; }
- .mobile .settings-appearance, .mobile .settings-palettes { grid-template-columns: minmax(0, 1fr); gap: 14px; }
- .mobile .theme-switch { justify-self: start; }
- .mobile .palette-options { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
- .mobile .settings-content .setting-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-block: 12px; }
- .mobile .settings-content .setting-row > .btn { justify-self: start; }
- .mobile .settings-about { padding-inline: 20px; flex-wrap: wrap; gap: 0; }
- .mobile .profile-metrics { grid-template-columns: 1fr 1fr; gap: 24px; }
- .mobile .agent-profile-hero { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
- .mobile .agent-profile-hero > .btn { width: 100%; }
- .mobile .breadcrumbs { margin-bottom: 10px; }
- .mobile .state-panel { min-height: 240px; }
- .home-page { padding: 25px 20px; }
- .home-greeting { margin-bottom: 24px; }
- .home-greeting .eyebrow { font-size: var(--fs-xs); letter-spacing: 1px; }
- .home-greeting h1 { font-size: var(--fs-heading); margin-top: 8px; font-weight: 500; }
- .home-greeting p { font-size: var(--fs-caption); color: var(--ink-muted); margin-top: 6px; }
- .home-alert { width: 100%; display: flex; gap: 12px; align-items: center; padding: 15px; border-radius: var(--r-md); color: var(--warning); background: var(--warning-soft); text-align: left; margin-bottom: 26px; }
- .home-alert strong { display: block; font-weight: 500; font-size: var(--fs-caption); }
- .home-alert small { display: block; font-size: var(--fs-xs); opacity: .9; margin-top: 3px; }
- .home-section { margin-bottom: 28px; }
- .home-section .section-heading { margin-bottom: 2px; }
- .home-section .artifact-row { padding-block: 16px; }
- .home-section .artifact-row .artifact-time { display: none; }
- .home-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 25px; }
- .home-shortcut { border: 1px solid var(--line); border-radius: var(--r-md); display: flex; align-items: center; gap: 10px; padding: 12px 14px; min-height: 62px; text-align: left; }
- .home-shortcut svg { color: var(--accent); }
- .home-shortcut small { font-size: var(--fs-xs); color: var(--ink-muted); display: block; }
- .home-section .chat-row { border-radius: 0; padding-inline: 0; min-height: 90px; }
- body[data-mode="mobile"] #toast { bottom: calc(90px + env(safe-area-inset-bottom)); }
- body[data-mode="mobile"] .overlay-backdrop { padding: 12px; }
- body[data-mode="mobile"] .drawer-backdrop { align-items: flex-end; padding: 0; }
- body[data-mode="mobile"] .drawer { width: 100%; height: auto; max-height: 88dvh; border-radius: var(--r-lg) var(--r-lg) 0 0; padding-bottom: env(safe-area-inset-bottom); }
- body[data-mode="mobile"] .drawer::before { content: ""; display: block; height: 4px; width: 34px; border-radius: var(--r-round); background: var(--line-strong); margin: 9px auto 0; flex-shrink: 0; }
- body[data-mode="mobile"] .preview-dialog { width: 100%; height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); }
- body[data-mode="mobile"] .preview-dialog .dialog-head { padding: 12px; gap: 6px; }
- body[data-mode="mobile"] .preview-dialog .dialog-head h2 { font-size: var(--fs-caption); }
- body[data-mode="mobile"] .preview-toolbar { gap: 0; }
- body[data-mode="mobile"] .preview-toolbar .btn { padding-inline: 10px; }
- body[data-mode="mobile"] .preview-body { padding: 12px; }
- body[data-mode="mobile"] .document-paper { padding: 24px 20px; overflow-x: auto; }
- body[data-mode="mobile"] .document-paper .markdown h1 { font-size: var(--fs-title); }
- body[data-mode="mobile"] .demo-strip { justify-content: space-between; padding-left: 14px; gap: 3px; }
- body[data-mode="mobile"] .demo-strip .strip-detail { display: none; }
- body[data-mode="mobile"] .dialog-head { padding: 15px 20px; }
- body[data-mode="mobile"] .dialog-body { padding: 20px; }
- @media (prefers-reduced-motion: reduce) {
- *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
- }
|