/* 憨豆工作台 · Hander Workbench — 深海军蓝侧栏 + 浅蓝暖白内容 + 豆绿行动 */
:root {
  --ink: #203443;
  --navy: #173247;
  --navy-hover: #294859;
  --navy-input: #102b40;
  --muted: #718087;
  --paper: #edf6ff;
  --paper-warm: #faf8f2; /* 暖白卡片面 */
  --surface: #fffdf8;
  --line: #dfe4e6;
  --bean: #7faa77;
  --bean-dark: #4d7858;
  --bean-hover: #d2f296;
  --cyan: #20b8bb;
  --coral: #a54232;
  --amber: #8a5a00;
  --shadow: 0 12px 32px rgba(28, 53, 60, 0.08);
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: radial-gradient(circle at 65% 0,#f9fdff 0,#edf6ff 42%,#e6f2fb 100%); color: var(--ink); font-size: 14px; line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.app { min-height: 100vh; display: flex; }
.sidebar {
  width: 245px; flex: none; background: linear-gradient(165deg,#143e72 0%,#102f57 58%,#102946 100%); color: #dce9e4;
  padding: 28px 16px; display: flex; flex-direction: column; box-shadow: 8px 0 30px rgba(17,54,90,.12);
}
.brand { display:block; padding:0 0 24px; color:#fff; }
.brand-lockup { display:block; width:100%; height:auto; border-radius:14px; box-shadow:0 9px 22px rgba(1,17,44,.22); }
.logo {
  width: 46px; height: 46px; background: linear-gradient(145deg,#48d5ff,#4789ff);
  border-radius: 48% 52% 45% 55%; /* 水獭豆形品牌轮廓 */
  display: grid; place-items: center; color: #eaffec;
  font: 700 22px Georgia; transform: rotate(-8deg); position: relative;
}
.logo::after {
  content: ""; position: absolute; width: 7px; height: 7px;
  border-radius: 50%; background: var(--cyan); right: -3px; top: 2px;
}
.brand-text strong { font-size: 17px; letter-spacing: 0.03em; display: block; }
.brand-text small { color: #91aaa7; font-size: 11px; margin-top: 3px; display: block; }

.nav { display: grid; gap: 4px; }
.nav-item {
  height: 44px; border-radius: 11px; background: transparent; color: #b8cbc7;
  text-align: left; padding: 0 13px; font-weight: 650; text-decoration: none;
  display: flex; align-items: center;
}
.nav-item:hover { background: var(--navy-hover); color: #fff; }
.nav-item.active { background: linear-gradient(100deg,#168cff,#1dd8df); color: #fff; box-shadow: 0 8px 18px rgba(24,153,255,.24); }
.nav-dot { width: 6px; height: 6px; border-radius: 50%; border: 1px solid #76918f; margin: 0 10px 0 0; }
.nav-icon { width:26px; margin-right:8px; font-size:21px; line-height:1; text-align:center; color:#c7ddf4; }.nav-item.active .nav-icon{color:#fff}
.nav-item.active .nav-dot { background: var(--cyan); border-color: var(--cyan); }
.nav-item.nav-primary { font-weight: 700; }
.nav-divider { height: 1px; background: #315162; margin: 12px 6px; }
.nav-secondary { gap: 2px; }
.nav-secondary .nav-item { font-size: 13px; color: #7f9aa5; height: 38px; }
.nav-secondary .nav-item:hover, .nav-secondary .nav-item.active { color: #fff; }

.sidebar-foot { margin-top: auto; padding: 14px 4px 0; border-top: 1px solid #315162; }
.assistant-entry {
  width: 100%; display: flex; align-items: center; gap: 10px;
  background: transparent; border: 0; border-radius: 11px; padding: 10px;
  color: #cfe0dc; text-align: left;
}
.assistant-entry:hover { background: var(--navy-hover); color: #fff; }
.assistant-entry .otter-copy span { display: block; font-size: 12px; color: #89a39e; }
.otter { display: flex; align-items: center; gap: 9px; margin-top: 12px; color: #cfe0dc; }
.otter-face {
  width: 30px; height: 34px; background: var(--bean-dark);
  border-radius: 46% 54% 50% 50%; position: relative; flex: none;
}
.otter-face b {
  position: absolute; width: 5px; height: 5px; border-radius: 50%;
  background: #eaffec; top: 12px; left: 8px; box-shadow: 10px 0 0 #eaffec;
}
.otter-copy strong { color: #eaffec; }
.assistant-note { margin-top: 9px; color: #89a39e; }

.otter-face--light { background: var(--bean); }
.otter-face--big { width: 44px; height: 50px; }
.otter-face--big b { width: 7px; height: 7px; top: 18px; left: 11px; box-shadow: 15px 0 0 #eaffec; }
.doudou-noscript { margin: 0; padding: 10px 24px; background: #fff5de; color: var(--amber); text-align: center; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 豆豆助手右侧抽屉 */
.doudou-drawer { position: fixed; inset: 0; z-index: 50; }
.doudou-drawer-mask { position: absolute; inset: 0; background: rgba(23, 50, 71, 0.45); }
.doudou-drawer-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 92vw);
  background: var(--surface); border-left: 1px solid var(--line);
  box-shadow: -12px 0 32px rgba(28, 53, 60, 0.18);
  display: flex; flex-direction: column;
}
.doudou-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid var(--line);
}
.doudou-drawer-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.doudou-drawer-body { flex: 1; overflow: auto; padding: 16px 18px; }
.doudou-status { display: grid; gap: 2px; background: #fff5de; color: var(--amber); border-radius: 9px; padding: 10px 12px; font-size: 12px; }
.doudou-context-card { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; color: var(--muted); font-size: 12px; border-bottom: 1px solid var(--line); }
.doudou-context-card b { color: var(--ink); font-weight: 600; overflow-wrap: anywhere; text-align: right; }
.doudou-messages { display: grid; gap: 8px; margin-top: 14px; }
.doudou-message { padding: 10px 12px; background: #edf5f2; border-radius: 10px 10px 3px 10px; overflow-wrap: anywhere; }
.doudou-message small { display: block; color: var(--muted); margin-top: 4px; }
.doudou-action-preview { margin-top: 14px; padding: 12px; border: 1px solid #ecd69e; background: #fffaf0; border-radius: 12px; }
.doudou-action-preview h3 { font-size: 14px; margin: 0; }
.doudou-action-preview p { margin: 8px 0; overflow-wrap: anywhere; }
.doudou-empty { text-align: center; color: var(--muted); margin-top: 42px; display: grid; justify-items: center; gap: 10px; }
.doudou-empty .otter-face { background: var(--bean); }
.doudou-drawer-form {
  display: flex; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line);
}
.doudou-drawer-form textarea {
  flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 10px;
  resize: vertical;
}
.doudou-drawer-form button { width: auto; padding: 10px 14px; }

.main { width: min(100%, 1500px); margin: 0 auto; padding: 20px 32px 42px; }
.topbar { height: 52px; display:flex; align-items:center; gap:20px; margin-bottom:18px; }
.crumb { display:flex; align-items:center; gap:10px; min-width:220px; }
.crumb-home { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#147cf2; background:#fff; box-shadow:0 5px 18px rgba(44,125,190,.1); font-size:21px; }
.top-search { max-width:460px; flex:1; height:42px; display:flex; gap:9px; align-items:center; padding:0 15px; border-radius:22px; background:rgba(255,255,255,.8); border:1px solid #e8f1fa; color:#6790c3; text-align:left; }
.top-search:hover { border-color:#b9d9f5; background:#fff; }.top-search-placeholder{flex:1;min-width:0;color:#7294bc}.top-search kbd,.command-palette kbd{border:1px solid #dce9f6;border-radius:6px;background:#f7fbff;color:#7290b0;padding:1px 5px;font-size:11px;font-family:inherit;white-space:nowrap}
.command-palette{width:min(600px,calc(100vw - 32px));padding:0;border:1px solid #d9e9f5;border-radius:16px;background:#fffdf8;color:var(--ink);box-shadow:0 24px 64px rgba(20,58,104,.22)}.command-palette::backdrop{background:rgba(16,47,87,.32)}.command-palette-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e5eef7;color:#4388c9}.command-palette-head input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}.command-palette-label{margin:13px 16px 7px;color:#748ba5;font-size:12px;font-weight:700}.command-list{display:grid;padding:0 8px 9px}.command-list a{display:flex;justify-content:space-between;gap:14px;align-items:baseline;border-radius:10px;padding:10px 11px;text-decoration:none;font-weight:700;color:#1d4f83}.command-list a:hover,.command-list a:focus-visible{background:#edf7ff}.command-list small{color:#748ba5;font-weight:500}.command-empty{padding:4px 18px 16px;margin:0;color:var(--muted)}
.top-actions { margin-left:auto; display:flex; align-items:center; gap:12px; color:#18385c; font-weight:700; line-height:1.25; }
.top-actions small { color:#6e8dae; font-weight:500; font-size:11px; }.top-icon{border:0;background:#fff;border-radius:50%;width:38px;height:38px;color:#ff5e75;}
.crumb { color: var(--muted); font-size: 13px; }
.crumb b { font-size: 15px; color: var(--ink); }

.welcome { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 22px; gap: 12px; }
.welcome h1 { font-size: 29px; font-weight: 700; line-height: 1.2; letter-spacing: -0.04em; margin: 0 0 6px; }
.compact-welcome { margin: 18px 2px; }.compact-welcome h1 { display:none; }
.hero-banner { min-height:202px; border-radius:22px; overflow:hidden; background:#e7f5ff url('/static/doudou-hero-v2.png') center/cover no-repeat; border:1px solid rgba(255,255,255,.8); box-shadow:0 15px 36px rgba(62,130,188,.12); position:relative; display:flex; align-items:center; }
.hero-copy { width:58%; padding:28px 34px; position:relative; z-index:1; }.hero-kicker{margin:0 0 4px;color:#1f83ec;font-weight:750}.hero-copy h1{font-size:42px;letter-spacing:-.06em;line-height:1.12;margin:0;color:#102f5b}.hero-copy>p:not(.hero-kicker){margin:8px 0 15px;color:#355d8d;font-size:17px}.hero-pills{display:flex;gap:9px;flex-wrap:wrap}.hero-pills span{background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.95);border-radius:18px;padding:5px 10px;color:#32705c;font-size:12px;font-weight:650}.hero-pills span::first-letter{color:#20c98a}
.dashboard-intro{display:flex;justify-content:space-between;align-items:center;margin:14px 3px 12px;color:#7187a0;font-size:13px}.dashboard-intro b{color:#295a85;font-size:13px}
.page-header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:8px 0 18px}.page-header h1{margin:0;color:#143a68;font-size:29px;line-height:1.2;letter-spacing:-.04em}.page-header p{margin:5px 0 0;color:#7086a0}.workspace-card{padding:20px}.workspace-card+.workspace-card{margin-top:16px}.inline-create{margin:12px 0 16px;padding:0;border:1px solid #dcebf8;border-radius:12px;background:#f8fbff}.inline-create summary{cursor:pointer;padding:10px 13px;color:#2378c8;font-weight:700;list-style:none}.inline-create summary::before{content:"＋";margin-right:7px}.inline-create[open] summary{border-bottom:1px solid #dcebf8}.inline-create .manual-grid{padding:13px}.inbox-review{margin-top:12px;border-top:1px solid #e4eef8;padding-top:10px}.inbox-review summary{cursor:pointer;color:#2875ba;font-weight:700;list-style:none}.inbox-review summary::after{content:"展开处理";font-size:12px;margin-left:8px;color:#7a91aa}.inbox-review[open] summary::after{content:"收起"}.filter-bar{background:#f8fbff;border:1px solid #e0edf8;border-radius:12px;padding:9px;gap:8px}.filter-bar input,.filter-bar select{background:#fff;border-color:#dbeaf7}.inbox-card{box-shadow:none}.inbox-card .section-head{align-items:flex-start}
.smart-views{display:flex;gap:6px;overflow-x:auto;padding:0 0 13px;margin:0 0 12px;border-bottom:1px solid #e4eef8}.smart-views a{flex:none;padding:5px 10px;border-radius:16px;color:#6683a1;text-decoration:none;font-size:13px;font-weight:650}.smart-views a:hover{background:#eef7ff;color:#2378c8}.smart-views a.active{background:#def2ff;color:#1476c5}
.dashboard-top-grid{display:grid;grid-template-columns:1.45fr .9fr .75fr;gap:16px;margin-bottom:18px;align-items:stretch}.dashboard-top-grid .card{margin:0;min-height:270px}.section-icon{display:inline-grid;place-items:center;width:32px;height:32px;margin-right:8px;border-radius:11px;background:#eaf5ff;color:#147cf2;font-size:23px;vertical-align:middle}.green-icon{color:#1cae70;background:#e7f9ee}.quick-capture{padding:18px 20px}.quick-capture .section-head,.summary-panel .section-head,.assistant-panel .section-head{margin-bottom:7px}.quick-capture p{font-size:13px;margin:0 0 12px}.quick-capture-form textarea{display:block;width:100%;height:88px;resize:none;border:1px solid #cfe4fa;border-radius:12px;padding:13px;background:#fbfdff;color:var(--ink)}.quick-capture-form textarea:focus{border-color:#1597ed;outline:0;box-shadow:0 0 0 3px rgba(31,162,244,.12)}.quick-capture-form .primary{width:100%;height:44px;margin-top:10px;border-radius:12px;font-weight:750}.capture-shortcuts{display:flex;gap:8px;justify-content:space-between;margin-top:12px}.capture-shortcuts span{flex:1;text-align:center;padding:6px 2px;border:1px solid #e0edfa;border-radius:9px;color:#4d78a7;font-size:12px;background:#f9fcff}
.dashboard-top-grid--without-capture{grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);max-width:980px}.dashboard-top-grid--without-capture .card{min-height:228px}
.summary-panel{padding:18px}.summary-grid--rich{gap:10px}.summary-grid--rich li a{align-items:flex-start;position:relative;padding:11px 12px 9px;min-height:77px}.summary-grid--rich small{font-weight:650;color:#54708e}.summary-grid--rich b{font-size:24px;line-height:1;color:#123f70;margin:3px 0 0 31px}.summary-symbol{position:absolute;top:12px;left:12px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-weight:800;background:#eef6ff;color:#197cf1}.summary-symbol.risk{background:#ffe8ea;color:#ed6270}.summary-symbol.amber{background:#fff0d8;color:#e69b28}.summary-symbol.green{background:#e0f9ed;color:#18af70}.summary-quote{margin:12px 0 0;padding:10px 11px;background:#f3f9ff;border-radius:10px;color:#7792af;font-size:12px;line-height:1.6}
.assistant-panel{padding:18px;position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 20%,#eefaff 100%)}.assistant-panel::after{content:"";position:absolute;right:-36px;bottom:-28px;width:130px;height:130px;background:url('/static/doudou-hero-v1.png') 91% 52%/470px auto no-repeat;opacity:.96}.assistant-panel-copy{position:relative;z-index:1;width:72%}.assistant-panel h3{margin:8px 0 3px;color:#123c6d;font-size:18px}.assistant-panel p{margin:0;color:#597a9e;font-size:13px;line-height:1.55}.assistant-panel-action{position:relative;z-index:1;width:100%;margin-top:16px;border:1px solid #d8eafa;border-radius:10px;background:#fff;color:#197cf1;padding:9px 12px;text-align:left;font-weight:700}.assistant-panel-action:hover{background:#f1f9ff}
.welcome p { margin: 0; color: var(--muted); }
.welcome .date { text-align: right; color: var(--muted); font-size: 13px; }

/* V2 推进型首页：双列工作区（左主列 + 右辅助列） */
.focus-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 18px; align-items: start; }
.focus-main { display: grid; gap: 18px; min-width: 0; }
.focus-side { display: grid; gap: 18px; min-width: 0; }
.summary-grid {
  list-style: none; margin: 0; padding: 0; display: grid;
  grid-template-columns: 1fr 1fr; gap: 10px;
}
.summary-grid li a {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  background: linear-gradient(135deg,#fff,#f1f9ff); border: 1px solid #e0effc; border-radius: 12px;
  padding: 12px 8px; text-decoration: none;
}
.summary-grid li a:hover { border-color: var(--bean); background: #fcfaf3; }
.summary-grid b { font-size: 21px; color: var(--bean-dark); }
.summary-grid small { color: var(--muted); font-size: 12px; }
.summary-sub { margin: 14px 0 6px; font-size: 13px; color: var(--muted); }
.proj-link { text-decoration: none; border-radius: 9px; padding-left: 10px; padding-right: 10px; }
.proj-link:hover { background: #f2f5ee; }
.settings-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 22px; }
.settings-group {
  display: block; background: var(--surface); border: 1px solid var(--line);
  border-radius: 16px; padding: 18px 20px; text-decoration: none; color: var(--ink);
}
.settings-group--static { cursor: default; }
a.settings-group:hover { border-color: var(--bean); background: #fcfaf3; }
.settings-group-head { font-size: 17px; font-weight: 700; margin-bottom: 5px; color: var(--navy); }
.settings-group-action { color: var(--bean-dark); font-weight: 650; font-size: 13px; }
.settings-group p { margin: 0 0 9px; }

.stat-strip { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.stat-item {
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  padding: 12px 18px; display: flex; align-items: center; gap: 11px;
}
.stat-item b { font-size: 21px; color: var(--bean-dark); }
.stat-item small a { font-size: 12px; }

dialog.model-dialog {
  border: 1px solid var(--line); border-radius: 16px; padding: 20px 24px;
  background: var(--surface); color: var(--ink);
  width: min(760px, calc(100vw - 40px)); max-height: 84vh; overflow: auto;
  max-width: calc(100vw - 40px);
}
dialog.model-dialog::backdrop { background: rgba(23, 50, 71, 0.45); }
.dialog-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.dialog-head h2 { margin: 0; font-size: 18px; }
.dialog-close {
  border: 1px solid var(--line); background: #fff; border-radius: 9px;
  width: 34px; height: 34px; font-size: 17px; line-height: 1;
}
.dialog-close:hover { border-color: var(--coral); color: var(--coral); }

button.primary {
  background: var(--bean); color: var(--navy); border: 0; border-radius: 8px;
  padding: 10px 16px; font-weight: 650; width: 100%;
}
button.primary:hover { background: var(--bean-hover); }
button.secondary {
  background: var(--bean-dark); color: #fff; border: 0; border-radius: 8px;
  padding: 10px 16px; font-weight: 650; width: 100%;
}
button.secondary:hover { background: #3d6349; }

.stat-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.proj-mini { list-style: none; margin: 10px 0 0; padding: 0; color: var(--muted); font-size: 13px; }

.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 16px; padding: 20px; margin-bottom: 22px;
}
.section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.section-head h2 { margin: 0; font-size: 18px; }
.muted { color: var(--muted); font-size: 13px; }
.empty { color: var(--muted); }

.task {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 4px; border-top: 1px solid var(--line);
}
.task:first-child { border-top: 0; }
.task-copy { flex: 1; min-width: 0; }
.task-title { font-weight: 650; }
.task-meta { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.task-link { text-decoration: none; border-radius: 9px; padding-left: 10px; padding-right: 10px; }
.task-link:hover { background: #f2f5ee; }
.detail-link { color: var(--bean-dark); font-weight: 650; white-space: nowrap; }
.warn-line { margin-top: 4px; }
.check {
  width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--bean);
  background: transparent; color: var(--bean-dark); font-weight: 700; flex: none;
}
.check:hover { background: var(--bean); color: #fff; }

.tag {
  display: inline-block; background: #e7f5f4; color: #176f73;
  border-radius: 20px; padding: 4px 10px; font-size: 12px; white-space: nowrap;
}
.tag-risk { background: #fff0eb; color: var(--coral); }
.tag-warning { background: #fff5de; color: var(--amber); }
.tag-info { background: #e7f5f4; color: #176f73; }

.filter-bar { display: flex; gap: 8px; margin-bottom: 12px; }
.filter-bar select, .filter-bar input {
  border: 1px solid var(--line); border-radius: 8px; padding: 9px; background: #fff;
}
.filter-bar select { min-width: 130px; }
.filter-bar input { flex: 1; }
.filter-bar button { width: auto; }

.manual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.manual-grid label { display: block; min-width: 0; }
.form-label { display: block; margin: 0 0 4px; font-size: 12px; font-weight: 650; color: var(--muted); }
.quick .form-label { color: #b8cbc7; }
.manual-grid input, .manual-grid select, .manual-grid textarea {
  border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: #fff; width: 100%;
}
.manual-grid textarea { min-height: 70px; resize: vertical; }
.manual-grid .full { grid-column: 1 / -1; }
.card .manual-grid button.primary { width: auto; }
.detail-head { margin-bottom: 16px; }
.detail-head h1 { margin: 8px 0 0; }
.back-link { color: var(--bean-dark); text-decoration: none; font-weight: 650; }
.notice { border-radius: 9px; padding: 10px 14px; margin-bottom: 12px; }
.notice-ok { background: #eaf5e7; color: #315e3c; }
.notice-error { background: #fff0eb; color: var(--coral); }
.action-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.action-bar form { margin: 0; }
.btn, button.danger { border: 1px solid var(--line); border-radius: 8px; padding: 9px 14px; background: #fff; }
.primary-inline { background: var(--bean); color: var(--navy); border-color: var(--bean); font-weight: 650; }
button.danger { color: var(--coral); border-color: #e8b9ad; }
.block-form { display: flex; align-items: end; gap: 8px; margin-top: 14px; }
.block-form label { flex: 1; }
.block-form input { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 9px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-grid .full, .meta-grid .full { grid-column: 1 / -1; }
.detail-grid input, .detail-grid select, .detail-grid textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: #fff; }
.detail-grid textarea { min-height: 76px; resize: vertical; }
.meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 0; }
.meta-grid div { border-top: 1px solid var(--line); padding-top: 8px; }
.meta-grid dt { color: var(--muted); font-size: 12px; }
.meta-grid dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }

.proj-list { display: grid; gap: 4px; }
.proj-row { display: flex; align-items: center; gap: 14px; padding: 12px 4px; border-top: 1px solid var(--line); }
.proj-row:first-child { border-top: 0; }
.bar {
  width: 120px; height: 8px; border-radius: 20px; background: var(--line); overflow: hidden; flex: none;
}
.bar span { display: block; height: 100%; background: var(--bean); border-radius: 20px; }

.inbox-list { display: grid; }
.inbox-row {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 4px; border-top: 1px solid var(--line);
}
.inbox-row:first-child { border-top: 0; }
.inbox-actions { display: flex; gap: 8px; flex: none; }
.inbox-actions form { display: contents; }
.inbox-actions button { width: auto; padding: 8px 14px; }
.preview-fields { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; font-size: 12px; color: var(--muted); }
.preview-fields b { color: var(--ink); margin-left: 4px; }

.activity-list { display: grid; }
.activity-row { padding: 10px 4px; border-top: 1px solid var(--line); }
.activity-row:first-child { border-top: 0; }
.inline-form { display: inline; margin-left: 8px; }
.activity-row.task-link { display: block; text-decoration: none; }
.inbox-card { margin-bottom: 14px; }
.inbox-review-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; align-items: center; }
.return-form { display: flex; gap: 6px; flex: 1; min-width: 260px; }
.return-form input { flex: 1; border: 1px solid var(--line); border-radius: 8px; padding: 9px; }
.change-list { margin-top: 6px; color: var(--muted); font-size: 13px; }

.toast {
  position: fixed; right: 18px; bottom: 18px; background: var(--navy); color: #fff;
  border-radius: 11px; padding: 11px 16px; opacity: 0; pointer-events: none;
  transition: opacity 0.2s; max-width: 320px;
}
.toast.show { opacity: 1; }

/* focus ring：青色 3px 外圈 */
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }

/* ≤1100px：主列与辅助列单列，侧栏收窄 */
@media (max-width: 1100px) {
  .focus-grid { grid-template-columns: 1fr; }
  .dashboard-top-grid{grid-template-columns:1.2fr .9fr}.assistant-panel{grid-column:1/-1;min-height:174px!important}.assistant-panel::after{right:0}.assistant-panel-copy{width:55%}
  .dashboard-top-grid--without-capture{grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);max-width:none}.dashboard-top-grid--without-capture .assistant-panel{grid-column:auto;min-height:228px!important}.dashboard-top-grid--without-capture .assistant-panel-copy{width:68%}
  .sidebar { width: 190px; padding: 20px 14px; }
  .main { padding: 22px 24px 42px; }
}

/* ≤720px：顶部导航、单列、底部助手仍可用 */
@media (max-width: 720px) {
  .app { flex-direction: column; }
  .sidebar { width: 100%; padding: 16px; }
  .nav { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; }
  .nav-divider { display: none; }
  .nav-secondary { grid-auto-flow: column; grid-auto-columns: max-content; }
  .brand { width:min(230px, 58vw); padding-bottom:12px; }
  .brand-lockup { border-radius:11px; }
  .sidebar-foot { display: none; }
  .main { padding: 18px 14px 34px; }
  .topbar { height:auto; flex-wrap:wrap; gap:9px; }.crumb{min-width:auto}.top-search{order:3;flex-basis:100%;max-width:none}.top-user{display:none}.hero-banner{min-height:190px;background-position:63% center}.hero-copy{width:72%;padding:20px}.hero-copy h1{font-size:31px}.hero-copy>p:not(.hero-kicker){font-size:14px}.hero-pills span{font-size:10px;padding:4px 7px}
  .dashboard-intro{align-items:flex-start;gap:6px;flex-direction:column;margin:12px 3px}.dashboard-top-grid{grid-template-columns:1fr;gap:13px}.dashboard-top-grid .card{min-height:auto}.quick-capture{padding:15px}.capture-shortcuts{gap:5px}.capture-shortcuts span{font-size:10px}.assistant-panel{grid-column:auto;min-height:165px!important}.assistant-panel-copy{width:67%}.assistant-panel::after{right:-27px}.summary-grid--rich li a{min-height:70px}
  .dashboard-top-grid--without-capture{grid-template-columns:1fr}.dashboard-top-grid--without-capture .assistant-panel{min-height:165px!important}
  .welcome { flex-direction: column; align-items: flex-start; }
  .welcome .date { text-align: left; }
  .manual-grid { grid-template-columns: 1fr; }
  .settings-groups { grid-template-columns: 1fr; }
  dialog.model-dialog { padding: 16px; }
  .detail-grid, .meta-grid { grid-template-columns: 1fr; }
  .block-form { align-items: stretch; flex-direction: column; }
  body { overflow-x: hidden; }
  .task, .inbox-row, .proj-row { flex-wrap: wrap; }
  .task-meta { overflow-wrap: anywhere; }
}
.card { border-color:#dceaf6; box-shadow:0 7px 20px rgba(54,108,151,.06); background:rgba(255,255,255,.92); }.section-head h2 { color:#143a68; }.task { border-color:#e5eef7; }.task:hover{background:#f5faff}
.tag{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:0;border-radius:6px;background:#f1f5f9;color:#60778d;font-size:12px;font-weight:650;line-height:1.15;white-space:nowrap}.tag-status{background:#eaf8f0;color:#198357}.tag-risk{background:#fff0f1;color:#c84b5e}.tag-warning{background:#fff4e4;color:#a96816}.tag-info{background:#eaf4ff;color:#2774b9}.primary,.primary-inline{background:#1877d3!important;border:0!important;color:#fff!important;box-shadow:0 3px 8px rgba(24,119,211,.16)}.primary:hover,.primary-inline:hover{background:#1267ba!important}.secondary{border-color:#d6e5f2!important;color:#356f9f!important;background:#fff!important}.secondary:hover{background:#f1f8ff!important}
.inbox-list{padding-top:2px;padding-bottom:2px}.inbox-item{padding:17px 0;border-top:1px solid #e5eef7}.inbox-item:first-child{border-top:0}.inbox-item .section-head{margin:0}.inbox-item .task-title{font-size:15px;line-height:1.45}.inbox-item .task-meta{margin-top:3px}.inbox-item .notice{margin:9px 0 0}.inbox-item .inbox-review{margin-top:11px}.project-progress-entry{margin-top:16px}.proj-row{padding:14px 4px}.proj-row .bar{max-width:120px}
.task-row{gap:14px}.task-title-link{color:inherit;text-decoration:none}.task-title-link:hover{text-decoration:underline;color:#176fbc}.task-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;flex:none}.task-row-actions form{margin:0}.task-row-actions button{width:auto;padding:5px 9px;font-size:12px}.task-row-actions .detail-link{padding:5px 2px;white-space:nowrap}
@media (max-width:720px){.task-row-actions{width:100%;justify-content:flex-start}.task-row-actions .detail-link{margin-left:auto}}

/* V3 workbench shell — a reusable visual system, not a dashboard-only skin. */
:root{--ink:#12345f;--navy:#083b73;--navy-hover:#0d4f92;--paper:#eaf5ff;--surface:#fff;--line:#dbeaf7;--muted:#6c86a4;--bean:#17b878;--bean-dark:#16885e;--cyan:#12c8d1;--shadow:0 10px 30px rgba(39,105,167,.10)}
body{background:linear-gradient(135deg,#f7fcff 0%,#e8f5ff 58%,#f5fbff 100%);color:var(--ink)}
.app{min-height:100svh}.sidebar{position:relative;isolation:isolate;width:250px;padding:18px 16px;overflow:hidden;background:radial-gradient(circle at 82% 4%,#1265ad 0,transparent 28%),linear-gradient(165deg,#073b73 0%,#082f5d 57%,#06274e 100%);box-shadow:8px 0 28px rgba(8,47,93,.14)}
.sidebar::before{content:"";position:absolute;inset:auto -42px -50px auto;width:190px;height:190px;border:1px solid rgba(77,196,255,.13);border-radius:50%;z-index:-1}.brand{padding:0 0 18px}.brand-lockup{border-radius:14px;border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 26px rgba(0,19,55,.25)}
.nav{gap:6px}.nav-item{height:46px;padding:0 14px;border-radius:13px;color:#cfe4ff;font-size:15px;transition:background .16s ease,color .16s ease,transform .16s ease}.nav-item:hover{background:rgba(83,167,235,.18);transform:translateX(2px)}.nav-item.active{background:linear-gradient(100deg,#1488ff,#10ced3);box-shadow:0 9px 18px rgba(11,179,238,.28)}.nav-icon{width:25px;margin-right:10px;font-size:19px}.nav-divider{background:rgba(187,223,255,.17);margin:12px 8px}.nav-secondary .nav-item{height:42px;color:#b9d4ef;font-size:14px}.sidebar-mascot{margin-top:auto;min-height:205px;background:url('/static/doudou-hero-v2.png') 90% 55%/580px auto no-repeat;filter:drop-shadow(0 12px 14px rgba(0,19,55,.22));pointer-events:none}
.main{width:min(100%,1540px);padding:18px 28px 34px}.topbar{height:48px;margin-bottom:18px}.crumb{min-width:220px}.crumb-home{width:36px;height:36px;background:#fff;color:#1879dc;font-size:19px}.top-search{max-width:510px;height:44px;border-radius:22px;background:rgba(255,255,255,.94);border-color:#dcecf9;box-shadow:0 5px 18px rgba(56,128,192,.06)}.top-actions{gap:9px}.top-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:linear-gradient(145deg,#fde2bd,#79cfef);border:2px solid #fff;color:#164f82;font-size:12px;box-shadow:0 3px 10px rgba(30,99,157,.17)}
.hero-banner{min-height:222px;border-radius:19px;background-image:url('/static/doudou-hero-v2.png');background-position:center;background-size:cover;box-shadow:0 15px 34px rgba(49,127,194,.13)}.hero-copy{width:52%;padding:27px 36px}.hero-kicker{color:#1677df}.hero-copy h1{font-size:43px;color:#123a70}.hero-copy>p:not(.hero-kicker){font-size:17px;color:#35689c}.hero-pills{gap:7px}.hero-pills span{border-radius:16px;background:rgba(255,255,255,.78);color:#24624c;padding:5px 10px}
.dashboard-intro{margin:13px 4px 11px}.dashboard-top-grid--without-capture{grid-template-columns:minmax(0,1.18fr) minmax(340px,.92fr);max-width:none;gap:16px}.dashboard-top-grid--without-capture .card{min-height:214px}.card,.settings-group{border-color:#dcebf7;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.workspace-card{padding:19px 20px}.section-head h2{font-size:18px;color:#123d72}.section-icon{width:34px;height:34px;border-radius:12px;background:#e8f5ff;color:#1677df}.summary-panel,.assistant-panel{padding:18px 19px}.summary-grid--rich{grid-template-columns:repeat(4,1fr);gap:9px}.summary-grid--rich li a{min-height:78px;border-radius:13px;padding:11px 10px 8px;background:linear-gradient(145deg,#fff,#f2f9ff)}.summary-grid--rich b{margin:4px 0 0 29px;color:#123b73}.summary-symbol{top:11px;left:10px}.summary-quote{margin-top:10px;border-radius:11px;background:#f2f8ff}.assistant-panel{background:linear-gradient(135deg,#fff 24%,#ecfaff 100%)}.assistant-panel::after{width:178px;height:170px;right:-36px;bottom:-43px;background-image:url('/static/doudou-hero-v2.png');background-position:88% 51%;background-size:610px auto}.assistant-panel-copy{width:61%}.assistant-panel h3{font-size:19px}.assistant-panel-action{width:auto;min-width:154px;margin-top:14px;border-radius:10px;background:#fff;color:#1677df}
.focus-grid{grid-template-columns:minmax(0,1.35fr) minmax(340px,.9fr);gap:16px}.focus-main,.focus-side{gap:16px}.focus-grid .card{margin-bottom:0}.task,.proj-row,.activity-row{padding:12px 6px;border-color:#e7f0f8}.task-title{color:#173f70;font-weight:700}.task-meta{color:#7189a5}.task-link:hover,.proj-link:hover{background:#f4faff}.detail-link{color:#1677df}.tag{border-radius:7px;padding:4px 8px;background:#eef5fb;color:#607b98;font-weight:700}.tag-status{background:#e5f9ef;color:#16885e}.tag-risk{background:#fff0f1;color:#ce5064}.tag-warning{background:#fff4e3;color:#aa711e}.tag-info{background:#e9f3ff;color:#2675be}
.page-header{margin:7px 2px 17px}.page-header h1{font-size:30px;color:#123d72}.page-header p{color:#7189a5}.smart-views{gap:7px;padding-bottom:12px;border-color:#e4eef7}.smart-views a{padding:6px 11px;border-radius:10px}.smart-views a.active{background:#e3f3ff;color:#1476d1}.inline-create{border-color:#dcebf7;border-radius:12px;background:#f7fbff}.filter-bar{background:#f6fbff;border-color:#dcebf7}.inbox-list{box-shadow:var(--shadow)}.inbox-item{padding:16px 1px}.settings-groups{gap:16px}.settings-group{padding:18px 19px}.settings-group-head{color:#123d72}.settings-group-action{color:#1677df}.stat-item{border-color:#dcebf7;background:#fff;box-shadow:0 7px 18px rgba(39,105,167,.06)}
.primary,.primary-inline{border-radius:9px!important}.secondary{border-radius:9px!important}.doudou-drawer-panel{background:#fff;border-color:#dcebf7}.doudou-status{background:#fff7e8;color:#93611a}.command-palette{background:#fff;border-color:#dcebf7}
@media (max-width:1100px){.sidebar{width:214px;padding:16px 13px}.main{padding:16px 20px 30px}.crumb{min-width:170px}.dashboard-top-grid--without-capture{grid-template-columns:1fr 1fr}.focus-grid{grid-template-columns:1fr}.focus-side{grid-template-columns:1fr 1fr}.sidebar-mascot{min-height:165px;background-size:510px auto}.hero-copy{width:58%;padding:24px}.hero-copy h1{font-size:38px}}
@media (max-width:720px){.sidebar{width:100%;min-height:auto;padding:13px 14px}.brand{padding-bottom:10px}.brand-lockup{width:min(210px,58vw)}.sidebar-mascot{display:none}.nav{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px}.nav-secondary{display:flex}.nav-divider{width:1px;height:28px;margin:8px 4px}.nav-item,.nav-secondary .nav-item{height:40px;flex:none;padding:0 11px;font-size:13px}.nav-icon{width:auto;margin-right:6px;font-size:16px}.main{padding:13px 14px 26px}.topbar{margin-bottom:13px}.top-actions{margin-left:auto}.top-user{display:none}.top-search{order:3;flex-basis:100%;max-width:none}.hero-banner{min-height:190px;background-position:61% center}.hero-copy{width:72%;padding:20px}.hero-copy h1{font-size:31px}.hero-copy>p:not(.hero-kicker){font-size:14px}.hero-pills span{font-size:10px;padding:4px 7px}.dashboard-top-grid--without-capture,.focus-grid,.focus-side,.settings-groups{grid-template-columns:1fr}.summary-grid--rich{grid-template-columns:1fr 1fr}.assistant-panel-copy{width:61%}.page-header h1{font-size:27px}.workspace-card{padding:16px}.task-row-actions{gap:6px}.task-row-actions form button{padding:6px 8px}.filter-bar{flex-wrap:wrap}.filter-bar select{flex:1}}

/* Compact assistant card: the character is an intentional entry point, not a generic illustration. */
.assistant-panel{min-height:216px!important;padding:17px 18px!important;background:linear-gradient(135deg,#fff 16%,#effaff 100%)}
.assistant-panel::after{width:202px!important;height:186px!important;right:-13px!important;bottom:-7px!important;background:url('/static/doudou-assistant-v1.png') right bottom/contain no-repeat!important;filter:drop-shadow(0 9px 12px rgba(37,105,158,.14))}
.assistant-panel-copy{width:59%!important}.assistant-panel h3{margin:5px 0 2px!important;font-size:20px!important;letter-spacing:-.03em}.assistant-panel p{font-size:13px!important;line-height:1.45!important}.assistant-offline{position:relative;z-index:2;background:#fff7e8;color:#a06c1d!important}.assistant-quick-actions{position:relative;z-index:2;display:flex;gap:6px;margin-top:13px;width:calc(100% - 2px)}
.assistant-quick-actions button{min-width:0;flex:1;padding:7px 6px;border:1px solid #d8eafb;border-radius:9px;background:#f8fcff;color:#2675be;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap}.assistant-quick-actions button:hover,.assistant-quick-actions button:focus-visible{border-color:#8bc9f7;background:#eaf7ff;outline:0}
@media (max-width:1100px){.assistant-panel::after{width:185px!important}.assistant-panel-copy{width:62%!important}}
@media (max-width:720px){.assistant-panel{min-height:196px!important}.assistant-panel::after{width:136px!important;height:132px!important;right:2px!important;bottom:0!important}.assistant-panel-copy{width:64%!important}.assistant-panel h3{font-size:18px!important}.assistant-panel p{font-size:12px!important}.assistant-quick-actions{width:64%;gap:4px;margin-top:10px}.assistant-quick-actions button{padding:6px 3px;font-size:9px;overflow:hidden;text-overflow:ellipsis}}

/* Portrait/sidebar fit: never crop a panoramic hero into the navigation rail. */
.assistant-panel::after{width:164px!important;height:148px!important;right:4px!important;bottom:2px!important}
.assistant-panel-copy{width:66%!important}.assistant-quick-actions{width:66%}
@media (max-width:1100px){.assistant-panel::after{width:150px!important;height:136px!important}.assistant-panel-copy,.assistant-quick-actions{width:66%!important}}
@media (max-width:720px){.assistant-panel-copy{width:67%!important}.assistant-quick-actions{width:67%!important}}

/* Sidebar footer and drawer share the same approved rabbit IP as the assistant card. */
.sidebar-footer-art{position:relative;display:block;overflow:hidden;min-height:184px;margin-top:auto;padding:18px 14px;border:1px solid rgba(164,220,255,.17);border-radius:18px;background:linear-gradient(145deg,rgba(26,106,177,.33),rgba(4,38,79,.22));box-shadow:inset 0 1px rgba(255,255,255,.08)}
.sidebar-footer-copy{position:relative;z-index:1;display:grid;gap:2px;width:57%;color:#fff}.sidebar-footer-copy strong{font-size:16px;letter-spacing:.03em}.sidebar-footer-copy span{font-size:11px;line-height:1.45;color:#cfe8ff}.sidebar-footer-rabbit{position:absolute;right:-10px;bottom:-5px;width:150px;height:142px;background:url('/static/doudou-assistant-v1.png') right bottom/contain no-repeat;filter:drop-shadow(0 10px 12px rgba(0,18,51,.3))}
.doudou-avatar{width:42px;height:37px;object-fit:contain;object-position:center;background:linear-gradient(145deg,#edf8ff,#d9f4ff);border:1px solid #d5ebfb;border-radius:12px}.doudou-empty-art{width:160px;height:126px;background:url('/static/doudou-assistant-v1.png') center bottom/contain no-repeat}.doudou-empty{margin-top:28px}.doudou-drawer-head{background:linear-gradient(135deg,#fff,#f0faff)}.doudou-drawer-brand{color:#123d72}
@media (max-width:1100px){.sidebar-footer-art{min-height:160px;padding:15px 11px}.sidebar-footer-rabbit{width:132px;height:124px}.sidebar-footer-copy{width:62%}}
@media (max-width:720px){.sidebar-footer-art{display:none}}

@media (min-width:721px){.sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto}.sidebar-footer-art{flex:none}}

/* V4 practical focus layout — dense, actionable, and reusable across future modules. */
.main{flex:1;min-width:0;width:auto;max-width:1540px;margin:0 auto}.nav-item[href="/"] .nav-label::after{content:"聚焦"}.crumb b{display:flex;align-items:baseline;gap:14px}.crumb-date{color:#7890ab;font-size:12px;font-weight:600;white-space:nowrap}
.crumb-home{text-decoration:none}.crumb-home:hover{background:#edf8ff;color:#086fd2}.crumb-home:focus-visible{outline:3px solid rgba(21,133,236,.35);outline-offset:3px}
.sidebar-footer-art{min-height:222px;padding:16px 13px}.sidebar-footer-copy{width:100%}.sidebar-footer-copy strong{font-size:15px}.sidebar-footer-copy span{width:62%;font-size:10px}.sidebar-footer-rabbit{right:-3px;bottom:34px;width:168px;height:155px}.sidebar-assistant-button{position:absolute;right:12px;bottom:11px;left:12px;z-index:2;height:34px;border:1px solid rgba(197,231,255,.75);border-radius:10px;background:#eefaff;color:#1672bd;font-size:11px;font-weight:750;box-shadow:0 5px 12px rgba(0,28,66,.17)}.sidebar-assistant-button:hover{background:#fff}
.focus-overview{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 35%;min-height:214px;margin-bottom:15px;overflow:hidden;border:1px solid #d9eafa;border-radius:19px;background:linear-gradient(125deg,#fff 0%,#f5fbff 58%,#dff3ff 100%);box-shadow:0 10px 28px rgba(39,105,167,.09)}
.focus-overview-main{position:relative;z-index:2;padding:17px 18px 15px}.focus-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.overview-kicker{margin:0;color:#237cc9;font-size:12px;font-weight:750}.focus-overview h1{margin:1px 0 9px;color:#103a70;font-size:25px;line-height:1.25;letter-spacing:-.04em}.overview-date{margin-top:4px;color:#6d86a2;font-size:12px;font-weight:650}
.focus-overview-art{min-width:0;background:url('/static/doudou-hero-v2.png') 88% 51%/720px auto no-repeat;filter:saturate(.97)}
.overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-right:-10px}.overview-stats>a{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:center;min-width:0;padding:7px 13px;border-right:1px solid #e1edf7;text-decoration:none}.overview-stats>a:first-child{padding-left:0}.overview-stats>a:last-child{border-right:0}.overview-stats>a:hover small{color:#1377d1}.overview-stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:19px;font-weight:800}.overview-stat-icon.blue{color:#207dec;background:#e9f3ff}.overview-stat-icon.green{color:#0aaa71;background:#e5faef}.overview-stat-icon.amber{color:#ef971e;background:#fff3df}.overview-stat-icon.violet{color:#6654e9;background:#eeecff}.overview-stats a>span:last-child{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:7px}.overview-stats small{grid-column:1/-1;color:#5c7693;font-size:12px}.overview-stats b{color:#123b70;font-size:23px;line-height:1.05}.overview-stats em{overflow:hidden;color:#8aa0b7;font-size:10px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}
.focus-insight{display:grid;grid-template-columns:24px auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:9px;padding:8px 11px;border-radius:10px;background:rgba(233,246,255,.88);color:#587594;font-size:11px;text-decoration:none}.focus-insight strong{color:#174874}.focus-insight>span:nth-of-type(2){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.focus-insight>b{color:#1778cc;font-size:11px;white-space:nowrap}
.workbench-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.84fr) minmax(290px,.9fr);grid-template-areas:"now waiting projects" "today stuck stuck";gap:15px;margin-bottom:15px;align-items:start}.workbench-grid>.card{margin:0}.wb-now{grid-area:now}.wb-today{grid-area:today}.wb-waiting{grid-area:waiting}.wb-projects{grid-area:projects}.wb-stuck{grid-area:stuck}.workspace-card{padding:15px 17px}.workbench-grid .section-head{margin-bottom:5px}.section-head h2{display:flex;align-items:center;min-width:0;font-size:16px;letter-spacing:-.02em}.section-head h2 small{margin-left:5px;color:#7f96af;font-size:12px;font-weight:600}.section-icon{flex:none;width:30px;height:30px;margin-right:7px;border-radius:10px;font-size:16px}.cyan-icon{color:#08a7b9!important;background:#e3fafb!important}.amber-icon{color:#d98715!important;background:#fff2de!important}.violet-icon{color:#6354dc!important;background:#edebff!important}.risk-icon{color:#d75568!important;background:#ffedef!important}
.compact-work-list,.project-focus-list{display:grid}.work-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto 10px;gap:8px;align-items:center;min-width:0;padding:9px 1px;border-top:1px solid #e8f0f7;color:inherit;text-decoration:none}.work-row:first-child{border-top:0}.work-row:hover strong{color:#1674c6}.work-check{display:grid;place-items:center;width:20px;height:20px;border:1.5px solid #83a8ce;border-radius:6px;color:transparent;font-size:11px;font-weight:800}.work-check.done{border-color:#23bc80;background:#23bc80;color:#fff;border-radius:50%}.work-check.risk{border-color:#ff7b86;background:#ffedf0;color:#df5260;border-radius:50%}.work-kind{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#edf3ff;color:#625fe3;font-size:11px;font-weight:800}.work-kind.mail{color:#247bc5;background:#e7f4ff}.work-kind.blocked{color:#d64d61;background:#ffebee}.work-copy{display:block;min-width:0}.work-copy strong{display:block;overflow:hidden;color:#143b6a;font-size:13px;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}.work-copy small{display:block;overflow:hidden;margin-top:2px;color:#7b91a9;font-size:10px;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}.work-row .tag{max-width:78px;overflow:hidden;font-size:10px;text-overflow:ellipsis}.row-arrow{color:#7e9bbb;font-size:18px}.compact-empty{margin:7px 0 2px;padding:14px;border-radius:10px;background:#f7fbff;font-size:12px;text-align:center}
.project-focus-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 1px;border-top:1px solid #e8f0f7;text-decoration:none}.project-focus-row:first-child{border-top:0}.project-focus-row:hover strong{color:#1674c6}.project-focus-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(145deg,#2684f1,#4a66e7);color:#fff;font-weight:800}.project-focus-copy{display:grid;min-width:0}.project-focus-copy strong{overflow:hidden;color:#143b6a;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.project-focus-copy small{overflow:hidden;color:#7b91a9;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.project-mini-progress{height:5px;margin-top:5px;overflow:hidden;border-radius:5px;background:#e5edf5}.project-mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#11b99a,#20bfe0)}.project-focus-meta{display:grid;justify-items:end;gap:3px}.project-focus-meta em{font-size:9px;font-style:normal}.project-focus-meta b{color:#5d7795;font-size:10px}
.workbench-support-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.55fr);gap:15px;margin-bottom:15px}.workbench-support-grid>.card{margin:0}.summary-compact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.summary-compact-grid a{display:grid;place-items:center;min-width:0;padding:11px 4px;border-radius:11px;background:#f2f8fe;text-decoration:none}.summary-compact-grid a:hover{background:#e7f4ff}.summary-compact-grid b{color:#123e72;font-size:21px}.summary-compact-grid span{color:#7088a4;font-size:10px}
.assistant-workspace{position:relative;display:flex;align-items:center;min-height:146px;margin:0;overflow:hidden;padding:15px 18px 15px 168px;background:linear-gradient(115deg,#f5fcff,#fff 55%,#eefaff)}.assistant-workspace-art{position:absolute;bottom:-2px;left:4px;width:160px;height:144px;background:url('/static/doudou-assistant-v1.png') center bottom/contain no-repeat}.assistant-workspace-copy{min-width:0;width:100%}.assistant-title{display:flex;align-items:center;gap:7px}.assistant-title strong{color:#113b70;font-size:14px}.assistant-title span{color:#7790ab;font-size:10px}.assistant-title em{margin-left:auto;padding:3px 8px;border-radius:10px;background:#fff5df;color:#9a681c;font-size:9px;font-style:normal}.assistant-workspace h2{margin:5px 0 0;color:#133b70;font-size:19px}.assistant-workspace p{margin:1px 0 8px;color:#7188a2;font-size:11px}.assistant-workspace-actions{display:flex;gap:6px;overflow-x:auto}.assistant-workspace-actions button{flex:none;padding:6px 9px;border:1px solid #d5e8f8;border-radius:9px;background:#fff;color:#2375bc;font-size:10px;font-weight:700}.assistant-workspace-actions button:hover{background:#edf8ff}
.workbench-bottom-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:15px}.workbench-bottom-grid>.card{margin:0}.workbench-bottom-grid>.quick-tools-card:only-child{grid-column:1/-1}.quick-tool-links{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.quick-tool-links a{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:8px;align-items:center;padding:9px;border:1px solid #e4eef7;border-radius:11px;background:#f8fbff;text-decoration:none}.quick-tool-links a:hover{border-color:#b9daf5;background:#eff8ff}.quick-tool-links a>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e6f3ff;color:#1978d3;font-weight:800}.quick-tool-links b{overflow:hidden;color:#17436f;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.quick-tool-links small{overflow:hidden;color:#8297ad;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.quality-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 1px;border-top:1px solid #e8f0f7;text-decoration:none}.quality-row span{display:grid;min-width:0}.quality-row strong{overflow:hidden;color:#173f6b;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.quality-row small{color:#879bb0;font-size:9px}.quality-row>b{color:#1778cc;font-size:10px;white-space:nowrap}
@media (max-width:1100px){.focus-overview{grid-template-columns:minmax(0,1fr) 30%}.overview-stats>a{grid-template-columns:36px 1fr;padding-inline:8px}.overview-stat-icon{width:35px;height:35px}.workbench-grid{grid-template-columns:1fr 1fr;grid-template-areas:"now waiting" "today projects" "stuck stuck"}.workbench-support-grid{grid-template-columns:1fr}.quick-tool-links{grid-template-columns:repeat(3,1fr)}.assistant-workspace{min-height:142px}.sidebar-footer-art{min-height:205px}.sidebar-footer-rabbit{width:150px;height:140px}}
@media (max-width:720px){.main{width:100%;max-width:none;margin:0}.crumb b{display:block}.crumb-date{display:none}.focus-overview{grid-template-columns:1fr;min-height:0}.focus-overview-main{padding:15px}.focus-overview-art{display:none}.overview-date{display:none}.overview-stats{grid-template-columns:1fr 1fr;margin:0}.overview-stats>a,.overview-stats>a:first-child{padding:7px;border-right:0;border-top:1px solid #e6f0f7}.overview-stats>a:nth-child(odd){border-right:1px solid #e6f0f7}.focus-insight{grid-template-columns:22px auto 1fr;margin-top:7px}.focus-insight>b{display:none}.workbench-grid{grid-template-columns:1fr;grid-template-areas:"now" "today" "waiting" "projects" "stuck"}.workspace-card{padding:14px}.workbench-support-grid,.workbench-bottom-grid{grid-template-columns:1fr}.assistant-workspace{min-height:210px;padding:15px 13px 116px}.assistant-workspace-art{left:auto;right:3px;width:125px;height:112px}.assistant-workspace-actions{position:absolute;right:12px;bottom:13px;left:12px}.summary-compact-grid{grid-template-columns:repeat(4,1fr)}.quick-tool-links{grid-template-columns:1fr 1fr}.work-row{grid-template-columns:22px minmax(0,1fr) auto}.work-row .row-arrow{display:none}.work-row .tag{max-width:64px}.section-head h2{font-size:15px}}

/* 首页收纳规则：助手只在侧栏与顶部主视觉出现；快捷操作贴近搜索。 */
.top-quick-tools{display:flex;align-items:center;gap:5px;flex:none}.top-quick-tools a{height:34px;display:grid;place-items:center;padding:0 9px;border:1px solid #d8e9f7;border-radius:9px;background:#fff;color:#42749d;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.top-quick-tools a:first-child{border-color:#aad8f8;background:#edf8ff;color:#1676c6}.top-quick-tools a:hover{border-color:#8bc7ef;background:#eff9ff;color:#1476cf}
.focus-overview-art{position:relative;min-height:212px}.overview-assistant-entry{position:absolute;right:12px;bottom:11px;display:flex;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px 7px;border:1px solid rgba(207,231,249,.9);border-radius:11px;background:rgba(255,255,255,.88);box-shadow:0 5px 13px rgba(34,92,137,.1);backdrop-filter:blur(3px)}.overview-assistant-entry span{overflow:hidden;color:#15436e;font-size:10px;font-weight:800;white-space:nowrap}.overview-assistant-entry em{color:#9b681b;font-size:8px;font-style:normal;white-space:nowrap}.overview-assistant-entry button{padding:5px 7px;border:0;border-radius:7px;background:#e6f4ff;color:#1472bc;font-size:9px;font-weight:750;white-space:nowrap}.overview-assistant-entry button:hover{background:#cfeeff}.quality-strip{margin-top:15px}.quality-strip .section-head{margin-bottom:2px}.top-quick-tools summary::marker{content:""}
@media (max-width:1100px){.top-quick-tools a{padding:0 7px;font-size:10px}.top-quick-tools a:nth-child(4){display:none}}
@media (max-width:720px){.top-quick-tools{order:4;flex-basis:100%;overflow-x:auto;padding-bottom:1px}.top-quick-tools a{height:32px;padding:0 9px}.top-search{order:3}.focus-overview-art{display:block;height:48px;background:none}.overview-assistant-entry{right:12px;bottom:8px;left:12px;justify-content:flex-end}.overview-assistant-entry span{margin-right:auto}.overview-assistant-entry em{font-size:9px}.overview-assistant-entry button{font-size:10px}}

/* 首页一屏总览：首屏只保留决策所需的密度，完整清单进入各自页面。 */
@media (min-width:1101px){
  .sidebar{overflow-y:hidden}
  .sidebar-footer-art{min-height:190px;padding:13px 12px}.sidebar-footer-rabbit{width:148px;height:136px;bottom:31px}.sidebar-footer-copy strong{font-size:14px}.sidebar-footer-copy span{font-size:9px}.sidebar-assistant-button{height:32px}
  .main{padding-top:14px;padding-bottom:18px}
  .topbar{height:44px;margin-bottom:12px}
  .focus-overview{min-height:166px;margin-bottom:11px;border-radius:17px}
  .focus-overview-main{padding:12px 16px 10px}
  .focus-overview-art{min-height:166px;background-size:610px auto}
  .focus-overview h1{margin:0 0 6px;font-size:22px}
  .overview-kicker{font-size:11px}.overview-date{font-size:11px}
  .overview-stats>a{grid-template-columns:34px minmax(0,1fr);gap:7px;padding:4px 10px}
  .overview-stat-icon{width:33px;height:33px;border-radius:10px;font-size:16px}
  .overview-stats small{font-size:10px}.overview-stats b{font-size:19px}.overview-stats em{font-size:9px}
  .focus-insight{display:flex;align-items:center;gap:7px;margin-top:6px;padding:0;background:transparent}
  .focus-insight-main{display:grid;grid-template-columns:19px auto minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0;flex:1;padding:6px 9px;border-radius:9px;background:rgba(233,246,255,.88);color:#587594;font-size:10px;text-decoration:none}
  .focus-insight-main>span:nth-of-type(2){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.focus-insight-main strong{color:#174874}.focus-insight-main b{color:#1778cc;font-size:10px;white-space:nowrap}
  .focus-quality{display:block;max-width:260px;overflow:hidden;padding:6px 8px;border:1px solid #ffe3aa;border-radius:9px;background:#fff9ec;color:#a46e13;font-size:10px;font-weight:700;white-space:nowrap;text-decoration:none;text-overflow:ellipsis}
  .workbench-grid{min-height:calc(100svh - 278px);grid-template-areas:"now waiting projects" "now today stuck";grid-template-rows:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:0;align-items:stretch}
  .workspace-card{padding:11px 14px;border-radius:15px}.workbench-grid .workspace-card{display:flex;flex-direction:column}.workbench-grid .compact-work-list,.workbench-grid .project-focus-list{flex:1}.workbench-grid .section-head{margin-bottom:2px}
  .workbench-grid .compact-work-list,.workbench-grid .project-focus-list{align-content:start}
  .section-head h2{font-size:15px}.section-icon{width:27px;height:27px;margin-right:6px;border-radius:9px;font-size:14px}.section-head h2 small{font-size:11px}
  .work-row{grid-template-columns:21px minmax(0,1fr) auto 8px;gap:6px;padding:6px 1px}.work-check{width:18px;height:18px}.work-kind{width:19px;height:19px}
  .work-copy strong{font-size:12px}.work-copy small{margin-top:0;font-size:9px}.work-row .tag{font-size:9px}.row-arrow{font-size:15px}
  .workbench-grid .compact-work-list,.workbench-grid .project-focus-list{min-height:0}.workbench-grid .compact-empty{display:grid;align-content:center;justify-items:center;gap:7px;min-height:calc(100% - 31px);margin:3px 0 0;padding:12px;border:1px dashed #dbeaf6;background:linear-gradient(135deg,#fbfdff,#f1f8ff);font-size:11px}.compact-empty a{padding:4px 8px;border:1px solid #d3e8f8;border-radius:8px;background:#fff;color:#287ac3;font-size:10px;font-weight:700;text-decoration:none}.compact-empty a:hover{border-color:#9cd1f3;background:#eff9ff}.project-focus-row{grid-template-columns:27px minmax(0,1fr) auto;gap:7px;padding:6px 1px}.project-focus-icon{width:26px;height:26px;border-radius:8px;font-size:11px}.project-focus-copy strong{font-size:11px}.project-focus-copy small{font-size:8px}.project-mini-progress{height:4px;margin-top:3px}
  .overview-assistant-entry{right:10px;bottom:8px;padding:5px 6px}.overview-assistant-entry button{padding:4px 6px}
}

@media (max-width:1100px){.focus-insight-main{color:inherit;text-decoration:none}.focus-quality{display:block;margin-top:6px;padding:7px 9px;border:1px solid #ffe3aa;border-radius:9px;background:#fff9ec;color:#a46e13;font-size:11px;font-weight:700;text-decoration:none}}

/* 收件箱是唯一的网页端智能整理入口；不与 Hermes 对话入口竞争。 */
.smart-intake{border-color:#cce7f8;background:linear-gradient(135deg,#fbfeff,#eefaff)}.smart-intake summary{color:#136fbd}.smart-intake summary span{margin-left:5px;color:#7895ae;font-size:11px;font-weight:600}.smart-intake-copy{padding:0 13px 10px;color:#647f9b;font-size:12px;line-height:1.55}.smart-intake .manual-grid{padding-top:4px}.smart-intake-fallback{display:flex!important;align-items:center;gap:5px;color:#738ca6;font-size:12px}.smart-intake-fallback input{width:14px;height:14px;accent-color:#2182da}
.smart-fill-area{display:grid!important;align-self:start;align-content:start;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px;border:1px solid #d5ebfa;border-radius:11px;background:linear-gradient(135deg,#fbfeff,#f0faff)}.smart-fill-area textarea{min-height:62px;resize:vertical}.smart-fill-actions{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0}.smart-fill-actions button{flex:none;width:auto!important}.smart-fill-actions small{min-width:0;color:#718ba5;font-size:11px;line-height:1.35}@media (max-width:720px){.smart-fill-actions{align-items:flex-start;flex-direction:column;gap:5px}}

/* 备忘录：像工作台中的便签，而不是另一套任务管理器。 */
.memo-page-head{align-items:center}.memo-count{padding:6px 10px;border-radius:10px;background:#eaf5ff;color:#3176af;font-size:12px;font-weight:700;white-space:nowrap}.memo-workspace{margin-bottom:15px}.memo-workspace .section-head{align-items:flex-start;margin-bottom:10px}.memo-workspace .section-head>div{display:grid;gap:2px}.memo-capture{display:grid;gap:9px}.memo-capture input,.memo-capture textarea,.memo-capture select,.memo-search input{width:100%;border:1px solid #d7e8f6;border-radius:10px;background:#fbfdff;color:#173f70}.memo-capture input{height:42px;padding:0 12px;font-size:15px;font-weight:700}.memo-capture textarea{padding:10px 12px;resize:vertical;line-height:1.55}.memo-capture input:focus,.memo-capture textarea:focus,.memo-capture select:focus,.memo-search input:focus{outline:0;border-color:#78bdf0;box-shadow:0 0 0 3px rgba(33,134,218,.12)}.memo-capture-actions{display:flex;align-items:center;gap:9px}.memo-capture-actions select{width:auto;min-width:220px;height:35px;padding:0 9px;font-size:12px}.memo-pin-check{display:flex;align-items:center;gap:4px;color:#557796;font-size:12px;font-weight:700;white-space:nowrap}.memo-pin-check input{width:15px;height:15px;accent-color:#1478d4}.memo-capture-actions .primary-inline{margin-left:auto;width:auto;padding:8px 14px;white-space:nowrap}.memo-list-card{min-height:270px}.memo-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:3px}.memo-list-toolbar .smart-views{margin:0;padding:0;border:0}.memo-search{display:flex;gap:6px}.memo-search input{min-width:210px;height:34px;padding:0 9px;font-size:12px}.memo-search .secondary{width:auto;padding:6px 10px;font-size:12px}.memo-list{display:grid}.memo-item{padding:15px 2px;border-top:1px solid #e5eef7}.memo-item:first-child{border-top:0}.memo-item--pinned{background:linear-gradient(90deg,rgba(234,248,255,.72),transparent 52%);margin-inline:-5px;padding-inline:7px;border-radius:11px}.memo-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.memo-title-wrap{display:flex;min-width:0;align-items:center;gap:6px}.memo-title-wrap h3{overflow-wrap:anywhere;margin:0;color:#163f70;font-size:15px;line-height:1.4}.memo-pin{color:#19ad7b;font-size:11px}.memo-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;color:#8297ad;font-size:11px;text-align:right}.memo-body{max-width:850px;margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#597491;font-size:13px;line-height:1.65}.memo-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.memo-actions form{margin:0}.memo-actions button{width:auto;padding:5px 9px;font-size:11px}.memo-actions .danger{width:auto;padding:5px 9px;font-size:11px}.memo-edit{margin-left:2px}.memo-edit summary{cursor:pointer;color:#2675be;font-size:11px;font-weight:700}.memo-edit .manual-grid{width:min(650px,100%);margin-top:8px;padding:11px;border:1px solid #dcebf7;border-radius:10px;background:#f8fcff}.memo-empty{display:grid;justify-items:center;gap:5px;min-height:170px;padding:48px 15px;text-align:center;color:#7890aa;background:linear-gradient(135deg,#fbfdff,#f0f8ff);border:1px dashed #d7e9f6;border-radius:13px}.memo-empty b{color:#35678f;font-size:14px}
@media (max-width:720px){.memo-page-head{align-items:flex-start;flex-direction:column}.memo-capture-actions{align-items:stretch;flex-wrap:wrap}.memo-capture-actions select{width:100%;min-width:0;flex-basis:100%}.memo-capture-actions .primary-inline{margin-left:0}.memo-list-toolbar{align-items:stretch;flex-direction:column}.memo-list-toolbar .smart-views{width:100%}.memo-search input{min-width:0}.memo-search{width:100%}.memo-search input{flex:1}.memo-item-head{align-items:flex-start;flex-direction:column;gap:5px}.memo-meta{justify-content:flex-start;text-align:left}.memo-actions{margin-top:9px}.memo-edit{flex-basis:100%}}

/* 备忘录保持一件事一行：记录区只承担输入，列表只承担浏览与轻编辑。 */
.memo-workspace{padding:13px 15px}.memo-capture{gap:7px}.memo-capture .memo-smart-fill{padding:8px 10px}.memo-smart-fill textarea{min-height:44px}.memo-smart-fill .form-label{font-size:12px}.memo-smart-fill .smart-fill-actions{justify-content:space-between}.memo-capture input{height:38px;font-size:14px}.memo-capture textarea{padding:8px 10px;font-size:13px}.memo-capture-actions{margin-top:1px}.memo-list-card{padding:11px 15px}.memo-item{padding:11px 1px}.memo-body{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin-top:4px;font-size:12px;line-height:1.5}.memo-actions{margin-top:7px}.memo-edit .manual-grid{margin-bottom:3px}.memo-count{background:#edf8ff}
