:root{--red:#d8352a;--green:#1d484a;--ink:#161b20;--muted:#6b7280;--line:#e5e7eb;--bg:#f5f7fb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}.brand-logo{display:block;width:auto;height:auto;object-fit:contain}.login-logo{width:150px;justify-self:center}.sidebar-logo{width:190px;max-width:100%}.login-shell{min-height:100vh;display:grid;place-content:center;gap:28px;padding:32px}.login-card{width:min(440px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px;box-shadow:0 14px 30px #0f172a0f}.login-card h1{margin:0;font-size:25px}.login-card>p{margin:4px 0 24px;color:var(--muted)}.stack{display:grid;gap:16px}.stack label{display:grid;gap:6px}.stack input,.task-form input,.task-form select,.task-form textarea{padding:12px 13px;border:1px solid #d1d5db;border-radius:8px;background:#fff}.stack .remember{display:flex;align-items:center;font-size:14px;color:var(--muted)}.primary,.secondary,.danger{border-radius:999px;padding:10px 18px;font-weight:650;cursor:pointer}.primary{border:0;background:var(--red);color:#fff}.secondary{background:#fff;border:1px solid #d1d5db;color:var(--ink)}.danger{background:#fff;border:1px solid #fecaca;color:#b91c1c}.button-link{display:inline-flex;align-items:center;text-decoration:none}.error{color:var(--red);font-size:14px}.demo-note{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:grid;color:var(--muted);font-size:13px}.demo-note strong{color:var(--ink);margin-bottom:5px}.portal{display:flex;min-height:100vh}.sidebar{width:272px;position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;gap:30px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a{padding:9px;border-radius:8px;color:var(--ink);text-decoration:none}.sidebar nav a.active{background:#fdf0ef;color:var(--red);font-weight:650}.sidebar nav small{padding:18px 9px 5px;color:#9ca3af;font-weight:700;letter-spacing:.06em}.profile{border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:40px 1fr;gap:10px}.profile .avatar{width:40px;height:40px;border-radius:50%;display:grid;place-content:center;background:var(--green);color:#fff}.profile div{display:grid}.profile small{color:var(--muted);text-transform:capitalize}.profile form{grid-column:1/-1}.profile button{width:100%}.content{flex:1;min-width:0;padding:38px 40px 64px}.page-header{display:flex;justify-content:space-between;align-items:end;gap:20px}.page-header h1{margin:0;font-size:30px}.page-header p{margin:4px 0 0;color:var(--muted)}.flash{margin-top:22px;padding:11px 14px;border-radius:9px;background:#e6efef;color:var(--green);font-weight:600}.tabs{display:flex;gap:10px;margin:28px 0 20px;flex-wrap:wrap}.tabs a{color:var(--ink);text-decoration:none;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:8px 16px}.tabs span{color:var(--muted)}.task-section{margin-top:28px}.task-section h2{font-size:18px}.task-list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0f172a0a}.task{display:grid;grid-template-columns:24px minmax(230px,1fr) 180px 150px 65px;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);align-items:start}.task:last-child{border:0}.task form{margin:0}.check{width:22px;height:22px;border:1px solid #d1d5db;border-radius:5px;display:grid;place-content:center;background:#fff;color:#fff;padding:0;cursor:pointer}.task-section[id=done] .check{background:var(--green);border-color:var(--green)}.task-main{display:grid;gap:3px}.task-title{font-weight:700;color:var(--ink);text-decoration:none}.task-title:hover{color:var(--red)}.eyebrow,.subtasks{font-size:12px;color:var(--muted)}.meta{display:flex;gap:7px;flex-wrap:wrap}.category,.priority,.visibility{font-size:12px;padding:3px 8px;border-radius:999px;background:#f3f4f6}.priority.high{color:var(--red)}.assignees,time,.visibility{font-size:13px;color:var(--muted)}.empty{padding:30px;text-align:center;color:var(--muted)}.form-shell{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:34px 0 70px}.back{display:inline-block;margin-bottom:16px;color:var(--red);text-decoration:none}.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 14px 30px #0f172a0f}.form-card h1{margin:2px 0 0}.task-form{display:grid;gap:20px;margin-top:24px}.task-form>label,.form-grid label{display:grid;gap:6px;font-weight:600}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}fieldset{border:1px solid var(--line);border-radius:10px;padding:16px}legend{font-weight:700;padding:0 6px}.choices{display:flex;gap:10px;flex-wrap:wrap}.choices.vertical{display:grid}.choice{display:flex;align-items:center;gap:7px;background:#f8fafc;border-radius:999px;padding:7px 11px}.client-choices{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.form-actions{display:flex;gap:10px}.delete-form{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.error-box{background:#fef2f2;color:#991b1b;border-radius:9px;padding:12px 16px}.error-box ul{margin:5px 0 0}.form-card .eyebrow{text-transform:uppercase;letter-spacing:.06em}@media(max-width:1050px){.sidebar{width:220px}.task{grid-template-columns:24px 1fr 120px}.assignees,time,.visibility{grid-column:2}.meta{grid-column:3;grid-row:1/3}.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.portal{display:block}.sidebar{position:relative;width:100%;height:auto}.sidebar nav{display:none}.content{padding:24px 16px}.task{grid-template-columns:24px 1fr}.meta,.assignees,time,.visibility{grid-column:2;grid-row:auto}.page-header{align-items:start}.form-grid.two,.form-grid.four{grid-template-columns:1fr}.form-card{padding:22px}.sidebar-logo{width:150px}}
.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:26px}.filters select{min-width:190px;padding:10px 38px 10px 14px;border:1px solid #d1d5db;border-radius:999px;background:#fff;color:var(--ink)}.filters a{color:var(--red);text-decoration:none;font-size:14px}.tabs{margin-top:18px}.tabs a.active{background:var(--green);border-color:var(--green);color:#fff}.tabs a.active span{color:#fff}.subtask-row{background:#fafbfc;padding-top:11px;padding-bottom:11px}.subtask-main{position:relative;padding-left:24px}.subtask-arrow{position:absolute;left:0;color:#cbd5e1}.subtask-row .task-title{font-weight:500}.is-done{text-decoration:line-through;color:#9ca3af!important}.subtask-row .check{width:17px;height:17px;margin:2px 0 0 3px;font-size:11px}.subtask-row .check:not(:empty){background:var(--green);border-color:var(--green)}@media(max-width:720px){.filters{align-items:stretch}.filters select{width:100%}}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(15,23,42,.48);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:5vh 20px;overflow-y:auto}.task-modal{width:min(980px,100%);max-height:90vh;overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(15,23,42,.28);padding:26px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.modal-header h2{margin:2px 0 0;font-size:24px}.modal-close{width:38px;height:38px;display:grid;place-content:center;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:25px;line-height:1;text-decoration:none}.modal-close:hover{color:var(--red);border-color:#f3aaa5}.modal-form{margin-top:22px}.modal-actions{display:flex;justify-content:flex-end;padding-top:4px}.modal-delete{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}@media(max-width:720px){.modal-backdrop{padding:0}.task-modal{min-height:100vh;max-height:none;border-radius:0;padding:20px}.modal-actions .form-actions{width:100%;flex-direction:column}.modal-actions .primary,.modal-actions .secondary{justify-content:center;width:100%}}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.invite-modal{width:min(560px,100%)}.invite-copy{margin:18px 0 0;color:var(--muted)}.project-clients{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.project-clients h3{margin:0 0 10px;font-size:15px}.project-clients ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.project-clients li{display:flex;justify-content:space-between;gap:16px;padding:9px 11px;border-radius:9px;background:#f8fafc}.project-clients small{color:var(--muted)}
.label-note,.form-hint{font-weight:400;color:var(--muted)}.form-hint{font-size:12px;line-height:1.45}
.task{position:relative;transition:transform .55s ease,opacity .55s ease,background-color .3s ease}.move-indicator{display:none;position:absolute;inset:0;z-index:2;align-items:center;justify-content:center;background:rgba(230,239,239,.94);color:var(--green);font-size:14px}.task.is-moving{transform:translateY(-8px);opacity:0;background:#e6efef;pointer-events:none}.task.is-moving .move-indicator{display:flex;animation:moveMessage .35s ease forwards}.task-flyer{position:fixed;z-index:75;width:28px;height:28px;display:grid;place-content:center;border-radius:50%;background:var(--green);color:#fff;font-weight:800;box-shadow:0 7px 18px rgba(15,23,42,.25);pointer-events:none;transition:transform .75s cubic-bezier(.35,.05,.25,1),opacity .75s ease}.task-flyer.is-flying{transform:translate(var(--fly-x),var(--fly-y)) scale(.55);opacity:.15}.tabs a{transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.tabs a.is-receiving{animation:receiveTask .8s ease}.toast-stack{position:fixed;z-index:80;top:24px;right:24px;width:min(390px,calc(100vw - 32px));display:grid;gap:10px}.toast{position:relative;display:grid;grid-template-columns:30px 1fr 24px;align-items:start;gap:10px;overflow:hidden;padding:15px 14px;background:#fff;color:var(--ink);border:1px solid #dbe4e4;border-radius:13px;box-shadow:0 18px 50px rgba(15,23,42,.2);animation:toastIn .3s ease both}.toast>span:nth-child(2){display:grid;gap:2px}.toast a{color:var(--red);font-size:13px;font-weight:700;text-decoration:none}.toast-icon{width:28px;height:28px;display:grid;place-content:center;border-radius:50%;background:var(--green);color:#fff;font-weight:800}.toast-close{border:0;background:transparent;color:#9ca3af;font-size:22px;line-height:1;padding:1px;cursor:pointer}.toast-close:hover{color:var(--ink)}.toast-timer{position:absolute!important;left:0;bottom:0;width:100%;height:3px;background:var(--green);transform-origin:left;animation:toastTimer 5s linear forwards}.toast.is-hiding{animation:toastOut .25s ease forwards}@keyframes moveMessage{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}@keyframes receiveTask{0%,100%{transform:scale(1);box-shadow:none}45%{transform:scale(1.07);box-shadow:0 0 0 7px rgba(29,72,74,.12)}}@keyframes toastIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes toastOut{to{opacity:0;transform:translateX(24px)}}@keyframes toastTimer{to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.task{transition:opacity .15s ease}.task.is-moving{transform:none}.task-flyer{display:none}.task.is-moving .move-indicator,.tabs a.is-receiving,.toast,.toast-timer,.toast.is-hiding{animation:none}}@media(max-width:720px){.toast-stack{top:12px;right:16px}}
