:root {
  color-scheme: light;
  --bg: #fffdfa;
  --surface: #ffffff;
  --surface-subtle: #f7f5f2;
  --surface-warm: #fbf5ef;
  --ink: #202020;
  --muted: #716f6b;
  --faint: #98948e;
  --line: #e7e3de;
  --line-strong: #d7d1ca;
  --accent: #c84b3f;
  --accent-deep: #a93c32;
  --accent-soft: #fae9e5;
  --blue: #3b7ddd;
  --green: #2d8b57;
  --amber: #b47a16;
  --shadow-sm: 0 1px 2px rgba(38, 29, 22, .06), 0 2px 8px rgba(38, 29, 22, .04);
  --shadow-lg: 0 24px 80px rgba(38, 29, 22, .18);
  --sidebar: 282px;
  --sidebar-bg: #fbfaf8;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font-size: 14px; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { border: 0; }
a { color: inherit; }
[hidden] { display: none !important; }
svg { width: 20px; height: 20px; stroke-width: 1.8; }

.route-loading { position: fixed; inset: 0; z-index: 1000; display: grid; place-content: center; justify-items: center; gap: 14px; background: var(--bg); color: var(--muted); }
.route-loading .brand-mark { animation: breathe 1.1s ease-in-out infinite alternate; }
@keyframes breathe { to { transform: translateY(-3px); opacity: .65; } }

.brand-lockup { display: inline-flex; align-items: center; gap: 11px; color: var(--ink); text-decoration: none; font-size: 22px; font-weight: 760; letter-spacing: -.04em; }
.brand-lockup small { font-size: 11px; color: var(--muted); letter-spacing: .02em; font-weight: 650; }
.brand-lockup.compact { font-size: 17px; gap: 9px; }
.brand-mark { width: 34px; height: 34px; border-radius: 10px; background: var(--accent); display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; padding: 0 8px; box-shadow: inset 0 0 0 1px rgba(90, 24, 18, .12); }
.brand-mark i { height: 2px; border-radius: 10px; background: white; display: block; }
.brand-mark i:nth-child(2) { width: 78%; }
.brand-mark i:nth-child(3) { width: 58%; }

.eyebrow { margin: 0 0 10px; color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.gate-screen { min-height: 100dvh; display: grid; place-items: center; padding: 28px; background: radial-gradient(circle at 50% 10%, #fff 0, var(--bg) 42%, #f7f1eb 100%); }
.gate-card { width: min(560px, 100%); padding: clamp(30px, 6vw, 58px); border: 1px solid var(--line); border-radius: 28px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-lg); backdrop-filter: blur(12px); }
.gate-card .brand-lockup { margin-bottom: 60px; }
.gate-card h1 { margin: 0; max-width: 480px; font-size: clamp(38px, 7vw, 58px); line-height: .99; letter-spacing: -.055em; font-weight: 735; }
.gate-copy { max-width: 470px; margin: 24px 0 30px; font-size: 17px; line-height: 1.6; color: var(--muted); }
.private-status { display: grid; grid-template-columns: 10px 1fr; gap: 3px 11px; align-items: center; padding: 17px 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-subtle); }
.private-status > span { width: 9px; height: 9px; border-radius: 50%; background: #d59b35; grid-row: 1 / span 2; box-shadow: 0 0 0 4px #f8ead1; }
.private-status strong { font-size: 13px; }
.private-status small { color: var(--muted); }
.gate-card > footer { margin-top: 48px; color: var(--faint); font-size: 12px; }
.gate-card > footer a { color: var(--ink); text-decoration: none; font-weight: 700; }
.login-card { width: min(500px, 100%); }
.login-card h1 { font-size: clamp(38px, 7vw, 52px); }
.google-button { width: 100%; min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid var(--line-strong); border-radius: 13px; background: white; font-weight: 700; cursor: pointer; box-shadow: var(--shadow-sm); transition: .18s ease; }
.google-button:hover { transform: translateY(-1px); border-color: #bdb6ae; box-shadow: 0 8px 24px rgba(38,29,22,.1); }
.google-button svg { width: 21px; height: 21px; }
.form-feedback { min-height: 18px; margin: 12px 0 0; color: var(--accent-deep); font-size: 12px; }

.app-shell { min-height: 100dvh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; width: var(--sidebar); display: flex; flex-direction: column; padding: 18px 12px 12px; background: var(--sidebar-bg); border-right: 1px solid #f0eeeb; font-size: 13px; transition: transform .22s cubic-bezier(.2,.8,.2,1); }
.sidebar-header { height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 7px 0 8px; }
.sidebar .brand-mark { width: 29px; height: 29px; border-radius: 8px; padding-inline: 7px; }
.add-task-primary { min-height: 43px; margin: 15px 4px 10px; padding: 0 12px; display: flex; align-items: center; gap: 10px; border-radius: 9px; background: var(--accent); color: white; font-weight: 700; cursor: pointer; transition: background .15s ease, transform .15s ease; }
.add-task-primary:hover { background: var(--accent-deep); }
.add-task-primary:active { transform: scale(.985); }
.add-task-primary kbd { margin-left: auto; color: rgba(255,255,255,.68); font-size: 10px; }
kbd { border: 0; background: transparent; color: var(--faint); font-family: inherit; font-size: 10px; }
.main-nav { display: grid; gap: 2px; }
.main-nav a, .main-nav button, .project-nav nav a { min-height: 38px; width: 100%; padding: 0 10px; display: flex; align-items: center; gap: 11px; border-radius: 8px; color: #4d4a46; text-decoration: none; background: transparent; cursor: pointer; text-align: left; }
.main-nav a:hover, .main-nav button:hover, .project-nav nav a:hover { background: #f0eeeb; }
.main-nav a.active, .project-nav nav a.active { color: var(--accent-deep); background: var(--accent-soft); font-weight: 700; }
.main-nav a[data-route="today"] > svg { color: var(--green); }
.main-nav a[data-route="upcoming"] > svg { color: var(--blue); }
.main-nav em { margin-left: auto; font-style: normal; color: var(--faint); font-size: 11px; }
.main-nav kbd { margin-left: auto; }
.project-nav { min-height: 0; margin-top: 17px; display: flex; flex: 1; flex-direction: column; }
.project-nav > header { display: flex; align-items: center; justify-content: space-between; padding: 0 8px 7px 11px; color: var(--muted); font-size: 11px; font-weight: 700; }
.project-nav nav { overflow-y: auto; scrollbar-width: thin; }
.project-dot { width: 14px; height: 18px; flex: 0 0 14px; display: inline-grid; place-items: center; color: var(--project-color, #8c8780); font-size: 16px; font-weight: 480; line-height: 1; }
.project-dot::before { content: "#"; }
.project-nav nav a span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-nav nav em { margin-left: auto; color: var(--faint); font-style: normal; font-size: 11px; }
.sidebar-footer { padding-top: 9px; border-top: 1px solid var(--line); }
.sidebar-footer > button { width: 100%; min-height: 47px; display: grid; grid-template-columns: 31px 1fr 20px; align-items: center; gap: 10px; padding: 5px 8px; text-align: left; background: transparent; border-radius: 9px; cursor: pointer; }
.sidebar-footer > button:hover { background: #f0eeeb; }
.sidebar-footer strong, .sidebar-footer small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-footer strong { font-size: 11px; }
.sidebar-footer small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.user-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #76413b; background: #f4d9d4; font-size: 12px; font-weight: 800; }
.icon-button { width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; }
.icon-button:hover { background: var(--surface-subtle); color: var(--ink); }

.workspace { min-height: 100dvh; margin-left: var(--sidebar); background: var(--surface); transition: margin-left .22s cubic-bezier(.2,.8,.2,1); }
.sidebar-reveal { position: fixed; top: 13px; left: 13px; z-index: 45; width: 36px; height: 36px; display: none; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.94); color: var(--muted); box-shadow: var(--shadow-sm); cursor: pointer; backdrop-filter: blur(10px); }
.sidebar-reveal:hover { color: var(--ink); background: white; }
body.sidebar-collapsed .sidebar, body[data-sidebar-state="collapsed"] .sidebar { transform: translateX(-101%); visibility: hidden; }
body.sidebar-collapsed .workspace, body[data-sidebar-state="collapsed"] .workspace { margin-left: 0; }
body.sidebar-collapsed .sidebar-reveal, body[data-sidebar-state="collapsed"] .sidebar-reveal { display: inline-grid; }
.content { width: min(940px, calc(100% - 64px)); margin: 0 auto; padding: 46px 0 90px; }
.view-header { display: flex; align-items: start; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.view-header h1 { margin: 0; font-size: clamp(25px, 3vw, 32px); line-height: 1.15; letter-spacing: -.045em; }
.view-header p { margin: 8px 0 0; color: var(--muted); }
.view-actions { display: flex; gap: 7px; }
.button { min-height: 38px; padding: 0 14px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; cursor: pointer; }
.button.primary { color: white; background: var(--accent); }
.button.primary:hover { background: var(--accent-deep); }
.button.secondary { background: white; border: 1px solid var(--line-strong); color: #4e4b47; }
.button.secondary:hover { background: var(--surface-subtle); }
.button.danger { color: #a83d33; background: #fff1ef; }
.button.small { min-height: 32px; padding-inline: 10px; font-size: 12px; }
.button:disabled { opacity: .5; cursor: not-allowed; }

.quick-capture { margin: 0 0 30px; padding: 9px 10px 9px 14px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-sm); cursor: text; }
.quick-capture > svg { color: var(--accent); }
.quick-capture button { min-height: 42px; flex: 1; padding: 0; border: 0; background: transparent; color: var(--faint); text-align: left; cursor: text; }
.quick-capture kbd { flex: 0 0 auto; padding: 5px 7px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-subtle); }

.section-block { margin: 0 0 30px; }
.section-heading { height: 38px; display: flex; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); color: #55514c; font-size: 13px; font-weight: 750; }
.section-heading em { margin-left: auto; font-style: normal; color: var(--faint); font-size: 11px; }
.task-list { display: grid; }
.task-row { min-height: 58px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: start; gap: 10px; padding: 10px 2px; border-bottom: 1px solid #eeebe7; transition: background .12s ease; }
.task-row:hover { background: #fdfbf9; }
.task-check { width: 19px; height: 19px; margin-top: 1px; border-radius: 50%; border: 1.8px solid var(--check-color, #aaa49d); background: transparent; cursor: pointer; position: relative; }
.task-check:hover { background: color-mix(in srgb, var(--check-color) 10%, white); }
.task-check svg { width: 13px; height: 13px; position: absolute; inset: 1px; opacity: 0; color: var(--check-color); }
.task-check:hover svg { opacity: .7; }
.task-row.completed { opacity: .57; }
.task-row.completed .task-check { background: var(--check-color); }
.task-row.completed .task-check svg { opacity: 1; color: white; }
.task-row.completed .task-title { text-decoration: line-through; }
.task-body { min-width: 0; cursor: pointer; }
.task-title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 1.35; }
.task-description { margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12px; }
.task-meta { min-height: 18px; margin-top: 5px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--faint); font-size: 11px; }
.task-meta span { display: inline-flex; align-items: center; gap: 4px; }
.task-meta svg { width: 13px; height: 13px; }
.task-meta .overdue { color: var(--accent); }
.task-meta .today { color: var(--green); }
.task-actions { display: flex; opacity: 0; transition: opacity .12s ease; }
.task-row:hover .task-actions, .task-row:focus-within .task-actions { opacity: 1; }
.task-actions .icon-button { width: 31px; height: 31px; }
.priority-urgent { --check-color: #d64d42; }
.priority-high { --check-color: #df8d25; }
.priority-medium { --check-color: #4d83c4; }
.priority-low { --check-color: #a8a39d; }

.empty-state { min-height: 310px; display: grid; place-content: center; justify-items: center; text-align: center; color: var(--muted); }
.empty-illustration { width: 96px; height: 96px; margin-bottom: 18px; display: grid; place-items: center; border-radius: 34px; color: var(--accent); background: var(--accent-soft); transform: rotate(-3deg); }
.empty-illustration svg { width: 42px; height: 42px; }
.empty-state h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.02em; }
.empty-state p { margin: 9px 0 18px; max-width: 360px; line-height: 1.55; }

.upcoming-title { margin-bottom: 14px; }
.upcoming-week { position: sticky; top: 0; z-index: 12; display: grid; grid-template-columns: repeat(7, minmax(56px, 1fr)); margin: 0 0 24px; padding: 8px 0 10px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.upcoming-week a { min-height: 52px; display: grid; place-content: center; justify-items: center; gap: 4px; border-radius: 9px; color: var(--muted); text-decoration: none; }
.upcoming-week a:hover { background: var(--surface-subtle); }
.upcoming-week a span { font-size: 11px; text-transform: lowercase; }
.upcoming-week a strong { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; }
.upcoming-week a.selected { color: var(--accent); font-weight: 750; }
.upcoming-week a.selected strong { color: white; background: var(--accent); }
.upcoming-list { display: grid; }
.upcoming-day { scroll-margin-top: 86px; padding: 0 0 24px; }
.upcoming-day > header { height: 36px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.upcoming-day h2 { margin: 0; font-size: 13px; letter-spacing: -.01em; }
.upcoming-day.today-column h2 { color: var(--accent); }
.add-day-task { min-height: 38px; display: inline-flex; align-items: center; gap: 7px; padding: 0 3px; color: var(--muted); background: transparent; cursor: pointer; }
.add-day-task:hover { color: var(--accent); }
.add-day-task svg { width: 16px; height: 16px; }

.report-summary { display: flex; align-items: center; gap: 14px; margin: 0 0 28px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-subtle); }
.report-summary > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: var(--green); background: #e8f4ec; }
.report-summary strong, .report-summary small { display: block; }
.report-summary strong { font-size: 21px; }
.report-summary small { margin-top: 2px; color: var(--muted); }
.completed-group { margin-bottom: 28px; }
.completed-group > header { display: flex; align-items: center; justify-content: space-between; height: 38px; border-bottom: 1px solid var(--line); }
.completed-group h2 { margin: 0; font-size: 13px; text-transform: capitalize; }
.completed-group > header span { color: var(--faint); font-size: 11px; }

.archive-panel { margin-bottom: 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.archive-panel > header { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; border-bottom: 1px solid var(--line); background: var(--surface-subtle); }
.archive-panel > header > div { display: flex; align-items: center; gap: 11px; }
.archive-panel > header strong, .archive-panel > header small { display: block; }
.archive-panel > header small { margin-top: 3px; color: var(--muted); font-weight: 400; }
.archive-panel > header em { color: var(--faint); font-style: normal; }
.archive-panel > header > .archive-panel-tools { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.archive-panel-tools .button svg { width: 14px; height: 14px; }
.dialog-warning { margin: 0; padding: 11px 12px; border-radius: 8px; background: #fff7f5; color: #7d342e; font-size: 13px; line-height: 1.45; }
.archive-row { min-height: 62px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid #efede9; }
.archive-row:last-child { border-bottom: 0; }
.archive-row > span:nth-child(2) strong, .archive-row > span:nth-child(2) small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.archive-row > span:nth-child(2) small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.archive-row > div { display: flex; align-items: center; gap: 7px; }
.archive-kind { color: var(--project-color, var(--muted)); font-size: 19px; }
.archive-kind.task-kind svg { width: 17px; height: 17px; }
.archive-empty { margin: 0; padding: 22px 16px; color: var(--muted); }
.danger-icon { color: var(--accent); }

.project-hero { padding: 22px 24px; margin-bottom: 25px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(135deg, var(--project-soft, #fff7e8), white 70%); }
.project-hero-row { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.project-identity { display: flex; align-items: center; gap: 13px; }
.project-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--project-color, #d39b3b); color: white; }
.project-identity h1 { margin: 0; font-size: 25px; letter-spacing: -.04em; }
.project-identity p { margin: 4px 0 0; color: var(--muted); }

.files-toolbar { display: flex; gap: 9px; margin-bottom: 20px; }
.search-field { flex: 1; min-height: 42px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.search-field input { width: 100%; border: 0; outline: 0; background: transparent; }
.file-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.file-card { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: white; cursor: pointer; transition: .15s ease; }
.file-card:hover { transform: translateY(-1px); border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.file-card-icon { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 11px; color: var(--file-color, #4d83c4); background: color-mix(in srgb, var(--file-color) 11%, white); }
.file-card strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-card small { display: block; margin-top: 5px; color: var(--muted); }
.file-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; color: var(--faint); font-size: 11px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 24px; background: rgba(26,22,19,.34); backdrop-filter: blur(3px); }
.composer-sheet, .dialog-card, .task-drawer, .settings-card { width: min(620px, 100%); max-height: min(760px, calc(100dvh - 48px)); overflow: auto; border: 1px solid rgba(255,255,255,.6); border-radius: 18px; background: white; box-shadow: var(--shadow-lg); }
.composer-sheet form { padding: 22px; }
.composer-sheet header, .dialog-card header, .settings-card header { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.composer-sheet h2, .dialog-card h2, .settings-card h2 { margin: 0; font-size: 21px; letter-spacing: -.035em; }
.composer-sheet textarea { width: 100%; min-height: 80px; resize: vertical; padding: 16px 0 10px; border: 0; border-bottom: 1px solid var(--line); outline: 0; font-size: 17px; line-height: 1.4; }
.composer-hint { margin: 9px 0 18px; color: var(--muted); font-size: 11px; }
.composer-fields { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 10px; }
.composer-fields label, .form-field { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 650; }
.composer-fields input, .composer-fields select, .form-field input, .form-field textarea, .form-field select { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: white; outline: 0; }
.composer-fields input:focus, .composer-fields select:focus, .form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: #d3938d; box-shadow: 0 0 0 3px var(--accent-soft); }
.form-field textarea { min-height: 100px; padding: 10px; resize: vertical; }
.composer-attachments { min-height: 42px; margin-top: 14px; display: flex; align-items: center; gap: 7px; }
.composer-attachments button { min-height: 34px; padding: 0 9px; display: inline-flex; align-items: center; gap: 6px; border-radius: 8px; color: var(--muted); background: var(--surface-subtle); cursor: pointer; }
.composer-attachments span { margin-left: auto; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--faint); font-size: 11px; }
.composer-sheet form > footer, .dialog-card > footer, .settings-card > footer { margin-top: 19px; display: flex; justify-content: flex-end; gap: 8px; }

.task-drawer { width: min(760px, 100%); }
.task-drawer > header { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.task-drawer-main { padding: 22px; }
.task-title-edit { width: 100%; padding: 0 0 11px; border: 0; outline: 0; font-size: 24px; font-weight: 720; letter-spacing: -.035em; }
.task-properties { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 15px 0; }
.task-description-edit { width: 100%; min-height: 130px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; resize: vertical; outline: 0; line-height: 1.55; }
.task-files { margin-top: 18px; }
.task-files h3 { font-size: 13px; }
.task-file-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; min-height: 44px; padding: 7px 10px; border-radius: 8px; background: var(--surface-subtle); margin: 6px 0; }
.task-file-row strong, .task-file-row small { display: block; }
.task-file-row small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.drawer-footer { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border-top: 1px solid var(--line); }

.share-options { display: grid; gap: 15px; padding: 22px; }
.share-result { padding: 12px; border-radius: 10px; background: var(--surface-subtle); }
.share-result label { display: block; color: var(--muted); font-size: 11px; margin-bottom: 6px; }
.share-url { display: flex; gap: 7px; }
.share-url input { min-width: 0; flex: 1; height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.settings-card { padding: 22px; }
.settings-list { margin-top: 20px; display: grid; gap: 10px; }
.settings-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 54px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; }
.settings-row strong, .settings-row small { display: block; }
.settings-row small { margin-top: 3px; color: var(--muted); }

.search-dialog { width: min(720px, 100%); align-self: start; margin-top: 8vh; padding: 0; overflow: hidden; }
.search-dialog .search-field { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; min-height: 60px; padding-inline: 18px; }
.search-dialog .search-field input { font-size: 17px; }
.search-results { max-height: 60vh; overflow: auto; padding: 10px; }
.search-result { width: 100%; min-height: 52px; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 10px; padding: 7px 9px; border-radius: 9px; background: transparent; text-align: left; cursor: pointer; }
.search-result:hover { background: var(--surface-subtle); }
.search-result strong, .search-result small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result small { margin-top: 3px; color: var(--muted); font-size: 11px; }

.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 400; display: grid; gap: 8px; pointer-events: none; }
.toast { min-width: 260px; max-width: 400px; padding: 12px 14px; border: 1px solid #333; border-radius: 10px; background: #242321; color: white; box-shadow: var(--shadow-lg); animation: toastIn .18s ease-out; }
.toast.error { background: #9f382f; border-color: #9f382f; }
@keyframes toastIn { from { transform: translateY(8px); opacity: 0; } }

.mobile-topbar, .mobile-nav, .mobile-only, .sidebar-scrim { display: none; }
.desktop-only { display: inline-grid; }
.sidebar-reveal.desktop-only { display: none; }
body.sidebar-collapsed .sidebar-reveal.desktop-only, body[data-sidebar-state="collapsed"] .sidebar-reveal.desktop-only { display: inline-grid; }

@media (max-width: 820px) {
  :root { --sidebar: 292px; }
  body { background: white; }
  .mobile-only { display: inline-grid; }
  .desktop-only, body.sidebar-collapsed .sidebar-reveal, body[data-sidebar-state="collapsed"] .sidebar-reveal { display: none; }
  .sidebar { transform: translateX(-103%); transition: transform .22s cubic-bezier(.2,.8,.2,1); box-shadow: var(--shadow-lg); }
  body.sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-scrim { position: fixed; inset: 0; z-index: 40; background: rgba(26,22,19,.3); }
  body.sidebar-open .sidebar-scrim { display: block; }
  .workspace { margin-left: 0; padding-bottom: calc(67px + var(--safe-bottom)); }
  .mobile-topbar { position: sticky; top: 0; z-index: 20; height: 54px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(231,227,222,.86); background: rgba(255,255,255,.9); backdrop-filter: blur(14px); }
  .mobile-topbar .brand-mark { width: 27px; height: 27px; border-radius: 8px; padding: 0 6px; }
  .content { width: 100%; padding: 25px 17px 42px; }
  .view-header { margin-bottom: 20px; }
  .view-header h1 { font-size: 25px; }
  .view-header p { font-size: 12px; }
  .view-actions .button span { display: none; }
  .view-actions .button { width: 38px; padding: 0; }
  .quick-capture { margin-bottom: 22px; }
  .task-row { min-height: 60px; grid-template-columns: 27px minmax(0,1fr) auto; padding-block: 11px; }
  .task-actions { opacity: 1; }
  .task-actions .icon-button:not(:last-child) { display: none; }
  .mobile-nav { position: fixed; inset: auto 0 0; z-index: 35; height: calc(66px + var(--safe-bottom)); padding: 4px 6px var(--safe-bottom); display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; border-top: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(16px); }
  .mobile-nav a, .mobile-nav button { min-width: 0; height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 8px; color: var(--muted); background: transparent; text-decoration: none; font-size: 10px; }
  .mobile-nav a.active { color: var(--accent); font-weight: 750; }
  .mobile-nav svg { width: 21px; height: 21px; }
  .mobile-nav .mobile-add { width: 48px; height: 48px; place-self: center; border-radius: 16px; color: white; background: var(--accent); box-shadow: 0 5px 14px rgba(176,62,52,.3); }
  .mobile-nav .mobile-add svg { width: 25px; height: 25px; }
  .modal-backdrop { padding: 0; align-items: end; }
  .composer-sheet, .dialog-card, .settings-card { width: 100%; max-height: 92dvh; border: 0; border-radius: 22px 22px 0 0; }
  .task-drawer { width: 100%; height: 100dvh; max-height: 100dvh; display: flex; flex-direction: column; border: 0; border-radius: 0; }
  .task-drawer form { min-height: 0; flex: 1; display: flex; flex-direction: column; }
  .task-drawer-main { flex: 1; overflow-y: auto; }
  .task-drawer .drawer-footer { flex: 0 0 auto; padding-bottom: calc(15px + var(--safe-bottom)); background: white; }
  .composer-sheet form { padding: 20px 17px calc(18px + var(--safe-bottom)); }
  .composer-fields { grid-template-columns: 1fr 1fr; }
  .composer-fields label:first-child { grid-column: 1 / -1; }
  .task-drawer > header, .drawer-footer { padding-inline: 16px; }
  .task-drawer-main { padding: 18px 16px; }
  .task-properties { grid-template-columns: 1fr 1fr; }
  .search-dialog { margin-top: 0; border-radius: 0 0 18px 18px; align-self: start; }
  .file-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .file-card { padding: 13px; }
  .file-card-icon { margin-bottom: 17px; }
  .upcoming-week { top: 54px; margin-inline: -17px; padding-inline: 10px; }
  .upcoming-day { scroll-margin-top: 136px; }
  .archive-row { grid-template-columns: 24px minmax(0,1fr); }
  .archive-row > div { grid-column: 2; }
  .archive-panel > header { align-items: flex-start; flex-wrap: wrap; }
  .archive-panel > header > .archive-panel-tools { width: 100%; justify-content: space-between; }
  .toast-region { right: 12px; left: 12px; bottom: calc(78px + var(--safe-bottom)); }
  .toast { min-width: 0; max-width: none; }
}

@media (max-width: 500px) {
  .gate-screen { padding: 0; }
  .gate-card { min-height: 100dvh; border: 0; border-radius: 0; padding: 30px 22px; display: flex; flex-direction: column; justify-content: center; box-shadow: none; }
  .gate-card .brand-lockup { margin-bottom: 54px; }
  .gate-card h1 { font-size: 44px; }
  .gate-card > footer { margin-top: 48px; }
  .file-grid { grid-template-columns: 1fr; }
  .project-hero { padding: 18px; }
  .project-hero-row { gap: 12px; }
  .project-identity h1 { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Notas v2 */
.add-task-primary{background:transparent!important;color:#d1453b!important;box-shadow:none!important;border:0!important;padding:6px 9px!important;font-weight:500}.add-task-primary:hover{background:#f3efec!important}.project-nav-row{position:relative;display:flex;align-items:center;border-radius:5px;min-height:30px}.project-nav-row>a{display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;align-items:center;gap:4px;flex:1;min-width:0;padding:5px 8px!important;color:#45423e;text-decoration:none}.project-nav-row>a span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-nav-row.active,.project-nav-row:hover{background:#f0eeeb}.project-hash{font-size:15px;font-weight:500;color:var(--project-color,#777);text-align:center}.project-nav-row em{font-style:normal;font-size:11px;color:#8d8984;margin-right:9px}.project-more{display:none!important;width:25px!important;height:25px!important;margin-right:3px}.project-nav-row:hover em{display:none}.project-nav-row:hover .project-more{display:inline-grid!important}
.floating-menu{position:fixed;z-index:1400;background:#fff;border:1px solid #e5e2de;border-radius:10px;box-shadow:0 8px 30px #00000024;padding:5px;max-height:min(520px,calc(100vh - 16px));overflow:auto}.floating-menu[hidden]{display:none}.menu-group{padding:4px 0;border-bottom:1px solid #eeeae6}.menu-group:last-child{border-bottom:0}.menu-item{display:flex;width:100%;align-items:center;gap:10px;border:0;background:none;border-radius:6px;padding:8px 9px;color:#35322f;text-align:left;font-size:13px}.menu-item:hover{background:#f3f1ef}.menu-item svg{width:16px;height:16px;color:#77736d}.menu-item.danger{color:#d1453b}.menu-caption{padding:5px 9px;font-size:11px;color:#79756f;font-weight:600}.priority-menu{display:flex;gap:6px;padding:3px 8px 8px}.priority-menu button{display:grid;place-items:center;width:37px;height:32px;border:1px solid #e3dfda;background:#fff;border-radius:6px}.priority-menu button.selected{background:#f2efec}.priority-urgent svg{color:#d1453b}.priority-high svg{color:#eb8909}.priority-medium svg{color:#246fe0}.priority-low svg{color:#87837e}
.select-submenu{z-index:1401}
.task-row{position:relative}.drag-handle{position:absolute;left:-22px;top:12px;display:none;color:#aaa49d;cursor:grab}.task-row:hover .drag-handle{display:block}.task-actions{opacity:0}.task-row:hover .task-actions{opacity:1}.task-label,.file-tags span{color:var(--label-color);background:color-mix(in srgb,var(--label-color) 10%,white);padding:1px 5px;border-radius:4px}.dragging{opacity:.42}.inline-add-trigger,.subtle-action{display:flex;align-items:center;gap:7px;border:0;background:none;color:#77736d;padding:7px 2px;font-size:13px}.inline-add-trigger svg{width:16px;color:#d1453b}.inline-add-trigger:hover{color:#d1453b}.inline-add-slot form{border:1px solid #bdb8b2;border-radius:9px;padding:8px;background:#fff}.inline-add-slot input,.inline-add-slot textarea{display:block;width:100%;border:0;outline:0;font:inherit;padding:4px}.inline-add-slot footer{display:flex;justify-content:flex-end;gap:7px;border-top:1px solid #eeeae6;padding-top:7px}
.project-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin:2px 0 24px}.editable-project h1{font-size:26px;margin:0;padding:2px 4px;border-radius:4px}.editable-project p{font-size:13px;color:#77736d;margin:3px 0;padding:3px 4px;min-height:25px}.editable-project [contenteditable]:hover{background:#f6f4f2}.editable-project [contenteditable]:focus{outline:1px solid #d8d3ce;background:#fff}.editable-project [data-placeholder]:empty:before{content:attr(data-placeholder);color:#aaa49d}.project-command{display:flex;gap:20px;align-items:center;margin-bottom:18px}.project-layout{display:grid;gap:30px}.project-section-header{display:flex;align-items:flex-start;border-bottom:1px solid #e7e3df;padding:5px 0;gap:5px}.project-section-header>div{flex:1}.project-section-header h2{font-size:14px;margin:0;padding:2px}.project-section-header p{font-size:12px;color:#77736d;margin:3px 2px}.project-section-header em{font-size:11px;color:#999;font-style:normal}.section-drag{width:18px;color:#aaa49d;opacity:0;cursor:grab}.project-section:hover .section-drag{opacity:1}.project-board{display:flex;overflow-x:auto;align-items:flex-start;gap:16px;padding-bottom:15px}.board-column{flex:0 0 310px;background:#faf9f7;border:1px solid #ebe8e4;border-radius:10px;padding:10px}.board-column .task-row{background:#fff;border:1px solid #e7e3df;border-radius:7px;margin:7px 0;padding:9px}
.view-menu{display:grid;gap:8px;padding:5px}.view-menu label{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:8px;font-size:12px}.view-menu select{border:1px solid #ddd8d2;border-radius:5px;background:#fff;padding:5px;font-size:12px}.view-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px}.view-choice button{border:1px solid #e4e0dc;border-radius:7px;background:#faf9f7;padding:9px 5px;font-size:12px}.view-choice button.selected{background:#fff;border-color:#d1453b;color:#d1453b}.menu-toggle{padding:8px 0;border-bottom:1px solid #eeeae6}.menu-reset{border:0;background:none;color:#d1453b;padding:8px}.calendar-jump{display:flex;align-items:center;gap:6px;border:1px solid #ddd8d2;border-radius:7px;padding:6px 9px;background:#fff}.calendar-jump input{border:0;background:transparent;font:inherit;color:#555;outline:0}
.composer-sheet{max-width:620px}.composer-title-input{font-size:18px!important;font-weight:600}.composer-description-input{width:100%;border:0;outline:0;resize:vertical;padding:2px 0 10px;color:#77736d;font:inherit}.task-drawer.refined{width:min(980px,calc(100vw - 48px));max-width:980px;height:min(760px,calc(100vh - 40px));border-radius:12px;overflow:hidden}.task-drawer.refined>header{display:flex;justify-content:space-between}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 255px;height:calc(100% - 61px);overflow:hidden}.task-detail-grid main{padding:24px 34px;overflow:auto}.task-detail-grid aside{background:#faf9f7;border-left:1px solid #eeeae6;padding:18px 20px;overflow:auto}.task-detail-grid aside label{display:grid;gap:7px;padding:12px 0;border-bottom:1px solid #e7e3df;font-size:12px}.task-detail-grid aside input,.task-detail-grid aside select{border:0;background:transparent;font:inherit}.task-heading-edit{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center}.task-heading-edit input{font-size:20px;font-weight:650;border:0;outline:0}.task-detail-grid #detail-description{width:calc(100% - 36px);margin:5px 0 20px 36px;border:0;min-height:90px;resize:vertical;outline:0;font:inherit}.comments{border-top:1px solid #eeeae6;padding-top:18px}.comments article{display:flex;gap:9px;padding:9px 0}.comments article p{margin:0;font-size:13px}.comments article time{font-size:10px;color:#999}.comments form{display:grid;gap:7px}.comments textarea{border:1px solid #ddd8d2;border-radius:9px;padding:10px}.comments form button{justify-self:end}.activity-dialog{width:min(580px,calc(100vw - 30px));height:min(760px,calc(100vh - 30px));background:#fff;border-radius:12px;overflow:hidden}.activity-dialog>header{display:flex;align-items:center;gap:9px;padding:14px 17px;border-bottom:1px solid #eeeae6}.activity-dialog>header h2{font-size:15px;flex:1}.activity-feed{height:calc(100% - 65px);overflow:auto;padding:8px 17px}.activity-feed article{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #eeeae6}.dialog-card>header{padding:20px 22px 0}.dialog-body{padding:18px 22px;display:grid;gap:14px}.dialog-card>footer{padding:0 22px 20px;display:flex;justify-content:flex-end;gap:8px}
.file-card-body{display:grid;min-width:0}.file-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.file-tags span{font-size:10px}.file-more{opacity:0}.file-card:hover .file-more{opacity:1}.file-list{display:grid;border-top:1px solid #e9e5e1}.file-list .file-card{display:grid;grid-template-columns:38px minmax(0,1fr) 220px;align-items:center;border:0;border-bottom:1px solid #e9e5e1;border-radius:0;padding:10px 4px;box-shadow:none}.file-list .file-card-icon{width:32px;height:32px;margin:0}.file-list .file-card footer{border:0;padding:0}.active-file-filters{display:flex;gap:5px}.active-file-filters span{background:#f0eeeb;border-radius:4px;padding:4px 7px;font-size:11px}
@media(max-width:720px){.project-board{margin-right:-16px}.task-drawer.refined{width:100vw;height:100dvh;max-width:none;border-radius:0}.task-detail-grid{display:block;overflow:auto}.task-detail-grid main{padding:20px}.task-detail-grid aside{border-left:0;border-top:1px solid #eeeae6}.file-list .file-card{grid-template-columns:34px minmax(0,1fr)}.file-list .file-card footer{grid-column:2}.calendar-jump input{width:112px}}
@page{size:A4 portrait;margin:14mm 15mm}@media print{html,body{background:#fff!important;color:#111!important;font-size:10pt}.sidebar,.sidebar-reveal,.mobile-topbar,.mobile-nav,.sidebar-scrim,.view-actions,.project-command,.quick-capture,.inline-add-slot,.task-actions,.drag-handle,.section-drag,.floating-menu,.toast-region,.files-toolbar{display:none!important}.workspace{margin:0!important}.content{max-width:none!important;padding:0!important}.project-layout{display:block!important}.project-section,.upcoming-day{break-inside:avoid;margin-bottom:7mm}.task-row{break-inside:avoid;border-bottom:.5pt solid #ccc!important;padding:3mm 0!important}.project-board,.file-grid,.file-list{display:block!important;overflow:visible!important}.board-column{background:#fff!important;border:0!important;padding:0!important}.file-card{display:grid!important;grid-template-columns:10mm 1fr 45mm!important;border:0!important;border-bottom:.5pt solid #ccc!important;box-shadow:none!important}.modal-backdrop{position:static!important;background:#fff!important;padding:0!important}.task-drawer.refined{position:static!important;width:100%!important;height:auto!important;max-width:none!important;border:0!important;box-shadow:none!important}.drawer-footer,.comments form{display:none!important}.task-detail-grid{display:block!important;height:auto!important}.task-detail-grid main{padding:0!important;overflow:visible!important}.task-detail-grid aside{border:0!important;background:#fff!important;padding:5mm 0!important}body:has(.task-drawer.refined) .app-shell{display:none!important}}
.comments #task-comment-form{display:grid;gap:7px}.comments #task-comment-form button{justify-self:end}@media print{.comments #task-comment-form{display:none!important}}

/* Todoist parity pass — desktop, July 2026 */
:root{
  --sidebar:284px;
  --sidebar-bg:#fbfaf8;
  --ink:#202020;
  --muted:#666;
  --faint:#8f8f8f;
  --line:#e6e6e6;
  --line-strong:#d8d8d8;
  --accent:#d1453b;
  --accent-deep:#b93b32;
  --accent-soft:#f7e9e7;
  --surface-subtle:#f5f5f5;
  --shadow-sm:0 1px 2px rgba(0,0,0,.04);
  --shadow-lg:0 15px 50px rgba(0,0,0,.18);
  font-family:"Twemoji Country Flags",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
}
body{background:#fff;color:#202020;font-family:inherit;font-size:13px;line-height:1.4}
button,input,textarea,select{font-family:inherit}
svg{stroke-width:1.65}

/* Sidebar */
.sidebar{width:284px;padding:8px 12px 10px;background:#fbfaf8;border-right:0;font-size:13px}
.sidebar-header{height:44px;padding:0 4px}
.sidebar .brand-lockup.compact{gap:8px;font-size:14px;font-weight:650;letter-spacing:-.015em}
.sidebar .brand-lockup small{font-size:10px;font-weight:500;color:#777}
.sidebar .brand-mark{width:28px;height:28px;border-radius:7px;padding:0 7px;box-shadow:none}
.sidebar-header .icon-button{width:32px;height:32px;border-radius:5px}
.add-task-primary{min-height:34px!important;height:34px;margin:10px 0 5px!important;padding:0 8px!important;border-radius:5px!important;font-size:14px;font-weight:600!important}
.add-task-primary svg{width:21px;height:21px;stroke-width:2}
.add-task-primary kbd{display:none}
.main-nav{gap:0}
.main-nav a,.main-nav button{min-height:34px;height:34px;padding:5px 7px;border-radius:5px;gap:10px;color:#303030}
.main-nav svg{width:18px;height:18px;color:#666}
.main-nav a:hover,.main-nav button:hover,.project-nav-row:hover{background:rgba(0,0,0,.04)}
.main-nav a.active{color:#202020;background:rgba(209,69,59,.09);font-weight:400}
.main-nav em{font-size:11px;color:#999}
.project-nav{margin-top:17px}
.project-nav>header{height:36px;padding:0 4px;color:#555;font-size:13px;font-weight:600}
.project-nav>header .icon-button{width:28px;height:28px}
.project-nav-row{min-height:34px;height:34px;border-radius:5px}
.project-nav-row>a{height:34px;padding:5px 7px!important;grid-template-columns:18px minmax(0,1fr)!important;gap:3px!important;color:#303030}
.project-nav-row.active{background:rgba(209,69,59,.09);color:#202020}
.project-nav-row em{font-size:11px;color:#999;margin-right:8px}
.sidebar .project-nav-row .project-hash{font-size:21px!important;font-weight:400;line-height:1;color:var(--project-color,#6b8f9d)}
.project-nav nav{scrollbar-width:none}.project-nav nav::-webkit-scrollbar{width:0;height:0}
.sidebar-footer{border-top:0;padding-top:7px}
.sidebar-footer>button{min-height:42px;padding:5px 7px;border-radius:5px}
.sidebar-footer strong{font-size:12px;font-weight:600}.sidebar-footer small{font-size:10px}
.user-avatar{width:28px;height:28px;font-size:11px}

/* Main geometry */
.workspace{margin-left:284px;background:#fff}
.content{width:min(800px,calc(100% - 80px));padding:58px 0 90px}
.view-header{margin-bottom:24px;gap:20px}
.view-header h1{font-size:26px;line-height:35px;letter-spacing:-.02em;font-weight:700}
.view-header p{margin-top:3px;font-size:13px;color:#666}
.project-titlebar{margin:0 0 17px;align-items:flex-start;gap:20px}
.editable-project{min-width:0;flex:1}
.editable-project h1{display:inline-block;min-width:80px;max-width:100%;padding:0 3px;font-size:26px;line-height:35px;font-weight:700;letter-spacing:-.02em}
.editable-project p{display:block;width:100%;min-height:22px;margin:0;padding:0 3px 3px;font-size:13px;line-height:19px;color:#666}
.editable-project [contenteditable]:hover{background:rgba(0,0,0,.04);border-radius:5px}
.editable-project [contenteditable]:focus{outline:1px solid #b8b8b8;border-radius:5px;background:#fff}
.view-actions{gap:3px;align-items:center}
.project-titlebar .view-actions .button.secondary,.project-titlebar .view-actions>.icon-button{height:32px;min-height:32px;border:0;background:transparent;border-radius:5px;padding:0 8px;font-size:13px;font-weight:400;color:#555}
.project-titlebar .view-actions .button.secondary:hover,.project-titlebar .view-actions>.icon-button:hover{background:rgba(0,0,0,.04)}
.project-titlebar .view-actions svg{width:18px;height:18px}
.project-command{margin:0 0 20px;gap:8px}
.project-command .inline-add-trigger,.project-command .subtle-action{min-height:34px;padding:0 8px;border-radius:5px;color:#666}
.project-command .inline-add-trigger:hover,.project-command .subtle-action:hover{background:rgba(0,0,0,.04);color:#d1453b}

/* List view */
.project-layout{gap:32px}
.project-section{min-width:0}
.project-section-header{min-height:36px;align-items:center;padding:5px 0;border-bottom:1px solid #ddd;gap:4px}
.project-section-header h2{padding:1px 2px;font-size:14px;line-height:22px;font-weight:700}
.project-section-header p{margin:0 2px 3px;font-size:12px;color:#777}
.project-section-header em{padding:2px 4px;font-size:11px;color:#999}
.project-section-header .icon-button{width:28px;height:28px;border-radius:5px}
.section-drag{width:16px}.section-drag svg{width:15px}
.task-row{min-height:48px;grid-template-columns:22px minmax(0,1fr) 30px;gap:7px;padding:8px 0;border-bottom:1px solid #eee;background:#fff}
.task-row:hover{background:#fafafa}
.task-check{width:18px;height:18px;margin-top:1px;border-width:1.5px}
.task-title{font-size:13px;line-height:18px;white-space:normal}
.task-description{margin-top:1px;font-size:12px;line-height:16px;color:#666}
.task-meta{min-height:15px;margin-top:3px;gap:7px;font-size:11px}
.task-actions .icon-button{width:28px;height:28px;border-radius:5px}
.drag-handle{left:-19px;top:10px}
.inline-add-slot{min-height:34px}
.inline-add-trigger{min-height:34px;padding:0 8px;margin-left:-8px;border-radius:5px;color:#777;font-size:13px}
.inline-add-trigger:hover{background:rgba(0,0,0,.035);color:#d1453b}
.inline-add-trigger svg{width:18px;height:18px}

/* Board view */
.content:has(.project-board){width:100%;max-width:none;margin:0;padding:68px 40px 70px;overflow:hidden}
.content:has(.project-board) .project-titlebar{width:100%;margin-bottom:22px}
.content:has(.project-board) .project-command{display:none}
.project-board{display:flex;align-items:flex-start;gap:34px;margin:0 -40px;padding:0 40px 20px;overflow-x:auto;scrollbar-color:#aaa transparent}
.project-board .project-section{flex:0 0 260px;width:260px;padding:0;background:transparent;border:0;border-radius:0}
.project-board .project-section-header{height:38px;padding:5px 0;border:0;align-items:center}
.project-board .project-section-header h2{max-width:205px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:22px;font-weight:700}
.project-board .section-drag{display:none}
.project-board .task-list{display:grid;gap:10px}
.project-board .task-row{min-height:54px;grid-template-columns:20px minmax(0,1fr) 24px;gap:6px;margin:0;padding:10px;border:1px solid rgba(0,0,0,.12);border-radius:10px;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.04)}
.project-board .task-row:hover{border-color:rgba(0,0,0,.2);box-shadow:0 3px 8px rgba(0,0,0,.07)}
.project-board .task-title{line-height:18px}
.project-board .task-actions .icon-button{width:24px;height:24px}
.project-board .drag-handle{display:none!important}
.project-board .inline-add-trigger{width:100%;margin:2px 0 0;padding:0 10px;justify-content:flex-start}

/* Inline editor */
.inline-task-editor{width:100%;overflow:hidden;border:1px solid #b8b8b8!important;border-radius:10px!important;background:#fff!important;padding:10px 10px 0!important;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.project-command>.inline-task-editor{max-width:800px;margin:0}
.inline-task-copy input,.inline-task-copy textarea{display:block;width:100%;border:0!important;outline:0;background:transparent;padding:0!important}
.inline-task-copy input{height:24px;font-size:14px;font-weight:500}
.inline-task-copy textarea{height:24px!important;min-height:24px!important;resize:none;font-size:12px;line-height:18px;color:#666}
.inline-task-tools{display:flex;gap:6px;padding:7px 0}
.inline-task-tools span{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:1px solid #ddd;border-radius:5px;color:#666;font-size:12px}
.inline-task-tools svg{width:14px;height:14px}
.inline-task-editor footer{display:flex!important;justify-content:flex-end!important;gap:8px!important;margin:0 -10px!important;padding:8px 10px!important;border-top:1px solid #eee!important;background:#fff}

/* Buttons and floating menus */
.button{min-height:32px;height:32px;padding:0 12px;border-radius:5px;font-size:13px;font-weight:600;gap:6px}
.button.primary{background:#d1453b}.button.primary:hover{background:#b93b32}
.button.secondary{border:0;background:#f5f5f5;color:#333}.button.secondary:hover{background:#eee}
.button.small{min-height:32px;height:32px;font-size:12px}
.icon-button{width:32px;height:32px;border-radius:5px}
.floating-menu{width:250px;padding:5px;border:1px solid #ddd;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.menu-item{min-height:34px;padding:6px 8px;border-radius:5px;font-size:13px}
.menu-item svg{width:17px;height:17px}
.menu-group{padding:3px 0;border-color:#eee}
.view-menu{gap:7px;padding:3px}
.view-choice button{min-height:58px;border-color:#e4e4e4;border-radius:8px;background:#f7f7f7}
.view-choice button.selected{border-color:#ddd;background:#fff;color:#202020;box-shadow:0 1px 3px rgba(0,0,0,.06)}

/* Quick composer */
.modal-backdrop{padding:24px;background:rgba(0,0,0,.24);backdrop-filter:none}
.composer-sheet{width:min(550px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:visible;border:0;border-radius:10px;box-shadow:0 12px 38px rgba(0,0,0,.22)}
.composer-sheet{align-self:start;margin-top:94px}
.composer-sheet form{display:flex;flex-wrap:wrap;padding:12px 16px 0}
.composer-sheet header{display:none}
.composer-title-input{order:1;width:100%;height:27px;border:0;outline:0;padding:0;font-size:18px!important;line-height:24px;font-weight:600!important}
.composer-description-input{order:2;width:100%;height:24px!important;min-height:24px!important;padding:0!important;border:0!important;resize:none;font-size:13px!important;line-height:20px;color:#666}
.composer-hint{display:none}
.composer-fields{order:3;width:100%;display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 10px}
.composer-fields label{display:inline-flex;align-items:center;height:29px;padding:0 7px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#666}
.composer-fields label>span{font-size:11px;margin-right:4px}
.composer-fields select,.composer-fields input{max-width:120px;height:25px;padding:0;border:0;outline:0;background:transparent;font-size:12px;color:#555}
.composer-fields label:first-child{order:10;flex:1 0 100%;height:39px;margin:6px -16px -10px;padding:0 16px;border:0;border-top:1px solid #eee;border-radius:0;background:#fff}
.composer-fields label:first-child select{max-width:240px;font-weight:500}
.composer-attachments{order:4;display:flex;gap:6px;margin:0 0 10px}
.composer-attachments button{height:29px;padding:0 8px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#666;font-size:12px}
.composer-sheet form>footer{order:5;width:auto;margin:0 0 0 auto;padding:0 0 10px;align-self:flex-end;gap:8px}
.composer-sheet form{position:relative}
.composer-title-input,.composer-description-input{padding-right:76px!important}
.composer-attachments{position:absolute;z-index:2;top:9px;right:12px;order:0;margin:0;gap:2px}
.composer-attachments button{width:32px;height:32px;padding:0;justify-content:center;border:0;background:transparent;font-size:0}
.composer-attachments button:hover{background:#f1f0ef}
.composer-attachments button svg{width:17px;height:17px}
.composer-attachments>span{position:absolute;top:36px;right:0;max-width:210px;padding:3px 6px;border-radius:4px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1);font-size:11px}

/* Task detail and dialogs */
.task-drawer.refined{width:min(860px,calc(100vw - 48px));height:min(720px,calc(100dvh - 36px));display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:10px;box-shadow:0 16px 48px rgba(0,0,0,.25)}
.task-drawer.refined>header{height:46px;padding:0 14px;border-bottom:1px solid #eee;font-size:12px;color:#666}
.task-drawer.refined>form{min-height:0;flex:1;display:flex;flex-direction:column}
.task-detail-grid{min-height:0;flex:1;grid-template-columns:minmax(0,1fr) 260px;height:auto}
.task-detail-grid main{padding:24px 36px}
.task-detail-grid aside{padding:12px 20px;background:#fafafa;border-left:1px solid #eee}
.task-detail-grid aside label{padding:11px 0;font-size:12px;color:#666}
.task-heading-edit{grid-template-columns:24px 1fr;gap:8px}
.task-heading-edit input{height:32px;padding:0;font-size:20px;font-weight:600}
.task-detail-grid #detail-description{min-height:70px;margin:2px 0 18px 32px;font-size:13px;line-height:20px;color:#555}
.drawer-footer{min-height:56px;flex:0 0 56px;padding:10px 16px;border-top:1px solid #eee;background:#fff}
.dialog-card,.settings-card,.activity-dialog{border:0;border-radius:10px;box-shadow:0 14px 44px rgba(0,0,0,.22)}
.dialog-card>header{padding:18px 20px 0}.dialog-card h2{font-size:18px}.dialog-body{padding:16px 20px}.dialog-card>footer{padding:0 20px 18px}
.form-field input,.form-field textarea,.form-field select{border-color:#ddd;border-radius:5px}

/* Files and secondary views */
.file-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.file-card{padding:14px;border-color:#e1e1e1;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.025)}
.file-card:hover{transform:none;border-color:#cfcfcf;box-shadow:0 3px 8px rgba(0,0,0,.06)}
.file-card-icon{border-radius:8px}
.quick-capture{border-radius:10px;box-shadow:none}
.archive-panel,.report-summary{border-radius:10px}

@media(max-width:900px){
  .content{width:min(800px,calc(100% - 40px));padding-top:36px}
  .content:has(.project-board){padding:36px 20px 70px}
  .project-board{margin:0 -20px;padding-inline:20px}
}
@media(max-width:720px){
  .sidebar{width:min(284px,88vw)}
  .workspace{width:100%;margin-left:0}
  .content,.content:has(.project-board){width:100%;padding:22px 16px 88px}
  .project-titlebar{margin-top:5px}
  .editable-project h1{font-size:24px;line-height:32px}
  .project-titlebar .view-actions .button{width:32px;padding:0}
  .project-board{margin:0 -16px;padding-inline:16px;gap:14px}
  .project-board .project-section{flex-basis:84vw;width:84vw}
  .inline-task-editor{border-radius:8px!important}
  .composer-sheet{align-self:flex-end;width:100%;border-radius:10px 10px 0 0}
  .composer-sheet{margin-top:0}
  .modal-backdrop{padding:0}
  .task-drawer.refined{width:100vw;height:100dvh;max-height:none;border-radius:0}
  .task-detail-grid{display:block;height:auto;overflow:auto}
  .task-detail-grid main{padding:20px 18px}.task-detail-grid aside{padding:8px 18px}
}

/* Project editor: compact hierarchy inspired by Todoist */
#project-form.dialog-card{width:min(470px,calc(100vw - 28px));overflow:visible;border:1px solid #ddd9d5;border-radius:10px;box-shadow:0 12px 38px rgba(0,0,0,.2)}
#project-form.dialog-card>header{align-items:center;padding:17px 20px 13px;border-bottom:1px solid #ebe8e5}
#project-form.dialog-card>header .eyebrow{display:none}
#project-form.dialog-card>header h2{font-size:16px;line-height:22px;font-weight:650;letter-spacing:-.01em}
#project-form .dialog-body{gap:14px;padding:18px 20px 20px}
#project-form .form-field{display:grid;gap:6px}
#project-form .form-field>span,#project-form .project-color-field>legend{padding:0;color:#403c38;font-size:12px;font-weight:600}
#project-form input[type="text"],#project-form #project-name-input,#project-form textarea{width:100%;border:1px solid #cfcac5;border-radius:6px;background:#fff;color:#24211f;font:inherit;transition:border-color .12s,box-shadow .12s}
#project-form #project-name-input{height:38px;padding:0 10px;font-size:14px;font-weight:500}
#project-form textarea{min-height:72px;padding:9px 10px;resize:vertical;font-size:12.5px;line-height:18px}
#project-form input:focus,#project-form textarea:focus{border-color:#8d8882;box-shadow:0 0 0 1px #8d8882;outline:0}
#project-form>footer{margin:0;padding:13px 20px;border-top:1px solid #ebe8e5;background:#faf9f8;border-radius:0 0 10px 10px}
.project-color-field{min-width:0;margin:0;padding:0;border:0}
.project-color-grid{display:grid;grid-template-columns:repeat(7,32px);gap:7px;margin-top:7px}
.project-color-swatch{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;cursor:pointer}
.project-color-swatch:hover{background:#f2f0ee}
.project-color-swatch input{position:absolute;opacity:0;pointer-events:none}
.project-color-swatch span{width:24px;height:24px;display:grid;place-items:center;border:1px solid transparent;border-radius:50%;color:var(--swatch);font-size:19px;font-weight:500;line-height:1}
.project-color-swatch input:checked+span{border-color:var(--swatch);background:color-mix(in srgb,var(--swatch) 10%,white);box-shadow:0 0 0 2px #fff,0 0 0 3px color-mix(in srgb,var(--swatch) 55%,white)}
.project-dot{color:#77736d!important}

/* Task window controls and reminder property */
.task-window-controls{display:flex;align-items:center;gap:1px}
.task-window-controls .icon-button:disabled{opacity:.28;cursor:default}
.task-window-controls .icon-button svg{width:17px;height:17px}
.task-reminder-status{color:#8a655f}.task-reminder-status svg{width:12px;height:12px;stroke-width:1.8}
.calendar-reminder{display:grid;place-items:center;margin-left:auto;color:#a25b52;font-style:normal}.calendar-reminder svg{width:11px;height:11px;stroke-width:1.9}
.detail-property-button{width:100%;display:grid;grid-template-columns:1fr auto 14px;align-items:center;gap:7px;padding:10px 7px;border:0;border-bottom:1px solid #e7e3df;background:transparent;color:#484440;font:inherit;text-align:left;cursor:pointer}
.detail-property-button:hover{background:#f1efed;border-radius:5px}
.detail-property-button>span{font-size:12px;color:#77726d}
.detail-property-button>b{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.detail-property-button svg{width:14px;height:14px}

/* Reminders and preferences */
.reminder-dialog,.settings-dialog{width:min(500px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 28px));overflow:auto;border:1px solid #ddd9d5;border-radius:10px;background:#fff;box-shadow:0 14px 44px rgba(0,0,0,.22)}
.reminder-dialog>header,.settings-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px 13px;border-bottom:1px solid #ebe8e5}
.reminder-dialog h2,.settings-dialog h2{margin:0;font-size:17px;letter-spacing:-.015em}.reminder-dialog .eyebrow{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reminder-list{padding:8px 20px 2px}.reminder-list>div{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #efedea}
.reminder-list>div>span{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;column-gap:7px}.reminder-list svg{width:15px;height:15px;color:#d1453b}.reminder-list b{font-size:12px;font-weight:500}.reminder-list small{grid-column:2;color:#99938e;font-size:10px}
#reminder-form{padding:14px 20px 18px}.reminder-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:15px;padding:3px;border-radius:8px;background:#f3f1ef}
.reminder-tabs input{position:absolute;opacity:0}.reminder-tabs label{height:33px;display:grid;place-items:center;border-radius:6px;color:#6e6964;font-size:12px;cursor:pointer}.reminder-tabs input:checked+label{background:#fff;color:#25221f;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.13)}.reminder-tabs input:disabled+label{opacity:.38;cursor:not-allowed}
.reminder-relative-panel,.reminder-absolute-panel{min-height:76px}.reminder-absolute-panel{display:none}.reminder-dialog:has(#reminder-kind-absolute:checked) .reminder-relative-panel{display:none}.reminder-dialog:has(#reminder-kind-absolute:checked) .reminder-absolute-panel{display:block}
.reminder-dialog .form-field{display:grid;gap:6px}.reminder-dialog .form-field>span{font-size:11px;font-weight:600}.reminder-dialog .select-proxy,.reminder-dialog input[type="datetime-local"]{height:38px;width:100%;border:1px solid #d7d3cf;border-radius:6px;padding:0 10px;background:#fff;font:inherit;font-size:12px}
.reminder-relative-panel p{margin:8px 0 0;color:#85807a;font-size:11px;line-height:16px}.reminder-relative-panel .reminder-warning{color:#a65b32}
.reminder-dialog form>footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:13px;border-top:1px solid #ece9e6}
.settings-profile{display:flex;align-items:center;gap:11px;padding:16px 20px}.settings-profile .user-avatar{width:34px;height:34px}.settings-profile div{display:grid}.settings-profile strong{font-size:13px}.settings-profile small{color:#8a8580;font-size:11px}
.settings-section{margin:0 20px 16px;border:1px solid #e2dfdc;border-radius:9px;overflow:hidden}.settings-section.compact{padding-bottom:0}
.settings-section-title{display:grid;grid-template-columns:25px 1fr;gap:8px;padding:13px 14px;background:#faf9f8}.settings-section-title>span{width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#f0eeeb;color:#5f5a55}.settings-section-title svg{width:14px;height:14px}.settings-section-title h3{margin:0;font-size:12.5px}.settings-section-title p{margin:3px 0 0;color:#88827c;font-size:10.5px;line-height:15px}
.settings-toggle{min-height:57px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;border-top:1px solid #ebe8e5;cursor:pointer}.settings-toggle>span{display:grid;gap:2px}.settings-toggle b{font-size:12px}.settings-toggle small{color:#8c8781;font-size:10px}.settings-toggle input{position:absolute;opacity:0}.settings-toggle>i{width:32px;height:19px;padding:2px;border-radius:12px;background:#aaa6a1;transition:.15s}.settings-toggle>i:after{content:"";display:block;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:.15s}.settings-toggle input:checked+i{background:#d1453b}.settings-toggle input:checked+i:after{transform:translateX(13px)}
.settings-dialog>footer{display:flex;justify-content:flex-end;padding:13px 20px;border-top:1px solid #ebe8e5;background:#faf9f8}

/* Calendar belongs to the view instead of looking like a nested card */
.content:has(.calendar-view){max-width:1120px}
.calendar-view{min-width:720px;margin:11px 0 0;border:0;border-top:1px solid #e5e2df;border-radius:0;overflow:hidden}
.calendar-toolbar{height:45px;padding:0 2px;border-bottom:1px solid #e8e5e2;background:#fff}
.calendar-toolbar h2{min-width:176px;margin:0 7px;font-size:14px;font-weight:650}.calendar-toolbar .icon-button{width:28px;height:28px}.calendar-toolbar .button{height:28px;padding:0 10px;font-size:11px}
.calendar-weekdays{height:29px;border-bottom:1px solid #e8e5e2;background:#fff}.calendar-weekdays span{padding-left:7px;font-size:9.5px;font-weight:600;letter-spacing:.025em}
.calendar-day{min-height:124px;padding:6px 5px;border-color:#e9e6e3}.calendar-day.outside{background:#fcfbfa}.calendar-day.today{background:#fffaf8}
.calendar-day>time{margin:0 1px 2px auto;font-size:10.5px}.calendar-items{gap:2px;margin-top:1px}
.calendar-task,.calendar-file{min-height:23px;padding:3px 5px;border-radius:4px;background:#f6f4f2;font-size:10px;line-height:14px}.calendar-task:hover,.calendar-file:hover{background:#ece9e6}

@media(max-width:720px){
  #project-form.dialog-card,.reminder-dialog,.settings-dialog{width:100%;max-height:92dvh;border-radius:12px 12px 0 0}
  .project-color-grid{grid-template-columns:repeat(7,1fr)}
  .task-window-controls .icon-button{width:30px;height:30px}
}

/* Unified Todoist-like Format menus and calendar views */
.floating-menu:has(.todoist-format-menu){width:300px!important;padding:0;border-color:#dedbd7;border-radius:10px;overflow:hidden;box-shadow:0 7px 28px rgba(0,0,0,.18)}
.todoist-format-menu{display:block;padding:0;gap:0}
.todoist-format-menu .format-section{padding:10px 12px;border-bottom:1px solid #ece9e6}
.todoist-format-menu .menu-caption{padding:0 0 7px;color:#373431;font-size:12px;font-weight:600}
.todoist-format-menu .view-choice-three{grid-template-columns:repeat(3,1fr);gap:7px}
.todoist-format-menu .view-choice-four{grid-template-columns:repeat(4,1fr);gap:5px}
.todoist-format-menu .view-choice button{position:relative;min-width:0;height:63px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px 3px;border:0;border-radius:8px;background:#f3f2f0;color:#6d6964;font-size:11px;font-weight:400;line-height:14px;box-shadow:none}
.todoist-format-menu .view-choice button:hover{background:#ebe9e7;color:#383532}
.todoist-format-menu .view-choice button.selected{background:#fff;color:#24211f;box-shadow:0 0 0 1px #e0ddda,0 1px 3px rgba(0,0,0,.08)}
.todoist-format-menu .view-choice button>svg:first-child{width:18px;height:18px;stroke-width:1.6}
.todoist-format-menu .view-choice-check{position:absolute;top:5px;right:5px;width:11px!important;height:11px!important;color:#d1453b}
.todoist-format-menu .menu-toggle{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #ece9e6;font-size:12px}
.todoist-format-menu .menu-toggle input{appearance:none;width:31px;height:18px;margin:0;border:0;border-radius:12px;background:#aaa7a3;cursor:pointer;transition:.15s ease}
.todoist-format-menu .menu-toggle input:checked{background:#d1453b}
.todoist-format-menu .menu-toggle input:after{content:"";display:block;width:14px;height:14px;margin:2px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.22);transition:.15s ease}
.todoist-format-menu .menu-toggle input:checked:after{transform:translateX(13px)}
.todoist-format-menu .format-section label{min-height:34px;display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;color:#4d4945}
.todoist-format-menu .format-section label>span{white-space:nowrap}
.todoist-format-menu .select-proxy{width:100%;height:28px;margin:0;padding:0 8px;border-color:#ddd9d5;background:#fff;font-size:11.5px}
.todoist-format-menu .menu-reset{width:100%;height:38px;padding:0;border-radius:0;background:#fff;font-size:12px}
.todoist-format-menu .menu-reset:hover{background:#faf5f4}

.calendar-view{min-width:720px;margin-top:16px;border:1px solid #e2dfdc;border-radius:10px;background:#fff;overflow:hidden}
.calendar-toolbar{height:48px;display:flex;align-items:center;gap:3px;padding:0 12px;border-bottom:1px solid #e9e6e3}
.calendar-toolbar h2{min-width:170px;margin:0 8px;font-size:15px;font-weight:650;text-transform:capitalize}
.calendar-toolbar .button{margin-left:auto}
.calendar-weekdays,.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{height:30px;align-items:center;border-bottom:1px solid #ece9e6;background:#fbfaf9}
.calendar-weekdays span{padding-left:8px;color:#817c77;font-size:10px;font-weight:600;text-transform:uppercase}
.calendar-day{min-height:112px;padding:6px;border-right:1px solid #ece9e6;border-bottom:1px solid #ece9e6;background:#fff;transition:.12s ease}
.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}
.calendar-day.outside{background:#fbfaf9;color:#aaa5a0}.calendar-day.today{background:#fffaf9}
.calendar-day.drop-target{background:#faeeec;box-shadow:inset 0 0 0 1px #e7afa9}
.calendar-day>time{width:23px;height:23px;display:grid;place-items:center;margin-left:auto;border-radius:50%;font-size:11px}
.calendar-day.today>time{background:#d1453b;color:#fff;font-weight:700}
.calendar-items{display:grid;gap:3px;margin-top:3px}
.calendar-task,.calendar-file{width:100%;min-width:0;display:flex;align-items:center;gap:5px;padding:4px 6px;border:0;border-radius:4px;background:#f3f1ef;color:#383431;font-size:10.5px;line-height:14px;text-align:left;cursor:pointer}
.calendar-task[draggable="true"]{cursor:grab}.calendar-task.dragging{opacity:.35;cursor:grabbing}
.calendar-task{border-left:2px solid #8c8782}.calendar-task.priority-urgent{border-left-color:#d1453b}.calendar-task.priority-high{border-left-color:#eb8909}.calendar-task.priority-medium{border-left-color:#246fe0}
.calendar-task span,.calendar-file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-task small{display:none}.calendar-task time{margin-right:4px;color:#77726d;font-size:9.5px}
.calendar-file svg{width:12px;height:12px;flex:0 0 auto}.calendar-file:hover,.calendar-task:hover{background:#eae7e4}
.global-board{margin-top:14px}

.date-time-field{padding:0!important;overflow:hidden}
.date-time-field>span{display:none}
.date-time-trigger{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:0;border-radius:5px;background:transparent;color:#5f5b56;font:inherit;cursor:pointer;white-space:nowrap}
.date-time-trigger:hover{background:#f2f0ee}.date-time-trigger svg{width:14px;height:14px}.date-time-trigger svg:last-child:not(:first-child){width:12px;margin-left:auto}.date-time-trigger b{font-size:12px;font-weight:500}
.task-detail-grid aside .detail-date-time{display:block;padding:9px 0}
.task-detail-grid aside .detail-date-time>span{display:block;margin-bottom:4px}
.task-detail-grid aside .date-time-trigger{width:100%;height:30px;padding:0 7px;background:transparent;text-align:left}
.date-time-popover{display:grid;gap:10px;padding:8px}
.date-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-bottom:9px;border-bottom:1px solid #ece9e6}
.date-quick-actions button{height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:7px;background:#f5f3f1;color:#4f4b47;font-size:10.5px;cursor:pointer}
.date-quick-actions button:hover{background:#ebe8e5}.date-quick-actions svg{width:17px;height:17px}
.date-time-popover>label{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:8px;font-size:12px}
.date-time-popover>label span{display:flex;align-items:baseline;gap:4px}.date-time-popover>label small{color:#98938d;font-size:9.5px}
.date-time-popover input{width:100%;height:32px;border:1px solid #d8d4d0;border-radius:5px;padding:0 8px;background:#fff;font:inherit}
.date-time-popover footer{display:flex;justify-content:flex-end;gap:7px;padding-top:2px}

/* Composer hierarchy and compact single-line properties */
.composer-title-input{height:32px;font-size:21px!important;line-height:29px;font-weight:650!important;letter-spacing:-.012em}
.composer-description-input{height:31px!important;min-height:31px!important;font-size:13.5px!important;line-height:23px}
.composer-fields{flex-wrap:nowrap;align-items:center;overflow:visible;margin:8px 0 11px}
.composer-fields label{flex:0 1 auto;min-width:0;height:29px;margin:0!important;padding:0 5px!important;border:1px solid #ddd!important;border-radius:5px!important;background:#fff!important}
.composer-fields label:first-child{order:0;flex:1 1 145px;min-width:105px}
.composer-fields label>span{display:none}
.composer-fields .select-proxy{max-width:135px!important;padding:0 5px}.composer-fields label:first-child .select-proxy{max-width:170px!important}
.composer-fields input:not([hidden]){max-width:105px}
.inline-task-tools{align-items:center}.inline-task-tools button,.inline-task-tools label{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 7px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#666;font-size:12px}
.inline-task-tools label svg{width:14px;height:14px}.inline-task-tools select{border:0;background:transparent;color:inherit;font:inherit}
.file-edit-dialog{width:min(500px,calc(100vw - 32px))}
.file-edit-dialog .dialog-body{display:grid;gap:15px}
.file-edit-dialog .form-field{gap:6px}.file-edit-dialog .form-field>span{font-size:12px;font-weight:600;color:#484440}
.file-edit-dialog .form-field>small{color:#918c86;font-size:10.5px;line-height:15px}
.file-edit-dialog .select-proxy{height:38px;border-radius:6px}
.file-edit-dialog input{height:38px;padding:0 10px}

@media(max-width:760px){
  .content:has(.calendar-view){overflow-x:auto}.calendar-view{min-width:670px}
  .composer-fields{flex-wrap:wrap}.composer-fields label{flex:1 1 calc(50% - 4px)}.composer-fields label:first-child{flex-basis:100%}
  .todoist-format-menu .view-choice button{height:58px}
}

/* Refined interaction pass — dropdowns, drag targets, activity and uploads */
.task-list[data-drop-project]{min-height:34px;transition:background-color .14s ease,box-shadow .14s ease}
.project-board .task-list[data-drop-project]{min-height:38px;border-radius:8px}
.task-list.drop-target{background:#f8eeeb;box-shadow:inset 0 0 0 1px #e8b9b4;border-radius:8px}
.project-section.drop-target>.project-section-header{background:#f8f6f4;border-radius:6px}
.task-row[draggable="true"]{cursor:grab}
.task-row.dragging{cursor:grabbing;opacity:.38;transform:scale(.985)}
.section-drag[draggable="true"]{cursor:grab}
.project-section-header[draggable="true"]{cursor:grab}.project-section-header[draggable="true"] button,.project-section-header[draggable="true"] [contenteditable="true"]{cursor:pointer}.project-section.dragging{opacity:.52}.project-section.dragging>.project-section-header{cursor:grabbing}

.native-select-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.select-proxy{width:100%;min-width:0;height:32px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 9px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#3d3a37;font:inherit;text-align:left;cursor:pointer}
.select-proxy:hover{border-color:#c7c3bf;background:#faf9f8}
.select-proxy:focus-visible{outline:2px solid rgba(47,109,203,.28);outline-offset:1px}
.select-proxy>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-proxy>i{width:7px;height:7px;flex:0 0 auto;border-right:1.5px solid #777;border-bottom:1.5px solid #777;transform:rotate(45deg) translateY(-2px)}
.composer-fields label:has(.select-proxy){padding-right:4px}
.composer-fields .select-proxy{width:auto;max-width:150px;height:25px;padding:0 7px;border:0;background:transparent;font-size:12px}
.composer-fields label:first-child .select-proxy{max-width:260px;font-weight:500}
.task-detail-grid aside .select-proxy{height:30px;margin-top:3px;padding:0;border:0;background:transparent;color:#35322f}
.task-detail-grid aside .select-proxy:hover{background:#f1efed}
.view-menu .select-proxy{height:31px;margin-top:4px;font-size:12px}
.select-popover{display:grid;gap:5px}
.select-search{height:34px;display:flex;align-items:center;gap:7px;margin:1px;padding:0 9px;border:1px solid #cfcac5;border-radius:6px;background:#fff}
.select-search svg{width:15px;height:15px;color:#888}
.select-search input{width:100%;min-width:0;border:0;outline:0;font:inherit}
.select-options{max-height:320px;overflow:auto;padding:1px}
.select-option{width:100%;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 9px;border:0;border-radius:5px;background:transparent;color:#35322f;font:inherit;text-align:left;cursor:pointer}
.select-option:hover,.select-option.selected{background:#f3f1ef}
.select-option.selected{font-weight:600}
.select-option svg{width:15px;height:15px;color:#d1453b}
.select-option[hidden]{display:none}
.destination-section-field-hidden{display:none!important}
.destination-popover{gap:4px}
.destination-caption{padding:5px 10px 3px;color:#88837d;font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.045em}
.destination-branch{display:grid}
.destination-option .destination-project{display:flex;align-items:center;gap:9px;min-width:0}
.destination-project b{width:15px;color:#5d8e99;font-size:16px;font-weight:500;text-align:center}
.destination-option.destination-section{min-height:31px;padding-left:31px;color:#5e5a56;font-size:12px}
.destination-option.destination-section span{display:flex;align-items:center;gap:7px}
.destination-option.destination-section span svg{width:12px;color:#aaa49e}
.destination-proxy>span{font-weight:500}
input[type="date"]{height:32px;padding:0 8px;border:1px solid #ddd;border-radius:5px;background:#fff;color:#47433f;font:inherit;color-scheme:light}

.reports-heading{margin-bottom:16px}
.report-filters{display:flex;align-items:center;gap:8px;padding:10px 0 13px;border-bottom:1px solid #e7e4e1}
.report-filters>select{min-width:170px}
.report-filters .select-proxy{width:auto;min-width:180px;height:32px;font-size:12px}
.report-search{height:32px;min-width:220px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid #ddd;border-radius:6px;background:#fff}
.report-search svg{width:14px;height:14px;color:#89847f}
.report-search input{width:100%;min-width:0;border:0;outline:0;font:inherit;font-size:12px}
.report-count{padding:12px 0 7px;color:#8a8580;font-size:11px}
.report-day{margin:12px 0 22px}
.report-day>header{height:31px;display:flex;align-items:center;gap:7px;border-bottom:1px solid #e8e5e2}
.report-day>header h2{margin:0;font-size:12px;text-transform:capitalize}
.report-day>header span{color:#99948e;font-size:10px}
.report-row{min-height:43px;display:grid;grid-template-columns:25px minmax(0,1fr) minmax(90px,150px) 70px;align-items:center;gap:9px;padding:5px 0;border-bottom:1px solid #efedea;font-size:11.5px}
.report-row .user-avatar{width:25px;height:25px;font-size:9px}
.report-event{min-width:0;display:flex;align-items:center;gap:7px;white-space:nowrap}
.report-event>span{color:#68635e}
.report-event button{min-width:0;max-width:420px;height:27px;display:flex;align-items:center;gap:6px;padding:0 8px;border:1px solid #dedad6;border-radius:4px;background:#fff;color:#35322f;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.report-event button i{width:10px;height:10px;flex:0 0 auto;border:1px solid #bcb7b1;border-radius:50%}
.report-project,.report-row time{overflow:hidden;color:#908b85;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.report-row time{text-align:right}

.activity-dialog{width:min(580px,calc(100vw - 32px));height:min(820px,calc(100dvh - 32px))}
.activity-dialog>header{height:51px;padding:0 17px;gap:8px}
.activity-dialog>header h2{margin:0;font-size:15px;line-height:20px}
.activity-dialog>nav{display:flex;justify-content:center;margin:10px 17px 8px;padding:0}
.activity-dialog>nav strong{min-width:92px;height:32px;display:grid;place-items:center;padding:0 15px;border:1px solid #ddd;border-radius:18px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05);font-size:13px;font-weight:600}
.activity-feed{height:calc(100% - 101px);padding:0 17px 10px}
.activity-feed article{min-height:48px;display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid #ece9e6}
.activity-feed .user-avatar{width:27px;height:27px;font-size:10px}
.activity-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.activity-copy p{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;line-height:18px}
.activity-copy time{color:#9a9691;font-size:10.5px;white-space:nowrap}

.drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.drawer-footer>div{display:flex;align-items:center;gap:8px}
.drawer-footer .button{height:32px;min-height:32px;margin:0}
.task-breadcrumb{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-breadcrumb b{color:#5f8e9a;font-weight:500}.task-breadcrumb i{color:#aaa;font-style:normal}
.task-files{margin:4px 0 20px 32px;padding:14px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}
.task-files-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.task-files-heading h3{margin:0;font-size:13px}
.task-files-heading .subtle-action{padding:5px 7px;border-radius:5px;color:#666}
.task-files-heading .subtle-action:hover{background:#f3f1ef;color:#333}
.task-file-row{min-height:42px;margin:4px 0;padding:5px 7px;background:#faf9f8}
.task-file-row>div{display:flex;gap:2px}
.task-files-empty{margin:4px 0 0;color:#8a8681;font-size:12px}

.upload-dialog{width:min(520px,calc(100vw - 32px))}
.upload-dialog>header{padding:20px 22px 0}
.upload-dialog>header p:not(.eyebrow){margin:4px 0 0;color:#77736d;font-size:12px}
.upload-dialog .dialog-body{gap:16px;padding:18px 22px}
.upload-dropzone{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:1.5px dashed #cfc9c3;border-radius:10px;background:#fbfaf9;text-align:center;cursor:pointer;transition:.15s ease}
.upload-dropzone:hover{border-color:#b9665e;background:#fff8f7}
.upload-dropzone>svg{width:28px;height:28px;color:#77736d}
.upload-dropzone strong{font-size:14px}.upload-dropzone span{max-width:360px;color:#89847e;font-size:11px;line-height:16px}
.upload-dropzone em{height:32px;display:inline-flex;align-items:center;padding:0 12px;border-radius:5px;background:#f0eeec;color:#3e3a37;font-size:12px;font-style:normal;font-weight:600}
.upload-dropzone input{display:none}
.privacy-note{display:flex;align-items:center;gap:7px;margin:0;color:#7c7872;font-size:11px}.privacy-note svg{width:15px;height:15px;color:#57905e}

@media(max-width:720px){
  .floating-menu{max-width:calc(100vw - 16px)}
  .activity-dialog{width:100%;height:92dvh;border-radius:12px 12px 0 0}
  .task-files{margin-left:32px}
  .upload-dialog{width:100%;border-radius:12px 12px 0 0}
  .upload-dropzone{min-height:165px}
  .report-filters{flex-wrap:wrap}.report-search{width:100%}.report-filters .select-proxy{flex:1;min-width:140px}
  .report-row{grid-template-columns:25px minmax(0,1fr) 58px}.report-project{display:none}.report-event{display:block}.report-event>span{display:block;margin-bottom:3px}.report-event button{width:100%}
}

/* Project Gantt: a focused desktop planner plus a dedicated mobile surface */
.content:has(.gantt-view){width:min(1460px,calc(100% - 54px));max-width:none}
.gantt-view{--gantt-border:#e7e3df;--gantt-soft:#fbfaf8;color:#302d2a}
.gantt-desktop{margin:8px 0 28px;border:1px solid var(--gantt-border);border-radius:11px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.025);overflow:auto}
.gantt-toolbar{position:sticky;left:0;z-index:4;min-width:900px;height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--gantt-border);background:#fff}
.gantt-toolbar>div{display:flex;align-items:baseline;gap:9px}.gantt-toolbar strong{font-size:14px}.gantt-toolbar span{color:#8b8580;font-size:11px}.gantt-toolbar nav{display:flex;align-items:center;gap:3px}.gantt-toolbar nav .button{margin:0 2px}
.gantt-table{min-width:900px;display:grid;grid-template-columns:230px minmax(670px,1fr);align-items:stretch}
.gantt-table-title{position:sticky;left:0;z-index:3;min-height:49px;display:flex;flex-direction:column;justify-content:center;padding:0 13px;border-right:1px solid var(--gantt-border);border-bottom:1px solid var(--gantt-border);background:var(--gantt-soft)}
.gantt-table-title span{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.03em}.gantt-table-title small{margin-top:2px;color:#96908a;font-size:9.5px}
.gantt-date-head{display:grid;grid-template-columns:repeat(var(--gantt-days),minmax(0,1fr));min-height:49px;border-bottom:1px solid var(--gantt-border);background:var(--gantt-soft)}
.gantt-date-head time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-right:1px solid #efedea;color:#8c8680;font-size:9px;text-transform:uppercase}.gantt-date-head time b{font-size:11px;font-weight:550;color:#5f5a55}.gantt-date-head time.today b{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#d1453b;color:#fff;font-weight:700}.gantt-date-head time.today span{color:#d1453b;font-weight:700}
.gantt-group{display:contents}.gantt-group.collapsed>.gantt-task-cell,.gantt-group.collapsed>.gantt-track{display:none}
.gantt-section-cell{position:sticky;left:0;z-index:3;min-height:36px;display:grid;grid-template-columns:22px minmax(0,auto) minmax(0,1fr) auto;align-items:center;gap:5px;padding:0 9px;border-right:1px solid var(--gantt-border);border-bottom:1px solid var(--gantt-border);background:#f7f5f3}.gantt-section-cell>button{width:22px;height:22px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:#77716b;cursor:pointer}.gantt-section-cell>button:hover{background:#ece9e6}.gantt-section-cell svg{width:13px;height:13px}.gantt-section-cell strong{font-size:11px;white-space:nowrap}.gantt-section-cell small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#938d87;font-size:9px}.gantt-section-cell em{color:#99938d;font-size:10px;font-style:normal}
.gantt-section-line{min-height:36px;display:grid;grid-template-columns:repeat(var(--gantt-days),minmax(0,1fr));align-items:center;border-bottom:1px solid var(--gantt-border);overflow:hidden}.gantt-section-span{grid-row:1;z-index:2;height:8px;margin:0 2px;border-radius:5px;background:color-mix(in srgb,var(--gantt-color) 30%,#fff);border:1px solid color-mix(in srgb,var(--gantt-color) 47%,#fff);overflow:hidden}.gantt-section-span b{display:none}
.gantt-task-cell{position:sticky;left:0;z-index:3;min-height:45px;display:grid;grid-template-columns:24px minmax(0,1fr) 25px;align-items:center;gap:4px;padding:4px 8px;border-right:1px solid var(--gantt-border);border-bottom:1px solid var(--gantt-border);background:#fff}
.gantt-task-cell .task-check{width:18px;height:18px}.gantt-task-title{min-width:0;display:grid;gap:1px;padding:3px;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer}.gantt-task-title:hover{background:#f5f3f1}.gantt-task-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:500}.gantt-task-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#99938d;font-size:9.5px}.gantt-edit-date{width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#8c8680;cursor:pointer}.gantt-edit-date:hover{background:#f0eeeb;color:#444}.gantt-edit-date svg{width:14px;height:14px}
.gantt-track,.gantt-mobile-track{position:relative;display:grid;grid-template-columns:repeat(var(--gantt-days),minmax(0,1fr));align-items:center;min-height:45px;border-bottom:1px solid var(--gantt-border);overflow:hidden}
.gantt-grid-day{grid-row:1;align-self:stretch;border-right:1px solid #f0eeeb;background:#fff}.gantt-grid-day.weekend{background:#fff}.gantt-grid-day.today{background:#fff6f4;box-shadow:inset 1px 0 #e3a29b}.gantt-track.drop-target{background:#fff3f1;box-shadow:inset 0 0 0 1px #dda59f}
.gantt-bar{grid-row:1;z-index:2;height:25px;min-width:6px;margin:0 2px;display:flex;align-items:center;padding:0 7px;border:1px solid color-mix(in srgb,var(--bar-color) 58%,#fff);border-left-width:3px;border-radius:5px;background:color-mix(in srgb,var(--bar-color) 30%,#fff);color:#332f2c;box-shadow:0 1px 2px rgba(0,0,0,.06);cursor:grab;overflow:hidden}.gantt-bar:hover{filter:saturate(1.12);box-shadow:0 2px 5px rgba(0,0,0,.1)}.gantt-bar:active,.gantt-bar.dragging{cursor:grabbing;opacity:.68}.gantt-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:600}.gantt-bar.priority-urgent{border-left-color:#d1453b}.gantt-bar.priority-high{border-left-color:#eb8909}.gantt-bar.priority-medium{border-left-color:#246fe0}.gantt-bar.priority-low{border-left-color:#8a8580}.gantt-bar.completed{opacity:.48}.gantt-bar.completed span{text-decoration:line-through}
.gantt-edge{grid-row:1;z-index:2;width:20px;height:24px;display:grid;place-items:center;align-self:center;justify-self:center;border:0;border-radius:5px;background:#f0eeeb;color:#77716b;cursor:pointer}.gantt-edge svg{width:13px;height:13px}
.gantt-empty{grid-column:1/-1;padding:34px;text-align:center;color:#8c8680;font-size:12px}.gantt-legend{position:sticky;left:0;min-width:900px;min-height:36px;display:flex;align-items:center;gap:22px;padding:7px 13px;background:#fbfaf9;color:#89837d;font-size:9.5px}.gantt-legend span{display:flex;align-items:center;gap:6px}.gantt-legend i{width:19px;height:8px;border-radius:3px;background:color-mix(in srgb,var(--gantt-color) 28%,#fff);border:1px solid color-mix(in srgb,var(--gantt-color) 52%,#fff)}.gantt-legend .today-key i{width:8px;height:8px;border-radius:50%;background:#d1453b;border:0}.gantt-legend svg{width:13px;height:13px}
.gantt-mobile{display:none}

.gantt-editor{width:min(520px,calc(100vw - 28px));overflow:visible}.gantt-editor>header h2{max-width:410px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-editor .dialog-body{display:grid;gap:18px}.gantt-editor-range{display:grid;grid-template-columns:1fr 24px 1fr;align-items:end;gap:8px}.gantt-editor-range>span{height:38px;display:grid;place-items:center;color:#aaa49e}.gantt-editor-range>span svg{width:15px}.gantt-editor-range input{height:38px;padding:0 9px}.gantt-duration-presets{display:grid;gap:7px}.gantt-duration-presets>span{font-size:11px;font-weight:600}.gantt-duration-presets>div{display:flex;flex-wrap:wrap;gap:6px}.gantt-editor-note{margin:0;padding:10px 11px;border-radius:7px;background:#f7f5f3;color:#7d7771;font-size:10.5px;line-height:15px}
.gantt-color-field{margin:0;padding:0;border:0}.gantt-color-field legend{margin-bottom:8px;font-size:11px;font-weight:600}.gantt-color-field>div{display:flex;gap:9px}.gantt-color-field label{position:relative;cursor:pointer}.gantt-color-field input{position:absolute;opacity:0}.gantt-color-field span{width:28px;height:28px;display:block;border:5px solid #fff;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #d8d3ce;transition:.12s}.gantt-color-field label:hover span{transform:scale(1.08)}.gantt-color-field input:checked+span{box-shadow:0 0 0 2px #37322e,0 0 0 5px #fff}

/* Gantt refinement: every row shares one fixed calendar grid */
.gantt-view{--gantt-label-width:260px;--gantt-head-height:48px;--gantt-section-height:40px;--gantt-task-height:46px;--gantt-weekend:#faf9f7;--gantt-line:#eeebe7}
.gantt-desktop{border-color:#dfdbd6;border-radius:12px;box-shadow:0 5px 20px rgba(44,39,35,.045)}
.gantt-toolbar{height:54px;padding:0 16px;background:#fdfcfb}.gantt-toolbar strong{font-size:13.5px;font-weight:650}.gantt-toolbar span{padding-left:9px;border-left:1px solid #ded9d4;color:#7d7771;font-size:10.5px}
.gantt-table{grid-template-columns:var(--gantt-label-width) minmax(812px,1fr)}
.gantt-table-title,.gantt-date-head,.gantt-section-cell,.gantt-section-line,.gantt-task-cell,.gantt-track{box-sizing:border-box}
.gantt-table-title,.gantt-date-head{height:var(--gantt-head-height);min-height:var(--gantt-head-height)}
.gantt-table-title{padding:0 14px;background:#faf8f6}.gantt-table-title span{font-size:10.5px}.gantt-table-title small{font-size:9px}
.gantt-date-head{background:#fbfaf9}.gantt-date-head time{position:relative;min-width:0;border-right:1px solid var(--gantt-line);background:#fbfaf9}.gantt-date-head time.weekend{background:var(--gantt-weekend);box-shadow:inset 0 2px #ece7e2}.gantt-date-head time.weekend span{color:#817a74;font-weight:600}.gantt-date-head time.today{background:#fff9f8;box-shadow:inset 1px 0 #e6b7b2,inset -1px 0 #e6b7b2}.gantt-date-head time.today span{color:#b94a43}
.gantt-section-cell{height:var(--gantt-section-height);min-height:var(--gantt-section-height);grid-template-columns:22px 16px minmax(0,1fr) auto;grid-template-rows:1fr 1fr;column-gap:5px;row-gap:0;padding:3px 10px;background:#f7f5f2}.gantt-section-cell>button:not(.gantt-section-color){grid-column:1;grid-row:1/3;align-self:center}.gantt-section-cell .gantt-section-color{grid-column:2;grid-row:1/3;align-self:center}.gantt-section-cell strong{grid-column:3;grid-row:1;align-self:end;overflow:hidden;text-overflow:ellipsis;font-size:10.75px}.gantt-section-cell small{grid-column:3/5;grid-row:2;align-self:start;overflow:visible;text-overflow:clip;color:#827b74;font-size:8.5px}.gantt-section-cell em{grid-column:4;grid-row:1;align-self:end;min-width:18px;text-align:right;font-size:9px}
.gantt-section-color{width:16px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;cursor:pointer}.gantt-section-color:hover{background:#ebe7e3}.gantt-section-color i{width:10px;height:10px;border:1px solid color-mix(in srgb,var(--section-color) 72%,#fff);border-radius:50%;background:var(--section-color);box-shadow:0 0 0 2px #fff}
.gantt-section-line{height:var(--gantt-section-height);min-height:var(--gantt-section-height);background:#fbfaf8}.gantt-section-span{height:26px;margin:0 3px;border-radius:7px;background:color-mix(in srgb,var(--section-color,var(--gantt-color)) 24%,#fff);border-color:color-mix(in srgb,var(--section-color,var(--gantt-color)) 54%,#fff);box-shadow:0 1px 2px rgba(42,36,32,.06),inset 0 1px rgba(255,255,255,.7)}
.gantt-task-cell,.gantt-track{height:var(--gantt-task-height);min-height:var(--gantt-task-height)}.gantt-task-cell{padding:4px 9px}.gantt-task-title strong{font-size:10.75px}.gantt-task-title small{font-size:8.5px}
.gantt-section-cell,.gantt-section-line,.gantt-task-cell,.gantt-track{border-bottom-color:var(--gantt-line)}
.gantt-grid-day{box-sizing:border-box;border-right:1px solid var(--gantt-line);background:#fff}.gantt-grid-day.weekend{background:var(--gantt-weekend);box-shadow:inset 1px 0 #f1eeeb}.gantt-grid-day.today{background:#fff9f8;box-shadow:inset 1px 0 #e6b7b2,inset -1px 0 #e6b7b2}.gantt-grid-day.weekend.today{background:#fff9f8}
.gantt-bar{height:36px;margin:0 3px;padding:0 8px;border-width:1px;border-left-width:3px;border-radius:7px;background:color-mix(in srgb,var(--bar-color) 23%,#fff);box-shadow:0 1px 3px rgba(42,36,32,.08),inset 0 1px rgba(255,255,255,.65)}.gantt-bar span{font-size:8.75px;font-weight:650}
.gantt-legend{min-height:36px;gap:18px;padding:7px 13px;border-top:0;font-size:8.75px}.gantt-legend .weekend-key i{width:14px;height:10px;border:1px solid #e7e2dc;border-radius:3px;background:var(--gantt-weekend);box-shadow:inset 0 2px #ece7e2}.gantt-legend .today-key i{width:8px;height:8px}
.gantt-color-field{padding:13px 14px 15px;border:1px solid #e5e0db;border-radius:9px;background:#fbfaf8}.gantt-color-field legend{padding:0 5px;color:#4d4843;font-size:11.5px}.gantt-color-field>div{gap:11px}.gantt-color-field span{width:30px;height:30px;border-width:4px;box-shadow:0 0 0 1px #cbc5bf,0 2px 5px rgba(0,0,0,.06)}.gantt-color-field input:focus-visible+span{outline:2px solid #246fe0;outline-offset:3px}.gantt-color-field input:checked+span{box-shadow:0 0 0 2px #37322e,0 0 0 5px #fbfaf8,0 3px 8px rgba(0,0,0,.12)}
.gantt-apply-color{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px;cursor:pointer}.gantt-apply-color>input{position:absolute;opacity:0}.gantt-apply-color>span{display:grid;gap:2px}.gantt-apply-color b{font-size:11.5px}.gantt-apply-color small{color:#8b8580;font-size:9.5px}.gantt-apply-color>i{position:relative;width:34px;height:20px;flex:0 0 auto;border-radius:999px;background:#d8d4d0;transition:.15s}.gantt-apply-color>i:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.15s}.gantt-apply-color>input:checked~i{background:#d1453b}.gantt-apply-color>input:checked~i:after{transform:translateX(14px)}

.board-add-section{flex:0 0 286px;min-height:68px;padding:0 2px}.board-add-section>button{width:100%;min-height:56px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px dashed #d8d3ce;border-radius:10px;background:#faf9f7;color:#625d58;font-size:12px;font-weight:550;text-align:left;cursor:pointer;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.board-add-section>button:hover{border-color:#c8b3ad;background:#fff7f5;color:#3b3632;box-shadow:0 2px 7px rgba(0,0,0,.05)}.board-add-section>button>svg{width:27px;height:27px;padding:6px;border-radius:50%;background:#f8e7e5;color:#d1453b;stroke-width:2}.board-add-section>button>span{flex:1}.project-board.is-scrollable{cursor:grab;user-select:none}.project-board.is-scrollable.is-panning{cursor:grabbing;scroll-behavior:auto}.project-board.is-scrollable .project-section,.project-board.is-scrollable button{cursor:auto}.project-board.is-scrollable .task-row[draggable=true]{cursor:grab}

@media(max-width:720px){
  .content:has(.gantt-view){width:100%;padding:18px 12px 92px}
  .content:has(.gantt-view) .project-command{margin-bottom:12px}
  .gantt-desktop{display:none}
  .gantt-mobile{display:block;margin-top:4px}
  .gantt-mobile-toolbar{min-height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:7px;padding:5px 2px}.gantt-mobile-toolbar>div{min-width:0;text-align:center}.gantt-mobile-toolbar strong,.gantt-mobile-toolbar small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-mobile-toolbar strong{font-size:13px}.gantt-mobile-toolbar small{margin-top:2px;color:#918b85;font-size:9.5px}
  .gantt-mobile-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:7px;border:1px solid #e6e2de;border-radius:9px;background:#fbfaf9}.gantt-mobile-days span{height:39px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:7px}.gantt-mobile-days span.weekend{background:#f8f6f3}.gantt-mobile-days small{color:#8c8680;font-size:8.5px;text-transform:uppercase}.gantt-mobile-days b{margin-top:2px;font-size:11px}.gantt-mobile-days span.today{background:#d1453b;color:#fff}.gantt-mobile-days span.today small{color:#fff}
  .gantt-mobile-today{display:block;margin:7px auto 15px;padding:5px 9px;border:0;border-radius:5px;background:transparent;color:#d1453b;font-size:10.5px;cursor:pointer}
  .gantt-mobile-group{margin:0 0 18px}.gantt-mobile-group>header{min-height:42px;display:grid;grid-template-columns:27px 18px minmax(0,1fr) auto;align-items:center;gap:4px;border-bottom:1px solid #e7e3df}.gantt-mobile-group>header>button:not(.gantt-section-color){width:27px;height:27px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#777}.gantt-mobile-group>header>button svg{width:14px;height:14px}.gantt-mobile-group>header h2{margin:0;font-size:12.5px}.gantt-mobile-group>header div small{display:block;margin-top:1px;color:#918b85;font-size:9px}.gantt-mobile-group>header>span{color:#99938d;font-size:10px}.gantt-mobile-group.collapsed>.gantt-mobile-card{display:none}
  .gantt-mobile-card{padding:10px 0 11px;border-bottom:1px solid #eeeae7}.gantt-mobile-card>header{display:grid;grid-template-columns:22px minmax(0,1fr) 31px;align-items:center;gap:6px}.gantt-mobile-card>header>.task-check{width:19px;height:19px}.gantt-mobile-card>header>button:nth-child(2){min-width:0;display:grid;gap:2px;padding:2px;border:0;background:transparent;text-align:left}.gantt-mobile-card>header strong,.gantt-mobile-card>header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-mobile-card>header strong{font-size:12px;font-weight:500}.gantt-mobile-card>header small{color:#948e88;font-size:9.5px}.gantt-mobile-card.completed strong{text-decoration:line-through;color:#999}
  .gantt-mobile-track{--gantt-border:transparent;height:25px;min-height:25px;margin:8px 0 0 28px;border:1px solid #ebe7e3;border-radius:6px}.gantt-mobile-track .gantt-grid-day{border-right-color:#f0edea}.gantt-mobile-track .gantt-bar{height:17px;margin:0 1px;padding:0 4px;border-radius:4px}.gantt-mobile-track .gantt-bar span{font-size:8px}.gantt-mobile-track .gantt-edge{height:17px;width:17px}.gantt-mobile-period{margin:4px 0 0;color:#9a948e;font-size:9.5px;text-align:center}
  .gantt-editor{width:100%;border-radius:12px 12px 0 0}.gantt-editor-range{grid-template-columns:1fr}.gantt-editor-range>span{display:none}.gantt-duration-presets>div{display:grid;grid-template-columns:1fr 1fr}
  .board-add-section{flex-basis:84vw;width:84vw}
}

@media print{
  .content:has(.gantt-view){width:100%!important;max-width:none!important;padding:0!important}
  .gantt-mobile{display:none!important}.gantt-desktop{display:block!important;margin:4mm 0 0!important;border:.5pt solid #bbb!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .gantt-toolbar{position:static!important;min-width:0!important;height:10mm!important;padding:0 3mm!important}.gantt-toolbar nav{display:none!important}.gantt-toolbar strong{font-size:11pt!important}.gantt-toolbar span{font-size:7pt!important}
  body.printing-gantt .project-titlebar{margin:0 0 3mm!important}.gantt-group.collapsed>.gantt-task-cell,.gantt-group.collapsed>.gantt-track{display:grid!important}
  .gantt-table{min-width:0!important;grid-template-columns:58mm minmax(0,1fr)!important}.gantt-table-title,.gantt-section-cell,.gantt-task-cell{position:static!important}.gantt-task-cell{height:8mm!important;min-height:8mm!important;padding:1mm 2mm!important}.gantt-task-title strong{font-size:7pt!important}.gantt-task-title small{font-size:5.5pt!important}.gantt-section-cell{height:7mm!important;min-height:7mm!important}.gantt-section-cell small{font-size:5.5pt!important}.gantt-section-line{height:7mm!important;min-height:7mm!important}.gantt-section-span{height:5mm!important}.gantt-track{height:8mm!important;min-height:8mm!important}.gantt-date-head{height:10mm!important;min-height:10mm!important}.gantt-date-head time span{font-size:5pt!important}.gantt-date-head time b{font-size:6pt!important}.gantt-bar{height:6.4mm!important;padding:0 1mm!important}.gantt-bar span{font-size:5.5pt!important}.gantt-legend{position:static!important;min-width:0!important;min-height:7mm!important;font-size:5.5pt!important}
}
