diff --git a/docs/user-guide/access-api.md b/docs/user-guide/access-api.md
index f469853..ce44b36 100644
--- a/docs/user-guide/access-api.md
+++ b/docs/user-guide/access-api.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 6
+sidebar_position: 8
---
# API access
diff --git a/docs/user-guide/billable-rates.md b/docs/user-guide/billable-rates.md
index 0f40b3e..edc294a 100644
--- a/docs/user-guide/billable-rates.md
+++ b/docs/user-guide/billable-rates.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 3
+sidebar_position: 5
---
# Billable rates
diff --git a/docs/user-guide/breaks.md b/docs/user-guide/breaks.md
new file mode 100644
index 0000000..fe4dcc1
--- /dev/null
+++ b/docs/user-guide/breaks.md
@@ -0,0 +1,127 @@
+---
+sidebar_position: 4
+---
+
+# Breaks
+
+Breaks let you track **[pauses between your work time entries](#misaligned-breaks)**. Unlike work time entries, breaks have no project, tags, or billable status. Break time is **counted separately from work time** everywhere: dashboard statistics only count work time, day totals show breaks separately, and reports can include or exclude them.
+
+## Enabling breaks
+
+Break tracking is **disabled by default**. An owner or admin can enable it in the organization settings:
+
+1. Open the organization switcher in the top-left corner.
+2. Go to **Organization Settings**.
+3. Check **Allow tracking breaks** and click **Save**.
+
+
+
+
+Once enabled, break controls appear in the time tracker, the timesheet gets a dedicated Break row, and the calendar and reporting pick up breaks as well.
+
+## Taking a break from the timer
+
+### Take a break
+
+While a timer is running, a coffee-cup **Take a break** button appears next to the stop button. Clicking it stops the current work entry and immediately starts a break entry, so no time is lost between the two.
+
+
+
+
+### Resume work
+
+While the break is running, the tracker shows an **On break** state. One click on **Resume** ends the break and starts a new work entry with the interrupted entry's description, project, and other details restored, so getting back to work is a single click.
+
+
+
+
+You can also end the break with the regular stop button if you don't want to resume the previous work right away.
+
+### Start a break without a running timer
+
+A break doesn't have to start from a running timer: **Start Break** in the tracker's options menu starts a break while no timer is running, for example when you stopped the timer but actually wanted to take a break.
+
+
+
+
+## Breaks on the Time page
+
+Break entries appear alongside your other entries, marked with a coffee-cup **Break** label. The day header shows the day's break time separately from the work total, so a day reads like _30min break · 5h 00min_. A break that sits far away from your work entries is flagged with a warning sign, see [Misaligned breaks](#misaligned-breaks).
+
+
+
+
+## Breaks in the timesheet
+
+With breaks enabled, the [timesheet](./timesheet.md) always shows a pinned **Break** row at the bottom of the grid. Enter a duration into a break cell just like any other cell.
+
+
+
+
+**Copy last week** copies break entries along with everything else.
+
+Because a break should [sit between work entries](#misaligned-breaks), the timesheet places it for you:
+
+1. It automatically looks for a free gap between that day's work entries where the break stays within 30 minutes of work on both sides, and centers the break there.
+2. When no such gap exists, the break is placed in any gap big enough to hold it, directly after the work entry before it.
+3. When no gap can hold the break at all, a placement dialog opens to let you place the break manually.
+
+### Manually placing breaks
+
+The placement dialog shows the suggested position and lets you adjust the break's time before anything is saved:
+
+
+
+
+- With a **single work entry** on the day, the dialog splits it in two and puts the break in between. You can adjust the break's time; it must lie inside the work entry, leaving at least a minute of work on each side.
+- With **several work entries**, the dialog shifts the surrounding entries just enough to open a slot, and shows exactly which entries move before you confirm. If the chosen time would leave the break [misaligned](#misaligned-breaks), the dialog warns you up front.
+
+## Breaks in the calendar
+
+In the calendar, right-click a free spot and choose **Add Break** to create a break at that time. When you right-click in a gap between two time entries, the suggested break is prefilled to fill the space between them exactly. Break entries are drawn with a hatched texture so they can't be confused with a project color, and [misaligned breaks](#misaligned-breaks) carry a warning sign. The day headers show the day's break time next to the work total. Otherwise breaks behave like any entry: drag to move, resize to adjust, right-click to edit, duplicate, split, or delete.
+
+
+
+
+## Misaligned breaks
+
+
+
+
+A break records a pause between work, so solidtime expects every break to sit directly between work entries. A break counts as **misaligned** when it is more than **30 minutes** away from the nearest work entry on either side, or when one side has no work at all.
+
+This is a hint, not an error: nothing is blocked and the break is saved either way. The check helps you spot breaks that drifted away from your work, for example after editing or deleting the entries around them. It is recalculated from your current entries, so correcting the times clears the flag on its own.
+
+Every page points misaligned breaks out with an amber warning sign. On the **Time page** it appears next to the break entry, and clicking it opens a shortcut that jumps to the break's day in the calendar, where it is easiest to fix (shown above).
+
+
+Timesheet: the sign appears in the header of the affected day
+
+
+
+
+
+
+
+Calendar: the break entry itself carries the sign
+
+
+
+
+
+
+## Editing breaks
+
+Every time entry has a type, either **Work time** or **Break**, which you can change in the entry's edit dialog. Note that switching an entry to Break clears its project, task, tags, and billable status, since breaks can't carry any of these.
+
+When you select multiple entries and use mass update, break entries are **skipped entirely** if the change involves a project, tags, or billable status. A warning in the dialog and a notice after saving tell you which entries were left untouched.
+
+## Disabling breaks again
+
+Turning **Allow tracking breaks** off doesn't delete anything: existing break entries stay visible on the Time page, in the timesheet (as a read-only Break row), and in the calendar. You just can't create new ones. The break controls disappear, and **Copy last week** leaves last week's breaks out.
+
+The reporting pages are an exception: while breaks are disabled, reports only include work time, so existing break entries are hidden there. Enable breaks again to see them in reports.
+
+## Permissions
+
+Tracking breaks works like tracking any other time entry: every role that can track time can track breaks. Only **owners** and **admins** can change the **Allow tracking breaks** organization setting. See [Roles](./roles.md) for a full overview of role-based permissions.
diff --git a/docs/user-guide/delete-users-organizations.md b/docs/user-guide/delete-users-organizations.md
index 7a4fedd..d39fb56 100644
--- a/docs/user-guide/delete-users-organizations.md
+++ b/docs/user-guide/delete-users-organizations.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 7
+sidebar_position: 9
---
# Delete organizations or your account
diff --git a/docs/user-guide/export.md b/docs/user-guide/export.md
index d4799a9..3804f7f 100644
--- a/docs/user-guide/export.md
+++ b/docs/user-guide/export.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 7
---
# Export
diff --git a/docs/user-guide/import.md b/docs/user-guide/import.md
index f7f8eca..d362b6a 100644
--- a/docs/user-guide/import.md
+++ b/docs/user-guide/import.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 4
+sidebar_position: 6
---
# Import
diff --git a/docs/user-guide/timesheet.md b/docs/user-guide/timesheet.md
index cf88384..d0f61a2 100644
--- a/docs/user-guide/timesheet.md
+++ b/docs/user-guide/timesheet.md
@@ -54,6 +54,8 @@ Every entry in the cell is deleted in a single request, with no confirmation dia
If a timer is currently running in the Time Tracker, its matching cell in the timesheet is disabled — hovering it shows _Stop the running time entry to edit the timesheet_. Stop the timer to make the cell editable again. This prevents accidentally changing the duration of a live entry.
:::
+If break tracking is enabled for your organization, the grid also shows a pinned **Break** row at the bottom. See [Breaks](./breaks.md) for how break entries are placed.
+
## Adding a row
If the project or task you want to log time on isn't shown yet, click **Add row** at the bottom of the grid and pick a project (and optionally a task). You can search by typing, and create a new project inline if you have permission.
diff --git a/static/img/breaks/breaks-calendar-dark.png b/static/img/breaks/breaks-calendar-dark.png
new file mode 100644
index 0000000..97f660f
Binary files /dev/null and b/static/img/breaks/breaks-calendar-dark.png differ
diff --git a/static/img/breaks/breaks-calendar-light.png b/static/img/breaks/breaks-calendar-light.png
new file mode 100644
index 0000000..cc00d9d
Binary files /dev/null and b/static/img/breaks/breaks-calendar-light.png differ
diff --git a/static/img/breaks/breaks-misaligned-calendar-dark.png b/static/img/breaks/breaks-misaligned-calendar-dark.png
new file mode 100644
index 0000000..a32b4bb
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-calendar-dark.png differ
diff --git a/static/img/breaks/breaks-misaligned-calendar-light.png b/static/img/breaks/breaks-misaligned-calendar-light.png
new file mode 100644
index 0000000..27f8c38
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-calendar-light.png differ
diff --git a/static/img/breaks/breaks-misaligned-time-dark.png b/static/img/breaks/breaks-misaligned-time-dark.png
new file mode 100644
index 0000000..2c1c4df
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-time-dark.png differ
diff --git a/static/img/breaks/breaks-misaligned-time-light.png b/static/img/breaks/breaks-misaligned-time-light.png
new file mode 100644
index 0000000..37922bc
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-time-light.png differ
diff --git a/static/img/breaks/breaks-misaligned-timesheet-dark.png b/static/img/breaks/breaks-misaligned-timesheet-dark.png
new file mode 100644
index 0000000..44e6bab
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-timesheet-dark.png differ
diff --git a/static/img/breaks/breaks-misaligned-timesheet-light.png b/static/img/breaks/breaks-misaligned-timesheet-light.png
new file mode 100644
index 0000000..b188aae
Binary files /dev/null and b/static/img/breaks/breaks-misaligned-timesheet-light.png differ
diff --git a/static/img/breaks/breaks-on-break-dark.png b/static/img/breaks/breaks-on-break-dark.png
new file mode 100644
index 0000000..f6d0a19
Binary files /dev/null and b/static/img/breaks/breaks-on-break-dark.png differ
diff --git a/static/img/breaks/breaks-on-break-light.png b/static/img/breaks/breaks-on-break-light.png
new file mode 100644
index 0000000..2ecefbc
Binary files /dev/null and b/static/img/breaks/breaks-on-break-light.png differ
diff --git a/static/img/breaks/breaks-placement-modal-dark.png b/static/img/breaks/breaks-placement-modal-dark.png
new file mode 100644
index 0000000..b6bf658
Binary files /dev/null and b/static/img/breaks/breaks-placement-modal-dark.png differ
diff --git a/static/img/breaks/breaks-placement-modal-light.png b/static/img/breaks/breaks-placement-modal-light.png
new file mode 100644
index 0000000..2093f5e
Binary files /dev/null and b/static/img/breaks/breaks-placement-modal-light.png differ
diff --git a/static/img/breaks/breaks-setting-dark.png b/static/img/breaks/breaks-setting-dark.png
new file mode 100644
index 0000000..6b427e4
Binary files /dev/null and b/static/img/breaks/breaks-setting-dark.png differ
diff --git a/static/img/breaks/breaks-setting-light.png b/static/img/breaks/breaks-setting-light.png
new file mode 100644
index 0000000..3653a4d
Binary files /dev/null and b/static/img/breaks/breaks-setting-light.png differ
diff --git a/static/img/breaks/breaks-start-break-menu-dark.png b/static/img/breaks/breaks-start-break-menu-dark.png
new file mode 100644
index 0000000..63a5873
Binary files /dev/null and b/static/img/breaks/breaks-start-break-menu-dark.png differ
diff --git a/static/img/breaks/breaks-start-break-menu-light.png b/static/img/breaks/breaks-start-break-menu-light.png
new file mode 100644
index 0000000..d0a0f58
Binary files /dev/null and b/static/img/breaks/breaks-start-break-menu-light.png differ
diff --git a/static/img/breaks/breaks-take-a-break-dark.png b/static/img/breaks/breaks-take-a-break-dark.png
new file mode 100644
index 0000000..3feced3
Binary files /dev/null and b/static/img/breaks/breaks-take-a-break-dark.png differ
diff --git a/static/img/breaks/breaks-take-a-break-light.png b/static/img/breaks/breaks-take-a-break-light.png
new file mode 100644
index 0000000..fc6f50d
Binary files /dev/null and b/static/img/breaks/breaks-take-a-break-light.png differ
diff --git a/static/img/breaks/breaks-time-page-dark.png b/static/img/breaks/breaks-time-page-dark.png
new file mode 100644
index 0000000..518cc62
Binary files /dev/null and b/static/img/breaks/breaks-time-page-dark.png differ
diff --git a/static/img/breaks/breaks-time-page-light.png b/static/img/breaks/breaks-time-page-light.png
new file mode 100644
index 0000000..e8fd869
Binary files /dev/null and b/static/img/breaks/breaks-time-page-light.png differ
diff --git a/static/img/breaks/breaks-timesheet-dark.png b/static/img/breaks/breaks-timesheet-dark.png
new file mode 100644
index 0000000..8153b88
Binary files /dev/null and b/static/img/breaks/breaks-timesheet-dark.png differ
diff --git a/static/img/breaks/breaks-timesheet-light.png b/static/img/breaks/breaks-timesheet-light.png
new file mode 100644
index 0000000..24a443a
Binary files /dev/null and b/static/img/breaks/breaks-timesheet-light.png differ