.project-dashboard{display:grid;gap:14px;min-width:0;font-size:13px}.project-dashboard h2{font:600 17px/1.35 Arial,Helvetica,sans-serif;margin:0}.project-dashboard .pd-caption{color:var(--muted);font-size:12px;line-height:1.5;margin:0}.pd-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.pd-filter label{display:grid;gap:5px;margin:0;font-size:12px}.pd-filter input{width:162px;min-height:35px;padding:7px 9px}.pd-filter button{min-height:35px;padding:7px 11px;font-size:12px}.pd-presets{display:flex;gap:6px}.pd-filter .pd-refresh{margin-left:auto}.pd-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.pd-section-heading .pd-caption{margin-top:4px}.pd-period-label{color:var(--muted);font-size:12px;white-space:nowrap}.pd-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pd-metrics article{display:grid;gap:8px;padding:17px 19px;border:1px solid var(--line);border-radius:8px;background:#fffefa}.pd-metrics span{font-size:12px;color:var(--muted)}.pd-metrics strong{font:600 27px/1.2 Arial,Helvetica,sans-serif;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.pd-metrics small{color:var(--muted);font-size:11px}.pd-metrics .pd-balance{background:#214537;border-color:#214537;color:#fffefa}.pd-metrics .pd-balance small,.pd-metrics .pd-balance span{color:#e1e9e2}.pd-panel{padding:18px;display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fffefa;min-width:0}.pd-table-scroll{overflow-x:auto;min-width:0}.pd-table-scroll table{width:100%;border-collapse:collapse;font-size:12px}.pd-table-scroll td,.pd-table-scroll th{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.pd-table-scroll thead th{color:var(--muted);background:#f2f0ea;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;white-space:nowrap}.pd-table-scroll tbody th{min-width:145px;font-weight:500}.pd-table-scroll td{font-variant-numeric:tabular-nums}.pd-table-scroll tbody tr:last-child>*{border-bottom:0}.pd-number{font-weight:600}.pd-error{color:#9b3636}.pd-progress-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pd-progress-metrics article{display:flex;align-items:start;gap:10px;padding:15px 17px;border:1px solid var(--line);border-radius:8px}.pd-progress-metrics article>svg{color:#557365;margin-top:2px;flex-shrink:0}.pd-progress-metrics article>div{display:grid;gap:6px}.pd-progress-metrics strong{font-size:23px;font-weight:600}.pd-progress-metrics small{color:var(--muted);font-size:11px}.pd-stage-meter{height:5px;min-width:100px;background:#ebe9e2;border-radius:4px;margin-top:8px;overflow:hidden}.pd-stage-meter>span{display:block;background:#8c7a5b;height:100%;border-radius:inherit}.pd-stage-doing>span{background:#426c8b}.pd-stage-done>span{background:#367453}.pd-estimates{display:flex;flex-wrap:wrap;gap:5px;min-width:130px}.pd-estimates>span{display:inline-flex;gap:7px;background:#f0eee7;border-radius:4px;font-size:11px;padding:4px 7px;white-space:nowrap}.pd-estimates b{font-weight:600}.pd-empty,.pd-error,.pd-loading{display:flex;align-items:center;gap:10px;padding:18px;border:1px solid var(--line);border-radius:7px}.pd-empty,.pd-loading{color:var(--muted)}.pd-error{justify-content:space-between;flex-wrap:wrap}.portal-dashboard-tabs{display:flex;gap:6px;margin:18px 0}.portal-dashboard-tabs button{font-size:13px;padding:8px 13px}@media (max-width:680px){.pd-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.pd-filter .pd-presets{grid-column:1/-1;grid-row:3;flex-wrap:wrap}.pd-filter .pd-refresh{grid-column:2;grid-row:2;justify-self:end}.pd-metrics{gap:6px}.pd-metrics article{padding:12px 10px}.pd-metrics strong{font-size:21px}.pd-progress-metrics{grid-template-columns:1fr;gap:6px}.pd-progress-metrics article>div{grid-template-columns:minmax(0,1fr) auto;flex:1;align-items:center}.pd-progress-metrics small{grid-column:1/-1}.pd-panel{padding:12px}.pd-filter label{flex:1}.pd-filter input{width:100%}.pd-section-heading{align-items:start;flex-wrap:wrap}}.dashboard-email{font-size:12px;min-width:0}.dashboard-email>button{padding:7px 11px;font-size:12px}.dashboard-email-panel{margin-top:10px;padding:15px;border:1px solid var(--line);border-radius:7px;background:#fffefa;display:grid;gap:10px;max-width:760px}.dashboard-email-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-email-heading button{padding:4px}.dashboard-email-panel p{color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.dashboard-email-panel form{display:flex;align-items:end;flex-wrap:wrap;gap:8px}.dashboard-email-panel label{display:grid;gap:5px;margin:0;font-size:12px}.dashboard-email-panel select{padding:7px 10px;min-width:150px}.dashboard-email-panel button{font-size:12px;padding:7px 10px}.dashboard-email-pending{color:#545b5a;padding:9px 11px;background:var(--sand);border-radius:4px}.wo{display:grid;gap:26px;min-width:0;font-size:13px}.wo-toolbar{gap:14px 22px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.wo-month,.wo-toolbar{display:flex;align-items:center}.wo-month{gap:6px}.wo-month strong{min-width:150px;text-align:center;font:400 18px/1.2 Georgia,serif}.wo-month .icon{width:32px;height:32px}.wo-month .subtle{margin-left:6px;font-size:12px}.wo-filter{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;color:var(--muted)}.wo-filter select{min-width:200px;min-height:34px;font-size:12.5px}.wo-legend{display:flex;gap:14px;margin:0 0 0 auto;padding:0;list-style:none;font-size:11.5px;color:var(--muted)}.wo-legend li{display:flex;align-items:center;gap:6px}.wo-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#7d857c}.wo-dot.p-urgent{background:#b3261e}.wo-dot.p-high{background:#b7791f}.wo-dot.p-medium{background:#3f6ea8}.wo-dot.p-low{background:#7d857c}.wo-dot.is-flag{background:var(--gold);border-radius:2px}.wo-priority{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:64px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eceee9;color:#4c534c}.wo-priority.p-urgent{background:#f7e1dd;color:#8c1d18}.wo-priority.p-high{background:#f6e7cc;color:#6e4a0c}.wo-priority.p-medium{background:#e2e9f3;color:#274b75}.wo-priority.is-flag{background:#efe7da;color:#705a36}.wo-section h2{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:22px;font-weight:400}.wo-count{font:500 11px/1 Arial,Helvetica,sans-serif;color:var(--muted);background:#ebe7de;border-radius:999px;padding:4px 8px}.wo-caption,.wo-muted{color:var(--muted);font-size:12px;line-height:1.5;margin:0}.wo-empty,.wo-loading{margin:0;padding:22px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}.wo-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.wo-project{display:grid;gap:14px;align-content:start;justify-content:stretch;justify-items:stretch;width:100%;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fffefa;color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}.wo-project:hover{border-color:#b9b5a9;box-shadow:0 2px 10px #1920220d}.wo-project-head{display:flex;align-items:center;gap:11px;min-width:0}.wo-project-name{display:grid;min-width:0}.wo-project-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wo-project-name small{color:var(--muted);font:11px ui-monospace,SFMono-Regular,monospace;letter-spacing:.4px}.wo-stats{display:grid;grid-template-columns:auto auto 1fr;gap:18px}.wo-stats span{display:grid;gap:3px}.wo-stats small{color:var(--muted);font-size:11px;white-space:nowrap}.wo-stats b{font-size:19px;font-weight:500}.wo-stats .is-late b,.wo-stats .is-late small{color:#8c1d18}.wo-hours{display:grid;gap:6px}.wo-hours small{color:var(--muted);font-size:11.5px}.wo-bar{display:block;height:6px;border-radius:999px;background:#ebe7de;overflow:hidden}.wo-bar i{display:block;height:100%;background:var(--ink);border-radius:inherit}.wo-bar i.is-over{background:#b3261e}.wo-sprint{display:flex;align-items:center;gap:6px;color:#705a36;font-size:11.5px}.wo-overdue h2{color:#8c1d18}.wo-overdue .wo-caption{margin:-6px 0 10px}.wo-late{color:#8c1d18;font-weight:600}.wo-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.wo-weekday{padding:0 8px 4px;color:var(--muted);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase}.wo-day{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-height:96px;min-width:0;padding:7px 8px 8px;border:1px solid var(--line);border-radius:6px;background:#fffefa;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.wo-day.is-weekend{background:#f6f4ef}.wo-day:hover{border-color:#b9b5a9}.wo-day[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.wo-day-number{font-size:12px;font-weight:600;color:var(--muted)}.wo-day.is-today .wo-day-number{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fffefa}.wo-day.has-late .wo-day-number{color:#8c1d18}.wo-day.is-today.has-late .wo-day-number{color:#fffefa}.wo-day-items{display:grid;gap:3px;min-width:0}.wo-flag,.wo-item,.wo-more{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.35}.wo-clip,.wo-flag,.wo-item,.wo-more{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wo-flag svg,.wo-item svg{flex-shrink:0}.wo-item.is-done{color:var(--muted);text-decoration:line-through}.wo-item.is-late{color:#8c1d18}.wo-flag{color:#705a36;font-weight:600}.wo-more{color:var(--muted)}.wo-day-dots{display:none}.wo-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.wo-agenda-head .subtle{font-size:12px}.wo-agenda-day{margin-bottom:18px}.wo-agenda-day h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;font-weight:400}.wo-today-tag{font:600 10px/1 Arial,Helvetica,sans-serif;letter-spacing:.6px;text-transform:uppercase;color:#fffefa;background:var(--ink);border-radius:999px;padding:4px 7px}.wo-tasks{display:grid;gap:0;margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:8px;background:#fffefa;overflow:hidden}.wo-tasks li+li{border-top:1px solid #e6e3da}.wo-task{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:46px;padding:8px 14px;border:0;border-radius:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.wo-task:hover{background:#f6f4ef}.wo-task.is-flag{grid-template-columns:auto minmax(0,1fr) auto}.wo-key{font:600 11.5px ui-monospace,SFMono-Regular,monospace;color:var(--muted)}.wo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wo-task.is-done .wo-title{color:var(--muted);text-decoration:line-through}.wo-task-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--muted);white-space:nowrap}.wo-project-tag{max-width:160px;color:var(--ink)}.wo-assignee,.wo-project-tag{overflow:hidden;text-overflow:ellipsis}.wo-assignee{max-width:140px}.wo-state{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--ink)}.wo-state.is-done{border-color:#b8cdb8;background:#e6efe4;color:#2d5a2d}@media (max-width:900px){.wo-legend{margin-left:0}.wo-day{min-height:58px;padding:6px}.wo-day-items{display:none}.wo-day-dots{display:flex;flex-wrap:wrap;gap:3px}.wo-task{grid-template-columns:auto minmax(0,1fr);row-gap:6px}.wo-task .wo-key{display:none}.wo-task-meta{grid-column:1/-1;flex-wrap:wrap;white-space:normal}}@media (max-width:560px){.wo-weekday{padding:0 2px 4px;font-size:9.5px;letter-spacing:.4px}.wo-day{min-height:44px;padding:4px}.wo-filter,.wo-filter select{width:100%}}.modal.issue{width:860px;max-width:100%}.issue-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:-6px 0 12px;font-size:12px;color:var(--muted)}.issue-tabs{display:flex;gap:2px;margin:0 0 18px;box-shadow:inset 0 -1px 0 var(--line);overflow-x:auto}.issue-tabs [role=tab]{padding:8px 12px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-size:13px;white-space:nowrap}.issue-tabs [role=tab]:hover{background:transparent;color:var(--ink)}.issue-tabs [role=tab][aria-selected=true]{border-bottom-color:var(--gold);color:var(--ink);font-weight:600}.issue-tabs [role=tab]:focus-visible{outline-offset:-3px}.issue-panel[hidden]{display:none}.issue-panel h3{display:flex;align-items:center;gap:6px;margin:20px 0 8px;font-size:15px}.issue-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.issue-panel-head h3{margin-top:0}.issue-clock-timer button,.issue-panel form>button,.issue-panel-head button{padding:6px 11px;font-size:12px}.issue-panel .comment .markdown{font-size:13px}.issue-panel .events article{gap:12px;padding:12px 0}.issue-panel .events article:first-child{padding-top:0}.event-changes{list-style:none;margin:0 0 6px;padding:0;font-size:12px;line-height:1.6}.event-changes li{overflow-wrap:anywhere}.event-changes span,.event-summary{color:var(--muted)}.events .event-summary{font-size:12px}.issue-clock-totals{display:flex;gap:28px;margin:0 0 14px}.issue-clock-totals dt{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.issue-clock-totals dd{margin:3px 0 0;font-size:15px}.issue-clock-timer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#faf9f6}.issue-clock-time{margin-right:auto;font-family:ui-monospace,SFMono-Regular,monospace;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.issue-clock-timer small{flex-basis:100%;font-size:12px;color:var(--muted)}.issue-worklog{list-style:none;margin:16px 0 0;padding:0}.issue-worklog li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:13px}.issue-worklog span{min-width:0;overflow-wrap:anywhere}.issue-worklog small{display:block;margin-bottom:3px;font-size:11px;color:var(--muted)}.issue-worklog strong{font-weight:500;white-space:nowrap}.card-bottom .issue-time{display:inline-flex;align-items:center;gap:3px}.card-bottom .issue-time svg{margin-left:0;color:inherit}@media (max-width:900px){.issue-tabs [role=tab]{padding:8px 10px}.issue-clock-totals{gap:18px}}@media (max-width:600px){.issue-clock-time{flex-basis:100%}}