:root {
  --ink: #172238;
  --muted: #6d788d;
  --line: #e2e7ef;
  --paper: #ffffff;
  --page: #f5f7fb;
  --navy: #122748;
  --blue: #3d6ff2;
  --blue-soft: #eef3ff;
  --cyan: #32a9b5;
  --green: #2e9e7b;
  --violet: #8069dc;
  --amber: #d99b35;
  --danger: #c74c58;
  --shadow: 0 18px 48px rgba(27, 44, 76, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; }

.workspace { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar {
  position: fixed;
  z-index: 40;
  inset: 0 auto 0 0;
  width: 248px;
  display: flex;
  flex-direction: column;
  padding: 24px 17px 19px;
  border-right: 1px solid #e1e6ef;
  background: #fff;
}
.side-head { display: flex; align-items: center; justify-content: space-between; padding: 0 7px 24px; }
.note-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.note-mark {
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(145deg, #17376f, var(--blue), var(--cyan));
  box-shadow: 0 8px 20px rgba(61, 111, 242, .18);
}
.note-mark svg { width: 22px; height: 22px; }
.note-brand strong { display: block; font-size: 17px; letter-spacing: .04em; }
.note-brand small { display: block; margin-top: 1px; color: #98a1b1; font-size: 8px; letter-spacing: .12em; }
.side-close { display: none; border: 0; background: transparent; color: #7e899d; font-size: 25px; }

.side-nav { display: grid; gap: 5px; }
.side-nav a {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 12px;
  border-radius: 11px;
  color: #5f6c82;
  text-decoration: none;
  font-size: 14px;
  font-weight: 620;
}
.side-nav a:hover { color: var(--blue); background: #f5f7fb; }
.side-nav a.active { color: #224fae; background: var(--blue-soft); }
.side-nav svg { width: 20px; height: 20px; flex: 0 0 auto; }

.side-section { margin-top: 28px; padding: 19px 10px; border-top: 1px solid #edf0f5; }
.side-section > span { display: block; margin-bottom: 10px; color: #98a1b0; font-size: 10px; font-weight: 780; letter-spacing: .14em; }
.side-section form { margin-top: 7px; }
.side-section button {
  width: 100%;
  min-height: 38px;
  border: 1px solid #e0e6f0;
  border-radius: 9px;
  color: #55647c;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
}
.side-section button:hover { color: var(--blue); border-color: #b9c8f5; background: #f7f9ff; }
.side-footer { margin-top: auto; display: grid; gap: 5px; padding: 16px 8px 0; border-top: 1px solid #edf0f5; }
.side-footer a, .side-footer button { min-height: 36px; display: flex; align-items: center; padding: 0 7px; border: 0; color: #7a8598; background: transparent; text-decoration: none; cursor: pointer; font-size: 12px; }
.side-footer a:hover, .side-footer button:hover { color: var(--blue); }
.side-mask { display: none; }
.workspace-main { grid-column: 2; min-width: 0; }
.mobile-head { display: none; }

.flash-stack { position: fixed; z-index: 80; top: 20px; right: 24px; display: grid; gap: 8px; }
.flash { min-width: 210px; padding: 11px 14px; border: 1px solid #cfe6dc; border-radius: 10px; color: #27684f; background: #f0faf5; box-shadow: var(--shadow); font-size: 13px; transition: opacity .3s ease, transform .3s ease; }
.flash.error { color: #9d3440; border-color: #f0cfd3; background: #fff4f5; }
.flash.hide { opacity: 0; transform: translateY(-8px); }

.dashboard-wrap { width: min(1180px, calc(100% - 64px)); margin: 0 auto; padding: 48px 0 75px; }
.dash-header { display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.dash-date { color: #8792a4; font-size: 12px; }
.dash-header h1 { margin: 5px 0 2px; font-size: clamp(27px, 3vw, 38px); line-height: 1.2; letter-spacing: -.025em; }
.dash-header p { margin: 0; color: var(--muted); }
.dash-search { width: min(430px, 45%); min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid #dce2ec; border-radius: 13px; background: #fff; }
.dash-search:focus-within { border-color: #aebff4; box-shadow: 0 0 0 3px rgba(61, 111, 242, .08); }
.dash-search svg { width: 19px; height: 19px; color: #7c889d; }
.dash-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; }
.dash-search kbd { padding: 2px 7px; border: 1px solid #e1e5ec; border-radius: 5px; color: #98a1b0; background: #f7f8fa; font-size: 11px; }

.quick-capture {
  min-height: 116px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-top: 34px;
  padding: 25px 28px;
  border: 1px solid #dce4f2;
  border-radius: 21px;
  background:
    radial-gradient(circle at 86% 0, rgba(92, 146, 255, .18), transparent 18rem),
    linear-gradient(135deg, #fff, #f7f9ff);
  box-shadow: 0 13px 38px rgba(33, 55, 93, .06);
}
.quick-capture > div:first-child { display: flex; align-items: center; gap: 15px; }
.quick-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: linear-gradient(135deg, var(--blue), var(--violet)); font-size: 22px; box-shadow: 0 9px 22px rgba(61, 111, 242, .2); }
.quick-capture strong { font-size: 16px; }
.quick-capture p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.quick-actions { display: flex; gap: 9px; }
.quick-actions button, .save-button {
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid #d7dfec;
  border-radius: 10px;
  color: #4d5c73;
  background: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
}
.quick-actions button:hover { color: var(--blue); border-color: #afc1f5; }
.quick-actions button.primary, .save-button { color: #fff; border-color: var(--blue); background: var(--blue); }
.quick-actions button.primary:hover, .save-button:hover { background: #2857cc; }

.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-top: 19px; }
.stat-grid > a, .stat-static { min-height: 92px; display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; text-decoration: none; }
.stat-grid > a:hover { border-color: #bbc9ee; box-shadow: 0 9px 24px rgba(40, 59, 94, .06); }
.stat-icon { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 13px; }
.stat-icon svg { width: 22px; height: 22px; }
.stat-icon.blue { color: var(--blue); background: #edf2ff; }
.stat-icon.violet { color: var(--violet); background: #f2efff; }
.stat-icon.green { color: var(--green); background: #eaf8f3; }
.stat-icon.amber { color: var(--amber); background: #fff6e7; }
.stat-grid strong { display: block; font-size: 23px; line-height: 1.15; }
.stat-grid div > span { color: var(--muted); font-size: 12px; }

.dash-columns { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr); gap: 19px; margin-top: 19px; align-items: start; }
.content-card { border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 9px 30px rgba(31, 47, 77, .045); }
.card-head { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 21px; border-bottom: 1px solid #edf0f4; }
.card-head h2 { margin: 0; font-size: 17px; }
.card-head span { color: #9099a9; font-size: 11px; }
.card-head a { color: var(--blue); text-decoration: none; font-size: 12px; }
.note-list { padding: 3px 12px 12px; }
.note-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-bottom: 1px solid #edf0f4; }
.note-row:last-child { border-bottom: 0; }
.note-main { min-width: 0; display: grid; grid-template-columns: 11px minmax(0, 1fr); gap: 13px; padding: 17px 8px; text-decoration: none; }
.note-main:hover h3 { color: var(--blue); }
.kind-dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--blue); }
.kind-dot.literature { background: var(--violet); }
.note-main h3 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; transition: color .15s ease; }
.note-main p { margin: 4px 0 6px; overflow: hidden; color: var(--muted); font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.note-meta { display: flex; gap: 12px; color: #929baa; font-size: 10px; }
.pin-label { margin-left: 7px; padding: 2px 6px; border-radius: 999px; color: #7b659f; background: #f0ebf8; font-size: 9px; font-weight: 600; }
.icon-button { width: 34px; height: 34px; border: 0; border-radius: 9px; color: #8a94a6; background: transparent; cursor: pointer; font-size: 18px; }
.icon-button:hover { color: var(--blue); background: #f2f5fb; }
.empty-state { padding: 70px 20px; color: var(--muted); text-align: center; }
.empty-state > span { font-size: 32px; }
.empty-state h3 { margin: 12px 0 4px; color: var(--ink); font-size: 16px; }
.empty-state p { margin: 0; font-size: 12px; }
.task-list { margin: 0; padding: 10px 18px; list-style: none; }
.task-list li { display: grid; grid-template-columns: 16px 1fr; gap: 10px; padding: 13px 0; border-bottom: 1px solid #edf0f4; }
.task-list li > span { width: 15px; height: 15px; margin-top: 2px; border: 1.5px solid #aeb8c8; border-radius: 4px; }
.task-list a { min-width: 0; text-decoration: none; }
.task-list strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.task-list small { color: #929baa; font-size: 10px; }
.empty-mini { padding: 35px 18px; color: #8995a7; text-align: center; }
.empty-mini span { display: inline-grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: var(--green); background: #eaf8f3; }
.empty-mini p { margin: 9px 0 0; font-size: 12px; }
.module-note { margin: 10px 15px 15px; padding: 16px; border-radius: 13px; color: #5e6d83; background: #f5f7fb; }
.module-note strong { color: var(--ink); font-size: 12px; }
.module-note p { margin: 5px 0 0; font-size: 11px; }

.editor-wrap { width: min(1320px, calc(100% - 54px)); margin: 0 auto; padding: 25px 0 70px; }
.editor-head { min-height: 48px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; }
.back-link { color: #66748a; text-decoration: none; font-size: 13px; }
.back-link:hover { color: var(--blue); }
.editor-state { display: flex; align-items: center; gap: 8px; color: #7c8799; font-size: 11px; }
.save-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.editor-state.saving .save-dot { background: var(--amber); animation: pulse 1s infinite; }
.editor-state.error .save-dot { background: var(--danger); }
@keyframes pulse { 50% { opacity: .35; } }
.editor-head-actions { justify-self: end; display: flex; gap: 7px; }
.quiet-button { min-height: 34px; padding: 0 12px; border: 1px solid #dce2eb; border-radius: 9px; color: #657188; background: #fff; cursor: pointer; font-size: 11px; }
.quiet-button:hover { color: var(--blue); border-color: #b9c8ef; }
.editor-form { margin-top: 10px; border: 1px solid #dde3ec; border-radius: 21px; background: #fff; box-shadow: 0 14px 42px rgba(28, 44, 73, .06); }
.editor-fields { padding: 23px 27px 18px; }
.title-input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: clamp(25px, 3vw, 37px); font-weight: 760; letter-spacing: -.025em; }
.title-input::placeholder { color: #bac2cf; }
.meta-row { display: grid; grid-template-columns: 155px minmax(0, 1fr) auto; gap: 9px; margin-top: 17px; }
.meta-row input, .meta-row select { min-height: 40px; padding: 0 12px; border: 1px solid #dce2eb; border-radius: 9px; color: #58677e; background: #f9fafc; outline: 0; font-size: 12px; }
.meta-row input:focus, .meta-row select:focus { border-color: #afc1f4; background: #fff; }
.save-button { min-height: 40px; }
.editor-toolbar { min-height: 48px; display: flex; align-items: center; gap: 5px; padding: 7px 24px; border-top: 1px solid #edf0f4; border-bottom: 1px solid #e5e9f0; background: #fafbfc; }
.editor-toolbar button { width: 32px; height: 31px; border: 0; border-radius: 7px; color: #5b697f; background: transparent; cursor: pointer; font-size: 12px; }
.editor-toolbar button:hover { color: var(--blue); background: #edf2ff; }
.editor-toolbar > span { margin-left: auto; color: #929baa; font-size: 10px; }
.editor-split { min-height: 560px; display: grid; grid-template-columns: 1fr 1fr; }
.writing-pane { min-width: 0; border-right: 1px solid #e4e8ee; }
.writing-pane textarea { width: 100%; height: 100%; min-height: 560px; display: block; resize: vertical; padding: 28px 30px; border: 0; outline: 0; color: #25334a; background: #fff; line-height: 1.75; font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 13px; }
.preview-pane { min-width: 0; overflow-wrap: anywhere; padding: 26px 32px; background: #fcfcfd; }
.preview-empty { padding: 70px 20px; color: #a4adba; text-align: center; font-size: 13px; }
.markdown-body { color: #2d3b52; font-size: 14px; line-height: 1.75; }
.markdown-body h1, .markdown-body h2, .markdown-body h3 { color: #172238; line-height: 1.35; }
.markdown-body h1 { font-size: 27px; }
.markdown-body h2 { margin-top: 1.7em; padding-bottom: .35em; border-bottom: 1px solid #e4e8ee; font-size: 21px; }
.markdown-body h3 { font-size: 17px; }
.markdown-body code { padding: 2px 5px; border-radius: 5px; color: #b33b54; background: #f3f4f7; font-family: "SFMono-Regular", Consolas, monospace; font-size: .9em; }
.markdown-body pre { overflow: auto; padding: 16px; border-radius: 11px; color: #e8edf6; background: #1e293b; }
.markdown-body pre code { padding: 0; color: inherit; background: transparent; }
.markdown-body blockquote { margin-left: 0; padding: 1px 16px; border-left: 3px solid #91a9ed; color: #657188; }
.markdown-body table { width: 100%; border-collapse: collapse; }
.markdown-body th, .markdown-body td { padding: 8px 10px; border: 1px solid #dce2eb; text-align: left; }
.markdown-body img { max-width: 100%; border-radius: 10px; }
.markdown-body a { color: var(--blue); }
.attachment-panel { display: grid; grid-template-columns: 1fr auto; gap: 18px 30px; margin-top: 18px; padding: 22px 26px; border: 1px solid #dde3ec; border-radius: 18px; background: #fff; }
.attachment-panel h2 { margin: 0; font-size: 16px; }
.attachment-panel p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.attachment-panel > form { display: flex; gap: 8px; align-items: center; }
.file-picker { position: relative; min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px dashed #b7c2d4; border-radius: 9px; color: #5e6d83; cursor: pointer; font-size: 12px; }
.file-picker input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.attachment-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.attachment-list a { min-width: 0; display: flex; gap: 10px; padding: 11px; border: 1px solid #e3e7ee; border-radius: 10px; text-decoration: none; }
.attachment-list a:hover { border-color: #b9c7ee; background: #fafbff; }
.attachment-list strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.attachment-list small { color: #929baa; font-size: 9px; }

.login-body { min-height: 100vh; overflow-x: hidden; background: #f6f8fc; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: 1.1fr .9fr; }
.login-intro { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 48px clamp(40px, 7vw, 105px); color: #fff; background: linear-gradient(145deg, #10213e, #173a68 58%, #1c5276); }
.login-intro::before { content: ""; position: absolute; width: 580px; height: 580px; right: -260px; top: -220px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018); }
.login-intro::after { content: ""; position: absolute; width: 430px; height: 220px; left: -80px; bottom: -120px; border-radius: 50%; background: rgba(51, 186, 192, .13); filter: blur(15px); }
.login-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; align-self: flex-start; gap: 11px; color: #fff; text-decoration: none; }
.login-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: rgba(255,255,255,.13); backdrop-filter: blur(10px); }
.login-mark svg { width: 24px; height: 24px; }
.login-brand strong { display: block; font-size: 18px; letter-spacing: .08em; }
.login-brand small { display: block; color: #a9c1d8; font-size: 9px; letter-spacing: .18em; }
.login-copy { position: relative; z-index: 1; margin: auto 0; }
.private-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 11px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #c7d7e7; background: rgba(255,255,255,.06); font-size: 11px; }
.private-badge i { width: 6px; height: 6px; border-radius: 50%; background: #65d0b1; box-shadow: 0 0 0 5px rgba(101,208,177,.1); }
.login-copy h1 { margin: 24px 0 18px; font-size: clamp(38px, 5vw, 64px); line-height: 1.18; letter-spacing: -.04em; }
.login-copy h1 strong { color: #66d1d7; }
.login-copy p { max-width: 530px; margin: 0; color: #bed0e1; font-size: 16px; }
.login-features { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 9px; }
.login-features span { padding: 6px 10px; border-radius: 8px; color: #b8cadb; background: rgba(255,255,255,.06); font-size: 10px; }
.login-panel { display: grid; place-items: center; padding: 38px; background: radial-gradient(circle at 50% 10%, rgba(86, 128, 244, .09), transparent 25rem), #f7f8fc; }
.login-card { width: min(420px, 100%); padding: 39px; border: 1px solid #e0e5ee; border-radius: 24px; background: rgba(255,255,255,.95); box-shadow: 0 24px 60px rgba(25, 43, 75, .1); }
.lock-orbit { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 16px; color: var(--blue); background: var(--blue-soft); }
.lock-orbit svg { width: 25px; height: 25px; }
.login-card h2 { margin: 0; font-size: 27px; }
.login-card > p { margin: 5px 0 28px; color: var(--muted); font-size: 13px; }
.login-card label { display: block; margin: 14px 0 7px; color: #556278; font-size: 12px; font-weight: 700; }
.login-card input { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #d6deea; border-radius: 10px; outline: 0; background: #fbfcfe; }
.login-card input:focus { border-color: #9db2ee; background: #fff; box-shadow: 0 0 0 3px rgba(61,111,242,.08); }
.login-card button { width: 100%; min-height: 48px; margin-top: 23px; border: 0; border-radius: 10px; color: #fff; background: linear-gradient(135deg, #315fd8, var(--blue)); cursor: pointer; font-weight: 750; box-shadow: 0 10px 24px rgba(61,111,242,.22); }
.login-card button:hover { background: #2a58cf; }
.login-card > small { display: block; margin-top: 13px; color: #99a2b2; text-align: center; font-size: 10px; }
.login-flashes { top: 24px; right: 24px; }

@media (max-width: 1000px) {
  .dashboard-wrap { width: min(100% - 38px, 1180px); }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .dash-columns { grid-template-columns: 1fr; }
  .task-card { order: -1; }
  .login-shell { grid-template-columns: 1fr 1fr; }
  .login-intro { padding: 38px; }
  .attachment-list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 780px) {
  .workspace { display: block; }
  .workspace-main { min-height: 100vh; }
  .sidebar { transform: translateX(-103%); transition: transform .22s ease; box-shadow: 20px 0 50px rgba(20,35,60,.13); }
  .sidebar.open { transform: translateX(0); }
  .side-close { display: block; }
  .side-mask { position: fixed; z-index: 30; inset: 0; display: block; background: rgba(16,28,49,.36); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
  .side-mask.open { opacity: 1; visibility: visible; }
  .mobile-head { height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 17px; border-bottom: 1px solid #e2e7ef; background: #fff; }
  .mobile-head button { width: 36px; height: 36px; border: 0; border-radius: 9px; color: #5b687d; background: #f4f6fa; }
  .mobile-head strong { font-size: 14px; }
  .mobile-head span { width: 36px; }
  .dashboard-wrap { width: min(100% - 26px, 1180px); padding-top: 27px; }
  .dash-header { display: block; }
  .dash-search { width: 100%; margin-top: 20px; }
  .quick-capture { align-items: flex-start; flex-direction: column; }
  .quick-actions { width: 100%; }
  .quick-actions form, .quick-actions button { flex: 1; width: 100%; }
  .editor-wrap { width: min(100% - 18px, 1320px); padding-top: 11px; }
  .editor-head { grid-template-columns: 1fr auto; }
  .editor-state { display: none; }
  .editor-head-actions { grid-column: 2; grid-row: 1; }
  .editor-fields { padding: 19px 18px 15px; }
  .meta-row { grid-template-columns: 1fr; }
  .editor-toolbar { overflow-x: auto; padding: 7px 13px; }
  .editor-toolbar > span { display: none; }
  .editor-split { grid-template-columns: 1fr; }
  .writing-pane { border-right: 0; border-bottom: 1px solid #e4e8ee; }
  .writing-pane textarea { min-height: 430px; padding: 22px 20px; }
  .preview-pane { min-height: 360px; padding: 22px 20px; }
  .attachment-panel { grid-template-columns: 1fr; padding: 20px; }
  .attachment-list { grid-column: 1; grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; }
  .login-intro { min-height: 360px; padding: 28px 24px; }
  .login-copy { margin: 55px 0; }
  .login-copy h1 { font-size: 38px; }
  .login-panel { padding: 28px 18px 48px; }
  .login-card { padding: 29px 23px; }
}

@media (max-width: 480px) {
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .stat-grid > a, .stat-static { min-height: 82px; padding: 13px; }
  .stat-icon { width: 37px; height: 37px; }
  .stat-grid strong { font-size: 19px; }
  .quick-capture { padding: 21px 18px; }
  .quick-icon { width: 42px; height: 42px; }
  .card-head { padding: 14px 16px; }
  .note-list { padding: 3px 8px 9px; }
  .note-main { padding: 14px 4px; }
  .editor-head-actions .quiet-button { padding: 0 8px; }
}


/* Vortenor Notes schema v2: folders + protected Youdao rich text */
.side-folder-section { margin-top: 22px; padding: 17px 4px 12px; border-top: 1px solid #edf0f5; min-height: 0; }
.side-folder-title { display:flex; align-items:center; justify-content:space-between; padding:0 8px 8px; color:#8a95a7; }
.side-folder-title span { font-size:10px; font-weight:780; letter-spacing:.14em; }
.side-folder-title small { font-size:10px; }
.folder-tree { max-height: 36vh; overflow:auto; padding-right:2px; }
.folder-link { --folder-depth:0; min-height:34px; display:flex; align-items:center; gap:7px; padding:0 8px 0 calc(8px + var(--folder-depth) * 13px); border-radius:8px; color:#647188; text-decoration:none; font-size:12px; }
.folder-link:hover { color:var(--blue); background:#f7f9fd; }
.folder-link.active { color:#224fae; background:var(--blue-soft); font-weight:700; }
.folder-icon { color:#9ba6b6; font-size:14px; }
.folder-name { min-width:0; flex:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.folder-link small { color:#a4adba; font-size:9px; }
.folder-empty { margin:4px 8px 0; color:#a0a9b7; font-size:10px; line-height:1.6; }
.breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:7px; color:#7d899d; font-size:11px; }
.breadcrumb a { color:inherit; text-decoration:none; }
.breadcrumb a:hover { color:var(--blue); }
.breadcrumb.compact { margin-top:6px; }
.source-label { display:inline-flex; margin-left:7px; padding:1px 6px; border-radius:999px; color:#276f62; background:#eaf7f3; font-size:9px; vertical-align:2px; }
.meta-row-folders { grid-template-columns: 120px 190px minmax(190px,1fr) auto; }
.imported-wrap { width:min(1100px, calc(100% - 64px)); margin:0 auto; padding:34px 0 70px; }
.imported-head { min-height:46px; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:14px; }
.imported-actions { display:flex; align-items:center; gap:8px; }
.imported-actions form { margin:0; }
.preserve-badge { display:inline-flex; align-items:center; min-height:32px; padding:0 10px; border:1px solid #cfe7df; border-radius:9px; color:#2a715f; background:#f0faf6; font-size:10px; font-weight:700; }
.imported-paper { overflow:hidden; border:1px solid #dde3ec; border-radius:18px; background:#fff; box-shadow:0 12px 38px rgba(27,44,76,.055); }
.imported-title-block { padding:28px 36px 20px; border-bottom:1px solid #edf0f4; }
.imported-title-block h1 { margin:0; color:#172238; font-size:28px; line-height:1.35; }
.imported-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:10px; color:#8a94a5; font-size:10px; }
.youdao-content { padding:34px 40px 54px; color:#252f3f; background:#fff; overflow-wrap:anywhere; font-size:14px; line-height:1.7; }
.youdao-content img { max-width:100%; height:auto; }
.youdao-content table { max-width:100%; border-collapse:collapse; }
.youdao-content td, .youdao-content th { min-width:24px; }
.youdao-content pre { overflow:auto; }
.youdao-content a { color:#315fd8; }
.imported-attachments { width:100%; }

@media (max-width: 1000px) {
  .meta-row-folders { grid-template-columns: 1fr 1fr; }
  .meta-row-folders .save-button { width:max-content; }
}
@media (max-width: 780px) {
  .imported-wrap { width:min(100% - 18px, 1100px); padding-top:11px; }
  .imported-head { padding:0 4px; }
  .imported-actions { flex-wrap:wrap; justify-content:flex-end; }
  .imported-title-block { padding:22px 20px 16px; }
  .imported-title-block h1 { font-size:23px; }
  .youdao-content { padding:24px 20px 40px; }
  .meta-row-folders { grid-template-columns:1fr; }
}

/* V2.2 editable rich-text notes */
.rich-writing-wrap { min-height: 620px; padding: 0; background: #fff; border-radius: 0 0 21px 21px; }
.rich-writing { min-height: 620px; padding: 30px 38px 60px; outline: none; color: #202938; font-size: 15px; line-height: 1.72; }
.rich-writing:focus { box-shadow: inset 0 0 0 2px rgba(73, 105, 203, .08); }
.rich-writing p { margin: 0 0 10px; }
.rich-writing h1 { margin: 0 0 18px; font-size: 30px; line-height: 1.25; }
.rich-writing h2 { margin: 26px 0 12px; font-size: 20px; line-height: 1.35; }
.rich-writing h3 { margin: 22px 0 10px; font-size: 17px; line-height: 1.4; }
.rich-writing img { display: block; max-width: 100%; height: auto; margin: 16px auto; border-radius: 4px; }
.rich-writing table { width: 100%; border-collapse: collapse; margin: 14px 0; }
.rich-writing th, .rich-writing td { padding: 7px 9px; border: 1px solid #dce2eb; }
.rich-writing a { color: var(--blue); }
.rich-writing .yd-spacer { height: 10px; }
.rich-toolbar button { flex: 0 0 auto; }
@media (max-width: 760px) {
  .rich-writing { min-height: 520px; padding: 22px 18px 48px; font-size: 14px; }
}

/* V2.3 Youdao migration refinements */
.rich-writing .yd-attachment-ref { margin: 4px 0 8px !important; line-height: 1.55; }
.rich-writing .yd-attachment-link { color: #315fc1; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.rich-writing .yd-attachment-link:hover { color: #20489c; }
.folder-link { position: relative; }
.folder-link[style*="--folder-depth: 1"],
.folder-link[style*="--folder-depth: 2"],
.folder-link[style*="--folder-depth: 3"],
.folder-link[style*="--folder-depth: 4"],
.folder-link[style*="--folder-depth: 5"],
.folder-link[style*="--folder-depth: 6"] { border-left: 1px solid #edf0f5; }

/* V3.0 collapsible folder tree */
.folder-row {
  --folder-depth: 0;
  min-height: 34px;
  display: flex;
  align-items: center;
  padding-left: calc(2px + var(--folder-depth) * 13px);
  border-radius: 8px;
}
.folder-row[hidden] { display: none !important; }
.folder-row.active { background: var(--blue-soft); }
.folder-row.active .folder-link { color: #224fae; font-weight: 700; }
.folder-row:hover { background: #f7f9fd; }
.folder-toggle,
.folder-toggle-spacer {
  width: 20px;
  height: 28px;
  flex: 0 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.folder-toggle {
  padding: 0;
  border: 0;
  border-radius: 6px;
  color: #8e99aa;
  background: transparent;
  font-size: 12px;
  cursor: pointer;
}
.folder-toggle:hover { color: var(--blue); background: #edf3ff; }
.folder-row .folder-link {
  flex: 1;
  min-width: 0;
  padding: 0 8px 0 1px;
  background: transparent !important;
}
.folder-row[style*="--folder-depth: 1"],
.folder-row[style*="--folder-depth: 2"],
.folder-row[style*="--folder-depth: 3"],
.folder-row[style*="--folder-depth: 4"],
.folder-row[style*="--folder-depth: 5"],
.folder-row[style*="--folder-depth: 6"],
.folder-row[style*="--folder-depth: 7"],
.folder-row[style*="--folder-depth: 8"] { border-left: 1px solid #edf0f5; }

/* V3.0 editable Youdao semantic elements */
.rich-writing .yd-task,
.youdao-content .yd-task,
.markdown-preview .yd-task {
  margin: 7px 0;
}
.rich-writing .yd-task label,
.youdao-content .yd-task label,
.markdown-preview .yd-task label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  line-height: 1.65;
}
.rich-writing .yd-task input[type="checkbox"],
.youdao-content .yd-task input[type="checkbox"],
.markdown-preview .yd-task input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  flex: 0 0 18px;
  accent-color: #4b70d7;
}
.rich-writing .yd-task input[type="checkbox"] { cursor: pointer; }
.rich-writing .yd-task input[type="checkbox"]:checked + span,
.youdao-content .yd-task input[type="checkbox"]:checked + span { color: #98a1af; text-decoration: line-through; }
.rich-writing .yd-table,
.youdao-content .yd-table {
  width: 100%;
  margin: 14px 0 18px;
  border-collapse: collapse;
  table-layout: auto;
}
.rich-writing .yd-table th,
.rich-writing .yd-table td,
.youdao-content .yd-table th,
.youdao-content .yd-table td {
  min-width: 48px;
  padding: 7px 9px;
  border: 1px solid #d9e0ea;
  vertical-align: top;
}
.rich-writing .yd-table th,
.youdao-content .yd-table th { background: #f6f8fb; font-weight: 700; }
.rich-writing .yd-image { margin: 18px 0; }
.rich-writing .yd-image img { max-width: 100%; height: auto; }

/* V3.1 Youdao structured formats */
.yd-mindmap { margin: 10px 0 22px; overflow-x: auto; }
.yd-mindmap-canvas { min-width: 520px; padding: 18px 10px 18px 4px; }
.yd-mind-tree,
.yd-mind-children { list-style: none; margin: 0; padding-left: 30px; position: relative; }
.yd-mind-tree { padding-left: 0; }
.yd-mind-children { border-left: 1px solid #d7dee8; margin-left: 15px; }
.yd-mind-item { position: relative; margin: 10px 0; }
.yd-mind-children > .yd-mind-item::before {
  content: ""; position: absolute; left: -30px; top: 18px; width: 28px;
  border-top: 1px solid #d7dee8;
}
.yd-mind-node {
  display: inline-block; max-width: 680px; padding: 7px 11px; border: 1.5px solid #aeb9c9;
  border-radius: 7px; background: #fff; line-height: 1.45; box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.yd-mind-root { font-size: 1.18em; font-weight: 700; padding: 9px 14px; border-width: 2px; }

.yd-workbook { margin: 8px 0 22px; }
.yd-sheet-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.yd-sheet-tabs span { padding: 5px 10px; border: 1px solid #d8dee9; border-radius: 7px; background: #f7f9fc; font-size: 13px; }
.yd-sheet { margin: 18px 0 26px; }
.yd-sheet > h2 { margin: 0 0 9px; font-size: 16px; }
.yd-lxtable-scroll { overflow: auto; max-width: 100%; border: 1px solid #dfe4ec; border-radius: 8px; }
.yd-lxtable { width: auto; min-width: max-content; margin: 0; border-collapse: collapse; }
.yd-lxtable th,
.yd-lxtable td { border: 1px solid #dfe4ec; padding: 5px 8px; vertical-align: middle; background: #fff; }
.yd-lxtable th { background: #f6f8fb; font-weight: 700; }
.yd-sheet-empty { padding: 14px; border: 1px dashed #d8dee9; border-radius: 8px; color: #8a95a6; }
.yd-lxcharts { margin-top: 10px; display: grid; gap: 8px; }
.yd-lxchart-meta { display: flex; gap: 12px; align-items: baseline; padding: 9px 11px; border-radius: 8px; background: #f7f9fc; border: 1px solid #e1e6ee; }
.yd-lxchart-meta span { color: #7d8796; font-size: 12px; }

/* V3.2 root-level notes shown in the sidebar directory tree */
.root-note-tree { margin: 2px 0 6px; }
.root-note-toggle {
  width: 100%; min-height: 34px; display: flex; align-items: center; gap: 4px;
  padding: 0 8px 0 2px; border: 0; border-radius: 8px; background: transparent;
  color: #536071; cursor: pointer; text-align: left; font: inherit;
}
.root-note-toggle:hover { background: #f7f9fd; }
.root-note-arrow { width: 20px; flex: 0 0 20px; text-align: center; color: #8e99aa; font-size: 12px; }
.root-note-folder-icon { color: #8390a3; margin-right: 2px; }
.root-note-folder-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.root-note-toggle small { color: #a1aaba; font-size: 11px; }
.root-note-list { margin-left: 20px; border-left: 1px solid #edf0f5; }
.root-note-link {
  min-height: 32px; display: flex; align-items: center; gap: 6px; margin: 1px 0;
  padding: 0 8px 0 10px; border-radius: 7px; color: #5f6b7c; text-decoration: none;
}
.root-note-link:hover { background: #f7f9fd; color: #314a7c; }
.root-note-link.active { background: var(--blue-soft); color: #224fae; font-weight: 700; }
.root-note-file-icon { color: #96a1b1; font-size: 12px; }
.root-note-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* V3.4 Eisenhower matrix -------------------------------------------------- */
.dash-columns { grid-template-columns: minmax(0, 1.15fr) minmax(460px, 1fr); }
.todo-matrix-card { overflow: hidden; }
.todo-head { min-height: 70px; }
.todo-new-main {
  min-height: 34px; padding: 0 12px; border: 1px solid #cbd7f6; border-radius: 9px;
  color: #315fd8; background: #f5f7ff; cursor: pointer; font-size: 11px; font-weight: 750;
}
.todo-new-main:hover { background: #eaf0ff; }
.todo-matrix { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px; background: #fafbfc; }
.todo-quadrant { min-width: 0; border: 1px solid #e2e7ef; border-radius: 14px; background: #fff; overflow: hidden; }
.todo-quadrant > header { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #edf0f4; }
.todo-quadrant > header div { min-width: 0; }
.todo-quadrant > header strong { display: block; font-size: 12px; }
.todo-quadrant > header small { display: block; margin-top: 2px; color: #98a1af; font-size: 9px; }
.todo-quadrant > header > span { min-width: 23px; height: 23px; display: grid; place-items: center; border-radius: 999px; font-size: 9px; font-weight: 800; }
.todo-quadrant.critical > header { background: #fff7f7; }
.todo-quadrant.critical > header > span { color: #b53d49; background: #ffe6e8; }
.todo-quadrant.urgent > header { background: #fffaf2; }
.todo-quadrant.urgent > header > span { color: #9f6817; background: #ffefcf; }
.todo-quadrant.important > header { background: #f6f8ff; }
.todo-quadrant.important > header > span { color: #315fd8; background: #e5ebff; }
.todo-quadrant.later > header { background: #f8f9fb; }
.todo-quadrant.later > header > span { color: #66748a; background: #e9edf3; }
.todo-dropzone { min-height: 74px; padding: 7px; transition: background .12s ease, outline-color .12s ease; }
.todo-dropzone.drag-over { background: #edf3ff; outline: 2px dashed #9bb2ee; outline-offset: -5px; }
.todo-item { position: relative; display: grid; grid-template-columns: 20px minmax(0,1fr) 20px; gap: 7px; align-items: start; margin: 4px 0; padding: 9px 7px; border: 1px solid transparent; border-radius: 10px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.todo-item:hover { border-color: #e0e6ef; box-shadow: 0 4px 12px rgba(40,55,82,.05); }
.todo-item.dragging { opacity: .45; transform: scale(.985); }
.todo-check { width: 18px; height: 18px; margin-top: 1px; cursor: pointer; }
.todo-check input { position: absolute; opacity: 0; pointer-events: none; }
.todo-check span { width: 17px; height: 17px; display: block; border: 1.5px solid #aeb8c8; border-radius: 5px; background: #fff; }
.todo-check:hover span { border-color: #6584dd; background: #f4f7ff; }
.todo-copy { min-width: 0; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.todo-copy strong { display: block; color: #25334a; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.todo-copy p { margin: 4px 0 0; color: #8a95a7; font-size: 9px; line-height: 1.45; white-space: pre-line; overflow-wrap: anywhere; }
.todo-copy time { display: inline-block; margin-top: 6px; padding: 2px 6px; border-radius: 999px; color: #6c7890; background: #f0f3f7; font-size: 8px; }
.todo-copy time.overdue { color: #a83e49; background: #ffebed; }
.todo-delete { width: 20px; height: 20px; opacity: 0; border: 0; border-radius: 6px; color: #a6afbd; background: transparent; cursor: pointer; font-size: 15px; line-height: 18px; }
.todo-item:hover .todo-delete { opacity: 1; }
.todo-delete:hover { color: #b13f4b; background: #fff0f1; }
.todo-empty { padding: 18px 6px; color: #b1b9c5; text-align: center; font-size: 9px; }
.todo-add { width: calc(100% - 14px); min-height: 30px; margin: 0 7px 7px; border: 1px dashed #d8dee8; border-radius: 8px; color: #8a95a7; background: #fbfcfd; cursor: pointer; font-size: 9px; }
.todo-add:hover { color: #315fd8; border-color: #b9c8ef; background: #f5f7ff; }
.todo-foot { padding: 10px 13px 13px; border-top: 1px solid #edf0f4; color: #929baa; font-size: 9px; }
.todo-foot > span { display: block; }
.todo-completed { margin-top: 8px; }
.todo-completed summary { width: max-content; color: #657188; cursor: pointer; }
.todo-completed-list { display: grid; gap: 5px; margin-top: 8px; }
.todo-completed-list > div { display: grid; grid-template-columns: 16px minmax(0,1fr) auto auto; gap: 6px; align-items: center; padding: 7px 8px; border-radius: 8px; background: #f7f8fa; }
.todo-completed-list span { color: #42a37e; }
.todo-completed-list strong { overflow: hidden; color: #7d8796; font-size: 9px; text-decoration: line-through; text-overflow: ellipsis; white-space: nowrap; }
.todo-completed-list button { border: 0; color: #68758a; background: transparent; cursor: pointer; font-size: 8px; }
.todo-completed-list button:hover { color: #315fd8; }
.todo-dialog { width: min(520px, calc(100vw - 30px)); padding: 0; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 25px 80px rgba(20,35,60,.24); }
.todo-dialog::backdrop { background: rgba(16,28,49,.36); backdrop-filter: blur(2px); }
.todo-dialog form { padding: 22px; }
.todo-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.todo-dialog-head strong { display: block; font-size: 17px; }
.todo-dialog-head span { display: block; margin-top: 3px; color: #929baa; font-size: 10px; }
.todo-dialog-head button { width: 30px; height: 30px; border: 0; border-radius: 8px; color: #8490a2; background: #f4f6f9; cursor: pointer; font-size: 18px; }
.todo-dialog label { display: block; margin-top: 12px; color: #58677e; font-size: 10px; font-weight: 750; }
.todo-dialog input, .todo-dialog textarea, .todo-dialog select { width: 100%; margin-top: 6px; padding: 10px 11px; border: 1px solid #dce2eb; border-radius: 9px; color: #25334a; background: #fbfcfe; outline: 0; font: inherit; font-weight: 400; }
.todo-dialog textarea { resize: vertical; line-height: 1.5; }
.todo-dialog input:focus, .todo-dialog textarea:focus, .todo-dialog select:focus { border-color: #aebff4; background: #fff; box-shadow: 0 0 0 3px rgba(61,111,242,.07); }
.todo-dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.todo-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.todo-dialog-actions button { min-height: 36px; padding: 0 14px; border: 1px solid #d9e0ea; border-radius: 9px; color: #657188; background: #fff; cursor: pointer; font-size: 10px; font-weight: 750; }
.todo-dialog-actions button.primary { color: #fff; border-color: #315fd8; background: #315fd8; }
.todo-dialog-actions button.primary:hover { background: #2857cc; }
@media (max-width: 1120px) {
  .dash-columns { grid-template-columns: 1fr; }
  .task-card { order: -1; }
  .todo-matrix { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .todo-matrix { grid-template-columns: 1fr; }
  .todo-dialog-grid { grid-template-columns: 1fr; }
  .todo-new-main { display: none; }
}

/* V3.5 sidebar + home layout ------------------------------------------------ */
.sidebar { overflow: hidden; }
.side-folder-section {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin-top: 18px;
  padding-bottom: 8px;
  overflow: hidden;
}
.side-folder-title { flex: 0 0 auto; }
.side-folder-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 3px;
  scrollbar-gutter: stable;
}
.side-folder-scroll::-webkit-scrollbar { width: 7px; }
.side-folder-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: #c8ced8; }
.side-folder-scroll::-webkit-scrollbar-track { background: transparent; }
.folder-tree { max-height: none; overflow: visible; padding-right: 0; }
.side-section {
  flex: 0 0 auto;
  margin-top: 0;
  padding: 13px 10px 10px;
  background: #fff;
  position: relative;
  z-index: 2;
}
.side-footer {
  flex: 0 0 auto;
  margin-top: 0;
  background: #fff;
  position: relative;
  z-index: 2;
}

/* Home: give the former two-column area entirely to the Eisenhower matrix. */
.recent-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  margin-top: 19px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 6px 20px rgba(31,47,77,.035);
}
.recent-strip-head { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.recent-strip-head strong { font-size: 12px; }
.recent-strip-head a { color: #738097; text-decoration: none; font-size: 9px; }
.recent-strip-head a:hover { color: var(--blue); }
.recent-strip-list { min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.recent-strip-list > a {
  min-width: 160px;
  max-width: 230px;
  height: 34px;
  display: grid;
  grid-template-columns: 8px minmax(0,1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 0 9px;
  border: 1px solid #e7ebf1;
  border-radius: 9px;
  color: #4f5d73;
  background: #fbfcfe;
  text-decoration: none;
}
.recent-strip-list > a:hover { border-color: #c9d5f4; color: #315fd8; background: #f7f9ff; }
.recent-strip-list > a > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.recent-strip-list time { color: #9aa3b1; font-size: 8px; }
.recent-strip-list .kind-dot { width: 6px; height: 6px; margin: 0; }
.recent-strip-empty { color: #9ca5b3; font-size: 10px; }
.todo-matrix-card-wide { margin-top: 19px; }
.todo-matrix-card-wide .todo-matrix { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; padding: 15px; }
.todo-matrix-card-wide .todo-quadrant > header strong { font-size: 13px; }
.todo-matrix-card-wide .todo-copy strong { font-size: 12px; }
.todo-matrix-card-wide .todo-copy p { font-size: 10px; }
.todo-matrix-card-wide .todo-dropzone { min-height: 120px; }
.filtered-note-card { margin-top: 19px; }

@media (min-width: 1450px) {
  .dashboard-wrap { width: min(1380px, calc(100% - 72px)); }
  .todo-matrix-card-wide .todo-matrix { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .recent-strip { grid-template-columns: 1fr; gap: 8px; }
  .recent-strip-list { padding-bottom: 3px; }
  .todo-matrix-card-wide .todo-matrix { grid-template-columns: 1fr; }
}
