/* Shared, restrained motion and predictable data layouts. */
:root{--motion-fast:140ms;--motion-normal:200ms;--motion-ease:cubic-bezier(.2,.7,.2,1)}
html{scrollbar-gutter:stable;scroll-behavior:smooth}
body{overflow-anchor:auto}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:160ms;animation-timing-function:ease-out}
button,.btn-primary,.btn-secondary,.btn-icon-sm,.header-tool,.primary-navigation>a,.module-menu-link,.admin-tab,.office-tabs>a,.tab{transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
.btn-primary:hover,.btn-secondary:hover,.metric-card:hover,.project-card:hover{transform:none}
.metric-card,.project-card,.note-card,.work-item,.office-document{transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
.metric-card:hover,.project-card:hover,.office-document:hover{border-color:var(--border-strong);box-shadow:var(--shadow-soft)}
.admin-section.active,.modal-overlay:not(.hidden),.select-combobox-popup:not(.hidden),.account-menu[open] .account-panel,.modules-menu[open] .modules-panel{animation:surface-appear var(--motion-normal) var(--motion-ease)}
.modal-overlay:not(.hidden) .modal{animation:dialog-appear var(--motion-normal) var(--motion-ease)}
.module-guide summary svg,.guide-card summary svg{transition:transform var(--motion-normal) var(--motion-ease)}
.jalali-calendar-popup{animation:surface-appear var(--motion-fast) ease-out}
@keyframes surface-appear{from{opacity:.4}to{opacity:1}}
@keyframes dialog-appear{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.modal-overlay{overscroll-behavior:contain}.modal{max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.modal .modal-actions{position:sticky;bottom:-1px;background:var(--bg-elevated);padding-block:12px;z-index:5;border-top:1px solid var(--border)}
body.modal-is-open{overflow:hidden}
.collection-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:12px 0;margin:0 0 14px;min-width:0;scroll-margin-top:155px}
.collection-controls input,.collection-controls select{font:inherit;font-size:.78rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:0;box-sizing:border-box;min-height:38px}
.collection-search{flex:1 1 170px;max-width:290px}.collection-search input{width:100%;min-width:0}
.collection-count{font-size:.76rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.collection-size,.collection-jump{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.73rem;white-space:nowrap}
.collection-pages{display:flex;align-items:center;gap:8px;margin-inline-start:auto}
.collection-pages button{font:inherit;font-size:.78rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:8px 12px;min-height:38px;cursor:pointer}
.collection-pages button:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}
.collection-pages button:disabled{opacity:.4;cursor:default}
[data-page-hidden],[data-filter-hidden]{display:none!important}.collection-empty{padding:22px;color:var(--muted);text-align:center}
#noResults.hidden{display:none}
.expandable-copy:not(.copy-expanded){display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.expand-copy{color:var(--accent);font:inherit;font-size:.76rem;border:0;background:transparent;padding:5px 0;cursor:pointer;text-align:start}
.work-item,.office-document,.compact-row,.timeline-item,.project-card,.note-card{min-width:0;overflow-wrap:anywhere}
.work-item-copy{min-width:0}.work-item h2,.office-document h2{font-size:1rem}.work-item-copy>p{font-size:.85rem}
.notes-grid,.project-grid,.dashboard-grid{align-items:start}
.table-scroll,.table-card,.monitor-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.table-scroll th,.table-card th,.monitor-table-scroll th{background:var(--bg-elevated)}
.kanban-board{align-items:start}.kanban-column{display:flex;flex-direction:column;max-height:min(720px,75dvh);min-height:280px}
.kanban-heading{flex:none}.kanban-stack{overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable;padding:4px}
.pipeline-column{max-height:min(720px,75dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.pipeline-heading{position:sticky;top:-1px;background:var(--surface-hover);z-index:2;padding-block:10px}
.gantt-scroll{max-height:65dvh;overflow:auto;overscroll-behavior:contain}.gantt-header{position:sticky;top:0;z-index:3;background:var(--bg-elevated)}
.month-day{max-height:220px;overflow-y:auto;overscroll-behavior:contain}.month-day>strong{position:sticky;top:0;z-index:1;background:var(--bg-elevated)}
.calendar-day{max-height:330px;overflow:auto;overscroll-behavior:contain}
.work-calendar{max-height:70dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:3px}
.chat-sidebar .chat-list{grid-template-columns:1fr}
@media(max-width:700px){.project-summary .summary-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-summary .summary-stats>div{min-width:0;padding:8px;overflow-wrap:anywhere}.project-summary .summary-stats small{font-size:.72rem}.project-summary .summary-stats strong{font-size:.8rem}.project-filters>label{flex:1 1 calc(50% - 14px);min-width:0}.project-filters>label:first-of-type{flex-basis:100%}.project-filters .select-combobox{min-width:0}}
.report-checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.report-checklist-grid .checklist-group{margin:0}
.report-notes{margin-top:20px}.settings-layout{align-items:start}
.settings-grid[data-view-group]{display:block;max-width:1000px}.settings-grid[data-view-group]>.panel{margin:0}.settings-grid .profile-panel form{max-width:850px}
.section-tabs{display:flex;gap:5px;flex-wrap:wrap;background:var(--bg-elevated);padding:6px;border:1px solid var(--border);border-radius:12px;margin-bottom:20px}
.section-tabs button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:11px 18px;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;transition:background-color var(--motion-fast),color var(--motion-fast)}.section-tabs button[aria-selected=true]{background:var(--accent-wash);color:var(--accent)}.section-tabs button:hover{color:var(--accent)}
.monitor-view-panel{display:grid;gap:22px}.monitoring-page>.section-tabs{margin-bottom:0}
.gantt-scale{position:sticky;top:0;z-index:3;background:var(--bg-elevated)}
.section-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.section-links a{font-size:.8rem;color:var(--muted);text-decoration:none;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);padding:8px 12px}.section-links a:hover{color:var(--accent)}
.monitor-section{scroll-margin-top:155px}.monitor-section>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:17px 20px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elevated);font-weight:650;list-style:none}.monitor-section>summary:after{content:'+';color:var(--accent)}.monitor-section[open]>summary:after{content:'−'}.monitor-section>summary small{font-weight:400;color:var(--muted);margin-inline-start:auto}.monitor-section-body{display:grid;gap:22px;padding-top:20px}
.chat-shell{height:calc(100dvh - 230px);min-height:410px;grid-template-columns:minmax(200px,240px) minmax(0,1fr) minmax(200px,250px)}
.chat-main{min-height:0;height:100%}.chat-sidebar,.chat-directory-panel{height:100%;max-height:none;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain}.chat-header,.chat-composer{flex:none}.chat-project-inline[open]{max-height:35%;overflow-y:auto}.chat-list{min-height:0}.chat-directory-panel .directory-list{overflow-y:auto;min-height:0}
.chat-image-attachment img{max-height:280px;object-fit:contain}.chat-shell~.modal-overlay{height:auto}
@media(max-width:1000px){.chat-shell{grid-template-columns:220px minmax(0,1fr)}.chat-directory-panel{grid-column:1/-1;max-height:250px;height:auto}.chat-shell{height:auto;min-height:0}.chat-main,.chat-sidebar{height:calc(100dvh - 245px);min-height:400px}.chat-directory-panel .directory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.report-checklist-grid{grid-template-columns:1fr}.collection-controls{gap:10px;font-size:.75rem}.collection-search{max-width:none;flex-basis:100%}.collection-size{margin-inline-start:auto}.collection-pages{width:100%;justify-content:space-between}.collection-pages button{min-height:42px}.collection-controls input{font-size:16px}.collection-controls select{min-width:56px;max-width:100px}.collection-count{white-space:normal}.collection-controls{scroll-margin-top:130px}.modal{max-height:calc(100dvh - 24px)}.monitor-section>summary{padding:13px;font-size:.9rem}.monitor-section>summary small{display:none}.chat-shell{grid-template-columns:1fr;gap:12px}.chat-sidebar{height:auto;min-height:0;max-height:250px}.chat-main{height:calc(100dvh - 150px);min-height:360px}.chat-directory-panel{max-height:220px}.chat-directory-panel .directory-list{grid-template-columns:repeat(2,minmax(0,1fr))}.kanban-column{max-height:75dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
@media print{[data-view-panel][hidden]{display:block!important}.section-tabs{display:none!important}[data-view-panel]{break-before:auto;margin-bottom:20px}.work-calendar{max-height:none;overflow:visible}}
@media print{.collection-controls,.collection-empty,.expand-copy,.section-links{display:none!important}[data-page-hidden]{display:revert!important}.expandable-copy{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important}.kanban-column,.kanban-stack,.pipeline-column,.gantt-scroll,.month-day,.calendar-day{max-height:none!important;overflow:visible!important}.monitor-section>summary{border:0}.monitor-section-body{display:grid!important}.chat-shell,.chat-main,.chat-sidebar,.chat-directory-panel{height:auto;max-height:none}.report-checklist-grid{grid-template-columns:1fr 1fr}}
