:root{color:#17211c;font-synthesis:none;letter-spacing:0;--ink:#17211c;--muted:#657069;--line:#dfe5e1;--surface:#fff;--canvas:#f4f6f4;--green:#174f3b;--green-soft:#e1eee8;--coral:#d2614c;--coral-soft:#f7e5e1;--amber:#b17a16;--amber-soft:#f6edda;--blue:#3c6885;--blue-soft:#e2edf3;background:#f4f6f4;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box;letter-spacing:0}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #3c688538}.login-page{background:var(--surface);grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.login-context{background:var(--green);color:#fff;flex-direction:column;justify-content:space-between;padding:46px clamp(40px,6vw,88px);display:flex;overflow:hidden}.brand-lockup{align-items:center;gap:10px;font-size:18px;display:flex}.brand-symbol{color:#fff;background:var(--coral);border-radius:7px;flex:none;place-items:center;width:34px;height:34px;display:inline-grid}.login-message{max-width:650px;margin-top:56px}.context-tag,.eyebrow{color:#98b6aa;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.login-message h1{max-width:620px;margin:20px 0;font-size:clamp(42px,5.4vw,72px);font-weight:760;line-height:1.08}.login-message p{color:#c7d9d1;margin:0;font-size:18px}.column-dot{background:currentColor;border-radius:50%;width:8px;height:8px;margin-top:4px}.login-panel{place-items:center;padding:40px;display:grid}.login-form-wrap{width:min(100%,390px)}.login-form-wrap h2{margin:8px 0 6px;font-size:30px}.login-subtitle{color:var(--muted);margin:0 0 30px}.mobile-brand{display:none}form{gap:18px;display:grid}label{color:#39443e;gap:8px;font-size:13px;font-weight:700;display:grid}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cfd7d2;border-radius:6px;padding:11px 12px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#9eaaa3}textarea{resize:vertical;line-height:1.55}.form-error,.page-error{border-left:3px solid var(--coral);background:var(--coral-soft);color:#8b382a;margin:0;padding:10px 12px;font-size:13px}.primary-button,.secondary-button,.danger-button{white-space:nowrap;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-weight:750;display:inline-flex}.primary-button{color:#fff;background:var(--green)}.primary-button:hover{background:#0e3d2c}.primary-button:disabled{opacity:.55;cursor:wait}.secondary-button{border:1px solid var(--line);color:#38423d;background:#fff}.danger-button{color:#a13d2c;background:var(--coral-soft)}.login-form-wrap .primary-button{width:100%;margin-top:4px}.demo-account{border-top:1px solid var(--line);color:var(--muted);gap:4px;margin-top:26px;padding-top:20px;font-size:12px;display:grid}.demo-account code{color:#34443c;overflow-wrap:anywhere;font-size:12px}.loading-screen{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:12px;display:grid}.loading-mark{color:#fff;background:var(--green);border-radius:7px;place-items:center;width:42px;height:42px;display:grid}.app-shell{min-height:100vh}.sidebar{z-index:20;color:#eaf1ed;background:#18362b;flex-direction:column;width:244px;padding:24px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-head{justify-content:space-between;align-items:center;padding:0 8px;display:flex}.sidebar-close{color:#fff;display:none}.workspace-switch{background:#ffffff12;border:1px solid #ffffff14;border-radius:7px;align-items:center;gap:10px;margin:28px 2px 24px;padding:13px 12px;display:flex}.workspace-switch>span{color:#173a2e;background:#dcebe4;border-radius:6px;place-items:center;width:32px;height:32px;font-size:12px;font-weight:850;display:grid}.workspace-switch div,.profile div{gap:3px;min-width:0;display:grid}.workspace-switch strong,.profile strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.workspace-switch small,.profile small{color:#9fb5ac;font-size:10px}.sidebar nav{gap:5px;display:grid}.sidebar nav button{color:#b8c9c1;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;width:100%;min-height:43px;padding:0 12px;font-size:14px;font-weight:650;display:flex}.sidebar nav button:hover{color:#fff;background:#ffffff0f}.sidebar nav button.active{color:#fff;background:#295746}.nav-label{align-items:center;gap:7px;display:inline-flex}.new-task-dot{background:#ef6351;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 2px #ef63512e}.sidebar-foot{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:16px 6px 0;display:flex}.profile{align-items:center;gap:10px;min-width:0;display:flex}.avatar{color:#173a2e;background:#dcebe4;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:inline-grid}.avatar.small{width:30px;height:30px}.icon-button{width:34px;height:34px;color:inherit;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;display:inline-grid}.icon-button:hover{background:#0000000f}.sidebar .icon-button:hover{background:#ffffff17}.main-content{min-height:100vh;margin-left:244px;padding:34px clamp(24px,3.2vw,52px) 48px;overflow-x:hidden}.mobile-topbar{display:none}.page-header{justify-content:space-between;align-items:flex-end;gap:20px;min-height:82px;margin-bottom:28px;display:flex}.page-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.notification-button:disabled{opacity:.58;cursor:not-allowed}.page-header h1{margin:5px 0 4px;font-size:29px;line-height:1.2}.page-header p:not(.eyebrow){color:var(--muted);margin:0;font-size:14px}.eyebrow{color:var(--green);margin:0}.page-error{margin-bottom:18px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:32px;display:grid}.stat-card{border:1px solid var(--line);background:var(--surface);border-radius:7px;align-items:flex-start;gap:14px;min-height:118px;padding:20px;display:flex}.stat-card-button{width:100%;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.stat-card-button:hover{background:#fbfdfb;border-color:#9eaaa3}.stat-card-button[aria-pressed=true]{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}.stat-card-button:focus-visible{outline-offset:3px;outline:3px solid #3c688538}.stat-icon{border-radius:7px;flex:none;place-items:center;width:38px;height:38px;display:grid}.tone-blue .stat-icon{color:var(--blue);background:var(--blue-soft)}.tone-amber .stat-icon{color:var(--amber);background:var(--amber-soft)}.tone-green .stat-icon{color:var(--green);background:var(--green-soft)}.tone-coral .stat-icon{color:var(--coral);background:var(--coral-soft)}.stat-card>div:last-child{gap:3px;display:grid}.stat-card span{color:var(--muted);font-size:12px;font-weight:700}.stat-card strong{font-size:27px;line-height:1.2}.stat-card small{color:#88918c;font-size:11px}.section-heading{justify-content:space-between;align-items:end;margin:0 0 15px;display:flex}.section-heading h2{margin:0 0 4px;font-size:17px}.section-heading p{color:var(--muted);margin:0;font-size:12px}.board{grid-template-columns:repeat(3,minmax(240px,1fr));align-items:start;gap:15px;display:grid}.column{border:1px solid var(--line);background:#eef1ef;border-radius:7px;min-width:0;overflow:hidden}.column>header{border-bottom:1px solid var(--line);background:#ffffff80;justify-content:space-between;align-items:center;min-height:51px;padding:0 14px;display:flex}.column>header>div{align-items:center;gap:8px;display:flex}.column h2{margin:0;font-size:14px}.column .column-dot{margin:0}.column-coral .column-dot{color:var(--coral)}.column-amber .column-dot{color:var(--amber)}.column-green .column-dot{color:var(--green)}.count-pill{color:#56615b;background:#dce2de;border-radius:11px;place-items:center;min-width:25px;height:22px;padding:0 7px;font-size:11px;font-weight:800;display:grid}.task-list{align-content:start;gap:10px;min-height:250px;padding:11px;display:grid}.completed-group{background:#ffffff9e;border:1px solid #dce2de;border-radius:6px;min-width:0;overflow:hidden}.completed-group>summary{color:#526058;cursor:pointer;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:12px;font-weight:800;display:flex}.completed-group>summary span{flex:1}.completed-group>summary small{color:var(--muted);font-size:11px;font-weight:700}.completed-group-tasks{gap:9px;padding:0 9px 9px;display:grid}.task-card{background:#fff;border:1px solid #dce2de;border-radius:6px;padding:14px;box-shadow:0 1px 2px #18362b0a}.task-card:hover{border-color:#bec9c2}.task-topline{justify-content:space-between;align-items:center;gap:8px;min-height:28px;display:flex}.priority{border-radius:4px;padding:4px 7px;font-size:10px;font-weight:800}.priority-high{color:#a33e2c;background:var(--coral-soft)}.priority-medium{color:#80580d;background:var(--amber-soft)}.priority-low{color:#376278;background:var(--blue-soft)}.task-actions{display:flex}.task-actions .icon-button{color:#6b756f;width:28px;height:28px}.task-actions .action{color:var(--green)}.task-card h3{overflow-wrap:anywhere;margin:10px 0 7px;font-size:14px;line-height:1.42}.task-description{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 13px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.task-group{color:#55655d;margin:-1px 0 4px;font-size:10px;font-weight:750;display:inline-block}.task-card footer{color:#78817c;border-top:1px solid #edf0ee;justify-content:space-between;align-items:flex-end;gap:8px;min-height:26px;margin-top:13px;padding-top:11px;font-size:11px;display:flex}.task-footer-meta{gap:5px;min-width:0;display:grid}.task-creator{color:#8a948e;overflow-wrap:anywhere;font-size:10px}.assignee{align-items:center;gap:6px;min-width:0;display:flex}.assignee>span{background:var(--green-soft);width:23px;height:23px;color:var(--green);border-radius:50%;place-items:center;font-weight:800;display:grid}.task-card time{white-space:nowrap;align-items:center;gap:4px;display:flex}.overdue-label{color:var(--coral);font-weight:800}.empty-column{color:#9aa39e;place-content:center;justify-items:center;gap:5px;min-height:120px;display:grid}.empty-column p{margin:0;font-size:12px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:7px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:680px}th,td{text-align:left;border-bottom:1px solid #e8ece9;padding:16px 18px;font-size:13px}th{color:#718078;text-transform:uppercase;background:#f8faf8;font-size:11px}tbody tr:last-child td{border-bottom:0}.member-cell{align-items:center;gap:10px;display:flex}.member-cell>span{width:34px;height:34px;color:var(--green);background:var(--green-soft);border-radius:50%;place-items:center;font-weight:800;display:grid}.member-cell div{gap:3px;display:grid}.member-cell small{color:var(--muted)}.role-tag{color:#3c6277;background:var(--blue-soft);border-radius:4px;padding:4px 7px;font-size:11px;font-weight:700}.progress-cell{align-items:center;gap:10px;display:flex}.progress-cell>div{background:#e9eeeb;border-radius:3px;width:90px;height:5px;overflow:hidden}.progress-cell span{background:var(--green);height:100%;display:block}.progress-cell b{font-size:11px}.summary-layout{grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:start;gap:18px;display:grid}.summary-group-picker{justify-content:flex-end;margin:-10px 0 18px;display:flex}.summary-group-picker label{width:min(100%,260px);color:var(--muted);font-size:12px}.summary-form-section,.status-summary{border:1px solid var(--line);background:#fff;border-radius:7px;padding:22px}.summary-form{gap:16px}.summary-form textarea[readonly],.summary-form input[readonly]{color:#58645e;background:#f5f7f5}.summary-actions{min-height:42px;color:var(--green);justify-content:flex-end;align-items:center;gap:14px;font-size:12px;display:flex}.status-summary h3{margin:0 0 24px;font-size:15px}.distribution{margin-bottom:21px}.distribution>div:first-child{justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.distribution-track{background:#edf0ee;border-radius:4px;height:7px;overflow:hidden}.distribution-track span{height:100%;display:block}.distribution-track .coral{background:var(--coral)}.distribution-track .amber{background:var(--amber)}.distribution-track .green{background:var(--green)}.monthly-reports{border:1px solid var(--line);background:#fff;border-radius:7px;margin-top:22px;padding:22px}.monthly-reports>.section-heading{align-items:center}.monthly-report-table{min-width:860px}.monthly-report-table td{vertical-align:middle}.report-status-note{color:var(--muted);margin-top:3px;display:block}.report-overdue{color:var(--green);background:var(--green-soft);border-radius:4px;padding:4px 7px;font-size:11px;font-weight:750;display:inline-block}.report-overdue.has-overdue{color:#9b493a;background:var(--coral-soft)}.report-downloads{gap:6px;display:flex}.report-downloads a{border:1px solid var(--line);color:var(--green);border-radius:5px;padding:6px 9px;font-size:11px;font-weight:750;text-decoration:none}.report-downloads a:hover{background:var(--green-soft);border-color:#91a99c}.monthly-report-empty{min-height:120px;color:var(--muted);text-align:center;place-content:center;justify-items:center;gap:5px;display:grid}.monthly-report-empty p{margin:0;font-size:13px}.monthly-report-empty small{font-size:11px}.modal-backdrop{z-index:50;background:#0b1a148c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.task-dialog{background:#fff;border-radius:8px;width:min(100%,600px);max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 60px #0000002e}.task-dialog>header{z-index:1;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:flex-start;padding:21px 22px 17px;display:flex;position:sticky;top:0}.task-dialog h2{margin:4px 0 0;font-size:21px}.task-dialog form{padding:22px}.form-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.dialog-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.dialog-actions>div{gap:9px;margin-left:auto;display:flex}.overview-dialog{flex-direction:column;width:min(100%,960px);display:flex;overflow:hidden}.overview-dialog>header{flex:none}.overview-dialog>header small{color:var(--muted);margin-top:5px;font-size:12px;display:block}.overview-dialog-body{min-height:180px;max-height:calc(100vh - 150px);padding:18px 22px 22px;overflow-y:auto}.overview-task-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:start;gap:12px;display:grid}.overview-dialog .task-description{display:block;overflow:visible}.overview-dialog-empty{color:#87938b;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:180px;display:grid}.overview-dialog-empty p{margin:0;font-size:13px}.compact-dialog{width:min(100%,480px)}.assignee-picker{border:0;grid-row:span 2;gap:7px;min-width:0;margin:0;padding:0;display:grid}.assignee-picker legend{color:#39443e;margin:0 0 8px;padding:0;font-size:13px;font-weight:700}.assignee-picker>label{border:1px solid var(--line);cursor:pointer;border-radius:6px;grid-template-columns:none;align-items:center;gap:9px;min-height:42px;padding:8px 10px;display:flex}.assignee-picker>label:has(input:checked){background:var(--green-soft);border-color:#7ba08f}.assignee-picker input{width:17px;height:17px;accent-color:var(--green);margin:0}.assignee-picker label>span{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.assignee-picker small{color:var(--muted);font-size:10px}.assignee-picker p{color:var(--muted);border:1px dashed var(--line);border-radius:6px;margin:0;padding:12px;font-size:12px}.historical-assignee{background:#fbf6f5;border:1px dashed #c9b9b5;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:8px 10px;display:flex}.historical-assignee>span{color:#6d514b;gap:2px;font-size:12px;font-weight:700;display:grid}.historical-assignee small{color:#8b736e;font-size:10px;font-weight:500}.historical-assignee button{color:#9b493a;background:0 0;border:0;font-size:11px;font-weight:750}.personal-progress{border-left:3px solid var(--blue);background:var(--blue-soft);color:#38586b;padding:11px 12px;font-size:12px}.personal-progress p{margin:5px 0 0;line-height:1.45}.sidebar-scrim{display:none}.groups-layout{grid-template-columns:minmax(210px,.32fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.group-list,.group-detail{border:1px solid var(--line);background:var(--surface);border-radius:7px}.group-list{padding:18px 12px}.group-list .section-heading{padding:0 6px}.group-list-items{gap:5px;display:grid}.group-list-items button{color:#526058;text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:19px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:42px;padding:0 9px;font-size:13px;font-weight:700;display:grid}.group-list-items button:hover{background:#f1f5f2}.group-list-items button.active{color:var(--green);background:var(--green-soft)}.group-list-items button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.group-list-items small{min-width:20px;color:inherit;text-align:right;font-size:11px}.group-detail{min-width:0;padding:22px}.group-detail .section-heading h2{font-size:21px}.empty-note{color:var(--muted);margin:18px 6px;font-size:12px;line-height:1.5}.empty-group{color:#7b8881;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:250px;display:grid}.empty-group p{margin:0;font-size:13px}.add-member-form{align-items:end;gap:10px;margin:2px 0 16px;display:flex}.add-member-form label{flex:1;margin:0}.add-member-form .primary-button{flex:none}.inline-message{color:var(--green);margin:-4px 0 12px;font-size:12px}.group-detail table select{min-width:104px;margin:0;padding:7px 8px;font-size:12px}.group-detail th:last-child,.group-detail td:last-child{width:44px;padding-left:4px;padding-right:8px}.group-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.group-delete-button{color:#a13d2c}.accounts-panel{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:22px}.accounts-panel>.section-heading{align-items:center}.accounts-table{min-width:820px}.accounts-table th:last-child,.accounts-table td:last-child{width:190px}.member-cell strong{align-items:center;gap:7px;display:flex}.self-label{color:var(--green);background:var(--green-soft);border-radius:3px;padding:2px 5px;font-size:9px;font-weight:750}.account-status{border-radius:4px;padding:4px 7px;font-size:11px;font-weight:750;display:inline-block}.account-status.on{color:var(--green);background:var(--green-soft)}.account-status.off{color:#7a4a42;background:var(--coral-soft)}.disabled-account{opacity:.7;background:#fafafa}.row-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.small-button{min-height:32px;padding:0 10px;font-size:11px}.small-button:disabled{opacity:.4;cursor:not-allowed}@media (width<=1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.board{scroll-snap-type:x proximity;grid-template-columns:repeat(3,minmax(280px,1fr));padding-bottom:8px;overflow-x:auto}.column{scroll-snap-align:start}.summary-layout,.groups-layout{grid-template-columns:1fr}.group-list{padding:14px}.group-list-items{grid-auto-columns:minmax(160px,1fr);grid-auto-flow:column;padding-bottom:3px;overflow-x:auto}.group-list-items button{border:1px solid var(--line)}.group-detail{padding:18px}}@media (width<=768px){.login-page{grid-template-columns:1fr}.login-context{display:none}.login-panel{align-content:start;min-height:100vh;padding:28px 22px}.mobile-brand{align-items:center;gap:9px;width:100%;margin-bottom:12vh;display:flex}.login-form-wrap{align-self:start}.login-form-wrap h2{font-size:27px}.sidebar{transition:transform .2s;transform:translate(-100%);box-shadow:12px 0 40px #00000029}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-grid}.sidebar-scrim{z-index:19;background:#08161070;border:0;display:block;position:fixed;inset:0}.main-content{margin-left:0;padding:0 18px 36px}.mobile-topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:62px;margin:0 -18px;padding:0 18px;display:flex}.mobile-topbar .brand-lockup{font-size:15px}.mobile-topbar .brand-symbol{width:29px;height:29px}.page-header{align-items:center;min-height:100px;margin-bottom:22px}.page-header h1{font-size:24px}.page-header p:not(.eyebrow){display:none}.page-header .primary-button{min-width:42px;padding:0 12px}.board{grid-template-columns:repeat(3,minmax(83vw,1fr));margin-right:-18px;padding-right:18px}.task-list{min-height:330px}.summary-layout{gap:12px}.summary-form-section,.status-summary,.monthly-reports{padding:18px}.monthly-reports>.section-heading{align-items:flex-start;gap:12px}.group-detail>.section-heading{flex-wrap:wrap;align-items:flex-start;gap:12px}.group-heading-actions{justify-content:flex-start}.add-member-form{flex-direction:column;align-items:stretch}.add-member-form .primary-button{width:100%}.summary-group-picker{justify-content:stretch;margin-top:-4px}.summary-group-picker label{width:100%}.accounts-panel{padding:16px}.accounts-panel>.section-heading{align-items:flex-start;gap:14px}.accounts-panel>.section-heading .primary-button{min-width:auto;font-size:13px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{gap:10px;min-height:105px;padding:14px}.stat-icon{width:32px;height:32px}.stat-card strong{font-size:22px}.stat-card small{display:none}.page-header .primary-button{font-size:0}.page-header .primary-button svg{width:18px;height:18px}.notification-button{width:42px;padding:0}.notification-button span{display:none}.form-grid{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:0}.task-dialog{border-radius:8px 8px 0 0;max-height:92vh}.task-dialog>header,.task-dialog form{padding-left:18px;padding-right:18px}.overview-dialog-body{max-height:calc(92vh - 92px);padding:14px 18px 18px}.overview-task-grid{grid-template-columns:1fr}.dialog-actions{align-items:stretch}.dialog-actions,.dialog-actions>div{flex-wrap:wrap}.dialog-actions>div{width:100%}.dialog-actions>div button{flex:1}th,td{padding:13px 14px}}
