*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:Manrope,system-ui,sans-serif}

/* --solid-bg/--solid-text are the "high-emphasis" surface used for active
   nav items, primary buttons, and selected chips. In light mode that's a
   near-black pill with white text; in dark mode a near-black pill would
   blend into the already-dark surfaces, so it inverts to a bright pill with
   dark text instead — same emphasis, correct contrast in both themes. */
[data-theme="light"]{color-scheme:light;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:rgba(37,99,235,.10);--ink:#111827;--bg:#f4f2ee;--panel:#ffffff;--panel2:#f3f1ec;--panel3:#faf9f6;--border:#e7e3db;--text:#1b1a17;--muted:#6f6b62;--faint:#a29d92;--shadow:0 1px 2px rgba(20,18,12,.06),0 4px 16px rgba(20,18,12,.05);--sidebar:#faf9f6;--solid-bg:#1b1a17;--solid-text:#fff}
[data-theme="dark"]{color-scheme:dark;--accent:#3b82f6;--accent-hover:#2563eb;--accent-soft:rgba(59,130,246,.16);--ink:#111827;--bg:#141317;--panel:#1d1c21;--panel2:#26252b;--panel3:#232228;--border:#33323a;--text:#f1efe9;--muted:#a09ba4;--faint:#6d6873;--shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.28);--sidebar:#1a191e;--solid-bg:#f1efe9;--solid-text:#141317}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}
::-webkit-scrollbar-track{background:transparent}
a{color:#c8871a;text-decoration:none}
a:hover{color:#e8232b}
button{font-family:inherit}

#app{min-height:100vh;background:var(--bg);color:var(--text);display:flex}

.hamburger-btn{display:none;border:1px solid var(--border);background:var(--panel);color:var(--text);width:38px;height:38px;border-radius:9px;align-items:center;justify-content:center;flex:none;cursor:pointer}
.mobile-nav-overlay{display:none}

/* ---- sidebar ---- */
.sidebar{width:244px;flex:none;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0}
.sidebar-logo{padding:20px 18px 14px;display:flex;align-items:center;gap:10px}
.sidebar-logo-badge{background:#fff;border:1px solid var(--border);border-radius:10px;padding:9px 12px;box-shadow:var(--shadow);font:800 15px Manrope;color:#1b1a17;display:flex;align-items:center}
.sidebar-logo-img{height:20px;display:block}
.nav{padding:6px 12px 4px;display:flex;flex-direction:column;gap:2px}
.nav-btn,.proj-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:9px;cursor:pointer;font:700 13px Manrope;text-align:left;background:transparent;color:var(--text)}
.nav-btn.active{background:var(--solid-bg);color:var(--solid-text)}
.nav-icon{display:flex;width:18px;justify-content:center}
.proj-heading{padding:16px 20px 6px;font:700 10px Manrope;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;justify-content:space-between}
.proj-list{padding:0 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}
.proj-btn{font:600 12.5px Manrope;color:var(--muted)}
.proj-btn.active{background:var(--panel2);color:var(--text);font-weight:700}
.proj-dot{width:9px;height:9px;border-radius:3px;flex:none}
.project-icon-img{width:22px;height:22px;border-radius:6px;flex:none}
.proj-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-count{font:600 10px Manrope;color:var(--faint)}
.new-project-btn{display:flex;align-items:center;gap:9px;padding:9px 12px;border:none;background:transparent;color:var(--faint);font:600 12.5px Manrope;cursor:pointer;border-radius:9px}
.sidebar-footer{padding:12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:9px}
.avatar-round{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#f5a623,#e8232b);display:flex;align-items:center;justify-content:center;color:#fff;font:700 14px Manrope;flex:none}
.avatar-btn{border:none;background:transparent;padding:0;cursor:pointer;border-radius:50%;flex:none}
.photo-picker{display:flex;align-items:center;gap:14px;margin-bottom:4px}
.photo-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;color:#fff;display:flex;align-items:center;justify-content:center;font:700 20px Manrope}
.photo-preview-empty{background:var(--panel2)}
.footer-name{font:700 12px Manrope;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.footer-name-btn{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text);cursor:pointer;padding:0;font:700 12px Manrope;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.footer-org{font:500 10.5px Manrope;color:var(--muted)}
.theme-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}

/* ---- main ---- */
.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;overflow-y:auto}
.topbar{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:16px 28px;display:flex;align-items:center;gap:16px}
.topbar-title-row{display:flex;align-items:center;gap:9px}
.head-dot{width:11px;height:11px;border-radius:4px}
.topbar-date-badge{font:700 11px Manrope;color:var(--muted);background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;margin-left:2px}
.topbar h1{margin:0;font:800 21px/1.1 Manrope;letter-spacing:-.01em}
.topbar-subtitle{font:500 12.5px Manrope;color:var(--muted);margin-top:3px}
.search-box{display:flex;align-items:center;border:1.5px solid var(--border);background:var(--panel);border-radius:10px;padding:8px 11px;gap:8px;width:210px;color:var(--faint);font:500 12.5px Manrope}
.new-task-btn{display:flex;align-items:center;gap:7px;background:var(--solid-bg);color:var(--solid-text);border:none;border-radius:10px;padding:11px 16px;font:700 13px Manrope;cursor:pointer;box-shadow:var(--shadow)}
.content{padding:26px 28px 60px;flex:1}

/* ---- kpis / hub ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px}
.kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.kpi-label{font:500 11.5px Manrope;color:var(--muted)}
.kpi-value{font:800 27px/1.1 Manrope;letter-spacing:-.02em;margin-top:6px}
.kpi-hint{font:600 11px Manrope;margin-top:4px}
.section-heading{margin:0 0 14px;font:800 15px Manrope}
.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.hub-card{text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;width:100%}
.hub-card-head{display:flex;align-items:center;gap:11px}
.hub-card-dot{width:13px;height:13px;border-radius:5px}
.hub-card-name{font:800 17px Manrope;letter-spacing:-.01em}
.status-badge{margin-left:auto;font:700 10px Manrope;padding:3px 10px;border-radius:20px}
.hub-stats{display:flex;gap:22px}
.hub-stat-value{font:800 19px Manrope}
.hub-stat-label{font:500 10.5px Manrope;color:var(--muted)}
.progress-row{display:flex;justify-content:space-between;font:600 10.5px Manrope;color:var(--muted);margin-bottom:6px}
.progress-track{height:7px;background:var(--panel2);border-radius:5px;overflow:hidden}
.progress-fill{height:100%;border-radius:5px}
.dept-tags{display:flex;gap:6px;flex-wrap:wrap}
.dept-tag{font:600 10.5px Manrope;padding:3px 9px;border-radius:20px;background:var(--panel2);color:var(--muted);display:flex;align-items:center;gap:5px}
.dept-tag-dot{width:6px;height:6px;border-radius:50%}

/* ---- project tabs ---- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:22px}
.tab-btn{padding:11px 15px;border:none;background:transparent;cursor:pointer;font:700 13px Manrope;border-bottom:2.5px solid transparent;color:var(--muted);margin-bottom:-1px}
.tab-btn.active{border-bottom-color:#f5a623;color:var(--text)}

/* ---- dept groups / task cards ---- */
.dept-groups{display:flex;flex-direction:column;gap:14px}
.dept-section{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.dept-section-head{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--border)}
.dept-section-dot{width:9px;height:9px;border-radius:3px}
.dept-section-name{font:800 13.5px Manrope}
.dept-section-count{font:600 10.5px Manrope;color:var(--muted);background:var(--panel2);padding:2px 8px;border-radius:20px}
.task-grid{padding:14px 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.task-card{background:var(--panel3);border:1px solid var(--border);border-left:3px solid transparent;border-radius:10px;padding:12px 13px;display:flex;flex-direction:column;gap:9px}
.status-pill{border:1px solid;border-radius:20px;padding:3px 10px;font:700 10px Manrope;cursor:pointer;align-self:flex-start;white-space:nowrap;background:none}
.st-todo{background:var(--panel2);color:var(--muted);border-color:var(--border)}
.st-prog{background:rgba(245,166,35,.16);color:#c8871a;border-color:rgba(245,166,35,.4)}
.st-done{background:rgba(47,158,107,.14);color:#2f9e6b;border-color:rgba(47,158,107,.35)}
.task-title{font:700 13px/1.35 Manrope}
.task-meta{display:flex;align-items:center;gap:7px;font:600 10.5px Manrope;color:var(--muted)}
.task-avatar{width:26px;height:26px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font:700 11px Manrope;flex:none}
.team-avatar{width:44px;height:44px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font:700 16px Manrope;flex:none}
.task-meta-right{margin-left:auto;background:var(--panel2);padding:2px 7px;border-radius:5px}
.task-meta-files{margin-left:auto;color:var(--faint)}
.task-project-tag{margin-left:auto;font:700 9.5px Manrope;color:var(--muted);display:flex;align-items:center;gap:4px}
.daily-card-project-tag{font:700 9.5px Manrope;color:var(--muted);display:flex;align-items:center;gap:4px}
.task-expand-btn{border:none;background:transparent;color:var(--faint);cursor:pointer;padding:0 2px;font-size:10px;flex:none;display:flex;align-items:center}
.task-title-toggle{cursor:pointer}
.task-expanded-meta{display:flex;flex-wrap:wrap;gap:6px}
.task-expanded-chip{display:inline-flex;align-items:center;gap:5px;font:700 10px Manrope;color:var(--muted);background:var(--panel2);border-radius:6px;padding:3px 8px}
.delete-btn{border:none;background:transparent;color:var(--faint);cursor:pointer;padding:3px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex:none}
.delete-btn:hover{color:#e8232b;background:rgba(232,35,43,.1)}
.upcoming-row{grid-template-columns:2fr .9fr .8fr .8fr .4fr !important}
.task-project-dot{width:6px;height:6px;border-radius:2px}

/* ---- weekly kanban ---- */
.status-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.status-col{background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:13px;min-height:200px}
.status-col-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:0 3px}
.status-col-dot{width:8px;height:8px;border-radius:50%}
.status-col-name{font:800 12.5px Manrope}
.status-col-count{margin-left:auto;font:700 11px Manrope;color:var(--muted)}
.status-col-tasks{display:flex;flex-direction:column;gap:10px}
.kanban-card{background:var(--panel);border:1px solid var(--border);border-left:3px solid transparent;border-radius:10px;padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.kanban-title{font:700 12.5px/1.35 Manrope}
.kanban-meta{display:flex;align-items:center;gap:7px;font:600 10px Manrope;color:var(--muted)}
.kanban-dept-dot{width:6px;height:6px;border-radius:50%}
.kanban-avatar{margin-left:auto;width:24px;height:24px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font:700 10px Manrope}

/* ---- daily board: rail + kanban (wireframe 1b) ---- */
.daily-board-layout{display:flex;gap:20px;align-items:flex-start}
.daily-rail{flex:none;width:200px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow);position:sticky;top:0}
.daily-scope-toggle{display:flex;background:var(--panel2);border-radius:9px;padding:3px;gap:2px;margin-bottom:16px}
.scope-btn{flex:1;border:none;background:transparent;padding:7px 0;border-radius:7px;font:700 11.5px Manrope;color:var(--muted);cursor:pointer}
.scope-btn.active{background:var(--solid-bg);color:var(--solid-text)}
.daily-rail-heading{font:700 10px Manrope;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.daily-rail-row{display:flex;align-items:center;gap:8px;padding:6px 2px;cursor:pointer;font:600 12px Manrope}
.daily-rail-dot{width:8px;height:8px;border-radius:3px;flex:none}
.daily-rail-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.daily-rail-count{font:700 10.5px Manrope;color:var(--faint)}
.daily-date-nav{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.daily-date-input{flex:1;padding:7px 8px;font:600 12px Manrope}
.daily-date-step{flex:none;width:28px;padding:7px 0;font:700 14px Manrope}
.daily-today-btn{width:100%;border:1.5px dashed var(--border);background:transparent;color:var(--muted);padding:6px 0;border-radius:7px;font:700 11px Manrope;cursor:pointer;margin-bottom:2px}
.daily-member-select{margin-bottom:16px;font:600 12px Manrope}
.report-list{flex:1;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.report-summary{padding:14px 18px;font:700 12px Manrope;color:var(--muted);border-bottom:1px solid var(--border)}
.report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border)}
.report-row:last-child{border-bottom:none}
.report-row-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.report-row-title{font:700 13.5px Manrope;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report-row-meta{display:flex;align-items:center;gap:6px;font:600 11px Manrope;color:var(--faint)}
.report-row-side{flex:none;display:flex;align-items:center;gap:10px}
.report-row-date{font:600 11px Manrope;color:var(--muted);white-space:nowrap}
.daily-board-layout .status-columns{flex:1;min-width:0}
.daily-col-dept-head{display:flex;align-items:center;gap:6px;font:800 10px Manrope;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:6px 2px 2px;margin-top:2px}
.daily-col-dept-head:first-child{margin-top:0}
.daily-col-dept-dot{width:6px;height:6px;border-radius:50%;flex:none}
.daily-card-check{margin-left:auto;color:#2f9e6b;font-weight:800}
.daily-card-time{margin-left:auto;color:var(--faint)}

/* ---- upcoming table ---- */
.table-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow-x:auto}

/* ---- global join link panel ---- */
.join-info-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px}
.join-info-head{display:flex;align-items:flex-start;gap:14px;justify-content:space-between;margin-bottom:12px}
.join-info-title{font:800 14px Manrope}
.join-info-sub{font:500 11.5px/1.5 Manrope;color:var(--muted);margin-top:3px;max-width:520px}
.join-info-fields{display:flex;gap:16px;flex-wrap:wrap}
.join-info-fields .field{flex:1;min-width:220px}
.table-row{display:grid;grid-template-columns:2fr .9fr .8fr .8fr;gap:12px;padding:14px 18px;border-top:1px solid var(--border);align-items:center;font:600 12.5px Manrope}
.table-row.head{padding:12px 18px;background:var(--panel2);font:700 10px Manrope;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-top:none}
.table-title{font-weight:700}
.table-dept{display:flex;align-items:center;gap:6px;color:var(--muted)}
.table-dept-dot{width:7px;height:7px;border-radius:50%}
.table-version{color:var(--muted)}

/* ---- releases timeline ---- */
.timeline{position:relative;padding-left:8px}
.timeline-item{display:flex;gap:18px;padding-bottom:22px;position:relative}
.timeline-version{flex:none;width:54px;text-align:right;font:800 16px Manrope}
.timeline-rail{flex:none;display:flex;flex-direction:column;align-items:center}
.timeline-dot{width:13px;height:13px;border-radius:50%;border:3px solid var(--bg);z-index:1}
.timeline-line{flex:1;width:2px;background:var(--border)}
.timeline-card{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:15px 17px;box-shadow:var(--shadow);margin-bottom:2px}
.timeline-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.timeline-date{font:700 12.5px Manrope}
.platform-chip{font:700 9.5px Manrope;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:20px;background:var(--panel2);color:var(--muted)}
.timeline-owner{margin-left:auto;font:600 11px Manrope;color:var(--muted)}
.timeline-notes{font:500 12.5px/1.5 Manrope;color:var(--text)}
.timeline-highlights{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}
.highlight-chip{font:600 10.5px Manrope;padding:3px 9px;border-radius:6px;background:var(--panel2);color:var(--muted)}

/* ---- global release table ---- */
.release-table-row{display:grid;grid-template-columns:.7fr .9fr 1fr .9fr 2fr;gap:12px;padding:15px 20px;border-top:1px solid var(--border);align-items:center}
.release-table-row.admin{grid-template-columns:.7fr .9fr 1fr .9fr 2fr .4fr}
.release-table-row.head{padding:12px 20px;background:var(--panel2);font:700 10px Manrope;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-top:none}
.release-version{font:800 15px Manrope}
.release-project{display:flex;align-items:center;gap:7px;font:700 12px Manrope}
.release-project-dot{width:8px;height:8px;border-radius:3px}
.release-date{font:600 12px Manrope;color:var(--muted)}
.release-platforms{display:flex;gap:5px;flex-wrap:wrap}
.release-platform-chip{font:700 9px Manrope;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:20px;background:var(--panel2);color:var(--muted);border:1px solid var(--border)}
.release-notes{font:500 12px/1.45 Manrope;color:var(--muted)}
.release-notes .owner{color:var(--faint)}

.empty-state{padding:40px;text-align:center;color:var(--muted);font:600 13px Manrope}

/* ---- team ---- */
.team-row{display:grid;grid-template-columns:1.2fr 1.4fr .8fr;gap:12px;padding:14px 18px;border-top:1px solid var(--border);align-items:center;font:600 12.5px Manrope}
.team-row.admin{grid-template-columns:1.2fr 1.4fr .8fr .4fr}
.team-row.head{padding:12px 18px;background:var(--panel2);font:700 10px Manrope;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-top:none}
.team-name{display:flex;align-items:center;gap:9px;font-weight:700}
.team-email{color:var(--muted)}
.role-select{padding:7px 10px;font:700 11.5px Manrope;width:auto;min-width:120px}
.role-badge{font:700 10.5px Manrope;padding:3px 10px;border-radius:20px;background:var(--panel2);color:var(--muted)}
.you-tag{font:700 9px Manrope;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}

/* ---- modal ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(15,13,9,.5);backdrop-filter:blur(3px);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:64px 20px;overflow-y:auto}
.modal{width:480px;max-width:100%;background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.35);padding:24px 26px;color:var(--text)}
.modal-head{display:flex;align-items:center;margin-bottom:20px}
.modal-head h2{margin:0;font:800 18px Manrope}
.modal-close{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--muted);cursor:pointer;font-size:15px}
.modal-body{display:flex;flex-direction:column;gap:16px}
.field label{display:block;font:700 10.5px Manrope;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field .required{color:#e8232b}
.chip-row{display:flex;gap:7px;flex-wrap:wrap}
.chip-btn{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;cursor:pointer;font:700 12px Manrope;border:1.5px solid var(--border);background:var(--panel);color:var(--text)}
.chip-btn.selected{border-color:var(--solid-bg);background:var(--solid-bg);color:var(--solid-text)}
.chip-dot{width:8px;height:8px;border-radius:3px}
.tb-in{width:100%;border:1.5px solid var(--border);background:var(--panel3);color:var(--text);border-radius:9px;padding:10px 12px;font:500 13px Manrope;outline:none}
.tb-in:focus{border-color:#f5a623}
.field-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dropzone{border:1.5px dashed var(--border);border-radius:10px;padding:16px;text-align:center;font:600 11.5px Manrope;color:var(--faint)}
.form-error{font:600 11.5px Manrope;color:#e8232b}
.link-btn{border:none;background:transparent;color:#c8871a;font:600 11.5px Manrope;cursor:pointer;padding:0;text-decoration:underline}
.link-btn:hover{color:#e8232b}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:2px}
.btn-secondary{padding:11px 18px;border-radius:10px;border:1.5px solid var(--border);background:var(--panel);color:var(--text);font:700 13px Manrope;cursor:pointer}
.btn-primary{padding:11px 20px;border-radius:10px;border:none;background:var(--solid-bg);color:var(--solid-text);font:700 13px Manrope;cursor:pointer}

.loading-state{padding:60px;text-align:center;color:var(--muted);font:700 14px Manrope}

/* ---- weekly plan ---- */
.week-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:22px}
.week-nav-range{font:800 15px Manrope;min-width:220px;text-align:center}
.plan-cards{display:flex;flex-direction:column;gap:14px}
.plan-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.plan-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.plan-project-name{font:800 15px Manrope}
.plan-version{font:700 10.5px Manrope;color:var(--muted);background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:2px 7px}
.plan-target-date{margin-left:auto;font:600 12px Manrope;color:var(--muted)}
.plan-card-actions{display:flex;gap:4px;margin-left:8px}
.plan-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.plan-item{font:600 13px Manrope;color:var(--text);padding-left:2px}
.plan-item.starred{color:var(--muted);font-style:italic;display:flex;align-items:center;gap:6px}
.plan-star{color:#f5a623;font-size:11px}
.plan-admin-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.plan-textarea{resize:vertical;font-family:Manrope,sans-serif;line-height:1.5}
input[type="color"].tb-in{cursor:pointer}
.btn-secondary:disabled{opacity:.4;cursor:not-allowed}

/* ---- task detail additions ---- */
span.status-pill{cursor:default}
.task-desc{font:500 12px/1.45 Manrope;color:var(--muted);white-space:pre-wrap}
.task-dates{font:600 10.5px Manrope;color:var(--faint)}
.field-hint{font:500 11px Manrope;color:var(--muted);margin-top:5px}

/* ---- danger button / project admin bar ---- */
.btn-danger{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:9px;border:1.5px solid var(--border);background:var(--panel);color:#e8232b;font:700 12px Manrope;cursor:pointer}
.btn-danger:hover{border-color:#e8232b}
.project-admin-bar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:14px}

/* ---- completed day-by-day log ---- */
.completed-log{display:flex;flex-direction:column;gap:14px}
.log-day{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.log-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.log-day-date{font:800 13px Manrope}
.log-day-count{font:700 10px Manrope;color:#2f9e6b;background:color-mix(in srgb,#2f9e6b 14%,transparent);padding:3px 9px;border-radius:20px}
.log-member-row{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-top:1px solid var(--border)}
.log-member-row:first-of-type{border-top:none}
.log-avatar{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font:700 12px Manrope}
.log-member-name{font:700 12px Manrope;min-width:96px;padding-top:3px}
.log-tasks{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.log-task{display:inline-flex;align-items:center;gap:6px;font:600 11.5px Manrope;color:var(--text);background:var(--panel2);border-radius:7px;padding:4px 9px}
.log-task-dot{width:8px;height:8px;border-radius:3px;flex:none}

/* ---- functional search box ---- */
.search-input{border:none;background:transparent;outline:none;color:var(--text);font:500 12.5px Manrope;flex:1;min-width:0;padding:0}
.search-input::placeholder{color:var(--faint)}
.search-clear-btn{border:none;background:transparent;color:var(--faint);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;flex:none;font-size:11px}
.search-clear-btn:hover{color:#e8232b}

/* ---- task card edit/delete action group ---- */
.task-card-actions{display:flex;align-items:center;gap:2px}

/* ---- week grouping (project tasks tab + hub weekly overview) ---- */
.week-current-tag{font:700 9.5px Manrope;color:#2f9e6b;background:color-mix(in srgb,#2f9e6b 14%,transparent);padding:2px 7px;border-radius:20px;margin-left:6px;vertical-align:middle}
.section-heading-sub{font:600 11.5px Manrope;color:var(--muted);margin-left:8px}
.week-overview-table{display:flex;flex-direction:column;gap:8px;margin-bottom:26px}
.week-overview-row{display:flex;align-items:center;gap:16px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 16px;box-shadow:var(--shadow);cursor:pointer;text-align:left;font-family:inherit}
.week-overview-row:hover{border-color:var(--faint)}
.week-overview-project{display:flex;align-items:center;gap:8px;font:800 13px Manrope;flex:1;min-width:0}
.week-overview-stat{font:700 11.5px Manrope;color:var(--muted);white-space:nowrap}
.week-overview-stat.todo{color:#a29d92}
.week-overview-stat.prog{color:#c8871a}
.week-overview-stat.done{color:#2f9e6b}
.week-overview-total{font:700 11.5px Manrope;color:var(--text);background:var(--panel2);padding:3px 9px;border-radius:20px;flex:none}

/* ---- weekly release board -> project link ---- */
.plan-project-link{display:flex;align-items:center;gap:10px;border:none;background:transparent;padding:0;cursor:pointer;font-family:inherit}
.plan-project-link:hover .plan-project-name{text-decoration:underline}

/* ================= Mobile ================= */
@media (max-width:860px){
  .hamburger-btn{display:flex}
  /* Sidebar becomes an off-canvas drawer instead of a permanent 244px column
     that used to eat most of a phone's width. */
  .sidebar{position:fixed;left:0;top:0;z-index:40;transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow)}
  .sidebar.mobile-open{transform:translateX(0)}
  .mobile-nav-overlay{display:block;position:fixed;inset:0;background:rgba(10,9,7,.45);z-index:39}

  .topbar{flex-wrap:wrap;padding:12px 16px;row-gap:10px}
  .search-box{width:auto;flex:1 1 160px}
  .content{padding:18px 14px 60px}

  .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .hub-grid{grid-template-columns:1fr}
  .status-columns{grid-template-columns:1fr}

  /* Daily Board's own department-filter rail stacks above the board instead
     of sitting in a fixed 200px column. */
  .daily-board-layout{flex-direction:column}
  .daily-rail{width:100%;position:static}

  /* Dense grid-based tables (Team, Releases, Upcoming) keep their column
     layout but scroll horizontally inside their rounded card instead of
     squeezing illegibly into a narrow screen. */
  .team-row,.release-table-row,.upcoming-row{min-width:560px}

  .week-overview-row{flex-wrap:wrap;row-gap:6px}
}

@media (max-width:560px){
  .modal-overlay{padding:20px 12px}
  .field-row-2{grid-template-columns:1fr}
}

/* ---- weekly target ---- */
.wt-week-nav{flex-wrap:wrap}
.wt-week-sub{font:600 12px Manrope;color:var(--muted);margin-top:2px;display:flex;align-items:center;justify-content:center;gap:6px}
.wt-jump{width:auto;padding:7px 12px;margin:0}
.wt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.wt-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wt-member-select{width:auto;min-width:150px;padding:9px 11px;font:600 12.5px Manrope}
.wt-carry-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--accent-soft);border:1px solid rgba(37,99,235,.35);border-radius:12px;padding:12px 16px;margin-bottom:18px;font:600 12.5px Manrope;color:var(--text)}
.wt-btn-sm{padding:8px 13px;font-size:12px}
.wt-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wt-card-stats{margin-left:auto;display:flex;align-items:center;gap:12px;font:600 11.5px Manrope;color:var(--muted);flex-wrap:wrap}
.wt-card-stats b{font-size:14px}
.wt-release-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:var(--panel2);border-radius:9px;margin-bottom:12px;font:600 12.5px Manrope}
.wt-release-label{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.wt-release-text{flex:1;min-width:0}
.wt-release-empty{flex:1;color:var(--faint);font-style:italic}
.wt-sep{color:var(--faint);margin:0 7px}
.wt-group{border-top:1px solid var(--border);padding-top:10px;margin-top:10px}
.wt-group:first-of-type{border-top:none;padding-top:0;margin-top:0}
.wt-group-head{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.wt-group-name{font:800 13px Manrope}
.wt-group-stat{font:600 11px Manrope;color:var(--muted)}
.wt-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:9px}
.wt-row:hover{background:var(--panel3)}
.wt-row-done .wt-row-title{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}
.wt-row-dropped .wt-row-title{color:var(--faint);text-decoration:line-through}
.wt-num{width:22px;text-align:right;font:700 11px Manrope;color:var(--faint);flex:none}
.wt-row .status-pill{min-width:70px;text-align:center;flex:none}
.wt-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wt-row-title{font:700 13px/1.35 Manrope}
.wt-row-note{font:500 11.5px/1.4 Manrope;color:var(--muted);font-style:italic}
.wt-row-meta{font:600 11px Manrope;color:var(--muted)}
.wt-tag{font:700 9.5px Manrope;color:#c8871a;background:rgba(245,166,35,.14);border-radius:20px;padding:2px 7px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.wt-tag-unplanned{color:var(--muted);background:var(--panel2)}
.wt-days{font:700 11px Manrope;color:var(--muted);background:var(--panel2);padding:3px 8px;border-radius:6px;white-space:nowrap;flex:none}
.wt-days.over{color:#e8232b;background:rgba(232,35,43,.1)}
.wt-st-open{background:var(--panel2);color:var(--muted);border-color:var(--border)}
.wt-st-done{background:rgba(47,158,107,.14);color:#2f9e6b;border-color:rgba(47,158,107,.35)}
.wt-st-carried{background:rgba(245,166,35,.16);color:#c8871a;border-color:rgba(245,166,35,.4)}
.wt-st-blocked{background:rgba(232,35,43,.12);color:#e8232b;border-color:rgba(232,35,43,.4)}
.wt-st-dropped{background:transparent;color:var(--faint);border-color:var(--border);text-decoration:line-through}
.wt-empty{padding:18px 6px;color:var(--muted);font:600 12.5px Manrope}
.wt-risks{margin-top:14px;background:rgba(232,35,43,.07);border:1px solid rgba(232,35,43,.25);border-radius:10px;padding:11px 14px}
.wt-risks-head{font:800 11px Manrope;letter-spacing:.04em;text-transform:uppercase;color:#e8232b;margin-bottom:6px}
.wt-risk-line{font:600 12.5px/1.5 Manrope}
.wt-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.wt-rollup-row{display:grid;grid-template-columns:1.3fr 1.4fr .7fr 1fr 1fr 1.6fr;gap:12px;padding:13px 18px;border-top:1px solid var(--border);align-items:center;width:100%;background:transparent;border-left:none;border-right:none;border-bottom:none;cursor:pointer;text-align:left;font:600 12.5px Manrope;color:var(--text)}
.wt-rollup-row:hover{background:var(--panel3)}
.wt-rollup-row.head{padding:11px 18px;background:var(--panel2);font:700 10px Manrope;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-top:none;cursor:default}
.wt-rollup-count{font:800 14px Manrope}
.wt-rollup-bar{display:flex;align-items:center;gap:8px}
.wt-rollup-bar .progress-track{flex:1;display:block}
.wt-rollup-bar .progress-fill{display:block}
.wt-rollup-flags{display:flex;gap:8px;flex-wrap:wrap}
.wt-flag{font:700 11px Manrope;color:var(--muted);white-space:nowrap}
.wt-result-task{font:700 14px Manrope;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--panel2);border-radius:9px}
.wt-check{display:flex;align-items:center;gap:9px;font:600 12.5px Manrope;cursor:pointer}
.wt-report-modal{width:560px}
.wt-report-text{font:500 12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;white-space:pre-wrap;overflow:auto}
.wt-carry-list{display:flex;flex-direction:column;gap:4px;max-height:50vh;overflow-y:auto}
.wt-carry-row{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;border:1px solid var(--border)}
.wt-carry-row:hover{background:var(--panel3)}
.wt-carry-row.disabled{opacity:.5;cursor:not-allowed}
.wt-carry-row input{margin-top:3px}
.wt-carry-main{display:flex;flex-direction:column;gap:3px;min-width:0}
@media (max-width:860px){
  .wt-row{flex-wrap:wrap}
  .wt-row-main{flex-basis:100%;order:5;padding-left:32px}
  .wt-rollup-row{min-width:720px}
  .wt-card-stats{margin-left:0}
}

/* ---- weekly target: report builder + printable document ---- */
.wtd-types{display:flex;flex-direction:column;gap:8px}
.wtd-type{display:flex;align-items:center;gap:12px;text-align:left;padding:11px 13px;border-radius:10px;border:1.5px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font:600 12.5px/1.35 Manrope}
.wtd-type.selected{border-color:var(--accent);background:var(--accent-soft)}
.wtd-type-icon{font-size:20px;flex:none}
.wtd-type-desc{font-weight:500;color:var(--muted);font-size:11.5px}
.wtd-week-pill{display:inline-block;font:700 12.5px Manrope;background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:6px 12px}
.wtd-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.wtd-toolbar-title{font:800 14px Manrope;flex:1;min-width:0}
.wtd-toolbar-actions{display:flex;gap:8px}
.wtd-paper-wrap{overflow-x:auto;padding-bottom:20px}
/* The document is always "paper": light colours regardless of app theme, fixed A4-ish width so screen, PDF and print match. */
.wt-doc{width:733px;background:#fff;color:#1b1a17;font:500 11.5px/1.45 Manrope,system-ui,sans-serif;box-shadow:var(--shadow);border:1px solid var(--border);margin:0 auto}
.wtd-page{padding:28px 30px 30px;border-bottom:2px dashed #e7e3db;break-after:page;page-break-after:always}
.wtd-table tr,.wtd-tile,.wtd-kv,.wtd-list li,.wtd-statline,.wtd-team-head{break-inside:avoid;page-break-inside:avoid}
.wtd-page:last-child{border-bottom:none;break-after:auto;page-break-after:auto}
.wtd-header{display:flex;align-items:flex-start;gap:18px;padding-bottom:14px;border-bottom:2px solid #1b1a17;margin-bottom:18px}
.wtd-brand{display:flex;align-items:center;gap:9px;flex:none}
.wtd-logo{height:22px;display:block}
.wtd-company{font:800 12px Manrope}
.wtd-title-block{flex:1;min-width:0}
.wtd-title{margin:0;font:800 22px/1.1 Manrope;letter-spacing:-.01em}
.wtd-subtitle{font:700 12.5px Manrope;color:#6f6b62;margin-top:4px}
.wtd-meta{text-align:right;font:500 10.5px/1.5 Manrope;color:#6f6b62;flex:none}
.wtd-h2{margin:22px 0 10px;font:800 14px Manrope;display:flex;align-items:center;gap:8px}
.wtd-h2-first{margin-top:0}
.wtd-count{font:800 10.5px Manrope;background:#f3f1ec;color:#6f6b62;border-radius:20px;padding:2px 8px}
.wtd-count.hot{background:rgba(232,35,43,.12);color:#e8232b}
.wtd-count.warm{background:rgba(245,166,35,.18);color:#c8871a}
.wtd-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}
.wtd-tile{border:1px solid #e7e3db;border-radius:10px;padding:11px 13px;background:#faf9f6}
.wtd-tile-label{font:600 10.5px Manrope;color:#6f6b62}
.wtd-tile-value{font:800 22px/1.1 Manrope;margin-top:4px;letter-spacing:-.01em}
.wtd-tile-sub{font:600 10px Manrope;margin-top:4px}
.wtd-muted{color:#8a857b;font-weight:500}
.wtd-small{font-size:10px}
.wtd-over{color:#e8232b;font-weight:700}
.wtd-num{text-align:center;white-space:nowrap}
.wtd-note{color:#4f4b44;font-style:italic}
.wtd-table{width:100%;border-collapse:collapse;font:500 11px/1.4 Manrope;margin-bottom:6px}
.wtd-table th{text-align:left;font:700 9.5px Manrope;letter-spacing:.05em;text-transform:uppercase;color:#6f6b62;background:#f3f1ec;padding:7px 8px;border-bottom:1px solid #e7e3db}
.wtd-table th.wtd-num,.wtd-table td.wtd-num{text-align:center}
.wtd-table td{padding:7px 8px;border-bottom:1px solid #eeebe4;vertical-align:top}
.wtd-table tr.wtd-group-row td{background:#faf9f6;padding:6px 8px;font-size:11px;border-bottom:1px solid #e7e3db}
.wtd-rag{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.wtd-bar{display:inline-block;width:70px;height:7px;background:#ece9e2;border-radius:4px;overflow:hidden;vertical-align:middle;margin-right:6px}
.wtd-bar-fill{display:block;height:100%;border-radius:4px}
.wtd-delta{font:700 10px Manrope;color:#8a857b}
.wtd-delta.up{color:#2f9e6b}
.wtd-delta.down{color:#e8232b}
.wtd-chip{display:inline-block;font:700 9.5px Manrope;padding:2px 8px;border-radius:20px;border:1px solid;white-space:nowrap}
.wtd-chip-planned{background:#f3f1ec;color:#6f6b62;border-color:#e7e3db}
.wtd-chip-done{background:rgba(47,158,107,.14);color:#2f9e6b;border-color:rgba(47,158,107,.4)}
.wtd-chip-carried{background:rgba(245,166,35,.16);color:#c8871a;border-color:rgba(245,166,35,.45)}
.wtd-chip-blocked{background:rgba(232,35,43,.12);color:#e8232b;border-color:rgba(232,35,43,.4)}
.wtd-chip-dropped{background:#fff;color:#a29d92;border-color:#e7e3db;text-decoration:line-through}
.wtd-ver{font:700 9.5px Manrope;color:#6f6b62;background:#f3f1ec;border:1px solid #e7e3db;border-radius:5px;padding:1px 5px;white-space:nowrap}
.wtd-tag{font:700 9px Manrope;color:#c8871a;background:rgba(245,166,35,.14);border-radius:20px;padding:1px 6px;white-space:nowrap}
.wtd-tag-grey{color:#6f6b62;background:#f3f1ec}
.wtd-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font:500 11.5px/1.45 Manrope}
.wtd-team-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.wtd-team-dot{width:12px;height:12px;border-radius:4px;flex:none;display:inline-block}
.wtd-team-dot-sm{width:7px;height:7px;border-radius:2px;margin-right:6px;vertical-align:middle}
.wtd-team-name{margin:0;font:800 17px Manrope}
.wtd-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 11px Manrope;flex:none}
.wtd-statline{display:flex;flex-wrap:wrap;gap:6px 16px;font:600 11px Manrope;color:#6f6b62;padding:9px 12px;background:#faf9f6;border:1px solid #e7e3db;border-radius:9px;margin-bottom:10px}
.wtd-statline b{color:#1b1a17}
.wtd-statline-pct{margin-left:auto;display:flex;align-items:center;gap:6px}
.wtd-kv{display:flex;gap:12px;margin-bottom:10px;font:600 11.5px Manrope}
.wtd-kv-label{font:700 9.5px Manrope;letter-spacing:.05em;text-transform:uppercase;color:#6f6b62;margin-bottom:4px;white-space:nowrap}
.wtd-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px}
@media (max-width:860px){
  .wtd-toolbar-title{flex-basis:100%}
}
@media print{
  @page{size:A4;margin:10mm}
  html,body,#app,#app>div{height:auto!important;min-height:0!important;overflow:visible!important;display:block!important;background:#fff!important}
  .sidebar,.topbar,.wtd-toolbar,.mobile-nav-overlay,.modal-overlay{display:none!important}
  .main{height:auto!important;overflow:visible!important;display:block!important}
  .content{padding:0!important}
  .wtd-paper-wrap{overflow:visible!important;padding:0!important}
  .wt-doc{width:auto!important;box-shadow:none!important;border:none!important;margin:0!important}
  .wtd-page{padding:0 0 10mm!important;border-bottom:none!important}
  .wtd-table tr,.wtd-tile,.wtd-kv,li{break-inside:avoid;page-break-inside:avoid}
}

/* ---- weekly target hub card ---- */
.wt-hub-card{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);margin-bottom:26px;display:flex;flex-direction:column;gap:12px}
.wt-hub-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wt-hub-title{font:800 15px Manrope}
.wt-hub-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.wt-hub-stats{display:flex;gap:26px;flex-wrap:wrap}
.wt-hub-stat-value{font:800 22px/1.1 Manrope;letter-spacing:-.01em}
.wt-hub-teams{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wt-hub-team{display:inline-flex;align-items:center;gap:6px;font:600 11.5px Manrope;color:var(--text);background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:4px 10px;cursor:pointer}
.wt-hub-team:hover{border-color:var(--faint)}
.wt-hub-rag{width:8px;height:8px;border-radius:50%;flex:none}
.wt-hub-note{font:600 11px Manrope;color:#c8871a}
.wt-hub-empty{font:600 12.5px Manrope;color:var(--muted)}
@media (max-width:860px){.wt-hub-actions{margin-left:0}}

/* ---- report: target-list layout + department sections ---- */
.wtd-target-banner{font:700 11.5px Manrope;letter-spacing:.03em;background:#eef2ff;color:#1e3a8a;border:1px solid #c7d2fe;border-radius:8px;padding:7px 12px;margin:4px 0 12px}
.wtd-target{display:flex;flex-direction:column;gap:14px}
.wtd-target-person{break-inside:avoid;page-break-inside:avoid}
.wtd-target-name{font:800 13px Manrope;margin-bottom:5px}
.wtd-target-items{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font:600 12px/1.45 Manrope}
.wtd-target-items li::marker{color:#2563eb}
.wtd-dept-badge{font:800 10px Manrope;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#2f6bd6;border-radius:6px;padding:3px 8px}
.wtd-dept-block{padding:14px 0 18px;border-bottom:1px dashed #e7e3db;break-inside:avoid;page-break-inside:avoid}
.wtd-dept-block:last-child{border-bottom:none}
.wtd-dept-block .wtd-team-head{margin-top:4px}

/* ---- weekly target: prominent Add task ---- */
.wt-add-big{background:var(--accent);color:#fff;font:800 15px Manrope;padding:14px 24px;border-radius:12px;gap:9px;box-shadow:0 4px 14px rgba(37,99,235,.35),var(--shadow);transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.wt-add-big:hover{transform:translateY(-1px);background:var(--accent-hover);box-shadow:0 6px 18px rgba(37,99,235,.45),var(--shadow)}
.wt-add-big-plus{font-size:20px;line-height:1;font-weight:800}
.wt-add-card{background:var(--accent);color:#fff;font:800 13.5px Manrope;padding:11px 20px;display:inline-flex;align-items:center;gap:7px}
.wt-add-card:hover{background:var(--accent-hover)}
@media (max-width:860px){.wt-add-big{width:100%;justify-content:center}}

/* ---- report: flowing blocks with highlighted titles + project icons ---- */
.wtd-block{padding:4px 0 18px;margin-bottom:14px;border-bottom:1px dashed #e7e3db}
.wtd-block:last-child{border-bottom:none;margin-bottom:0}
.wtd-block-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#111827;color:#fff;border-left:6px solid #2563eb;border-radius:9px;padding:9px 14px;margin:0 0 11px;break-inside:avoid;page-break-inside:avoid;break-after:avoid;page-break-after:avoid}
.wtd-block-title h2{margin:0;font:800 16px/1.2 Manrope;color:#fff;letter-spacing:-.01em}
.wtd-block-sub{font:600 11px Manrope;color:#d8d3c8;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.wtd-block-proj{display:inline-flex;align-items:center;gap:0}
.wtd-block-title .wtd-avatar{border:2px solid rgba(255,255,255,.35)}
.wtd-block-title .wtd-dept-badge{background:#2563eb;color:#fff}
.wtd-picon{width:24px;height:24px;border-radius:7px;object-fit:cover;flex:none;display:inline-block;vertical-align:middle}
.wtd-picon-sm{width:14px;height:14px;border-radius:4px;margin-right:6px}
.wtd-picon-dot{display:inline-block}
.wtd-nowrap{white-space:nowrap}
.wtd-dept-block{padding:0;border:none}

/* ---- auto-linked URLs in free text ---- */
.text-link{color:#c8871a;text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.text-link:hover{color:#e8232b}
.wt-doc .text-link{color:#1d5fd1}

/* ---- report: numbered target table + clean person headings ---- */
.wtd-target-table td{padding:6px 8px}
.wtd-target-table .wtd-note{margin-top:2px;font-size:10.5px}
.wtd-person{font:800 12px Manrope;color:#111827}
.wtd-group-right{float:right;font:600 10.5px Manrope;color:#6f6b62}
.wtd-table tr.wtd-group-row td{background:#f3f4f6;border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb}
.wtd-block-projs{display:inline-flex;gap:10px;flex-wrap:wrap;margin-left:4px;font:600 11px Manrope;color:#d8d3c8}
.wtd-block-sub::after{content:''}
.wt-doc .text-link{color:#2563eb}
.wtd-tile-value{color:#111827}

/* ---- weekly target: by-department overview ---- */
.wt-dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:24px}
.wt-dept-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.wt-dept-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}
.wt-dept-card.empty{opacity:.6}
.wt-dept-head{display:flex;align-items:center;gap:8px;border:none;background:transparent;padding:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);width:100%}
.wt-dept-name{font:800 14px Manrope}
.wt-dept-stat{font:600 11px Manrope;color:var(--muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt-dept-pct{font:800 14px Manrope;flex:none}
.wt-dept-bar{height:5px}
.wt-dept-people{display:flex;flex-direction:column;gap:2px}
.wt-dept-person{display:flex;align-items:center;gap:8px;border:none;background:transparent;padding:5px 6px;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);width:100%}
.wt-dept-person:hover{background:var(--panel2)}
.wt-dept-person.active{background:var(--accent-soft)}
.wt-dept-avatar{width:22px;height:22px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font:700 9px Manrope;flex:none;object-fit:cover}
.wt-dept-person-name{font:700 12px Manrope;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-dept-flag{font:700 10px Manrope;white-space:nowrap}
.wt-dept-person-count{font:700 11px Manrope;color:var(--muted);white-space:nowrap}
.wt-dept-plus{font:700 9.5px Manrope;color:var(--faint);margin-left:2px}
.wt-dept-mini{width:44px;height:5px;background:var(--panel2);border-radius:3px;overflow:hidden;flex:none;display:inline-block}
.wt-dept-mini span{display:block;height:100%;border-radius:3px}
@media (max-width:860px){.wt-dept-grid{grid-template-columns:1fr}}
.wt-dept-hint{font:600 10px Manrope;color:#c8871a;background:rgba(245,166,35,.14);border-radius:20px;padding:2px 7px;margin-left:6px}

/* ---- team page: search + role filter ---- */
.team-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.team-search{width:300px;max-width:100%}
.team-role-chips{flex:1}
.team-role-chips .chip-btn{padding:6px 11px;font-size:11.5px}
.team-chip-count{font:700 10px Manrope;opacity:.7;margin-left:2px}
.team-result-count{font:600 11.5px Manrope;color:var(--muted);white-space:nowrap}
@media (max-width:860px){.team-search{width:100%}}
.wtd-scope{font:700 11px Manrope;color:#1e3a8a;background:#eef2ff;border:1px solid #c7d2fe;border-radius:20px;padding:2px 9px;margin-left:4px;vertical-align:middle}

/* ---- resources page ---- */
.res-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.res-section{margin-top:6px}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:26px}
.res-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}
.res-card-head{display:flex;align-items:flex-start;gap:8px}
.res-card-title{font:800 15px/1.3 Manrope;flex:1;min-width:0}
.res-desc{font:500 12.5px/1.5 Manrope;color:var(--muted);white-space:pre-wrap;word-break:break-word}
.res-resp{display:flex;align-items:center;gap:8px;font:600 12px Manrope;flex-wrap:wrap}
.res-label{font:700 9.5px Manrope;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-right:2px}
.res-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 9px Manrope;flex:none}
.res-muted{font:500 12px Manrope;color:var(--faint)}
.res-atts{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:10px}
.res-att{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font:600 12px Manrope}
.res-att:hover{background:var(--panel2)}
.res-att-icon{font-size:15px;flex:none;width:20px;text-align:center}
.res-att-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}
.res-att-name:hover{color:var(--accent);text-decoration:underline}
.res-att-meta{font:600 10.5px Manrope;color:var(--faint);white-space:nowrap}
.res-att-btn{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:6px;padding:2px 7px;font-size:12px;text-decoration:none;flex:none}
.res-att-btn:hover{color:var(--accent);border-color:var(--accent)}
.res-add-att{align-self:flex-start;border:1.5px dashed var(--border);background:transparent;color:var(--muted);border-radius:8px;padding:6px 11px;font:700 11.5px Manrope;cursor:pointer;margin-top:4px}
.res-add-att:hover{color:var(--accent);border-color:var(--accent)}
.res-foot{font:500 10.5px Manrope;color:var(--faint)}
.res-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px dashed var(--border);border-radius:10px;padding:22px 16px;text-align:center;font:600 12.5px Manrope;cursor:pointer;background:var(--panel3)}
.res-drop:hover,.res-drop.has-file{border-color:var(--accent);background:var(--accent-soft)}
@media (max-width:860px){.res-grid{grid-template-columns:1fr}}
.field label.res-drop{text-transform:none;letter-spacing:0;font:600 12.5px Manrope;color:var(--text);margin-bottom:0}
.field label.res-drop .res-muted{font-size:11.5px}
