:root{--bg:#F7F7F4;--paper:#fff;--ink:#202238;--muted:#777B8D;--line:#E7E8EC;--purple:#7751E8;--purplet:#F0EAFF;--lime:#D6F593;--orange:#FFCEA9;--blue:#D4E4FF;--pink:#FFD1E0;--mint:#CFF4E7;--danger:#DC5262;--radius:16px;--safe:env(safe-area-inset-bottom,0px);font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:auto}body{margin:0;background:var(--bg);min-height:100dvh;overscroll-behavior-y:contain}button,input,textarea,select{font:inherit;min-width:0}input,textarea,select{font-size:16px!important}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #A18DFF;outline-offset:2px}button:active:not(:disabled){transform:scale(.985)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.048em}svg{width:20px;height:20px;display:block;flex:0 0 auto;stroke-width:1.95}img{display:block;max-width:100%}.hide{display:none!important}#app{min-height:100dvh}.boot{display:flex;align-items:center;justify-content:center;gap:10px;min-height:100dvh;font-size:28px;letter-spacing:-1.8px}.shell{display:flex;min-height:100dvh}.sidebar{background:#202238;color:#fff;width:238px;flex:none;height:100dvh;position:sticky;top:0;display:flex;flex-direction:column;padding:27px 13px 18px;overflow:auto}.logo{display:flex;gap:11px;align-items:center;padding:7px 11px 31px}.logo img{width:40px;height:40px}.logo b{font-size:24px;letter-spacing:-1.5px}.logo b span{color:#BEA9FF}.workspace{border-radius:12px;margin:0 8px 31px;background:#303248;color:#DEE0F1;padding:13px 14px;font-size:11px;font-weight:700}.workspace small{display:block;font-size:10px;color:#A5A7BC;margin-top:6px;font-weight:500}.side-caption{font-size:10px;letter-spacing:1.3px;padding:0 15px 10px;color:#9598AE;font-weight:800;text-transform:uppercase}.snav{width:100%;display:flex;gap:11px;align-items:center;padding:13px 15px;border:0;border-radius:11px;background:transparent;color:#ADB0C4;text-align:left;font-size:13px;font-weight:700;margin:2px 0;transition:background .14s,color .14s}.snav svg{width:19px;height:19px}.snav.active{background:var(--purple);color:#fff}.snav:hover:not(.active){background:#303248;color:#fff}.snav .ncount{margin-left:auto;background:#ffffff28;padding:2px 7px;border-radius:20px;font-size:10px}.side-footer{margin-top:auto;border-top:1px solid #393B4F;padding:16px 5px 0}.profile-side{display:flex;width:100%;align-items:center;gap:10px;padding:8px;background:transparent;color:#fff;border:0;text-align:left}.profile-side strong{font-size:12px;display:block}.profile-side small{font-size:10px;color:#9EA1B9}.profile-side svg:last-child{margin-left:auto;width:15px}.avatar{width:33px;height:33px;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:11px;font-size:12px;font-weight:800}.av-vincenzo{background:#E7DBFF;color:#6335B9}.av-giovanni{background:#FFDDAB;color:#754515}.main{width:100%;min-width:0;flex:1}.topbar{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3.2vw,48px);background:#fff;border-bottom:1px solid var(--line);gap:12px}.toplogo{display:none}.crumb{color:#7F8191;font-size:12px;font-weight:750;display:flex;align-items:center;gap:9px}.crumb strong{color:var(--ink)}.top-actions{display:flex;gap:9px;align-items:center}.icon-btn{height:40px;width:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);position:relative;padding:0}.icon-btn svg{width:19px;height:19px}.icon-btn:hover{background:#F6F4FF}.red-dot{width:8px;height:8px;background:#EF7186;border:2px solid white;border-radius:50%;position:absolute;right:8px;top:7px}.userbadge{border:none;background:#F5F4F8;padding:5px 12px 5px 5px;border-radius:12px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800}.userbadge .avatar{height:30px;width:30px}.userbadge svg{width:14px;height:14px;color:var(--muted)}.content{max-width:1440px;margin:auto;padding:29px clamp(18px,3.2vw,48px) 80px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.15px;text-transform:uppercase;color:var(--purple);margin-bottom:8px}.page-heading h1{font-size:clamp(25px,3vw,36px);line-height:1.2;font-weight:800}.subheading{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.55}.btn{border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;min-height:42px;padding:10px 14px;font-size:12px;font-weight:800;background:#fff;color:var(--ink);white-space:normal;text-align:center}.btn svg{width:17px;height:17px}.btn:hover{background:#F7F6FC}.btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}.btn.primary:hover{background:#6340D4}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.danger{border-color:#FFE2E2;color:#B62D45;background:#FFF4F5}.btn.ghost{border:0;background:transparent}.btn.small{min-height:35px;font-size:11px;padding:8px 11px;border-radius:10px}.btn.full{width:100%}.btn:disabled{transform:none}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:24px 0 13px}.section-heading h2{font-size:16px;font-weight:800}.section-heading small{font-size:11px;color:var(--muted)}.text-button{border:0;background:none;color:var(--purple);font-size:12px;font-weight:800;display:inline-flex;align-items:center;gap:5px}.text-button svg{width:15px;height:15px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{border-radius:15px;padding:17px 17px 16px;background:#fff;border:1px solid var(--line);min-width:0;display:grid;gap:10px}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.stat-top span{font-size:11px;font-weight:700;color:#565B6A;line-height:1.3}.stat-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#F0EAFF}.stat-icon svg{width:16px;height:16px}.stat-icon.lime{background:var(--lime)}.stat-icon.orange{background:var(--orange)}.stat-icon.blue{background:var(--blue)}.stat b{font-size:28px;letter-spacing:-1.5px;line-height:1;font-weight:800}.stat small{font-size:10px;color:var(--muted)}.columns{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:20px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;min-width:0;overflow:hidden}.panel-top{display:flex;align-items:center;justify-content:space-between;padding:16px 17px;border-bottom:1px solid var(--line);gap:9px}.panel-top h2{font-size:14px}.panel-top small{font-size:11px;color:var(--muted)}.panel-inner{padding:13px 15px}.muted{color:var(--muted)}.tiny{font-size:11px}.project-list{display:grid;gap:9px}.project-row{width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;align-items:center;transition:border-color .12s,background .12s;min-width:0}.project-row:hover{border-color:#CFC5FF;background:#FEFDFF}.project-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:var(--purplet)}.project-icon svg{width:19px;height:19px}.project-icon.violet{background:#EDE5FF;color:#6434D2}.project-icon.blue{background:#E0ECFF;color:#305DC9}.project-icon.orange{background:#FFE4CB;color:#A85814}.project-icon.mint{background:#D8F6E9;color:#177653}.project-icon.pink{background:#FFE1EC;color:#B4346A}.pr-main{min-width:0;display:grid;gap:5px}.pr-main strong{font-size:13px;font-weight:800;line-height:1.4;overflow-wrap:anywhere}.pr-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;font-weight:650;color:var(--muted)}.pr-info .dotsep{width:3px;height:3px;background:#B7B9C3;border-radius:50%}.pr-aside{text-align:right;min-width:0;display:flex;flex-direction:column;align-items:flex-end;gap:7px}.pill{border-radius:7px;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;font-size:10px;font-weight:800;line-height:1.2;background:#F1F2F5;color:#5D6272;white-space:nowrap}.pill.todo{background:#F0F0F4;color:#5E6370}.pill.doing{background:#E4EEFF;color:#3568AE}.pill.review{background:#EDE5FF;color:#6434CD}.pill.changes{background:#FFF0DF;color:#AC5E1F}.pill.approved,.pill.published{background:#E7F7D7;color:#426D1B}.pill.done{background:#E0F6EC;color:#287550}.pill.paused{background:#F4EFF0;color:#9A5B68}.duedate{display:inline-flex;align-items:center;gap:4px;color:#787C8D;font-size:10px;font-weight:700}.duedate svg{width:12px;height:12px}.duedate.overdue{color:#D34A5D}.quick-stack{display:grid;gap:9px}.quick-action{display:flex;align-items:center;gap:11px;padding:12px;border-radius:12px;border:1px solid #EDEEF1;background:#fff;text-align:left;width:100%}.quick-action:hover{border-color:#CFC4FE}.quick-icon{width:33px;height:33px;border-radius:10px;background:#F1EAFE;display:grid;place-items:center;flex:none}.quick-icon svg{height:16px;width:16px}.quick-action strong{font-size:12px;display:block;margin-bottom:4px;line-height:1.35}.quick-action small{font-size:10px;color:var(--muted)}.quick-action>svg{margin-left:auto;width:15px;color:#A1A3AF}.progress-panel{padding:16px}.progress-panel .big-number{font-size:33px;font-weight:800;letter-spacing:-2px}.progress-panel p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:9px}.progress-track{height:7px;background:#EDEAF4;border-radius:20px;overflow:hidden;margin-top:12px}.progress-fill{height:100%;background:var(--purple);border-radius:20px}.filters{display:flex;gap:9px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:9px;padding:0 12px;border-radius:11px;background:#fff;border:1px solid var(--line);min-width:180px;flex:1;max-width:400px}.search svg{width:17px;color:var(--muted)}.search input{border:0;outline:0;background:transparent;width:100%;height:43px;color:var(--ink)}.search:focus-within{border-color:var(--purple)}.seg{display:flex;background:#EAEAF0;padding:4px;border-radius:12px;gap:3px;max-width:100%;overflow:auto}.seg button{background:none;border:0;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:800;color:#777B88;white-space:nowrap}.seg button.active{background:#fff;color:var(--ink)}.empty{padding:36px 20px;text-align:center;background:#fff;border:1px dashed #CDD0D9;border-radius:14px}.empty svg{width:25px;height:25px;margin:0 auto 10px;color:var(--purple)}.empty b{display:block;font-size:13px;margin-bottom:7px}.empty p{color:var(--muted);font-size:11px;line-height:1.7}.mobile-nav{display:none}.hint{font-size:11px;color:var(--muted);line-height:1.65}.loading{padding:55px 20px;text-align:center;color:var(--muted)}
/* Details: stable, scroll only within the screen, no blur/elastic flash */
.scrim{position:fixed;inset:0;background:#16172783;z-index:60;animation:fade .15s ease-out}.sheet{position:fixed;right:0;top:0;bottom:0;width:min(625px,100%);z-index:61;display:flex;flex-direction:column;background:#fff;box-shadow:-8px 0 36px #1C1A2B17;animation:slideIn .18s ease-out;min-width:0;overflow:hidden}.sheet-header{display:flex;align-items:center;gap:12px;padding:17px 19px;border-bottom:1px solid var(--line);min-width:0}.sheet-header strong{font-size:13px}.sheet-header small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.sheet-header .spacer{flex:1}.sheet-header .icon-btn{flex:none}.sheet-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:22px 23px 30px}.sheet-kicker{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}.sheet-kicker span:last-child{font-size:11px;color:var(--muted);font-weight:700}.detail-title{font-size:clamp(22px,3.5vw,27px);font-weight:800;line-height:1.26;overflow-wrap:anywhere}.detail-desc{font-size:13px;line-height:1.78;color:#656A7A;margin-top:9px;overflow-wrap:anywhere}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.info-box{background:#F8F8FB;border:1px solid #F0F0F4;border-radius:11px;padding:11px;min-width:0}.info-box small{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.info-box b{font-size:11px;line-height:1.5;display:block;overflow-wrap:anywhere}.details-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:#EEEFF3;padding:4px;border-radius:12px;margin:20px 0 18px}.details-tabs button{padding:10px 2px;text-align:center;border:0;border-radius:9px;background:none;color:#737688;font-weight:800;font-size:11px;min-width:0;white-space:nowrap}.details-tabs button.active{color:#272838;background:#fff}.detail-section{margin-bottom:19px}.detail-section h3{font-size:13px;font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:11px}.detail-section p{font-size:12px;line-height:1.75;color:#747989;overflow-wrap:anywhere}.detail-box{background:#F7F7FA;border:1px solid #EFF0F3;border-radius:12px;padding:14px 15px;margin-bottom:12px}.detail-box p{font-size:12px;line-height:1.75;color:#505667}.detail-box a{word-break:break-word;color:#6547CF;font-weight:800;text-decoration:underline;text-underline-offset:2px}.detail-empty{border:1px dashed #D8D9E1;border-radius:11px;padding:18px;color:var(--muted);font-size:11px;line-height:1.7}.line-item{display:flex;align-items:flex-start;gap:10px;padding:12px 3px;border-bottom:1px solid var(--line)}.line-item:last-child{border-bottom:0}.line-item input{width:19px;height:19px;margin:0;accent-color:var(--purple);flex:none;cursor:pointer}.line-item .line-title{font-size:12px;line-height:1.6;font-weight:700;min-width:0;overflow-wrap:anywhere}.line-item .line-title.done{text-decoration:line-through;color:#999DA9}.line-item small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.line-item .avatar{height:25px;width:25px;border-radius:8px;font-size:9px;margin-left:auto}.activity-entry{padding:10px 0;border-bottom:1px solid var(--line)}.activity-entry:last-child{border:none}.activity-entry header{display:flex;align-items:center;gap:8px}.activity-entry header strong{font-size:11px}.activity-entry header small{font-size:10px;color:var(--muted);margin-left:auto}.activity-entry p{font-size:12px;line-height:1.7;color:#565B6A;margin:8px 0 0 31px;overflow-wrap:anywhere}.activity-entry .avatar{width:23px;height:23px;font-size:9px;border-radius:7px}.compose{display:flex;gap:9px;align-items:flex-end;margin-top:14px}.compose textarea{flex:1;min-height:70px;resize:vertical}.sheet-footer{border-top:1px solid var(--line);padding:13px 20px calc(13px + var(--safe));background:#fff;display:flex;flex-wrap:wrap;gap:9px}.sheet-footer .btn{flex:1;min-width:0}.sheet-footer .hint{flex-basis:100%;text-align:center}.review-callout{padding:12px 13px;border:1px solid #E6D8FE;background:#F6F1FF;border-radius:11px;font-size:11px;line-height:1.65;color:#5136A5;margin:14px 0}.review-callout.orange{background:#FFF4E8;color:#9F5825;border-color:#FFE2C8}.history-item{border-left:3px solid #CDB7FA;padding:6px 0 6px 12px;margin:12px 0}.history-item strong{font-size:12px}.history-item p{font-size:11px;color:#686D7B;margin-top:4px}.file-row{display:flex;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;margin-top:7px;font-size:11px;font-weight:700}.file-row a{color:var(--purple);margin-left:auto;white-space:nowrap}.file-row svg{width:17px;height:17px}.upload-label{cursor:pointer;display:inline-flex;align-items:center;gap:8px}.upload-label input{display:none}
/* Forms */
.modal-backdrop{position:fixed;inset:0;z-index:80;background:#1A1A2B85;display:grid;place-items:center;padding:15px;animation:fade .13s ease-out}.modal{background:#fff;border-radius:18px;width:min(520px,100%);max-height:min(90dvh,780px);display:flex;flex-direction:column;overflow:hidden;animation:pop .16s ease-out}.modal-header{padding:20px 23px 15px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.modal-header h2{font-size:20px}.modal-body{padding:20px 23px;overflow:auto;overscroll-behavior:contain}.field{margin-bottom:15px}.field label{display:block;font-size:11px;font-weight:800;margin-bottom:8px}.field input,.field textarea,.field select,.compose textarea{border:1px solid #DDE0E7;background:#fff;border-radius:11px;padding:11px 12px;width:100%;font-weight:600;line-height:1.5;color:var(--ink);outline:none}.field input:focus,.field textarea:focus,.field select:focus,.compose textarea:focus{border-color:var(--purple)}.field textarea{min-height:94px;resize:vertical}.field small{font-size:10px;color:var(--muted);display:block;line-height:1.5;margin-top:6px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.colors{display:flex;gap:10px}.color-opt{width:34px;height:34px;border:3px solid #fff;outline:1px solid #D7D8E0;border-radius:10px}.color-opt.selected{outline:3px solid var(--purple)}.color-opt.violet{background:#C8AFFB}.color-opt.blue{background:#C1DAFF}.color-opt.orange{background:#FFCDA3}.color-opt.mint{background:#AEEAD4}.color-opt.pink{background:#FFC2D6}.modal-actions{border-top:1px solid var(--line);padding:14px 23px;display:flex;align-items:center;justify-content:flex-end;gap:9px}.modal-actions .btn{min-width:108px}.error-note{color:#C93650;font-size:11px;margin:8px 0}.profile-choice{display:flex;align-items:center;gap:9px;margin-bottom:8px;width:100%;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff;font-weight:800;font-size:12px;text-align:left}.profile-choice.active{border-color:#C1B1FA;background:#F6F1FF}.profile-choice svg:last-child{margin-left:auto}.notification-list{display:grid;gap:8px}.notification-item{width:100%;text-align:left;display:flex;align-items:flex-start;gap:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.notification-item.unread{background:#F6F1FF;border-color:#E4D8FD}.notification-item .notif-icon{background:var(--purplet);width:32px;height:32px;border-radius:9px;display:grid;place-items:center}.notif-icon svg{width:16px;height:16px}.notification-item strong{font-size:12px;display:block}.notification-item p{font-size:11px;color:#6A6F7D;line-height:1.5;margin-top:5px}.notification-item small{font-size:10px;color:var(--muted);margin-top:6px;display:block}.notification-header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:15px}.notification-header h2{font-size:19px}.notification-header .btn{font-size:10px}.banner{border:1px solid #EEE1CA;background:#FFF8E9;border-radius:12px;padding:13px;font-size:11px;line-height:1.7;color:#805B2C}.install-panel{padding:13px;border-radius:12px;background:#EAE3FD;font-size:11px;color:#5839A1;line-height:1.75}.toast-wrap{position:fixed;z-index:150;bottom:calc(24px + var(--safe));left:50%;transform:translateX(-50%);width:min(390px,calc(100% - 28px));pointer-events:none}.toast{background:#202238;color:#fff;border-radius:11px;padding:13px 16px;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;box-shadow:0 8px 20px #20223825;pointer-events:auto}.toast.error{background:#AD374D}.toast svg{width:17px;height:17px}.sw-status{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.sw-dot{height:6px;width:6px;border-radius:50%;background:#8BCF8F}
@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slideIn{from{transform:translateX(18px)}to{transform:translateX(0)}}@keyframes pop{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1190px){.columns{grid-template-columns:minmax(0,1fr) 285px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.sidebar{width:203px}.columns{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.right-column .section-heading{grid-column:1/-1;margin-bottom:0}.right-column .panel{min-width:0}}
@media(max-width:720px){.sidebar{display:none}.topbar{height:61px;padding:0 16px;position:sticky;top:0;z-index:20}.toplogo{display:flex;align-items:center;gap:7px;font-weight:800;font-size:19px;letter-spacing:-1.1px}.toplogo img{width:29px;height:29px}.crumb{display:none}.userbadge{padding:0;background:transparent}.userbadge>span:not(.avatar),.userbadge>svg{display:none}.userbadge .avatar{width:37px;height:37px}.top-actions{gap:7px}.icon-btn{height:37px;width:37px}.content{padding:24px 14px calc(92px + var(--safe))}.page-heading{margin-bottom:20px}.page-heading h1{font-size:26px}.page-heading .btn{padding:9px 11px;min-height:40px;font-size:11px}.stat{padding:13px 13px 14px;gap:9px}.stat b{font-size:25px}.stat-top span{font-size:10px}.stat-icon{width:29px;height:29px}.section-heading{margin-top:20px}.mobile-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);height:calc(65px + var(--safe));padding:7px 10px calc(7px + var(--safe));background:#fff;border-top:1px solid var(--line)}.mobile-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px;font-weight:750;color:#888B9B;border-radius:11px}.mobile-nav button svg{width:21px;height:21px}.mobile-nav button.active{color:var(--purple);background:#F2EDFF}.project-row{grid-template-columns:36px minmax(0,1fr);padding:12px;gap:10px}.project-icon{width:35px;height:35px}.project-icon svg{width:17px;height:17px}.pr-main strong{font-size:12px}.pr-aside{grid-column:2;display:flex;align-items:center;flex-direction:row;justify-content:space-between;gap:10px;width:100%}.pr-aside .duedate{margin-left:auto}.right-column{grid-template-columns:1fr}.sheet{width:100%;border-radius:0;animation:none}.sheet-header{padding:12px 14px;min-height:61px}.sheet-body{padding:18px 16px 20px}.sheet-footer{padding:11px 14px calc(12px + var(--safe))}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:calc(95dvh - env(safe-area-inset-top,0px));border-radius:19px 19px 0 0;animation:slideIn .16s ease-out}.modal-header{padding:19px 17px 14px}.modal-body{padding:17px}.modal-actions{padding:12px 17px calc(13px + var(--safe))}.toast-wrap{bottom:calc(75px + var(--safe))}.details-tabs button{font-size:10px}}
@media(max-width:380px){.page-heading h1{font-size:23px}.page-heading .btn{font-size:10px}.details-tabs{gap:2px}.details-tabs button{font-size:9px}.info-grid{gap:5px}.info-box{padding:9px 7px}.pr-info{font-size:9px}.field-grid{grid-template-columns:1fr}.modal-actions .btn{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Tandem v3 · layout and typography consistency */
:root{--bg:#F6F6F3;--ink:#23243A;--line:#E5E6EC;--purple:#7652DA;--radius:15px}
html,body{max-width:100%;overflow-x:clip}body{min-height:100svh}
.shell,.main,.content,.columns,.panel,.sheet,.modal,.pr-main,.pr-aside{min-width:0}
.page-heading{align-items:center}.subheading{font-size:13px}.content{padding-bottom:110px}
.stat-grid-v3 .stat{min-height:113px}.stat-grid-v3 .stat small{font-size:11px}
.v3-focus{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:19px 23px;background:#24253B;color:#fff;border-radius:17px;margin:17px 0 5px;min-width:0}
.v3-focus-text{display:flex;flex-direction:column;gap:5px;min-width:0}.v3-focus-text .eyebrow{color:#CEBEFF;margin:0;font-size:10px}.v3-focus-text strong{font-size:18px;letter-spacing:-.45px;line-height:1.3}.v3-focus-text>span:last-child{font-size:12px;line-height:1.5;color:#D7D7E2}.v3-focus .btn{background:#D9F395;border-color:#D9F395;color:#282A38;flex-shrink:0}
.v3-focus .btn:hover{background:#C8EA78}.v3-week{background:#DBF2D0;border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:6px}.v3-week .eyebrow{color:#38644B;margin:0}.v3-week strong{font-size:19px;line-height:1.35;letter-spacing:-.5px}.v3-week span:last-child{font-size:12px;line-height:1.6;color:#50715D}
.pr-aside .next-inline{font-size:11px;color:#64677C;font-weight:700;line-height:1.35;max-width:180px;text-align:right}
.project-row{gap:12px;grid-template-columns:40px minmax(0,1fr) minmax(145px,auto);padding:12px 14px}.pr-info{font-size:11px}.pr-main strong{font-size:13px}.pr-aside{gap:5px}.duedate{font-size:11px}.pill{font-size:10px}
.quick-action>.project-icon{flex:0 0 36px;width:36px;height:36px}.quick-action>span:nth-child(2){min-width:0;flex:1}.quick-action strong{overflow-wrap:anywhere}.quick-action small{font-size:11px}
/* Combined inbox inspired by the clear two-tier grouping of Linear without copying it */
.inbox-intro{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);padding:21px;border-radius:16px;margin-bottom:16px;min-width:0}.inbox-figure{display:grid;place-items:center;background:#EDE6FC;border-radius:13px;color:#5936AB;width:64px;height:64px;flex-shrink:0;font-weight:800;font-size:30px}.inbox-intro>div{flex:1;min-width:0}.inbox-intro strong{font-size:17px;display:block;letter-spacing:-.5px}.inbox-intro p{font-size:12px;line-height:1.6;color:#6D7181;margin-top:4px}.inbox-filters{display:inline-flex;margin-bottom:17px;max-width:100%;overflow:auto}.inbox-help{display:flex;gap:9px;align-items:flex-start;padding:16px 4px;color:#777B8C;font-size:12px;line-height:1.65}.inbox-help svg{width:18px;flex-shrink:0;color:#49795A}
/* Switch between clean card list and Trello-style read-only board */
.layout-choice{display:flex;justify-content:flex-end;gap:3px;margin:15px 0 13px}.layout-choice button{border:1px solid var(--line);background:#fff;color:#6F7384;padding:8px 12px;display:inline-flex;gap:7px;align-items:center;font-weight:800;font-size:12px;cursor:pointer}.layout-choice button:first-child{border-radius:10px 0 0 10px}.layout-choice button:last-child{border-radius:0 10px 10px 0}.layout-choice button.active{background:#26263F;border-color:#26263F;color:#fff}.layout-choice svg{width:15px;height:15px}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:12px;align-items:start;min-width:0}.kanban-col{border-radius:15px;background:#EDEEF1;padding:11px;min-width:0;display:grid;gap:9px}.kanban-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 5px 8px}.kanban-title strong{font-size:12px}.kanban-title span{background:#fff;padding:4px 8px;border-radius:7px;font-size:11px;font-weight:800}.kanban-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;border-radius:12px;border:1px solid #E3E4E9;background:#fff;padding:14px;width:100%;text-align:left;transition:border-color .15s}.kanban-card:hover{border-color:#A594E0}.kanban-card>strong{font-size:13px;line-height:1.45;overflow-wrap:anywhere}.kanban-card>span{font-size:11px;color:#6F7383}.kc-top,.kc-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;width:100%;min-width:0;flex-wrap:wrap}.kc-top .project-icon{width:31px;height:31px}.kc-top svg{width:16px;height:16px}.kc-foot{padding-top:9px;border-top:1px solid var(--line);margin-top:3px}.kc-foot small{font-size:10px;color:#858899}.kanban-empty{font-size:11px;color:#999BA5;padding:19px 5px;text-align:center}
/* Task sections independently editable from approval checklist */
.section-header-v3 h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-group{border:1px solid var(--line);background:#fff;border-radius:13px;padding:14px 15px;margin-top:14px;overflow:hidden}.task-group-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line)}.task-group-header strong{font-size:13px;letter-spacing:-.18px}.task-group-header span{color:#7B7D8D;font-size:11px;font-weight:800}.task-add-inline{border:0;background:#F3F0FA;color:#6046B0;padding:10px 12px;border-radius:9px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;margin-top:10px}.task-add-inline svg{width:15px;height:15px}.section-create{margin-top:15px;background:#F0EBFA;color:#6443BC;border-color:#E3DDF4}.section-placeholder{padding:12px 0;font-size:12px;color:#8C8F9E}.task-group .line-item{padding:13px 3px}.line-item .line-title{font-size:13px}.line-item small{font-size:11px}.detail-section>p,.detail-box p{font-size:13px}.sheet-body .detail-title{overflow-wrap:anywhere}.detail-section h3{font-size:15px}
/* Real controls must remain readable and easy to tap */
.details-tabs button{font-size:12px!important;min-height:43px;white-space:nowrap}.details-tabs{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.details-tabs::-webkit-scrollbar{display:none}.field label{font-size:12px}.field small{font-size:11px}.modal-body .hint,.sheet-footer .hint{font-size:12px}.btn.small{font-size:12px}.mobile-nav button{font-size:11px;min-height:43px}.modal{animation:none}.modal-backdrop{animation:none}
@media(max-width:1260px){.kanban{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.columns{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.content{padding-bottom:calc(94px + var(--safe))}.stat-grid-v3{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid-v3 .stat{min-height:103px}.v3-focus{padding:15px;flex-direction:column;align-items:stretch;gap:14px}.v3-focus .btn{align-self:flex-start}.v3-focus-text strong{font-size:17px}.inbox-intro{flex-wrap:wrap;padding:14px;gap:12px}.inbox-figure{width:47px;height:47px;font-size:23px}.inbox-intro strong{font-size:14px}.inbox-intro .btn{width:100%}.kanban{grid-template-columns:repeat(2,minmax(220px,1fr));overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:7px}.kanban-col{scroll-snap-align:start}.project-row{grid-template-columns:36px minmax(0,1fr);padding:12px}.pr-aside{grid-column:2;flex-wrap:wrap;justify-content:flex-start;flex-direction:row;align-items:center;gap:7px}.pr-aside .duedate{margin-left:0}.pr-aside .next-inline{flex-basis:100%;max-width:none;text-align:left;font-size:11px}.pr-info{font-size:11px}.pr-main strong{font-size:13px}.right-column{grid-template-columns:1fr}.task-group{padding:12px}.mobile-nav{padding-bottom:calc(7px + var(--safe))}.details-tabs button{font-size:12px!important;padding:10px 11px}.page-heading .btn{font-size:12px}}
@media(max-width:450px){.kanban{grid-template-columns:repeat(4,minmax(252px,78vw));overflow-x:auto}.inbox-filters{max-width:100%}.stat-grid-v3 .stat{padding:13px}.stat-top span{font-size:11px}.stat b{font-size:26px}.pr-info{font-size:11px}.details-tabs button{font-size:12px!important}.field-grid{grid-template-columns:1fr}.modal-actions .btn{min-width:0}}
@media(prefers-reduced-motion:reduce){.kanban-card,.project-row,.btn{transition:none!important}}

/* Always-visible vector brand, independent of the browser's SVG image loader */
.brandmark{display:inline-block;position:relative;flex:0 0 auto;width:39px;height:39px;border-radius:12px;background:#202238;overflow:hidden}.brandmark i{position:absolute;top:25%;width:22%;height:50%;border-radius:999px;background:#D6F593}.brandmark i:first-child{left:22%}.brandmark i:nth-child(2){right:22%}.brandmark b{position:absolute;left:42%;right:42%;top:44%;height:13%;background:#A994F7;border-radius:3px}.toplogo .brandmark{width:29px;height:29px;border-radius:9px}
.sheet,.scrim,.modal,.modal-backdrop{animation:none!important}
@media(max-width:720px){.brandmark{width:29px;height:29px;border-radius:9px}}
