:root{--ink:#222138;--muted:#8a889e;--line:#eeedf4;--surface:#fff;--canvas:#fafafe;--purple:#6d5dfc;--purple-dark:#5949ea;--green:#26b99a;--orange:#f6a542;--red:#ef6b75;--shadow:0 14px 42px rgba(56,44,117,.08)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:256px;background:#fff;border-right:1px solid var(--line);padding:27px 16px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{font:800 23px "Plus Jakarta Sans";letter-spacing:-1.4px;display:flex;align-items:center;gap:9px;padding:0 14px 42px;color:#27243f}.brand-mark{width:26px;height:26px;border-radius:9px;color:white;background:var(--purple);display:grid;place-items:center;font-size:17px;box-shadow:0 6px 15px #7061fc66}.main-nav{flex:1}.nav-label{color:#b1afbe;font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;margin:0 14px 12px}.projects-label{margin-top:31px;display:flex;justify-content:space-between;align-items:center}.add-project{border:0;background:transparent;color:#9693a7;font-size:18px;cursor:pointer}.nav-item{border:0;background:transparent;width:100%;display:flex;gap:12px;align-items:center;padding:11px 14px;color:#9492a5;border-radius:10px;text-align:left;font:500 14px "DM Sans";cursor:pointer;margin:3px 0}.nav-item:hover{background:#f7f6ff;color:var(--purple)}.nav-item.active{background:#f0efff;color:var(--purple);font-weight:600}.nav-icon{width:18px;text-align:center;font-size:17px}.nav-count{font-size:11px;margin-left:auto;color:#aaa8b9}.nav-item.active .nav-count{color:var(--purple)}#projectNav .nav-item{padding-top:9px;padding-bottom:9px}.project-dot{width:8px;height:8px;border-radius:50%;background:#e674ad;display:inline-block;margin-right:3px}.sidebar-footer{border-top:1px solid var(--line);padding-top:18px}.help-link{border:0;background:none;color:#9391a4;font:500 12px "DM Sans";padding:0 13px 20px;cursor:pointer}.help-link span{display:inline-grid;place-items:center;border:1px solid #b5b2c4;width:17px;height:17px;border-radius:50%;margin-right:8px}.profile{display:flex;align-items:center;gap:9px;padding:0 9px}.profile strong{font-size:12px;display:block}.profile small{font-size:10px;color:#aaa7b8}.avatar{height:32px;width:32px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}.avatar-purple{background:#e5e1ff;color:#6555e9}.more{margin-left:auto;color:#aaa7b8;letter-spacing:2px}.main-content{flex:1;min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px}.breadcrumb{font-size:12px;color:#a5a2b4}.breadcrumb strong{color:#343147;font-weight:600}.slash{padding:0 10px;color:#d0ced9}.top-actions{display:flex;align-items:center;gap:20px}.icon-button{border:0;background:transparent;color:#9996aa;font-size:21px;cursor:pointer;position:relative}.notification i{position:absolute;right:1px;top:1px;background:var(--orange);width:5px;height:5px;border-radius:50%}.mobile-menu,.sidebar-close{display:none}.page-wrap{max-width:1260px;padding:42px 48px 56px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#aaa7b7;margin:0 0 10px}.page-heading h1{font:700 27px "Plus Jakarta Sans";margin:0;letter-spacing:-.9px}.page-heading h1 span{color:var(--orange);font-size:18px}.subtitle{color:#9693a5;margin:8px 0 0}.primary-button,.secondary-button{border:0;border-radius:9px;padding:12px 17px;font:600 13px "DM Sans";cursor:pointer;transition:.2s}.primary-button{background:var(--purple);color:#fff;box-shadow:0 7px 15px #6d5dfc35}.primary-button:hover{background:var(--purple-dark);transform:translateY(-1px)}.primary-button span{font-size:17px;vertical-align:-1px;margin-right:4px}.secondary-button{background:#f3f2f8;color:#5c596f}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:37px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;min-height:104px;display:flex;align-items:center;gap:12px;position:relative}.stat-icon{height:37px;width:37px;border-radius:10px;display:grid;place-items:center;font-size:16px}.stat-icon.purple{background:#eeeaff;color:var(--purple)}.stat-icon.green{background:#e2f8f2;color:var(--green)}.stat-icon.orange{background:#fff2df;color:var(--orange)}.stat-card span{color:#9693a5;font-size:11px;display:block;margin-bottom:5px}.stat-card strong{font:700 21px "Plus Jakarta Sans"}.trend{font-size:10px!important;position:absolute;right:15px;bottom:15px}.positive{color:var(--green)}.neutral{color:#adaaba}.progress-card{justify-content:space-between}.progress-ring{--p:0%;background:conic-gradient(var(--purple) var(--p),#eeeefa 0);width:55px;height:55px;border-radius:50%;display:grid;place-items:center;position:relative}.progress-ring:after{content:"";position:absolute;background:#fff;width:43px;height:43px;border-radius:50%}.progress-ring span{z-index:1;font-size:11px;font-weight:700;color:var(--purple)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tabs{display:flex;gap:26px}.tab{border:0;background:none;padding:0 0 11px;font:600 12px "DM Sans";color:#a4a1b3;cursor:pointer;position:relative}.tab.active{color:var(--purple)}.tab.active:after{content:"";height:2px;background:var(--purple);position:absolute;bottom:0;left:0;right:0;border-radius:2px}.tab span,.section-title h2 span{background:#f0eff6;color:#9996a8;border-radius:10px;font-size:10px;padding:3px 7px;margin-left:4px}.tab.active span{background:#eeeaff;color:var(--purple)}.toolbar-actions{display:flex;align-items:center;gap:10px}.search-box{height:34px;width:215px;border:1px solid var(--line);border-radius:8px;background:white;display:flex;align-items:center;gap:7px;padding:0 10px;color:#aaa7b8}.search-box input{border:0;outline:0;width:100%;font:12px "DM Sans"}.filter-button,.sort-select{height:34px;background:#fff;border:1px solid var(--line);border-radius:8px;color:#777489;padding:0 11px;font:500 12px "DM Sans";cursor:pointer}.filter-button{position:relative}.filter-button i{display:none;width:5px;height:5px;background:var(--purple);border-radius:50%;position:absolute;top:6px;right:6px}.sort-select{outline:0;color:#777489}.filter-panel{display:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;gap:14px;align-items:end;margin-bottom:16px}.filter-panel.open{display:flex}.filter-panel label{font-size:11px;color:#9491a3;display:flex;flex-direction:column;gap:5px}.filter-panel select{border:1px solid var(--line);border-radius:6px;padding:7px;color:var(--ink);background:#fff}.filter-panel button{border:0;background:none;color:var(--purple);font-size:11px;cursor:pointer;padding:8px}.task-section{background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px 22px 8px;box-shadow:0 4px 18px #51478a05}.section-title{display:flex;align-items:center;margin-bottom:10px}.section-title h2{font:700 15px "Plus Jakarta Sans";margin:0}.view-toggle{border:0;background:transparent;color:#c4c1cf;margin-left:10px;font-size:17px;cursor:pointer}.view-toggle.active{color:var(--purple)}.task-list{min-height:120px}.task-row{display:grid;grid-template-columns:22px minmax(0,1fr) 120px 90px 82px 26px;gap:12px;align-items:center;padding:16px 5px;border-top:1px solid #f3f2f7;transition:.15s}.task-row:hover{background:#fcfbff}.check{width:17px;height:17px;border:1.5px solid #c7c4d4;border-radius:5px;display:grid;place-items:center;cursor:pointer;color:white;font-size:11px}.check.done{background:var(--green);border-color:var(--green)}.task-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-row.completed .task-title{text-decoration:line-through;color:#aaa8b7}.task-meta{font-size:11px;color:#9f9cac;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-date{font-size:11px;color:#9895a6}.task-date.overdue{color:var(--red)}.priority{font-size:10px;font-weight:600;padding:5px 8px;border-radius:5px;display:inline-block;text-align:center}.priority-high{color:#e86b72;background:#fff0f1}.priority-medium{color:#db941c;background:#fff6e8}.priority-low{color:#3eab90;background:#e9faf4}.assignee{display:flex;align-items:center;gap:6px;font-size:11px;color:#7e7b8f;white-space:nowrap}.mini-avatar{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:700}.task-menu{border:0;background:transparent;color:#aaa7b7;cursor:pointer;font-weight:bold;letter-spacing:2px}.empty-state{text-align:center;padding:55px 20px;color:#9996a8}.empty-state .empty-icon{font-size:31px;color:#c6c2df;margin-bottom:10px}.empty-state h3{color:#4a475e;font:700 15px "Plus Jakarta Sans";margin:0 0 6px}.empty-state p{margin:0;font-size:12px}.modal-backdrop{display:none;position:fixed;inset:0;background:#2a254655;z-index:10;align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{background:#fff;border-radius:15px;width:min(550px,100%);box-shadow:0 22px 80px #29204c30;padding:25px}.modal-header{display:flex;justify-content:space-between;margin-bottom:23px}.modal-header h2{font:700 20px "Plus Jakarta Sans";margin:0}.close-modal{border:0;background:#f5f4f9;border-radius:50%;width:28px;height:28px;font-size:21px;color:#9996a8;cursor:pointer}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;color:#6f6c80;flex:1}.field input,.field textarea,.field select{width:100%;border:1px solid #e5e3ed;border-radius:8px;padding:10px 11px;font:13px "DM Sans";color:var(--ink);outline:0;background:#fff}.field input:focus,.field textarea:focus,.field select:focus{border-color:#aba3fb;box-shadow:0 0 0 3px #6d5dfc12}.field textarea{resize:vertical}.full{margin-bottom:15px}.form-row{display:flex;gap:12px;margin-bottom:15px}.modal-footer{border-top:1px solid var(--line);padding-top:17px;margin-top:7px;display:flex;justify-content:space-between;align-items:center}.text-button{border:0;background:none;font:600 12px "DM Sans";cursor:pointer}.danger{color:var(--red)}.hidden{display:none}.toast{position:fixed;right:22px;bottom:22px;transform:translateY(90px);opacity:0;background:#272440;color:#fff;border-radius:10px;padding:12px 16px;display:flex;gap:9px;align-items:center;box-shadow:var(--shadow);transition:.3s;z-index:20;font-size:12px}.toast.show{transform:translateY(0);opacity:1}.toast span{background:var(--green);border-radius:50%;width:18px;height:18px;display:grid;place-items:center;font-size:11px}.toast p{margin:0}.mobile-overlay{display:none}
@media(max-width:1050px){.page-wrap{padding:32px 28px}.topbar{padding:0 28px}.overview-grid{grid-template-columns:repeat(2,1fr)}.task-row{grid-template-columns:22px minmax(0,1fr) 100px 82px 26px}.task-row .assignee{display:none}}
@media(max-width:720px){.sidebar{position:fixed;z-index:9;left:-270px;top:0;bottom:0;transition:.25s;box-shadow:var(--shadow)}.sidebar.open{left:0}.mobile-overlay{position:fixed;inset:0;background:#27223d55;z-index:8}.mobile-overlay.open{display:block}.sidebar-close{display:block;position:absolute;right:12px;top:23px;border:0;background:none;font-size:23px;color:#9996a8}.main-content{width:100%}.topbar{height:64px;padding:0 19px}.mobile-menu{display:block;border:0;background:none;color:#79758b;font-size:20px;margin-right:12px}.breadcrumb{flex:1}.top-actions{gap:10px}.top-actions .icon-button:first-child{display:none}.page-wrap{padding:26px 16px 36px}.page-heading{display:block;margin-bottom:25px}.page-heading h1{font-size:23px}.page-heading .primary-button{margin-top:18px;width:100%}.overview-grid{gap:9px;margin-bottom:25px}.stat-card{padding:12px;min-height:88px;gap:8px}.stat-icon{width:30px;height:30px;font-size:13px}.stat-card strong{font-size:18px}.stat-card span{font-size:10px}.trend{display:none}.progress-card .progress-ring{width:43px;height:43px}.progress-ring:after{width:33px;height:33px}.toolbar{display:block}.tabs{gap:18px;margin-bottom:15px}.toolbar-actions{display:grid;grid-template-columns:1fr auto auto}.search-box{width:auto}.sort-select{width:35px;font-size:0;padding:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath d='M3 4h8M5 7h6M7 10h4' stroke='%23777489' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center no-repeat}.filter-button span{display:none}.filter-panel.open{display:grid;grid-template-columns:1fr 1fr}.filter-panel label:last-of-type{grid-column:1/-1}.task-section{padding:17px 12px 4px}.task-row{grid-template-columns:22px minmax(0,1fr) 25px;gap:8px;padding:14px 2px}.task-row .task-date,.task-row .priority{display:none}.task-title{font-size:12px}.task-meta{font-size:10px}.task-menu{font-size:15px}.modal{padding:20px}.form-row{display:grid;grid-template-columns:1fr 1fr}.modal-footer{align-items:flex-start}.modal-footer>div{display:flex;gap:7px}.secondary-button,.modal-footer .primary-button{padding:11px 10px}.text-button{font-size:11px}}
.auth-screen{position:fixed;inset:0;background:linear-gradient(135deg,#f8f7ff,#f1f0ff);display:grid;place-items:center;z-index:30;padding:20px}.auth-screen.hidden{display:none}.auth-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 20px 70px #5c4fe21c}.auth-brand{padding:0 0 32px}.auth-copy h1{font:700 25px "Plus Jakarta Sans";margin:0 0 8px}.auth-copy>p:last-child{color:var(--muted);margin:0 0 25px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-submit{width:100%;margin-top:5px}.auth-switch{border:0;background:transparent;color:var(--purple);font:600 12px "DM Sans";cursor:pointer}.auth-error{color:var(--red);font-size:12px;text-align:center;min-height:16px;margin:0}.logout-button{border:0;background:transparent;color:#aaa7b7;cursor:pointer;font-size:18px}.admin-button{border:1px solid #e6e2ff;background:#f3f1ff;color:var(--purple);border-radius:7px;padding:7px 9px;font:600 11px "DM Sans";cursor:pointer}.admin-intro{color:var(--muted);font-size:12px;margin:-10px 0 20px;line-height:1.5}.admin-modal{max-width:520px}
