:root {
  --ink: #191c22;
  --muted: #747b86;
  --line: #e7e8eb;
  --canvas: #f5f5f3;
  --panel: #ffffff;
  --sidebar: #171a20;
  --lime: #d7ff45;
  --blue: #5b7cff;
  --coral: #ff725c;
  --violet: #9d77ff;
  --radius: 16px;
  --shadow: 0 18px 45px rgba(18, 23, 31, 0.1);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size-adjust: 0.6;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.muted { color: var(--muted); }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 236px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 16px; display: flex; flex-direction: column; color: #fff; background: var(--sidebar); z-index: 20; }
.brand { display: flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; padding: 0 8px 26px; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--sidebar); background: var(--lime); font-weight: 900; font-size: 20px; transform: rotate(-3deg); }
.brand-mark span { transform: rotate(3deg); }
.brand strong { display: block; font-size: 19px; letter-spacing: -.5px; line-height: 17px; }
.brand small { color: #999fa9; font-weight: 700; font-size: 9px; letter-spacing: 3.1px; }
.brand-mark.large { width: 55px; height: 55px; margin: 0 auto 18px; font-size: 27px; }

/* Jeden kontener przewijania obejmuje nawigację i listę projektów —
   stopka nigdy nie nachodzi na treść, niezależnie od wysokości okna. */
.sidebar-scroll { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; scrollbar-width: thin; scrollbar-color: #3a3f48 transparent; }
.main-nav { display: grid; gap: 3px; }
.nav-group-label { margin: 15px 12px 5px; color: #6d727c; font-size: 9px; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; }
.nav-item { width: 100%; display: flex; align-items: center; gap: 12px; padding: 9px 12px; border: 0; border-radius: 10px; color: #aeb2bb; background: transparent; text-align: left; font-size: 13px; font-weight: 600; }
.nav-item .icon { display: grid; place-items: center; width: 22px; font-size: 18px; }
.nav-count { min-width: 21px; height: 19px; margin-left: auto; display: grid; place-items: center; padding: 0 5px; border-radius: 7px; background: #2a2e36; color: #aeb2bb; font-size: 8px; font-weight: 850; }
.nav-item:hover { color: #fff; background: #22262e; }
.nav-item.active { color: var(--sidebar); background: var(--lime); }
.nav-item.active .nav-count { background: var(--sidebar); color: var(--lime); }
.manager-menu-toggle { width: 100%; display: flex; align-items: center; gap: 12px; margin-top: 8px; padding: 10px 12px; border: 1px solid #30353e; border-radius: 10px; background: #20242b; color: #c2c6cd; text-align: left; font-size: 12px; font-weight: 750; }
.manager-menu-toggle:hover, .manager-menu-toggle.open { border-color: #454b56; background: #262b33; color: #fff; }
.manager-menu-toggle.has-active { color: var(--lime); }
.manager-menu-toggle .icon { width: 22px; display: grid; place-items: center; color: #8f96a1; font-size: 16px; }
.manager-chevron { margin-left: auto; color: #858c97; font-size: 17px; transition: transform .16s ease; }
.manager-menu-toggle.open .manager-chevron { transform: rotate(90deg); }
.manager-menu { display: grid; gap: 3px; padding: 3px 0 7px 8px; border-left: 1px solid #30353e; }
.manager-menu .nav-group-label { margin-top: 12px; }
.manager-menu .nav-item { font-size: 12px; }
.sidebar-section { margin-top: 18px; }
.section-label { display: flex; align-items: center; justify-content: space-between; padding: 0 12px 9px; color: #686e79; font-size: 9px; font-weight: 800; letter-spacing: 1.8px; }
.section-label button { border: 0; background: none; color: #777d87; font-size: 18px; }
.project-nav { display: grid; gap: 3px; }
.project-button { display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: transparent; color: #aeb2bb; padding: 8px 12px; border-radius: 9px; text-align: left; font-size: 12px; }
.project-button:hover, .project-button.active { color: white; background: #242831; }
.project-dot { width: 8px; height: 8px; border-radius: 3px; flex: none; }
.sidebar-footer { flex: none; margin-top: 12px; padding: 14px 12px 0; border-top: 1px solid #2c3038; background: var(--sidebar); }
.sidebar-footer p { margin: 7px 0 0; color: #7f858f; font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
.source-settings-button { width: 100%; display: flex; align-items: center; gap: 9px; margin: 0 0 13px; padding: 8px 0; border: 0; background: transparent; color: #aeb2bb; text-align: left; font-size: 11px; font-weight: 700; }
.source-settings-button:hover { color: white; }
.mode-badge { display: inline-flex; padding: 4px 7px; border-radius: 5px; background: #292e36; color: var(--lime); font-size: 8px; font-weight: 900; letter-spacing: 1.2px; }

.main-content { min-width: 0; }
.topbar { height: 74px; position: sticky; top: 0; display: flex; align-items: center; gap: 18px; padding: 0 34px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); backdrop-filter: blur(16px); z-index: 15; }
.search-box { display: flex; align-items: center; gap: 10px; width: min(480px, 48vw); padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f7f7f6; color: #8a909a; }
.search-box input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 12px; }
.search-box kbd { padding: 3px 6px; border: 1px solid #dedfe2; border-radius: 5px; background: white; color: #959aa2; font-size: 9px; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 9px; }
.sync-status { min-height: 31px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid var(--line); border-radius: 9px; background: white; color: #7d838c; font-size: 8px; }
.sync-status span { width: 7px; height: 7px; border-radius: 50%; background: #aeb2b8; }
.sync-status.live span { background: #3cad76; box-shadow: 0 0 0 4px #e4f5eb; }
.sync-status.syncing span { background: #d39c32; animation: pulse 1s infinite; }
.sync-status.error span { background: #dc604d; }
.sync-status b { font-weight: 850; }
.icon-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: white; color: #555c66; font-size: 18px; }
.icon-button:hover { background: #f5f5f4; color: var(--ink); }
.button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 15px; border: 1px solid transparent; border-radius: 9px; font-weight: 750; font-size: 12px; text-decoration: none; }
.button.primary { background: var(--ink); color: white; }
.button.primary:hover { background: #30343d; }
.button.ghost { border-color: var(--line); background: white; color: #656b75; }
.button.full { width: 100%; min-height: 46px; }
.user-chip { display: flex; align-items: center; gap: 9px; padding: 4px 8px 4px 4px; border: 0; border-left: 1px solid var(--line); background: transparent; text-align: left; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--person-border, #d8ccfb); border-radius: 10px; background: var(--person-bg, #e7e0ff); color: var(--person-fg, #6b4cc3); font-size: 10px; font-weight: 900; }
.user-copy strong, .user-copy small { display: block; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy strong { font-size: 11px; }.user-copy small { color: #91969e; font-size: 9px; margin-top: 2px; }

.content-wrap { width: min(1440px, 100%); margin: 0 auto; padding: 20px 38px 60px; }
.page-heading { display: none; }
.eyebrow { margin: 0 0 8px; color: #91969d; font-size: 9px; font-weight: 850; letter-spacing: 2px; }
.page-heading h1 { margin: 0; font-size: clamp(28px, 3vw, 42px); line-height: 1.05; letter-spacing: -1.8px; }
.page-heading h1 span { color: #7d65ce; }
.page-heading p:not(.eyebrow) { margin: 10px 0 0; color: var(--muted); font-size: 12px; }
.date-chip { display: flex; gap: 7px; align-items: center; color: #7a8089; font-size: 11px; padding-bottom: 5px; }

.dashboard-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.dashboard-overview-grid .stats-grid { height: 300px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dashboard-overview-grid .stat-card { min-height: 0; padding: 14px 15px; }
.dashboard-overview-grid .stat-card strong { margin-top: 10px; }
.dashboard-overview-grid .dashboard-overview-panel { position: relative; height: 300px; min-width: 0; display: flex; flex-direction: column; margin: 0; border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; box-shadow: 0 8px 22px rgba(27, 30, 36, .04); transition: height .22s ease, box-shadow .18s ease; }
.dashboard-overview-panel.expanded { height: auto; min-height: 300px; box-shadow: 0 14px 32px rgba(27, 30, 36, .08); }
.dashboard-panel-heading { width: 100%; flex: none; align-items: center; margin: 0; padding: 15px 16px; border: 0; border-bottom: 1px solid #ececef; background: white; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.dashboard-panel-heading:hover { background: #fbfbfa; }
.dashboard-panel-heading:focus-visible { outline: 3px solid rgba(123, 93, 211, .24); outline-offset: -3px; }
.dashboard-panel-meta { display: flex; align-items: center; gap: 8px; }
.dashboard-panel-meta > b { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; background: #f1f1f2; color: #787e87; font-size: 13px; transition: transform .18s ease; }
.dashboard-overview-panel.expanded .dashboard-panel-meta > b { transform: rotate(180deg); }
.dashboard-panel-body { position: relative; flex: 1; min-height: 0; padding: 10px; overflow: hidden; }
.dashboard-overview-panel:not(.expanded) .dashboard-panel-body::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 46px; pointer-events: none; background: linear-gradient(transparent, rgba(255,255,255,.96)); }
.dashboard-overview-panel.expanded .dashboard-panel-body { overflow: visible; }
.dashboard-overview-panel .today-absence-list { grid-template-columns: minmax(0, 1fr); }
.dashboard-overview-panel .attention-list { padding: 0; border: 0; }
.dashboard-overview-panel .attention-item { grid-template-columns: 34px minmax(0, 1fr) auto; }
.dashboard-overview-panel .attention-person { grid-column: 2; justify-self: start; }
.dashboard-overview-panel .attention-item .attention-reassign,
.dashboard-overview-panel .attention-item .row-menu,
.dashboard-overview-panel .attention-item .attention-absence { grid-column: 3; grid-row: 1 / span 2; }
.stat-card { min-height: 144px; padding: 18px 19px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.stat-card:hover { border-color: #cfd1d5; box-shadow: 0 12px 28px rgba(27, 30, 36, .08); transform: translateY(-2px); }
.stat-card:focus-visible { outline: 3px solid rgba(123, 93, 211, .28); outline-offset: 3px; }
.stat-card.accent-dark { border-color: var(--sidebar); background: var(--sidebar); color: white; box-shadow: 0 12px 28px rgba(20,23,28,.15); }
.stat-top { display: flex; align-items: center; justify-content: space-between; color: #979ca4; font-size: 8px; font-weight: 850; letter-spacing: 1.2px; }
.stat-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: var(--lime); color: var(--ink); font-size: 12px; }
.stat-icon.blue { background: #e5eaff; color: #4461c9; }.stat-icon.coral { background: #ffe5e1; color: #dc4f3b; }.stat-icon.violet { background: #ede7ff; color: #7657cf; }
.stat-card strong { display: block; margin-top: 16px; font-size: 32px; letter-spacing: -1.4px; }
.stat-card p { margin: 5px 0 0; color: #969ba3; font-size: 9px; }
.trend { font-weight: 800; }.trend.positive { color: #bfe930; }.trend.negative { color: #e96250; }

.team-section { margin-top: 34px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.section-heading h2, .backlog-header h2 { margin: 0; font-size: 17px; letter-spacing: -.4px; }
.section-heading p, .backlog-header p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.text-button { border: 0; background: none; color: #656b75; font-size: 10px; font-weight: 750; }
.people-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 9px; padding-bottom: 4px; }
.person-card { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: inset 3px 0 var(--person-border, var(--line)); text-align: left; transition: .15s ease; }
.person-card:hover, .person-card.active { border-color: var(--person-border, #8c74da); transform: translateY(-1px); box-shadow: inset 3px 0 var(--person-fg, #8c74da), 0 7px 18px rgba(56,45,95,.08); }
.person-card.active { background: linear-gradient(135deg, var(--person-bg, #f7f4ff) 0%, #fff 72%); }
.person-avatar { width: 35px; height: 35px; flex: none; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd); border-radius: 11px; background: var(--person-bg, #f0f1f2); color: var(--person-fg, #4a4540); font-size: 10px; font-weight: 900; }
.person-copy { min-width: 0; flex: 1; }.person-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-copy strong { display: block; font-size: 11px; }.person-copy small { margin-top: 3px; color: #9a9fa7; font-size: 8px; }
/* Imię i nazwisko nigdy nie jest ucinane — zawija się na drugą linię. */
.person-name { white-space: normal; overflow-wrap: anywhere; }
.person-copy .person-roles { color: var(--person-fg, #69717c); font-size: 7px; font-weight: 750; opacity: .82; }
.person-copy .upcoming-absence-note { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; margin-top: 5px; padding: 3px 6px; border-radius: 999px; background: #eee9ff; color: #684db8; font-size: 6.5px; font-weight: 800; }
.person-count { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: var(--person-bg, #f1f1ef); color: var(--person-fg, var(--ink)); font-size: 10px; font-weight: 850; }

.backlog-panel { margin-top: 31px; border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; }
.backlog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 21px 15px; }
.title-row { display: flex; align-items: center; gap: 9px; }
.count-badge { padding: 3px 7px; border-radius: 99px; background: #f0f0ee; color: #6f757e; font-size: 9px; font-weight: 800; }
.view-actions { display: flex; gap: 10px; }.segmented { min-width: 32px; height: 30px; padding: 0 9px; border: 1px solid var(--line); background: white; color: #969ba2; font-size: 11px; font-weight: 700; white-space: nowrap; }.segmented:first-child { border-radius: 8px 0 0 8px; }.segmented:last-child { border-radius: 0 8px 8px 0; margin-left: -1px; }.segmented.active { background: var(--ink); color: white; border-color: var(--ink); }
.filters-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; padding: 11px 21px; border-top: 1px solid var(--line); background: #fafaf9; }
.select-wrap { display: grid; gap: 4px; }.select-wrap span { padding-left: 3px; color: #a0a4aa; font-size: 7px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.select-wrap select { min-width: 135px; height: 34px; border: 1px solid #dedfe1; border-radius: 8px; padding: 0 28px 0 10px; background: white; color: #5e646d; font-size: 10px; }
.select-wrap:has(#personFilter) select { min-width: 230px; max-width: 310px; }
.multi-filter { position: relative; min-width: 185px; }
.multi-filter > summary { height: 34px; display: grid; align-content: center; gap: 2px; padding: 0 30px 0 10px; border: 1px solid #dedfe1; border-radius: 8px; background: white; cursor: pointer; list-style: none; }
.multi-filter > summary::-webkit-details-marker { display: none; }
.multi-filter > summary::after { content: '⌄'; position: absolute; right: 10px; top: 18px; transform: translateY(-50%); color: #8d929a; font-size: 11px; }
.multi-filter > summary span { color: #a0a4aa; font-size: 6px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.multi-filter > summary b { max-width: 145px; overflow: hidden; color: #5e646d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.multi-filter.active > summary { border-color: #8973d1; background: #f9f7ff; }.multi-filter.active > summary b { color: #654eb3; }
.multi-filter.disabled { opacity: .6; pointer-events: none; }
.multi-filter-menu { position: absolute; top: 39px; left: 0; width: 285px; z-index: 20; padding: 11px; border: 1px solid #dddbe4; border-radius: 11px; background: white; box-shadow: 0 16px 35px rgba(28, 25, 40, .16); }
.multi-filter-heading { display: flex; align-items: center; justify-content: space-between; padding: 1px 2px 8px; }.multi-filter-heading strong { font-size: 9px; }.multi-filter-heading button { border: 0; background: transparent; color: #725cc1; font-size: 7px; font-weight: 800; }
.multi-filter-options { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; max-height: 205px; overflow-y: auto; }
.multi-filter-options label { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 7px; border: 1px solid #ecebef; border-radius: 8px; cursor: pointer; }
.multi-filter-options label:has(input:checked) { border-color: #cfc4ef; background: #f5f1ff; color: #634daf; }.multi-filter-options input { width: 13px; height: 13px; flex: none; accent-color: #7258c5; }.multi-filter-options span { overflow: hidden; font-size: 8px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }.multi-filter-options p { grid-column: span 2; margin: 4px; color: var(--muted); font-size: 8px; }
.multi-filter-menu > small { display: block; margin-top: 8px; color: #9a9fa7; font-size: 7px; line-height: 1.4; }
.competency-workload-summary { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(4, minmax(105px, .7fr)); gap: 8px; align-items: stretch; padding: 12px 21px; border-top: 1px solid #ddd5f2; background: linear-gradient(90deg, #f8f5ff 0%, #f5f7fb 100%); }
.competency-workload-summary > div, .competency-workload-summary > span { min-width: 0; padding: 9px 11px; border: 1px solid rgba(119, 98, 177, .12); border-radius: 9px; background: rgba(255,255,255,.72); }
.competency-workload-summary p, .competency-workload-summary small { display: block; margin: 0; color: #94909d; font-size: 6px; font-weight: 850; letter-spacing: .8px; }.competency-workload-summary > div strong { display: block; margin-top: 4px; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.competency-workload-summary > div > small { margin-top: 4px; letter-spacing: 0; font-weight: 600; }
.competency-workload-summary > span b { display: block; margin-top: 6px; font-size: 14px; }.competency-workload-summary .department-load b { color: #5b4c86; }.competency-workload-summary .department-load.busy b { color: #9a6d1b; }.competency-workload-summary .department-load.overloaded b { color: #bf4f3f; }
.department-load i { height: 4px; display: block; margin-top: 7px; border-radius: 99px; background: #e5e1ed; overflow: hidden; }.department-load i em { height: 100%; display: block; border-radius: inherit; background: #7760be; }.department-load.busy i em { background: #d2a03b; }.department-load.overloaded i em { background: #d65d4a; }
.table-wrap { max-width: 100%; overflow-x: hidden; }
.tasks-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; }
.tasks-col-title { width: 38%; }.tasks-col-project { width: 9%; }.tasks-col-people { width: 27%; }.tasks-col-status { width: 8%; }.tasks-col-created { width: 8%; }.tasks-col-due { width: 7%; }.tasks-col-actions { width: 3%; }
.tasks-table th { padding: 10px 13px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fafaf9; color: #999ea6; text-align: left; font-size: 7px; letter-spacing: 1px; }
.tasks-table th[data-sort-key] { padding: 0; }
.tasks-table th[data-sort-key] button { width: 100%; min-height: 35px; display: flex; align-items: center; gap: 6px; padding: 10px 13px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 800; letter-spacing: inherit; text-align: left; white-space: nowrap; cursor: pointer; }
.tasks-table th[data-sort-key] button:hover { background: #f4f3f7; color: #686e78; }
.tasks-table th[data-sort-key] button:focus-visible { outline: 2px solid #8973d1; outline-offset: -2px; }
.tasks-table th.sorted { background: #f3f1f9; color: #6651ad; }
.sort-indicator { display: inline-grid; width: 13px; height: 13px; place-items: center; border-radius: 4px; color: #b3b6bc; font-size: 9px; font-weight: 900; letter-spacing: 0; }
.tasks-table th.sorted .sort-indicator { background: #e5dff8; color: #674eaf; }
.tasks-table th:first-child, .tasks-table td:first-child { padding-left: 21px; }
.tasks-table th:last-child, .tasks-table td:last-child { padding-right: 4px; padding-left: 4px; text-align: center; }
.tasks-table th[data-sort-key]:first-child { padding-left: 0; }
.tasks-table th[data-sort-key]:first-child button { padding-left: 21px; }
.tasks-table td { height: 62px; padding: 10px 13px; border-bottom: 1px solid #eeeeec; vertical-align: middle; font-size: 10px; }
.tasks-table tbody tr { cursor: pointer; transition: background .12s; }.tasks-table tbody tr:hover { background: #fbfbfa; }
.tasks-table.compact td { height: 48px; padding-top: 6px; padding-bottom: 6px; }
.task-main { min-width: 0; display: flex; align-items: center; gap: 10px; }
.deploy-root-row td { background: #fffdf7; }
.deploy-root-row:hover td { background: #fffaf0; }
.deploy-group-toggle { width: 25px; height: 25px; flex: none; display: grid; place-items: center; border: 1px solid #e4cf9f; border-radius: 7px; background: #fff7e5; color: #946717; font-size: 14px; font-weight: 800; }
.deploy-group-toggle:hover { border-color: #c99c45; background: #ffefcb; }
.deploy-group-summary { color: #a27424 !important; font-weight: 800; }
.deploy-child-row td { height: 34px; padding-top: 4px; padding-bottom: 4px; background: #fafbfc; }
.deploy-child-row:hover td { background: #f4f6f8 !important; }
.deploy-child-main { min-width: 0; gap: 7px; padding-left: var(--deploy-indent, 0); }
.deploy-child-main .type-icon { width: 19px; height: 19px; border-radius: 5px; font-size: 8px; }
.deploy-tree-mark { width: 13px; flex: none; color: #b2a26f; font-size: 12px; text-align: center; }
.deploy-child-row .task-copy strong { max-width: 400px; font-size: 9px; font-weight: 750; }
.deploy-child-row .task-copy small { margin-top: 1px; font-size: 6px; }
.deploy-child-row .project-pill, .deploy-child-row .status-pill, .deploy-child-row .priority-pill { padding: 3px 5px; border-radius: 5px; font-size: 7px; }
.deploy-child-row .project-pill::before, .deploy-child-row .status-pill::before { width: 4px; height: 4px; }
.deploy-child-row .assignee-cell { gap: 5px; font-size: 8px; }
.deploy-child-row .mini-avatar { width: 18px; height: 18px; border-radius: 5px; font-size: 6px; }
.deploy-participants { min-width: 0; display: grid; gap: 3px; padding: 3px 0; }
.deploy-child-row .assignee-cell > span:last-child { display: flex; align-items: baseline; gap: 5px; }
.deploy-child-row .assignee-cell small { color: var(--person-fg, #7180bd); opacity: .7; font-size: 5px; font-weight: 900; letter-spacing: .6px; }
.deploy-child-row .participant-chips { gap: 3px; }
.deploy-child-row .participant-chip { padding: 2px 5px 2px 2px; border-radius: 6px; font-size: 7px; }
.deploy-child-row .participant-chip b { width: 16px; height: 16px; border-radius: 4px; font-size: 5px; }
.deploy-child-row .due-cell { font-size: 8px; }
.deploy-child-row .row-menu { font-size: 14px; }
.deployment-state-history { display: grid; justify-items: start; gap: 3px; }
.deployment-state-history small { color: #9298a1; font-size: 6px; white-space: nowrap; }
.deployment-state-history small.changed { color: #a66b18; font-weight: 750; }
.tasks-table.compact .deploy-child-row td { min-height: 30px; padding-top: 3px; padding-bottom: 3px; }
.type-icon { width: 29px; height: 29px; flex: none; display: grid; place-items: center; border-radius: 8px; background: #f0f1f2; color: #646b75; font-size: 12px; font-weight: 800; }
.type-icon.bug, .type-icon.incident { background: #ffe9e5; color: #d15442; }.type-icon.epic { background: #eee8ff; color: #765bd1; }.type-icon.story, .type-icon.feature { background: #e8edff; color: #4e68c4; }.type-icon.company { background: #efffc0; color: #5b7214; }
.task-copy { min-width: 0; flex: 1; }.task-copy strong { display: block; max-width: none; overflow: visible; font-size: 11px; line-height: 1.3; overflow-wrap: anywhere; white-space: normal; }.task-copy small { display: block; margin-top: 3px; color: #999ea5; font-size: 8px; }
.project-pill, .status-pill, .priority-pill { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; border-radius: 6px; font-size: 8px; font-weight: 750; }
.project-pill { max-width: 100%; padding: 5px 7px; overflow: hidden; background: #f0f1f2; color: #5e646d; text-overflow: ellipsis; }.project-pill::before { content: ''; width: 5px; height: 5px; flex: none; border-radius: 2px; background: var(--project-color, #777); }
.assignee-cell { display: flex; align-items: center; gap: 7px; color: var(--person-fg, #59616c); font-weight: 750; white-space: nowrap; }.mini-avatar { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd6f7); border-radius: 7px; background: var(--person-bg, #ece7ff); color: var(--person-fg, #6c54b9); font-size: 7px; font-weight: 900; }.unassigned { color: #aaafb6; font-style: italic; }
.task-people-cell { display: grid; gap: 7px; min-width: 245px; }.current-owner { width: fit-content; display: flex; align-items: center; gap: 7px; padding: 5px 8px 5px 5px; border: 1px solid var(--person-border, #d7ddf5); border-radius: 9px; background: var(--person-bg, #e9edff); color: var(--person-fg, #4058ae); }.current-owner .mini-avatar { background: rgba(255,255,255,.48); }.current-owner > span:last-child { display: flex; align-items: baseline; gap: 7px; }.current-owner strong { font-size: 9px; }.current-owner small { color: var(--person-fg, #7180bd); opacity: .72; font-size: 6px; font-weight: 900; letter-spacing: .8px; }.participant-chips { display: flex; flex-wrap: wrap; gap: 4px; }.participant-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px 4px 4px; border: 1px solid var(--person-border, #ddd6f7); border-radius: 8px; background: var(--person-bg, #faf8ff); color: var(--person-fg, #655496); font-size: 8px; font-weight: 750; white-space: nowrap; }.participant-chip b { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 6px; background: rgba(255,255,255,.5); font-size: 6px; }.participant-more { display: inline-grid; place-items: center; min-width: 27px; padding: 4px 6px; border-radius: 8px; background: #eeeaf8; color: #665794; font-size: 8px; font-weight: 850; }.no-participants { color: #b0b4bb; font-size: 7px; }
.child-count-badge { display: inline-flex; margin-left: 7px; padding: 3px 5px; border-radius: 5px; background: #e7f3ee; color: #34745d; vertical-align: 1px; font-size: 6px; letter-spacing: .5px; }
.child-owner-summary { width: fit-content; display: inline-flex; align-items: center; gap: 5px; color: #66716c; font-size: 8px; font-weight: 700; }.child-owner-summary b { padding: 3px 5px; border-radius: 4px; background: #e7f3ee; color: #39745d; font-size: 6px; letter-spacing: .5px; }
.status-pill { padding: 5px 7px; background: #edf0f5; color: #657080; }.status-pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #8190a4; }.status-pill.active, .status-pill.in-progress { background: #e8edff; color: #5068be; }.status-pill.active::before, .status-pill.in-progress::before { background: #5b7cff; }.status-pill.new { background: #f1f1ef; color: #747a83; }.status-pill.waiting { background: #fff1d6; color: #a06e15; }.status-pill.approved { background: #e8f7ee; color: #367c52; }
.priority-pill { padding: 5px 7px; }.priority-1 { background: #ffe4df; color: #c84533; }.priority-2 { background: #fff0d9; color: #9a681a; }.priority-3 { background: #edf0f4; color: #657080; }.priority-4 { background: #f2f2f0; color: #969ba2; }
.tasks-table .task-people-cell { min-width: 0; }
.tasks-table .current-owner { max-width: 100%; min-width: 0; }
.tasks-table .current-owner > span:last-child { min-width: 0; flex-wrap: wrap; gap: 3px 7px; }
.tasks-table .current-owner strong { min-width: 0; overflow-wrap: anywhere; }
.tasks-table .participant-chips { min-width: 0; }
.tasks-table .participant-chip { min-width: 0; max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
.tasks-table .participant-chip b { flex: none; }
.tasks-table .assignee-cell { min-width: 0; white-space: normal; }
.due-cell { white-space: nowrap; color: #69707a; }.due-cell.overdue { color: #d24d3a; font-weight: 800; }.due-cell.today { color: #9a681a; font-weight: 800; }
.active-since-cell { display: grid; gap: 2px; white-space: nowrap; }
.active-since-cell strong { color: #59616b; font-size: 9px; }
.active-since-cell small { color: #a0a5ad; font-size: 6px; }
.row-menu { border: 0; background: transparent; color: #a2a6ad; font-size: 18px; }
.empty-state { padding: 60px 20px; text-align: center; }.empty-state div { width: 42px; height: 42px; margin: 0 auto 12px; display: grid; place-items: center; border-radius: 13px; background: #efffc5; }.empty-state h3 { margin: 0; font-size: 15px; }.empty-state p { color: var(--muted); font-size: 11px; }

.overlay { position: fixed; inset: 0; background: rgba(13,16,21,.28); backdrop-filter: blur(2px); z-index: 40; }
.detail-drawer { position: fixed; top: 0; right: 0; width: min(480px, 100vw); height: 100vh; z-index: 50; background: white; box-shadow: -20px 0 50px rgba(16,20,27,.16); transform: translateX(102%); transition: transform .22s ease; }
.detail-drawer.open { transform: translateX(0); }.drawer-header { height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); }.drawer-header > div { display: flex; align-items: center; gap: 9px; }.drawer-content { height: calc(100vh - 70px); padding: 26px; overflow-y: auto; }
.detail-type { color: #848a93; font-size: 9px; font-weight: 800; letter-spacing: 1.5px; }.detail-title { margin: 9px 0 22px; font-size: 25px; line-height: 1.18; letter-spacing: -.8px; }.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 22px 0; }.detail-field { padding: 12px; border-radius: 10px; background: #f7f7f5; }.detail-field span, .detail-description span { display: block; margin-bottom: 6px; color: #999ea5; font-size: 8px; font-weight: 800; letter-spacing: 1px; }.detail-field strong { font-size: 11px; }.detail-description { margin-top: 24px; }.detail-description p { color: #5e6570; font-size: 12px; line-height: 1.6; white-space: pre-wrap; }.drawer-actions { display: flex; gap: 8px; margin-top: 26px; }
.detail-status-control, .detail-priority-control, .detail-size-control { display: flex; align-items: center; gap: 6px; }
.detail-status-control select, .detail-priority-control select, .detail-size-control select { min-width: 0; height: 30px; flex: 1; padding: 0 25px 0 8px; border: 1px solid #d8dbe0; border-radius: 7px; outline: 0; background: white; color: #59616c; font-size: 9px; font-weight: 750; }
.detail-status-control select:focus, .detail-priority-control select:focus, .detail-size-control select:focus { border-color: #8973d1; box-shadow: 0 0 0 2px #ece8f8; }
.detail-status-control .button, .detail-priority-control .button, .detail-size-control .button { min-width: 54px; height: 30px; padding: 0 9px; font-size: 8px; }
.detail-status-control .button:disabled, .detail-priority-control .button:disabled, .detail-size-control .button:disabled { opacity: .45; cursor: default; }
.task-size-badge { display: inline-grid; min-width: 25px; height: 20px; place-items: center; margin: 0; padding: 0 6px; border-radius: 6px; background: #ece8f8; color: #674fac; font-size: 7px; font-weight: 900; letter-spacing: .4px; white-space: nowrap; }
.task-size-badge.size-s { background: #e8f4ee; color: #387257; }
.task-size-badge.size-m { background: #e8edff; color: #5068bd; }
.task-size-badge.size-xl { background: #fff0d2; color: #8f641c; }
.task-size-badge.size-xxxl { background: #ffe5e0; color: #b64b3b; }
.task-copy strong .task-size-badge { margin-left: 7px; vertical-align: 1px; }
.mode-task-size { margin-top: 4px; }
.local-task-status { margin: 24px 0; padding: 14px; border: 1px solid #ddd6f1; border-radius: 14px; background: linear-gradient(145deg, #fbf9ff 0%, #fff 72%); }
.local-task-status-heading > b { min-width: auto; padding: 4px 7px; background: #eee8ff; color: #694fb2; letter-spacing: .6px; }
.local-status-current { padding: 12px; border: 1px solid #e1dbee; border-radius: 11px; background: white; }
.local-status-current p { margin: 0; color: #31353b; font-size: 11px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.local-status-current footer { display: flex; justify-content: space-between; gap: 10px; margin-top: 9px; color: #8d929a; font-size: 8px; }
.local-status-current footer strong { color: #6d56aa; }
.local-status-empty, .local-status-unavailable { padding: 11px; border-radius: 9px; background: #f4f2f8; color: #898e96; font-size: 9px; line-height: 1.5; }
.local-status-form { display: grid; gap: 7px; margin-top: 10px; }
.local-status-form > label { color: #969aa2; font-size: 7px; font-weight: 850; letter-spacing: 1px; }
.local-status-form textarea { width: 100%; min-height: 74px; resize: vertical; padding: 10px; border: 1px solid #d9dbe0; border-radius: 9px; outline: 0; background: white; color: var(--ink); font: inherit; font-size: 10px; line-height: 1.5; }
.local-status-form textarea:focus { border-color: #8973d1; box-shadow: 0 0 0 2px #ece8f8; }
.local-status-form > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.local-status-form > div small { color: #969ba3; font-size: 7px; line-height: 1.4; }
.local-status-form .button { flex: none; height: 32px; padding: 0 12px; font-size: 8px; }
.local-status-form .form-error { margin: 0; font-size: 8px; }
.local-status-unavailable { margin: 10px 0 0; }
.local-status-history { margin-top: 10px; border-top: 1px solid #e6e1ee; }
.local-status-history summary { padding-top: 10px; color: #74658f; font-size: 8px; font-weight: 800; cursor: pointer; }
.local-status-history summary b { display: inline-grid; min-width: 18px; height: 18px; place-items: center; margin-left: 4px; border-radius: 5px; background: #eee8ff; color: #694fb2; font-size: 7px; }
.local-status-history ol { display: grid; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.local-status-history li { padding: 9px; border-radius: 8px; background: #f6f5f8; }
.local-status-history li p { margin: 0; color: #555b64; font-size: 9px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.local-status-history li small { display: block; margin-top: 5px; color: #979ca4; font-size: 7px; }
.detail-description .azure-mention { display: inline; margin: 0; padding: 2px 5px; border-radius: 5px; background: #e8edff; color: #4f65b8; font-size: inherit; font-weight: 800; letter-spacing: 0; white-space: nowrap; }
.detail-description .azure-mention.unresolved { background: #f0f1f3; color: #747b85; }
.detail-children { margin-top: 24px; }.detail-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }.detail-section-heading > span { color: #999ea5; font-size: 8px; font-weight: 800; letter-spacing: 1px; }.detail-section-heading > b { min-width: 22px; padding: 4px 6px; border-radius: 6px; background: #e7f3ee; color: #39745d; text-align: center; font-size: 8px; }.detail-child-list { display: grid; gap: 7px; }.detail-child-task { width: 100%; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto 12px; align-items: center; gap: 9px; padding: 10px; border: 1px solid #e5e6e7; border-radius: 11px; background: #fbfbfa; text-align: left; cursor: pointer; }.detail-child-task:hover { border-color: #cbc4e5; background: #faf8ff; }.detail-child-task:focus-visible { outline: 2px solid #8973d1; outline-offset: 2px; }.detail-child-copy { min-width: 0; }.detail-child-copy strong { display: block; overflow: hidden; color: #30343a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.detail-child-copy small { display: block; margin-top: 3px; color: #969ca5; font-size: 7px; }.detail-child-meta { display: grid; justify-items: end; gap: 5px; }.detail-child-meta .status-pill { font-style: normal; }.detail-child-meta em { display: inline-flex; align-items: center; gap: 5px; padding: 3px 6px 3px 3px; border-radius: 6px; background: var(--person-bg, #f0edf8); color: var(--person-fg, #66559a); font-size: 7px; font-style: normal; font-weight: 750; white-space: nowrap; }.detail-child-meta em b { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 4px; background: rgba(255,255,255,.55); font-size: 5px; }.detail-child-arrow { color: #9a9fa7; font-size: 17px; }
.assignment-history { margin-top: 24px; }.assignment-history > span { display: block; margin-bottom: 8px; color: #999ea5; font-size: 8px; font-weight: 800; letter-spacing: 1px; }.assignment-history ol { margin: 0; padding: 0; list-style: none; }.assignment-history li { display: grid; grid-template-columns: 58px 1fr; gap: 9px; padding: 9px 0; border-bottom: 1px solid var(--line); }.assignment-history li small { color: var(--muted); font-size: 9px; }.assignment-history li strong { font-size: 10px; }
.archive-badge { display: inline-flex; margin: 0 0 9px; padding: 5px 8px; border-radius: 6px; background: #eeeef0; color: #666c75; font-size: 8px; font-weight: 850; letter-spacing: .7px; }
.deploy-badge { display: inline-flex; margin: 0 6px 9px 0; padding: 5px 8px; border-radius: 6px; background: #fff0d6; color: #98630d; font-size: 8px; font-weight: 850; letter-spacing: .7px; }
.drawer-actions { flex-wrap: wrap; }

.task-dialog { width: min(700px, calc(100vw - 30px)); padding: 0; border: 0; border-radius: 19px; box-shadow: var(--shadow); }.task-dialog::backdrop { background: rgba(13,16,21,.45); backdrop-filter: blur(3px); }.dialog-header { display: flex; justify-content: space-between; gap: 20px; padding: 24px 26px 18px; border-bottom: 1px solid var(--line); }.dialog-header h2 { margin: 0; font-size: 23px; letter-spacing: -.7px; }.dialog-header p:not(.eyebrow) { margin: 6px 0 0; color: var(--muted); font-size: 10px; }.scope-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 18px 26px 4px; }.scope-switch label input { position: absolute; opacity: 0; }.scope-switch label span { display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; column-gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; cursor: pointer; }.scope-switch label b { grid-row: 1 / 3; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: #eff0f2; }.scope-switch label strong { font-size: 11px; }.scope-switch label small { color: #999ea5; font-size: 8px; margin-top: 2px; }.scope-switch input:checked + span { border-color: #7e68c7; background: #faf8ff; box-shadow: 0 0 0 2px #ede8ff; }.scope-switch input:checked + span b { background: #e9e3ff; color: #684dbd; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 18px 26px; }.span-2 { grid-column: span 2; }.field { display: grid; gap: 6px; }.field > span, .field > label { color: #777d86; font-size: 9px; font-weight: 750; }.field input, .field select, .field textarea { width: 100%; border: 1px solid #dadcdf; border-radius: 9px; outline: 0; background: white; color: var(--ink); font-size: 11px; }.field input, .field select { height: 39px; padding: 0 11px; }.field textarea { padding: 11px; resize: vertical; }.field input:focus, .field select:focus, .field textarea:focus { border-color: #8973d1; box-shadow: 0 0 0 3px #f0edfa; }
.date-field { align-content: start; }
.date-control { position: relative; border-radius: 10px; transition: box-shadow .15s ease; }
.date-control input[type="date"] { height: 42px; padding: 0 49px 0 12px; border-color: #d9dadd; border-radius: 10px; background: linear-gradient(180deg, #fff 0%, #fbfbfa 100%); color: #4f5661; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .15px; appearance: none; -webkit-appearance: none; cursor: pointer; }
.date-control:hover input[type="date"] { border-color: #bdb6d2; background: #fff; }
.date-control:focus-within { box-shadow: 0 0 0 3px #f0edfa; }
.date-control:focus-within input[type="date"] { border-color: #8973d1; box-shadow: none; }
.date-control input[type="date"]::-webkit-calendar-picker-indicator { display: none; }
.date-control input[type="date"]::-webkit-datetime-edit { padding: 0; }
.date-control input[type="date"]::-webkit-datetime-edit-fields-wrapper { padding: 0; }
.date-control input[type="date"]::-webkit-datetime-edit-text { padding: 0 2px; color: #a3a7ae; }
.date-picker-button { position: absolute; top: 5px; right: 5px; width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 8px; background: #eee9ff; color: #6d55bb; transition: transform .12s ease, background .12s ease, color .12s ease; }
.date-picker-button:hover { transform: translateY(-1px); background: #e3dbff; color: #573ba9; }
.date-picker-button:focus-visible { outline: 2px solid #7c65ca; outline-offset: 2px; }
.date-picker-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.date-shortcuts { display: flex; flex-wrap: wrap; gap: 5px; }
.date-shortcuts button { min-height: 25px; padding: 0 8px; border: 1px solid #e2e0e7; border-radius: 7px; background: #f8f7fb; color: #747080; font-size: 8px; font-weight: 800; }
.date-shortcuts button:hover, .date-shortcuts button.active { border-color: #b8a8e4; background: #eee9ff; color: #6548b8; }
.date-shortcuts .date-clear { margin-left: auto; border-color: transparent; background: transparent; color: #a16c66; }
.date-hint { min-height: 13px; color: #9a9fa7; font-size: 8px; line-height: 1.45; }
.date-control.has-value + .date-shortcuts + .date-hint { color: #655496; font-weight: 700; }
.task-availability { display: grid; grid-template-columns: 33px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 57px; padding: 10px 12px; border: 1px solid #e0e1e3; border-radius: 10px; background: #f7f7f6; color: #646b74; }
.task-availability-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: white; font-size: 10px; font-weight: 900; }
.task-availability strong, .task-availability small { display: block; }.task-availability strong { font-size: 10px; }.task-availability small { margin-top: 3px; font-size: 8px; line-height: 1.45; opacity: .82; }
.task-availability.available { border-color: #cce6d5; background: #edf8f1; color: #347052; }.task-availability.available .task-availability-icon { color: #347052; }
.task-availability.warning { border-color: #eed9a9; background: #fff6e1; color: #85601e; }.task-availability.warning .task-availability-icon { color: #9a6c19; }
.task-availability.unavailable { border-color: #f0c8c1; background: #fff0ed; color: #a3483a; }.task-availability.unavailable .task-availability-icon { color: #bd4c3b; }
.task-availability.neutral, .task-availability.checking { color: #6f6b78; background: #f5f3f8; }
.dialog-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 15px 26px 22px; border-top: 1px solid var(--line); }.form-error { margin: 0 26px 12px; padding: 10px; border-radius: 8px; background: #ffebe7; color: #bd4938; font-size: 10px; }
.settings-dialog { width: min(620px, calc(100vw - 30px)); }
.settings-content { display: grid; gap: 22px; padding: 20px 26px 23px; }
.connection-summary { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-radius: 11px; background: #f6f7f4; }
.connection-dot { width: 10px; height: 10px; flex: none; border-radius: 50%; background: #54b67a; box-shadow: 0 0 0 4px #dff3e6; }
.connection-summary div { min-width: 0; flex: 1; }
.connection-summary small, .connection-summary strong { display: block; }
.connection-summary small { color: #9a9fa6; font-size: 7px; font-weight: 850; letter-spacing: 1.2px; }
.connection-summary strong { margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.settings-section { display: grid; gap: 11px; }
.settings-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.settings-section-heading strong, .settings-section-heading small { display: block; }
.settings-section-heading strong { font-size: 11px; }
.settings-section-heading small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.project-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-height: 220px; padding: 2px; overflow-y: auto; }
.project-check { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.project-check:hover { border-color: #b8acd9; }
.project-check:has(input:checked) { border-color: #8a75cd; background: #faf8ff; box-shadow: 0 0 0 2px #f0ecfc; }
.project-check input { width: 15px; height: 15px; flex: none; accent-color: #7258c5; }
.project-check span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 750; }
.settings-company-field small { color: var(--muted); font-size: 9px; line-height: 1.45; }

.login-screen { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: radial-gradient(circle at 70% 20%, #efffc9 0, transparent 28%), var(--canvas); }.login-card { width: min(420px, 100%); padding: 44px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: var(--shadow); text-align: center; }.login-card h1 { margin: 0; font-size: 35px; letter-spacing: -1.5px; }.login-card p:not(.eyebrow) { color: var(--muted); line-height: 1.6; font-size: 12px; margin: 14px 0 25px; }
.toast-region { position: fixed; right: 18px; bottom: 18px; display: grid; gap: 8px; z-index: 100; }.toast { min-width: 260px; padding: 13px 15px; border-radius: 11px; background: var(--sidebar); color: white; box-shadow: var(--shadow); font-size: 11px; animation: toast-in .18s ease; }.toast.error { background: #a64032; }@keyframes toast-in { from { transform: translateY(8px); opacity: 0; } }
.mobile-only { display: none; }

.attention-section { margin-top: 30px; }
.personal-reminder-section { margin-top: 30px; }
.personal-reminder-count { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #e8edff; color: #4f68c0; font-size: 11px; font-weight: 900; }
.personal-reminder-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 9px; }
.personal-reminder { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto 12px; gap: 11px; align-items: center; padding: 12px 13px; border: 1px solid #dce2f4; border-radius: 13px; background: linear-gradient(145deg, #fff 0%, #f8faff 100%); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.personal-reminder:hover { border-color: #aebce4; box-shadow: 0 9px 22px rgba(66, 85, 145, .08); }
.personal-reminder.urgent { border-color: #efd0c9; background: linear-gradient(145deg, #fff 0%, #fff8f6 100%); }
.personal-reminder-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: #e8edff; color: #5069be; font-size: 15px; font-weight: 900; }
.personal-reminder.urgent .personal-reminder-icon { background: #ffe5e0; color: #bd4c3c; }
.personal-reminder-copy { min-width: 0; }
.personal-reminder-copy strong, .personal-reminder-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-reminder-copy strong { font-size: 11px; }
.personal-reminder-copy small { margin-top: 4px; color: #858b94; font-size: 8px; }
.personal-reminder-label { padding: 5px 7px; border-radius: 7px; background: #edf0f8; color: #66749f; font-size: 7px; font-weight: 800; white-space: nowrap; }
.personal-reminder.urgent .personal-reminder-label { background: #ffeae6; color: #a94b3d; }
.personal-reminder-arrow { color: #8e95a3; font-size: 17px; }
.today-absence-section { margin-top: 30px; }
.today-absence-count { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #eee8ff; color: #6648b5; font-size: 11px; font-weight: 900; }
.today-absence-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 10px; }
.today-absence-card { padding: 13px; border: 1px solid #dfd7f5; border-radius: var(--radius); background: linear-gradient(145deg, #fff 0%, #faf8ff 100%); box-shadow: 0 8px 20px rgba(72, 55, 125, .06); }
.today-absence-person { display: flex; align-items: center; gap: 10px; }
.today-absence-person > span { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 11px; background: var(--person-bg); color: var(--person-fg); font-size: 10px; font-weight: 900; }
.today-absence-person > div { min-width: 0; }
.today-absence-person strong, .today-absence-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-absence-person strong { font-size: 12px; }.today-absence-person small { margin-top: 3px; color: #898f98; font-size: 8px; }
.coverage-role-pills { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.coverage-role-pill { display: inline-flex; align-items: center; min-height: 20px; padding: 3px 7px; border: 1px solid #d8e8dd; border-radius: 999px; background: #edf7f0; color: #397354; font-size: 7px; font-style: normal; font-weight: 800; line-height: 1.2; }
.coverage-role-pill.learning { border-color: #ead5a5; background: #fff3d9; color: #8c651f; }
.coverage-role-pill.missing { border-color: #efc3bb; background: #ffe5e0; color: #ac493a; }
.coverage-role-pill.empty { border-color: #e0e1e3; background: #f1f2f3; color: #858a92; font-weight: 650; }
.today-coverage { display: flex; align-items: center; gap: 8px; margin: 11px 0; padding: 8px 9px; border-radius: 9px; background: #edf7f0; color: #397354; }
.today-coverage > span { width: 24px; height: 24px; display: grid; place-items: center; flex: none; border-radius: 7px; background: rgba(255,255,255,.7); font-size: 9px; font-weight: 900; }
.today-coverage strong, .today-coverage small { display: block; }.today-coverage strong { font-size: 8px; }.today-coverage small { margin-top: 2px; font-size: 7px; opacity: .78; }
.today-coverage.learning { background: #fff3d9; color: #8c651f; }.today-coverage.missing { background: #ffe9e5; color: #a84d3f; }
.today-risk-heading { display: flex; align-items: center; justify-content: space-between; margin: 4px 2px 7px; }
.today-risk-heading strong { font-size: 8px; letter-spacing: .4px; text-transform: uppercase; }.today-risk-heading span { min-width: 20px; padding: 3px 6px; border-radius: 6px; background: #efedf5; color: #6d647e; text-align: center; font-size: 7px; font-weight: 900; }
.today-risk-tasks { display: grid; gap: 5px; }
.today-risk-task { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 47px; border: 1px solid #ebe9ef; border-radius: 9px; background: white; overflow: hidden; }
.today-risk-task.critical { border-color: #f2cdc6; box-shadow: inset 3px 0 #dc6553; }.today-risk-task.high { border-color: #eeddb5; box-shadow: inset 3px 0 #d4a344; }
.today-risk-open { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 9px 8px 12px; border: 0; background: transparent; text-align: left; }
.today-risk-open > span { min-width: 0; }.today-risk-open strong, .today-risk-open small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.today-risk-open strong { font-size: 9px; }.today-risk-open small { margin-top: 3px; color: #959aa2; font-size: 7px; }
.today-risk-open > b { flex: none; padding: 3px 6px; border-radius: 5px; background: #f0eff2; color: #74707b; font-size: 6px; }.today-risk-task.critical .today-risk-open > b { background: #ffe8e4; color: #ae4f40; }.today-risk-task.high .today-risk-open > b { background: #fff2d5; color: #8d671e; }
.today-risk-reassign { align-self: stretch; padding: 0 10px; border: 0; border-left: 1px solid #ebe9ef; background: #faf9fc; color: #665787; font-size: 7px; font-weight: 850; }.today-risk-reassign:hover { background: #efebfa; }
.today-risk-arrow { padding: 0 12px; color: #9893a2; }
.today-risk-empty { min-height: 57px; display: flex; align-items: center; gap: 8px; padding: 9px; border-radius: 9px; background: #f4f8f4; color: #56705e; }.today-risk-empty > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: white; }.today-risk-empty p { margin: 0; }.today-risk-empty strong, .today-risk-empty small { display: block; }.today-risk-empty strong { font-size: 9px; }.today-risk-empty small { margin-top: 2px; font-size: 7px; opacity: .75; }
.today-absence-empty { min-height: 168px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border-radius: 12px; background: #f6faf7; color: #55715e; text-align: center; }
.today-absence-empty > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; background: white; font-weight: 900; }
.today-absence-empty strong { font-size: 10px; }.today-absence-empty small { color: #86918a; font-size: 8px; }
.today-risk-more { margin: 8px 2px 0 auto; display: block; border: 0; background: transparent; color: #675889; font-size: 8px; font-weight: 800; }
.attention-count { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #ffe5e0; color: #bd4938; font-size: 11px; font-weight: 900; }
.attention-list { display: grid; gap: 7px; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.attention-item { display: grid; grid-template-columns: 34px minmax(260px, 1fr) auto auto; gap: 11px; align-items: center; min-height: 61px; padding: 9px 11px; border: 1px solid transparent; border-radius: 11px; background: #fafaf9; cursor: pointer; transition: .15s ease; }
.attention-item:hover { border-color: #dedfe2; background: white; transform: translateY(-1px); }
.attention-item.severity-critical { background: #fff8f6; }
.attention-item.severity-high { background: #fffbf2; }
.attention-mark { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #edeef0; color: #707780; font-size: 11px; font-weight: 900; }
.severity-critical .attention-mark { background: #ffe1dc; color: #c84d3b; }
.severity-high .attention-mark { background: #fff0cf; color: #92651c; }
.attention-copy { min-width: 0; }
.attention-copy > strong, .attention-copy > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attention-copy > strong { font-size: 10px; }
.attention-copy > small { margin-top: 3px; color: #969ba3; font-size: 7px; }
.attention-copy > span { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.attention-copy > span b { padding: 3px 6px; border-radius: 5px; background: #eeeef0; color: #676e77; font-size: 6px; letter-spacing: .25px; }
.severity-critical .attention-copy > span b { background: #ffe8e4; color: #a8493b; }
.attention-person { display: flex; align-items: center; gap: 6px; padding: 5px 8px 5px 5px; border: 1px solid var(--person-border, #ddd); border-radius: 8px; background: var(--person-bg, #f1f1f1); color: var(--person-fg, #555); font-size: 8px; font-weight: 800; white-space: nowrap; }
.attention-person b { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; background: rgba(255,255,255,.55); font-size: 6px; }
.attention-reassign { min-height: 31px; padding: 0 10px; font-size: 8px; }
.attention-empty { min-height: 88px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #858b93; }
.attention-empty span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #e4f5ea; color: #347551; }
.attention-empty strong { font-size: 10px; }.attention-empty small { font-size: 8px; }

.person-card .person-copy strong { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; }
.person-card .person-copy .person-name { min-width: 0; }
.person-copy em { padding: 2px 4px; border-radius: 4px; background: #ffe6e1; color: #bb4c3b; font-size: 5px; font-style: normal; font-weight: 900; letter-spacing: .5px; }
.person-load { min-width: 37px; text-align: right; color: var(--person-fg, #555); font-size: 9px; font-weight: 900; }
.workload-bar { width: 100%; height: 4px; display: block; margin-top: 6px; border-radius: 99px; background: #eeeef0; overflow: hidden; }
.workload-bar i { height: 100%; display: block; border-radius: inherit; background: var(--person-fg, #777); opacity: .68; }
.person-card.busy { border-color: #ead7aa; }
.person-card.overloaded { border-color: #efc1ba; box-shadow: inset 3px 0 #d75a48; }
.person-card.overloaded .person-load { color: #c44d3b; }

.analytics-panel { display: grid; gap: 14px; }
.analytics-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.analytics-toolbar .eyebrow { margin-bottom: 5px; }
.analytics-toolbar h2 { margin: 0; font-size: 17px; }
.analytics-periods { display: flex; padding: 3px; border-radius: 10px; background: #f1f1ef; }
.analytics-periods button { min-height: 30px; padding: 0 11px; border: 0; border-radius: 8px; background: transparent; color: #777d86; font-size: 8px; font-weight: 800; }
.analytics-periods button.active { background: var(--ink); color: white; box-shadow: 0 3px 9px rgba(20,24,31,.15); }
.analytics-status { min-height: 90px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--line); border-radius: 14px; background: white; color: #7e848c; font-size: 10px; }
.analytics-status.error { border-color: #efc7c0; color: #ad4a3b; }
.analytics-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 9px; }
.analytics-summary article { min-height: 106px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.analytics-summary small, .analytics-summary strong, .analytics-summary span { display: block; }
.analytics-summary small { color: #999ea6; font-size: 6px; font-weight: 850; letter-spacing: .9px; }
.analytics-summary strong { margin-top: 12px; font-size: 24px; letter-spacing: -.8px; }
.analytics-summary span { margin-top: 5px; color: #8f949c; font-size: 7px; }
.analytics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.analytics-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.analytics-card.analytics-wide { grid-column: span 2; }
.analytics-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.analytics-card-heading .eyebrow { margin-bottom: 5px; }
.analytics-card-heading h3 { margin: 0; font-size: 13px; }
.chart-legend { display: flex; gap: 12px; color: #818790; font-size: 7px; font-weight: 750; }
.chart-legend span::before { content: ''; width: 7px; height: 7px; display: inline-block; margin-right: 5px; border-radius: 2px; background: #9d77ff; }
.chart-legend .completed::before { background: #65b583; }
.weekly-chart { min-height: 210px; display: flex; align-items: stretch; gap: 7px; padding: 8px 5px 0; overflow-x: auto; }
.week-column { min-width: 36px; flex: 1; display: grid; grid-template-rows: 175px 20px; gap: 6px; align-items: end; }
.week-bars { height: 100%; display: flex; align-items: end; justify-content: center; gap: 3px; border-bottom: 1px solid #e8e9eb; }
.week-bars i { width: min(12px, 34%); display: block; border-radius: 4px 4px 1px 1px; background: #9d77ff; min-height: 3px; }
.week-bars i.completed { background: #65b583; }
.week-column small { color: #9ca1a8; text-align: center; font-size: 6px; white-space: nowrap; }
.horizontal-chart { display: grid; gap: 11px; }
.horizontal-row { display: grid; grid-template-columns: 105px minmax(0, 1fr) 24px; gap: 9px; align-items: center; }
.horizontal-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #69707a; font-size: 8px; }
.horizontal-row > div { height: 8px; border-radius: 99px; background: #f0f0ee; overflow: hidden; }
.horizontal-row i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #9d77ff, #c5adff); }
.horizontal-row b { color: #555c66; text-align: right; font-size: 8px; }
.project-analytics-head, .project-analytics-row { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(3, 90px); align-items: center; gap: 12px; }
.project-analytics-head { padding: 0 10px 8px; color: #a0a4ab; font-size: 6px; font-weight: 850; letter-spacing: .7px; text-transform: uppercase; }
.project-analytics-row { min-height: 42px; padding: 7px 10px; border-top: 1px solid #eeeeec; }
.project-analytics-row > span { display: flex; align-items: center; gap: 8px; font-size: 9px; font-weight: 750; }
.project-analytics-row i { width: 8px; height: 8px; border-radius: 3px; }
.project-analytics-row b { color: #626973; font-size: 9px; }

.absence-heading-actions { display: flex; gap: 6px; }
.competency-dialog { width: min(980px, calc(100vw - 28px)); }
.competency-layout { min-height: 540px; display: grid; grid-template-columns: 250px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.competency-people { padding: 10px; border-right: 1px solid var(--line); background: #fafaf9; overflow-y: auto; }
.competency-people button { width: 100%; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 2px 9px; align-items: center; padding: 9px; border: 1px solid transparent; border-radius: 10px; background: transparent; text-align: left; }
.competency-people button:hover, .competency-people button.active { border-color: var(--person-border, #ddd); background: var(--person-bg, white); }
.competency-people button > span { grid-row: span 2; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--person-bg, #eee); color: var(--person-fg, #555); font-size: 8px; font-weight: 900; }
.competency-people b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.competency-people small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #979ca4; font-size: 6px; }
.competency-editor { max-height: 600px; padding: 18px; overflow-y: auto; }
.competency-catalog { display: grid; gap: 9px; margin-bottom: 15px; padding: 11px; border: 1px solid #d9d0f0; border-radius: 11px; background: #faf8ff; }
.competency-catalog > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.competency-catalog > div:first-child span, .competency-catalog > div:first-child small, .competency-catalog > div:first-child strong { display: block; }
.competency-catalog > div:first-child small { color: #8d80ad; font-size: 6px; font-weight: 850; letter-spacing: .8px; }
.competency-catalog > div:first-child strong { margin-top: 3px; font-size: 9px; }
.competency-catalog > small { color: #91899e; font-size: 7px; }
.competency-catalog-form { display: grid; grid-template-columns: minmax(190px, 1fr) auto auto; gap: 7px; align-items: end; padding-top: 9px; border-top: 1px solid #e4def2; }
.competency-catalog-form .field input { min-height: 34px; }
.competency-person-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; }
.competency-person-heading > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd); border-radius: 12px; background: var(--person-bg, #eee); color: var(--person-fg, #555); font-size: 10px; font-weight: 900; }
.competency-person-heading h3 { margin: 0; font-size: 16px; }
.competency-person-heading small { color: #92979f; font-size: 8px; }
.capacity-field { max-width: 240px; margin-bottom: 15px; }
.capacity-field > div { display: flex; align-items: center; gap: 8px; }
.capacity-field input { width: 90px; }
.capacity-field b { color: #858b93; font-size: 8px; }
.competency-basics { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(220px, 1fr); gap: 14px; align-items: end; margin-bottom: 16px; }
.competency-basics .capacity-field { max-width: none; margin-bottom: 0; }
.matrix-role-list { display: grid; gap: 8px; }
.matrix-role-card { padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: #fafaf9; opacity: .58; }
.matrix-role-card.enabled { border-color: #cfc4ee; background: #fcfaff; opacity: 1; }
.matrix-role-toggle { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.matrix-role-toggle input, .matrix-learning input, .matrix-substitutes input { accent-color: #7258c5; }
.matrix-role-toggle span { min-width: 0; flex: 1; }
.matrix-role-toggle strong, .matrix-role-toggle small { display: block; }
.matrix-role-toggle strong { font-size: 10px; }.matrix-role-toggle small { margin-top: 2px; color: #979ca4; font-size: 7px; }
.matrix-learning { display: none; align-items: center; gap: 6px; margin: 9px 0 0 23px; color: #776e61; font-size: 8px; }
.matrix-substitutes { display: none; margin: 11px 0 0 23px; }
.matrix-role-card.enabled .matrix-learning, .matrix-role-card.enabled .matrix-substitutes { display: flex; }
.matrix-role-card.enabled .matrix-substitutes { display: block; }
.matrix-substitutes > small { color: #999ea5; font-size: 6px; font-weight: 850; letter-spacing: .8px; }
.matrix-substitutes > div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.matrix-substitutes label { display: flex; align-items: center; gap: 5px; padding: 4px 7px 4px 4px; border: 1px solid var(--person-border, #ddd); border-radius: 7px; background: var(--person-bg, white); color: var(--person-fg, #555); font-size: 7px; font-weight: 750; cursor: pointer; }
.matrix-substitutes label > span { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 5px; background: rgba(255,255,255,.55); font-size: 5px; }
.reassign-dialog { width: min(520px, calc(100vw - 30px)); }

.absence-panel { display: grid; gap: 15px; }
.absence-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.absence-summary > article { min-height: 86px; display: flex; align-items: center; gap: 13px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.absence-summary > article.risk { border-color: #f0c8c0; background: #fffaf9; }
.absence-summary article > span:last-child { min-width: 0; flex: 1; }
.absence-summary small, .absence-summary strong { display: block; }
.absence-summary small { color: #92979f; font-size: 7px; font-weight: 850; letter-spacing: 1.15px; }
.absence-summary strong { margin-top: 5px; font-size: 24px; letter-spacing: -.8px; }
.summary-icon { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 11px; font-size: 13px; font-weight: 900; }
.summary-icon.today { background: #e8edff; color: #4f68c0; }
.summary-icon.planned { background: #eee8ff; color: #6d54bd; }
.summary-icon.risk { background: #ffe7e2; color: #cb4e3c; }
.absence-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr); gap: 15px; align-items: start; }
.absence-calendar-card, .absence-list-card { border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; }
.absence-card-heading { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.absence-card-heading .eyebrow { margin-bottom: 5px; }
.absence-card-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.35px; }
.calendar-controls { display: flex; align-items: center; gap: 6px; }
.calendar-controls .icon-button { width: 32px; height: 32px; font-size: 19px; }
.button.small { min-height: 32px; padding: 0 11px; font-size: 9px; }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); padding: 9px 10px 7px; background: #fafaf9; border-bottom: 1px solid var(--line); }
.calendar-weekdays span { color: #9a9fa7; text-align: center; font-size: 7px; font-weight: 850; letter-spacing: .7px; }
.absence-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); padding: 0 10px 10px; background: #fafaf9; }
.calendar-day { position: relative; min-height: 101px; padding: 8px 5px 5px; border-right: 1px solid #ececea; border-bottom: 1px solid #ececea; background: white; }
.calendar-day:nth-child(7n + 1) { border-left: 1px solid #ececea; }
.calendar-day.outside { background: #fafaf9; }
.calendar-day-number { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 8px; color: #5e646d; font-size: 9px; font-weight: 800; }
.calendar-day.outside .calendar-day-number { color: #c1c4c8; }
.calendar-day.is-today .calendar-day-number { background: var(--ink); color: var(--lime); }
.calendar-day-items { display: grid; gap: 3px; margin-top: 3px; }
.calendar-person { min-width: 0; height: 20px; display: flex; align-items: center; gap: 4px; padding: 2px 4px; border: 1px solid var(--person-border, #ddd); border-radius: 6px; background: var(--person-bg, #f2f2f2); color: var(--person-fg, #555); font-size: 6px; font-weight: 800; overflow: hidden; }
.calendar-person b { width: 14px; height: 14px; flex: none; display: grid; place-items: center; border-radius: 4px; background: rgba(255,255,255,.55); font-size: 5px; }
.calendar-person span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-more { padding-left: 4px; color: #8d929a; font-size: 7px; font-weight: 800; }
.absence-list { max-height: 610px; overflow-y: auto; }
.absence-item { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 27px 20px; gap: 10px; align-items: center; min-height: 84px; padding: 13px 12px 13px 15px; border-bottom: 1px solid #eeeeec; }
.absence-item:last-child { border-bottom: 0; }
.absence-avatar { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd); border-radius: 11px; background: var(--person-bg, #f0f1f2); color: var(--person-fg, #555); font-size: 9px; font-weight: 900; }
.absence-copy { min-width: 0; }
.absence-copy strong, .absence-copy small, .absence-copy > span { display: block; }
.absence-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.absence-copy small { margin: 3px 0 5px; color: #999ea5; font-size: 7px; line-height: 1.35; }
.absence-copy > span { color: #5f6670; font-size: 9px; font-weight: 750; }
.absence-copy > .coverage-role-pills { display: flex; color: inherit; font-size: inherit; }
.coverage-badge { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; font-size: 10px; font-weight: 900; }
.coverage-badge.covered { background: #e4f5ea; color: #32754e; }
.coverage-badge.learning { background: #fff0cf; color: #8b611a; }
.coverage-badge.missing { background: #ffe5e0; color: #c84d3b; }
.coverage-badge.neutral { background: #eff0f1; color: #858a92; }
.absence-delete { width: 20px; height: 24px; padding: 0; border: 0; background: transparent; color: #b1b5bb; font-size: 16px; }
.absence-delete:hover { color: #c84d3b; }
.absence-empty { min-height: 280px; display: grid; place-items: center; align-content: center; gap: 6px; padding: 30px; color: #979ca4; text-align: center; }
.absence-empty > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #f0ebff; color: #7057c0; font-size: 20px; }
.absence-empty strong { margin-top: 5px; color: #555c66; font-size: 11px; }
.absence-empty small { font-size: 8px; }
.absence-loading, .absence-error { grid-column: 1 / -1; min-height: 110px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: white; color: #777d86; font-size: 11px; }
.absence-error { flex-direction: column; color: #8d493f; }
.absence-error span { color: #9c746e; font-size: 9px; }
.absence-alert { position: relative; padding: 15px 45px 15px 16px; border: 1px solid #cde7d6; border-radius: 14px; background: #f5fbf7; }
.absence-alert.missing { border-color: #efc7c0; background: #fff7f5; }
.absence-alert.learning { border-color: #ead7aa; background: #fffbf2; }
.absence-alert-close { position: absolute; top: 9px; right: 10px; border: 0; background: transparent; color: #979ca4; font-size: 18px; }
.absence-alert-title { display: flex; align-items: center; gap: 10px; }
.absence-alert-title > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #dff2e6; color: #337650; font-weight: 900; }
.absence-alert.missing .absence-alert-title > span { background: #ffe1dc; color: #c84d3b; }
.absence-alert-title strong, .absence-alert-title small { display: block; }
.absence-alert-title strong { font-size: 11px; }
.absence-alert-title small { margin-top: 3px; color: #7e858e; font-size: 8px; }
.absence-alert-coverage { display: grid; gap: 5px; margin-top: 11px; }
.coverage-preview { margin: 0 26px 18px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafaf9; color: #7c828b; font-size: 9px; }
.coverage-preview.covered { border-color: #cde7d6; background: #f5fbf7; }
.coverage-preview.learning { border-color: #ead7aa; background: #fffbf2; }
.coverage-preview.missing { border-color: #efc7c0; background: #fff7f5; }
.coverage-preview.loading { color: #7765b7; }
.coverage-preview-title { margin-bottom: 9px; }
.coverage-preview-title strong, .coverage-preview-title small { display: block; }
.coverage-preview-title strong { color: var(--ink); font-size: 11px; }
.coverage-preview-title small { margin-top: 3px; color: #858b93; font-size: 8px; }
.coverage-row { display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 8px; border-radius: 8px; background: rgba(255,255,255,.62); }
.coverage-dot { width: 6px; height: 6px; border-radius: 50%; background: #58ac77; }
.coverage-row.learning .coverage-dot { background: #d29b2f; }
.coverage-row.missing .coverage-dot { background: #dc614f; }
.coverage-row span:nth-child(2) { min-width: 0; }
.coverage-row strong, .coverage-row small { display: block; }
.coverage-row strong { font-size: 9px; }
.coverage-row.missing strong { display: inline-flex; padding: 3px 7px; border-radius: 999px; background: #ffe5e0; color: #ac493a; }
.coverage-row.learning strong { display: inline-flex; padding: 3px 7px; border-radius: 999px; background: #fff0cf; color: #8b611a; }
.coverage-row small { margin-top: 2px; color: #8e939b; font-size: 7px; }
.coverage-row > b { color: #747a83; font-size: 7px; }
.coverage-empty { margin: 0; color: #8c9199; font-size: 8px; }
.absence-dialog { width: min(590px, calc(100vw - 30px)); }
.absence-form-grid { padding-bottom: 14px; }
.absence-dialog .field small { color: #90969e; font-size: 8px; }
.absence-dialog .date-control input[type="date"] { padding-right: 12px; }
.absence-dialog .date-control input[type="date"]::-webkit-calendar-picker-indicator { display: block; cursor: pointer; opacity: .65; }
.absence-dialog select:disabled { background: #f4f4f2; color: #666c75; opacity: 1; }

.risk-panel, .planning-panel { display: grid; gap: 13px; }
.risk-hero, .planning-hero { min-height: 116px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; border-radius: var(--radius); background: var(--sidebar); color: white; }
.risk-hero h2, .planning-hero h2 { margin: 0; font-size: 23px; letter-spacing: -.8px; }
.risk-hero p:not(.eyebrow), .planning-hero p:not(.eyebrow) { margin: 7px 0 0; color: #aeb3bc; font-size: 10px; }
.risk-hero .button.primary { background: var(--lime); color: var(--ink); }
.risk-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.risk-summary article { min-height: 103px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.risk-summary small, .risk-summary strong, .risk-summary span { display: block; }
.risk-summary small { color: #999ea6; font-size: 6px; font-weight: 850; letter-spacing: 1px; }
.risk-summary strong { margin-top: 10px; font-size: 26px; letter-spacing: -1px; }
.risk-summary span { margin-top: 3px; color: #9398a0; font-size: 7px; }
.risk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.risk-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.risk-card.risk-wide { grid-column: span 2; }
.risk-card-heading { margin-bottom: 12px; }
.risk-card-heading .eyebrow { margin-bottom: 4px; }
.risk-card-heading h3 { margin: 0; font-size: 13px; }
.risk-list { display: grid; gap: 6px; }
.risk-list-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; align-items: center; min-height: 54px; padding: 8px 10px; border-radius: 10px; background: #fafaf9; }
.risk-list-item.clickable { cursor: pointer; }
.risk-list-item.clickable:hover { background: #f4f4f2; }
.risk-list-mark { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #fff0cf; color: #906319; font-size: 9px; font-weight: 900; }
.risk-list-item.critical .risk-list-mark { background: #ffe4df; color: #c54d3b; }
.risk-list-copy { min-width: 0; }
.risk-list-copy strong, .risk-list-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.risk-list-copy strong { font-size: 9px; }
.risk-list-copy small { margin-top: 3px; color: #969ba3; font-size: 7px; }
.risk-list-tag { padding: 4px 7px; border-radius: 6px; background: #eeeef0; color: #6e747d; font-size: 6px; font-weight: 850; white-space: nowrap; }
.risk-empty { min-height: 90px; display: grid; place-items: center; align-content: center; gap: 4px; color: #8d939b; font-size: 8px; }
.risk-empty b { color: #397553; font-size: 18px; }
.risk-capacity { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 7px; }
.risk-person { display: grid; grid-template-columns: 31px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fafaf9; }
.risk-person-avatar { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 9px; background: var(--person-bg); color: var(--person-fg); font-size: 7px; font-weight: 900; }
.risk-person-copy strong, .risk-person-copy small { display: block; }
.risk-person-copy strong { font-size: 9px; }.risk-person-copy small { margin-top: 3px; color: #92979f; font-size: 7px; }
.risk-person > b { font-size: 11px; }.risk-person.overloaded > b { color: #c64f3e; }

.planning-readonly { padding: 6px 9px; border: 1px solid #3b414b; border-radius: 7px; color: var(--lime); font-size: 7px; font-weight: 850; letter-spacing: .8px; }
.planning-layout { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 12px; align-items: start; }
.planning-form-card, .planning-results-card { border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.planning-form-card { display: grid; gap: 13px; padding: 18px; }
.planning-form-row { display: grid; grid-template-columns: 1fr 1.25fr; gap: 8px; }
.input-suffix { position: relative; }
.input-suffix input { padding-right: 28px !important; }
.input-suffix b { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: #969ba2; font-size: 8px; }
.planning-selected-summary { min-height: 64px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #fafaf9; color: #858b93; font-size: 8px; }
.planning-selected-summary strong, .planning-selected-summary small { display: block; }
.planning-selected-summary strong { color: var(--ink); font-size: 10px; }.planning-selected-summary small { margin-top: 4px; line-height: 1.45; }
.planning-selected-summary.warning { border-color: #e8c978; background: #fffbef; }
.planning-selected-summary.warning strong { color: #8b601a; }
.planning-note { color: #9a9fa7; text-align: center; font-size: 7px; line-height: 1.4; }
.planning-results-card { min-width: 0; padding: 18px; }
.planning-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.planning-results-heading .eyebrow { margin-bottom: 4px; }.planning-results-heading h3 { margin: 0; font-size: 14px; }
.planning-results-heading > span { color: #8e949c; font-size: 8px; }
.planning-candidates { display: grid; gap: 7px; max-height: 610px; overflow-y: auto; }
.planning-candidate { display: grid; grid-template-columns: 38px minmax(150px, 1fr) 105px 95px; gap: 10px; align-items: center; width: 100%; min-height: 66px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 11px; background: #fafaf9; text-align: left; }
.planning-candidate:hover, .planning-candidate.selected { border-color: var(--person-border, #ccc); background: linear-gradient(100deg, var(--person-bg, #fafafa), white); }
.planning-candidate-avatar { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 10px; background: var(--person-bg); color: var(--person-fg); font-size: 8px; font-weight: 900; }
.planning-candidate-copy { min-width: 0; }.planning-candidate-copy strong, .planning-candidate-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.planning-candidate-copy strong { font-size: 10px; }.planning-candidate-copy small { margin-top: 4px; color: #8f959d; font-size: 7px; }
.planning-load small, .planning-load strong { display: block; }.planning-load small { color: #999ea5; font-size: 6px; }.planning-load strong { margin-top: 4px; font-size: 11px; }
.planning-status { justify-self: end; padding: 5px 8px; border-radius: 7px; background: #e4f5ea; color: #337650; font-size: 6px; font-weight: 900; }
.planning-status.warning { background: #fff0cf; color: #8d6119; }.planning-status.critical { background: #ffe4df; color: #bd4938; }
.sync-settings-section { border-top: 1px solid var(--line); padding-top: 17px; }
.sync-settings-badge { padding: 5px 8px; border-radius: 7px; background: #eff0f1; color: #777d85; font-size: 7px; font-weight: 850; }
.sync-settings-badge.live { background: #e3f5ea; color: #347650; }
.sync-settings-body { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 11px; padding: 11px; border-radius: 10px; background: #fafaf9; }
.sync-settings-body p { margin: 0; color: #7e848d; font-size: 8px; line-height: 1.5; }

/* Daily, Scrum i kontrola jakości */
.daily-panel, .scrum-panel, .quality-panel { display: grid; gap: 12px; }
.daily-hero, .quality-hero { min-height: 116px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; border-radius: var(--radius); color: white; }
.daily-hero { background: linear-gradient(115deg, #171a20 0%, #26243a 100%); }
.quality-hero { background: linear-gradient(115deg, #171a20 0%, #253329 100%); }
.daily-hero h2, .quality-hero h2, .scrum-toolbar h2 { margin: 0; font-size: 23px; letter-spacing: -.8px; }
.daily-hero p:not(.eyebrow), .quality-hero p:not(.eyebrow), .scrum-toolbar p:not(.eyebrow) { margin: 7px 0 0; color: #adb2bb; font-size: 10px; }
.daily-date-badge { padding: 8px 11px; border: 1px solid #414650; border-radius: 8px; color: var(--lime); font-size: 8px; font-weight: 850; letter-spacing: .9px; text-transform: uppercase; white-space: nowrap; }
.daily-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.daily-summary-card { min-width: 0; min-height: 89px; display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 10px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.daily-summary-card > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #f0f1f2; color: #707780; font-size: 11px; font-weight: 900; }
.daily-summary-card.today > span, .daily-summary-card.changed > span { background: #e7ecff; color: #4d66be; }
.daily-summary-card.overdue > span, .daily-summary-card.blocked > span { background: #ffe7e2; color: #c64e3c; }
.daily-summary-card.absent > span { background: #eee8ff; color: #674db8; }
.daily-summary-card small, .daily-summary-card strong, .daily-summary-card p { display: block; }
.daily-summary-card small { color: #969ba3; font-size: 6px; font-weight: 850; letter-spacing: .85px; }
.daily-summary-card strong { margin-top: 3px; font-size: 20px; line-height: 1; }
.daily-summary-card p { margin: 4px 0 0; overflow: hidden; color: #9a9fa6; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.daily-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); gap: 10px; align-items: start; }
.daily-card, .quality-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; }
.daily-side-column { min-width: 0; display: grid; gap: 10px; align-content: start; }
.daily-changes-card .daily-list { max-height: 540px; }
.daily-people-card { grid-column: span 2; }
.special-card-heading { min-height: 67px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.special-card-heading .eyebrow { margin-bottom: 4px; }
.special-card-heading h3 { margin: 0; font-size: 13px; letter-spacing: -.2px; }
.special-card-heading > small { color: #9398a0; font-size: 8px; }
.mini-count { min-width: 27px; height: 27px; display: grid; place-items: center; padding: 0 6px; border-radius: 8px; background: #e9edff; color: #4d64b7; font-size: 9px; font-weight: 900; }
.mini-count.warning { background: #fff0d2; color: #94661a; }
.mini-count.critical { background: #ffe5e0; color: #c44d3b; }
.daily-list { max-height: 338px; display: grid; overflow-y: auto; }
.daily-absence { min-height: 58px; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 13px; border-bottom: 1px solid #eeeeec; }
.daily-absence:last-child { border-bottom: 0; }
.daily-absence > span { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 9px; background: var(--person-bg); color: var(--person-fg); font-size: 7px; font-weight: 900; }
.daily-absence div { min-width: 0; }
.daily-absence strong, .daily-absence small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.daily-absence strong { font-size: 9px; }
.daily-absence small { margin-top: 3px; color: #959aa2; font-size: 7px; }
.daily-absence > b { max-width: 120px; overflow: hidden; color: var(--person-fg); font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.mode-task { width: 100%; min-height: 60px; display: grid; grid-template-columns: 29px minmax(0, 1fr) 25px auto; gap: 8px; align-items: center; padding: 8px 12px; border: 0; border-bottom: 1px solid #eeeeec; background: white; color: var(--ink); text-align: left; }
.mode-task:last-child { border-bottom: 0; }
.mode-task:hover { background: #fafaf9; }
.mode-task.overdue, .mode-task.blocked { box-shadow: inset 3px 0 #df6755; }
.mode-task.today { box-shadow: inset 3px 0 #d9a237; }
.mode-task-mark { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #eff0f1; color: #69717b; font-size: 8px; font-weight: 900; }
.mode-task-mark.bug, .mode-task-mark.incident { background: #ffe8e3; color: #c94f3d; }
.mode-task-mark.epic { background: #eee8ff; color: #6c51be; }
.mode-task-mark.feature, .mode-task-mark.story { background: #e8edff; color: #4d65bd; }
.mode-task-copy { min-width: 0; }
.mode-task-copy strong, .mode-task-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mode-task-copy strong { font-size: 9px; }
.mode-task-copy small { margin-top: 3px; color: #989da5; font-size: 7px; }
.mode-task-person { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 7px; background: var(--person-bg); color: var(--person-fg); font-size: 6px; font-weight: 900; }
.mode-task-person.unassigned-mark { border-color: #e3e4e6; background: #f2f2f0; color: #9a9fa6; }
.mode-task-date { color: #858b94; font-size: 7px; font-style: normal; white-space: nowrap; }
.mode-task-date.overdue { color: #c64e3c; font-weight: 850; }
.mode-task-date.today { color: #946519; font-weight: 850; }
.special-empty { min-height: 112px; display: grid; place-items: center; align-content: center; gap: 5px; padding: 22px; color: #8f959d; text-align: center; }
.special-empty > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #edf6ef; color: #397553; font-size: 11px; font-weight: 900; }
.special-empty strong { color: #666d76; font-size: 9px; }
.special-empty small { font-size: 7px; }
.daily-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 8px; padding: 10px; background: #fafaf9; }
.daily-person-card { min-width: 0; border: 1px solid var(--person-border, var(--line)); border-radius: 12px; background: white; overflow: hidden; }
.daily-person-heading { min-height: 59px; display: grid; grid-template-columns: 33px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 11px; background: linear-gradient(110deg, var(--person-bg, #f7f7f6), white 72%); }
.daily-person-avatar { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd); border-radius: 9px; background: rgba(255,255,255,.55); color: var(--person-fg, #666); font-size: 7px; font-weight: 900; }
.daily-person-heading > div:nth-child(2) { min-width: 0; }
.daily-person-heading strong, .daily-person-heading small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.daily-person-heading strong { font-size: 9px; }
.daily-person-heading small { margin-top: 3px; color: #92979f; font-size: 7px; }
.daily-person-flags { display: flex; flex-wrap: wrap; justify-content: end; gap: 3px; }
.daily-person-flags b { padding: 3px 5px; border-radius: 5px; background: #eeeef0; color: #757b83; font-size: 5px; letter-spacing: .35px; }
.daily-person-flags .absent { background: #eee8ff; color: #684db8; }
.daily-person-flags .vacation { background: #e8edff; color: #4f63b5; }
.daily-person-flags .danger { background: #ffe6e1; color: #bf4a38; }
.daily-person-flags .warning { background: #fff0d2; color: #906116; }
.daily-person-tasks { max-height: 250px; overflow-y: auto; }
.daily-person-tasks .mode-task { min-height: 50px; grid-template-columns: 23px minmax(0, 1fr) 21px; padding: 6px 9px; }
.daily-person-tasks .mode-task-mark { width: 21px; height: 21px; border-radius: 6px; font-size: 6px; }
.daily-person-tasks .mode-task-person { width: 20px; height: 20px; border-radius: 6px; font-size: 5px; }
.daily-person-tasks .mode-task-date { display: none; }
.daily-person-tasks .special-empty { min-height: 86px; }

.scrum-toolbar { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.scrum-toolbar p:not(.eyebrow) { color: #858b93; }
.scrum-person-filter select { min-width: 220px; height: 39px; }
.scrum-runbook { border: 1px solid #d9d0f3; border-radius: 14px; background: linear-gradient(120deg, #f7f3ff, #fff 72%); overflow: hidden; box-shadow: 0 8px 24px rgba(85, 61, 145, .05); }
.scrum-runbook-heading { width: 100%; min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.scrum-runbook-heading:hover { background: rgba(116, 88, 185, .035); }
.scrum-runbook-heading:focus-visible { outline: 2px solid #7659bd; outline-offset: -3px; }
.scrum-runbook-heading span { min-width: 0; display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: baseline; gap: 5px 11px; }
.scrum-runbook-heading small { grid-column: 1 / -1; color: #7f68b7; font-size: 6px; font-weight: 900; letter-spacing: 1px; }
.scrum-runbook-heading strong { font-size: 14px; }
.scrum-runbook-heading em { color: #8d849e; font-size: 7px; font-style: normal; }
.scrum-runbook-heading > b { width: 29px; height: 29px; flex: none; display: grid; place-items: center; border: 1px solid #dbd2ee; border-radius: 9px; background: white; color: #745ab0; font-size: 13px; }
.scrum-runbook-body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 12px 12px; }
.scrum-runbook-steps { display: contents; }
.scrum-runbook.collapsed .scrum-runbook-body { display: none; }
.scrum-runbook-step, .scrum-runbook-planning { min-width: 0; min-height: 190px; border: 1px solid #e2dcef; border-radius: 11px; background: rgba(255,255,255,.88); color: var(--ink); font: inherit; text-align: left; }
.scrum-runbook-step { display: flex; flex-direction: column; overflow: hidden; }
.scrum-runbook-step:hover, .scrum-runbook-planning:hover { border-color: #bdaedc; transform: translateY(-1px); box-shadow: 0 7px 16px rgba(68, 48, 113, .07); }
.scrum-runbook-step-main { width: 100%; display: grid; grid-template-columns: 27px minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 7px 9px; padding: 10px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.scrum-runbook-step-main:focus-visible, .scrum-runbook-planning:focus-visible, .scrum-runbook-detail-line:focus-visible, .scrum-runbook-inline-action:focus-visible { outline: 2px solid #7659bd; outline-offset: -2px; }
.scrum-runbook-step-main > i { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #ece5fb; color: #684ca9; font-size: 9px; font-style: normal; font-weight: 900; }
.scrum-runbook-step-main > span { min-width: 0; }
.scrum-runbook-step-main small, .scrum-runbook-step-main strong, .scrum-runbook-step-main em { display: block; }
.scrum-runbook-step-main small { color: #967fbd; font-size: 5.5px; font-weight: 900; letter-spacing: .55px; text-transform: uppercase; }
.scrum-runbook-step-main strong { margin-top: 3px; font-size: 9px; }
.scrum-runbook-step-main em { margin-top: 4px; color: #85818e; font-size: 6.5px; font-style: normal; line-height: 1.45; }
.scrum-runbook-step-main > b { grid-column: 2; justify-self: start; padding: 4px 6px; border-radius: 6px; background: #f0ecf8; color: #745ba9; font-size: 6px; }
.scrum-runbook-step.warning .scrum-runbook-step-main > b { background: #fff0d8; color: #98651b; }
.scrum-runbook-step.critical .scrum-runbook-step-main > b { background: #ffe8e3; color: #b84b3b; }
.scrum-runbook-step.complete .scrum-runbook-step-main > b { background: #e8f5ed; color: #357754; }
.scrum-runbook-details { display: grid; gap: 4px; margin: 0 9px 8px; padding-top: 7px; border-top: 1px solid #ece8f3; }
.scrum-runbook-detail-line { min-width: 0; display: grid; gap: 2px; padding: 5px 6px; border: 0; border-radius: 6px; background: #f6f4fa; color: var(--ink); font: inherit; text-align: left; }
button.scrum-runbook-detail-line { cursor: pointer; }
button.scrum-runbook-detail-line:hover { background: #eeebf6; }
.scrum-runbook-detail-line strong, .scrum-runbook-detail-line small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scrum-runbook-detail-line strong { font-size: 6.5px; }
.scrum-runbook-detail-line small { color: #88838f; font-size: 5.5px; }
.scrum-runbook-detail-line.complete { background: #edf7f1; }.scrum-runbook-detail-line.complete strong { color: #377654; }
.scrum-runbook-detail-line.critical { background: #fff0ed; }.scrum-runbook-detail-line.critical strong { color: #ad493a; }
.scrum-runbook-detail-more { padding: 2px 6px; color: #817592; font-size: 5.5px; font-weight: 800; }
.scrum-runbook-inline-action { align-self: flex-start; margin: auto 9px 9px; padding: 6px 8px; border: 1px solid #d8ccec; border-radius: 7px; background: white; color: #6f53a9; font: inherit; font-size: 6px; font-weight: 850; cursor: pointer; }
.scrum-runbook-planning { display: grid; align-content: center; gap: 4px; padding: 13px 14px; border-color: #282d35; background: #171a20; color: white; cursor: pointer; }
.scrum-runbook-planning > span { color: var(--lime); font-size: 6px; font-weight: 900; letter-spacing: .75px; text-transform: uppercase; }
.scrum-runbook-planning > strong { font-size: 12px; }
.scrum-runbook-planning > small { color: #b5bac3; font-size: 6.5px; line-height: 1.45; }
.scrum-runbook-planning > b { margin-top: 4px; color: var(--lime); font-size: 7px; }
.scrum-runbook-focus { animation: scrum-runbook-focus 1.25s ease; }
@keyframes scrum-runbook-focus { 0%, 100% { box-shadow: none; } 35% { box-shadow: 0 0 0 4px rgba(118, 89, 189, .2); } }
.scrum-presence { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 11px 13px; border: 1px solid #dce8df; border-radius: 12px; background: linear-gradient(110deg, #f4faf6, white 70%); }
.scrum-presence-heading { min-width: 145px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-right: 13px; border-right: 1px solid #dce8df; }
.scrum-presence-heading span small, .scrum-presence-heading span strong { display: block; }
.scrum-presence-heading span small { color: #769080; font-size: 6px; font-weight: 900; letter-spacing: .8px; }
.scrum-presence-heading span strong { margin-top: 3px; color: #315f44; font-size: 14px; }
.scrum-presence-heading > b { max-width: 95px; color: #718279; font-size: 6px; line-height: 1.35; text-align: right; }
.scrum-presence-people { min-width: 0; display: flex; flex-wrap: wrap; gap: 5px; }
.scrum-presence-people button { min-width: 0; display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px 3px 3px; border: 1px solid var(--person-border); border-radius: 8px; background: var(--person-bg); color: var(--person-fg); font: inherit; cursor: pointer; }
.scrum-presence-people button:hover { box-shadow: 0 4px 10px rgba(30, 50, 38, .08); transform: translateY(-1px); }
.scrum-presence-people button:focus-visible { outline: 2px solid #4b9167; outline-offset: 2px; }
.scrum-presence-people button i { width: 21px; height: 21px; flex: none; display: grid; place-items: center; border-radius: 6px; background: rgba(255,255,255,.58); font-size: 5px; font-style: normal; font-weight: 900; }
.scrum-presence-people button span { max-width: 135px; overflow: hidden; font-size: 7px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.scrum-presence-person-copy strong, .scrum-presence-person-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scrum-presence-person-copy small { margin-top: 2px; color: #654eb0; font-size: 5.5px; font-weight: 800; }
.scrum-presence-empty { color: #7c8780; font-size: 8px; }
.scrum-mark-absence { padding: 7px 9px; border: 1px solid #cfe0d3; border-radius: 8px; background: white; color: #3f7553; font: inherit; font-size: 6.5px; font-weight: 850; white-space: nowrap; cursor: pointer; }
.scrum-mark-absence:hover { border-color: #91b79c; background: #f7fbf8; }
.scrum-delivery-box { border: 1px solid #edc1b7; border-radius: 13px; background: #fff7f4; overflow: hidden; box-shadow: 0 8px 20px rgba(145, 59, 44, .06); }
.scrum-delivery-heading { min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; border-bottom: 1px solid #f0d3cc; }
.scrum-delivery-heading > div { display: flex; align-items: center; gap: 9px; }
.scrum-delivery-heading > div > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #ffded7; color: #b44737; font-size: 11px; font-weight: 900; }
.scrum-delivery-heading p { margin: 0; }
.scrum-delivery-heading small, .scrum-delivery-heading strong { display: block; }
.scrum-delivery-heading small { color: #b56c60; font-size: 6px; font-weight: 900; letter-spacing: .8px; }
.scrum-delivery-heading strong { margin-top: 3px; font-size: 12px; }
.scrum-delivery-heading > b { min-width: 28px; height: 28px; display: grid; place-items: center; padding: 0 7px; border-radius: 8px; background: #ffe3dd; color: #ac4435; font-size: 9px; }
.scrum-delivery-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 7px; padding: 8px; }
.scrum-delivery-item { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; align-items: center; padding: 9px 10px; border: 1px solid #f0d4cd; border-radius: 10px; background: white; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.scrum-delivery-item:hover { border-color: #db9c8f; box-shadow: 0 5px 12px rgba(145, 59, 44, .08); transform: translateY(-1px); }
.scrum-delivery-item:focus-visible { outline: 2px solid #cb6a58; outline-offset: 2px; }
.scrum-delivery-project { display: inline-flex; align-items: center; gap: 5px; min-width: 0; width: fit-content; max-width: 100%; padding: 3px 6px; border-radius: 6px; background: #f1f2f3; color: #686f78; font-size: 6px; font-weight: 850; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scrum-delivery-project::before { content: ''; width: 5px; height: 5px; flex: none; border-radius: 2px; background: var(--project-color); }
.scrum-delivery-copy { min-width: 0; }
.scrum-delivery-copy strong, .scrum-delivery-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scrum-delivery-copy strong { font-size: 8px; }.scrum-delivery-copy small { margin-top: 3px; color: #9a7a73; font-size: 6px; }
.scrum-delivery-item > i { display: inline-flex; align-items: center; gap: 4px; color: var(--person-fg); font-size: 6px; font-style: normal; font-weight: 800; white-space: nowrap; }
.scrum-delivery-item > i b { width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 6px; background: var(--person-bg); font-size: 4px; }
.scrum-delivery-item > i.unassigned { color: #999ea5; }
.scrum-delivery-item > em { justify-self: end; padding: 4px 6px; border-radius: 6px; background: #ffe3dd; color: #a94738; font-size: 6px; font-style: normal; font-weight: 900; letter-spacing: .35px; }
.scrum-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.scrum-summary > span { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: inset 3px 0 #adb2b9; }
.scrum-summary > span.progress { box-shadow: inset 3px 0 #5b7cff; }
.scrum-summary > span.design { box-shadow: inset 3px 0 #9a6fd0; }
.scrum-summary > span.blocked { box-shadow: inset 3px 0 #df624f; }
.scrum-summary > span.done { box-shadow: inset 3px 0 #48a473; }
.scrum-summary small { color: #8f949c; font-size: 7px; font-weight: 850; letter-spacing: .7px; }
.scrum-summary strong { font-size: 18px; }
.scrum-board { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; align-items: start; overflow: visible; padding-bottom: 6px; }
.scrum-column { min-width: 0; border: 1px solid var(--line); border-radius: 14px; background: #f0f1f2; overflow: hidden; }
.scrum-column-heading { min-height: 61px; display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #dedfe2; background: #f7f7f6; }
.scrum-column-heading > span { width: 7px; height: 7px; border-radius: 50%; background: #aeb2b8; }
.scrum-column.progress .scrum-column-heading > span { background: #5b7cff; }
.scrum-column.design .scrum-column-heading > span { background: #9a6fd0; }
.scrum-column.blocked .scrum-column-heading > span { background: #df624f; }
.scrum-column.done .scrum-column-heading > span { background: #48a473; }
.scrum-column-heading strong, .scrum-column-heading small { display: block; }
.scrum-column-heading strong { font-size: 8px; letter-spacing: .65px; }
.scrum-column-heading small { margin-top: 3px; color: #989da5; font-size: 6px; }
.scrum-column-heading > b { min-width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; background: white; color: #6f757e; font-size: 8px; }
.scrum-column-cards { display: grid; align-content: start; gap: 7px; padding: 8px; overflow: visible; }
.scrum-column-cards > .special-empty { min-height: 130px; }
.scrum-task-card { width: 100%; min-height: 123px; display: block; padding: 11px; border: 1px solid #e0e1e3; border-radius: 11px; background: white; color: var(--ink); text-align: left; box-shadow: 0 2px 8px rgba(25,28,34,.035); }
.scrum-task-card:hover { border-color: #c9cbd0; transform: translateY(-1px); box-shadow: 0 7px 16px rgba(25,28,34,.07); }
.scrum-task-top { display: grid; grid-template-columns: minmax(0, 1fr) auto auto minmax(0, 1fr); align-items: center; gap: 5px; min-width: 0; }
.scrum-task-size { min-width: 20px; height: 18px; padding: 0 4px; font-size: 5.5px; }
.scrum-task-project { display: inline-flex; align-items: center; gap: 5px; min-width: 0; max-width: 100%; width: fit-content; padding: 4px 6px; border-radius: 6px; background: #f1f2f3; color: #686f78; font-size: 6px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scrum-task-project::before { content: ''; width: 5px; height: 5px; flex: none; border-radius: 2px; background: var(--project-color); }
.scrum-task-priority { padding: 3px 5px; border-radius: 5px; font-size: 5.5px; font-weight: 900; white-space: nowrap; }
.scrum-task-person { min-width: 0; max-width: 100%; justify-self: end; display: inline-flex; align-items: center; gap: 4px; overflow: hidden; color: var(--person-fg); font-size: 6px; font-style: normal; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.scrum-task-person b { width: 18px; height: 18px; flex: none; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 6px; background: var(--person-bg); font-size: 4.5px; }
.scrum-task-person.scrum-unassigned { justify-content: flex-end; color: #a1a5ab; font-style: italic; }
.scrum-task-card > strong { display: -webkit-box; margin-top: 9px; overflow: hidden; font-size: 10px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.scrum-task-card > small { display: block; margin-top: 5px; overflow: hidden; color: #999ea5; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.scrum-assignment-flow { display: grid; gap: 5px; margin-top: 9px; padding-top: 8px; border-top: 1px solid #ececea; }
.scrum-assignment-flow > span { min-width: 0; display: flex; align-items: center; gap: 5px; }
.scrum-assignment-flow > span > small { width: 31px; flex: none; color: #9a9fa6; font-size: 6px; font-weight: 850; letter-spacing: .7px; }
.scrum-assignment-flow > span > b { width: 18px; height: 18px; flex: none; display: grid; place-items: center; border: 1px solid var(--person-border); border-radius: 5px; background: var(--person-bg); color: var(--person-fg); font-size: 5px; }
.scrum-assignment-flow > span > strong { overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.scrum-flow-people { min-width: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.scrum-flow-people i { display: inline-flex; align-items: center; gap: 4px; padding: 2px 5px 2px 2px; border: 1px solid var(--person-border); border-radius: 6px; background: var(--person-bg); color: var(--person-fg); font-size: 6px; font-style: normal; font-weight: 750; }
.scrum-flow-people i b { width: 15px; height: 15px; display: grid; place-items: center; border-radius: 4px; background: rgba(255,255,255,.55); font-size: 4px; }
.scrum-task-relations { display: grid; gap: 3px; margin-top: 6px; }
.scrum-task-relations > span { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 5px; }
.scrum-task-relations small { padding-top: 2px; color: #a1a5ab; font-size: 5px; font-weight: 850; letter-spacing: .45px; }
.scrum-task-relations > span > span { min-width: 0; display: grid; gap: 2px; }
.scrum-task-relations i { min-width: 0; display: flex; align-items: baseline; gap: 4px; overflow: hidden; color: #70757d; font-size: 6px; font-style: normal; line-height: 1.35; white-space: nowrap; }
.scrum-task-relations i b { margin-right: 4px; color: #565c66; font-size: 6px; }
.scrum-task-relations i > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.scrum-task-relations i em { margin-left: auto; padding: 1px 3px; border-radius: 3px; background: #e2f2e8; color: #357153; font-size: 5px; font-style: normal; font-weight: 900; letter-spacing: .35px; }
.scrum-task-relations i.completed, .scrum-task-relations i.completed b { color: #438060; }
.scrum-block-reason { margin: 7px 0 0; padding: 6px 7px; border-radius: 7px; background: #fff0ed; color: #aa493a; font-size: 7px; line-height: 1.35; }
.scrum-task-footer { min-height: 14px; display: flex; align-items: end; justify-content: flex-end; gap: 7px; margin-top: 8px; }
.scrum-task-footer em { color: #8d9299; font-size: 7px; font-style: normal; white-space: nowrap; }
.scrum-task-footer em.overdue { color: #c84f3d; font-weight: 850; }
.scrum-task-footer em.today { color: #946519; font-weight: 850; }
.scrum-blocked-section { margin-top: 8px; padding: 12px; border: 1px solid #efc6bf; border-radius: 14px; background: #fff8f6; }
.scrum-blocked-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.scrum-blocked-heading small { color: #b66a5e; font-size: 6px; font-weight: 900; letter-spacing: .9px; }
.scrum-blocked-heading h3 { margin: 3px 0 2px; font-size: 13px; }
.scrum-blocked-heading p { margin: 0; color: #9a756f; font-size: 7px; }
.scrum-blocked-heading > b { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #ffe7e2; color: #b64d3e; font-size: 11px; }
.scrum-blocked-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; align-items: start; }
.scrum-blocked-cards > .special-empty { grid-column: 1 / -1; min-height: 80px; background: rgba(255,255,255,.72); }
.scrum-low-priority { margin-top: 8px; border: 1px solid #dddfe2; border-radius: 13px; background: #f5f5f3; overflow: hidden; }
.scrum-column.todo .scrum-low-priority { margin-top: 0; border-radius: 10px; }
.scrum-low-priority-toggle { width: 100%; min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto 28px; gap: 10px; align-items: center; padding: 10px 13px; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.scrum-low-priority-toggle:hover { background: #efefec; }
.scrum-low-priority-toggle > span small, .scrum-low-priority-toggle > span strong, .scrum-low-priority-toggle > span em { display: block; }
.scrum-low-priority-toggle > span small { color: #999da3; font-size: 5.5px; font-weight: 900; letter-spacing: .8px; }
.scrum-low-priority-toggle > span strong { margin-top: 3px; font-size: 10px; }
.scrum-low-priority-toggle > span em { margin-top: 3px; color: #999da3; font-size: 6px; font-style: normal; }
.scrum-low-priority-toggle > i { min-width: 24px; height: 24px; display: grid; place-items: center; padding: 0 6px; border-radius: 7px; background: white; color: #777d85; font-size: 8px; font-style: normal; font-weight: 850; }
.scrum-low-priority-toggle > b { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #dcdddf; border-radius: 8px; background: white; color: #747981; font-size: 12px; }
.scrum-low-priority-cards { display: none; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 0 8px 8px; }
.scrum-low-priority.expanded .scrum-low-priority-cards { display: grid; }
.scrum-previous-done { margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #f7f7f6; }
.scrum-previous-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.scrum-previous-heading small { color: #969ba3; font-size: 7px; font-weight: 850; letter-spacing: 1.2px; }
.scrum-previous-heading h3 { margin: 4px 0 2px; font-size: 15px; }
.scrum-previous-heading p { margin: 0; color: #858b94; font-size: 8px; }
.scrum-previous-heading > b { min-width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: white; color: #6f757e; font-size: 12px; }
.scrum-previous-grid { display: grid; grid-template-columns: repeat(4, minmax(230px, 1fr)); gap: 9px; align-items: start; overflow: visible; }

.quality-score { width: 102px; height: 72px; flex: none; display: grid; grid-template-columns: auto auto; place-content: center; align-items: baseline; column-gap: 3px; border: 1px solid #40464e; border-radius: 13px; background: rgba(255,255,255,.04); }
.quality-score strong { color: var(--lime); font-size: 28px; letter-spacing: -1px; }
.quality-score span { color: #8e959f; font-size: 9px; }
.quality-score small { grid-column: span 2; margin-top: 2px; color: #8e959f; text-align: center; font-size: 6px; font-weight: 850; letter-spacing: 1px; }
.quality-score.warning strong { color: #f0c35d; }
.quality-score.critical strong { color: #ff806d; }
.quality-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.quality-summary article { min-height: 84px; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.quality-summary-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #e9edff; color: #4f66bd; font-size: 10px; font-weight: 900; }
.quality-summary article.warning .quality-summary-icon { background: #fff0d2; color: #946519; }
.quality-summary article.critical .quality-summary-icon { background: #ffe5e0; color: #c34c3a; }
.quality-summary small, .quality-summary strong, .quality-summary p { display: block; }
.quality-summary small { color: #989da4; font-size: 6px; font-weight: 850; letter-spacing: .75px; }
.quality-summary strong { margin-top: 3px; font-size: 20px; line-height: 1; }
.quality-summary p { margin: 4px 0 0; color: #9a9fa6; font-size: 7px; }
.quality-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(320px, 1.2fr); gap: 10px; align-items: start; }
.quality-problems-card { grid-column: span 2; }
.quality-issue-types, .quality-projects { max-height: 410px; overflow-y: auto; }
.quality-type-row { min-height: 57px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 8px 12px; border-bottom: 1px solid #eeeeec; }
.quality-type-row:last-child { border-bottom: 0; }
.quality-type-row > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #e6f4eb; color: #377551; font-size: 8px; font-weight: 900; }
.quality-type-row.warning > span { background: #fff0d2; color: #946519; }
.quality-type-row.critical > span { background: #ffe5e0; color: #c34c3a; }
.quality-type-row strong, .quality-type-row small { display: block; }
.quality-type-row strong { font-size: 9px; }
.quality-type-row small { margin-top: 3px; color: #999ea5; font-size: 7px; }
.quality-type-row > b { min-width: 26px; color: #737983; text-align: right; font-size: 11px; }
.quality-project-row { min-height: 62px; display: grid; grid-template-columns: minmax(120px, 1fr) 95px 30px; gap: 10px; align-items: center; padding: 9px 13px; border-bottom: 1px solid #eeeeec; }
.quality-project-row:last-child { border-bottom: 0; }
.quality-project-row div { min-width: 0; }
.quality-project-row strong, .quality-project-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quality-project-row strong { font-size: 9px; }
.quality-project-row small { margin-top: 3px; color: #999ea5; font-size: 7px; }
.quality-project-row > span { height: 5px; border-radius: 99px; background: #ececea; overflow: hidden; }
.quality-project-row > span i { height: 100%; display: block; border-radius: inherit; background: #4ba475; }
.quality-project-row > span i.warning { background: #d3a03a; }
.quality-project-row > span i.critical { background: #d75d4a; }
.quality-project-row > b { font-size: 10px; text-align: right; }
.quality-project-row > b.good { color: #377653; }
.quality-project-row > b.warning { color: #93651a; }
.quality-project-row > b.critical { color: #bd4a38; }
.quality-issues { max-height: 570px; overflow-y: auto; }
.quality-issue-row { width: 100%; min-height: 62px; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto 15px; gap: 9px; align-items: center; padding: 9px 13px; border: 0; border-bottom: 1px solid #eeeeec; background: white; color: var(--ink); text-align: left; }
.quality-issue-row:hover { background: #fafaf9; }
.quality-issue-mark { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; background: #fff0d2; color: #946519; font-size: 9px; font-weight: 900; }
.quality-issue-row.critical .quality-issue-mark { background: #ffe5e0; color: #c34c3a; }
.quality-issue-copy { min-width: 0; }
.quality-issue-copy strong, .quality-issue-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quality-issue-copy strong { font-size: 9px; }
.quality-issue-copy small { margin-top: 4px; color: #969ba3; font-size: 7px; }
.quality-issue-row > b { max-width: 150px; padding: 4px 7px; border-radius: 6px; background: #f0f0ee; color: #6f757e; font-size: 6px; white-space: nowrap; }
.quality-issue-row.critical > b { background: #fff0ed; color: #a94a3b; }
.quality-issue-row > em { color: #a4a8ae; font-size: 15px; font-style: normal; }

@keyframes pulse { 50% { opacity: .35; } }

@media (max-width: 1200px) {
  .dashboard-overview-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .user-copy { display: none; }.search-box { width: auto; flex: 1; }
  .absence-layout { grid-template-columns: 1fr; }
  .absence-list { max-height: 420px; }
  .planning-layout { grid-template-columns: 1fr; }
  .risk-summary { grid-template-columns: repeat(2, 1fr); }
  .analytics-summary { grid-template-columns: repeat(3, 1fr); }
  .attention-item { grid-template-columns: 34px minmax(220px, 1fr) auto; }
  .attention-item .attention-reassign, .attention-item .row-menu { grid-column: 3; }
  .competency-workload-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .competency-workload-summary > div { grid-column: span 3; }
  .daily-summary { grid-template-columns: repeat(3, 1fr); }
  .scrum-board, .scrum-blocked-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .table-wrap { overflow-x: auto; }
  .tasks-table { min-width: 900px; }
  .app-shell { display: block; }.sidebar { position: fixed; left: 0; transform: translateX(-102%); transition: transform .2s; width: 236px; }.sidebar.open { transform: translateX(0); }.mobile-only { display: grid; }.topbar { padding: 0 14px; gap: 8px; }.search-box kbd, .user-chip { display: none; }.topbar .button.primary { font-size: 0; width: 39px; padding: 0; }.topbar .button.primary span { font-size: 17px; }.content-wrap { padding: 25px 15px 45px; }.date-chip { display: none; }.stats-grid { grid-template-columns: 1fr 1fr; }.stat-card { min-height: 125px; }.people-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }.filters-row { overflow-x: auto; }.filters-row .select-wrap select { min-width: 130px; }.form-grid { grid-template-columns: 1fr; }.span-2 { grid-column: span 1; }.scope-switch, .project-checklist { grid-template-columns: 1fr; }
  .absence-summary { grid-template-columns: 1fr 1fr 1fr; }
  .absence-summary > article { min-height: 70px; padding: 11px; }
  .summary-icon { width: 30px; height: 30px; }
  .absence-summary strong { font-size: 19px; }
  .absence-summary small { font-size: 6px; }
  .absence-calendar-card { overflow-x: auto; }
  .calendar-weekdays, .absence-calendar { min-width: 650px; }
  .attention-item { grid-template-columns: 31px minmax(0, 1fr) auto; }
  .attention-person { display: none; }
  .today-absence-list { grid-template-columns: 1fr; }
  .analytics-summary { grid-template-columns: 1fr 1fr; }
  .analytics-grid { grid-template-columns: 1fr; }
  .analytics-card.analytics-wide { grid-column: span 1; }
  .competency-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .project-analytics-head, .project-analytics-row { grid-template-columns: minmax(150px, 1fr) repeat(3, 58px); }
  .competency-workload-summary { grid-template-columns: 1fr 1fr; }
  .competency-workload-summary > div { grid-column: span 2; }
  .risk-hero, .planning-hero { align-items: flex-start; flex-direction: column; }
  .risk-grid { grid-template-columns: 1fr; }
  .risk-card.risk-wide { grid-column: span 1; }
  .planning-form-row { grid-template-columns: 1fr; }
  .planning-candidate { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .planning-load { grid-column: 2; }
  .planning-status { grid-column: 3; grid-row: 1; }
  .sync-status b { display: none; }
  .daily-summary { grid-template-columns: 1fr 1fr; }
  .daily-grid { grid-template-columns: 1fr; }
  .daily-side-column { grid-row: auto; }
  .daily-people-card { grid-column: span 1; }
  .daily-people { grid-template-columns: 1fr; }
  .scrum-toolbar { align-items: flex-start; flex-direction: column; }
  .scrum-person-filter, .scrum-person-filter select { width: 100%; }
  .scrum-runbook-body { grid-template-columns: 1fr 1fr; }
  .scrum-presence { grid-template-columns: 1fr; }
  .scrum-presence-heading { padding-right: 0; padding-bottom: 9px; border-right: 0; border-bottom: 1px solid #dce8df; }
  .scrum-delivery-list { grid-template-columns: 1fr; }
  .scrum-summary { grid-template-columns: 1fr 1fr; }
  .scrum-board, .scrum-blocked-cards { grid-template-columns: 1fr; }
  .quality-summary { grid-template-columns: 1fr 1fr; }
  .quality-grid { grid-template-columns: 1fr; }
  .quality-problems-card { grid-column: span 1; }
}
@media (max-width: 480px) {
  .dashboard-overview-grid .stats-grid { height: auto; grid-template-columns: 1fr; grid-template-rows: none; }.stats-grid { grid-template-columns: 1fr; }.stat-card { min-height: 116px; }.people-strip { grid-template-columns: 1fr; }.page-heading h1 { font-size: 31px; }.section-heading { align-items: start; }.text-button { display: none; }.dialog-header, .form-grid, .dialog-footer { padding-left: 18px; padding-right: 18px; }.scope-switch { padding-left: 18px; padding-right: 18px; }
  .absence-summary { grid-template-columns: 1fr; }
  .scrum-runbook-heading span { grid-template-columns: 1fr; gap: 3px; }
  .scrum-runbook-heading small { grid-column: auto; }
  .scrum-runbook-body { grid-template-columns: 1fr; }
  .absence-summary > article { min-height: 62px; }
  .absence-card-heading { align-items: flex-start; }
  .coverage-preview { margin-left: 18px; margin-right: 18px; }
  .attention-item { grid-template-columns: 29px minmax(0, 1fr); }
  .attention-item .attention-reassign, .attention-item .row-menu { grid-column: 2; justify-self: start; }
  .attention-empty { flex-wrap: wrap; }
  .today-absence-list { grid-template-columns: minmax(0, 1fr); }
  .today-risk-open { align-items: flex-start; flex-direction: column; gap: 5px; }
  .analytics-toolbar { align-items: flex-start; flex-direction: column; }
  .analytics-periods { width: 100%; }
  .analytics-periods button { flex: 1; padding: 0 6px; }
  .analytics-summary { grid-template-columns: 1fr; }
  .competency-layout { grid-template-columns: 1fr; }
  .competency-people { max-height: 180px; border-right: 0; border-bottom: 1px solid var(--line); }
  .competency-editor { max-height: 460px; }
  .competency-catalog > div:first-child { align-items: stretch; flex-direction: column; }
  .competency-catalog-form { grid-template-columns: 1fr; }
  .project-analytics { overflow-x: auto; }
  .project-analytics-head, .project-analytics-row { min-width: 520px; }
  .competency-workload-summary { grid-template-columns: 1fr; }
  .competency-workload-summary > div { grid-column: span 1; }
  .multi-filter-menu { width: min(285px, calc(100vw - 54px)); }
  .risk-summary { grid-template-columns: 1fr; }
  .planning-candidate { grid-template-columns: 31px minmax(0, 1fr); }
  .planning-status { grid-column: 2; grid-row: auto; justify-self: start; }
  .daily-hero, .quality-hero { align-items: flex-start; flex-direction: column; }
  .daily-summary, .quality-summary { grid-template-columns: 1fr; }
  .mode-task { grid-template-columns: 27px minmax(0, 1fr) 23px; }
  .mode-task-date { display: none; }
  .quality-issue-row { grid-template-columns: 28px minmax(0, 1fr) 13px; }
  .quality-issue-row > b { display: none; }
}

/* Blokady, metryki techniczne i administracja historii wdrożeń */
.blocked-task-row td:first-child { box-shadow: inset 4px 0 0 #e36464; }
.blocked-task-row { background: linear-gradient(90deg, rgba(227, 100, 100, .055), transparent 32%); }
.blocked-inline-badge { display: inline-flex; margin-left: 9px; padding: 3px 7px; border-radius: 999px; background: #fff0f0; color: #af3f47; font-size: 9px; letter-spacing: .08em; vertical-align: 2px; }
.block-row-reason { color: #a34a51 !important; font-weight: 650; max-width: 610px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.detail-block-alert { display: flex; gap: 12px; padding: 16px; margin: 4px 0 18px; border: 1px solid #f0c9cc; border-radius: 16px; background: #fff5f5; color: #7e333b; }
.detail-block-alert > span { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border-radius: 11px; background: #f8d9dc; font-size: 20px; }
.detail-block-alert strong, .detail-block-alert p, .detail-block-alert small { display: block; }
.detail-block-alert p { margin: 5px 0; line-height: 1.45; }
.detail-block-alert small { color: #9c676c; }
.button.danger-ghost { color: #a83d46; border-color: #edc2c6; background: #fff7f7; }
.button.danger-ghost:hover { background: #ffeded; }

.deployment-admin-button { align-self: flex-start; margin-top: 5px; padding: 5px 9px; border: 1px solid #d7dcec; border-radius: 8px; background: #f8f9fd; color: #53617b; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.deployment-admin-button:hover { border-color: #aeb9db; background: #eef1fb; }
.deployment-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.deployment-remove-item { width: 26px; height: 26px; border: 1px solid #edc7ca; border-radius: 8px; background: #fff7f7; color: #a94a51; font-size: 17px; cursor: pointer; }
.deployment-remove-item:hover { background: #ffecee; }

.technical-metrics-card { overflow: hidden; }
.technical-range { color: var(--muted); font-size: 12px; font-weight: 700; }
.technical-metrics-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 18px 0 22px; }
.technical-metrics-summary article { padding: 14px; border: 1px solid #e7e9ef; border-radius: 14px; background: #fafbfc; }
.technical-metrics-summary article.warning { border-color: #f0d4a1; background: #fff9ec; }
.technical-metrics-summary small, .technical-metrics-summary span { display: block; color: var(--muted); }
.technical-metrics-summary small { font-size: 9px; letter-spacing: .08em; font-weight: 800; }
.technical-metrics-summary strong { display: block; margin: 6px 0 2px; font-size: 25px; }
.technical-metrics-summary span { font-size: 11px; }
.technical-empty { grid-column: 1 / -1; margin: 0; color: var(--muted); }
.technical-metrics-chart { display: flex; align-items: end; gap: 7px; min-height: 142px; padding: 15px 10px 0; border-top: 1px solid #eceef3; overflow-x: auto; }
.technical-week { display: grid; grid-template-rows: 86px auto auto; align-items: end; justify-items: center; flex: 1 0 42px; min-width: 42px; }
.technical-week > div { width: 18px; height: 82px; display: flex; align-items: end; border-radius: 7px 7px 3px 3px; background: #f0f2f8; overflow: hidden; }
.technical-week i { display: block; width: 100%; min-height: 4px; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg, #7387d8, #596dbd); }
.technical-week b { margin-top: 5px; font-size: 11px; }
.technical-week small { color: var(--muted); font-size: 9px; white-space: nowrap; }

.sync-settings-badge.error { background: #fff0f0; color: #a6434b; }
.automation-settings-section .sync-settings-body p { overflow-wrap: anywhere; }
.block-dialog { width: min(610px, calc(100vw - 32px)); }
.deployment-audit-dialog { width: min(760px, calc(100vw - 32px)); }
.deployment-audit-content { padding: 0 24px 24px; }
.deployment-add-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; padding: 16px; border-radius: 15px; background: #f6f7fa; }
.deployment-add-form .field { margin: 0; }
.deployment-audit-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 24px 0 10px; }
.deployment-audit-list { display: grid; gap: 8px; max-height: 330px; overflow: auto; }
.deployment-audit-list article { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid #e7e9ef; border-radius: 12px; }
.deployment-audit-mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #eef0f8; color: #5968a1; font-weight: 800; }
.deployment-audit-list strong, .deployment-audit-list small { display: block; }
.deployment-audit-list small, .deployment-audit-list time { color: var(--muted); font-size: 10px; }
.deployment-audit-empty { display: grid; place-items: center; gap: 3px; min-height: 120px; color: var(--muted); text-align: center; }
.deployment-audit-empty > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #e8f5ec; color: #43835d; }

@media (max-width: 900px) {
  .technical-metrics-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .technical-metrics-summary article:last-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .deployment-add-form { grid-template-columns: 1fr; }
  .deployment-audit-list article { grid-template-columns: 30px 1fr; }
  .deployment-audit-list time { grid-column: 2; }
  .technical-metrics-summary { grid-template-columns: 1fr; }
  .technical-metrics-summary article:last-child { grid-column: auto; }
}

/* Plan przyszłości */
.future-plan-panel { display: grid; gap: 12px; }
.future-hero { min-height: 122px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 23px 25px; border-radius: var(--radius); background: radial-gradient(circle at 82% -25%, rgba(215,255,69,.2), transparent 36%), linear-gradient(115deg, #171a20, #252b30); color: white; }
.future-hero h2 { margin: 0; font-size: 24px; letter-spacing: -.8px; }
.future-hero p:not(.eyebrow) { margin: 7px 0 0; color: #aeb5bc; font-size: 10px; }
.future-hero-actions { display: flex; align-items: center; gap: 9px; }
.button.future-primary { border-color: var(--lime); background: var(--lime); color: var(--ink); }
.button.future-primary:hover { background: #e1ff70; }
.future-seed-info { max-width: 190px; padding: 6px 9px; border: 1px solid #414950; border-radius: 8px; color: #b8c0c7; font-size: 7px; line-height: 1.35; }
.future-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.future-kpis article { min-height: 90px; display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 11px; align-items: center; padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.future-kpi-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #eee9ff; color: #674db8; font-size: 11px; font-weight: 900; }
.future-kpi-icon.days { background: #e7edff; color: #4d66bd; }
.future-kpi-icon.staffing { background: #e5f5ea; color: #347451; }
.future-kpis article.warning .future-kpi-icon.staffing { background: #ffe6e1; color: #c34b39; }
.future-kpi-icon.azure { background: #ddf3f4; color: #2a747b; }
.future-kpis small, .future-kpis strong, .future-kpis p { display: block; }
.future-kpis small { color: #969ba3; font-size: 6px; font-weight: 850; letter-spacing: .8px; }
.future-kpis strong { margin-top: 3px; font-size: 21px; line-height: 1; }
.future-kpis p { margin: 4px 0 0; color: #999ea5; font-size: 7px; }
.future-toolbar { min-height: 66px; display: flex; flex-wrap: wrap; align-items: end; gap: 8px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 13px; background: #fafaf9; }
.future-view-switch { align-self: stretch; display: flex; align-items: center; margin-right: 5px; padding: 3px; border: 1px solid #dedfe1; border-radius: 10px; background: white; }
.future-view-switch button { min-width: 82px; height: 32px; padding: 0 11px; border: 0; border-radius: 7px; background: transparent; color: #7e848c; font-size: 8px; font-weight: 800; }
.future-view-switch button.active { background: var(--ink); color: white; }
.future-toolbar .select-wrap select { min-width: 125px; }
.future-search { height: 34px; min-width: 180px; flex: 1; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid #dedfe1; border-radius: 8px; background: white; color: #969ba2; }
.future-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 9px; }
.future-status { min-height: 64px; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 12px 14px; border: 1px solid #efc8c1; border-radius: 13px; background: #fff6f4; color: #983f33; }
.future-status > b { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #ffe3de; }
.future-status strong, .future-status small { display: block; }
.future-status strong { font-size: 10px; }.future-status small { margin-top: 3px; color: #a56d65; font-size: 8px; }
.future-content { min-width: 0; }
.future-loading, .future-error { min-height: 250px; display: grid; place-items: center; align-content: center; gap: 9px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: white; color: #7d838c; text-align: center; }
.future-loading > span { width: 29px; height: 29px; border: 3px solid #e3e0eb; border-top-color: #755fc3; border-radius: 50%; animation: future-spin .75s linear infinite; }
.future-loading strong, .future-error strong { font-size: 10px; }
.future-error > b { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: #ffe4df; color: #bd4938; }
.future-error small { max-width: 480px; color: #9a6b64; font-size: 8px; }
@keyframes future-spin { to { transform: rotate(360deg); } }

.future-map { min-width: 0; display: grid; grid-template-columns: repeat(5, minmax(245px, 1fr)); gap: 9px; align-items: start; overflow-x: auto; padding-bottom: 8px; }
.future-map-column { min-width: 245px; border: 1px solid var(--line); border-radius: 14px; background: #f0f1f2; overflow: hidden; }
.future-map-heading { min-height: 62px; display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #dedfe2; background: #f8f8f7; }
.future-map-heading > span { width: 7px; height: 7px; border-radius: 50%; background: #6976a9; }
.future-map-column.horizon-now .future-map-heading > span { background: #df6754; }
.future-map-column.horizon-next .future-map-heading > span { background: #d5a33d; }
.future-map-column.horizon-later .future-map-heading > span { background: #667bc7; }
.future-map-column.horizon-someday .future-map-heading > span { background: #8c6bc5; }
.future-map-column.horizon-ongoing .future-map-heading > span { background: #47a177; }
.future-map-heading strong, .future-map-heading small { display: block; }
.future-map-heading strong { font-size: 8px; letter-spacing: .55px; }.future-map-heading small { margin-top: 3px; color: #9a9fa6; font-size: 6px; }
.future-map-heading > b { min-width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; background: white; color: #747a82; font-size: 8px; }
.future-map-cards { max-height: 720px; display: grid; align-content: start; gap: 7px; padding: 8px; overflow-y: auto; }
.future-map-card { width: 100%; min-height: 166px; display: grid; gap: 7px; padding: 10px; border: 1px solid #dfe1e3; border-radius: 11px; background: white; color: var(--ink); text-align: left; box-shadow: 0 2px 8px rgba(25,28,34,.035); }
.future-map-card:hover { border-color: #bfc3ca; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(25,28,34,.075); }
.future-map-card.risk-critical { box-shadow: inset 3px 0 #dc604d, 0 2px 8px rgba(25,28,34,.035); }
.future-map-card.risk-warning { box-shadow: inset 3px 0 #d3a03b, 0 2px 8px rgba(25,28,34,.035); }
.future-map-card-top { min-width: 0; display: flex; align-items: center; gap: 5px; }
.future-kind { width: 24px; height: 24px; flex: none; display: inline-grid; place-items: center; border-radius: 7px; background: #eee8ff; color: #684db8; font-size: 7px; font-style: normal; font-weight: 900; }
.future-kind.kind-epic { background: #eee8ff; color: #684db8; }.future-kind.kind-feature { background: #e8edff; color: #4e66bd; }.future-kind.kind-story { background: #e2f2ff; color: #3973a2; }.future-kind.kind-task { background: #eff0f1; color: #67707a; }.future-kind.kind-idea { background: #fff0cf; color: #8f6218; }
.future-map-card-top > b { color: #777d85; font-size: 6px; letter-spacing: .6px; text-transform: uppercase; }
.future-map-card-top > em { margin-left: auto; padding: 3px 5px; border-radius: 5px; background: #f0f0ee; color: #7d838a; font-size: 5px; font-style: normal; font-weight: 850; }
.future-map-card-top > em + em { margin-left: 0; }.future-map-card-top > em.azure { background: #def2f3; color: #277179; }
.future-map-card > strong { display: -webkit-box; overflow: hidden; font-size: 11px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.future-map-card > small { overflow: hidden; color: #959aa2; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.future-card-rollup { display: flex; align-items: baseline; gap: 8px; padding: 7px 8px; border-radius: 8px; background: #f7f7f6; }
.future-card-rollup > b { font-size: 12px; }.future-card-rollup small { color: #92979f; font-size: 6px; }
.future-card-roles { display: flex; flex-wrap: wrap; gap: 4px; }
.future-card-roles > i { padding: 4px 5px; border-radius: 6px; background: #f0ecfb; color: #675593; font-size: 6px; font-style: normal; font-weight: 750; }
.future-card-roles > i b { margin-left: 4px; }
.future-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 7px; margin-top: auto; }
.future-card-people { display: inline-flex; align-items: center; padding-left: 4px; }
.future-card-people > i { width: 24px; height: 24px; display: grid; place-items: center; margin-left: -4px; border: 2px solid white; border-radius: 8px; background: var(--person-bg); color: var(--person-fg); font-size: 5px; font-style: normal; font-weight: 900; }
.future-card-people > b { margin-left: 3px; color: #7f858d; font-size: 6px; }
.future-no-people { color: #a0a5ac; font-size: 7px; font-style: italic; }
.future-risk { display: inline-flex; align-items: center; gap: 5px; color: #4b7e60; font-size: 6px; font-weight: 850; white-space: nowrap; }
.future-risk > i { width: 6px; height: 6px; border-radius: 50%; background: #48a474; }
.future-risk.risk-warning { color: #8c611a; }.future-risk.risk-warning > i { background: #d5a23a; }
.future-risk.risk-critical { color: #aa493a; }.future-risk.risk-critical > i { background: #dc604d; }

.future-tree { border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow-x: auto; }
.future-tree-row { min-width: 930px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: stretch; padding-left: calc(var(--future-depth) * 21px + 10px); border-bottom: 1px solid #eeeeec; background: white; }
.future-tree-row:hover { background: #fbfbfa; }
.future-tree-row.risk-critical { box-shadow: inset 3px 0 #dc604d; }.future-tree-row.risk-warning { box-shadow: inset 3px 0 #d4a13a; }
.future-tree-toggle, .future-tree-spacer { width: 25px; min-height: 58px; display: grid; place-items: center; }
.future-tree-toggle { align-self: center; height: 25px; min-height: 25px; border: 1px solid #dedfe2; border-radius: 7px; background: #f7f7f6; color: #737a83; font-size: 11px; }
.future-tree-main { min-width: 0; min-height: 60px; display: grid; grid-template-columns: 29px minmax(220px, 1fr) 78px 65px 90px 92px 64px; gap: 9px; align-items: center; padding: 8px 12px 8px 3px; border: 0; background: transparent; color: var(--ink); text-align: left; }
.future-tree-copy { min-width: 0; }.future-tree-copy strong, .future-tree-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.future-tree-copy strong { font-size: 9px; }.future-tree-copy small { margin-top: 3px; color: #989da5; font-size: 6px; }
.future-tree-horizon { justify-self: start; padding: 4px 6px; border-radius: 6px; background: #eef0f2; color: #6d747e; font-size: 6px; font-weight: 850; }
.future-tree-horizon.horizon-now { background: #ffe8e3; color: #ad493a; }.future-tree-horizon.horizon-next { background: #fff0d2; color: #8e6219; }.future-tree-horizon.horizon-later { background: #e8edff; color: #4d65ba; }.future-tree-horizon.horizon-someday { background: #eee8ff; color: #674db5; }.future-tree-horizon.horizon-ongoing { background: #e3f4e9; color: #357452; }
.future-tree-rollup strong, .future-tree-rollup small, .future-tree-rollup b { display: block; }.future-tree-rollup b { font-size: 9px; }.future-tree-rollup small { margin-top: 2px; color: #999ea5; font-size: 6px; }
.future-tree-main > .future-card-people { justify-self: start; }
.future-tree-azure { justify-self: end; color: #33777d; font-size: 7px; font-weight: 800; }
.future-tree-children { min-width: 0; }
.future-orphans-label { padding: 9px 14px; border-bottom: 1px solid var(--line); background: #fff9ed; color: #946c23; font-size: 6px; font-weight: 850; letter-spacing: 1px; }
.future-match-suggestion { min-width: 930px; min-height: 37px; display: flex; align-items: center; gap: 7px; padding: 5px 13px 5px calc(var(--future-depth) * 21px + 72px); border-bottom: 1px solid #dcebed; background: #f3fbfb; color: #42777c; }
.future-match-suggestion > span, .future-match-suggestion > small { font-size: 6px; }.future-match-suggestion > strong { max-width: 330px; overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.future-match-suggestion > button { margin-left: auto; padding: 5px 7px; border: 1px solid #bcdadd; border-radius: 6px; background: white; color: #286f76; font-size: 6px; font-weight: 850; }

.future-compare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: start; }
.future-compare-pane { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; }
.future-compare-heading { min-height: 61px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; border-bottom: 1px solid var(--line); background: #fafaf9; }
.future-compare-pane.azure .future-compare-heading { background: #f1f8f8; }
.future-compare-heading small, .future-compare-heading strong { display: block; }.future-compare-heading small { color: #9298a0; font-size: 6px; font-weight: 850; letter-spacing: .8px; }.future-compare-heading strong { margin-top: 3px; font-size: 11px; }
.future-compare-heading > span { min-width: 26px; height: 25px; display: grid; place-items: center; padding: 0 5px; border-radius: 7px; background: white; color: #777d85; font-size: 8px; font-weight: 850; }
.future-compare-pane .future-tree { max-height: 720px; border: 0; border-radius: 0; overflow: auto; }
.future-compare-pane .future-tree-row { min-width: 650px; }.future-compare-pane .future-tree-main { grid-template-columns: 27px minmax(190px, 1fr) 70px 52px 70px 78px 50px; }
.azure-future-tree { max-height: 720px; overflow: auto; }
.azure-future-row { min-width: 610px; width: 100%; min-height: 58px; display: grid; grid-template-columns: 29px minmax(0, 1fr) 25px 13px; gap: 9px; align-items: center; padding: 8px 11px 8px calc(var(--future-depth) * 20px + 12px); border: 0; border-bottom: 1px solid #eeeeec; background: white; color: var(--ink); text-align: left; }
.azure-future-row:hover { background: #f4fafa; }.azure-future-row > span:nth-child(2) { min-width: 0; }.azure-future-row strong, .azure-future-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.azure-future-row strong { font-size: 9px; }.azure-future-row small { margin-top: 3px; color: #969ba3; font-size: 6px; }
.azure-future-row > i { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--person-border, #ddd); border-radius: 7px; background: var(--person-bg, #f1f1f1); color: var(--person-fg, #777); font-size: 5px; font-style: normal; font-weight: 900; }.azure-future-row > em { color: #a4a9af; font-size: 14px; font-style: normal; }

.future-dialog { width: min(1080px, calc(100vw - 28px)); height: min(900px, calc(100dvh - 28px)); max-height: calc(100dvh - 28px); overflow: hidden; }
.future-dialog form { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.future-dialog-header { flex: none; }
.future-dialog-header h2 { font-size: 28px; }
.future-dialog-header p:not(.eyebrow) { font-size: 13px; }
.future-dialog-header .eyebrow { font-size: 10px; }
.future-dialog-header-actions { display: flex; align-items: center; gap: 8px; }
.future-source-badge { padding: 6px 9px; border-radius: 6px; background: #eee9ff; color: #654bb4; font-size: 10px; font-weight: 900; letter-spacing: .8px; }
.future-dialog-content { min-height: 0; flex: 1 1 0; display: grid; grid-auto-rows: max-content; align-content: start; gap: 12px; padding: 16px 20px 20px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; background: #f6f6f4; }
.future-form-section { min-height: max-content; border: 1px solid var(--line); border-radius: 14px; background: white; overflow: hidden; }
.future-form-section-heading { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 17px; border-bottom: 1px solid var(--line); }
.future-form-section-heading small, .future-form-section-heading strong { display: block; }.future-form-section-heading small { color: #8f949c; font-size: 10px; font-weight: 850; letter-spacing: 1.1px; }.future-form-section-heading strong { margin-top: 4px; font-size: 16px; }.future-form-section-heading > span { color: #858b94; font-size: 11px; }
.future-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; padding: 14px 15px 16px; }
.future-dialog .field { gap: 8px; }
.future-dialog .field > span, .future-dialog .field > label { font-size: 11px; }
.future-dialog .field input, .future-dialog .field select { height: 44px; padding: 0 12px; font-size: 13px; }
.future-dialog .field textarea { padding: 12px; font-size: 13px; line-height: 1.5; }
.future-dialog .input-suffix b { font-size: 11px; }
.future-span-3 { grid-column: span 3; }
.future-resource-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; padding: 13px; background: #fafaf9; }
.future-relation-editor { min-width: 0; border: 1px solid var(--line); border-radius: 11px; background: white; overflow: hidden; }
.future-relation-heading { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 13px; border-bottom: 1px solid var(--line); }.future-relation-heading strong, .future-relation-heading small { display: block; }.future-relation-heading strong { font-size: 13px; }.future-relation-heading small { margin-top: 4px; color: #858c95; font-size: 10px; }.future-relation-heading button { border: 0; background: transparent; color: #674fba; font-size: 11px; font-weight: 850; }
.future-relation-rows { max-height: 320px; overflow-y: auto; }.future-relation-row { display: grid; grid-template-columns: minmax(120px, 1.4fr) minmax(70px, .7fr) minmax(62px, .6fr) 28px; gap: 8px; align-items: end; padding: 11px; border-bottom: 1px solid #eeeeec; }.future-relation-row:last-child { border-bottom: 0; }.future-relation-row label { min-width: 0; }.future-relation-row label > span { display: block; margin-bottom: 6px; color: #858c95; font-size: 9px; font-weight: 800; text-transform: uppercase; }.future-relation-row select, .future-relation-row input { width: 100%; height: 42px; border: 1px solid #dedfe2; border-radius: 8px; padding: 0 10px; background: white; color: #505761; font-size: 12px; }.future-relation-row > button { width: 28px; height: 42px; border: 0; background: transparent; color: #b16861; font-size: 19px; }
.future-relation-empty { min-height: 100px; display: grid; place-items: center; margin: 0; padding: 18px; color: #858c95; text-align: center; font-size: 11px; }
.future-dependency-toolbar { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--line); background: #fafaf9; }.future-dependency-toolbar label { min-width: 220px; max-width: 520px; flex: 1; display: flex; align-items: center; gap: 9px; height: 42px; padding: 0 12px; border: 1px solid #dedfe2; border-radius: 9px; background: white; color: #7f8690; }.future-dependency-toolbar input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }.future-dependency-toolbar small { color: #757c86; font-size: 11px; white-space: nowrap; }
.future-dependency-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; max-height: 330px; padding: 14px; overflow-y: auto; background: #fafaf9; }.future-dependency-options label { min-width: 0; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 9px; align-items: center; min-height: 62px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: white; cursor: pointer; }.future-dependency-options label:has(input:checked) { border-color: #c6b9eb; background: #f7f4ff; }.future-dependency-options input { width: 17px; height: 17px; accent-color: #7259c4; }.future-dependency-options strong, .future-dependency-options small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.future-dependency-options strong { font-size: 12px; }.future-dependency-options small { margin-top: 4px; color: #858c95; font-size: 10px; }
.future-azure-section { border-color: #cfe1e3; }.future-azure-section .future-form-section-heading { background: #f4fafa; }.future-check { min-height: 64px; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }.future-check input { width: 17px; height: 17px; accent-color: #397f84; }.future-check strong, .future-check small { display: block; }.future-check strong { font-size: 12px; }.future-check small { margin-top: 4px; color: #858c95; font-size: 10px; }
.future-manual-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: end; }.future-manual-link .button { height: 39px; }
.future-dialog-footer { position: relative; z-index: 2; display: grid; grid-template-columns: auto 1fr auto auto auto auto; flex: none; box-shadow: 0 -8px 18px rgba(30, 34, 40, .04); }.future-dialog-footer .button { min-height: 46px; padding: 0 19px; font-size: 14px; }.button.future-danger { border-color: #efc8c1; background: #fff6f4; color: #aa4939; }.button.future-danger:hover { background: #ffece8; }
.button.future-workshop-button { border-color: #c8baf0; background: #f3efff; color: #5f46ad; }
.button.future-workshop-button:hover { background: #e9e1ff; }

.future-workshop-dialog { width: min(1500px, calc(100vw - 28px)); max-width: none; height: min(920px, calc(100vh - 28px)); max-height: none; padding: 0; overflow: hidden; border: 0; border-radius: 22px; }
.future-workshop-dialog[open] { display: flex; flex-direction: column; }
.future-workshop-header { flex: none; }
.future-workshop-header h2 { font-size: 30px; letter-spacing: -1px; }
.future-workshop-header p:not(.eyebrow) { margin: 5px 0 0; color: #7d8490; font-size: 12px; }
.future-workshop-content { min-height: 0; flex: 1; overflow-y: auto; padding: 18px; background: #f4f5f5; }
.future-workshop-intro { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(450px, 1fr); gap: 14px; }
.future-workshop-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.future-workshop-flow > span { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-content: center; column-gap: 9px; min-height: 64px; padding: 8px 10px; border-radius: 11px; color: #777e88; }
.future-workshop-flow > span:not(:last-child)::after { content: '›'; position: absolute; right: -8px; top: 22px; z-index: 1; color: #bdc1c7; font-size: 18px; }
.future-workshop-flow > span.active { background: #f0ebff; color: #5d45aa; }
.future-workshop-flow i { grid-row: span 2; width: 32px; height: 32px; display: grid; place-items: center; align-self: center; border-radius: 10px; background: #eef0f2; font-style: normal; font-size: 12px; font-weight: 900; }
.future-workshop-flow .active i { background: #765ac9; color: white; }
.future-workshop-flow b { align-self: end; font-size: 12px; }
.future-workshop-flow small { align-self: start; margin-top: 2px; font-size: 9px; }
.future-workshop-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.future-workshop-summary article { min-width: 0; display: grid; place-items: center; align-content: center; padding: 9px; border: 1px solid var(--line); border-radius: 13px; background: white; text-align: center; }
.future-workshop-summary strong { font-size: 22px; line-height: 1; }
.future-workshop-summary span { margin-top: 5px; color: #858b94; font-size: 8px; font-weight: 850; letter-spacing: .5px; text-transform: uppercase; }
.future-workshop-summary .warning { border-color: #efcbb9; background: #fff9f3; color: #ad5c35; }
.future-workshop-notes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .5fr); gap: 14px; align-items: center; margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.future-workshop-notes textarea { min-height: 78px; font-size: 13px; }
.future-workshop-notes p { margin: 0; padding: 12px; border-radius: 11px; background: #f5f2ff; color: #67588f; font-size: 11px; line-height: 1.55; }
.future-workshop-board { margin-top: 14px; border: 1px solid var(--line); border-radius: 15px; background: white; overflow: hidden; }
.future-workshop-columns, .future-workshop-row { display: grid; grid-template-columns: minmax(300px, 1.7fr) 170px minmax(210px, 1fr) 105px 150px; gap: 10px; align-items: center; }
.future-workshop-columns { min-height: 44px; padding: 0 14px; border-bottom: 1px solid var(--line); background: #f7f7f6; color: #8a9098; font-size: 8px; font-weight: 900; letter-spacing: .7px; text-transform: uppercase; }
.future-workshop-feature { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 50px; padding: 10px 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f4f1fc; color: #5c4a91; }
.future-workshop-feature:first-child { border-top: 0; }
.future-workshop-feature div { min-width: 0; }
.future-workshop-feature strong, .future-workshop-feature small { display: block; }
.future-workshop-feature strong { font-size: 13px; }
.future-workshop-feature small { margin-top: 3px; color: #887aaa; font-size: 10px; }
.future-workshop-feature > span { flex: none; padding: 5px 8px; border-radius: 999px; background: white; font-size: 9px; font-weight: 850; }
.future-workshop-row { min-height: 82px; padding: 10px 14px; border-bottom: 1px solid #ececeb; }
.future-workshop-row:last-child { border-bottom: 0; }
.future-workshop-row.is-task .future-workshop-item { padding-left: 25px; }
.future-workshop-item { min-width: 0; }
.future-workshop-item strong { display: block; font-size: 13px; line-height: 1.3; }
.future-workshop-item small { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; color: #8b929b; font-size: 9px; }
.future-workshop-item small i { padding: 3px 6px; border-radius: 999px; background: #f0f1f2; font-style: normal; }
.future-workshop-row select, .future-workshop-row input { width: 100%; height: 42px; min-width: 0; padding: 0 10px; border: 1px solid #dcdfe2; border-radius: 9px; background: white; color: #343a42; font-size: 11px; }
.future-workshop-estimate { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px; }
.future-workshop-estimate b { color: #868d96; font-size: 10px; }
.future-workshop-readiness { min-width: 0; }
.future-workshop-readiness b { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border-radius: 999px; background: #e8f6ed; color: #337253; font-size: 9px; }
.future-workshop-readiness b.warning { background: #fff0e6; color: #a65431; }
.future-workshop-readiness small { display: block; margin-top: 5px; color: #8c929a; font-size: 8px; line-height: 1.3; }
.future-workshop-empty { min-height: 180px; display: grid; place-items: center; color: #858c95; font-size: 13px; }
.future-workshop-footer { display: grid; grid-template-columns: auto 1fr auto; flex: none; }

@media (max-width: 1150px) {
  .future-kpis { grid-template-columns: 1fr 1fr; }
  .future-compare { grid-template-columns: 1fr; }
  .future-compare-pane .future-tree, .azure-future-tree { max-height: 520px; }
  .future-workshop-intro { grid-template-columns: 1fr; }
  .future-workshop-columns, .future-workshop-row { grid-template-columns: minmax(250px, 1.4fr) 145px minmax(180px, 1fr) 95px 130px; }
}
@media (max-width: 780px) {
  .future-hero { align-items: flex-start; flex-direction: column; }
  .future-hero-actions { width: 100%; justify-content: space-between; }
  .future-toolbar { align-items: stretch; }
  .future-view-switch { width: 100%; }.future-view-switch button { min-width: 0; flex: 1; }
  .future-toolbar .select-wrap { flex: 1; }.future-toolbar .select-wrap select { width: 100%; min-width: 115px; }
  .future-search { flex-basis: 100%; }
  .future-resource-grid { grid-template-columns: 1fr; }
  .future-form-grid { grid-template-columns: 1fr 1fr; }.future-span-3 { grid-column: span 2; }
  .future-dependency-options { grid-template-columns: 1fr 1fr; }
  .future-tree-row { min-width: 760px; }.future-tree-main { grid-template-columns: 27px minmax(210px, 1fr) 70px 55px 75px 82px 50px; }
  .future-dialog-footer { grid-template-columns: auto 1fr auto auto; }.future-dialog-footer #futurePublish { grid-column: 1 / -1; grid-row: 2; }
  .future-workshop-dialog { width: calc(100vw - 12px); height: calc(100vh - 12px); }
  .future-workshop-flow { grid-template-columns: 1fr 1fr; }
  .future-workshop-flow > span::after { display: none; }
  .future-workshop-summary { grid-template-columns: repeat(3, 1fr); }
  .future-workshop-notes { grid-template-columns: 1fr; }
  .future-workshop-board { overflow-x: auto; }
  .future-workshop-columns, .future-workshop-row { min-width: 950px; }
}
@media (max-width: 500px) {
  .future-kpis { grid-template-columns: 1fr; }
  .future-hero-actions { align-items: stretch; flex-direction: column; }.future-seed-info { max-width: none; }
  .future-form-grid { grid-template-columns: 1fr; }.future-span-3 { grid-column: span 1; }
  .future-form-section-heading { align-items: flex-start; flex-direction: column; }
  .future-dependency-options { grid-template-columns: 1fr; }
  .future-dependency-toolbar { align-items: stretch; flex-direction: column; }.future-dependency-toolbar label { width: 100%; min-width: 0; max-width: none; }
  .future-relation-row { grid-template-columns: 1fr 1fr 24px; }.future-relation-row label:first-child { grid-column: span 2; }
  .future-dialog-content { padding: 10px; }.future-dialog-header { padding-left: 16px; padding-right: 16px; }
  .future-dialog-footer { grid-template-columns: 1fr 1fr; }.future-dialog-footer > span { display: none; }.future-dialog-footer button { width: 100%; }.future-dialog-footer #futurePublish { grid-column: span 2; }
  .future-workshop-summary { grid-template-columns: 1fr 1fr; }
  .future-workshop-footer { grid-template-columns: 1fr; }
  .future-workshop-footer > span { display: none; }
  .future-workshop-footer .button { width: 100%; }
}

/* Przyrostowe renderowanie listy zadań */
.show-more-row td { padding: 14px; text-align: center; }
.show-more-row .button { width: auto; }
.tasks-table tbody tr[tabindex]:focus-visible { outline: 2px solid #4c6ef5; outline-offset: -2px; }

/* Widok wdrożeń — sygnał reopenów i akcje w wierszu */
.deploy-reopened-summary { color: #af3f47 !important; font-weight: 800; }
.deploy-root-row { cursor: pointer; }
.row-inline-actions { display: flex; gap: 7px; margin-top: 5px; }
.row-inline-actions .deployment-admin-button { align-self: auto; margin-top: 0; }
.deployment-detail-button { padding: 5px 9px; border: 1px solid #d7dcec; border-radius: 8px; background: transparent; color: #53617b; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.deployment-detail-button:hover { border-color: #aeb9db; background: #eef1fb; }

/* Widok archiwum — powód archiwizacji i szybkie przywracanie */
.archive-reason-chip { display: inline-flex; margin: 0 3px; padding: 3px 7px; border-radius: 999px; background: #f0eafc; color: #6648b5; font-size: 9px; letter-spacing: .05em; vertical-align: 1px; }
.archive-since { color: inherit; }
.restore-inline-button { align-self: flex-start; margin-top: 6px; padding: 5px 10px; border: 1px solid #cfe3d8; border-radius: 8px; background: #f2faf5; color: #34745d; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.restore-inline-button:hover { border-color: #9ec9b4; background: #e7f3ee; }

/* Oś czasu wdrożeń */
.segmented-group { display: flex; }
.deploy-timeline { display: grid; gap: 0; padding: 6px 4px 10px; }
.timeline-entry { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 14px; }
.timeline-rail { position: relative; display: flex; justify-content: center; }
.timeline-rail::before { content: ''; position: absolute; top: 0; bottom: 0; width: 2px; background: #e6e3da; }
.timeline-entry:first-child .timeline-rail::before { top: 26px; }
.timeline-entry:last-child .timeline-rail::before { bottom: calc(100% - 26px); }
.timeline-dot { position: relative; z-index: 1; width: 12px; height: 12px; margin-top: 21px; border-radius: 50%; border: 3px solid #fff; background: #b8c470; box-shadow: 0 0 0 2px #e6e3da; }
.timeline-dot.warning { background: #d66a6a; }
.timeline-body { padding: 10px 0 22px; min-width: 0; }
.timeline-date { display: inline-block; margin: 0 0 7px 2px; color: #8b8677; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.timeline-card { border: 1px solid #eae7de; border-radius: 14px; background: #fff; padding: 14px 16px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.timeline-card:hover { border-color: #d5d1c4; box-shadow: 0 4px 14px rgba(40, 38, 30, .06); }
.timeline-card:focus-visible { outline: 2px solid #4c6ef5; outline-offset: 2px; }
.timeline-entry.expanded .timeline-card { border-color: #cfd8a4; box-shadow: 0 6px 18px rgba(40, 38, 30, .07); }
.timeline-card-header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.timeline-card-header strong { font-size: 14.5px; letter-spacing: -.2px; }
.timeline-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 7px; color: #8b8677; font-size: 11.5px; font-weight: 650; }
.timeline-warning { color: #af3f47; font-weight: 800; }
.timeline-chevron { margin-left: auto; color: #b4af9f; font-size: 13px; }
.timeline-items { list-style: none; margin: 13px 0 0; padding: 12px 0 0; border-top: 1px dashed #e8e5db; display: grid; gap: 4px; }
.timeline-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 8px 9px; border: 0; border-radius: 10px; background: transparent; text-align: left; font: inherit; cursor: pointer; }
.timeline-item:hover { background: #f6f4ee; }
.timeline-item-copy { min-width: 0; display: grid; }
.timeline-item-copy strong { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.timeline-item-copy small { color: #8b8677; font-size: 10.5px; }
.timeline-item .status-pill { margin-left: auto; flex: none; }
.timeline-item-reopened { color: #af3f47; letter-spacing: .05em; }
.timeline-no-items { padding: 8px 9px; color: #8b8677; font-size: 12px; }
.timeline-actions { display: flex; gap: 7px; margin-top: 12px; }
.timeline-empty { padding: 46px 20px; text-align: center; color: #8b8677; }
.timeline-empty div { font-size: 26px; margin-bottom: 8px; }
.timeline-empty h3 { margin: 0 0 5px; color: #35322a; }
.timeline-empty p { margin: 0; font-size: 13px; }

/* Skaczące kropki ładowania — zamiast przykładowych danych przed hydratacją */
.loading-dots { display: inline-flex; align-items: center; gap: 4px; vertical-align: middle; }
.loading-dots i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .45; animation: dot-bounce 1.1s infinite ease-in-out; }
.loading-dots i:nth-child(2) { animation-delay: .15s; }
.loading-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes dot-bounce {
  0%, 70%, 100% { transform: translateY(0); opacity: .35; }
  35% { transform: translateY(-4px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .loading-dots i { animation: none; opacity: .6; } }
.stat-card .loading-dots { min-height: 38px; }
.stat-card .loading-dots i { width: 8px; height: 8px; }
.table-loading-row td { padding: 34px 16px; color: #8b8677; font-size: 13px; }
.table-loading-row td > * { vertical-align: middle; }
.table-loading-row .loading-dots { margin-right: 12px; }

/* Zespół */
.team-panel { display: grid; gap: 16px; }
.team-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.team-summary button { min-height: 104px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 15px; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.team-summary button:hover { border-color: #bfc5d0; box-shadow: 0 10px 24px rgba(27,30,36,.07); transform: translateY(-2px); }
.team-summary button.active { border-color: #7e68c2; box-shadow: 0 0 0 3px rgba(126,104,194,.12); }
.team-summary button.warning { border-color: #edcf9c; background: #fffbf2; }
.team-summary button.warning.active { border-color: #c99337; box-shadow: 0 0 0 3px rgba(201,147,55,.13); }
.team-summary small, .team-summary strong, .team-summary span { display: block; }
.team-summary small { color: #92979f; font-size: 9px; font-weight: 850; letter-spacing: 1px; }
.team-summary strong { margin-top: 8px; font-size: 27px; letter-spacing: -.7px; }
.team-summary span { margin-top: 2px; color: #858b93; font-size: 11px; }
.team-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.team-toolbar h2 { margin: 3px 0 4px; font-size: 19px; }
.team-toolbar p:last-child { margin: 0; color: #7c828b; font-size: 12px; }
.team-toolbar-filters { display: flex; align-items: end; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.team-toolbar-filters .select-wrap select { min-width: 190px; }
.team-search { width: min(360px, 100%); display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 0 13px; border: 1px solid #dfe1e4; border-radius: 11px; }
.team-search span { color: #858b93; font-size: 18px; }
.team-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 12px; }
.team-content { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.team-person-card { display: flex; flex-direction: column; min-height: 270px; padding: 17px; border: 1px solid var(--person-border, var(--line)); border-radius: 15px; background: #fff; box-shadow: 0 8px 22px rgba(27, 30, 36, .035); }
.team-person-head { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 11px; align-items: center; }
.team-person-head > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--person-bg, #f1f1ef); color: var(--person-fg, #555); font-size: 11px; font-weight: 900; }
.team-person-head h3 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.team-person-head small { display: block; margin-top: 3px; overflow: hidden; color: #8e949d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.team-absence, .team-available { padding: 5px 7px; border-radius: 7px; background: #e7f5eb; color: #33764f; font-size: 8px; }
.team-absence { background: #ffe9e4; color: #bd4c3b; }
.team-engagement { margin-top: 16px; padding: 10px 11px; border-radius: 10px; background: #f6f4fa; }
.team-upcoming-absence { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 8px 10px; border: 1px solid #d9dff5; border-radius: 10px; background: #f4f6ff; color: #5064b6; }
.team-upcoming-absence > span { width: 24px; height: 24px; flex: none; display: grid; place-items: center; border-radius: 7px; background: white; font-size: 10px; font-weight: 900; }
.team-upcoming-absence small, .team-upcoming-absence strong { display: block; }
.team-upcoming-absence small { font-size: 6px; font-weight: 900; letter-spacing: .65px; }
.team-upcoming-absence strong { margin-top: 2px; font-size: 9px; }
.team-engagement small { display: block; color: #9691a1; font-size: 7px; font-weight: 850; letter-spacing: .9px; }
.team-engagement strong { display: block; margin-top: 4px; color: #594d72; font-size: 11px; }
.team-role-chips { display: flex; flex-wrap: wrap; gap: 5px; min-height: 48px; margin-top: 12px; align-content: flex-start; }
.team-role-chips span { padding: 5px 7px; border-radius: 7px; background: #eef0f2; color: #5f6670; font-size: 8px; font-weight: 750; }
.team-role-chips span.learning { background: #fff0d4; color: #865f1d; }
.team-role-chips span.missing-coverage { border: 1px solid #efc3bb; background: #ffe5e0; color: #ac493a; }
.team-role-chips span.empty { background: transparent; color: #a2a6ac; font-weight: 600; }
.team-person-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin-top: auto; padding-top: 13px; border-top: 1px solid #ececea; }
.team-person-metrics span { min-width: 0; text-align: center; }
.team-person-metrics b, .team-person-metrics small { display: block; }
.team-person-metrics b { font-size: 13px; }
.team-person-metrics small { margin-top: 2px; color: #9398a0; font-size: 7px; }
.team-edit { align-self: flex-end; margin-top: 12px; }
.team-state { grid-column: 1 / -1; min-height: 180px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 25px; border: 1px solid var(--line); border-radius: 15px; background: #fff; color: #7b818a; font-size: 12px; }
.team-state.error { color: #9b4d42; }
.team-coverage-gaps { grid-column: 1 / -1; display: grid; gap: 9px; }
.team-coverage-gaps button { min-height: 76px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 15px; border: 1px solid #edcf9c; border-radius: 13px; background: #fffbf2; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.team-coverage-gaps button:hover { border-color: #c99337; box-shadow: 0 8px 20px rgba(139,95,25,.08); }
.team-coverage-gaps button > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: #fff0cf; color: #92651c; font-size: 14px; font-weight: 900; }
.team-coverage-gaps strong, .team-coverage-gaps small { display: block; }
.team-coverage-gaps strong { font-size: 12px; }
.team-coverage-gaps small { margin-top: 4px; color: #8b8170; font-size: 8px; }
.team-coverage-gaps b { color: #86601f; font-size: 9px; }

@media (max-width: 1100px) {
  .team-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .team-content, .team-summary, .competency-basics { grid-template-columns: 1fr; }
  .team-toolbar { align-items: stretch; flex-direction: column; }
  .team-toolbar-filters { align-items: stretch; flex-direction: column; }
  .personal-reminder-list { grid-template-columns: 1fr; }
  .personal-reminder { grid-template-columns: 34px minmax(0, 1fr) 12px; }
  .personal-reminder-label { grid-column: 2; justify-self: start; }
  .personal-reminder-arrow { grid-column: 3; grid-row: 1 / span 2; }
}

/* Archiwum historyczne */
.history-panel { display: grid; gap: 14px; }
.history-hero { min-height: 120px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; border-radius: var(--radius); background: linear-gradient(115deg, #24262b, #3b352d); color: #fff; }
.history-hero h2 { margin: 2px 0 6px; font-size: 23px; }
.history-hero p:last-child { margin: 0; color: #c0bab0; font-size: 11px; }
.history-search { width: min(390px, 100%); min-height: 43px; display: flex; align-items: center; gap: 9px; padding: 0 13px; border: 1px solid #5d574f; border-radius: 11px; background: rgba(255,255,255,.07); }
.history-search span { color: #d4cfc7; font-size: 18px; }
.history-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: #fff; font: inherit; font-size: 11px; }
.history-search input::placeholder { color: #9f9a92; }
.history-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.history-summary article { min-height: 88px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.history-summary small, .history-summary strong, .history-summary span { display: block; }
.history-summary small { color: #99958f; font-size: 7px; font-weight: 850; letter-spacing: .9px; }
.history-summary strong { margin-top: 5px; font-size: 23px; }
.history-summary span { margin-top: 2px; color: #96918a; font-size: 8px; }
.history-content { display: grid; gap: 9px; }
.history-item { display: grid; gap: 8px; padding: 16px 18px; border: 1px solid #dfddd7; border-left: 4px solid #a9a49b; border-radius: 13px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.history-item:hover { border-color: #c3bdb2; box-shadow: 0 9px 24px rgba(49, 44, 37, .07); }
.history-item.completed { border-left-color: #6ea684; }
.history-item.stale { border-left-color: #d1a145; }
.history-item.archived { border-left-color: #8d7db3; }
.history-item-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.history-item-top b, .history-item-top em { padding: 4px 7px; border-radius: 6px; font-size: 7px; font-style: normal; }
.history-item-top b { background: #f0eee8; color: #706b63; }
.history-item.completed .history-item-top b { background: #e7f3eb; color: #397052; }
.history-item.stale .history-item-top b { background: #fff1d5; color: #88621f; }
.history-item.archived .history-item-top b { background: #eee9f8; color: #66558d; }
.history-item-top em { background: #f1f1ef; color: #737982; }
.history-item > strong { font-size: 14px; }
.history-path { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; color: #6f6a62; }
.history-path i { padding: 3px 6px; border-radius: 5px; background: #f4f2ed; font-size: 7px; font-style: normal; font-weight: 700; }
.history-path b { color: #b0aba2; font-size: 9px; }
.history-item p { margin: 0; color: #636972; font-size: 10px; line-height: 1.55; }
.history-item > small { color: #9a9ea4; font-size: 8px; }
.history-state { min-height: 190px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 25px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: #7b818a; font-size: 11px; }
.history-state.error { color: #9b4d42; }

@media (max-width: 780px) {
  .history-summary { grid-template-columns: 1fr 1fr; }
  .history-hero { align-items: stretch; flex-direction: column; }
}
@media (max-width: 500px) {
  .history-summary { grid-template-columns: 1fr; }
}
