:root {
  --ink: #111114;
  --ink-2: #26262c;
  --muted: #6b6b73;
  --line: #dcdce2;
  --line-soft: #e4e4ea;
  --surface: #ededf0;
  --surface-soft: #f2f2f4;
  --canvas: #ffffff;
  --brand: #0b5e53;
  --brand-2: #0f7b6c;
  --mint: #7cc4b9;
  --success: #cff7d6;
  --warning: #fbe8b8;
  --warning-strong: #f2b43a;
  --risk: #fad9df;
  --risk-strong: #e0786a;
  --purple: #f3d6fa;
  --info: #ddf6fb;
  --mail: #2f6fe4;
  --word: #2b579a;
  --wechat: #07a34a;
  --excel: #217346;
  --unread: #ff3b30;
  --font-ui: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-content: "Noto Serif SC", "Songti SC", "STSong", serif;
  --font-brand: Outfit, Poppins, var(--font-ui);
  --shadow-base: 0 2px 16px rgba(20, 20, 30, .06);
  --shadow-overlay: 0 30px 70px rgba(20, 20, 30, .30);
}

* { box-sizing: border-box; }
body { min-width: 1100px; min-height: 720px; margin: 0; overflow: hidden; color: var(--ink); background: #111; font: 14px/1.5 var(--font-ui); }
button, textarea, select { font: inherit; }
button { color: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .48; }
.hidden { display: none !important; }

.product-page { width: 100vw; height: 100vh; overflow: hidden; }
.workbench-page { position: relative; }

/* Home follows the confirmed Q43-H1 / Q43-H1p component structure. */
.home-page { display: flex; flex-direction: column; padding: 0 14px 14px; color: #111; background: #111; font-family: var(--font-brand); }
.home-header { position: relative; z-index: 2; height: 96px; flex: none; display: flex; align-items: center; padding: 0 44px; color: #fff; }
.home-wordmark { height: 44px; display: flex; align-items: center; gap: 6px; margin-left: -8px; padding: 0 8px; border: 0; border-radius: 999px; color: #fff; background: transparent; font: 700 30px/1 var(--font-brand); letter-spacing: -.5px; }
.home-wordmark span { color: rgba(255,255,255,.5); font-size: 16px; }
.home-header nav { position: absolute; left: 50%; top: 26px; transform: translateX(-50%); display: flex; gap: 20px; }
.home-header nav a, .home-header nav span { position: relative; height: 44px; display: flex; align-items: center; padding: 0 16px; color: rgba(255,255,255,.55); font-size: 16px; font-weight: 500; text-decoration: none; }
.home-header nav svg { width: 24px; height: 24px; margin-right: 10px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.home-header nav .active { color: #fff; }
.home-header nav .active::after { content: ""; position: absolute; left: 50%; bottom: -36px; width: 190px; height: 24px; transform: translateX(-50%); border-radius: 50% 50% 0 0; background: #f7f7f7; }
.home-canvas { min-height: 0; flex: 1; overflow: hidden; border-radius: 40px; background: #f7f7f7; }
.home-main { height: 100%; display: flex; flex-direction: column; gap: 26px; padding: 30px 40px 34px; }
.home-upper { height: 400px; display: flex; gap: 30px; align-items: stretch; }
.home-next { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 22px; }
.home-next > h1 { margin: 0; font-size: 40px; font-weight: 600; line-height: 1.15; letter-spacing: -.8px; }
.home-case-selector { display: flex; gap: 8px; margin: -8px 0 -10px; }
.home-case-selector button { border: 1px solid #d7d7db; border-radius: 999px; background: #fff; padding: 8px 14px; color: #55545d; font: 600 13px/1 var(--font-ui); cursor: pointer; }
.home-case-selector button.active { border-color: #151515; background: #151515; color: #fff; }
.case-hero { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 30px 36px; border-radius: 40px; background: #f3d6fa; box-shadow: 0 18px 40px rgba(110,50,130,.10); }
.case-badge { align-self: flex-start; padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.75); font-size: 14px; font-weight: 600; }
.case-hero h2 { max-width: 740px; margin: 0; font-size: 40px; font-weight: 600; line-height: 1.2; letter-spacing: -.8px; }
.case-hero > p { max-width: 680px; margin: 0; color: #3a3a42; font: 16px/1.7 var(--font-ui); }
.case-hero-actions { min-width: 0; display: flex; align-items: center; gap: 10px; margin-top: auto; }
.case-fact { height: 44px; display: flex; align-items: center; gap: 8px; padding: 0 18px; border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; white-space: nowrap; }
.case-fact svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.case-fact b { font-weight: 500; }
.home-go { position: relative; height: 76px; display: flex; align-items: center; gap: 22px; margin-left: auto; padding: 0 10px 0 32px; border: 0; border-radius: 999px; color: #fff; background: #111; box-shadow: 0 12px 26px rgba(17,17,17,.22); transition: transform .3s cubic-bezier(.2,.9,.25,1.35), box-shadow .3s; }
.home-go:hover { transform: translateY(-3px) rotate(-2deg); box-shadow: 0 20px 36px rgba(17,17,17,.28); }
.home-go > span { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.home-go strong { font-size: 24px; line-height: 1.1; letter-spacing: 1px; }
.home-go small { color: rgba(255,255,255,.6); font-size: 12px; }
.home-go i { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; color: #111; background: #f4d27a; }
.home-go svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.completed-cases { width: 420px; flex: none; display: flex; flex-direction: column; padding: 26px 28px 20px; border-radius: 32px; background: #fff; }
.completed-cases > header { display: flex; align-items: baseline; gap: 10px; padding-bottom: 12px; }
.completed-cases h2, .home-future h2 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.4px; }
.completed-cases header span, .gap-map-header > div > span { color: #6b6b73; font-size: 14px; }
.completed-empty { flex: 1; display: grid; place-items: center; margin-top: 8px; padding: 22px; border: 2px dashed #d8d8dc; border-radius: 24px; color: #6b6b73; text-align: center; }
.completed-item { flex: 1; min-height: 0; overflow-y: auto; border-top: 1px solid #f0f0f0; }
.completed-item article { display: flex; flex-direction: column; gap: 12px; padding: 18px 0; border-bottom: 1px solid #f0f0f0; }
.completed-item h3 { margin: 0; font-size: 20px; }
.completed-item p { margin: 0; color: #6b6b73; line-height: 1.65; }
.completed-item button { align-self: flex-start; padding: 10px 18px; border: 0; border-radius: 999px; color: #fff; background: #111; font-weight: 600; }
.home-future { min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 12px; border-radius: 32px; background: #fff; }
.gap-map-header { min-height: 38px; display: flex; align-items: center; gap: 14px; }
.gap-map-header > div:first-child { display: flex; align-items: baseline; gap: 14px; flex: none; }
.gap-map-legend { margin-left: auto; display: flex; align-items: center; gap: 10px; color: #4a4a52; font-size: 11px; white-space: nowrap; }
.gap-map-legend span { display: flex; align-items: center; gap: 4px; }.gap-map-legend i { width: 14px; height: 9px; border-radius: 4px; background: #a6e4f0; }.gap-map-legend span:nth-child(2) i { background: #9ee6ab; }.gap-map-legend span:nth-child(3) i { background: #e2aef2; }.gap-map-legend span:nth-child(4) i { background: #f4d27a; }
.gap-map-header nav { display: flex; gap: 6px; }.gap-map-header nav button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: #ededf0; font-size: 16px; }.gap-map-header nav button:disabled { opacity: .32; }
.gap-map-viewport { min-height: 0; flex: 1; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: thin; outline: none; }
.gap-map-viewport:focus-visible { border-radius: 22px; box-shadow: 0 0 0 3px rgba(17,17,20,.22); }
.gap-map-track { width: max-content; min-width: 100%; height: 100%; display: flex; align-items: stretch; gap: 8px; padding: 10px 2px 4px; }
.gap-ability { position: relative; width: 126px; min-height: 178px; flex: 0 0 126px; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 5px; padding: 24px 8px 10px; border-radius: 22px; background: #f8f8f9; text-align: center; }
.gap-ability:nth-child(2n) { background: #f6f4f8; }.gap-ability:nth-child(3n) { background: #fbf7ec; }
.gap-ability-column, .ability-column { display: flex; flex-direction: column-reverse; gap: 4px; font-style: normal; }
.gap-ability-column span { width: 66px; height: 17px; border-radius: 8px; background: rgba(17,17,20,.1); }
.gap-ability-column .level-1, .ability-column .level-1 { background: #a6e4f0; }.gap-ability-column .level-2, .ability-column .level-2 { background: #9ee6ab; }.gap-ability-column .level-3, .ability-column .level-3 { background: #e2aef2; }.gap-ability-column .level-4, .ability-column .level-4 { background: #f4d27a; }
.gap-ability strong { max-width: 100%; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.gap-ability small { color: #6b6b73; font-size: 10px; white-space: nowrap; }.gap-ability em { color: #9a6812; font-size: 9px; font-style: normal; white-space: nowrap; }
.gap-ability-badge { position: absolute; left: 50%; top: 5px; min-width: 34px; height: 21px; display: grid; place-items: center; transform: translateX(-50%); border-radius: 999px; color: #111; background: linear-gradient(135deg,#ffe680,#ffb31f); font-size: 11px; font-weight: 700; }.gap-ability-badge:empty { visibility: hidden; }
.gap-ability-next { position: absolute; left: 50%; top: -8px; z-index: 2; padding: 4px 9px; transform: translateX(-50%); border-radius: 999px; background: #fbe8b8; font-size: 10px; white-space: nowrap; }.gap-ability-next + .gap-ability-column { margin-top: 8px; }
@media (max-height: 820px) {
  .home-main { gap: 16px; padding-block: 20px; }
  .home-upper { height: 340px; }
  .home-next { gap: 12px; }
  .case-hero { padding-block: 22px; }
  .gap-ability { min-height: 160px; }
  .gap-ability-column span { height: 14px; }
}

/* Pre-start is the Q43-00 modal over the confirmed single-window desktop shell. */
.intro-page { position: relative; color: #111114; background: #111; font-family: var(--font-brand); }
.intro-menubar { position: absolute; inset: 0 0 auto; height: 36px; display: flex; align-items: center; gap: 8px; padding: 0 14px 0 22px; color: #fff; }
.intro-menubar > div:first-child { margin-right: auto; display: flex; align-items: center; gap: 12px; }
.intro-menubar strong { font-size: 19px; }
.intro-menubar i { width: 1px; height: 14px; background: rgba(255,255,255,.25); }
.intro-menubar span { color: rgba(255,255,255,.65); font-size: 13px; }
.intro-menubar button { height: 28px; padding: 0 14px; border: 0; border-radius: 999px; color: rgba(255,255,255,.82); background: rgba(255,255,255,.14); font-size: 13px; font-weight: 600; }
.intro-story-clock { display: flex; align-items: center; gap: 8px; margin-left: 8px; }
.intro-story-clock small { padding: 2px 6px; border-radius: 4px; color: rgba(255,255,255,.72); background: rgba(255,255,255,.14); }
.intro-story-clock strong { font-size: 15px; }
.intro-desktop { position: absolute; left: 8px; right: 8px; top: 36px; bottom: 64px; overflow: hidden; border-radius: 20px; background: #efeff2; }
.intro-wallpaper { position: absolute; left: 50%; top: 46%; display: flex; flex-direction: column; align-items: center; gap: 10px; transform: translate(-50%,-50%); color: #111; }
.intro-wallpaper .law-mark { width: 112px; height: 112px; display: grid; place-items: center; border-radius: 50%; background: #f3d6fa; box-shadow: 0 0 0 10px #fff; font-size: 48px; }
.intro-wallpaper > strong { margin-top: 14px; font-size: 44px; font-weight: 600; letter-spacing: -.5px; }
.intro-wallpaper > small { color: #6b6b73; font-size: 15px; font-weight: 500; letter-spacing: 3px; }
.intro-wallpaper > b { margin-top: 10px; padding: 10px 22px; border-radius: 999px; background: #fff; font-size: 20px; letter-spacing: 4px; }
.intro-wallpaper > em { color: #6b6b73; font-size: 14px; font-style: normal; }
.intro-team { position: absolute; left: 32px; bottom: 18px; display: flex; align-items: center; gap: 12px; padding: 10px 22px 10px 10px; border-radius: 999px; background: #fff; }
.intro-team > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: #f3d6fa; font-size: 18px; font-weight: 700; }
.intro-team > div { display: flex; flex-direction: column; gap: 2px; }
.intro-team small { color: #6b6b73; font-size: 12px; }
.intro-shade { position: absolute; inset: 0; z-index: 2; background: rgba(17,17,17,.55); }
.intro-dialog { position: absolute; z-index: 3; left: 50%; top: 50%; width: 650px; display: flex; flex-direction: column; gap: 17px; padding: 28px 32px 26px; transform: translate(-50%,-50%); border-radius: 40px; background: #fff; box-shadow: 0 30px 70px rgba(0,0,0,.30); }
.intro-dialog h1 { margin: 0; font-size: 34px; font-weight: 600; line-height: 1.1; letter-spacing: -.6px; }
.intro-summary { margin: 0; color: #3a3a42; font: 15px/1.65 var(--font-ui); }
.intro-duration { display: flex; align-items: baseline; gap: 12px; padding: 12px 16px; border-radius: 18px; background: #fff7dc; }
.intro-duration span, .intro-duration small { color: #6b6b73; font-size: 12px; }
.intro-duration strong { font-size: 18px; }
.intro-duration small { margin-left: auto; }
.intro-dialog ol { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.intro-dialog li { display: flex; align-items: center; gap: 16px; padding: 10px 14px; border-radius: 20px; background: #f7f7f7; }
.intro-dialog li span { width: 38px; height: 38px; display: grid; place-items: center; flex: none; border-radius: 50%; background: #ddf6fb; font-size: 16px; font-weight: 600; }
.intro-dialog li:nth-child(2) span { background: #cff7d6; }
.intro-dialog li:nth-child(3) span { background: #f3d6fa; }
.intro-dialog li b { font-size: 16px; font-weight: 600; }
.intro-start { align-self: flex-end; height: 60px; display: flex; align-items: center; gap: 18px; padding: 0 8px 0 28px; border: 0; border-radius: 999px; color: #fff; background: #111; font-size: 19px; font-weight: 600; letter-spacing: 1px; }
.intro-start i { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: #111; background: #f4d27a; }
.intro-start svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

.menubar {
  height: 36px;
  display: grid;
  grid-template-columns: minmax(420px, 1fr) 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 0 14px 0 22px;
  color: #fff;
  background: #111;
}
.brand { display: flex; align-items: center; gap: 12px; font-family: var(--font-brand); letter-spacing: -.01em; }
.brand strong { font-size: 19px; line-height: 1; }
.brand > i { width: 1px; height: 14px; background: rgba(255, 255, 255, .25); }
.case-name { color: rgba(255, 255, 255, .65); font-size: 13px; font-weight: 400; }
.session-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.topbar-button { height: 28px; display: flex; align-items: center; gap: 6px; padding: 0 14px; border: 0; border-radius: 999px; font-size: 13px; font-weight: 600; }
.topbar-button svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.topbar-button.pause { color: #111; background: #fff; }
.topbar-button.clock-out { color: #111; background: #cff7d6; box-shadow: 0 0 0 4px rgba(47,180,99,.25), 0 0 14px 4px rgba(47,180,99,.45); }
.topbar-button.pause svg { width: 11px; height: 11px; fill: currentColor; stroke: none; }
.topbar-button.muted { color: #fff; background: rgba(255, 255, 255, .14); }
.topbar-divider { width: 1px; height: 14px; margin: 0 4px; background: rgba(255, 255, 255, .25); }
.menubar-button { border: 1px solid #3d3d44; border-radius: 8px; padding: 6px 10px; color: inherit; background: #242429; }
.app-window .menubar-button { border-color: var(--line); color: var(--ink); background: #fff; }
.story-clock { display: flex; align-items: center; gap: 8px; cursor: help; white-space: nowrap; }
.story-clock small { height: 18px; display: flex; align-items: center; padding: 0 6px; border-radius: 4px; color: rgba(255, 255, 255, .72); background: rgba(255, 255, 255, .14); font-size: 12px; font-weight: 500; }
.story-clock strong { color: #fff; font: 600 15px/1 Poppins, var(--font-ui); font-variant-numeric: tabular-nums; letter-spacing: .2px; }

.desktop { position: relative; height: calc(100vh - 36px); overflow: hidden; background: #111; }
.desktop-surface { position: absolute; inset: 0 8px 64px; border-radius: 20px; background: #efeff2; }
.workspace-grid { position: absolute; z-index: 4; inset: 16px 24px 80px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.workspace-grid[data-panes="2"] { grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr); }
.workspace-grid[data-panes="2"]:has(.right-window:not(.hidden)) { grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); }
.workspace-grid[data-panes="3"] { grid-template-columns: minmax(300px, .95fr) minmax(430px, 1.25fr) minmax(330px, .95fr); }
.app-window { position: relative; z-index: 5; min-width: 0; min-height: 0; overflow: hidden; container-type: inline-size; border: 1.5px solid #c4c4cc; border-radius: 12px; background: var(--canvas); box-shadow: var(--shadow-base); }
.app-window.focused { z-index: 7; border-color: #8f8f98; box-shadow: 0 10px 28px rgba(20,20,30,.12); }
.workspace-grid.maximize-left, .workspace-grid.maximize-center, .workspace-grid.maximize-right { grid-template-columns: minmax(0,1fr); }
.workspace-grid.maximize-left .workspace-window:not(.left-window), .workspace-grid.maximize-center .workspace-window:not(.center-window), .workspace-grid.maximize-right .workspace-window:not(.right-window) { display: none; }
.window-bar { height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border-bottom: 1px solid rgba(0, 0, 0, .06); background: #f7f7f8; }
.workspace-window[data-window-app="wechat"] .window-bar { background: #f2f7f3; }
.workspace-window[data-window-app="email"] .window-bar { background: #f4f6fb; }
.workspace-window[data-window-app="files"] .window-bar { background: #f2f2f4; }
.workspace-window[data-window-app="word"] .window-bar { color: #fff; background: #2b4c8c; }
.window-bar > strong { display: flex; align-items: center; gap: 8px; overflow: hidden; font-size: 13px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.window-bar > strong::before { content: ""; width: 18px; height: 18px; flex: none; border-radius: 4px; background: var(--app-accent, var(--ink)); }
.workspace-window[data-window-app="wechat"] .window-bar > strong::before { background: var(--wechat) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M10.4 5C6.3 5 3 7.7 3 11c0 1.8 1 3.4 2.5 4.5L5 18l2.8-1.3c.8.2 1.7.3 2.6.3 4.1 0 7.4-2.7 7.4-6S14.5 5 10.4 5Zm-2.6 5.2a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm5.1 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm6.8 6.1.4 2-2.2-1c-.7.2-1.3.3-2 .3-2.7 0-5-1.5-5.8-3.6h.3c4.8 0 8.6-3 8.6-6.7v-.2c1.3 1 2 2.4 2 4 0 1.4-.5 2.6-1.3 3.6Z'/%3E%3C/svg%3E") center/15px 15px no-repeat; }
.workspace-window[data-window-app="email"] .window-bar > strong::before { background: var(--mail) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='white' stroke-width='2.2'/%3E%3Cpath d='M3 7l9 6 9-6' fill='none' stroke='white' stroke-width='2.2'/%3E%3C/svg%3E") center/14px 14px no-repeat; }
.workspace-window[data-window-app="files"] .window-bar > strong::before { background: #111114 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M2.5 7A2.5 2.5 0 0 1 5 4.5h4.2l2.3 2.5H19A2.5 2.5 0 0 1 21.5 9.5V18A2.5 2.5 0 0 1 19 20.5H5A2.5 2.5 0 0 1 2.5 18z'/%3E%3C/svg%3E") center/14px 14px no-repeat; }
.workspace-window[data-window-app="word"] .window-bar > strong::before { content: "W"; display: grid; place-items: center; color: #2b4c8c; background: #fff; font-size: 12px; font-weight: 800; }
.workspace-window[data-window-app="excel"] .window-bar > strong::before { content: "X"; display: grid; place-items: center; color: #fff; background: var(--excel); font-size: 11px; font-weight: 800; }
.workspace-window[data-window-app="ai"] .window-bar > strong::before { content: "DS"; display: grid; place-items: center; color: #fff; background: #111; font-size: 7px; font-weight: 800; }
.workspace-window[data-window-app="browser"] .window-bar > strong::before { border: 3px solid #111; border-radius: 50%; background: transparent; }
.window-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.window-actions button { width: 24px; height: 24px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #111114; background: #ededf0; }
.window-actions button:hover { background: #dedee3; }
.window-actions .window-close { color: #111114; background: #e4e4e8; }
.workspace-window[data-window-app="word"] .window-actions button { color: #fff; background: rgba(255,255,255,.16); }
.workspace-window[data-window-app="word"] .window-actions .window-close { background: rgba(255,255,255,.28); }
.window-actions svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.workspace-window[data-window-app="wechat"] { --app-accent: var(--wechat); }
.workspace-window[data-window-app="email"] { --app-accent: var(--mail); }
.workspace-window[data-window-app="files"] { --app-accent: #686871; }
.workspace-window[data-window-app="word"] { --app-accent: var(--word); }
.workspace-window[data-window-app="excel"] { --app-accent: var(--excel); }
.workspace-window[data-window-app="law"], .workspace-window[data-window-app="browser"], .workspace-window[data-window-app="ai"] { --app-accent: #222226; }

.empty-desktop { position: absolute; z-index: 3; inset: 0 8px 64px; overflow: hidden; border-radius: 20px; color: #111114; }
.empty-rings { position: absolute; left: 50%; top: 48%; width: 760px; height: 760px; transform: translate(-50%,-50%); }
.empty-rings i { position: absolute; left: 50%; top: 50%; width: 340px; height: 340px; transform: translate(-50%,-50%); border: 1.5px solid #dcdce2; border-radius: 50%; }
.empty-rings i:nth-child(2) { width: 500px; height: 500px; border-color: #e2e2e7; }.empty-rings i:nth-child(3) { width: 680px; height: 680px; border-color: #e7e7eb; }
.empty-time { position: absolute; left: 40px; top: 34px; display: flex; flex-direction: column; gap: 3px; }.empty-time strong { font: 700 58px/1 var(--font-brand); letter-spacing: -2px; }.empty-time span { color: #3e3e46; font-weight: 600; }.empty-time small { color: #86868f; }
.empty-brand { position: absolute; left: 50%; top: 46%; width: 620px; display: flex; flex-direction: column; align-items: center; gap: 10px; transform: translate(-50%,-50%); text-align: center; }.empty-law-mark { width: 88px; height: 88px; display: grid; place-items: center; border-radius: 22px; color: #fff; background: #111114; font-size: 42px; }.empty-brand h1 { margin: 10px 0 0; font: 700 44px/1.2 var(--font-brand); letter-spacing: 2px; }.empty-brand small { color: #86868f; font: 600 13px var(--font-brand); letter-spacing: 6px; }.empty-brand > i { width: 48px; height: 2px; margin: 9px 0 3px; background: #111114; }.empty-brand > strong { color: #3e3e46; font-size: 24px; letter-spacing: 7px; }.empty-brand p { margin: 0; color: #86868f; letter-spacing: 1px; }
.empty-team { position: absolute; left: 40px; bottom: 18px; display: flex; align-items: center; gap: 12px; padding: 10px 18px 10px 10px; border: 1.5px solid #d6d6dc; border-radius: 12px; background: rgba(255,255,255,.72); }.empty-team > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: #111114; font-weight: 700; }.empty-team > div { display: flex; flex-direction: column; }.empty-team small { color: #6b6b73; }
.empty-notifications { position: absolute; top: 20px; right: 20px; width: 356px; display: grid; gap: 10px; }.empty-notifications button { display: flex; flex-direction: column; gap: 6px; padding: 13px 15px; border: 1.5px solid #c4c4cc; border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: 0 14px 32px rgba(20,20,30,.12); text-align: left; }.empty-notifications button > span { display: flex; align-items: center; gap: 8px; }.empty-notifications time { margin-left: auto; color: #86868f; font-size: 11px; }.empty-notifications p { overflow: hidden; margin: 0; color: #4a4a52; white-space: nowrap; text-overflow: ellipsis; }.empty-notification-icon { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; color: #fff; background: #111; font-size: 9px; font-style: normal; }.empty-notification-icon.wechat-icon { background: var(--wechat); }.empty-notification-icon.mail-icon { background: var(--mail); }
.empty-todo { position: absolute; right: 0; top: 292px; width: 54px; height: 68px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding-left: 4px; border: 0; border-radius: 22px 0 0 22px; color: #fff; background: #111114; box-shadow: -8px 10px 24px rgba(20,20,30,.28); }.empty-todo b { position: absolute; left: 7px; top: 5px; min-width: 16px; height: 16px; border-radius: 999px; color: #fff; background: #ff5a4e; font-size: 10px; line-height: 16px; }.empty-todo small { font-size: 10px; }

.assistant-app, .browser-app { height: calc(100% - 34px); min-height: 0; background: #fff; }
.assistant-app { display: grid; grid-template-columns: 52px minmax(0,1fr); }.assistant-rail { display: flex; flex-direction: column; align-items: center; gap: 10px; padding-top: 12px; border-right: 1px solid #e4e4ea; background: #f6f6f9; }.assistant-rail button, .assistant-rail span { width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 10px; color: #fff; background: #111; font-weight: 800; }
.assistant-main { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto auto; background: #fbfbfd; }.assistant-main > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #e5e5ea; background: #fff; }.assistant-main > header div { min-width: 0; display: grid; gap: 2px; }.assistant-main > header strong { font-size: 14px; }.assistant-main > header small { overflow: hidden; color: #6f7078; text-overflow: ellipsis; white-space: nowrap; }.assistant-main > header button, .browser-stop { border: 0; color: #666872; background: transparent; font-size: 11px; }.assistant-messages { min-height: 0; overflow: auto; padding: 14px; display: flex; flex-direction: column; gap: 12px; }.ai-message { max-width: 92%; display: grid; gap: 6px; }.ai-message.user { align-self: flex-end; }.ai-message > span { color: #7a7b84; font-size: 10px; }.ai-message p { margin: 0; padding: 10px 12px; border: 1px solid #e2e2e8; border-radius: 12px; background: #fff; white-space: pre-wrap; line-height: 1.55; }.ai-message.user p { border-color: #d8e9e3; background: #eaf5f1; }.ai-message menu { display: flex; gap: 6px; margin: 0; padding: 0; }.ai-message menu button { border: 1px solid #d9d9df; border-radius: 6px; padding: 5px 8px; background: #fff; font-size: 10px; }.assistant-empty { margin: auto; max-width: 300px; color: #72737c; text-align: center; line-height: 1.6; }.assistant-context { border-top: 1px solid #e5e5ea; background: #fff; }.assistant-context summary { cursor: pointer; padding: 9px 12px; font-size: 11px; }.assistant-context summary span { margin-left: 5px; color: #087d66; }.assistant-context > div { max-height: 136px; overflow: auto; padding: 0 12px 10px; display: grid; gap: 5px; }.assistant-context label { display: flex; align-items: flex-start; gap: 7px; font-size: 10px; line-height: 1.4; }.assistant-composer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; padding: 10px 12px; border-top: 1px solid #e5e5ea; background: #fff; }.assistant-composer .redaction-check { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; color: #595a63; font-size: 10px; }.assistant-composer textarea { min-height: 56px; max-height: 120px; resize: vertical; border: 1px solid #d7d7dd; border-radius: 9px; padding: 9px; font: inherit; }.assistant-composer > button { align-self: end; border: 0; border-radius: 8px; padding: 10px 13px; color: #fff; background: #087d66; font-weight: 700; }
.browser-app { display: grid; grid-template-rows: 48px minmax(0,1fr); }.browser-toolbar { display: flex; align-items: center; gap: 6px; padding: 0 8px; border-bottom: 1px solid #e4e4ea; background: #f6f6f9; }.browser-toolbar > button:not(.browser-stop) { width: 27px; height: 27px; border: 0; border-radius: 50%; }.browser-toolbar form { min-width: 0; flex: 1; display: flex; border: 1px solid #d8d8df; border-radius: 999px; background: #fff; overflow: hidden; }.browser-toolbar input { min-width: 0; flex: 1; border: 0; padding: 7px 10px; outline: 0; font-size: 11px; }.browser-toolbar form button { border: 0; padding: 0 10px; color: #fff; background: #111; font-size: 10px; }.browser-workspace { min-height: 0; overflow: auto; display: grid; grid-template-rows: auto auto auto auto; align-content: start; background: #eef0f3; }.browser-page-meta { padding: 7px 10px; display: grid; gap: 2px; border-bottom: 1px solid #dddfe4; background: #fff; }.browser-page-meta span, .browser-page-meta small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.browser-page-meta span { font-size: 11px; font-weight: 700; }.browser-page-meta small { color: #72737a; font-size: 9px; }.browser-viewport { position: relative; min-height: 230px; margin: 9px; padding: 0; border: 1px solid #d5d7dc; border-radius: 6px; overflow: hidden; background: #fff; }.browser-viewport img { width: 100%; height: auto; display: block; }.browser-viewport img:not([src]) { display: none; }.browser-viewport span { position: absolute; inset: 0; display: grid; place-items: center; color: #686970; }.browser-controls { padding: 0 9px 9px; display: flex; flex-wrap: wrap; gap: 5px; }.browser-controls input { min-width: 110px; flex: 1; }.browser-controls button, .browser-controls input, .browser-evidence button, .browser-evidence textarea { border: 1px solid #d6d7dc; border-radius: 6px; padding: 7px 8px; background: #fff; font: inherit; font-size: 10px; }.browser-evidence { margin: 0 9px 10px; padding: 10px; display: grid; gap: 7px; border: 1px solid #d9dbe0; border-radius: 8px; background: #fff; }.browser-evidence label { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; font-weight: 700; }.browser-evidence label span { color: #777983; font-size: 9px; font-weight: 400; }.browser-evidence textarea { min-height: 54px; resize: vertical; }.browser-evidence > button { color: #fff; border-color: #087d66; background: #087d66; font-weight: 700; }.browser-source { display: grid; gap: 5px; padding: 8px 0; border-top: 1px solid #ececf0; }.browser-source strong, .browser-source small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.browser-source small { color: #6b6c75; }.browser-source div { display: flex; gap: 6px; }.browser-source button { color: #087d66; }.browser-source a { color: #087d66; font-size: 10px; }
.tool-empty-state { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 30px; text-align: center; }.tool-empty-state .tool-status-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 16px; color: #fff; background: #111; font-weight: 800; }.tool-empty-state .browser-status-icon { border: 4px solid #111; border-radius: 50%; color: #111; background: #fff; font-size: 28px; }.tool-empty-state h2 { margin: 2px 0 0; font-size: 20px; }.tool-empty-state p { max-width: 360px; margin: 0; color: #4a4a52; line-height: 1.7; }.tool-empty-state small { max-width: 340px; color: #86868f; line-height: 1.6; }
.tool-empty-state > button { min-width: 92px; height: 34px; border: 0; border-radius: 999px; color: #fff; background: #111; font-weight: 700; }
.assistant-app > .tool-empty-state { grid-column: 1 / -1; }
.message-recipient { overflow: hidden; margin-left: auto; color: #777981; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.mail-list-row:not(.unread) > i { background: transparent; }
.mail-list-row.unread strong, .mail-list-row.unread b { font-weight: 800; }
.image-viewer { height: calc(100% - 34px); min-height: 0; grid-template-rows: minmax(0,1fr) 34px; background: #292b30; }
.image-viewer:not(.hidden) { display: grid; }
.image-viewer-stage { min-height: 0; display: grid; place-items: center; overflow: auto; padding: 22px; background: repeating-conic-gradient(#32343a 0 25%,#2c2e33 0 50%) 50% / 20px 20px; }
.image-viewer-stage img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 12px 34px #0008; }
.image-viewer footer { display: flex; align-items: center; gap: 16px; padding: 0 12px; color: #ececf0; background: #1d1e22; font-size: 10px; }
.image-viewer footer span { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.image-viewer footer strong { color: #aeb0b7; font-weight: 500; }
.document-review.material-word-pages { display: grid; gap: 22px; padding: 0; background: transparent; }
.document-review.material-word-pages figure { margin: 0; padding: 0; background: #fff; box-shadow: 0 8px 28px #24242b26; }
.document-review.material-word-pages img { display: block; width: 100%; height: auto; }
.document-review.material-word-pages figcaption { padding: 7px 10px; color: #73737b; background: #f7f7f8; font-size: 9px; text-align: center; }
.document-review.material-word-pages .material-loading { padding: 36px; color: #72737b; text-align: center; }

.workspace-grid[data-panes="3"] .left-window .wechat-layout { grid-template-columns: 152px minmax(0,1fr); }.workspace-grid[data-panes="3"] .left-window .conversation { padding-inline: 8px; }.workspace-grid[data-panes="3"] .left-window .conversation-copy time, .workspace-grid[data-panes="3"] .left-window .conversation-copy small { display: none; }.workspace-grid[data-panes="3"] .left-window .chat-heading { padding-inline: 14px; }.workspace-grid[data-panes="3"] .left-window .chat-heading small, .workspace-grid[data-panes="3"] .left-window .composer-actions span { display: none; }.workspace-grid[data-panes="3"] .left-window .composer { grid-template-rows: 42px minmax(72px,1fr) 40px; }
.workspace-grid[data-panes="3"] .center-window .document-toolbar .toolbar-select, .workspace-grid[data-panes="3"] .center-window .document-toolbar .toolbar-letter, .workspace-grid[data-panes="3"] .center-window .document-toolbar > i { display: none; }.workspace-grid[data-panes="3"] .center-window .document-toolbar { gap: 5px; padding-inline: 9px; }.workspace-grid[data-panes="3"] .center-window .document-submit { padding-inline: 10px; font-size: 11px; }.workspace-grid[data-panes="3"] .center-window .document-paper { width: calc(100% - 20px); min-width: 430px; padding: 44px 38px; }.workspace-grid[data-panes="3"] .center-window .document-comments { width: 190px; padding: 14px; }.workspace-grid[data-panes="3"] .center-window .document-disclosure span { display: none; }

.wechat-layout { height: calc(100% - 34px); min-height: 0; display: grid; grid-template-columns: 250px 1fr; }
.conversation-list { min-width: 0; overflow: hidden; border-right: 1px solid #dadada; background: #ededed; }
.search-wrap { position: relative; padding: 12px 12px 8px; }
.search-wrap label { position: absolute; left: 26px; top: 18px; color: #7b7b83; font-size: 12px; pointer-events: none; }
.search-wrap:focus-within label, .search-wrap:has(.search:not(:placeholder-shown)) label { display: none; }
.search { width: 100%; height: 28px; margin: 0; padding: 0 12px; border: 0; border-radius: 999px; outline: none; color: #111114; background: #dedede; font-size: 12px; }
.search::placeholder { color: transparent; }
.conversation { position: relative; width: 100%; min-height: 56px; display: flex; gap: 10px; align-items: center; padding: 11px 12px; border: 0; background: transparent; text-align: left; }
.conversation:hover { background: #e4e4e4; }
.conversation.selected { background: #dedede; }
.conversation.search-hidden { display: none; }
.mail-list-row.search-hidden { display: none; }
.conversation-copy { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 3px; }
.conversation-copy > span { display: flex; align-items: center; gap: 4px; }
.conversation strong { overflow: hidden; color: #111114; font-size: 13px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.conversation time { flex: none; margin-left: auto; color: #6b6b73; font-size: 12px; }
.conversation small { display: block; overflow: hidden; color: #6b6b73; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.avatar { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 6px; color: #fff; background: #7b7b85; font-size: 13px; font-weight: 600; }
.avatar.client { background: #d98b5f; }
.avatar.accountant { background: #2e7d6b; }
.avatar.lawyer { background: #3b5ba9; }
.avatar.learner { background: #8a6fd1; }
.group-mosaic { grid-template-columns: 1fr 1fr; gap: 2px; padding: 2px; background: #d6d6d6; }
.group-mosaic i { display: grid; place-items: center; min-width: 0; min-height: 0; border-radius: 2px; color: #fff; font-size: 8px; font-style: normal; }
.group-mosaic .client { background: #d98b5f; }
.group-mosaic .accountant { background: #2e7d6b; }
.group-mosaic .lawyer { background: #3b5ba9; }
.group-mosaic .learner { background: #8a6fd1; }
.badge { position: absolute; left: 36px; top: 6px; min-width: 16px; height: 16px; padding: 0 4px; border: 2px solid #ededed; border-radius: 8px; color: #fff; background: var(--unread); font: 600 9px/12px Poppins, var(--font-ui); text-align: center; }
.chat-panel { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-rows: 54px minmax(0,1fr) 150px; background: #f5f5f5; }
.chat-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid #e2e2e2; background: #f5f5f5; }
.chat-heading h1 { margin: 0; font-size: 15px; font-weight: 600; }
.chat-heading small { display: none; }
.chat-info { width: 30px; height: 30px; padding: 0; border: 0; color: #4a4a52; background: transparent; font-size: 18px; font-weight: 700; letter-spacing: 1px; }
.chat-info-panel { position: absolute; z-index: 8; top: 54px; right: 0; width: 230px; padding: 14px; border-left: 1px solid #dadada; border-bottom: 1px solid #dadada; background: #fff; box-shadow: 0 12px 30px rgba(20, 20, 30, .12); }
.chat-info-panel header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.chat-info-panel header button { border: 0; background: transparent; font-size: 20px; }
.chat-info-panel #chatMembers { display: grid; gap: 8px; }
.chat-member { display: flex; align-items: center; gap: 8px; }
.chat-member .avatar { width: 26px; height: 26px; border-radius: 4px; font-size: 11px; }
.messages { overflow: auto; display: flex; flex-direction: column; gap: 12px; padding: 14px 20px; background: #f5f5f5; }
.empty { max-width: 430px; margin: 90px auto; color: var(--muted); text-align: center; }
.message-time { align-self: center; color: #6b6b73; font-size: 12px; }
.message { display: flex; gap: 8px; align-items: flex-start; }
.message.mine { flex-direction: row-reverse; }
.avatar.mini { width: 34px; height: 34px; border-radius: 4px; font-size: 13px; }
.message > div { min-width: 0; max-width: 420px; display: flex; flex-direction: column; gap: 4px; }
.message header { display: flex; align-items: baseline; margin: 0; }
.message.mine header { justify-content: flex-end; }
.message header strong { color: #6b6b73; font-size: 12px; font-weight: 400; }
.message header time { display: none; }
.message p { margin: 0; padding: 9px 12px; border: 0; border-radius: 4px; color: #111114; background: #fff; font-size: 14px; line-height: 1.65; white-space: pre-wrap; }
.message.mine p { border: 0; border-radius: 4px; background: #95ec69; }
.composer { position: relative; display: grid; grid-template-rows: 40px 1fr 42px; padding: 0; border-top: 1px solid #e2e2e2; background: #fff; }
.composer-tools { display: flex; gap: 4px; padding: 6px 10px; }
.composer-tools button { height: 28px; display: flex; align-items: center; gap: 5px; padding: 0 10px; border: 0; border-radius: 6px; color: #4a4a52; background: transparent; font-size: 13px; }
.composer-tools button:hover { background: #f1f1f1; }
.composer-tools svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.composer textarea { width: 100%; min-height: 0; resize: none; padding: 2px 16px; border: 0; outline: 0; color: #111114; background: #fff; font-size: 14px; }
.composer textarea::placeholder { color: #9a9aa1; }
.composer-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 0 14px 12px; }
.composer-actions > span { display: none; }
.send, .primary { border: 0; border-radius: 8px; padding: 8px 14px; color: #fff; background: var(--ink); font-weight: 650; }
.send { height: 30px; padding: 0 18px; border-radius: 6px; color: #05793a; background: #e9e9e9; font-size: 13px; font-weight: 600; }
.send:hover { background: #dedede; }
.mention-menu { position: absolute; z-index: 9; left: 22px; bottom: 112px; width: 220px; display: flex; flex-direction: column; padding: 6px; border: 1px solid #dadada; border-radius: 12px; background: #fff; box-shadow: 0 12px 30px rgba(20, 20, 30, .18); }
.mention-menu > span { padding: 4px 8px 6px; color: #6b6b73; font-size: 12px; }
.mention-option { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 0; border-radius: 6px; background: transparent; text-align: left; }
.mention-option:hover, .mention-option:first-of-type { background: #ededed; }
.mention-option .avatar { width: 26px; height: 26px; border-radius: 4px; font-size: 12px; }

.dock { position: fixed; z-index: 6; left: 50%; bottom: 8px; height: 48px; transform: translateX(-50%); display: flex; align-items: center; gap: 2px; padding: 0 6px; background: transparent; }
.dock > i { width: 1px; height: 26px; margin: 0 4px; background: rgba(255, 255, 255, .2); }
.dock-app { position: relative; width: auto; height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 12px 0 5px; border: 0; border-radius: 999px; color: rgba(255, 255, 255, .75); background: transparent; font-size: 13px; font-weight: 500; white-space: nowrap; }
.dock-app:hover, .dock-app.active { color: #fff; background: rgba(255, 255, 255, .16); }
.dock-app.active { font-weight: 600; }
.dock-app.minimized { opacity: .58; }
.dock-app.open::after { content: ""; position: absolute; left: 50%; bottom: 1px; width: 4px; height: 4px; transform: translateX(-50%); border-radius: 50%; background: rgba(255,255,255,.72); }
.dock-app.active::after { width: 12px; border-radius: 999px; background: #fff; }
.dock-app.minimized::after { width: 6px; height: 2px; border-radius: 0; background: rgba(255,255,255,.56); }
.dock-app .app-icon { position: relative; width: 22px; height: 22px; display: grid; place-items: center; margin: 0; border-radius: 0; color: #fff; background: transparent; opacity: .72; }
.dock-app.active .app-icon { opacity: 1; }
.dock-app svg { width: 20px; height: 20px; }
.dock-app small { display: block; margin: 0; color: inherit; font-size: 13px; }
.dock-app b { position: absolute; left: 19px; top: 0; min-width: 16px; height: 16px; padding: 0 4px; border: 2px solid #111; border-radius: 8px; color: #fff; background: var(--unread); font: 600 9px/12px Poppins, var(--font-ui); text-align: center; }
.dock-app b:empty { display: none; }
.wechat-icon { background: transparent; }
.wechat-icon path, .wechat-icon circle { fill: #fff; }
.wechat-icon circle { fill: #111114; }
.mail-icon { background: transparent; }
.mail-icon rect { fill: #fff; }
.mail-icon path { fill: none; stroke: #111; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.files-icon { background: transparent; }
.files-icon path { fill: #fff; }
.word-icon { background: transparent; }
.word-icon path:first-child { fill: #fff; }
.word-icon path:nth-child(2) { fill: #d6d6dc; }
.word-icon path:last-child { fill: none; stroke: #111; stroke-width: 1.8; stroke-linecap: round; }
.law-icon { background: transparent; }
.law-icon circle, .law-icon path { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.ai-icon { border-radius: 5px !important; color: #111 !important; background: #fff !important; font: 800 8.5px var(--font-brand); }
.dock-app.utility { display: none; }
body.demo-enabled .dock-app.utility { display: flex; }
.utility-icon { background: transparent; }
.utility-icon circle { fill: #fff; }
.save-status { position: fixed; z-index: 6; right: 24px; bottom: 26px; display: flex; align-items: center; gap: 5px; color: rgba(255, 255, 255, .45); font-size: 12px; }
.save-status svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.sheet { position: fixed; z-index: 8; top: 58px; right: 22px; width: 340px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-overlay); }
.sheet header, .demo-panel header { display: flex; justify-content: space-between; align-items: flex-start; }
.sheet h2 { margin: 3px 0 0; font: 700 21px/1.35 var(--font-content); }
.sheet-close, .demo-panel header button { border: 0; background: transparent; font-size: 20px; }
.eyebrow { color: var(--brand-2); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.task-facts { margin: 18px 0; }
.task-facts div { display: grid; grid-template-columns: 52px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); }
.task-facts dt { color: var(--muted); }
.task-facts dd { margin: 0; font-weight: 650; }
.sheet > .primary { width: 100%; padding: 10px; background: var(--brand); }
.demo-panel { position: fixed; z-index: 8; left: 50%; bottom: 88px; width: min(620px, 90vw); transform: translateX(-50%); padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .98); box-shadow: var(--shadow-overlay); }
.demo-panel p { margin: 2px 0 10px; color: var(--muted); font-size: 11px; }
.time-buttons { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.time-buttons button { display: flex; flex-direction: column; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: left; }
.time-buttons button.passed { border-color: var(--mint); background: #eef8f5; }
.time-buttons span { color: var(--muted); font-size: 10px; }

.mail-app { height: calc(100% - 34px); display: grid; grid-template-columns: 150px 310px minmax(0, 1fr); background: #fff; }
.mail-folders { display: flex; flex-direction: column; gap: 4px; padding: 14px 10px; border-right: 1px solid #e4e4ea; background: #f2f2f4; }
.mail-folders button { height: 34px; display: flex; align-items: center; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: #26262c; font-size: 13px; font-weight: 500; }
.mail-folders button.selected { color: #fff; background: #111114; font-weight: 600; }
.mail-folders b { margin-left: auto; font-size: 12px; }
.mail-list { min-width: 0; overflow: auto; border-right: 1px solid #e4e4ea; background: #fff; }
.mail-search { position: relative; padding: 12px 12px 8px; }
.mail-search label { position: absolute; left: 26px; top: 19px; color: #7b7b83; font-size: 12px; pointer-events: none; }
.mail-search:focus-within label, .mail-search:has(input:not(:placeholder-shown)) label { display: none; }
.mail-search input { width: 100%; height: 32px; padding: 0 14px; border: 0; border-radius: 999px; outline: 0; background: #ededf0; font-size: 13px; }
.mail-search input::placeholder { color: transparent; }
.mail-list-label { display: block; padding: 4px 14px 8px; color: #6b6b73; font-size: 12px; }
.mail-list-row { width: 100%; display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 8px; padding: 12px 14px 12px 10px; border: 0; border-bottom: 1px solid #ececf0; background: #fff; text-align: left; }
.mail-list-row.selected { background: #f4f6fb; }
.mail-list-row > i { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--mail); }
.mail-list-row > span, .mail-list-row > span > span { min-width: 0; display: flex; }
.mail-list-row > span { flex-direction: column; gap: 3px; }
.mail-list-row > span > span { align-items: center; gap: 6px; }
.mail-list-row strong, .mail-list-row b, .mail-list-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-list-row strong, .mail-list-row b { color: #111114; font-size: 13px; font-style: normal; font-weight: 600; }
.mail-list-row time { margin-left: auto; color: #6b6b73; font-size: 12px; }
.mail-list-row em { min-width: 18px; color: #4a4a52; font-size: 11px; font-style: normal; text-align: right; }
.mail-list-row em::before { content: "⌇"; margin-right: 2px; }
.mail-list-row small { color: #6b6b73; font-size: 12px; }
.mail-search-empty { margin: 28px 18px; color: var(--muted); font-size: 12px; text-align: center; }
.mail-reader { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: #fff; }
.mail-toolbar { flex: none; padding: 12px 24px; border-bottom: 1px solid #ececf0; }
.mail-toolbar button { height: 32px; padding: 0 14px; border: 0; border-radius: 999px; color: #fff; background: #111114; font-size: 13px; font-weight: 600; }
.mail-scroll { overflow: auto; padding: 18px 28px 30px; }
.mail-reader h2 { margin: 0 0 14px; color: #111114; font: 700 20px/1.4 var(--font-ui); }
.mail-sender { display: flex; align-items: center; gap: 10px; }
.mail-sender > span { width: 36px; height: 36px; display: grid; place-items: center; flex: none; border-radius: 50%; color: #fff; background: #3b5ba9; font-size: 14px; font-weight: 600; }
.mail-sender > div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mail-sender strong { font-size: 13px; }
.mail-sender small, .mail-sender time { color: #6b6b73; font-size: 12px; }
.mail-sender time { margin-left: auto; }
.mail-body { max-width: 760px; margin-top: 18px; color: #26262c; white-space: pre-wrap; font-size: 14px; line-height: 1.75; }
.mail-attachments { margin-top: 22px; padding-top: 14px; border-top: 1px solid #ececf0; }
.mail-attachments > strong { color: #4a4a52; font-size: 13px; }
.attachment-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.attachment-card { min-width: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 9px; align-items: center; padding: 10px 12px; border: 1px solid #dcdce2; border-radius: 12px; background: #fff; text-align: left; }
.attachment-card:hover { background: #f8f8fa; }
.attachment-card > i, .file-name > i { display: grid; place-items: end center; flex: none; border-radius: 5px; color: #fff; background: var(--word); font: 700 8px/1 var(--font-brand); font-style: normal; }
.attachment-card > i { width: 30px; height: 36px; padding-bottom: 5px; }
.attachment-card.xls > i, .file-name > i.xls { background: var(--excel); }
.attachment-card.pdf > i, .file-name > i.pdf { background: #d93a2b; }
.attachment-card.img > i, .file-name > i.img { background: #7b5aa7; }
.attachment-card > span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.attachment-card strong { overflow: hidden; color: #111114; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.attachment-card small { color: #6b6b73; font-size: 11px; }

.files-app { position: relative; height: calc(100% - 34px); display: grid; grid-template-columns: 190px minmax(0, 1fr); background: #fff; }
.file-locations { display: flex; flex-direction: column; gap: 4px; padding: 14px 10px; border-right: 1px solid #e4e4ea; background: #f2f2f4; }
.file-locations button { height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 0; border-radius: 12px; background: transparent; color: #26262c; font-size: 13px; font-weight: 500; text-align: left; }
.file-locations button.selected { color: #fff; background: #111114; font-weight: 600; }
.folder-mark { font-size: 10px; }
.file-browser { min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
.file-browser > header { padding: 14px 20px 6px; }
.file-browser h2 { margin: 0; font-size: 15px; }
.file-browser header p { margin: 2px 0 0; color: #6b6b73; font-size: 12px; }
.file-columns, .file-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 100px 88px 66px; gap: 12px; align-items: center; }
.file-columns { padding: 10px 20px; border-bottom: 1px solid #ececf0; color: #6b6b73; font-size: 12px; font-weight: 600; }
.file-table { overflow: auto; }
.file-group-title { display: flex; align-items: baseline; gap: 8px; padding: 12px 20px 6px; border-bottom: 1px solid #ececf0; color: #4a4a52; background: #fafafb; font-size: 12px; font-weight: 700; }
.file-group-title span { color: #9a9aa2; font-weight: 400; }
.file-row { width: 100%; padding: 8px 20px; border: 0; border-bottom: 1px solid #f2f2f5; background: #fff; color: #4a4a52; font-size: 13px; text-align: left; }
.file-row:hover:not(:disabled) { background: #f8f8fa; }
.file-row:disabled { cursor: default; opacity: .58; }
.file-name { min-width: 0; display: flex; align-items: center; gap: 10px; color: #111114; }
.file-name > i { width: 22px; height: 26px; padding-bottom: 4px; }
.file-name > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-status { justify-self: start; padding: 2px 8px; border-radius: 999px; color: #236344; background: #e6f4ec; font-size: 11px; }
.file-row.locked .file-status { color: #6b6b73; background: #ededf0; }
.file-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; white-space: nowrap; }
.file-actions button { height: 28px; padding: 0 9px; border: 0; border-radius: 6px; color: #24242a; background: #ededf0; font-size: 11px; font-weight: 600; white-space: nowrap; }
.file-actions button:hover { background: #dfdfe4; }
.file-preview { position: absolute; inset: 0 0 0 190px; z-index: 3; overflow: auto; padding: 34px 44px; background: #fff; }
.file-preview-close { position: absolute; top: 20px; right: 24px; border: 0; background: transparent; font-size: 25px; }
.file-preview h2 { margin: 5px 0; font: 700 24px/1.35 var(--font-content); }
.file-preview > small { color: var(--muted); }
.file-preview-actions { min-height: 32px; display: flex; justify-content: flex-end; align-items: center; }
.file-preview-actions a { padding: 7px 12px; border: 1px solid #cfd3da; border-radius: 7px; color: #20242a; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; }
.file-preview-visual { height: calc(100% - 125px); min-height: 420px; margin-top: 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #d8dbe0; }
.file-preview-visual iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.file-preview-visual img { width: 100%; height: 100%; object-fit: contain; background: #2f3238; }
.file-preview-pages { height: 100%; overflow: auto; padding: 18px; }
.file-preview-pages figure { width: min(100%, 900px); margin: 0 auto 18px; box-shadow: 0 2px 12px #0002; background: #fff; }
.file-preview-pages img { display: block; width: 100%; height: auto; object-fit: initial; background: #fff; }
.file-preview-pages figcaption { padding: 7px 10px; color: var(--muted); background: #f7f8fa; font-size: 11px; text-align: center; }
.file-preview pre { margin-top: 24px; padding: 24px; white-space: pre-wrap; border: 1px solid var(--line); background: #fafafa; font: 13px/1.8 var(--font-content); }

.word-app { height: calc(100% - 34px); display: grid; grid-template-rows: 32px 44px minmax(0, 1fr) 34px; background: #e6e6ea; }
.document-tabstrip { display: flex; align-items: flex-end; padding: 0 10px; border-bottom: 1px solid #dcdce2; background: #e6e6ea; }
.document-tabs { min-width: 0; display: flex; align-items: flex-end; gap: 3px; }
.document-tabs button { max-width: 260px; height: 27px; overflow: hidden; margin: 0; padding: 0 12px; border: 0; border-radius: 6px 6px 0 0; color: #4a4a52; background: transparent; font-size: 12px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.document-tabs button.selected { color: #111114; background: #fff; box-shadow: none; font-weight: 600; }
.document-version { margin-left: auto; height: 27px; display: flex; align-items: center; gap: 7px; padding-left: 12px; color: #6b6b73; font-size: 11px; white-space: nowrap; }
.document-version > span { color: #2b4c8c; font-weight: 700; }
.document-toolbar { min-width: 0; display: flex; align-items: center; gap: 4px; padding: 0 12px; border-bottom: 1px solid #e0e0e6; background: #f2f2f4; }
.document-toolbar > i { width: 1px; height: 20px; margin: 0 4px; background: #d6d6dc; }
.document-toolbar button { flex: none; }
.document-toolbar button:disabled { cursor: not-allowed; opacity: .46; }
.toolbar-icon, .toolbar-letter { width: 30px; height: 28px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 6px; color: #26262c; background: transparent; }
.toolbar-icon:not(:disabled):hover, .toolbar-letter:not(:disabled):hover { background: #e4e4e8; }
.toolbar-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.toolbar-select { width: 78px; height: 28px; display: flex; align-items: center; justify-content: space-between; padding: 0 8px; border: 1px solid #dcdce2; border-radius: 6px; color: #26262c; background: #fff; font-size: 12px; }
.toolbar-select.narrow { width: 64px; }
.toolbar-letter { font-size: 14px; }
.document-view-modes { display: flex; gap: 2px; margin-left: auto; padding: 2px; border-radius: 999px; background: #e2e2e7; }
.document-view-modes button { height: 24px; padding: 0 9px; border: 0; border-radius: 999px; color: #5f5f67; background: transparent; font-size: 11px; }
.document-view-modes button.selected { color: #fff; background: #2b4c8c; }
.document-save-state { margin-left: auto; color: #a15c00; font-size: 12px; white-space: nowrap; }
.document-view-modes:not(.hidden) + .document-save-state { margin-left: 4px; }
.document-save-state::before { content: ""; width: 7px; height: 7px; display: inline-block; margin-right: 6px; border-radius: 50%; background: #e8a200; }
.document-save-state.saved { color: #41715b; }
.document-save-state.saved::before { background: #43a673; }
.document-submit { height: 30px; margin-left: 6px; padding: 0 14px; border: 0; border-radius: 999px; color: #fff; background: #2b4c8c; font-size: 12px; font-weight: 700; }
.document-stage { min-height: 0; display: flex; gap: 16px; overflow: hidden; background: #e6e6ea; }
.document-scroll { min-width: 0; flex: 1; overflow: auto; padding: 20px 28px 46px; }
.document-paper { width: 700px; min-height: 900px; box-sizing: border-box; margin: 0 auto; padding: 50px 72px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.10); }
body:has(.document-comments:not(.hidden)) .document-paper { width: 600px; padding: 50px 60px; }
.document-paper > label { display: block; margin-bottom: 22px; color: #111114; font: 700 21px/1.35 "Noto Serif SC", "Songti SC", serif; text-align: center; letter-spacing: 3px; }
.document-paper textarea { width: 100%; min-height: 750px; resize: none; padding: 0; border: 0; outline: 0; color: #111114; background: transparent; font: 14px/1.95 "Noto Serif SC", "Songti SC", serif; }
.document-review-content { min-height: 750px; white-space: pre-wrap; color: #111114; font: 14px/1.95 "Noto Serif SC", "Songti SC", serif; }
.document-review-content mark { padding: 1px 2px; border-bottom: 2px solid #e5b63a; background: #ffe9a8; scroll-margin-top: 30px; }
.document-compare { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.document-compare article { min-width: 0; overflow: hidden; border-radius: 10px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.document-compare header { padding: 10px 14px; border-bottom: 1px solid #e4e4ea; color: #4a4a52; font-size: 12px; font-weight: 700; }
.document-compare pre { min-height: 520px; margin: 0; padding: 20px; white-space: pre-wrap; word-break: break-word; font: 13px/1.8 "Noto Serif SC", "Songti SC", serif; }
.document-compare del { color: #8d2f29; background: #fde4e1; text-decoration: none; }
.document-compare ins { color: #1f5f3e; background: #def2e6; text-decoration: none; }
.document-comments { width: 290px; flex: none; overflow: auto; display: flex; flex-direction: column; gap: 10px; padding: 16px 16px 16px 0; }
.document-comments > strong { color: #4a4a52; font-size: 12px; }
.document-comment { display: flex; flex-direction: column; gap: 7px; padding: 12px 14px; border: 1px solid #e4dfc6; border-left: 3px solid #e8b400; border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(20,20,30,.06); }
.document-comment header { display: flex; align-items: center; gap: 8px; }
.document-comment header > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #2b4c8c; font-size: 11px; font-weight: 700; }
.document-comment header b { font-size: 12px; }
.document-comment header time { margin-left: auto; color: #9a9aa2; font-size: 11px; }
.document-comment p { margin: 0; color: #26262c; font-size: 13px; line-height: 1.7; }
.document-comment button { align-self: flex-start; padding: 0; border: 0; color: #2b4c8c; background: transparent; font-size: 11px; font-weight: 700; }
.document-disclosure { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 0 18px; border-top: 1px solid #d6d6dc; color: #6b6b73; background: #f2f2f4; font-size: 10px; }
.document-disclosure strong { color: #2b4c8c; font-size: 11px; }

.spreadsheet-app { height: calc(100% - 42px); display: grid; grid-template-rows: 48px auto auto 1fr auto; padding: 0; background: #f7f7f8; }
.spreadsheet-app > header { display: flex; justify-content: space-between; align-items: center; padding: 0 16px; border-bottom: 1px solid #d6d6dc; background: #ececf0; }
.spreadsheet-app .eyebrow { color: var(--excel); }
.spreadsheet-app h2 { margin: 3px 0 0; font: 700 22px/1.35 var(--font-content); }
.spreadsheet-app header p { margin: 4px 0; color: var(--muted); font-size: 11px; }
.spreadsheet-file { display: flex; align-items: center; gap: 9px; min-width: 0; }
.spreadsheet-file > span { width: 26px; height: 30px; box-sizing: border-box; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 4px; border-radius: 5px; color: #fff; background: var(--excel); font-size: 9px; font-weight: 800; }
.spreadsheet-file > div { min-width: 0; display: flex; flex-direction: column; }
.spreadsheet-file strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.spreadsheet-file small { color: var(--muted); font-size: 10px; }
.spreadsheet-actions { display: flex; align-items: center; gap: 10px; }
.spreadsheet-actions span { color: #4e6e5a; font-size: 11px; }
.spreadsheet-actions span.dirty { color: #9a6422; }
.spreadsheet-actions button { height: 30px; padding: 0 14px; border: 0; border-radius: 999px; color: #fff; background: var(--excel); font-size: 11px; font-weight: 700; }
.spreadsheet-actions button:disabled { color: #85858d; background: #d8d8dd; cursor: default; }
.spreadsheet-tabs { display: flex; gap: 2px; padding: 6px 12px 0; border-bottom: 1px solid #d7d7dc; background: #f0f0f3; }
.spreadsheet-tabs button { min-width: 92px; height: 30px; padding: 0 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; color: #55565d; background: transparent; font-size: 11px; }
.spreadsheet-tabs button.selected { color: #15583a; border-color: #c9cec9; background: #fff; font-weight: 700; }
.ledger-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 12px 22px; background: var(--line); border: 1px solid var(--line); }
.ledger-summary div { display: flex; flex-direction: column; padding: 9px 13px; background: #fff; }
.ledger-summary span { color: var(--muted); font-size: 10px; }
.ledger-summary strong { font: 600 17px Poppins, var(--font-ui); }
.ledger-summary .warn { background: #fff8e9; }
.ledger-scroll { overflow: auto; margin: 0 22px; border: 1px solid #bfc0c5; background: #fff; }
.ledger-scroll table { width: 100%; min-width: 920px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.ledger-scroll th { position: sticky; top: 0; padding: 8px; border: 1px solid #c9c9cf; color: #fff; background: var(--excel); text-align: center; }
.ledger-scroll td { padding: 7px 10px; border: 1px solid #d8d8dd; }
.ledger-scroll tr:nth-child(even) td { background: #f8faf9; }
.ledger-scroll td:nth-child(1), .ledger-scroll td:nth-child(2), .ledger-scroll td:nth-child(6) { text-align: center; }
.ledger-scroll td:nth-child(4), .ledger-scroll td:nth-child(5) { text-align: right; }
.ledger-edit-cell { min-width: 220px; padding: 0 !important; background: #f4fbf6 !important; }
.ledger-edit-cell textarea { width: 100%; min-height: 34px; box-sizing: border-box; display: block; resize: vertical; padding: 7px 9px; border: 0; outline: 0; color: #173c26; background: transparent; font: 12px/1.45 var(--font-ui); }
.ledger-edit-cell textarea:focus { box-shadow: inset 0 0 0 2px var(--excel); background: #fff; }
.ledger-edit-cell textarea:disabled { color: #777; background: #efeff1; }
.gap-row td { color: #7b5419 !important; background: #fff1cb !important; font-weight: 700; text-align: center !important; }
.ledger-signal { display: flex; gap: 10px; margin: 10px 22px 14px; padding: 9px 12px; border-left: 3px solid var(--warning-strong); background: #fff8e9; }
.ledger-signal span { color: #665a46; font-size: 11px; }

.law-app { height: calc(100% - 42px); display: grid; grid-template-columns: minmax(360px, 44%) 1fr; grid-template-rows: auto 1fr; gap: 14px; padding: 20px 24px; background: #f2f2f4; }
.law-app > header { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; padding: 0 0 12px; border-bottom: 1px solid #cfcfd5; }
.law-app .eyebrow { color: var(--ink-2); }
.law-app h2 { margin: 4px 0; font: 700 23px/1.35 var(--font-content); }
.law-app header p { max-width: 760px; margin: 0; color: var(--muted); font-size: 11px; }
.law-counts { display: flex; gap: 18px; }
.law-count { display: flex; flex-direction: column; text-align: right; }
.law-count strong { font: 600 24px Poppins, var(--font-ui); }
.law-count span { color: var(--muted); font-size: 10px; }
.law-count.soft strong { color: #765d41; }
.law-list { overflow: auto; border: 1px solid #cfcfd5; border-radius: 7px; background: #fff; }
.law-row { width: 100%; display: flex; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; }
.law-row:hover { background: #f6f6f8; }
.law-row span { display: flex; flex-direction: column; }
.law-row small { margin-top: 3px; color: var(--muted); }
.law-row b { flex: none; color: #9a6422; font-size: 10px; }
.law-row.ready b { color: var(--brand-2); }
.law-row.soft { background: #fcfaf7; }
.law-row.selected { box-shadow: inset 3px 0 var(--ink); background: #f1f1f3; }
.law-reader-empty { display: grid; place-content: center; padding: 38px; border: 1px solid #cfcfd5; border-radius: 7px; color: var(--muted); background: #fffdf8; text-align: center; }
.law-reader-empty::before { content: "法"; display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 12px; border: 1px solid #ccc4b8; border-radius: 50%; color: #5f5548; font: 700 21px var(--font-content); }
.law-reader-empty strong { color: var(--ink); }
.law-app > #lawError { grid-column: 1 / -1; margin: 0; }

/* Application layouts follow their pane width, so every legal workspace combination shares the same rules. */
@container (max-width: 900px) {
  .mail-app { grid-template-columns: 190px minmax(0,1fr); }
  .mail-folders { display: none; }
  .mail-list { grid-column: 1; }
  .mail-reader { grid-column: 2; }
  .mail-scroll { padding: 16px 18px 24px; }
  .attachment-list { grid-template-columns: 1fr; }
  .attachment-card { min-height: 52px; }
  .attachment-card strong, .attachment-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: normal; }
  .files-app { grid-template-columns: minmax(0,1fr); }
  .file-locations { display: none; }
  .file-preview { inset: 0; }
  .file-columns, .file-row { grid-template-columns: minmax(170px,1fr) 94px 86px 48px 116px; gap: 8px; }
  .file-row, .file-columns { padding-inline: 14px; }
  .law-app { display: flex; flex-direction: column; padding: 14px; }
  .law-app > header { flex: none; }
  .law-list { min-height: 190px; flex: 1 1 52%; }
  .law-reader-empty { min-height: 150px; flex: 1 1 38%; padding: 22px; }
}

@container (max-width: 560px) {
  .mail-app { grid-template-columns: 108px minmax(0,1fr); }
  .mail-search { padding-inline: 8px; }
  .mail-list-label { padding-inline: 10px; }
  .mail-list-row { padding: 10px 8px 10px 6px; }
  .mail-list-row time, .mail-list-row small { display: none; }
  .mail-list-row > span > span { gap: 2px; }
  .mail-list-row strong, .mail-list-row b { font-size: 12px; }
  .mail-toolbar { padding: 9px 12px; }
  .mail-scroll { padding: 12px 14px 20px; }
  .mail-reader h2 { margin-bottom: 10px; font-size: 17px; }
  .mail-sender { align-items: flex-start; }
  .mail-sender > span { width: 30px; height: 30px; }
  .mail-sender strong, .mail-sender small { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mail-sender time { display: none; }
  .mail-body { margin-top: 14px; font-size: 13px; line-height: 1.7; overflow-wrap: break-word; word-break: normal; }
  .mail-attachments { margin-top: 16px; }
  .attachment-card { grid-template-columns: 26px minmax(0,1fr); gap: 7px; padding: 8px; }
  .attachment-card > i { width: 26px; height: 32px; }
  .file-browser > header { padding-inline: 14px; }
  .file-browser header p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .file-columns, .file-row { grid-template-columns: minmax(150px,1fr) 82px 72px 38px 104px; gap: 5px; }
  .file-name { gap: 7px; }
  .file-status { padding-inline: 6px; }
}

.modal { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 24px; background: rgba(17, 17, 20, .68); backdrop-filter: blur(5px); }
.modal-card { position: relative; width: min(760px, 100%); max-height: 88vh; overflow: auto; padding: 28px; border-radius: 20px; background: #fff; box-shadow: var(--shadow-overlay); }
.modal-card h2 { margin: 5px 0 20px; font: 700 27px/1.35 var(--font-content); }
.modal-close { position: absolute; z-index: 2; top: 17px; right: 17px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f0f0f2; font-size: 22px; }
.compact-card { width: min(480px, 100%); text-align: center; }
.compact-card p { margin: -8px 0 22px; color: var(--muted); line-height: 1.8; }
.compact-card .primary { min-width: 140px; background: var(--brand); }
.end-actions { display: flex; justify-content: center; gap: 10px; }
.end-actions button { min-width: 120px; height: 40px; border: 0; border-radius: 999px; background: #ededf0; font-weight: 700; }
.end-modal { display: block; padding: 0; pointer-events: none; background: transparent; backdrop-filter: none; }
.end-card { position: absolute; left: 50%; bottom: 82px; width: min(600px, calc(100vw - 48px)); display: flex; gap: 16px; transform: translateX(-50%); padding: 20px 22px; pointer-events: auto; border-radius: 28px; background: #fff; box-shadow: 0 20px 50px rgba(20,20,30,.22); }
.end-card-icon { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 12px; color: #1e8a4a; background: #e3f5e9; }
.end-card-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.end-card-copy { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.end-card h2 { margin: 0; font: 700 18px/1.35 var(--font-ui); }
.end-card p { margin: 0; color: #4a4a52; font: 14px/1.7 var(--font-ui); }
.end-card .end-actions { justify-content: flex-end; margin-top: 4px; }
.end-card .end-actions button { min-width: 0; height: 36px; padding: 0 14px; font-size: 13px; font-weight: 600; }
.end-card .end-actions .primary { padding: 0 20px; color: #fff; background: #111; font-weight: 700; }
.wait-layer { background: rgba(17, 17, 20, .74); }
.wait-card { color: #fff; background: #151518; box-shadow: 0 20px 50px rgba(20,20,30,.22); }
.wait-card .eyebrow { color: #f2c66f; }
.wait-card h2 { margin-top: 8px; color: #fff; }
.wait-card p { color: #b8b8bf; }
.wait-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 17px; border: 1px solid #6e5a35; border-radius: 50%; color: #f2c66f; background: #2c261c; font-size: 23px; }
.wait-safe { display: flex; align-items: center; justify-content: center; gap: 8px; padding-top: 15px; border-top: 1px solid #303036; color: #a9a9b1; font-size: 11px; }
.wait-safe i { width: 7px; height: 7px; border-radius: 50%; background: #55c984; }
.wait-home { min-width: 130px; height: 42px; margin: 0 auto 18px; border: 0; border-radius: 999px; color: #111; background: #f4d27a; font-weight: 700; }

.review-layer { align-items: start; overflow: auto; padding-top: 48px; background: #ededf0; backdrop-filter: none; }
.review-card { width: min(1050px, 100%); padding: 0; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-base); }
.review-header { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; padding: 28px 32px 20px; border-bottom: 1px solid var(--line); }
.review-header h2 { margin: 5px 0 3px; }
.review-header p { margin: 0; color: var(--muted); font-size: 12px; }
.review-steps { display: flex; gap: 0; margin: 0 42px 4px 0; padding: 0; list-style: none; }
.review-steps li { position: relative; padding: 5px 10px 5px 24px; color: #92929a; font-size: 10px; white-space: nowrap; }
.review-steps li::before { content: ""; position: absolute; left: 8px; top: 10px; width: 7px; height: 7px; border: 1px solid #a8a8af; border-radius: 50%; background: #fff; }
.review-steps li::after { content: ""; position: absolute; left: -2px; top: 13px; width: 10px; height: 1px; background: #cacad0; }
.review-steps li:first-child::after { display: none; }
.review-steps li.done, .review-steps li.active { color: var(--brand); font-weight: 700; }
.review-steps li.done::before, .review-steps li.active::before { border-color: var(--brand); background: var(--brand); }
.review-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 20px 32px 0; }
.review-summary div { display: flex; flex-direction: column; padding: 14px 16px; border: 1px solid #b7e8c0; border-radius: 10px; background: var(--success); }
.review-summary div:nth-child(2) { border-color: #efd28d; background: var(--warning); }
.review-summary strong { font: 600 23px Poppins, var(--font-ui); }
.review-summary span { color: var(--muted); font-size: 11px; }
.review-summary .danger { border-color: #ecc0c8; background: var(--risk); }
.review-columns { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; padding: 22px 32px; }
.section-label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.review-list { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.review-item { display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--line); background: #fff; }
.review-item:last-child { border-bottom: 0; }
.review-item > span { align-self: start; padding: 3px 7px; border-radius: 12px; color: #6b5a30; background: var(--warning); font-size: 10px; font-weight: 800; text-align: center; }
.review-item.done > span { color: #185d33; background: var(--success); }
.review-item.redline > span { color: #8e3141; background: var(--risk); }
.review-item p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.review-item { display: block; padding: 0; }
.review-item-summary { width: 100%; display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 13px 14px; border: 0; color: inherit; background: #fff; text-align: left; }
.review-item-summary:hover { background: #f8f8fa; }
.review-item-summary > span { align-self: start; padding: 3px 7px; border-radius: 12px; color: #6b5a30; background: var(--warning); font-size: 10px; font-weight: 800; text-align: center; }
.review-item.done .review-item-summary > span { color: #185d33; background: var(--success); }
.review-item.redline .review-item-summary > span { color: #8e3141; background: var(--risk); }
.review-item-summary > b { color: var(--brand); font-size: 11px; }
.review-evidence { display: grid; gap: 8px; padding: 0 14px 14px 102px; background: #fbfbfc; }
.review-evidence section { padding: 10px 12px; border: 1px solid #e1e1e6; border-radius: 8px; background: #fff; }
.review-evidence header { display: flex; justify-content: space-between; gap: 12px; }
.review-evidence header strong { font-size: 11px; }
.review-evidence header time { color: var(--muted); font-size: 10px; }
.review-evidence p { margin: 5px 0; color: #33333a; }
.review-evidence blockquote { margin: 7px 0 0; padding: 8px 10px; border-left: 3px solid #c9c9d0; color: #575760; background: #f4f4f6; font: 12px/1.6 var(--font-content); }
.review-no-evidence { padding: 10px 0; }
.review-version-block { margin: 20px 32px 0; border: 1px solid var(--line); border-radius: 10px; background: #f8f8fa; }
.review-version-block > header { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 12px 14px; }
.review-version-block > header > div:first-child { display: flex; flex-direction: column; gap: 3px; }
#reviewVersionButtons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
#reviewVersionButtons button { padding: 6px 10px; border: 1px solid #cfcfd5; border-radius: 999px; color: #3e3e46; background: #fff; font-size: 10px; }
#reviewVersionButtons button.selected { border-color: var(--brand); color: #fff; background: var(--brand); }
.review-version-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 14px 14px; }
.review-version-compare article { overflow: hidden; border: 1px solid #dedee3; border-radius: 8px; background: #fff; }
.review-version-compare article header { padding: 8px 10px; border-bottom: 1px solid #e4e4e8; font-size: 10px; font-weight: 700; }
.review-version-compare pre { min-height: 120px; margin: 0; padding: 12px; white-space: pre-wrap; word-break: break-word; font: 11px/1.7 var(--font-content); }
.review-version-compare del { color: #8d2f29; background: #fde4e1; text-decoration: none; }
.review-version-compare ins { color: #1f5f3e; background: #def2e6; text-decoration: none; }
.tutorial-block { align-self: start; margin: 0; padding: 16px; border: 1px solid #e3c8e8; border-radius: 11px; background: #fbf2fd; }
.tutorial-block h3 { margin: 3px 0; }
.tutorial-block > p { margin: 0 0 10px; color: var(--muted); font-size: 11px; }
.tutorial-link { display: grid; grid-template-columns: 38px 1fr; gap: 8px; align-items: center; padding: 10px 0; border-top: 1px solid #eadbea; }
.tutorial-link span { color: #77537d; font: 600 11px Poppins, var(--font-ui); }
.tutorial-link small { grid-column: 2; color: var(--muted); font-size: 10px; }
.review-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 32px; border-top: 1px solid var(--line); background: #f8f8f9; }
.review-actions span { color: var(--muted); font-size: 11px; }
.review-actions .primary { background: var(--brand); }

/* Review is a product page, following the confirmed Q43-S11 three-stage structure. */
.review-page { overflow-y: auto; padding: 0 14px 14px; color: #111; background: #111; font-family: var(--font-brand); }
.review-topbar { height: 96px; display: flex; align-items: center; gap: 22px; padding: 0 40px; color: #fff; }
.review-wordmark { padding: 0; border: 0; color: #fff; background: none; font: 700 30px/1 var(--font-brand); }
.review-topbar > div { display: flex; flex-direction: column; padding-left: 20px; border-left: 1px solid #444; }
.review-topbar > div small { color: #85858d; }
.review-topbar nav { display: flex; gap: 18px; margin-left: auto; }
.review-topbar nav button, .review-topbar nav span { padding: 8px 0; border: 0; color: #a8a8af; background: none; font-size: 13px; }
.review-topbar nav button:hover { color: #fff; }
.review-topbar > b, .review-topbar > em { padding: 8px 15px; border-radius: 999px; font-style: normal; }
.review-topbar > b { color: #111; background: #fff; }
.review-topbar > em { color: #777780; }
.review-canvas { min-height: calc(100vh - 110px); display: flex; flex-direction: column; gap: 26px; padding: 30px 40px 34px; border-radius: 40px; background: #f7f7f7; }
.review-titlebar { display: flex; align-items: flex-end; gap: 24px; }
.review-titlebar > div { display: flex; flex-direction: column; gap: 7px; }
.review-titlebar span { color: #6b6b73; font-size: 14px; }
.review-titlebar h1 { margin: 0; font-size: 40px; font-weight: 600; line-height: 1.15; letter-spacing: -.8px; }
.review-stage-nav { display: flex; gap: 4px; margin-left: auto; padding: 5px; border-radius: 999px; background: #ededed; }
.review-stage-nav button { height: 44px; display: flex; align-items: center; gap: 9px; padding: 0 18px 0 6px; border: 0; border-radius: 999px; background: transparent; font-weight: 600; }
.review-stage-nav i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #fff; font-style: normal; }
.review-stage-nav button.active { color: #fff; background: #111; }
.review-stage-nav button.active i { color: #111; background: #fff; }
.review-stage { display: flex; flex-direction: column; gap: 26px; }
.review-panel { padding: 26px 30px; border-radius: 32px; background: #fff; }
.review-panel h2 { margin: 4px 0 5px; font-size: 26px; font-weight: 600; line-height: 1.25; letter-spacing: -.45px; }
.review-panel p { margin: 0; color: #5d5d66; line-height: 1.7; }
.review-kicker { color: #6b6b73; font-size: 13px; font-weight: 600; }
.review-result-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, .8fr); gap: 22px; }
.review-overview { display: flex; align-items: center; gap: 30px; }
.review-overview > div:first-child { flex: 1; }
.review-summary { min-width: 430px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0; }
.review-summary div { min-height: 96px; justify-content: center; padding: 14px; border: 0; border-radius: 22px; background: #cff7d6; }
.review-summary div:nth-child(2) { background: #fbe8b8; }
.review-summary .danger { background: #fad9df; }
.review-summary .neutral { background: #ededf0; }
.review-summary strong { font-size: 30px; }
.review-summary span { color: #4a4a52; font-size: 12px; }
.review-professional { color: #fff; background: #19191d; }
.review-professional .review-kicker, .review-professional p { color: #b6b6bd; }
.review-professional h2 { margin-top: 12px; font-size: 28px; }
.contract-state { display: flex; align-items: center; gap: 9px; margin-top: 24px; color: #aaaab2; font-size: 12px; }
.contract-state i { width: 8px; height: 8px; border-radius: 50%; background: #f2b43a; }
.review-reminders { background: #fbe8b8; }
.review-reminders > header, .review-version-block > header, .review-moments-panel > header, .review-evidence-panel > header, .review-growth-evidence > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.model-chip { padding: 7px 12px; border-radius: 999px; color: #6f5221; background: rgba(255,255,255,.68); font-size: 12px; font-weight: 700; }
.review-variant-notice { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 22px; background: #fbe8b8; }
.review-variant-notice.redline { background: #fad9df; }
.review-variant-notice strong { font-size: 16px; }
.review-variant-notice span { color: #4a4a52; }
.review-version-block { margin: 0; border: 0; border-radius: 32px; background: #ddf6fb; }
#reviewVersionButtons button { font-size: 12px; }
.review-version-compare { padding: 18px 0 0; }
.review-version-compare article { border-radius: 18px; }
.review-version-compare pre { min-height: 240px; font-size: 13px; }
.review-moments-panel { background: #fff; }
.review-moments { position: relative; display: grid; gap: 14px; margin-top: 24px; }
.review-moment { display: grid; grid-template-columns: 64px 16px minmax(0,1fr); gap: 12px; align-items: start; }
.review-moment > time { padding-top: 16px; color: #6b6b73; font-size: 13px; text-align: right; }
.review-moment > i { width: 12px; height: 12px; margin-top: 20px; border: 3px solid #fff; border-radius: 50%; background: #f2b43a; box-shadow: 0 0 0 2px #f2b43a; }
.review-moment.done > i { background: #4e9a5c; box-shadow: 0 0 0 2px #4e9a5c; }
.review-moment.redline > i { background: #d9665b; box-shadow: 0 0 0 2px #d9665b; }
.review-moment > div { padding: 17px 20px; border-radius: 22px; background: #f4f4f6; }
.review-moment > div > span { color: #6b6b73; font-size: 12px; }
.review-moment h3 { margin: 4px 0; font-size: 18px; }
.review-moment button { margin-top: 10px; padding: 7px 11px; border: 0; border-radius: 999px; background: #fff; font-size: 12px; }
.review-moment blockquote { display: flex; flex-direction: column; gap: 5px; margin: 12px 0 0; padding: 12px 15px; border-left: 3px solid #111; background: #fff; }
.review-evidence-panel { background: #fff; }
.review-list { margin-top: 22px; border: 0; border-radius: 24px; }
.review-item-summary { min-height: 70px; grid-template-columns: 110px minmax(0, 1fr) auto; padding: 16px 20px; }
.review-item.not_evaluated .review-item-summary > span { color: #62626a; background: #ededf0; }
.review-evidence { padding: 0 20px 18px 142px; }
.review-evidence section { border-radius: 16px; }
.review-growth-grid { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 22px; }
.review-growth-evidence { background: #fff; }
#reviewGrowthAbilities { margin-top: 22px; }
.growth-row { display: grid; grid-template-columns: 10px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 18px; background: #f5f5f7; }
.growth-row > span { width: 10px; height: 10px; border-radius: 50%; background: #f2b43a; }
.growth-row.done > span { background: #4e9a5c; }
.growth-row.redline > span { background: #d9665b; }
.growth-row.not_evaluated > span { background: #b4b4bc; }
.growth-row div { display: flex; flex-direction: column; }
.growth-row small { color: #6b6b73; }
.growth-row > b { color: #6b6b73; font-size: 12px; }
.review-page .tutorial-block { margin: 0; padding: 26px 28px; border: 0; border-radius: 32px; background: #f3d6fa; }
.review-next-case { display: flex; align-items: center; gap: 30px; padding: 30px 36px; border-radius: 40px; background: #f3d6fa; }
.review-next-case > div { flex: 1; }.review-next-case .review-kicker { display: inline-flex; padding: 6px 14px; border-radius: 999px; color: #111; background: rgba(255,255,255,.75); }.review-next-case h2 { margin: 10px 0 4px; font-size: 30px; }.review-next-case-mark { width: 58px; height: 58px; display: grid; place-items: center; flex: none; border-radius: 50%; color: #111; background: #f4d27a; font-size: 28px; }
.review-footer { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.review-footer > span { margin-right: auto; color: #6b6b73; font-size: 12px; }
.review-footer button { height: 50px; padding: 0 22px; border: 0; border-radius: 999px; background: #ededed; font-weight: 700; }
.review-footer #reviewNext, .review-footer #reviewReturnHome { color: #fff; background: #111; }
.review-footer .review-reset { color: #6b6b73; background: transparent; font-weight: 500; }
.review-empty { padding: 24px; border-radius: 20px; background: #f4f4f6; }

/* Review follows the confirmed Q43 result → nodes → growth structure. */
.review-key-moments > header, .review-follow-up > header { display: flex; align-items: flex-start; gap: 20px; }
.review-key-moments > header > div:first-child, .review-follow-up > header > div:first-child { flex: 1; }
.review-key-moments h2, .review-follow-up h2, .review-reminders h2 { margin: 0 0 4px; }
.review-key-moments header p, .review-follow-up header p, .review-reminders header p { font-size: 14px; }
.review-key-moments .review-summary { min-width: 0; display: flex; justify-content: flex-end; gap: 7px; }
.review-key-moments .review-summary span { padding: 6px 11px; border-radius: 999px; color: #25623a; background: #cff7d6; font-size: 12px; font-weight: 700; }
.review-key-moments .review-summary span:nth-child(2) { color: #75590f; background: #fbe8b8; }
.review-key-moments .review-summary span.danger { color: #8e3141; background: #fad9df; }
.review-moment-strip { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.review-moment-strip button { min-height: 92px; display: grid; grid-template-columns: 56px 12px 1fr; grid-template-rows: auto auto; gap: 3px 10px; align-items: center; padding: 15px 18px; border: 2px solid transparent; border-radius: 24px; color: #111; background: #f2f2f4; text-align: left; }
.review-moment-strip button.selected { border-color: #111; background: #fff; box-shadow: 0 8px 24px rgba(17,17,20,.08); }
.review-moment-strip time { grid-row: 1 / 3; color: #66666f; font-size: 14px; }
.review-moment-strip i { width: 10px; height: 10px; border-radius: 50%; background: #b4b4bc; }
.review-moment-strip i.done { background: #4e9a5c; }.review-moment-strip i.needs_attention { background: #f2b43a; }.review-moment-strip i.redline { background: #d9665b; }
.review-moment-strip strong { font-size: 15px; }.review-moment-strip span { grid-column: 3; color: #6b6b73; font-size: 12px; }
.review-moment-detail { margin-top: 12px; padding: 18px; border-radius: 26px; background: #f8f8f8; }
.review-moment-detail > header, .review-node-detail > header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.review-moment-detail > header strong, .review-node-detail > header strong { margin-right: auto; }.review-moment-detail > header b, .review-node-detail > header b { padding: 5px 10px; border-radius: 999px; background: #fff; font-size: 12px; }
.review-node-fields { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.review-node-fields section { min-height: 112px; display: flex; flex-direction: column; gap: 7px; padding: 14px 16px; border-radius: 20px; background: #ededf0; }
.review-node-fields section.positive { background: #e7fbea; }.review-node-fields section.attention { background: #fbe8b8; }.review-node-fields section.professional-empty { border: 1px dashed #c9c9d0; background: #fff; }
.review-node-fields span { color: #4a4a52; font-size: 12px; font-weight: 700; }.review-node-fields p { color: #111; font-size: 13px; line-height: 1.65; }
.review-source-link { align-self: flex-start; margin-top: auto; padding: 5px 9px; border: 0; border-radius: 999px; color: #111; background: #fff; font-size: 11px; font-weight: 700; }
.review-professional { display: flex; align-items: center; gap: 28px; padding: 28px 36px; color: #111; background: #f3d6fa; }
.review-professional > div:first-child { flex: 1; }.review-professional .review-kicker, .review-professional p { color: #4a4a52; }.review-professional h2 { margin: 6px 0; font-size: 25px; }
.review-professional .contract-state { color: #4a4a52; background: rgba(255,255,255,.55); }
.review-remember-items { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.review-remember-items article { min-height: 95px; display: flex; align-items: flex-start; gap: 13px; padding: 16px; border-radius: 24px; background: #fff4ce; }
.review-remember-items article.empty { border: 1px dashed #d6bd76; background: rgba(255,255,255,.34); }.review-remember-items b { width: 28px; height: 28px; display: grid; place-items: center; flex: none; border-radius: 50%; background: #fff; }
.review-follow-up-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 16px; }
.review-follow-up-list article { position: relative; min-height: 78px; padding: 14px 16px; border-radius: 20px; background: #f2f2f4; }.review-follow-up-list time { color: #6b6b73; font-size: 12px; }.review-follow-up-list p { margin-top: 7px; color: #111; font-size: 13px; }.review-follow-up-list i { position: absolute; top: 17px; right: 14px; width: 8px; height: 8px; border-radius: 50%; background: #4e9a5c; }
.review-node-timeline { padding: 20px 36px 18px; }
.review-node-timeline > header { display: flex; align-items: center; gap: 14px; }
.review-node-timeline > header > div { display: flex; align-items: baseline; gap: 14px; }
.review-node-timeline > header h2 { margin: 0; font-size: 22px; }
.review-node-timeline > header p, .review-node-timeline > header > span { color: #6b6b73; font-size: 14px; }
.review-node-timeline > header > span { margin-left: auto; font-weight: 600; }
.review-node-tabs { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 20px; padding: 14px 0 2px; }
.review-node-tabs::before { content: ""; position: absolute; left: 28px; right: 28px; top: 32px; height: 2px; background: #e4e4e8; }
.review-node-tabs button { position: relative; z-index: 1; min-height: 74px; display: grid; grid-template-columns: 56px 28px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 2px 10px; padding: 10px 16px; border: 0; border-radius: 22px; color: #111; background: transparent; text-align: left; }
.review-node-tabs button::before { content: ""; grid-column: 2; grid-row: 1 / 3; width: 22px; height: 22px; border: 6px solid #fff; border-radius: 50%; background: #f2b43a; box-shadow: 0 0 0 2px #f2b43a; }
.review-node-tabs button.selected { background: #f2f2f5; box-shadow: inset 0 0 0 2px #111; }
.review-node-tabs time { grid-row: 1 / 3; color: #6b6b73; font-size: 13px; }.review-node-tabs strong { grid-column: 3; }.review-node-tabs span { grid-column: 3; font-size: 11px; color: #6b6b73; }
.review-node-shell { min-height: 430px; padding: 26px 30px 28px; }
.review-node-detail { min-height: 378px; display: flex; flex-direction: column; }
.review-node-detail > header strong { font-size: 20px; }
.review-node-detail .review-node-fields { grid-template-columns: minmax(0,1.18fr) minmax(0,1.18fr) minmax(260px,.82fr) minmax(260px,.82fr); gap: 14px; flex: 1; }
.review-node-detail .review-node-fields section { min-height: 250px; padding: 22px; border-radius: 28px; }
.review-node-detail .review-node-fields section p { font-size: 15px; line-height: 1.75; }
.review-node-detail > footer { margin-top: auto; padding-top: 14px; color: #6b6b73; font-size: 12px; }
.review-evidence .review-source-link { margin-top: 9px; color: #fff; background: #111; }
.review-growth-grid { display: grid; grid-template-columns: minmax(0,1fr) 400px; gap: 26px; align-items: start; }
.review-growth-evidence { min-width: 0; padding: 24px 28px 18px; }
.review-growth-evidence > header h2 { margin: 0; font-size: 28px; letter-spacing: -.5px; }
.review-growth-evidence > header h2 em { color: #d98d16; font-style: normal; }
.review-growth-evidence > header p { margin-top: 8px; font-size: 15px; }
.review-growth-side { display: flex; flex-direction: column; gap: 22px; }
.review-reminder-side { padding: 22px 14px 14px; border-radius: 36px; background: #fbe8b8; }
.review-reminder-side header { display: flex; align-items: center; padding: 0 12px; }.review-reminder-side header h2 { margin: 0; font-size: 22px; }.review-reminder-side header span { margin-left: auto; font-size: 15px; font-weight: 600; }.review-reminder-side > p { padding: 0 12px; font-size: 14px; line-height: 1.6; }
.review-ability-columns { display: grid; grid-template-columns: repeat(6,minmax(88px,1fr)); gap: 6px; margin-top: 14px; overflow-x: auto; padding-bottom: 2px; }
.review-ability-columns button { min-width: 88px; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 5px 12px; border: 2px solid transparent; border-radius: 24px; color: #111; background: #f3f6f4; text-align: center; }
.review-ability-columns button:nth-child(2n) { background: #f3f1f8; }.review-ability-columns button:nth-child(3n) { background: #fdf3d8; }
.review-ability-columns button.selected { border-color: #111; box-shadow: 0 9px 24px rgba(17,17,20,.1); }
.ability-evidence-count { min-height: 24px; display: flex; align-items: center; padding: 3px 11px; border-radius: 999px; color: #111; background: linear-gradient(135deg,#ffe680,#ffb31f); font-size: 12px; font-weight: 700; }
.ability-column { display: flex; flex-direction: column-reverse; gap: 4px; font-style: normal; }
.ability-column span { width: 72px; height: 20px; border-radius: 9px; background: rgba(17,17,20,.1); }
.review-ability-columns button.has-reminder { box-shadow: inset 0 0 0 2px #f2c85b; }.review-ability-columns button.has-reminder.selected { box-shadow: inset 0 0 0 2px #f2c85b, 0 9px 24px rgba(17,17,20,.1); }
.review-ability-columns strong { max-width: 100%; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }.review-ability-columns small { color: #5f5f67; font-size: 11px; white-space: nowrap; }
.review-ability-detail { max-height: 124px; overflow: auto; margin-top: 10px; padding: 13px 18px; border-radius: 24px; background: #f7f7f7; }.review-ability-detail header { display: flex; gap: 14px; }.review-ability-detail header span { margin-left: auto; color: #6b6b73; }.review-ability-detail p { margin: 5px 0; font-size: 12px; }.review-ability-detail blockquote { display: inline-flex; margin: 4px 6px 0 0; padding: 6px 11px; border: 0; border-radius: 999px; background: #fff; font-size: 11px; }
#reviewGrowthReminders { display: grid; margin-top: 12px; padding: 6px 16px; border-radius: 24px; background: #fdf3d8; }#reviewGrowthReminders article { display: flex; gap: 10px; padding: 12px 4px; border-top: 1px solid rgba(0,0,0,.06); }#reviewGrowthReminders article:first-child { border-top: 0; }#reviewGrowthReminders article > i { width: 9px; height: 9px; flex: none; margin-top: 6px; border-radius: 50%; background: #f2b43a; }#reviewGrowthReminders article.redline > i { background: #d9665b; }#reviewGrowthReminders p { margin-top: 3px; color: #4a4a52; font-size: 12px; }
.review-page .tutorial-link { width: 100%; display: grid; grid-template-columns: 42px 1fr; gap: 5px 8px; padding: 12px 0; border: 0; border-top: 1px solid #dfc6e3; color: #111; background: transparent; text-align: left; }.review-page .tutorial-link small { color: #77537d; }
@media (max-width: 1300px) {
  .review-page { padding-inline: 10px; }
  .review-topbar { padding-inline: 30px; }
  .review-canvas { gap: 22px; padding: 26px 30px 30px; }
  .review-titlebar h1 { font-size: 36px; }
  .review-growth-grid { grid-template-columns: minmax(0,1fr) 340px; gap: 18px; }
  .review-growth-evidence { padding-inline: 24px; }
  .review-ability-columns { grid-template-columns: repeat(6,minmax(78px,1fr)); }
  .ability-column span { width: 66px; }
  .review-node-detail .review-node-fields { grid-template-columns: 1fr 1fr; }
  .review-node-detail .review-node-fields section { min-height: 160px; }
  .review-follow-up-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.review-compare-view { min-height: 100vh; padding: 28px 36px; color: #111; background: #f7f7f7; }.review-compare-view > header { display: flex; align-items: center; gap: 22px; margin-bottom: 22px; }.review-compare-view > header button { height: 42px; padding: 0 16px; border: 0; border-radius: 999px; background: #e6e6e8; }.review-compare-view > header h1 { margin: 2px 0 0; font-size: 28px; }.review-compare-view > header > div { flex: 1; }.compare-legend { display: flex; gap: 13px; }.compare-legend span { display: flex; align-items: center; gap: 6px; }.compare-legend i { width: 16px; height: 10px; background: #fde4e1; }.compare-legend span:last-child i { background: #def2e6; }
.review-compare-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) 300px; gap: 14px; }.review-compare-grid > article, .review-compare-grid > aside { overflow: hidden; border-radius: 28px; background: #fff; }.review-compare-grid > article > header { padding: 16px 20px; border-bottom: 1px solid #e2e2e6; font-weight: 700; }.review-compare-grid pre { min-height: 600px; margin: 0; padding: 22px; white-space: pre-wrap; font: 13px/1.8 var(--font-content); }.review-compare-grid del { color: #8d2f29; background: #fde4e1; text-decoration: none; }.review-compare-grid ins { color: #1f5f3e; background: #def2e6; text-decoration: none; }.review-compare-grid > aside { align-self: start; padding: 22px; background: #ededf0; }.review-compare-grid aside h2 { margin: 0 0 12px; }.review-compare-grid aside article { margin-top: 8px; padding: 14px; border-radius: 18px; background: #fff; }.review-compare-grid aside article.changed { background: #cff7d6; }.review-compare-grid aside p { margin: 4px 0 0; color: #4a4a52; font-size: 12px; }
.tutorial-dialog { width: min(720px, calc(100vw - 80px)); max-height: calc(100vh - 100px); padding: 34px; border: 0; border-radius: 30px; box-shadow: 0 30px 80px rgba(0,0,0,.28); }.tutorial-dialog::backdrop { background: rgba(17,17,20,.55); }.tutorial-dialog > button { position: absolute; top: 18px; right: 20px; width: 34px; height: 34px; border: 0; border-radius: 50%; }.tutorial-dialog > span { color: #77537d; }.tutorial-dialog h2 { margin: 7px 0; font-size: 28px; }.tutorial-dialog > p { color: #4a4a52; }.tutorial-dialog section, .tutorial-dialog blockquote { margin: 14px 0; padding: 14px 16px; border-radius: 16px; background: #f4f4f6; }.tutorial-dialog h3 { margin: 0 0 6px; }
.tutorial-dialog section section { padding: 0; background: transparent; }.tutorial-dialog ul, .tutorial-dialog ol { margin: 8px 0 0; padding-left: 22px; }.tutorial-dialog li { margin: 7px 0; line-height: 1.55; }.tutorial-dialog blockquote strong { display: block; margin-bottom: 7px; }.tutorial-dialog blockquote p { margin: 7px 0; line-height: 1.65; }.tutorial-subhead { margin: 18px 0 4px !important; }.tutorial-table { overflow: auto; }.tutorial-table table { width: 100%; border-collapse: collapse; font-size: 13px; }.tutorial-table th, .tutorial-table td { padding: 9px 10px; border: 1px solid #d9d9df; text-align: left; vertical-align: top; line-height: 1.5; }.tutorial-table th { background: #e9e9ee; }
.review-source-return { position: fixed; z-index: 100; left: 22px; top: 58px; height: 42px; padding: 0 17px; border: 0; border-radius: 999px; color: #fff; background: #111; box-shadow: 0 8px 25px rgba(0,0,0,.25); font-weight: 700; }.review-source-highlight { border-radius: 12px; outline: 4px solid #f2b43a; outline-offset: 6px; }
.toast { position: fixed; z-index: 30; left: 50%; bottom: 92px; transform: translateX(-50%); padding: 10px 15px; border-radius: 9px; color: #fff; background: #111114; box-shadow: 0 8px 28px rgba(0,0,0,.2); }

/* Public product shell. Training facts remain owned by the existing session runtime. */
.home-profile-button { position: absolute; right: 44px; top: 24px; height: 48px; display: flex; align-items: center; gap: 9px; padding: 5px 13px 5px 6px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #fff; background: rgba(255,255,255,.08); }
.home-profile-button:hover, .home-profile-button[aria-expanded="true"] { background: rgba(255,255,255,.15); }
.home-profile-button > span, .home-user-menu header > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #111; background: #f3d6fa; font-weight: 800; }
.home-profile-button b { max-width: 140px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.home-profile-button i { color: rgba(255,255,255,.55); font-style: normal; }
.home-user-menu { position: absolute; z-index: 20; right: 44px; top: 78px; width: 248px; padding: 10px; border: 1px solid #e5e5e9; border-radius: 22px; color: #111; background: #fff; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.home-user-menu header { display: flex; align-items: center; gap: 11px; padding: 8px 8px 14px; }.home-user-menu header > div { min-width: 0; display: flex; flex-direction: column; }.home-user-menu header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.home-user-menu header small { color: #73737c; }
.home-user-menu button { width: 100%; padding: 10px 12px; border: 0; border-radius: 12px; color: #222228; background: transparent; text-align: left; }.home-user-menu button:hover, .home-user-menu button:focus-visible { background: #f2f2f4; }.home-user-menu > i { display: block; height: 1px; margin: 6px 4px; background: #ececef; }.home-user-menu .danger { color: #9b3845; }
.common-page { display: flex; flex-direction: column; padding: 0 14px 14px; color: #111; background: #111; font-family: var(--font-brand); }
.common-topbar { height: 72px; flex: none; display: flex; align-items: center; gap: 18px; padding: 0 30px; color: #fff; }
.common-wordmark { padding: 0; border: 0; color: #fff; background: transparent; font: 700 26px/1 var(--font-brand); }.common-location { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.55); }.common-location i { width: 1px; height: 16px; background: rgba(255,255,255,.24); }.common-location strong { color: #fff; font-size: 13px; }
.common-top-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }.common-top-actions button { height: 36px; padding: 0 15px; border: 0; border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); }.common-top-actions button:last-child { width: 36px; padding: 0; font-size: 20px; }
.common-canvas { min-height: 0; flex: 1; display: grid; grid-template-columns: 300px minmax(0,1fr); overflow: hidden; border-radius: 34px; background: #f7f7f7; }
.common-sidebar { min-height: 0; display: flex; flex-direction: column; padding: 28px 20px 20px; border-right: 1px solid #e5e5e8; background: #fff; }
.common-person { display: flex; align-items: center; gap: 13px; padding: 0 8px 24px; }.common-person > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 18px; background: #f3d6fa; font-size: 18px; font-weight: 800; }.common-person > div { min-width: 0; display: flex; flex-direction: column; }.common-person strong { overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }.common-person small { color: #73737c; font-size: 12px; }
.common-sidebar nav { display: grid; gap: 5px; }.common-sidebar nav button { width: 100%; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 10px; padding: 10px; border: 0; border-radius: 17px; background: transparent; text-align: left; }.common-sidebar nav button:hover { background: #f4f4f6; }.common-sidebar nav button.active { color: #fff; background: #111; }.common-menu-icon { width: 38px; height: 38px; padding: 8px; border-radius: 13px; color: #111; background: #ededf0; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; }.common-sidebar nav button.active .common-menu-icon { background: #f4d27a; }.common-sidebar nav button div { display: flex; flex-direction: column; }.common-sidebar nav button small { color: #81818a; font-size: 11px; }.common-sidebar nav button.active small { color: rgba(255,255,255,.55); }
.common-signout { width: max-content; display: flex; align-items: center; gap: 8px; margin: auto 0 0 7px; padding: 8px 9px; border: 0; border-radius: 10px; color: #8c5059; background: transparent; font-weight: 700; text-align: left; }.common-signout:hover, .common-signout:focus-visible { color: #8b3542; background: #fff0f2; }.common-signout svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.common-content { min-width: 0; overflow: auto; padding: 38px 48px 50px; }.common-panel { width: min(850px,100%); margin: 0 auto; }.common-panel-heading { margin-bottom: 22px; }.common-panel-heading > span, .common-signed-out > span { color: #77537d; font-size: 11px; font-weight: 800; letter-spacing: 1.6px; }.common-panel-heading h1 { margin: 6px 0 5px; font-size: 36px; font-weight: 600; letter-spacing: -.8px; }.common-panel-heading p { margin: 0; color: #6b6b73; font: 14px/1.7 var(--font-ui); }
.common-card { border: 1px solid #e4e4e8; border-radius: 28px; background: #fff; box-shadow: 0 10px 28px rgba(20,20,30,.04); }
.common-form { display: grid; gap: 20px; padding: 27px; }.profile-avatar-editor { display: flex; align-items: center; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid #ececef; }.profile-avatar-editor > span { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 20px; background: #f3d6fa; font-size: 21px; font-weight: 800; }.profile-avatar-editor > div { display: flex; flex-direction: column; }.profile-avatar-editor small, .common-form label > small { color: #7b7b84; }
.common-form label { display: grid; gap: 7px; font-family: var(--font-ui); }.common-form label > span { font-size: 13px; font-weight: 700; }.common-form input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid #d5d5dc; border-radius: 14px; background: #fff; outline: none; }.common-form input:focus { border-color: #111; box-shadow: 0 0 0 3px rgba(17,17,20,.08); }.common-form input[aria-invalid="true"] { border-color: #a23c48; }.common-form input[readonly] { color: #696972; background: #f5f5f6; }.field-error { min-height: 18px; color: #a23c48; font-size: 12px; font-style: normal; }.common-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.common-form footer { display: flex; align-items: center; padding-top: 3px; }.common-form footer > span { color: #777780; font-size: 12px; }.common-form footer button { margin-left: auto; }
.common-primary { min-height: 42px; padding: 0 19px; border: 0; border-radius: 999px; color: #fff; background: #111; font-weight: 700; }.common-primary:disabled { opacity: .42; }
.preference-list { padding: 8px 28px 22px; }.preference-list > label { min-height: 78px; display: flex; align-items: center; gap: 20px; border-bottom: 1px solid #ececef; }.preference-list > label > div { display: flex; flex-direction: column; gap: 4px; }.preference-list > label small { color: #777780; }.preference-switch { position: relative; width: 48px; height: 28px; flex: none; margin-left: auto; }.preference-switch input { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }.preference-switch > span { position: absolute; inset: 0; border-radius: 999px; background: #dcdce1; box-shadow: inset 0 0 0 1px rgba(17,17,20,.05); transition: background .18s ease; }.preference-switch > span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(17,17,20,.22); transition: transform .18s ease; }.preference-switch input:checked + span { background: #f4d27a; }.preference-switch input:checked + span::after { transform: translateX(20px); }.preference-switch input:focus-visible + span { outline: 3px solid rgba(17,17,20,.20); outline-offset: 3px; }.preference-switch input:disabled + span { opacity: .5; }.preference-list footer { display: flex; align-items: center; padding-top: 18px; }.preference-list footer button { padding: 0; border: 0; color: #6b6b73; background: transparent; }.preference-list footer span { margin-left: auto; color: #7b7b84; font-size: 12px; }
.account-status { display: grid; grid-template-columns: 13px 1fr auto; align-items: start; gap: 14px; padding: 24px 26px; }.status-dot { width: 11px; height: 11px; margin-top: 5px; border-radius: 50%; background: #111; box-shadow: 0 0 0 5px #f4d27a; }.account-status p, .danger-zone p { margin: 5px 0 0; color: #686871; font-family: var(--font-ui); }.account-status > span { padding: 5px 11px; border-radius: 999px; color: #111; background: #f4d27a; font-size: 12px; font-weight: 700; }
.common-empty-state { display: flex; flex-direction: column; align-items: center; margin-top: 16px; padding: 28px; border-style: dashed; text-align: center; }.common-empty-state > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 17px; background: #ededf0; font-size: 24px; }.common-empty-state h2 { margin: 12px 0 4px; font-size: 18px; }.common-empty-state p { max-width: 480px; margin: 0 0 16px; color: #73737c; }.common-empty-state button { height: 38px; padding: 0 16px; border: 0; border-radius: 999px; }
.danger-zone { display: flex; align-items: center; gap: 20px; margin-top: 16px; padding: 20px 26px; border-color: #f0cbd1; background: #fff8f9; }.danger-zone div { flex: 1; }.danger-zone button { height: 40px; padding: 0 17px; border: 0; border-radius: 999px; color: #fff; background: #a23c48; font-weight: 700; }
.help-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }.help-steps article { min-height: 176px; padding: 21px; border-radius: 26px; background: #fff; }.help-steps article:nth-child(1) { background: #f3d6fa; }.help-steps article:nth-child(2) { background: #ddf6fb; }.help-steps article:nth-child(3) { background: #fff0c7; }.help-steps span { font-size: 12px; font-weight: 800; }.help-steps h2 { margin: 24px 0 8px; font-size: 19px; }.help-steps p { margin: 0; color: #474750; font-family: var(--font-ui); line-height: 1.65; }.help-faq { margin-top: 16px; padding: 5px 26px; }.help-faq details { padding: 15px 0; border-bottom: 1px solid #ececef; }.help-faq details:last-child { border: 0; }.help-faq summary { cursor: pointer; font-weight: 700; }.help-faq p { margin: 8px 0 0; color: #686871; }
.beta-feedback, .beta-data-notice { margin-top: 16px; padding: 22px 26px; }.beta-feedback { display: grid; gap: 15px; }.beta-feedback p { margin: 5px 0 0; color: #686871; }.beta-feedback label { display: grid; gap: 7px; }.beta-feedback label > span { font-size: 13px; font-weight: 700; }.beta-feedback textarea { width: 100%; min-height: 116px; resize: vertical; padding: 13px 14px; border: 1px solid #d5d5dc; border-radius: 14px; font: inherit; line-height: 1.55; outline: none; }.beta-feedback textarea:focus { border-color: #111; box-shadow: 0 0 0 3px rgba(17,17,20,.08); }.beta-feedback footer { display: flex; align-items: center; min-height: 42px; }.beta-feedback footer span { color: #686871; font-size: 12px; }.beta-feedback footer button { margin-left: auto; }.beta-data-notice ul { margin: 12px 0 0; padding-left: 20px; color: #5f5f68; line-height: 1.65; }.account-status code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #2f2f35; }
.about-hero { display: flex; align-items: center; gap: 24px; padding: 28px; color: #fff; background: #111; }.about-hero > span, .signed-out-mark { width: 82px; height: 82px; display: grid; place-items: center; flex: none; border-radius: 26px; color: #111; background: #f3d6fa; font-size: 36px; font-weight: 800; }.about-hero h2 { margin: 0; font-size: 28px; }.about-hero p { margin: 5px 0; color: rgba(255,255,255,.68); }.about-hero small { color: #f4d27a; }.about-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }.about-grid article { min-height: 130px; padding: 20px; border-radius: 24px; background: #fff; }.about-grid p { color: #696972; line-height: 1.65; }.beta-support { display: flex; align-items: center; gap: 20px; margin-top: 16px; padding: 19px 24px; }.beta-support > div { flex: 1; }.beta-support p { margin: 4px 0 0; color: #696972; font-size: 12px; }.beta-support button { height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: #ededf0; font-weight: 700; }
.common-signed-out { min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.common-signed-out .signed-out-mark { margin-bottom: 22px; }.common-signed-out h1 { margin: 8px 0; font-size: 36px; }.common-signed-out p { max-width: 540px; margin: 0 0 24px; color: #6b6b73; line-height: 1.75; }.common-page.signed-out .common-canvas { grid-template-columns: 1fr; }.common-page.signed-out .common-sidebar, .common-page.signed-out .common-location, .common-page.signed-out .common-top-actions { display: none; }
.brand-button { padding: 0; border: 0; color: inherit; background: transparent; text-align: left; }.brand-button:hover strong { color: #f4d27a; }
.workbench-profile-button { width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #111; background: #f3d6fa; font-weight: 800; }.workbench-profile-button:hover { box-shadow: 0 0 0 3px rgba(243,214,250,.18); }
.common-confirm-dialog { width: min(470px,calc(100vw - 48px)); padding: 0; border: 0; border-radius: 28px; box-shadow: 0 30px 80px rgba(0,0,0,.30); }.common-confirm-dialog::backdrop { background: rgba(17,17,20,.58); backdrop-filter: blur(5px); }.common-confirm-dialog form { padding: 30px; }.common-confirm-dialog form > span { color: #a23c48; font-size: 11px; font-weight: 800; letter-spacing: 1.2px; }.common-confirm-dialog h2 { margin: 7px 0; font-size: 25px; }.common-confirm-dialog p { margin: 0; color: #65656d; line-height: 1.7; }.common-confirm-dialog form > div { display: flex; justify-content: flex-end; gap: 9px; margin-top: 24px; }.common-confirm-dialog form > div button { min-height: 42px; padding: 0 18px; border: 0; border-radius: 999px; }.common-confirm-dialog form > div button:first-child { background: #ededf0; }.common-confirm-dialog .common-primary.danger { background: #a23c48; }

@media (max-height: 840px) {
  .common-topbar { height: 62px; padding: 0 24px; }
  .common-canvas { grid-template-columns: 270px minmax(0,1fr); border-radius: 28px; }
  .common-sidebar { padding: 20px 16px 16px; }
  .common-person { padding-bottom: 16px; }
  .common-sidebar nav button { padding: 7px 9px; }
  .common-content { padding: 26px 34px 38px; }
  .common-panel-heading { margin-bottom: 16px; }.common-panel-heading h1 { font-size: 31px; }
  .help-steps article { min-height: 150px; padding: 18px; }.help-steps h2 { margin-top: 16px; }
  .common-form { gap: 14px; padding: 22px; }.profile-avatar-editor { padding-bottom: 14px; }.preference-list > label { min-height: 70px; }
  .common-empty-state { padding: 20px; }.danger-zone { padding: 16px 22px; }
}

#conversationSelect { display: none; }

.email-composer-dialog { width: min(680px,calc(100vw - 64px)); padding: 0; border: 0; border-radius: 28px; box-shadow: 0 30px 90px rgba(0,0,0,.32); }
.email-composer-dialog::backdrop { background: rgba(17,17,20,.58); backdrop-filter: blur(4px); }
.email-composer-dialog form { display: grid; gap: 16px; padding: 26px; }
.email-composer-dialog header { display: flex; align-items: flex-start; }.email-composer-dialog header div { flex: 1; }.email-composer-dialog h2 { margin: 4px 0 0; }.email-composer-dialog header button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #ededf0; }
.email-composer-dialog form > label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }.email-composer-dialog input[type="text"], .email-composer-dialog form > label input, .email-composer-dialog textarea { width: 100%; padding: 11px 13px; border: 1px solid #d7d7dd; border-radius: 14px; font: inherit; }.email-composer-dialog textarea { min-height: 150px; resize: vertical; }
.email-composer-dialog fieldset { margin: 0; padding: 12px 14px; border: 1px solid #e1e1e5; border-radius: 16px; }.email-composer-dialog legend { padding: 0 6px; font-size: 12px; font-weight: 800; }.email-composer-dialog fieldset > div { display: grid; gap: 8px; }.email-composer-dialog fieldset label { display: flex; align-items: center; gap: 9px; font-size: 13px; }.email-composer-dialog fieldset small { color: #707078; }
.email-external-warning { margin: 0; padding: 10px 13px; border-radius: 13px; color: #78333b; background: #fff0f2; font-size: 12px; }.email-composer-dialog footer { display: flex; justify-content: flex-end; gap: 8px; }.email-composer-dialog footer button { min-height: 40px; padding: 0 17px; border: 0; border-radius: 999px; }.email-composer-dialog footer button:first-child { background: #ededf0; }.email-composer-dialog footer .primary { color: #fff; background: #111; }

/* v14 desktop/window/application system. Window geometry is owned by the
   resumable workspace contract; application content keeps its existing data. */
.workbench-page .desktop { overflow: hidden; background: #111; }
.workbench-page .desktop-surface { background: radial-gradient(circle at 48% 55%,rgba(243,214,250,.28),transparent 34%),radial-gradient(circle at 80% 32%,rgba(203,231,246,.28),transparent 29%),#f1f2f4; }
.empty-desktop { z-index: 1; display: block; pointer-events: none; }
.empty-desktop .empty-time,.empty-desktop .empty-team,.empty-desktop .empty-notifications,.empty-desktop .empty-todo,.empty-desktop .empty-rings { display: none; }
.empty-desktop .empty-brand { top: 50%; left: 50%; transform: translate(-50%,-50%); opacity: .72; }
.desktop-apps { position: absolute; z-index: 3; top: 18px; left: 18px; display: grid; grid-template-columns: repeat(2,76px); gap: 18px 12px; }
.desktop-apps button { position: relative; width: 76px; min-height: 76px; display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 0; border: 0; color: #25252a; background: transparent; font: 500 12px/1.2 var(--font-ui); }
.desktop-apps button:hover,.desktop-apps button:focus-visible { border-radius: 8px; background: rgba(255,255,255,.66); outline: none; }
.desktop-apps button.tool-disabled { display: none; }
.desktop-app-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; color: #fff; box-shadow: 0 6px 15px rgba(20,20,30,.24); font-weight: 800; }
.desktop-app-icon.wechat-icon { background: #26c35a; }.desktop-app-icon.mail-icon { background: #22242a; }.desktop-app-icon.word-icon { background: #2b579a; }.desktop-app-icon.excel-icon { background: #217346; }.desktop-app-icon.browser-icon { background: #4979db; }.desktop-app-icon.ai-icon { background: #4b5262; font-size: 9px; }.desktop-app-icon.files-icon { color: #fff; background: #3c7dcc; }
.desktop-apps button > b { position: absolute; top: -5px; right: 7px; min-width: 17px; height: 17px; padding: 0 4px; border: 2px solid #f5f5f4; border-radius: 10px; color: #fff; background: #e04444; font: 700 9px/13px var(--font-ui); }.desktop-apps button > b:empty { display:none; }

.workspace-grid { position: absolute; z-index: 4; inset: 0 0 64px; display: block; pointer-events: none; }
.window-shell { position: absolute; display: flex; flex-direction: column; min-height: 360px; overflow: hidden; border: 1px solid #cfd0d4; border-radius: 8px; background: #fff; box-shadow: 0 20px 46px rgba(24,24,31,.22); pointer-events: auto; container-type: inline-size; }
.window-shell.hidden { display: none !important; }.window-shell.focused { border-color: #aaaab1; box-shadow: 0 26px 60px rgba(24,24,31,.30); }.window-shell.maximized { inset: 0 !important; width: auto !important; height: auto !important; border-radius: 0; }
.window-shell > .window-bar { height: 34px; min-height: 34px; display: flex; align-items: center; padding: 0 0 0 10px; color: #1c1c20 !important; background: #f4f4f5 !important; border-bottom: 1px solid #dedee2; cursor: default; user-select: none; }
.window-shell.focused > .window-bar { background: #fafafa !important; }.window-shell > .window-bar > strong { min-width: 0; display: flex; align-items: center; gap: 7px; overflow: hidden; font-size: 12px; white-space: nowrap; }.window-shell > .window-bar > strong::before { display:none !important; }.window-shell [data-window-title] { overflow: hidden; text-overflow: ellipsis; }
.window-app-mark { width: 18px; height: 18px; display:grid; place-items:center; flex:none; border-radius:4px; color:#fff; background:#555b66; font:800 9px/1 var(--font-ui); font-style:normal; }.window-shell[data-window-app="wechat"] .window-app-mark{background:#26c35a}.window-shell[data-window-app="email"] .window-app-mark{background:#2c6ed5}.window-shell[data-window-app="word"] .window-app-mark{background:#2b579a}.window-shell[data-window-app="excel"] .window-app-mark{background:#217346}
.window-shell .window-actions { height: 34px; margin-left: auto; display:flex; }.window-shell .window-actions button { width: 46px; height:34px; display:grid; place-items:center; padding:0; border:0; border-radius:0; color:#25252a !important; background:transparent !important; }.window-shell .window-actions button:hover{background:#e6e6e8 !important}.window-shell .window-actions .window-close:hover{color:#fff !important;background:#c42b1c !important}.window-shell .window-actions svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.2}
.window-shell > .app-content { min-width:0; min-height:0; flex:1; height:auto !important; }
.window-resize { position:absolute; z-index:20; display:block; }.window-resize-n,.window-resize-s{left:8px;right:8px;height:6px}.window-resize-n{top:-2px;cursor:n-resize}.window-resize-s{bottom:-2px;cursor:s-resize}.window-resize-e,.window-resize-w{top:8px;bottom:8px;width:6px}.window-resize-e{right:-2px;cursor:e-resize}.window-resize-w{left:-2px;cursor:w-resize}.window-resize-ne,.window-resize-nw,.window-resize-se,.window-resize-sw{width:10px;height:10px}.window-resize-ne{top:-2px;right:-2px;cursor:ne-resize}.window-resize-nw{top:-2px;left:-2px;cursor:nw-resize}.window-resize-se{right:-2px;bottom:-2px;cursor:se-resize}.window-resize-sw{left:-2px;bottom:-2px;cursor:sw-resize}

.dock { z-index: 8; left: 0; right: 0; bottom: 0; width: auto; height: 64px; transform: none; justify-content: center; gap: 9px; padding: 0 18px; background: #111; }.dock > i { display:none; }.dock-app { width: 54px; height: 54px; justify-content:center; padding:0; border-radius:11px; }.dock-app.hidden { display:none !important; }.dock-app small{display:none}.dock-app .app-icon{width:40px;height:40px;opacity:.86}.dock-app:hover{background:rgba(255,255,255,.10)}.dock-app.active{background:rgba(255,255,255,.18)}.dock-app.active .app-icon{opacity:1;transform:translateY(-1px)}.dock-app.open::after{bottom:-3px}.dock-app b{left:33px;top:-1px}.dock-app.utility{display:none!important}

.window-shell[data-window-app="wechat"] .wechat-layout { grid-template-columns:210px minmax(0,1fr); }
.window-shell[data-window-app="wechat"] .chat-panel { display:grid; grid-template-columns:minmax(0,1fr) 176px; grid-template-rows:58px minmax(0,1fr) 176px; }
.window-shell[data-window-app="wechat"] .chat-heading,.window-shell[data-window-app="wechat"] .messages,.window-shell[data-window-app="wechat"] .composer{grid-column:1}.window-shell[data-window-app="wechat"] .chat-info-panel{position:relative;inset:auto;grid-column:2;grid-row:1/4;display:block !important;width:auto;border-left:1px solid #e3e3e6;box-shadow:none}.window-shell[data-window-app="wechat"] .chat-info{display:none}.window-shell[data-window-app="wechat"] .composer{min-width:0}.window-shell[data-window-app="wechat"] .composer textarea{min-width:0}
@container (max-width: 760px){.window-shell[data-window-app="wechat"] .wechat-layout{grid-template-columns:180px minmax(0,1fr)}.window-shell[data-window-app="wechat"] .chat-panel{grid-template-columns:minmax(0,1fr) 160px}.window-shell[data-window-app="wechat"] .conversation{padding-inline:9px}.window-shell[data-window-app="wechat"] .conversation-copy small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}

.window-shell[data-window-app="email"] .mail-app{grid-template-columns:170px 270px minmax(0,1fr)}
@container (max-width: 900px){.window-shell[data-window-app="email"] .mail-app{grid-template-columns:150px 220px minmax(0,1fr)}.window-shell[data-window-app="email"] .mail-sender small{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-shell[data-window-app="email"] .attachment-card strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.window-shell[data-window-app="email"] .attachment-card small{white-space:nowrap}}

.window-shell[data-window-app="files"] .file-locations{display:none}.window-shell[data-window-app="files"] .files-app{grid-template-columns:minmax(0,1fr)}.window-shell[data-window-app="files"] .file-browser>header p{display:none}.window-shell[data-window-app="files"] .file-columns,.window-shell[data-window-app="files"] .file-row{grid-template-columns:minmax(190px,1fr) 128px 106px 58px 128px}.window-shell[data-window-app="files"] .file-rename{justify-self:end}
.window-shell[data-window-app="pdf"] .file-preview{position:relative;inset:auto;display:flex;min-width:0;min-height:0;flex:1;flex-direction:column;padding:16px 20px 20px;background:#ececef}.window-shell[data-window-app="pdf"] .file-preview h2{flex:none;margin:0 42px 12px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 13px/1.4 var(--font-ui)}.window-shell[data-window-app="pdf"] .file-preview-close{display:none}.window-shell[data-window-app="pdf"] .file-preview-visual{height:auto;min-height:0;flex:1;margin:0;border:0;border-radius:4px;background:#bfc1c6}.window-shell[data-window-app="pdf"] .file-preview-pages{padding:20px}.window-shell[data-window-app="pdf"] .file-preview pre{min-height:0;flex:1;margin:0;overflow:auto;border:0;background:#fff}
.window-shell[data-window-app="word"] .document-toolbar>i,.window-shell[data-window-app="word"] .document-disclosure{display:none}.window-shell[data-window-app="word"] .word-app{grid-template-rows:auto auto minmax(0,1fr)}
.window-shell[data-window-app="ai"] .assistant-app{grid-template-columns:190px minmax(0,1fr)}.window-shell[data-window-app="ai"] .assistant-rail{width:auto;align-items:stretch;padding:16px 12px;background:#f4f4f5}.window-shell[data-window-app="ai"] .assistant-rail::before{content:"DeepSeek";font-weight:800}.window-shell[data-window-app="ai"] .assistant-rail button{width:100%;border-radius:9px}.window-shell[data-window-app="ai"] .assistant-composer .redaction-check{display:none}
.window-shell[data-window-app="excel"] .workbook-cell{padding:0}.window-shell[data-window-app="excel"] .workbook-cell input{width:100%;height:30px;padding:4px 7px;border:0;background:#fff;font:12px/1.3 var(--font-ui)}.window-shell[data-window-app="excel"] .workbook-cell input:focus{outline:2px solid #217346;outline-offset:-2px}.window-shell[data-window-app="excel"] #ledgerSummary:empty{display:none}.window-shell[data-window-app="excel"] .ledger-signal:has(#spreadsheetBoundaryText:empty){display:none}

@media (max-width: 1300px){.desktop-apps{grid-template-columns:68px;gap:12px}.desktop-apps button{width:68px;min-height:68px}.desktop-app-icon{width:44px;height:44px}.window-shell{max-width:calc(100% - 8px)}}
.file-chooser-dialog{width:min(480px,calc(100vw - 48px));padding:0;border:0;border-radius:16px;box-shadow:0 26px 70px rgba(0,0,0,.28)}.file-chooser-dialog::backdrop{background:rgba(17,17,20,.48)}.file-chooser-dialog form{padding:20px}.file-chooser-dialog header,.file-chooser-dialog footer{display:flex;align-items:center}.file-chooser-dialog header h2{margin:0;font-size:19px}.file-chooser-dialog header button{margin-left:auto;width:30px;height:30px;border:0;border-radius:6px}.file-chooser-dialog #fileChooserOptions{display:grid;gap:7px;margin:18px 0}.file-chooser-dialog label{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #dedee3;border-radius:10px}.file-chooser-dialog label span{display:flex;flex-direction:column}.file-chooser-dialog label small{color:#73737c}.file-chooser-dialog footer{justify-content:flex-end;gap:8px}.file-chooser-dialog footer button{min-height:38px;padding:0 15px;border:0;border-radius:8px}.file-chooser-dialog footer .primary{color:#fff;background:#111}
.file-name-dialog{width:min(430px,calc(100vw - 48px));padding:0;border:0;border-radius:16px;box-shadow:0 26px 70px rgba(0,0,0,.28)}.file-name-dialog::backdrop{background:rgba(17,17,20,.48)}.file-name-dialog form{display:grid;gap:10px;padding:20px}.file-name-dialog header,.file-name-dialog footer{display:flex;align-items:center}.file-name-dialog header h2{margin:0;font-size:19px}.file-name-dialog header button{margin-left:auto;width:30px;height:30px;border:0;border-radius:6px;background:#ededf0}.file-name-dialog label{font-size:12px;font-weight:700}.file-name-dialog input{height:40px;padding:0 11px;border:1px solid #cfd0d6;border-radius:8px;outline:0;font:13px var(--font-ui)}.file-name-dialog input:focus{border-color:#2b579a;box-shadow:0 0 0 2px rgba(43,87,154,.13)}.file-name-dialog p{margin:0;color:#a33;font-size:11px}.file-name-dialog footer{justify-content:flex-end;gap:8px;margin-top:8px}.file-name-dialog footer button{min-height:38px;padding:0 15px;border:0;border-radius:8px}.file-name-dialog footer .primary{color:#fff;background:#111}

/* v14 application surfaces share one desktop icon language. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.dock-app .app-icon{border-radius:7px;box-shadow:0 2px 7px rgba(0,0,0,.28);font:800 8px/1 var(--font-ui)}
.dock-app .app-icon svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dock-app .wechat-icon{background:#07c160}.dock-app .mail-icon{background:#2b2b31}.dock-app .word-icon{background:#2b579a}.dock-app .excel-icon{background:#217346}.dock-app .law-icon{background:#4b7bec}.dock-app .ai-icon{border-radius:7px!important;color:#fff!important;background:#555e6e!important}.dock-app .files-icon{background:#3185dc}.dock-app .pdf-icon{background:#d24735}
.dock-app .wechat-icon svg path:first-child{fill:#fff;stroke:none}.dock-app .wechat-icon svg circle{fill:#07c160;stroke:none}.dock-app .mail-icon svg rect{fill:#fff;stroke:none}.dock-app .mail-icon svg path{stroke:#2b2b31}.dock-app .files-icon svg{fill:#fff;stroke:none}.dock-app .word-icon svg path:first-child,.dock-app .excel-icon svg rect{fill:#fff;stroke:none}.dock-app .word-icon svg path:not(:first-child){stroke:#2b579a}.dock-app .excel-icon svg path{stroke:#217346}

/* One icon source is reused on the desktop, taskbar and window chrome. */
.app-icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.app-glyph{width:100%!important;height:100%!important;display:block;fill:initial!important;stroke:none!important}
.desktop-app-icon.browser-icon,.desktop-app-icon.ai-icon,.desktop-app-icon.files-icon{overflow:visible;border-radius:0;background:transparent;box-shadow:none}
.dock-app .browser-icon,.dock-app .ai-icon,.dock-app .files-icon{overflow:visible;border-radius:0!important;background:transparent!important;box-shadow:none}
.dock-app .browser-icon .app-glyph,.dock-app .ai-icon .app-glyph,.dock-app .files-icon .app-glyph{width:40px!important;height:40px!important}
.window-app-mark.brand-browser,.window-app-mark.brand-ai,.window-app-mark.brand-files{width:21px;height:21px;overflow:visible;border-radius:0;background:transparent}

/* DeepSeek keeps its original brand/history/conversation/composer structure. */
.window-shell[data-window-app="ai"] .assistant-app{grid-template-columns:190px minmax(0,1fr)}
.window-shell[data-window-app="ai"] .assistant-rail{width:auto;align-items:stretch;gap:10px;padding:16px 12px;border-right:1px solid #e2e2e5;background:#f4f4f5}
.window-shell[data-window-app="ai"] .assistant-rail::before{content:none}
.assistant-brand{display:flex;align-items:center;gap:9px;padding:2px 3px 8px}.assistant-brand span{width:28px!important;height:28px!important;border-radius:8px!important;font-size:9px}.assistant-brand strong{font-size:14px}.assistant-rail>small{margin:10px 4px 0;color:#7a7b83;font-size:10px}
.window-shell[data-window-app="ai"] .assistant-rail button{width:100%;height:36px;display:flex;align-items:center;justify-content:flex-start;padding:0 10px;border:0;border-radius:9px;color:#25252a;background:#fff;font:600 11px var(--font-ui)}.window-shell[data-window-app="ai"] .assistant-rail .assistant-history{background:transparent;font-weight:500}.window-shell[data-window-app="ai"] .assistant-rail .assistant-history.active{background:#e6e6e9}
.window-shell[data-window-app="ai"] .assistant-main{grid-template-rows:45px minmax(0,1fr) auto;background:#f7f8fa}.window-shell[data-window-app="ai"] .assistant-main>header{padding:0 15px}.window-shell[data-window-app="ai"] .assistant-main>header strong{font-size:13px}.window-shell[data-window-app="ai"] .assistant-main>header small{font-size:10px}.window-shell[data-window-app="ai"] .assistant-messages{padding:18px 8%}.window-shell[data-window-app="ai"] .assistant-empty{color:#30323a;font-size:16px;font-weight:600}.window-shell[data-window-app="ai"] .assistant-composer{margin:10px 8% 16px;padding:8px;border:1px solid #cfd2da;border-radius:13px;background:#fff}.window-shell[data-window-app="ai"] .assistant-composer textarea{min-height:64px;resize:none;border:0;outline:0}.window-shell[data-window-app="ai"] .assistant-composer>button{width:32px;height:32px;align-self:end;padding:0;border-radius:8px;background:#4f64a6;font-size:18px}

/* Word keeps one stable vertical stack. Only implemented file actions are exposed. */
.window-shell[data-window-app="word"] .word-app{display:grid;grid-template-rows:36px 42px 30px minmax(0,1fr) 25px;background:#e6e6e9}
.word-appbar{display:flex;align-items:center;gap:8px;padding:0 10px;color:#fff;background:#2b579a}.word-appbar>strong{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:4px;background:#1f4e88}.word-appbar>span:first-of-type{min-width:0;flex:1;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.word-appbar .document-save-state{margin:0;color:rgba(255,255,255,.82);font-size:10px;white-space:nowrap}.word-appbar .document-save-state::before{display:none}
.word-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid #d7d7dc;background:#fff}.word-toolbar>button{height:29px;padding:0 12px;border:1px solid #d8d8dd;border-radius:5px;background:#fff;font-size:11px}.word-toolbar>button:hover{background:#f1f3f7}.word-toolbar>button:disabled{opacity:.42}.word-toolbar .document-version{display:flex;align-items:center;gap:6px;margin-left:auto;color:#686870;font-size:10px;white-space:nowrap}.word-toolbar .document-view-modes{display:flex;gap:3px;margin-left:4px}.word-toolbar .document-view-modes button{height:27px;padding:0 8px;border:0;border-radius:5px;background:#ededf1;font-size:10px}.word-toolbar .document-view-modes button.selected{color:#fff;background:#2b579a}.window-shell[data-window-app="word"] .document-tabstrip{background:#f2f2f4}.window-shell[data-window-app="word"] .document-stage{min-height:0;background:#e6e6e9}.window-shell[data-window-app="word"] .document-paper{width:min(760px,calc(100% - 24px));min-height:760px;padding:68px 72px}.window-shell[data-window-app="word"] .document-paper textarea{min-height:620px}.word-status{display:flex;align-items:center;gap:18px;padding:0 10px;border-top:1px solid #d1d1d6;color:#56565e;background:#f7f7f8;font-size:9px;white-space:nowrap}.word-status span:last-child{margin-left:auto}

/* Excel keeps title, implemented file actions, formula bar, grid, tabs and status separate. */
.window-shell[data-window-app="excel"] .spreadsheet-app{display:grid;grid-template-areas:"title" "toolbar" "formula" "summary" "grid" "tabs" "signal" "status";grid-template-rows:36px 42px 30px auto minmax(0,1fr) 31px auto 24px;padding:0;background:#f7f7f8}
.window-shell[data-window-app="excel"] .excel-titlebar{grid-area:title}.window-shell[data-window-app="excel"] .excel-toolbar{grid-area:toolbar}.window-shell[data-window-app="excel"] .formula-bar{grid-area:formula}.window-shell[data-window-app="excel"] .ledger-summary{grid-area:summary}.window-shell[data-window-app="excel"] .ledger-scroll{grid-area:grid}.window-shell[data-window-app="excel"] .spreadsheet-tabs{grid-area:tabs}.window-shell[data-window-app="excel"] .ledger-signal{grid-area:signal}.window-shell[data-window-app="excel"] .excel-status{grid-area:status}
.excel-titlebar{display:flex!important;align-items:center!important;gap:8px!important;padding:0 10px!important;color:#fff;background:#217346!important}.excel-titlebar strong{min-width:0;flex:1;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.excel-titlebar>span{color:rgba(255,255,255,.82);font-size:10px;white-space:nowrap}
.excel-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid #d7d7dc;background:#fff}.excel-toolbar button{height:29px;padding:0 12px;border:1px solid #d8d8dd;border-radius:5px;background:#fff;font-size:11px}.excel-toolbar button:hover{background:#edf5f0}.excel-toolbar button:disabled{opacity:.42}.excel-toolbar small{margin-left:auto;color:#6c6c74;font-size:10px}.formula-bar{display:grid;grid-template-columns:58px 30px minmax(0,1fr);align-items:stretch;border-bottom:1px solid #d2d2d7;background:#fff}.formula-bar span,.formula-bar b{display:grid;place-items:center;border-right:1px solid #ddd;font-size:10px}.formula-bar input{min-width:0;padding:0 9px;border:0;outline:0;font:11px var(--font-ui)}.window-shell[data-window-app="excel"] .ledger-summary{margin:0;border:0;border-bottom:1px solid #d7d7dc}.window-shell[data-window-app="excel"] .ledger-scroll{min-height:0;margin:0;overflow:auto;border:0}.window-shell[data-window-app="excel"] .ledger-scroll th{color:#333;background:#f0f0f2;font:600 11px/1.3 var(--font-ui)}.window-shell[data-window-app="excel"] .ledger-scroll td{font:11px/1.3 var(--font-ui)}.window-shell[data-window-app="excel"] .ledger-signal{display:none}.window-shell[data-window-app="excel"] .spreadsheet-tabs{order:0;padding:2px 10px 0;background:#f0f0f2}.workbook-cell.selected{outline:2px solid #217346;outline-offset:-2px}.excel-status{display:flex;align-items:center;padding:0 10px;border-top:1px solid #d1d1d6;color:#5a5a62;background:#f7f7f8;font-size:9px;white-space:nowrap}.excel-status span:last-child{margin-left:auto}

/* Canonical Review V34: three projections and one terminal completion state. */
.review-page{min-height:100vh;padding:0 14px 14px;overflow:auto;color:#111114;background:#050505}.review-topbar{height:96px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 44px;color:#fff;background:#050505}.review-wordmark{justify-self:start;padding:0;border:0;color:#fff;background:transparent;font-size:29px;font-weight:600;letter-spacing:-1.5px}.review-mode{display:flex;gap:42px;color:#85858c;font-weight:600}.review-mode .active{color:#fff}.review-profile{justify-self:end;display:flex;align-items:center;gap:9px;padding:6px 13px 6px 7px;border:1px solid #444;border-radius:999px;color:#fff;background:#202022}.review-profile span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#241d25;background:#edc8f6}.review-profile strong{font-size:13px}.review-canvas{min-height:calc(100vh - 110px);padding:30px 40px 26px;border-radius:40px;background:#f7f7f7}.review-titlebar{align-items:center}.review-titlebar h1{font-size:34px}.review-stage-nav button{min-width:138px;justify-content:flex-start}.review-result-layout{display:grid;grid-template-columns:224px minmax(0,1.25fr) minmax(290px,.82fr);gap:20px}.review-score-card{min-height:320px;display:flex;flex-direction:column;padding:27px 25px;border-radius:30px;background:#d8f7fb;box-shadow:0 10px 28px #18181e0d}.review-score-card>div{display:flex;align-items:flex-end;gap:6px;margin:18px 0 8px}.review-score-card>div strong{font-size:70px;font-weight:600;line-height:.9;letter-spacing:-4px}.review-score-card>div small{padding-bottom:6px;color:#667477}.review-score-card>b{align-self:flex-start;padding:7px 12px;border-radius:999px;background:#c8f4d0}.review-score-card>p{margin:auto 0 0;color:#5d6b6d;font-size:12px}.review-score-card.critical{background:#fad9df}.review-score-card.critical>b{background:#fff;color:#9a2e42}.review-mentor-card{position:relative;min-height:320px;display:flex;align-items:center;padding:34px}.review-mentor-card>div{max-width:620px}.review-mentor-card h2{margin:15px 0 0;font-size:27px;line-height:1.5}.review-mark{position:absolute;right:24px;top:23px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#c8f4d0;font-size:20px}.review-rubric-card{min-height:320px;padding:25px 24px;background:#ffe8a8}.review-rubric-card h2{margin-top:4px;font-size:21px}#reviewScoreDimensions{margin-top:13px}#reviewScoreDimensions section{padding:13px 0;border-top:1px solid #0000001a}#reviewScoreDimensions section>div{display:flex;align-items:center;gap:7px}#reviewScoreDimensions em{padding:3px 7px;border-radius:999px;background:#ffffffb3;font-size:9px;font-style:normal}#reviewScoreDimensions b{margin-left:auto;font-size:12px}#reviewScoreDimensions p{margin:5px 0 0;color:#665f4c;font-size:11px}.review-section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.review-section-intro h2{margin:4px 0;font-size:29px}.review-section-intro p{margin:0;color:#66666d}.review-section-intro>b{color:#73737a;font-size:12px}.review-behavior-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.review-behavior-cards:empty{display:none}.review-behavior-cards button{min-height:104px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 20px;border:2px solid transparent;border-radius:24px;color:#111;background:#fff;text-align:left;box-shadow:0 7px 20px #1414190a}.review-behavior-cards button.selected{border-color:#111;background:#dff7fb}#reviewImprovementCards button.selected{background:#ffe8a8}#reviewImprovementCards button.redline{box-shadow:inset 0 0 0 2px #d96678}.review-behavior-cards strong{font-size:15px;line-height:1.45}.review-behavior-cards span{color:#6b6b72;font-size:11px}.review-behavior-detail{min-height:286px;padding:26px 29px}.review-behavior-detail>header{display:flex;justify-content:space-between;gap:20px}.review-behavior-detail>header h2{margin-top:5px;font-size:23px}.review-behavior-detail>header>b{padding:6px 11px;border-radius:999px;background:#ededf0;font-size:11px}.review-behavior-detail>section{margin-top:20px;padding:17px 19px;border-radius:20px;background:#f4f4f5}.review-behavior-detail small,.review-improvement-grid small{color:#6b6b72;font-size:11px;font-weight:700}.review-behavior-detail p{margin:6px 0 0}.review-evidence-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.review-evidence-actions .review-source-link{margin:0;padding:8px 12px;border:0;border-radius:999px;color:#fff;background:#111}.review-improvement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.review-improvement-grid section{min-height:128px;padding:17px 18px;border-radius:20px;background:#ededf0}.review-improvement-grid section:nth-child(2){background:#f2eaf5}.review-improvement-grid section.safer{background:#ffe8a8}.review-example{margin-top:13px;padding:14px 17px;border-radius:18px;background:#f5f5f4}.review-example summary{cursor:pointer;font-weight:700}.review-example blockquote{margin:12px 0 0;padding-left:14px;border-left:3px solid #111}.review-footer{min-height:64px}.review-footer #reviewNext{color:#fff;background:#111}.review-completion{min-height:calc(100vh - 170px)}.review-completion>header{display:flex;align-items:center;gap:14px;padding:2px 2px 24px}.review-completion>header>span{width:38px;height:38px;display:grid;place-items:center;border:1px solid #d4e7d7;border-radius:50%;color:#4e8057;background:#fff}.review-completion>header h1{margin:0 0 3px;font-size:29px}.review-completion>header p{display:inline;margin:0 8px 0 0;font-weight:600}.review-completion>header small{color:#6d6d74}.review-completion-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:30px}.review-completion-case{min-height:430px;display:flex;flex-direction:column;padding:42px 44px;border-radius:38px;background:#edc8f6}.review-completion-case h2{max-width:650px;margin:20px 0 10px;font-size:38px;line-height:1.12}.review-completion-case p{max-width:580px;color:#554b58;font-size:15px;line-height:1.7}.review-completion-case-meta{margin:14px 0 auto}.review-completion-case button{align-self:flex-end;min-width:218px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 10px 10px 20px;border:0;border-radius:999px;color:#fff;background:#111;text-align:left}.review-completion-case button span{display:flex;flex-direction:column}.review-completion-case button small{color:#aaa}.review-completion-case button b{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#111;background:#efc34d;font-size:20px}.review-completion-evidence{min-height:430px;padding:31px 28px;border-radius:34px;background:#fff}.review-completion-evidence h2{margin:0;font-size:22px}.review-completion-evidence header p{margin:4px 0 18px;color:#6d6d74;font-size:11px}#reviewCompletionEvidence article{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #ededf0}#reviewCompletionEvidence article>span{display:flex;gap:6px}#reviewCompletionEvidence em{padding:4px 7px;border-radius:999px;font-size:10px;font-style:normal}#reviewCompletionEvidence em.positive{background:#d8f1dd}#reviewCompletionEvidence em.improvement{background:#ffe8a8}.review-completion>footer{display:flex;gap:20px;padding-top:14px}.review-completion>footer button{padding:8px 0;border:0;color:#66666d;background:transparent}.review-completion>footer button:last-child{margin-left:auto}
@media(max-width:1300px){.review-canvas{padding:26px 30px 24px}.review-result-layout{grid-template-columns:200px minmax(0,1fr) 280px;gap:14px}.review-score-card,.review-mentor-card,.review-rubric-card{min-height:300px}.review-mentor-card{padding:28px}.review-mentor-card h2{font-size:23px}.review-stage-nav button{min-width:124px;padding-right:14px}.review-completion-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px}}

/* Review reuses the production Home shell. V34 only supplies the outer review
   frame and page composition; navigation and profile controls stay shared. */
.review-page.home-page{display:block;padding:30px;background:#dff7fb;overflow:hidden}
.review-shell{position:relative;width:100%;height:100%;overflow:hidden;border:6px solid #050505;border-radius:38px;background:#050505;box-shadow:0 28px 0 rgba(18,91,99,.12),0 38px 70px rgba(0,0,0,.2)}
.review-shell>.home-header{height:96px;padding:0 44px;background:#050505}
.review-shell>.home-header nav{top:26px;gap:44px}
.review-mode span{display:flex!important;align-items:center;gap:10px;height:44px;padding:0 16px;color:#929092!important;font-size:16px;font-weight:500}
.review-mode span.active{color:#fff!important}
.review-mode svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.review-shell .review-profile{top:18px}
.review-canvas{position:relative;height:calc(100% - 96px);min-height:0;overflow:auto;border-radius:40px 40px 0 0;background:#f7f7f7}
.review-canvas::before{content:"";position:absolute;left:50%;top:-13px;width:190px;height:24px;border-radius:120px 120px 0 0;background:#f7f7f7;transform:translateX(-50%)}
.review-result-layout{grid-template-columns:minmax(210px,.72fr) minmax(330px,1.34fr) minmax(300px,1fr);gap:18px}
.review-score-card,.review-mentor-card,.review-rubric-card{min-height:390px;border-radius:26px}
.review-rubric-card{border:1px solid #efe2bc;background:#fff8e5}
.review-mentor-card{background:#fff}
.review-section-intro h2{font-size:26px;font-weight:500}
.review-evidence-map{margin:18px 0;padding:15px 18px;border:1px solid #e2e2e4;border-radius:18px;background:#fff}
.review-evidence-map>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.review-evidence-map h3{margin:0;font-size:13px}.review-evidence-map>header>div{display:flex;gap:14px;color:#73737a;font-size:10px}.review-evidence-map>header span{display:flex;align-items:center;gap:5px}.review-evidence-map i,.review-evidence-nodes article i{width:7px;height:7px;display:block;border-radius:50%}.review-evidence-map i.positive,.review-evidence-nodes article i.positive{background:#79c985}.review-evidence-map i.improvement,.review-evidence-nodes article i.improvement{background:#c38bd5}
.review-evidence-nodes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.review-evidence-nodes article{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:42px;padding:0 12px;border:1px solid #ececef;border-radius:13px;background:#fafafa}.review-evidence-nodes article.current{border-color:#111;background:#f1f1f1;box-shadow:inset 0 0 0 1px #111}.review-evidence-nodes article strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.review-evidence-nodes article span{display:flex;gap:4px;flex:0 0 auto}
.review-behavior-panel{padding:16px 18px 18px;border-radius:22px;background:#efefef}.review-behavior-panel>.review-kicker{display:block;margin:0 0 11px}.review-behavior-panel .review-behavior-detail{margin-top:13px}
.review-behavior-cards button{border-radius:19px;box-shadow:0 6px 14px rgba(0,0,0,.025)}
.review-completion-case{min-height:400px;padding:34px 38px;border-radius:40px;background:#f3d6fa;box-shadow:0 18px 40px rgba(110,50,130,.1)}
.review-completion-case.no-recommendation{background:#e8f4ea;box-shadow:0 18px 40px rgba(62,105,69,.08)}
.review-completion-case h2{margin:18px 0 10px;font-size:39px;line-height:1.18}
.review-completion-case-meta{margin-top:24px}
.review-completion-case-actions{display:flex;align-items:center;gap:18px;margin-top:auto}
.review-completion-case .review-completion-case-actions>#reviewBrowsePractice{min-width:0;margin:0;padding:10px 0;border:0;border-radius:0;color:#4f4852;background:transparent;box-shadow:none;font-size:11px}
.review-completion-case .review-completion-case-actions>#reviewContinueCase,.review-completion-case .review-completion-case-actions>#reviewNoRecommendationHome{height:72px;min-width:218px;margin-left:auto;padding:0 9px 0 28px;border-radius:999px;color:#fff;background:#111;box-shadow:0 12px 26px rgba(17,17,17,.2)}
.review-completion-case .review-completion-case-actions button>b{width:54px;height:54px;background:#f4d27a;font-size:22px}
.review-completion-evidence{min-height:400px;padding:28px 27px 22px;border-radius:32px}
.review-completion-legend{display:flex;gap:16px;margin-top:18px;padding-top:15px;border-top:1px solid #efeff0;color:#6b6b73;font-size:10px}
.review-completion-legend span{display:flex;align-items:center;gap:5px}.review-completion-legend i,#reviewCompletionEvidence em i{width:7px;height:7px;display:block;border-radius:50%}
.review-completion-legend i.positive,#reviewCompletionEvidence em.positive i{background:#79c985}.review-completion-legend i.improvement,#reviewCompletionEvidence em.improvement i{background:#c38bd5}
#reviewCompletionEvidence{margin-top:8px}#reviewCompletionEvidence article{padding:11px 2px;border-bottom:1px solid #efeff0;border-top:0}#reviewCompletionEvidence em{display:flex;align-items:center;gap:5px;padding:0;background:transparent!important;color:#6b6b73}
.review-completion>footer{min-height:52px;padding:4px 2px 0}.review-completion>footer button{font-size:10.5px}
@media(max-width:1300px){.review-page.home-page{padding:20px}.review-result-layout{grid-template-columns:190px minmax(0,1fr) 280px}.review-score-card,.review-mentor-card,.review-rubric-card{min-height:360px}.review-completion-grid{gap:20px}.review-completion-case{padding:30px}.review-completion-case h2{font-size:34px}}

.auth-pending .product-page,.auth-pending .desktop-system-bar,.auth-pending .desktop-taskbar { display:none!important }
.auth-gate{position:fixed;inset:0;z-index:10000;min-height:100vh;display:grid;place-items:center;padding:32px;background:#f5f4ef}
.auth-gate.hidden{display:none}
.auth-card{width:min(100%,430px);padding:34px;border:1px solid #deddd7;border-radius:18px;background:#fff;box-shadow:0 18px 55px rgba(28,28,25,.08)}
.auth-card>span{display:block;margin-bottom:26px;font:700 24px/1 Georgia,serif;letter-spacing:-.03em}
.auth-card h1{margin:0 0 10px;font-size:26px}
.auth-card>p{margin:0 0 22px;color:#62625d;line-height:1.65}
.auth-card>small{display:block;margin-top:14px;color:#777770;text-align:center}
