| Full-width text on wide monitors | 200+ char lines are unreadable; the eye loses the return sweep | Max 65–75ch for prose, centered |
| Whole page scrolls, including nav | Users lose orientation and pay a scroll tax to navigate | Fix header + sidebar; scroll main only |
| Nested scrollbars in one region | Scroll events land unpredictably; content gets trapped | One scroll container per visual pane |
| Novel shell "for differentiation" | Users spend their first week lost; muscle memory is a feature | Pick a proven shell; differentiate in content, not chrome |
| Dashboard cards containing full tables | Cards are for glancing; tables need width, sorting, density | Card shows the stat; "View all" links to a real table view |
| Internally scrolling dashboard cards | Hidden content + trapped scroll inside a glance surface | Card fits its content or links out |
| Detail panel squeezing main below usable width | Table/canvas becomes unusable while inspecting | Overlay the panel below 1280px; enforce a main min-width |
| Modal hosting a multi-step workflow | No URL, no back, lost work on accidental dismiss | Promote to a routed page or full-screen takeover |
| Desktop layout naively shrunk to mobile | 240px sidebar + panes at 375px = nothing usable | Follow the collapse order: rail → drawer → tabs; panes → pushed screens |
| Avatar/menu on the left, logo on the right | Fights every app users already know | Logo left, avatar far right — always |
| Two+ toolbars stacked above the content | Chrome eats the viewport; content starts below the fold | Merge bars; fixed chrome ≤ ~128px desktop |
| Sidebar with no collapsed state | Small-laptop users lose 280px permanently | Provide icon rail + remember the user's choice |
| Toast/notification under an open modal | Critical feedback invisible at the moment it matters | Toasts render at the top z-layer |
| Blank pane when nothing is selected | Looks broken; users don't know the pane exists for detail | Neutral prompt naming the action ("Select a message") |
| Full-page spinner on load | The whole app feels down while one query runs | Paint the shell; skeleton content regions |
| Alert banner overlaying the header | Hides nav exactly when users need it | Banner pushes content down instead |
| Ultrawide stretching every pane | Panels balloon; eye travel explodes | Clamp panel widths; center the content column |