/* Personal workspace: compact task tree with optional planning and editing panes. */
:root {
  color-scheme:light;
  --primary:#0064cc; --primary-hover:#005ab8; --primary-light:#eaf3ff; --blue:#0064cc;
  --bg:#f5f5f7; --bg-card:#fff; --bg-header:#fff; --sidebar-bg:#ededf0;
  --text:#1d1d1f; --text-secondary:#646469; --text-muted:#68686d;
  --border:#e2e2e7; --hairline:#e2e2e7; --row-border:#eeeef1; --row-hover:#f7f7f9;
  --field-bg:#f5f5f7; --selection-bg:#eaf3ff; --button-blue:#0071e3;
  --danger:#c9342e; --danger-light:#fff3f2; --warning:#996600; --success:#24854a;
  --glass:rgba(255,255,255,.88); --focus-ring:rgba(0,113,227,.22);
  --surface-shadow:0 2px 8px rgba(0,0,0,.025); --float-shadow:0 12px 40px rgba(0,0,0,.13);
  --font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable Text","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
:root[data-theme=dark] {
  color-scheme:dark;
  --primary:#83baff; --primary-hover:#a2cbff; --primary-light:#26354b; --blue:#83baff;
  --bg:#151517; --bg-card:#202022; --bg-header:#202022; --sidebar-bg:#1c1c1e;
  --text:#f5f5f7; --text-secondary:#b8b8bd; --text-muted:#a3a3ab;
  --border:#3b3b40; --hairline:#3b3b40; --row-border:#323236; --row-hover:#29292d;
  --field-bg:#29292d; --selection-bg:#26354b; --button-blue:#0071e3;
  --danger:#ff8b86; --danger-light:#362626; --warning:#e8bb66; --success:#69ce88;
  --glass:rgba(32,32,34,.9); --focus-ring:rgba(131,186,255,.3);
  --surface-shadow:0 2px 8px rgba(0,0,0,.08); --float-shadow:0 14px 44px rgba(0,0,0,.38);
}
.planner { font:14px/1.45 "Segoe UI","Microsoft YaHei",system-ui,sans-serif; letter-spacing:0; }
.planner-header { height:56px; background:var(--bg-card); padding:9px 20px; }
.planner-header strong { font-size:18px; letter-spacing:0; }
.planner-header small { letter-spacing:1px; }
.planner button,.planner select,.planner input:not([type=checkbox]),.planner textarea { color:var(--text); background:var(--bg-card); border-color:var(--border); border-radius:6px; box-shadow:none; font:inherit; }
.planner button:hover { background:var(--primary-light); }
.planner button:focus-visible,.planner summary:focus-visible,#paneSplitter:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.planner button.btn-primary { background:var(--primary); color:#fff; }
[data-theme=dark] .planner button.btn-primary { color:#13262f; }
.planner-sidebar { display:flex; flex-direction:column; width:176px; padding:14px 10px; background:var(--bg-card); }
.planner-sidebar h2 { margin:8px 0; font-size:11px; letter-spacing:0; }
.planner-sidebar > div > button { border:0; background:transparent; padding:8px 10px; min-height:34px; }
.planner-sidebar button.selected,.layout-buttons button.selected { background:var(--primary-light); color:var(--primary); border-color:var(--primary); box-shadow:none; }
.planner-sidebar button.selected small { color:var(--text-secondary); }
.sidebar-bottom { margin-top:auto; padding-top:20px; border-top:1px solid var(--border); }
.planner .sidebar-bottom > button { display:block; width:100%; padding:8px 10px; text-align:left; border:0; background:transparent; }
.sidebar-empty { font-size:11px; }
#favoriteProjectNav:not(:empty) { border-top:1px solid var(--border); margin-top:8px; padding-top:8px; }
.planner-work { padding:14px 18px; }
.planner-toolbar { margin-bottom:12px; }
.planner-toolbar h1 { font-size:21px; font-weight:650; }
.planner-toolbar small { font-size:11px; }
#recentControls { margin-left:auto; }
#recentControls label { font-size:11px; color:var(--text-muted); margin-right:6px; }
[hidden] { display:none !important; }
.layout-buttons button { font-size:12px; padding:7px 10px; }
.workspace-panes,.workspace-panes.editing-task { grid-template-columns:minmax(300px,var(--task-share,.62fr)) 10px minmax(300px,var(--side-share,.38fr)); gap:0; }
.workspace-panes[data-layout=tasks]:not(.editing-task),.workspace-panes[data-layout=calendar]:not(.editing-task) { grid-template-columns:1fr; }
#paneSplitter { cursor:col-resize; position:relative; touch-action:none; }
#paneSplitter::after { content:""; position:absolute; width:3px; height:40px; top:45%; left:4px; border-radius:2px; background:var(--border); }
#paneSplitter:hover::after,#paneSplitter.resizing::after { background:var(--primary); }
.workspace-panes[data-layout=tasks]:not(.editing-task) #paneSplitter,.workspace-panes[data-layout=calendar]:not(.editing-task) #paneSplitter { display:none; }
.workspace-panes[data-layout=split] .calendar-pane { grid-column:3; }
.planner .workspace-panes #taskDrawer[open] { grid-column:3; border-radius:8px; }
.tree-pane,.calendar-pane { border-radius:8px; box-shadow:none; }
.tree-pane .pane-head { padding:9px 12px; }
.planner #taskCapture { padding:8px 12px; border:0; border-bottom:1px solid var(--border); border-radius:0; background:var(--bg-card); box-shadow:none; }
.planner #taskCapture input { border:0; background:var(--bg); padding:9px 12px; }
.planner #taskCapture small:empty { display:none; }
.board-project { padding:10px 12px; border-bottom:1px solid var(--border); }
.board-project > header { margin:0 0 5px; min-height:34px; gap:8px; }
.board-project > header .project-name,.personal-todos-header .project-name { background:transparent !important; color:var(--text) !important; padding:5px 0; border-radius:0; font-size:14px; }
.project-progress { color:var(--text-muted); font:11px Consolas,monospace; }
.board-project > header > button { padding:4px 8px; font-size:12px; }
.personal-todos { border-bottom:1px solid var(--border); }
.planner .tree-row { padding:8px 2px; gap:5px; border-radius:0; font-size:13px; align-items:flex-start; border-bottom:1px solid var(--border); }
.tree-row:last-child { border-bottom-color:transparent; }
.planner .tree-row.task-selected { background:var(--primary-light); box-shadow:inset 2px 0 var(--primary); }
.planner .tree-row.task-overdue { border-left:2px solid #d15850; background:rgba(209,88,80,.035); }
.task-line { display:flex; align-items:baseline; gap:12px; }
.planner .task-line > button { padding:1px 0; border:0; background:transparent; min-height:22px; flex:1; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.planner .task-line small { flex:0 1 auto; max-width:45%; font-size:11px; text-align:right; }
.planner .task-line .task-date-late { color:#c24942; }
[data-theme=dark] .planner .task-line .task-date-late { color:#f58a82; }
.planner .task-overdue .task-line > button { color:var(--text); }
.task-done .task-line > button { text-decoration:line-through; color:var(--text-muted); }
.planner .tree-title > .note-summary { display:block; width:100%; padding:1px 0; min-height:0; font-size:11px; line-height:1.6; color:var(--text-secondary); text-align:left; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; background:transparent; }
.planner .disclosure { background:transparent; padding:0; min-height:22px; }
.planner .disclosure:disabled { opacity:.35; }
.drag-handle { opacity:.45; width:12px; flex-basis:12px; line-height:22px; }
.tree-row:hover .drag-handle { opacity:1; }
.tree-row input[type=checkbox] { margin-top:4px; width:14px; height:14px; }
.tree-tools { align-items:center; gap:2px; width:78px; flex:0 0 78px; }
.tree-row:has(.task-menu[open]) .tree-tools { opacity:1; }
.planner .tree-tools > button { padding:0 3px; border:0; background:transparent; min-height:23px; font-size:15px; }
.task-menu,.project-menu { position:relative; }
.task-menu summary,.project-menu summary { cursor:pointer; list-style:none; padding:1px 5px; min-height:23px; font-size:19px; }
.task-menu summary::-webkit-details-marker,.project-menu summary::-webkit-details-marker { display:none; }
.task-menu > div { position:absolute; right:0; top:100%; min-width:120px; padding:5px; z-index:8; border:1px solid var(--border); background:var(--bg-card); border-radius:6px; box-shadow:0 6px 18px #0002; }
.planner .task-menu > div > button { display:block; width:100%; padding:6px 9px; font-size:12px; text-align:left; border:0; }
.meter { padding-top:2px; gap:6px; }
.meter-cells { width:130px; }
.meter-cell { height:5px; }
.planner .meter-cell.done { background:var(--primary); }
.meter small { font-size:10px; }
.task-section-heading { display:flex; align-items:baseline; gap:8px; color:var(--text-secondary); font-size:12px; font-weight:600; padding:7px 0 4px; margin:0; }
.task-section-heading small { font-size:10px; font-weight:400; color:var(--text-muted); }
.planner .task-section { padding:0; margin:0; border:0; background:transparent; box-shadow:none; border-radius:0; }
.task-section + .task-section { margin-top:8px; }
.task-section.overdue > .task-section-heading { color:#c24942; }
[data-theme=dark] .task-section.overdue > .task-section-heading { color:#f58a82; }
.task-section.dated > .task-section-heading { color:var(--primary); }
.tree-children { margin-left:10px; padding-left:8px; }
.planner .inline-task { flex-wrap:wrap; padding:8px; border:1px solid var(--border); background:var(--bg); margin:6px 0 6px 24px; border-radius:6px; }
.inline-task > input { flex:1; min-width:120px; width:auto; }
.draft-context { width:100%; color:var(--text-secondary); font-size:11px; }
.planner .quick-create { margin:10px 12px; padding:14px; border-color:var(--primary); gap:8px; }
.calendar-help { padding:5px 10px; font-size:10px; }
.calendar-pane .pane-head { padding:9px 10px; }
.calendar-capture { position:absolute; left:0; right:3px; z-index:6; display:flex; gap:3px; padding:5px; background:var(--bg-card); border:1px solid var(--primary); border-radius:6px; }
.calendar-capture input { min-width:0; flex:1; width:60%; }
.calendar-capture button { font-size:11px; padding:3px; }
.planner #taskDrawer .modal-header { padding:12px 16px; }
#taskDrawer .modal-header h2 { font-size:16px; }
#taskDrawer .modal-body { padding:10px 16px; }
#taskDrawer .modal-body details { border-top:1px solid var(--border); padding:10px 0; }
#taskDrawer .modal-body details > summary { cursor:pointer; color:var(--text-secondary); font-size:12px; }
#taskTimeSummary { font-size:10px; display:block; margin-top:3px; color:var(--text-muted); }
#taskDrawer .modal-footer { padding:10px; flex-wrap:wrap; gap:5px; }
#taskDrawer .modal-footer button { font-size:11px; padding:6px 8px; }
#scheduleSaveState { flex:1 0 100%; color:var(--text-muted); font-size:10px; }
.today-choice input { accent-color:var(--primary); }
/* Execution editor: one title, clear plan date, compact optional controls. */
.planner #taskDrawer .modal-header { align-items:flex-start; gap:8px; }
#taskDrawer #scheduleComplete { margin:31px 0 0; width:15px; height:15px; flex-shrink:0; accent-color:var(--primary); }
#taskDrawer #completionFeedback { position:absolute; left:12px; right:12px; bottom:58px; transform:none; z-index:12; max-width:none; width:auto; font-size:11px; padding:8px; gap:7px; }
#taskDrawer #completionFeedback span { flex:1; min-width:0; }
.task-heading { min-width:0; flex:1; }
#taskPath { font-size:11px; margin-bottom:4px; overflow-wrap:anywhere; }
.planner #taskDrawer #scheduleTitle { width:100%; font-size:16px; font-weight:650; border:1px solid transparent; padding:4px 2px; height:auto; min-height:32px; min-width:0; resize:none; margin:0; overflow-y:auto; line-height:1.5; }
.planner #taskDrawer #scheduleTitle:hover { border-color:var(--border); }
.task-metadata { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
#taskDrawer .task-metadata label { display:flex; align-items:center; gap:7px; margin:0; font-size:11px; white-space:nowrap; }
.planner #taskDrawer #schedulePriority { width:76px; padding:5px; min-height:30px; margin:0; }
#taskRecordDates { font-size:10px; color:var(--text-muted); margin-left:auto; }
.task-plan { margin-bottom:14px; }
.task-plan-heading { display:flex; justify-content:space-between; gap:8px; font-size:12px; margin-bottom:7px; }
#schedulePlanState { color:var(--text-secondary); font-size:11px; }
.plan-actions { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.planner #taskDrawer .plan-actions button,.planner #taskDrawer .date-shortcuts button { padding:5px 8px; min-height:29px; height:auto; font-size:11px; flex:none; }
.planner #taskDrawer .plan-actions .selected { background:var(--primary-light); color:var(--primary); border-color:var(--primary); }
.planner #taskDrawer #scheduleStartDate { width:145px; margin:0 0 0 auto; min-height:31px; padding:4px 7px; }
#taskDrawer .task-notes-label { font-size:12px; margin-bottom:16px; }
.planner #taskDrawer #scheduleNotes { min-height:96px; max-height:260px; font-size:13px; line-height:1.7; resize:vertical; padding:9px; }
#taskDrawer .date-clock { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; align-items:start; margin-top:10px; }
#taskDrawer .date-clock:first-of-type { grid-template-columns:repeat(3,minmax(0,1fr)); }
#taskDrawer .date-clock label { font-size:11px; margin:0; display:block; }
#taskDrawer .date-clock input { width:100%; min-width:0; margin:4px 0 0; padding:6px; min-height:32px; }
#taskDrawer .date-shortcuts { margin:5px 0 0; gap:4px; align-items:center; }
#taskDrawer .time-hint { font-size:10px; color:var(--text-muted); margin:10px 0; line-height:1.6; }
.repeat-setting { display:flex; align-items:center; gap:8px; }
.repeat-setting small { color:var(--text-secondary); font-size:11px; }
.planner #taskDrawer #addReminder,.planner #taskDrawer #scheduleCycle { padding:5px 8px; min-height:30px; font-size:12px; }
.drawer-children { margin:0 0 14px; }
.drawer-children > header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.drawer-children > header strong { font-size:12px; }
.drawer-children > header > small { color:var(--text-muted); font-size:10px; }
.drawer-child { display:flex; align-items:flex-start; gap:7px; padding:6px 0; border-bottom:1px solid var(--border); }
.drawer-child > div { flex:1; min-width:0; }
.drawer-child input { margin-top:5px; accent-color:var(--primary); }
.planner .drawer-child button { border:0; background:transparent; text-align:left; padding:1px 0; font-size:12px; overflow-wrap:anywhere; min-height:23px; }
.drawer-child.task-done button { color:var(--text-muted); text-decoration:line-through; }
.drawer-descendants { margin-left:16px; }
.drawer-descendants:empty { display:none; }
.drawer-add { display:flex; gap:5px; margin-top:7px; }
.planner #drawerChildTitle { min-width:0; flex:1; width:auto; padding:7px 8px; font-size:12px; }
.planner #drawerChildAdd { padding:5px 9px; font-size:12px; }
.planner #taskDrawer .task-menu { padding:0; margin:0; border:0; }
#taskDrawer .task-menu summary { font-size:20px; }
.occurrence-actions { display:flex; gap:5px; flex-wrap:wrap; margin-top:8px; }
.occurrence-actions button { font-size:11px; padding:5px 7px; }
#taskDrawer .modal-footer #scheduleSaveState { flex:1; font-size:11px; }
#taskDrawer .modal-footer #retryScheduleSave { color:#c24942; }
.task-section.carry > .task-section-heading { color:var(--text-secondary); }
.task-section.reminders > .task-section-heading { color:var(--primary); }
.tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.planner .toast-container { max-width:calc(100vw - 32px); right:16px; bottom:16px; }
.planner .toast { animation:none; }
@media(max-width:1050px) { .planner-sidebar { width:150px; } .planner-work { padding:10px; } .workspace-panes,.workspace-panes.editing-task { grid-template-columns:minmax(240px,var(--task-share,.62fr)) 10px minmax(240px,var(--side-share,.38fr)); } .task-line { flex-wrap:wrap; gap:0; } .planner .task-line small { max-width:100%; width:100%; text-align:left; } }
@media(max-width:760px) {
  .planner-header { height:auto; padding:10px 12px; }
  .planner-body { display:block; }
  .planner-sidebar { display:block; width:100%; max-height:none; padding:6px 8px; }
  .planner-sidebar #scopeNav { display:flex; overflow:auto; gap:4px; }
  .planner-sidebar #favoriteNav,.planner-sidebar #favoriteProjectNav { display:flex; overflow:auto; }
  .planner-sidebar > div > button { padding:6px 9px; min-height:32px; }
  .sidebar-bottom { display:flex !important; margin:0; padding:4px 0 0; border:0; }
  .planner .sidebar-bottom > button { width:auto; min-height:28px; padding:3px 9px; font-size:12px; }
  .sidebar-empty { display:none; }
  .planner-work { padding:10px 8px; }
  .planner-toolbar { gap:8px; }
  .planner-toolbar h1 { font-size:19px; }
  #recentControls { margin-left:0; }
  #recentControls label { display:none; }
  .workspace-panes,.workspace-panes.editing-task { display:flex; gap:10px; }
  #paneSplitter { display:none; }
  .tree-pane { max-height:none; min-height:200px; }
  .calendar-pane { height:65vh; min-height:400px; }
  .planner .tree-row { padding:7px 0; }
  .tree-tools { width:68px; flex-basis:68px; max-width:none; flex-wrap:nowrap; }
  .planner .tree-tools > button { min-height:28px; min-width:20px; }
  .task-menu summary { min-height:28px; }
  .planner .workspace-panes #taskDrawer[open] { position:fixed; width:100vw; height:100dvh; max-height:100dvh; z-index:10; border-radius:0; }
  .planner .task-line > button { min-height:24px; }
  .board-project { padding:8px; }
  .tool-grid { grid-template-columns:1fr; }
  #taskDrawer .date-clock:first-of-type { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #taskDrawer .task-metadata { flex-wrap:wrap; }
  #taskRecordDates { margin-left:0; flex:1; }
  .planner #taskDrawer #scheduleStartDate { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { .planner * { animation:none !important; transition:none !important; } }
