:root{--ink:#1d1d1b;--muted:#797874;--paper:#f3f2ee;--card:#fff;--line:#deddd7;--violet:#6d5dfc;--violet-soft:#eeebff;--green:#2c8b68;--green-soft:#e5f5ed;--amber:#b86818;--amber-soft:#fff1dd;--red:#d34c4c;--shadow:0 18px 55px rgba(32,31,28,.08);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);font-size:15px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{text-decoration:none;color:inherit}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.02em}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:11px;font-size:17px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13)}.eyebrow,.step-label,.side-label{text-transform:uppercase;font-size:11px;line-height:1.2;letter-spacing:.12em;font-weight:800;color:#8d8b84}.button{min-height:46px;padding:0 19px;border:0;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;cursor:pointer;transition:.2s ease;background:#fff}.button:hover{transform:translateY(-1px)}.button--primary{background:var(--violet);color:#fff;box-shadow:0 8px 22px rgba(109,93,252,.24)}.button--secondary{background:#fff;border:1px solid var(--line)}.button--dark{background:var(--ink);color:#fff}.button--success{background:var(--green);color:#fff}.button--wide{width:100%}.button-plus{font-size:20px;font-weight:400;margin-top:-2px}.muted{color:var(--muted);line-height:1.65}.back-link{font-weight:700;color:#777;font-size:13px}.back-link:hover{color:var(--ink)}
/* login */.auth-page{background:#eeede8}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(500px,1.05fr) minmax(430px,.95fr)}.auth-brand{background:#171716;color:#fff;padding:44px clamp(42px,6vw,94px);position:relative;overflow:hidden;display:flex;flex-direction:column}.auth-brand:before{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-310px;top:-260px;box-shadow:0 0 0 90px rgba(255,255,255,.018),0 0 0 180px rgba(255,255,255,.014)}.brand--large .brand-mark{background:#fff;color:var(--ink)}.auth-promise{margin:auto 0 48px;position:relative;z-index:1;max-width:650px}.auth-promise .eyebrow{color:#97958f}.auth-promise h1{font-size:clamp(44px,5vw,72px);line-height:1.06;letter-spacing:-.055em;margin:20px 0 22px}.auth-promise h1 em{font-family:Georgia,serif;font-weight:400;color:#a99cff}.auth-promise p{color:#a6a49d;font-size:17px;line-height:1.7;max-width:480px}.auth-preview{position:relative;z-index:1;background:#262624;border:1px solid #383835;border-radius:20px;padding:18px;box-shadow:0 25px 60px rgba(0,0,0,.3);transform:rotate(-1deg);max-width:590px}.preview-top{display:flex;gap:6px;margin-bottom:14px}.preview-top span{width:7px;height:7px;background:#4d4b47;border-radius:50%}.preview-task{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:13px;background:#2f2e2b;padding:14px;border-radius:13px;margin-top:8px}.preview-task--active{background:#f4f2ed;color:var(--ink)}.preview-check,.preview-progress{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#416f5e;color:#fff}.preview-progress{background:var(--violet-soft);position:relative}.preview-progress:after{content:"";width:8px;height:8px;border:3px solid var(--violet);border-top-color:transparent;border-radius:50%}.preview-task b,.preview-task small{display:block}.preview-task b{font-size:12px}.preview-task small{font-size:9px;color:#85827b;margin-top:4px}.preview-pill{font-size:9px;padding:6px 8px;border-radius:20px;background:#44423e}.preview-task--active .preview-pill{background:#ded9ff;color:#5144c5}.auth-card-wrap{display:grid;place-items:center;padding:40px}.auth-card{width:min(100%,450px);background:#fff;padding:clamp(30px,5vw,52px);border-radius:28px;box-shadow:var(--shadow)}.auth-card h2{font-size:32px;letter-spacing:-.04em;margin:12px 0 7px}.auth-card .back-link{display:inline-block;margin-bottom:28px}.stack-form{display:flex;flex-direction:column;gap:17px;margin-top:28px}.stack-form label{font-size:12px;font-weight:800;color:#605f5b;letter-spacing:.01em}.stack-form input,.stack-form textarea,.stack-form select{width:100%;margin-top:8px;border:1px solid var(--line);background:#fafaf8;border-radius:12px;padding:13px 14px;outline:0;transition:.2s}.stack-form input{height:49px}.stack-form textarea{resize:vertical;line-height:1.55}.stack-form input:focus,.stack-form textarea:focus,.stack-form select:focus,.comment-form textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(109,93,252,.1);background:#fff}.code-input{font-size:27px!important;letter-spacing:.26em;text-align:center;font-weight:800}.auth-foot{text-align:center;color:#a09e98;font-size:11px;margin:25px 0 -12px}.alert{border-radius:11px;padding:12px 14px;font-size:12px;margin-top:18px;line-height:1.5}.alert--error{background:#fff0f0;color:#a63636}.alert--dev{background:var(--amber-soft);color:#925518}
/* shell */.app-header{height:76px;border-bottom:1px solid var(--line);padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:rgba(243,242,238,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30}.header-actions{display:flex;align-items:center;gap:10px}.icon-button{border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;cursor:pointer}.profile{position:relative}.profile-button{border:0;background:none;display:flex;align-items:center;gap:10px;padding:5px;cursor:pointer;border-radius:12px}.avatar{--avatar:#6d5dfc;flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;background:var(--avatar);color:#fff;border-radius:11px;font-weight:800;font-size:13px}.avatar--large{width:45px;height:45px;border-radius:14px}.avatar--tiny{width:25px;height:25px;border-radius:8px;font-size:10px}.profile-copy{text-align:left}.profile-copy b,.profile-copy small{display:block}.profile-copy b{font-size:12px}.profile-copy small{font-size:10px;color:var(--muted);margin-top:2px}.chevron{color:#888}.profile-menu{display:none;position:absolute;right:0;top:55px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:8px;width:240px}.profile.open .profile-menu{display:block}.menu-email{font-size:11px;color:var(--muted);padding:10px}.profile-menu button{width:100%;text-align:left;border:0;background:#f5f4f0;padding:10px;border-radius:9px;cursor:pointer}.app-main{max-width:1440px;margin:auto;padding:clamp(34px,5vw,70px) clamp(20px,5vw,72px) 90px}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:42px}.page-intro h1{font-size:clamp(38px,5vw,60px);line-height:1;letter-spacing:-.055em;margin:12px 0}.page-intro p{margin:0;color:var(--muted)}.intro-actions{display:flex;gap:10px}.status-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:26px;overflow-x:auto;scrollbar-width:none}.status-tabs a{padding:13px 15px 16px;color:#777;font-weight:700;white-space:nowrap;position:relative}.status-tabs a:after{content:"";position:absolute;bottom:-1px;left:15px;right:15px;height:2px;background:transparent}.status-tabs a.active{color:var(--ink)}.status-tabs a.active:after{background:var(--violet)}.status-tabs span{font-size:10px;background:#e4e2dc;padding:3px 7px;border-radius:20px;margin-left:4px}.status-tabs .active span{background:var(--violet-soft);color:#5142c6}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.task-card{min-height:260px;background:#fff;border:1px solid rgba(218,216,208,.9);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;transition:.25s ease;position:relative;overflow:hidden}.task-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent}.task-card--in_progress:before{background:var(--violet)}.task-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#d2d0c8}.task-card-top{display:flex;align-items:center;gap:8px}.status{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:8px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.status i{width:6px;height:6px;border-radius:50%;background:currentColor}.status--new{background:var(--amber-soft);color:var(--amber)}.status--in_progress{background:var(--violet-soft);color:#5949dd}.status--done{background:var(--green-soft);color:var(--green)}.priority{font-size:10px;color:#ce523e;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.task-arrow{margin-left:auto;font-size:18px;color:#b4b2ab;transition:.2s}.task-card:hover .task-arrow{color:var(--ink);transform:translate(2px,-2px)}.task-card h2{font-size:20px;line-height:1.3;letter-spacing:-.025em;margin:25px 0 10px}.task-card>p{font-size:13px;line-height:1.6;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-meta{display:flex;align-items:center;gap:13px;margin-top:auto;padding-top:20px;color:#85837d;font-size:10px;font-weight:700}.client-chip{display:flex;align-items:center;gap:7px;margin-right:auto;min-width:0}.client-chip i{--client:#777;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--client);color:#fff;font-style:normal;font-size:9px}.meta-item{display:flex;align-items:center;gap:4px}.meta-item svg{width:14px;height:14px}.empty-state{text-align:center;background:rgba(255,255,255,.55);border:1px dashed #d2d0ca;border-radius:28px;padding:65px 20px}.empty-orbit{width:80px;height:80px;border:1px solid #d8d5cd;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;box-shadow:0 0 0 10px #ebe9e3}.empty-orbit span{width:39px;height:39px;background:var(--violet-soft);color:var(--violet);display:grid;place-items:center;border-radius:12px;font-weight:800}.empty-state h2{font-size:26px;letter-spacing:-.03em;margin:10px}.empty-state p{color:var(--muted);margin:0 auto 24px;max-width:450px}.clients-strip{margin-top:70px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h2{font-size:26px;letter-spacing:-.03em;margin:7px 0 0}.text-button{border:0;background:none;color:var(--violet);font-weight:800;cursor:pointer;padding:4px}.client-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.client-card{display:flex;align-items:center;gap:13px;background:#e9e7e1;border-radius:17px;padding:16px}.client-card b,.client-card small{display:block}.client-card b{font-size:13px}.client-card small{font-size:10px;color:var(--muted);margin-top:4px}.client-count{margin-left:auto;font-size:10px;color:#777;background:#f5f4ef;padding:6px 8px;border-radius:8px}.toast{position:fixed;top:90px;right:24px;z-index:60;background:#242422;color:#fff;padding:13px 13px 13px 17px;border-radius:13px;box-shadow:var(--shadow);font-size:12px;display:flex;align-items:center;gap:15px;animation:toast-in .35s ease}.toast--error{background:#a63c3c}.toast button{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:7px;cursor:pointer}@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
/* modals */.modal{display:none;position:fixed;inset:0;z-index:70;place-items:center;padding:20px}.modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:rgba(19,19,18,.55);backdrop-filter:blur(5px)}.modal-card{position:relative;background:#fff;width:min(100%,620px);max-height:calc(100vh - 40px);overflow:auto;border-radius:25px;padding:35px;box-shadow:0 30px 90px rgba(0,0,0,.25);animation:modal-in .25s ease}.modal-card--small{width:min(100%,480px)}.modal-card h2{font-size:29px;letter-spacing:-.04em;margin:9px 0}.modal-close{position:absolute;right:19px;top:18px;width:35px;height:35px;border:0;border-radius:10px;background:#f2f1ed;font-size:20px;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.optional{float:right;color:#aaa;font-weight:500}@keyframes modal-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
/* task detail */.detail-main{max-width:1300px;margin:auto;padding:35px clamp(20px,5vw,72px) 90px}.detail-back{display:inline-block;margin-bottom:30px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:60px}.detail-kicker{display:flex;align-items:center;gap:12px;font-size:11px;color:#999;font-weight:700}.detail-content>h1{font-size:clamp(36px,5vw,62px);line-height:1.08;letter-spacing:-.055em;max-width:850px;margin:20px 0}.task-description{font-size:16px;line-height:1.8;color:#5f5e59;max-width:800px;white-space:pre-wrap;padding-bottom:45px;border-bottom:1px solid var(--line)}.discussion{margin-top:45px}.timeline{display:flex;flex-direction:column;gap:20px;margin:28px 0}.system-event{display:flex;align-items:center;gap:11px;margin-left:8px}.system-event>span{width:29px;height:29px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;color:var(--violet);font-weight:800;font-size:11px}.system-event p{font-size:12px;font-weight:700;margin:0}.system-event small{display:block;color:#aaa;font-weight:500;margin-top:3px}.comment{display:flex;align-items:flex-start;gap:10px}.comment--mine{flex-direction:row-reverse}.comment-bubble{background:#fff;border-radius:5px 16px 16px 16px;padding:13px 15px;max-width:78%;border:1px solid #e7e5df}.comment--mine .comment-bubble{background:#e8e4ff;border-color:#ddd7ff;border-radius:16px 5px 16px 16px}.comment-bubble>div{display:flex;gap:13px;align-items:center}.comment-bubble b{font-size:11px}.comment-bubble time{font-size:9px;color:#aaa}.comment-bubble p{font-size:13px;line-height:1.65;white-space:pre-wrap;margin:7px 0 0}.comment-form{display:flex;gap:11px;align-items:flex-start;margin-top:30px}.comment-form>div{position:relative;flex:1}.comment-form textarea{width:100%;resize:none;border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px 50px 14px 15px;outline:0;min-height:68px}.send-button{position:absolute;right:9px;bottom:10px;width:34px;height:34px;border:0;border-radius:10px;background:var(--violet);color:#fff;font-size:19px;cursor:pointer}.detail-side{display:flex;flex-direction:column;gap:13px}.side-card{background:#fff;border:1px solid #e2e0da;border-radius:19px;padding:22px}.action-card h3{font-size:20px;letter-spacing:-.025em;margin:15px 0 7px}.action-card p{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 18px}.complete-mark{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-size:20px;font-weight:800;margin-top:15px}.info-card dl{margin:14px 0 0}.info-card dl>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid #efeee9;font-size:11px}.info-card dt{color:#999}.info-card dd{margin:0;font-weight:700;display:flex;align-items:center;gap:7px;text-align:right}.danger-link{border:0;background:none;color:#b14c4c;font-size:11px;font-weight:700;cursor:pointer;padding:10px}
@media(max-width:1050px){.task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-list{grid-template-columns:repeat(2,1fr)}.auth-shell{grid-template-columns:1fr 1fr}.detail-layout{gap:30px;grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:760px){.auth-shell{display:block}.auth-brand{min-height:260px;padding:27px 24px}.auth-promise{margin:62px 0 0}.auth-promise h1{font-size:39px}.auth-promise p,.auth-preview{display:none}.auth-card-wrap{padding:0 14px 24px;margin-top:-18px;position:relative}.auth-card{padding:29px 22px;border-radius:23px}.app-header{height:66px;padding:0 16px}.brand-text{display:none}.profile-copy,.chevron{display:none}.app-main{padding:30px 15px 70px}.page-intro{align-items:flex-start;display:block;margin-bottom:28px}.page-intro h1{font-size:40px}.page-intro p{font-size:13px;line-height:1.6}.intro-actions{margin-top:24px}.intro-actions .button{flex:1;padding:0 13px}.status-tabs{margin-left:-15px;margin-right:-15px;padding-left:10px}.task-grid{grid-template-columns:1fr}.task-card{min-height:225px}.client-list{grid-template-columns:1fr}.clients-strip{margin-top:55px}.client-count{font-size:9px}.modal{padding:0;align-items:end}.modal-card,.modal-card--small{width:100%;border-radius:24px 24px 0 0;padding:28px 20px max(25px,env(safe-area-inset-bottom));max-height:92vh}.form-row{grid-template-columns:1fr}.detail-main{padding:24px 15px 70px}.detail-layout{display:flex;flex-direction:column}.detail-content>h1{font-size:37px}.task-description{font-size:14px;padding-bottom:34px}.detail-side{order:-1}.detail-content{display:contents}.detail-content .detail-kicker,.detail-content>h1,.detail-content>.task-description{order:-2}.discussion{order:2;margin-top:25px}.detail-side{margin-top:0}.detail-back{margin-bottom:22px}.action-card{order:0}.info-card{order:1}.comment-bubble{max-width:86%}.comment-form>.avatar{display:none}.toast{top:76px;left:15px;right:15px}.profile-menu{position:fixed;top:65px;right:12px}.detail-kicker{flex-wrap:wrap}}
@media(max-width:390px){.page-intro h1{font-size:35px}.intro-actions{display:grid;grid-template-columns:1fr 1.35fr}.button{font-size:12px}.task-card{padding:19px}.auth-promise h1{font-size:34px}}

