    .modal-action-row {
        margin-top: 16px;
        display: flex;
        gap: 10px;
        align-items: center;
        justify-content: space-between;
    }
    .modal-action-right {
        display: flex;
        gap: 8px;
        justify-content: flex-end;
        flex-wrap: wrap;
    }
    .todo-detail-view {
        display: grid;
        gap: 10px;
        margin-bottom: 14px;
    }
    .todo-detail-card {
        border: 1px solid #dce8df;
        border-radius: 16px;
        background: linear-gradient(135deg, #ffffff, #f5faf6);
        padding: 14px;
        box-shadow: 0 10px 22px rgba(45, 73, 54, .06);
    }
    .todo-detail-card h3 {
        font-size: 18px;
        line-height: 1.4;
        margin-bottom: 10px;
        color: var(--text);
        overflow-wrap: anywhere;
    }
    .todo-detail-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
    }
    .todo-detail-meta span {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        padding: 2px 9px;
        border-radius: 999px;
        background: #eef5f0;
        color: #4e6356;
        font-size: 12px;
        font-weight: 800;
    }
    .todo-detail-note {
        margin-top: 10px;
        color: #40564a;
        font-size: 13px;
        line-height: 1.7;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .todo-detail-edit-panel { display: grid; gap: 0; }
    .todo-detail-edit-panel textarea {
        min-height: 76px;
        resize: vertical;
    }
    .todo-date-presets {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin: -4px 0 14px;
    }
    .todo-date-presets button {
        border: 1px solid #d5e3db;
        background: #f7fbf8;
        color: #426151;
        border-radius: 999px;
        min-height: 26px;
        padding: 3px 10px;
        font-size: 12px;
        font-weight: 700;
        cursor: pointer;
        transition: .16s ease;
    }
    .todo-date-presets button:hover {
        background: #e8f3ec;
        border-color: #bdd5c5;
        color: var(--accent);
        transform: translateY(-1px);
    }

    .todo-list { list-style: none; }
    .todo-item { display: flex; align-items: center; gap: 9px; padding: 7px 0; font-size: 14px; min-width: 0; }
    .todo-item input[type="checkbox"] { width: 17px; height: 17px; cursor: pointer; accent-color: var(--accent); flex: 0 0 auto; }
    .todo-item.done .todo-text { text-decoration: line-through; color: var(--faint); }
    .todo-text { flex: 1; cursor: pointer; min-width: 0; overflow-wrap: anywhere; }
    .todo-text small { display: block; margin-top: 3px; color: var(--faint); font-size: 12px; font-weight: 650; }
    .todo-meta { font-size: 12px; color: var(--faint); white-space: nowrap; }

    .todo-pool-hint { margin-top: 8px; color: var(--faint); font-size: 12px; }
    .todo-add { display: flex; gap: 8px; margin-top: 10px; }
    .todo-add input { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid #d3ded7; border-radius: var(--radius); font-size: 13px; outline: none; }
    .todo-add input:focus { border-color: var(--accent-2); }
    .sub-todos { margin-left: 25px; margin-top: 4px; border-left: 2px solid var(--line); padding-left: 10px; }
    .todo-subtodo-item.is-viewing {
        padding: 8px 10px;
        border: 1px solid #e1ebe5;
        border-radius: 13px;
        background: #fbfdfb;
    }
    .todo-subtodo-item.is-viewing input {
        cursor: pointer;
        accent-color: var(--accent);
    }
    .todo-subtodo-item.is-viewing .todo-text {
        cursor: default;
        color: var(--text);
    }
    .todo-subtodo-item.done .todo-text {
        color: var(--faint);
        text-decoration: line-through;
    }
    .todo-expand { cursor: pointer; color: var(--faint); font-size: 12px; user-select: none; margin-right: 4px; }

    .filter-bar {
        display: flex;
        gap: 10px;
        margin-bottom: 18px;
        align-items: center;
        flex-wrap: wrap;
        background: rgba(255,255,255,.76);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 12px;
    }
    .filter-bar input, .filter-bar select { width: auto; min-width: 132px; }
    .todo-table {
        width: 100%;
        background: var(--surface);
        border-radius: var(--radius);
        overflow: hidden;
        box-shadow: var(--shadow);
        border: 1px solid var(--line);
        border-collapse: separate;
        border-spacing: 0;
    }
    .todo-table th, .todo-table td { padding: 12px 14px; text-align: left; font-size: 13px; border-bottom: 1px solid var(--line); vertical-align: middle; }
    .todo-table th { background: var(--surface-soft); font-weight: 700; color: var(--muted); font-size: 12px; }
    .todo-table tr:last-child td { border-bottom: none; }
    .todo-table tbody tr:hover td { background: #fbfdfb; }
    .todo-title-cell { cursor: pointer; font-weight: 750; color: var(--text); overflow-wrap: anywhere; }
    .todo-title-cell.is-done { text-decoration: line-through; color: var(--faint); font-weight: 650; }
    .todo-title-meta {
        margin-top: 5px;
        color: var(--faint);
        font-size: 12px;
        font-weight: 650;
        text-decoration: none;
    }
    .todo-session-editor {
        display: grid;
        grid-template-columns: minmax(130px, 1.1fr) minmax(92px, .8fr) minmax(92px, .8fr);
        gap: 8px;
        margin-bottom: 10px;
        min-width: 0;
    }
    .todo-session-editor input {
        min-width: 0;
        padding: 8px 10px;
        border: 1px solid #d3ded7;
        border-radius: var(--radius);
        outline: none;
    }
    .todo-session-editor #todo-session-note { grid-column: 1 / -1; }
    .todo-session-editor .btn {
        grid-column: 1 / -1;
        justify-self: end;
        min-height: 30px;
        padding: 5px 12px;
        border-radius: 999px;
        font-size: 12px;
    }
    .todo-session-list {
        display: grid;
        gap: 8px;
        margin-bottom: 14px;
    }
    .todo-session-empty {
        padding: 10px 12px;
        border: 1px dashed #d9e3dc;
        border-radius: 14px;
        color: var(--faint);
        font-size: 12px;
        background: #f8fbf8;
    }
    .todo-session-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 10px;
        padding: 11px 12px;
        border: 1px solid #dce8df;
        border-radius: 16px;
        background:
            linear-gradient(135deg, rgba(255,255,255,.95), rgba(244,250,246,.92));
        box-shadow: 0 8px 18px rgba(45, 73, 54, .06);
        min-width: 0;
    }
    .todo-session-main { display: grid; gap: 3px; min-width: 0; }
    .todo-session-main strong { font-size: 13px; color: var(--text); }
    .todo-session-main span { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
    .todo-session-item .btn {
        min-height: 25px;
        padding: 3px 9px;
        border-radius: 999px;
        font-size: 11px;
        flex: 0 0 auto;
    }
    .todo-due,
    .todo-urgency {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        padding: 2px 9px;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 700;
        white-space: nowrap;
        flex: 0 0 auto;
    }
    .todo-due { background: #eef5f0; color: #446052; }
    .todo-due-none { background: #f1f3ef; color: #788176; }
    .todo-urgency-urgent { background: #ffe9df; color: #b13c13; }
    .todo-urgency-high { background: #fff3d2; color: #956000; }
    .todo-urgency-medium { background: #eaf4ff; color: #2564a8; }
    .todo-urgency-low { background: #eef5f0; color: #547060; }
    .tag { display: inline-flex; align-items: center; min-height: 22px; padding: 1px 8px; border-radius: 999px; font-size: 12px; background: #edf1ee; color: var(--muted); font-weight: 800; }
    .tag-健身 { background: #e8f4ff; color: #1e68bc; }
    .tag-学习 { background: #f1ecff; color: #6d4bc2; }
    .tag-工作 { background: #fff5e5; color: #9a5b03; }
    .tag-生活 { background: #eaf6ee; color: #216e4e; }
