/* Cross-page layout contracts. Keep this file last in the cascade. */
.connection-result,.directory-progress,.mcp-token code{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:8px}.connection-result.success{background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--green)}.connection-result.failed{background:color-mix(in srgb,var(--red) 9%,var(--surface));color:var(--red)}.commandbar button{color:var(--text)}
html{min-width:320px;overflow-y:scroll;scrollbar-gutter:stable}body{min-width:320px;overflow-x:hidden}#app,.shell,.shell main,#content,#project-body{min-width:0}.appbar{width:100%;max-width:100vw}.topnav{min-width:0;scrollbar-width:thin}.topnav button{min-height:44px;white-space:nowrap}.page-head>div,.project-title>div{min-width:0}.page-head h1,.page-head p{overflow-wrap:anywhere}.page-head .spacer{min-width:0}.commandbar{min-width:0;flex-wrap:wrap;gap:8px}.commandbar>*{min-width:0}.content-pad,.task-workspace{min-width:0;overflow-x:auto}.content-pad>.data-grid,.content-pad>.portfolio-table,.employee-table{min-width:760px}.data-grid{width:100%;max-width:100%;border-collapse:separate;border-spacing:0}.data-grid th,.data-grid td{max-width:420px;overflow:hidden;text-overflow:ellipsis}.data-grid td{overflow-wrap:anywhere}.data-grid th{position:relative}.data-grid select{max-width:100%}.task-table-wrap,.sync-log-table,.calendar-main,.mail-client,.timeline-pane{overscroll-behavior-inline:contain}.task-table-wrap,.sync-log-table{border:1px solid var(--line);border-radius:8px}.task-table-wrap .data-grid,.sync-log-table .data-grid{border-radius:0;box-shadow:none}.month-grid,.week-grid{background:var(--surface)}
button,.primary,.secondary,.command-primary,input,select,textarea{min-height:36px}button{font-weight:400}.primary,.command-primary{font-weight:500}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.48}.primary:focus-visible,.secondary:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pill,.status,.project-status,.priority{max-width:100%;font-weight:400;white-space:nowrap}.pill{border:1px solid var(--line);background:var(--surface-2);color:var(--muted)}select{background-color:var(--surface-2);color:var(--text)}option,optgroup{background:var(--surface);color:var(--text)}
.modal-layer{padding:16px;overflow-y:auto}.modal{display:flex;flex-direction:column;width:min(680px,100%);max-width:100%;max-height:min(90dvh,900px);overflow:hidden}.modal-head{flex:none;min-height:62px;padding:16px 20px}.modal-head h2{min-width:0;font-size:19px;font-weight:500;overflow-wrap:anywhere}.modal-close{width:36px;height:36px;flex:none;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted)}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{min-height:0;padding:18px 20px;overflow-y:auto}.modal-actions{flex:none;min-height:64px;padding:12px 20px;background:var(--surface)}.modal-actions button{min-width:96px}.modal-error{margin-top:16px;padding:11px 12px;border-left:2px solid var(--red);background:color-mix(in srgb,var(--red) 9%,var(--surface));color:var(--red);font-size:12px}.form-grid>*{min-width:0}
.page-state{width:min(520px,calc(100% - 32px));min-height:220px;margin:48px auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted)}.page-state b{margin-top:12px;color:var(--text);font-size:16px}.page-state small{margin-top:5px}.page-state p{max-width:420px;line-height:1.5}.page-state button{margin-top:8px}.loading-spinner{width:28px;height:28px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.empty{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted)}td.empty{display:table-cell;min-height:0;border-style:solid;border-radius:0;background:transparent}.danger,.error{color:var(--red)}.connection-result.failed,.directory-progress.failed{border-color:var(--red);color:var(--red)}
@media(max-width:760px){.appbar{height:64px}.brand{flex:none}.topnav{padding-inline:6px;scrollbar-width:none}.topnav::-webkit-scrollbar{display:none}.appbar-right{flex:none}.shell{padding-top:109px}.page-head{min-height:auto;padding:20px 16px;align-items:flex-start;flex-wrap:wrap}.page-head .portfolio-logo,.page-head>.logo-flip{width:72px;flex:none}.page-head .spacer{display:none}.page-head>button,.page-head>.primary{margin-left:auto}.page-head h1{font-size:23px}.commandbar{padding:0 16px 14px}.commandbar button{flex:0 0 auto}.content-pad,.task-workspace{padding-left:16px;padding-right:16px}.summary-strip{grid-template-columns:1fr 1fr}.summary-item{min-width:0}.summary-item strong{font-size:19px;overflow-wrap:anywhere}.settings-grid,.project-summary,.employee-cards,.portfolio-grid{grid-template-columns:1fr}.meeting-row{min-width:620px}.calendar-shell{margin-inline:0;border-inline:0;border-radius:0}.agenda-panel{padding:16px}.modal-layer{padding:8px}.modal{max-height:calc(100dvh - 16px);border-radius:14px}.modal-head,.modal-body,.modal-actions{padding-left:16px;padding-right:16px}.modal-actions{position:sticky;bottom:0}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.task-toolbar>*{max-width:none}.mail-client{grid-template-columns:1fr}.mail-master{max-height:42dvh}.data-grid th,.data-grid td{max-width:260px}}
@media(max-width:430px){.brand{font-size:13px}.appbar-right{gap:3px}.appbar-right button{width:32px;height:32px}.summary-strip{grid-template-columns:1fr}.page-head>.logo-flip{width:58px}.page-head h1{font-size:21px}.modal-actions button{flex:1;min-width:0}}
.modal textarea[name="description"]{min-height:180px}
.status.rejected:before{background:var(--red)}.task-row-rejected{opacity:.72}.task-rejection-reason{display:block;margin-top:4px;color:var(--red)!important;white-space:normal}
.commandbar>.segmented{max-width:100%;overflow-x:auto}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
