/* Vazirmatn (SIL OFL, licence in assets/fonts/OFL.txt), self-hosted: no CDN. One variable file covers every weight. The
   unicode-range limits it to Persian/Arabic script and ZWNJ, so the browser only downloads it on pages that show such text
   and Latin keeps the system font. */
@font-face{font-family:"Vazirmatn";src:url("fonts/Vazirmatn-VF.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F,U+066A-066C}
/* Tokens: docs/DESIGN_RULES.md section 1. --radius stays 15px until step 9 migrates it to the 10/15 pair. */
:root{--ink:#192521;--ink-soft:#42514c;--muted:#5f6c66;--faint:#93a19a;--line:#e8ece8;--line-strong:#d3dbd5;--paper:#f7f8f5;--white:#fff;--hover:#f1f5f1;--green:#245f4a;--green-deep:#194b3a;--green-pale:#eaf3ed;--mint:#cfe2d5;--amber:#9a5f17;--amber-pale:#fcf2e1;--red:#b24840;--red-pale:#fbefed;--blue:#4a6e83;--blue-pale:#edf4f7;--font:"Vazirmatn",system-ui,-apple-system,"Segoe UI",Roboto,Tahoma,"Noto Sans Arabic",sans-serif;--fs-sm:12px;--lh-sm:16px;--fs-md:14px;--lh-md:20px;--fs-lg:16px;--lh-lg:24px;--fs-xl:20px;--lh-xl:28px;--fs-2xl:26px;--lh-2xl:32px;--fw-regular:400;--fw-medium:500;--fw-bold:650;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--radius-sm:6px;--radius-lg:15px;--shadow:0 12px 35px rgba(26,53,42,.07);--shadow-drawer:-12px 0 48px rgba(20,40,30,.16);--tap:44px;--control:40px;--drawer-w:560px;--radius:15px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:var(--fs-md)/1.55 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:254px;background:#fff;border-right:1px solid var(--line);padding:28px 16px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;font:700 var(--fs-md)/1.1 var(--font);letter-spacing:.11em;padding:0 10px}.brand-mark{width:34px;height:34px;border-radius:11px;background:var(--green);display:grid;place-items:center;color:#fff;font:700 var(--fs-lg) var(--font);letter-spacing:0;box-shadow:0 5px 12px rgba(36,95,74,.2)}.brand-sub{display:block;color:var(--muted);font:600 var(--fs-sm) var(--font);letter-spacing:.17em;margin-top:5px}.workspace-switch{margin:31px 2px 23px;padding:10px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px}.workspace-avatar,.user-avatar{flex:0 0 auto;width:32px;height:32px;border-radius:10px;background:#e9f0e9;color:var(--green);display:grid;place-items:center;font-weight:700}.workspace-switch b,.workspace-switch small{display:block}.workspace-switch b{font-size:var(--fs-sm)}.workspace-switch small,.user-info small{font-size:var(--fs-sm);color:var(--muted);margin-top:1px}.workspace-switch .chevron{margin-left:auto;color:var(--faint)}.main-nav{display:flex;flex-direction:column;gap:4px}.nav-label{padding:0 11px;margin:3px 0 7px;color:var(--muted);font-size:var(--fs-sm);letter-spacing:.16em;font-weight:700}.nav-label-spaced{margin-top:28px}.nav-link{height:42px;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:12px;color:#687771;font-weight:500;transition:background .15s,color .15s}.nav-link:hover{background:#f4f6f3;color:var(--ink)}.nav-link.active{background:var(--green-pale);color:var(--green);font-weight:700}.nav-icon{width:20px;text-align:center;font-size:var(--fs-lg);color:var(--muted)}.active .nav-icon{color:var(--green)}.nav-count{margin-left:auto;border-radius:10px;padding:1px 7px;background:#f0f2ef;color:var(--muted);font-size:var(--fs-sm)}.sidebar-bottom{margin-top:auto}.user-chip{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:16px 4px 0}.user-avatar{border-radius:50%;background:#f0eade;color:#826a42}.user-info{min-width:0;flex:1}.user-info b,.user-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info b{font-size:var(--fs-sm)}.icon-button{border:0;background:transparent;color:var(--muted);border-radius:8px;width:32px;height:32px;font-size:var(--fs-lg)}.icon-button:hover{background:#f1f4f1;color:var(--ink)}.main-content{margin-left:254px;min-height:100vh}.page-wrap{max-width:1400px;margin:0 auto;padding:36px 42px 60px}.welcome-row,.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.welcome-row h1,.page-heading h1{font:700 var(--fs-2xl)/1.25 var(--font);letter-spacing:-.045em;margin:5px 0 6px}.welcome-row .muted,.page-heading .muted{margin:0}.eyebrow{margin:0;color:var(--muted);font-size:var(--fs-sm);letter-spacing:0;font-weight:650}.wave{display:inline-grid;place-items:center;width:28px;height:28px;background:#f4eedf;border-radius:9px;color:#ad8435;font-size:var(--fs-md);vertical-align:3px;margin-left:4px}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border:1px solid transparent;border-radius:9px;font-weight:600;font-size:var(--fs-sm);line-height:1.2;transition:transform .12s,background .12s,border .12s;white-space:nowrap}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:#fff;box-shadow:0 4px 10px rgba(36,95,74,.12)}.button.primary:hover{background:var(--green-deep)}.button.secondary{background:#fff;color:var(--ink-soft);border-color:var(--line)}.button.secondary:hover{border-color:#c9d4cd;background:#fafcf9}.button.quiet{background:transparent;color:var(--muted);border-color:var(--line)}.button.small{padding:8px 11px;font-size:var(--fs-sm)}.button.full{width:100%}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 19px 17px;min-height:116px;position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}.metric-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.metric-label{display:block;color:#7e8b84;font-size:var(--fs-sm);font-weight:600}.metric-card>b{display:block;font:700 var(--fs-2xl)/1.2 var(--font);margin:9px 0 2px;letter-spacing:-.04em}.metric-card>small{font-size:var(--fs-sm);color:#9ba69f}.metric-symbol{position:absolute;right:17px;top:16px;width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f3f6f2;color:#819187;font-size:var(--fs-lg)}.metric-alert .metric-symbol{background:var(--red-pale);color:var(--red)}.metric-alert>b{color:var(--red)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:16px;margin-bottom:17px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 21px;box-shadow:0 3px 12px rgba(24,43,34,.018)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-head h2{font:700 var(--fs-lg)/1.25 var(--font);letter-spacing:-.025em;margin:4px 0 0}.text-link{color:var(--green);font-size:var(--fs-sm);font-weight:700;white-space:nowrap}.text-link span{margin-left:5px}.meta-dot{color:#c3cbc6}.priority{font-size:var(--fs-sm);color:#87938d;white-space:nowrap;display:inline-flex;gap:5px;align-items:center}.priority i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a9b3ad}.priority-high i{background:#cf9c58}.priority-urgent i{background:var(--red)}.priority-low i{background:#9ab2a4}.due{color:#88958e;font-size:var(--fs-sm);white-space:nowrap}.due.overdue,.overdue{color:var(--red)!important}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:6px;font-size:var(--fs-sm);font-weight:700;white-space:nowrap;background:#f0f2ef;color:#76847c}.status-todo{background:#f0f2ef;color:#748078}.status-in_progress{background:var(--blue-pale);color:#54778b}.status-in_review{background:var(--amber-pale);color:#a2712b}.status-done{background:var(--green-pale);color:var(--green)}.pill{display:inline-flex;padding:2px 7px;border-radius:20px;font-size:var(--fs-sm);font-weight:700;white-space:nowrap}.pill.danger{background:var(--red-pale);color:var(--red)}.pill.review{background:var(--amber-pale);color:var(--amber)}.pill.success{background:var(--green-pale);color:var(--green)}.pill.neutral{background:#f0f2ef;color:#76847c}.empty-state{padding:32px 16px;text-align:center;color:#9aa59f;font-size:var(--fs-sm)}.empty-state>span{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#f1f5f1;color:#6c8c79;font-size:var(--fs-lg);margin:0 auto 9px}.empty-state p{margin:0}.compact-empty{display:flex;gap:12px;align-items:center;padding:8px 0 5px}.empty-orbit{width:35px;height:35px;border-radius:11px;background:#f2f5f1;color:#638571;display:grid;place-items:center;font-size:var(--fs-lg);flex:0 0 auto}.compact-empty b{font-size:var(--fs-sm)}.compact-empty p{font-size:var(--fs-sm);color:var(--muted);margin:3px 0 0}.commitment-item{padding:10px 0 13px;border-top:1px solid #eff2ef}.commitment-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.commitment-top b{display:block;font-size:var(--fs-sm)}.commitment-top small{display:block;color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.commitment-count{font:700 var(--fs-xl) var(--font);color:var(--green);white-space:nowrap}.commitment-count span{font:500 var(--fs-sm) var(--font);color:#a4aea8}.progress-track{height:5px;border-radius:10px;background:#edf1ed;overflow:hidden;margin:9px 0}.progress-track i{display:block;height:100%;border-radius:inherit;background:var(--green);min-width:0}.commitment-item>.muted{font-size:var(--fs-sm)}.team-panel{margin-bottom:17px}.team-count,.subtle-count{font-size:var(--fs-sm);color:#87948d;border:1px solid var(--line);border-radius:20px;padding:4px 9px}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.member-card{border:1px solid #edf0ed;border-radius:11px;padding:13px 14px}.member-heading{display:flex;align-items:center;gap:10px}.user-avatar.large{width:34px;height:34px}.member-heading>div{flex:1;min-width:0}.member-heading b{font-size:var(--fs-sm)}.member-heading small{display:block;text-transform:capitalize;color:var(--muted);font-size:var(--fs-sm)}.open-count{font:700 var(--fs-lg) var(--font);text-align:right}.open-count small{display:block;color:var(--muted);font:500 var(--fs-sm) var(--font)}.member-stats{border-top:1px solid #f0f2f0;margin-top:10px;padding-top:9px;display:flex;justify-content:space-between;color:#85928b;font-size:var(--fs-sm)}.projects-dashboard .panel{min-width:0}.project-mini{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eff2ef}.project-icon{width:30px;height:30px;border-radius:9px;background:#eef3ef;color:#51725f;display:grid;place-items:center;flex:0 0 auto}.project-mini-main{flex:1;min-width:0}.project-mini-main b,.project-mini-main small{display:block}.project-mini-main b{font-size:var(--fs-sm)}.project-mini-main small{font-size:var(--fs-sm);color:var(--muted);margin-top:1px}.project-mini .progress-track{margin:6px 0 0;height:3px}.project-percent{font:700 var(--fs-sm) var(--font);color:#718078}.notice{position:relative;margin:0 0 17px;padding:11px 38px 11px 13px;border-radius:9px;font-size:var(--fs-sm);border:1px solid transparent}.notice.success{background:var(--green-pale);color:var(--green);border-color:#d8e9dc}.notice.error{background:var(--red-pale);color:#a5423b;border-color:#efd5d1}.notice.info{background:#edf4f7;color:#466a7e;border-color:#d9e8ed}.notice>button{position:absolute;right:10px;top:6px;border:0;background:none;font-size:var(--fs-xl);color:inherit}.page-heading{margin-bottom:24px}.page-heading h1{font-size:var(--fs-2xl)}.filter-bar select:focus,.filter-bar input:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.comment-form textarea:focus{border-color:#94b9a1;box-shadow:0 0 0 3px rgba(55,126,84,.08)}.search-box{height:36px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 10px;min-width:210px;color:#99a59e}.search-box input{border:0!important;padding:0!important;height:auto!important;box-shadow:none!important;min-width:0}.filter-context a{color:var(--green);font-weight:700}.modal{width:min(610px,100%);max-height:min(90vh,850px);overflow:auto;background:#fff;border-radius:17px;padding:24px;box-shadow:0 25px 90px rgba(20,35,28,.25);animation:rise .18s ease}@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:17px}.modal-head h2{font:700 var(--fs-xl) var(--font);margin:4px 0 0;letter-spacing:-.03em}.stack-form{display:flex;flex-direction:column;gap:12px}.stack-form label{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-sm);font-weight:600;color:#5f6d66}.stack-form input,.stack-form select,.stack-form textarea,.revision-form input,.block-form input,.comment-form textarea{width:100%;padding:9px 10px;min-height:36px;border:1px solid #e4e9e4;border-radius:8px;background:#fff;color:var(--ink);font-size:var(--fs-sm);resize:vertical}.stack-form textarea{min-height:76px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.more-options{padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.more-options summary{cursor:pointer;font-size:var(--fs-sm);color:var(--green);font-weight:700;margin-bottom:9px}.more-options[open] summary{margin-bottom:12px}.more-options>label{margin-bottom:10px}.more-options>label:last-child{margin-bottom:0}.check-row{flex-direction:row!important;align-items:center;gap:8px!important}.check-row input{width:14px;height:14px;min-height:0;accent-color:var(--green)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.projects-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.75fr);gap:16px;align-items:start}.project-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{padding:18px;min-width:0}.project-card-head{display:flex;align-items:center;justify-content:space-between}.big-project-icon{width:38px;height:38px;font-size:var(--fs-xl)}.inline-status select{border:1px solid var(--line);border-radius:20px;padding:5px 9px;background:white;color:#78867d;font-size:var(--fs-sm)}.project-card h2{font:700 var(--fs-lg) var(--font);margin:14px 0 4px}.project-desc{font-size:var(--fs-sm);line-height:1.5;min-height:30px;margin:0 0 12px}.project-owner{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:11px 0 15px;padding-top:11px;border-top:1px solid #eff2ef}.small-label{font-size:var(--fs-sm);color:#96a19b}.project-owner b{font-size:var(--fs-sm);text-align:right}.project-progress-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);color:#7a8880}.project-progress-head b{color:var(--green)}.project-card>small{font-size:var(--fs-sm)}.project-task-preview{display:flex;flex-direction:column;margin-top:12px;border-top:1px solid #eff2ef}.project-task-preview a{display:flex;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid #f3f5f3;font-size:var(--fs-sm);min-width:0}.project-task-preview a:hover{color:var(--green)}.project-task-preview a small{margin-left:auto;color:#9aa59f;white-space:nowrap}.tiny-status{width:7px;height:7px;border-radius:50%;background:#adb6b0;flex:0 0 auto}.tiny-status.status-in_progress{background:#7096aa}.tiny-status.status-in_review{background:#d2a34b}.tiny-status.status-done{background:#6f9b79}.project-view-link{display:block;margin-top:12px}.create-project{position:sticky;top:86px}.recurring-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:16px;align-items:start}.recurring-list{display:flex;flex-direction:column;gap:13px}.recurring-card{padding:19px}.recurring-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.recurring-card h2{font:700 var(--fs-lg) var(--font);margin:7px 0 3px}.recurring-card p{font-size:var(--fs-sm);margin:0}.recurring-progress{display:flex;align-items:center;gap:12px;margin-top:15px}.recurring-progress .progress-track{flex:1;margin:0}.recurring-progress b{font-size:var(--fs-sm);color:#607069;white-space:nowrap}.recurring-card>small{display:block;margin-top:9px;font-size:var(--fs-sm)}.carryover-note{display:flex;gap:11px;align-items:flex-start;background:#f1f6f2}.note-icon{width:28px;height:28px;border-radius:9px;background:#fff;color:var(--green);display:grid;place-items:center;flex:0 0 auto}.carryover-note b{font-size:var(--fs-sm)}.carryover-note p{font-size:var(--fs-sm);color:var(--muted);margin:3px 0 0}.create-recurring{position:sticky;top:86px}.create-recurring .fine-print{margin:0}.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}.settings-card{padding:20px}.member-settings{display:flex;flex-direction:column;margin:14px 0}.member-settings>div{display:flex;align-items:center;gap:9px;padding:10px 0;border-top:1px solid #eff2ef}.member-settings>div>span:nth-child(2){flex:1;min-width:0}.member-settings b,.member-settings small{display:block}.member-settings b{font-size:var(--fs-sm)}.member-settings small{font-size:var(--fs-sm);color:var(--muted)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.detail-main,.detail-aside{display:flex;flex-direction:column;gap:15px;min-width:0}.back-link{display:inline-block;color:#7d8b83;font-size:var(--fs-sm);margin-bottom:16px}.back-link:hover{color:var(--green)}.task-heading{align-items:flex-end}.task-heading h1{max-width:760px;overflow-wrap:anywhere}.detail-meta{font-size:var(--fs-sm)}.large-badge{margin-bottom:5px}.detail-card{padding:21px}.detail-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.detail-topline p{font-size:var(--fs-sm);line-height:1.7;white-space:pre-wrap;margin:8px 0 13px;color:#58665f}.detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;margin:13px 0;gap:13px}.detail-facts div span,.detail-facts div b{display:block}.detail-facts div span{font-size:var(--fs-sm);color:#98a39d}.detail-facts div b{font-size:var(--fs-sm);margin-top:3px}.action-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.action-row form{display:flex;align-items:center;gap:6px}.revision-form input,.block-form input{width:180px;min-height:33px}.block-form{margin-left:auto}.detail-card>.notice{margin-top:10px}.discussion{scroll-margin-top:84px}.comment{display:flex;gap:10px;padding:13px 0;border-top:1px solid #eff2ef}.small-avatar{width:27px;height:27px;font-size:var(--fs-sm)}.comment>div{flex:1;min-width:0}.comment-head{display:flex;align-items:center;gap:10px}.comment-head b{font-size:var(--fs-sm)}.comment-head time,.activity-entry time{color:#a0aaa4;font-size:var(--fs-sm)}.comment p{font-size:var(--fs-sm);color:#58665f;line-height:1.55;margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.comment-form{display:flex;align-items:flex-end;gap:8px;border-top:1px solid #eff2ef;padding-top:13px;margin-top:3px}.comment-form textarea{min-height:42px}.edit-panel .stack-form{gap:10px}.edit-panel .panel-head{margin-bottom:12px}.edit-panel .stack-form label{font-size:var(--fs-sm)}.edit-panel .stack-form input,.edit-panel .stack-form select,.edit-panel .stack-form textarea{min-height:32px;padding:7px 8px;font-size:var(--fs-sm)}.edit-panel .form-grid{gap:7px}.edit-panel .more-options{padding:8px 0}.activity-entry{display:flex;gap:9px;padding:10px 0;border-top:1px solid #eff2ef}.activity-dot{width:7px;height:7px;background:#9eb8a4;border-radius:50%;margin:5px 0 0 2px;flex:0 0 auto}.activity-entry>div{display:flex;flex-direction:column;gap:2px}.activity-entry b{font-size:var(--fs-sm)}.activity-entry span{font-size:var(--fs-sm);color:#7e8a83}.activity-entry time{font-size:var(--fs-sm)}.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 8%,#eef3ec 0%,#f7f8f5 50%,#f4f5f2 100%);padding:24px}.auth-card{width:min(410px,100%);padding:33px 35px 25px;border:1px solid #e8ece8;background:rgba(255,255,255,.95);border-radius:18px;box-shadow:0 20px 65px rgba(34,61,46,.08)}.auth-card .brand{padding:0;margin-bottom:36px}.auth-card h1{font:700 var(--fs-2xl) var(--font);letter-spacing:-.04em;margin:5px 0}.auth-card>.muted{font-size:var(--fs-sm);margin:0 0 18px}.auth-card .notice{font-size:var(--fs-sm)}.auth-card .stack-form{gap:14px}.auth-card .stack-form label{font-size:var(--fs-sm)}.auth-card .stack-form input{height:40px}.auth-card .button{margin-top:4px;height:41px}.fine-print{font-size:var(--fs-sm);color:#98a39c;line-height:1.5;margin:16px 0 0}.auth-card .fine-print{text-align:center;margin-top:21px}.auth-card>.eyebrow{margin-bottom:4px}
@media(min-width:1500px){.page-wrap{padding-left:55px;padding-right:55px}}
@media(max-width:1150px){.page-wrap{padding:30px 28px 48px}.dashboard-grid{grid-template-columns:minmax(0,1.3fr) minmax(270px,.9fr)}.detail-layout{grid-template-columns:minmax(0,1fr) 285px}}
@media(max-width:900px){.sidebar{width:220px}.main-content{margin-left:220px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.detail-layout{grid-template-columns:1fr}.detail-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.projects-layout,.recurring-layout{grid-template-columns:1fr}.create-project,.create-recurring{position:static}.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{width:260px;transform:translateX(-105%);transition:transform .2s;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:12px 0 35px rgba(20,40,30,.12)}.main-content{margin-left:0}.page-wrap{padding:25px 16px 42px}.welcome-row,.page-heading{align-items:flex-start}.welcome-row{flex-direction:column}.welcome-row h1{font-size:var(--fs-2xl)}.page-heading h1{font-size:var(--fs-2xl)}.page-heading>.button{align-self:flex-start}.metric-grid{gap:9px}.metric-card{padding:14px;min-height:104px}.metric-card>b{font-size:var(--fs-2xl)}.metric-symbol{width:26px;height:26px;right:12px;top:12px}.panel{padding:16px}.team-grid{grid-template-columns:1fr}.project-card-grid{grid-template-columns:1fr}.detail-aside{grid-template-columns:1fr}.task-heading{align-items:flex-start}.large-badge{margin-top:34px}.detail-facts{grid-template-columns:1fr 1fr}.action-row{align-items:flex-start}.action-row form{flex-wrap:wrap}.revision-form{width:100%}.revision-form input{width:100%}.block-form{margin-left:0;width:100%}.block-form input{flex:1}.form-grid{grid-template-columns:1fr}.modal{padding:19px}.comment-form{flex-direction:column;align-items:stretch}.comment-form button{align-self:flex-end}.recurring-card-head{align-items:flex-start}.recurring-progress{align-items:flex-start;flex-direction:column}.recurring-progress .progress-track{width:100%}.auth-card{padding:28px 22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.checklist-panel{padding-bottom:15px}.checklist-empty{font-size:var(--fs-sm)}.checklist-row{display:flex;align-items:center;gap:10px;padding:8px 1px;border-top:1px solid #eff2ef;font-size:var(--fs-sm)}.checklist-toggle{width:17px;height:17px;border:1.5px solid #d5ded7;border-radius:5px;background:#fff;color:#fff;display:grid;place-items:center;padding:0;font-size:var(--fs-sm);flex:0 0 auto}.checklist-toggle.checked{background:var(--green);border-color:var(--green)}.checklist-done{text-decoration:line-through;color:#a1aaa5}.checklist-add{display:flex;gap:8px;padding-top:11px;margin-top:4px;border-top:1px solid #eff2ef}.checklist-add input{flex:1;min-width:0;padding:8px 10px;border:1px solid #e4e9e4;border-radius:8px;font-size:var(--fs-sm)}.checklist-add input:focus{border-color:#94b9a1;box-shadow:0 0 0 3px rgba(55,126,84,.08)}
.template-edit .stack-form label{font-size:var(--fs-sm)}.template-edit .stack-form input,.template-edit .stack-form select{min-height:32px;padding:7px 8px;font-size:var(--fs-sm)}
.heading-controls{display:flex;align-items:center;gap:11px}.view-toggle{display:flex;align-items:center;background:#eef1ed;border-radius:9px;padding:3px}.view-toggle a{padding:6px 10px;border-radius:7px;font-size:var(--fs-sm);font-weight:600;color:#819087}.view-toggle a.active{background:#fff;color:var(--green);box-shadow:0 1px 4px rgba(20,40,30,.08)}.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:8px}.kanban-column{background:#eff2ef;border:1px solid #e8ece8;border-radius:12px;padding:10px;min-height:240px}.kanban-head{display:flex;align-items:center;justify-content:space-between;padding:3px 3px 10px}.kanban-head h2{font:700 var(--fs-sm) var(--font);margin:0}.kanban-head span{font-size:var(--fs-sm);color:#89968e;background:#fff;border-radius:12px;padding:2px 7px}.kanban-empty{border:1px dashed #dce3dd;border-radius:8px;color:#a0aaa4;text-align:center;padding:17px 8px;font-size:var(--fs-sm)}
.archived-list{margin-top:3px}.archived-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #eff2ef}.archived-item b,.archived-item small{display:block}.archived-item b{font-size:var(--fs-sm)}.archived-item small{font-size:var(--fs-sm);color:var(--muted);margin-top:2px}
@media(max-width:1100px){.kanban-board{grid-template-columns:repeat(4,235px)}}
.templates-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:16px;align-items:start}.template-list{display:grid;gap:14px}.template-card h2,.create-template h2{font:700 var(--fs-lg)/1.25 var(--font);margin:4px 0 0}.template-preview{margin:0 0 15px;padding-left:22px;color:#687771;font-size:var(--fs-sm)}.template-preview li{padding:3px 0}.template-launch-form{border-top:1px solid var(--line);padding-top:14px}.template-launch-form details{font-size:var(--fs-sm);color:var(--ink-soft)}.template-launch-form details label{margin-top:10px}.template-edit{border-top:1px solid var(--line);padding-top:11px;margin-top:12px}.template-edit summary{cursor:pointer;color:var(--green);font-size:var(--fs-sm);font-weight:700}.template-edit form{margin-top:12px}.template-card .panel-head{margin-bottom:12px}.notification-list{display:grid;gap:10px}.notification-card{display:flex;align-items:flex-start;gap:13px;padding:15px 17px}.notification-card.is-unread{border-left:3px solid var(--green);background:#fcfefb}.notification-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--green);flex:0 0 auto}.is-read .notification-dot{background:#cbd4ce}.notification-content{flex:1;min-width:0}.notification-content p{margin:0 0 4px;font-size:var(--fs-sm);font-weight:600}.notification-content small{display:block;color:var(--muted);font-size:var(--fs-sm);margin-bottom:6px}.notification-content .text-link{font-size:var(--fs-sm)}.notification-card form{flex:0 0 auto}.filter-context{font-size:var(--fs-sm);color:var(--muted);margin:0 0 13px}.filter-context a{color:var(--green);font-weight:700}.inline-status .button{padding:6px 9px}@media(max-width:900px){.templates-layout{grid-template-columns:1fr}}
.button.danger{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 4px 10px rgba(178,72,64,.14)}.button.danger:hover{background:#963b35;border-color:#963b35}.delete-task-panel{border-color:#f0d9d6;background:linear-gradient(145deg,#fff 60%,#fcf2f0)}.delete-task-panel h2{font:700 var(--fs-lg) var(--font);margin:4px 0}.delete-task-panel p:not(.eyebrow){font-size:var(--fs-sm);margin:0 0 13px}.confirm-modal{width:min(430px,calc(100vw - 28px));padding:25px 26px 22px;border:1px solid #f0e5e2}.confirm-modal .modal-head{margin:0 0 9px}.confirm-modal .modal-head h2{font-size:var(--fs-xl)}.confirm-modal .eyebrow{color:var(--red)}.confirm-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--red-pale);color:var(--red);font:700 var(--fs-xl) var(--font);margin-bottom:16px}.confirm-message{margin:0;color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.65}.confirm-modal .modal-actions{margin-top:23px}.confirm-modal [data-confirm-accept]{min-width:112px}.confirm-modal [data-confirm-cancel]:focus-visible,.confirm-modal [data-confirm-accept]:focus-visible{outline:3px solid var(--mint);outline-offset:2px}.delete-task-panel .button{margin-top:2px}

.projects-overview-layout{grid-template-columns:1fr}.projects-overview-layout .create-project{position:static}.create-project{padding:22px}.project-create-form{gap:19px}.project-core-fields{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(2,minmax(160px,.8fr));gap:13px;align-items:start}.project-description-options{grid-column:1/-1;padding-top:4px;border-top:1px solid var(--line)}.project-description-options summary,.project-task-options summary{cursor:pointer;color:var(--green);font-size:var(--fs-sm);font-weight:700;margin:8px 0}.project-description-options[open] summary,.project-task-options[open] summary{margin-bottom:12px}.project-description-options textarea{min-height:58px}.project-create-task-section{border-top:1px solid var(--line);padding-top:16px}.project-create-task-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.project-create-task-heading h3{font:700 var(--fs-lg) var(--font);margin:3px 0}.project-create-task-heading .muted{font-size:var(--fs-sm);margin:0}.project-task-drafts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.project-task-draft{min-width:0;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fbfcfa}.project-task-draft-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.project-task-draft-head .icon-button{width:26px;height:26px}.project-task-options{margin-top:9px;border-top:1px solid #eff2ef;padding-top:3px}.project-task-options .form-grid{gap:9px}.project-task-options>label{margin-bottom:10px}.project-task-options>label:last-child{margin-bottom:0}.project-task-options select:disabled{background:#f5f6f4;color:#a1aaa5}.project-detail-heading{align-items:flex-end}.project-detail-heading h1{margin-top:5px}.project-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(200px,1.4fr);gap:12px 18px;align-items:center;margin:-8px 0 16px;padding:16px 20px}.project-detail-summary>div:not(.project-summary-progress){display:flex;flex-direction:column;gap:4px}.project-detail-summary b{font-size:var(--fs-sm)}.project-summary-progress .progress-track{margin:7px 0 0}.project-workspace-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:15px;align-items:start}.project-workspace-tasks,.project-add-task{min-width:0}.project-workspace-tasks .panel-head{align-items:flex-end}.project-workspace-tasks h2{display:flex;align-items:center;gap:8px}.project-add-task{position:sticky;top:86px}.project-add-task .fine-print{margin-top:0}
@media(max-width:900px){.project-core-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.project-core-fields>label:first-child{grid-column:1/-1}.project-workspace-layout{grid-template-columns:1fr}.project-task-drafts{grid-template-columns:1fr}.project-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.project-core-fields{grid-template-columns:1fr}.project-core-fields>label:first-child,.project-description-options{grid-column:auto}.project-task-drafts,.project-workspace-layout{grid-template-columns:1fr}.project-create-task-heading{align-items:flex-start;flex-direction:column}.project-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.project-add-task{position:static}}



/* Monday-inspired workspace polish: green-led, neutral, and deliberately restrained. */
:root{--green:#28734b;--green-deep:#1f5e3d;--green-pale:#eaf3ec;--mint:#cfe3d4;--blue:#647b70;--blue-pale:#edf2ee;--amber:#92703b;--amber-pale:#f5f1e8;--shadow:0 8px 24px rgba(29,55,39,.055);--radius:12px}
body{background:#f6f7f5}
.sidebar{width:238px;padding:23px 14px 16px}
.main-content{margin-left:238px}
.brand{letter-spacing:.08em}
.brand-mark{border-radius:9px;box-shadow:none}
.workspace-switch{margin-top:25px;margin-bottom:19px;border-radius:9px;background:#fbfcfb}
.nav-link{height:39px;border-radius:7px;gap:10px}
.nav-link.active{background:#e8f2eb;color:var(--green)}
.nav-count{border-radius:7px;background:#f1f3f1}

.page-wrap{padding-top:30px}
.welcome-row,.page-heading{margin-bottom:22px}
.welcome-row h1,.page-heading h1{letter-spacing:-.035em}
.panel,.metric-card{border-radius:12px;box-shadow:none}
.panel{border-color:#e5e9e5}
.metric-card{min-height:108px;border-color:#e5e9e5}
.metric-symbol{background:#edf3ee;color:var(--green)}
.status-in_progress{background:#eaf3ec;color:#38694a}
.status-in_review{background:#f5f1e8;color:#80683d}
.priority-high i{background:#ad8950}
.priority-urgent i{background:#ba665d}
.kanban-column{background:#f1f3f1;border-color:#e6e9e6;border-radius:9px}
.kanban-head h2{font-size:var(--fs-sm)}
.board-card:hover,.project-card:hover{border-color:#cbdccf;box-shadow:0 4px 12px rgba(29,55,39,.055)}
.project-icon,.big-project-icon{background:#edf3ee;color:var(--green)}
.button{border-radius:7px}
.button.primary{box-shadow:none}
.button.secondary,.button.quiet{border-color:#e2e7e2}
.filter-bar select,.filter-bar input,.search-box{border-radius:7px}
.filter-bar select:focus,.filter-bar input:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.comment-form textarea:focus,.checklist-add input:focus{border-color:#86ad92;box-shadow:0 0 0 3px rgba(40,115,75,.09)}
.project-card{border-color:#e5e9e5}
.project-progress-head b,.project-percent,.commitment-count{color:var(--green)}
@media(max-width:900px){.sidebar{width:220px}.main-content{margin-left:220px}}
@media(max-width:760px){.sidebar{width:260px}.main-content{margin-left:0}}

/* Shared social content calendar */
.content-heading{align-items:center}.content-filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 18px}.content-filter-bar label{display:grid;gap:5px;color:var(--muted);font-size:var(--fs-sm);font-weight:650}.content-filter-bar select{min-width:145px}.calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}.calendar-month-nav{display:flex;align-items:center;gap:12px}.calendar-month-nav>div{min-width:135px}.calendar-month-nav .eyebrow{margin:0 0 3px}.calendar-month-nav h2{margin:0;font-size:var(--fs-xl)}.calendar-item-count{color:var(--muted);font-size:var(--fs-sm)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:10px 8px;text-align:center;color:var(--muted);font-size:var(--fs-sm);font-weight:700;border-bottom:1px solid var(--line);background:#fafbf9}.calendar-day{min-width:0;min-height:132px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.is-outside{background:#fafbf9;color:#a0a7a1}.calendar-day.is-today{background:#f4f8f4}.calendar-day-head{height:22px;display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-size:var(--fs-sm);font-weight:700}.calendar-day-head small{font-size:var(--fs-sm);color:var(--green);font-weight:700}.calendar-event{margin:4px 0;border:1px solid #e5eae5;border-left:3px solid var(--green);border-radius:6px;background:#fff;font-size:var(--fs-sm);overflow:hidden}.calendar-event[open]{box-shadow:0 5px 15px rgba(20,35,25,.08);position:relative;z-index:2}.calendar-event summary{list-style:none;cursor:pointer;padding:5px 6px;display:grid;grid-template-columns:1fr auto;gap:2px 4px}.calendar-event summary::-webkit-details-marker{display:none}.event-platform{color:var(--green);font-size:var(--fs-sm);font-weight:750;text-transform:capitalize}.calendar-event time{color:var(--muted);font-size:var(--fs-sm)}.calendar-event summary b,.calendar-event summary small{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event summary b{font-size:var(--fs-sm);color:var(--ink)}.calendar-event summary small{color:var(--muted);font-size:var(--fs-sm)}.event-details{padding:7px;border-top:1px solid var(--line);font-size:var(--fs-sm)}.event-details p{margin:7px 0;overflow-wrap:anywhere}.event-edit{margin-top:8px}.event-edit>summary{padding:6px 0;color:var(--green);font-weight:700}.event-edit .stack-form{gap:10px}.event-edit label,.content-plan-panel label{font-size:var(--fs-sm)}.event-edit textarea,.content-plan-panel textarea{resize:vertical}.event-delete{margin-top:9px}.calendar-legend{padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:var(--fs-sm)}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.calendar-legend small{margin-left:auto}.content-plan-panel{position:sticky;top:18px}.content-plan-panel .panel-head{margin-bottom:8px}.plan-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#edf4ee;color:var(--green);font-size:var(--fs-xl)}.content-plan-panel .stack-form{gap:13px}.content-plan-panel .fine-print{margin:14px 0 0}.content-plan-panel label input,.content-plan-panel label select,.content-plan-panel label textarea{margin-top:5px}.content-plan-panel .form-grid{gap:10px}
@media(max-width:1180px){.calendar-workspace{grid-template-columns:minmax(0,1fr) 290px}.calendar-day{min-height:112px;padding:6px}.calendar-event summary{padding:4px}}
@media(max-width:920px){.calendar-workspace{grid-template-columns:1fr}.content-plan-panel{position:static}.content-plan-panel .stack-form{display:grid;grid-template-columns:1fr 1fr}.content-plan-panel .stack-form>label:first-of-type,.content-plan-panel .stack-form>label:nth-of-type(5),.content-plan-panel .stack-form>label:nth-of-type(6),.content-plan-panel .stack-form>label:nth-of-type(7){grid-column:1/-1}.content-plan-panel .stack-form>button{grid-column:1/-1}}
@media(max-width:600px){.calendar-toolbar{padding:13px 10px}.calendar-month-nav{gap:5px}.calendar-month-nav>div{min-width:105px}.calendar-month-nav h2{font-size:var(--fs-lg)}.calendar-month-nav .button{padding:7px}.calendar-item-count{font-size:var(--fs-sm)}.calendar-weekday{padding:8px 1px;font-size:var(--fs-sm)}.calendar-day{min-height:86px;padding:4px 2px}.calendar-day-head{height:17px;font-size:var(--fs-sm)}.calendar-day-head small{font-size:var(--fs-sm)}.calendar-event{margin:3px 0;border-left-width:2px}.calendar-event summary{padding:3px;gap:2px}.calendar-event summary b{font-size:var(--fs-sm)}.calendar-event summary small{font-size:var(--fs-sm)}.calendar-event time,.event-platform{font-size:var(--fs-sm)}.calendar-legend{gap:8px;padding:10px}.calendar-legend small{width:100%;margin:0}.content-plan-panel .stack-form{display:flex}.content-filter-bar{gap:8px}.content-filter-bar label{flex:1;min-width:calc(50% - 8px)}.content-heading{align-items:flex-start}}

:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.task-title,.board-card-title,.board-project-link,.project-title-link,.project-mini-main b,.ct-event strong,.project-schedule-content b,.checklist-row span{text-align:left}
/* Shell (build plan step 7): no desktop topbar, page headings own the primary action; phones get a sticky 56px bar. */
.topbar,.sidebar-backdrop{display:none}
@media(max-width:760px){
.topbar{display:flex;align-items:center;gap:var(--s3);height:56px;padding:0 var(--s4);position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.mobile-menu{display:inline-grid;place-items:center;flex:0 0 auto;width:var(--tap);height:var(--tap);margin-left:calc(var(--s2) * -1);border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font-size:var(--fs-xl)}
.topbar-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-lg);font-weight:var(--fw-bold)}
.topbar-primary{flex:0 0 auto;min-height:var(--tap);padding:0 var(--s4);white-space:nowrap}
.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:19;background:rgba(17,37,27,.4)}
.sidebar-backdrop[hidden]{display:none}
body.menu-open{overflow:hidden}
body.has-topbar-primary .page-primary{display:none}
}
/* Shared drawer (build plan step 8): native <dialog class="drawer"> opened through assets/drawer.js. */
.drawer{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(var(--drawer-w),100vw);height:100dvh;max-height:100dvh;max-width:100vw;padding:var(--s6);border:0;border-left:1px solid var(--line);background:var(--white);color:var(--ink);box-shadow:var(--shadow-drawer);overflow:auto}
.drawer::backdrop,.confirm-modal::backdrop{background:rgba(17,37,27,.4)}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}
.drawer-head h2{font-size:var(--fs-xl);margin:0}
.drawer-head .eyebrow{margin-bottom:var(--s2)}
.drawer-actions{position:sticky;bottom:calc(var(--s6) * -1);z-index:1;display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s3);padding:var(--s4) 0 var(--s5);border-top:1px solid var(--line);background:var(--white)}
@media(max-width:760px){.drawer{padding:var(--s5) var(--s4)}.drawer-actions{bottom:calc(var(--s5) * -1)}.drawer-head .icon-button{min-width:var(--tap);min-height:var(--tap)}.drawer-actions .button,.confirm-modal .modal-actions .button{min-height:var(--tap)}}
/* Shared task item (build plan step 9): list rows, project rows and board cards. See docs/DESIGN_RULES.md section 6. */
.avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--green-pale);color:var(--green);font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.badge{display:inline-flex;align-items:center;height:22px;padding:0 var(--s2);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}
.s-todo{background:#f0f2ef;color:var(--ink-soft)}.s-progress{background:var(--blue-pale);color:var(--blue)}.s-review{background:var(--amber-pale);color:var(--amber)}.s-done{background:var(--green-pale);color:var(--green)}
.task-list-panel,.project-task-table{padding:0;overflow:visible}
.task-item{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);padding:var(--s3) var(--s4);border-top:1px solid var(--line);background:var(--white)}
.task-item:first-child{border-top:0}
.task-item.is-blocked{box-shadow:inset 3px 0 0 var(--red)}
.task-item .task-main{flex:1 1 220px;min-width:0;padding-left:calc(var(--task-depth,0) * 18px)}
.task-item .t-controls{margin-left:auto}
.task-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--ink);text-align:left}
.task-title:hover{color:var(--green)}
.task-item[data-status=done] .task-title{color:var(--muted)}
.task-meta{display:flex;flex-wrap:wrap;gap:0 var(--s2);margin-top:2px;min-width:0;font-size:var(--fs-sm);color:var(--muted)}
.task-meta:empty{display:none}
.task-meta>*+*::before{content:"\00b7";margin-right:var(--s2)}
.task-meta a{color:inherit;text-decoration:none}.task-meta a:hover{text-decoration:underline}
.task-meta .is-late,.task-meta .is-blocked-text{color:var(--red)}
.t-controls{display:flex;align-items:center;gap:var(--s2);flex:0 0 auto}
.quick-control{position:relative;margin:0}
.quick{display:none;align-items:center;gap:var(--s1);min-height:32px;padding:0 var(--s2);border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--ink-soft);font:inherit;font-size:var(--fs-md);cursor:pointer}
.js .quick{display:inline-flex}
.quick[hidden]{display:none}
.quick:hover{background:var(--hover)}
.quick[aria-expanded=true]{background:var(--hover);border-color:var(--line-strong)}
.quick .is-late{color:var(--red)}
.quick-more{min-width:32px;justify-content:center;font-size:var(--fs-lg)}
.js .quick-control>select,.js .quick-control>input{position:absolute;visibility:hidden;width:1px;height:1px}
.js .quick-control:has(>.quick[hidden]){display:none}
.task-inline-control select,.task-inline-control input[type=date]{min-height:32px;padding:0 var(--s2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white);color:var(--ink-soft);font:inherit;font-size:var(--fs-sm)}
.task-inline-control :disabled{opacity:.65;cursor:wait}
.row-menu{position:relative}
.menu{position:absolute;z-index:30;top:100%;right:0;min-width:190px;margin-top:var(--s1);padding:var(--s1);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.menu[hidden]{display:none}
.menu [role^=menuitem]{display:flex;align-items:center;gap:var(--s2);width:100%;min-height:36px;padding:0 var(--s3);border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font:inherit;font-size:var(--fs-md);text-align:left;text-decoration:none;cursor:pointer}
.menu [role^=menuitem]:hover,.menu [role^=menuitem]:focus-visible{background:var(--hover)}
.menu [aria-checked=true]::after{content:"\2713";margin-left:auto;color:var(--green)}
.menu [aria-disabled=true]{color:var(--faint);cursor:not-allowed}
.menu-heading{margin:0;padding:var(--s2) var(--s3) var(--s1);font-size:var(--fs-sm);color:var(--muted)}
.menu-pick{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s2) var(--s3);font-size:var(--fs-sm);color:var(--muted)}
.menu-pick input{min-height:36px;padding:0 var(--s2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit}
.board-card{display:block;margin-bottom:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius)}
.board-card .task-main{padding-left:0}
.board-card .task-title{white-space:normal;overflow-wrap:anywhere}
.board-card .t-controls{margin-top:var(--s2);flex-wrap:wrap}
.board-card .t-controls{gap:var(--s1)}
.board-card .quick{padding:0 var(--s2)}
.board-card .row-menu{margin-left:auto}
.board-quick-action{margin-top:var(--s2)}
.button.quiet{border-color:transparent;background:none;color:var(--ink-soft)}.button.quiet:hover{background:var(--hover)}
@media(min-width:761px){
.task-item .quick-more{opacity:0}
.task-item:hover .quick-more,.task-item:focus-within .quick-more,.quick-more[aria-expanded=true]{opacity:1}
}
@media(max-width:760px){
.task-item{flex-wrap:wrap;align-items:flex-start;padding:var(--s3)}
.task-item .task-main{flex:1 1 100%}
.t-controls{flex:1 1 100%;flex-wrap:wrap;gap:var(--s1)}
.quick{min-height:var(--tap);padding:0 var(--s3)}
.quick-more{margin-left:auto}
.board-card{padding:var(--s3)}
}
/* Feedback (build plan step 10): one toast region, saved flash. */
.toast-region{position:fixed;left:50%;bottom:var(--s6);z-index:1500;display:flex;justify-content:center;width:max-content;max-width:min(560px,calc(100vw - var(--s8)));transform:translateX(-50%);pointer-events:none}
.toast{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--radius);background:var(--ink);color:var(--white);font-size:var(--fs-md);box-shadow:var(--shadow);pointer-events:auto}
.toast[data-kind=error]{background:var(--red)}
.toast-message{min-width:0;overflow-wrap:anywhere}
.toast-action,.toast-close{flex:0 0 auto;min-height:32px;padding:0 var(--s2);border:0;border-radius:var(--radius-sm);background:rgba(255,255,255,.16);color:inherit;font:inherit;font-weight:var(--fw-bold);cursor:pointer}
.toast-action:hover,.toast-close:hover{background:rgba(255,255,255,.28)}
.toast-close{background:none;font-size:var(--fs-lg)}
.toast :focus-visible{outline:2px solid var(--white)}
@keyframes saved{from{background:var(--green-pale)}to{background:transparent}}
.quick.is-saved,.task-item.is-saved{animation:saved 1.2s ease}
@media(max-width:760px){.toast-region{bottom:calc(var(--s4) + env(safe-area-inset-bottom))}.toast-action,.toast-close{min-height:var(--tap);min-width:var(--tap)}}
@media(prefers-reduced-motion:reduce){.quick.is-saved,.task-item.is-saved{animation:none}}
/* Tasks toolbar, quick chips, grouped list and phone board tabs (build plan step 11). */
.task-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);margin:0 0 var(--s3)}
.task-toolbar .search-box{flex:0 1 260px;min-width:200px}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
.chip{display:inline-flex;align-items:center;gap:var(--s1);min-height:32px;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:999px;background:var(--white);color:var(--ink);font:inherit;font-size:var(--fs-md);text-decoration:none;white-space:nowrap;cursor:pointer}
.chip:hover{background:var(--hover)}
.chip.is-active{border-color:var(--green);background:var(--green-pale);color:var(--green)}
.chip .n{color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.chip.alert .n{color:var(--red)}
.chip.is-active .n{color:var(--green)}
.filters-chip{margin-left:auto}
.task-filters-drawer{--drawer-w:420px}
.task-filters-drawer .stack-form{gap:var(--s4)}
.group-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.group-head:first-child{border-top:0}
.group-head .n{font-weight:400;font-variant-numeric:tabular-nums}
.done-hint{margin:var(--s2) 0;font-size:var(--fs-sm)}
.board-tabs{display:none}
@media(max-width:760px){
.task-toolbar .search-box{flex:1 1 100%}
.chips{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--s1)}
.chip{min-height:var(--tap)}
.filters-chip{margin-left:0}
.board-tabs{display:flex;gap:var(--s1);margin-bottom:var(--s3);overflow-x:auto}
.board-tab{display:inline-flex;align-items:center;gap:var(--s1);flex:1 0 auto;justify-content:center;min-height:var(--tap);padding:0 var(--s3);border-bottom:2px solid transparent;color:var(--muted);font-size:var(--fs-md);text-decoration:none;white-space:nowrap}
.board-tab .n{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.board-tab.is-active{border-bottom-color:var(--green);color:var(--green);font-weight:var(--fw-bold)}
.kanban-board{display:block}
.kanban-column{display:none}
.kanban-column.is-active{display:block}
}
/* Dashboard (build plan step 12): scoped tiles, one-line team workload, project alerts. */
.is-late{color:var(--red)}
.metric-card .metric-label{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.row-approve{margin:0}
.team-list{margin:0;padding:0;list-style:none}
.team-line{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s2) 0;border-top:1px solid var(--line)}
.team-line:first-child{border-top:0}
.team-name{flex:1 1 140px;min-width:0;color:var(--ink);font-weight:var(--fw-medium);text-decoration:none;text-align:left}
.team-name:hover{color:var(--green)}
.team-stats{display:flex;flex-wrap:wrap;gap:var(--s3);color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.project-mini small .is-late{font-weight:var(--fw-medium)}
/* Assistant access (owner only). */
.assistant-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4);margin-bottom:var(--s4)}
.assistant-card{margin-bottom:var(--s4)}.assistant-layout .assistant-card{margin-bottom:0}
.assistant-reveal{margin-bottom:var(--s4);border-color:var(--green);background:var(--green-pale)}.assistant-reveal .copy-row input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.assistant-steps{margin:0 0 var(--s3);padding-left:var(--s5);display:grid;gap:var(--s2)}.assistant-steps code,.assistant-table code{overflow-wrap:anywhere;font-size:var(--fs-sm)}
.table-scroll{overflow-x:auto}
.assistant-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}
.assistant-table th,.assistant-table td{padding:var(--s2) var(--s3);border-top:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}
.assistant-table thead th{border-top:0;color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.assistant-table tbody th{font-weight:var(--fw-bold)}.assistant-table small{display:block;font-weight:400}
.assistant-table tr.is-inactive{color:var(--muted)}
.assistant-status.is-active{background:var(--green-pale);color:var(--green)}.assistant-status.is-expired,.assistant-status.is-revoked{background:var(--hover);color:var(--muted)}
.assistant-result.is-ok{background:var(--green-pale);color:var(--green)}.assistant-result.is-error{background:var(--red-pale);color:var(--red)}
@media(max-width:760px){.assistant-layout{grid-template-columns:1fr}.copy-row .button,.assistant-table .button{min-height:var(--tap)}.copy-row input{min-height:var(--tap)}}
/* Templates inside New project and Settings (build plan step 19). */
.start-from{margin:0 0 var(--s4);padding:0;border:0;display:grid;gap:var(--s2)}
.start-from legend{padding:0;margin-bottom:var(--s2);font-weight:var(--fw-bold)}
.stack-form .start-option,.start-option{display:flex;flex-direction:row;align-items:flex-start;gap:var(--s3);padding:var(--s3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-weight:400;font-size:var(--fs-md)}
.stack-form .start-option:has(input:checked){border-color:var(--green);background:var(--green-pale)}
.stack-form .start-option input[type=radio]{flex:none;width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--green)}
.stack-form .start-option span{display:grid;gap:2px;min-width:0}.start-option b{overflow-wrap:anywhere}.start-option small{color:var(--muted);font-size:var(--fs-sm)}
.start-preview{padding:var(--s3);border-radius:var(--radius-sm);background:var(--paper)}.start-preview p{margin:0 0 var(--s2)}.start-preview ol{margin:0;padding-left:var(--s5);display:grid;gap:var(--s1);font-size:var(--fs-sm)}
.template-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}
.template-row>span:first-child{display:grid;gap:2px;min-width:0}.template-row small{color:var(--muted);font-size:var(--fs-sm)}
.template-row-actions{display:flex;align-items:center;gap:var(--s2);flex:none}.template-row-actions form{margin:0}
.template-row.is-archived b{color:var(--muted)}
.template-archived-label{margin:var(--s4) 0 0}
@media(max-width:760px){.template-row{flex-wrap:wrap}.template-row-actions .button,.start-option{min-height:var(--tap)}}
/* Notifications grouped by task (build plan step 18). */
.notification-tabs{display:flex;gap:var(--s2);margin:0 0 var(--s3)}
.notification-tabs a{display:inline-flex;align-items:center;gap:var(--s1);min-height:var(--tap);padding:0 var(--s3);border-bottom:2px solid transparent;color:var(--muted);font-size:var(--fs-md);text-decoration:none}
.notification-tabs a.is-active{border-bottom-color:var(--green);color:var(--green);font-weight:var(--fw-bold)}
.notification-tabs .n{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.notification-task-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);margin-bottom:var(--s1)}
.notification-task-title{font-weight:var(--fw-bold);color:var(--ink);text-decoration:none;overflow-wrap:anywhere}.notification-task-title:hover{text-decoration:underline}
.notification-due{color:var(--muted);font-size:var(--fs-sm)}
.notification-message{margin:0 0 var(--s1)}
.notification-earlier{margin-top:var(--s2);font-size:var(--fs-sm);color:var(--ink-soft)}
.notification-earlier summary{cursor:pointer;color:var(--green);font-weight:var(--fw-bold)}
.notification-earlier ul{margin:var(--s2) 0 0;padding-left:var(--s5);display:grid;gap:var(--s1)}
.notification-next{margin-top:var(--s3)}
.notification-read{flex:none}
.notification-retention{margin-top:var(--s4)}
@media(max-width:760px){.notification-card{flex-wrap:wrap}.notification-read{flex:1 1 100%}.notification-read .button,.notification-next .button{min-height:var(--tap)}.notification-read .button{width:100%}}
/* Task detail drawer (build plan step 17). */
.task-drawer{--drawer-w:560px}
.task-drawer-heading{min-width:0}.task-drawer-heading h2{overflow-wrap:anywhere}.task-drawer-heading h2:focus{outline:none}
.drawer-head-actions{display:flex;align-items:center;gap:var(--s2);flex:none}
.drawer-head-actions .icon-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.task-drawer-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3) var(--s4);margin-bottom:var(--s4)}
.task-drawer-fact{display:grid;gap:var(--s1);justify-items:start}
.task-drawer-fact .task-inline-control{margin:0}
.task-drawer-flow{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}
.task-drawer-section{padding:var(--s4) 0;border-top:1px solid var(--line)}
.task-drawer-section h3{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s2);font-size:var(--fs-md)}
.task-drawer-section p{margin:0 0 var(--s2);overflow-wrap:anywhere}
.task-drawer-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s3);margin:var(--s3) 0 0}
.task-drawer-details div{min-width:0}.task-drawer-details dt{color:var(--muted);font-size:var(--fs-sm)}.task-drawer-details dd{margin:0;overflow-wrap:anywhere}
.task-drawer-checklist{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.task-drawer-checklist li{display:flex;align-items:center;gap:var(--s2)}.task-drawer-checklist li.is-done>span:nth-child(2){color:var(--muted);text-decoration:line-through}
.task-drawer-footer{margin:var(--s4) 0 0}
.task-drawer-details-form{gap:var(--s3)}.task-drawer-save{display:flex;justify-content:flex-end}.task-drawer-stamp{margin:0;font-size:var(--fs-sm)}
.task-drawer [data-region=checklist]{border-bottom:0;padding-bottom:var(--s2)}.task-drawer [data-region=checklist-add]{margin-bottom:var(--s2)}
.task-drawer [data-region=checklist-add] .checklist-add{margin:0}
.task-drawer [data-region=comment-form] .comment-form{margin:0 0 var(--s4)}
.task-drawer-danger{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}.task-drawer-danger form{margin:0}
.task-drawer-notice{margin:0 0 var(--s4);color:var(--ink-soft)}
.task-drawer [aria-busy=true]{opacity:.6}
@media(max-width:760px){.task-drawer-facts{grid-template-columns:1fr 1fr}}
/* Notifications, invite link, template menu and password toggle (build plan step 16). */
.notification-task{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s2)}
.invite-result{margin-top:var(--s4);padding:var(--s3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper)}
.invite-result p{margin:0 0 var(--s2)}
.copy-row{display:flex;gap:var(--s2)}.copy-row input{flex:1;min-width:0;font-size:var(--fs-sm)}
.template-menu{position:relative}.template-menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.template-menu summary::-webkit-details-marker{display:none}
.template-menu-panel{position:absolute;right:0;top:100%;z-index:5;min-width:170px;padding:var(--s1);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow)}
.template-menu-panel button{display:block;width:100%;min-height:40px;padding:0 var(--s3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer}
.template-menu-panel button:hover{background:var(--hover)}
.template-drawer{--drawer-w:440px}.template-drawer .template-launch-form{border-top:0;padding-top:0}
.password-field{display:flex;gap:var(--s2);align-items:stretch}.password-field input{flex:1;min-width:0}
.password-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white);color:var(--green);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-bold);padding:0 var(--s3);min-height:var(--tap);cursor:pointer}
.field-hint{display:block;margin-top:var(--s1);color:var(--muted);font-size:var(--fs-sm);font-weight:400}
/* Drawer form errors (build plan step 15). */
.form-error{margin:0 0 var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--red);border-radius:var(--radius-sm);background:var(--red-pale);color:var(--red);font-size:var(--fs-md)}
.form-error[hidden]{display:none}
.field-error{display:block;margin-top:var(--s1);color:var(--red);font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.stack-form [aria-invalid=true]{border-color:var(--red)}
@media(max-width:760px){.metric-grid{grid-template-columns:1fr 1fr}.team-name{flex-basis:100%}.row-approve .button{min-height:var(--tap)}}
