:root{color-scheme:light;--bg:#f5f7fb;--surface:#fff;--surface-2:#f8f9fc;--ink:#192338;--ink-2:#46516a;--muted:#8791a5;--line:#e7ebf2;--line-2:#dbe2ed;--blue:#456de6;--blue-dark:#3258d4;--blue-soft:#edf2ff;--teal:#138a80;--teal-soft:#e8f7f4;--amber:#b77519;--amber-soft:#fff4df;--red:#c34c5c;--red-soft:#fff0f2;--violet:#7862c7;--violet-soft:#f1edff;--shadow:0 16px 50px rgba(31,45,75,.09);--radius:15px;--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font);color:var(--ink);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(69,109,230,.19);outline-offset:1px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.muted{color:var(--muted)}.demo-notice{height:auto;min-height:36px;padding:8px 18px;background:#fff4dc;color:#77551d;font-size:12px;display:flex;align-items:center;gap:8px;justify-content:center;border-bottom:1px solid #f0deb4}.demo-notice a{color:#3458b8;font-weight:650;margin-left:6px}.demo-dot{width:7px;height:7px;border-radius:50%;background:#d89b30;display:inline-block}
/* login */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:48px 24px;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 12%,#eff3ff 0,transparent 33%),radial-gradient(circle at 83% 80%,#e7f5f2 0,transparent 30%),#f7f9fc}.login-brand{position:absolute;top:42px;left:54px;display:flex;align-items:center;gap:12px}.brand-mark{width:39px;height:39px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;flex-shrink:0}.brand-mark svg{width:30px;height:30px}.brand-mark.large{width:52px;height:52px;border-radius:15px}.brand-mark.large svg{width:38px;height:38px}.brand-name{font-size:18px;font-weight:750;letter-spacing:.02em}.brand-en{font-size:9px;color:#96a0b2;letter-spacing:.17em;margin-top:4px}.login-card{width:min(100%,420px);background:rgba(255,255,255,.92);border:1px solid rgba(224,230,241,.9);box-shadow:0 24px 70px rgba(35,49,83,.09);border-radius:23px;padding:38px 40px 28px;position:relative;z-index:1}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--blue);font-weight:750}.login-card h1{font-size:27px;letter-spacing:-.03em;margin:10px 0 8px}.login-intro{margin:0 0 28px;font-size:13px}.form-stack{display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>span,.field-label{font-size:12px;font-weight:650;color:#4f5b72}.input-wrap{height:47px;border:1px solid var(--line-2);border-radius:10px;display:flex;align-items:center;gap:10px;padding:0 13px;background:#fff;transition:border .15s,box-shadow .15s}.input-wrap:focus-within{border-color:#93a9f5;box-shadow:0 0 0 3px rgba(69,109,230,.09)}.input-wrap svg{color:#9aa4b6;width:18px;height:18px}.input-wrap input{flex:1;min-width:0;border:0;outline:0;box-shadow:none!important;background:transparent;color:var(--ink)}.input-wrap input::placeholder{color:#b0b8c7}.btn{border:1px solid transparent;border-radius:9px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;font-size:12px;line-height:1.2;white-space:nowrap;transition:background .16s,border-color .16s,transform .16s;color:var(--ink-2);background:#fff}.btn svg{width:16px;height:16px}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:var(--blue);box-shadow:0 4px 10px rgba(69,109,230,.15)}.btn-primary:hover{background:var(--blue-dark)}.btn-secondary{background:#f2f5fb;border-color:#e9edf5;color:#4c5870}.btn-outline{border-color:var(--line-2);background:#fff;color:#4a566e}.btn-outline:hover,.btn-secondary:hover{border-color:#b9c8ed;background:#f6f8ff}.btn-danger{color:var(--red);background:var(--red-soft);border-color:#ffe0e5}.btn-quiet{background:transparent;color:var(--muted)}.btn-block{width:100%}.btn-tall{min-height:47px;font-size:13px;margin-top:3px}.btn-tall svg{margin-left:auto}.form-error{font-size:12px;color:var(--red);margin:-6px 0;min-height:0}.form-error:empty{display:none}.login-foot{margin-top:25px;display:flex;justify-content:center;gap:8px;align-items:center;font-size:11px;color:#929bad}.secure-dot{width:6px;height:6px;background:#50ad92;border-radius:50%}.login-bottom{position:absolute;bottom:30px;color:#a1aabc;font-size:11px;letter-spacing:.04em}.login-decor{position:absolute;border-radius:50%;pointer-events:none;filter:blur(1px)}.decor-one{height:280px;width:280px;left:-100px;bottom:8%;background:linear-gradient(140deg,rgba(186,204,255,.25),rgba(233,240,255,0))}.decor-two{height:350px;width:350px;right:-130px;top:15%;background:linear-gradient(140deg,rgba(178,226,215,.2),rgba(233,240,255,0))}
/* app layout */
.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#fff;border-right:1px solid var(--line);min-height:100vh;display:flex;flex-direction:column;padding:23px 15px 15px;position:fixed;inset:0 auto 0 0;z-index:15;transition:transform .2s,width .2s}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 6px 23px}.brand-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-copy strong{font-size:14px;letter-spacing:.01em}.brand-copy small{font-size:9px;color:#9aa4b5;letter-spacing:.16em;font-weight:700}.collapse-btn{margin-left:auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:#8a95a8;width:32px;height:32px;border-radius:8px;padding:0}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{background:#f3f6fc;color:#4d5b78}.workspace-switch{border:1px solid var(--line);background:#fbfcfe;display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:11px;margin:0 2px 26px}.workspace-avatar{height:31px;width:31px;border-radius:9px;background:#e8f5f2;color:#368d80;display:grid;place-items:center;font-size:13px;font-weight:750}.workspace-meta{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.workspace-meta strong{font-size:11px}.workspace-meta small{font-size:10px;color:var(--muted)}.status-live{width:7px;height:7px;border-radius:50%;background:#57b796;box-shadow:0 0 0 3px #e5f6ef}.nav-label{padding:0 12px 9px;font-size:10px;letter-spacing:.09em;font-weight:750;color:#9ca6b7}.nav-label-spaced{margin-top:24px}.main-nav{display:flex;flex-direction:column;gap:4px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;height:41px;padding:0 12px;border:0;border-radius:9px;color:#758096;background:transparent;text-align:left;font-size:12px;transition:background .15s,color .15s}.nav-item svg{width:17px;height:17px}.nav-item span:nth-of-type(1){flex:1}.nav-item:hover{background:#f7f8fc;color:#46516a}.nav-item.active{background:#edf2ff;color:#3f63d6;font-weight:700}.nav-item.active svg{color:#456de6}.nav-item kbd{font-size:9px;color:#adb6c5;background:rgba(255,255,255,.65);padding:3px 5px;border-radius:4px}.nav-count{background:#f1f3f8;border-radius:6px;padding:3px 6px;font-size:10px;color:#7d879a}.nav-item.active .nav-count{background:#dfe7ff;color:#4564c5}.sidebar-spacer{flex:1;min-height:20px}.sidebar-note{display:flex;gap:9px;border-radius:11px;background:linear-gradient(135deg,#f5f7ff,#f7fbfc);padding:12px 10px;margin:8px 1px 14px}.note-icon{color:#7890df}.note-icon svg{width:17px;height:17px}.sidebar-note div:last-child{display:flex;flex-direction:column;gap:5px}.sidebar-note strong{font-size:10px}.sidebar-note span{font-size:10px;line-height:1.5;color:#8c97aa}.sidebar-user{width:100%;display:flex;align-items:center;gap:9px;padding:12px 5px 4px;background:#fff;border:0;border-top:1px solid var(--line);text-align:left;position:relative}.user-avatar{height:31px;width:31px;display:grid;place-items:center;background:#e8edff;border-radius:50%;color:#4d66c1;font-weight:750;font-size:12px;flex-shrink:0}.user-meta{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.user-meta strong{font-size:11px}.user-meta small{font-size:10px;color:var(--muted)}.user-chevron{width:15px;height:15px;color:#a6afbd}.user-menu{position:absolute;bottom:62px;left:18px;right:18px;z-index:30;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:10px;padding:5px}.user-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:7px;font-size:12px;color:var(--ink-2)}.user-menu button:hover{background:#f6f7fb}.danger-text{color:var(--red)!important}.main-area{margin-left:248px;min-width:0;flex:1;display:flex;min-height:100vh;flex-direction:column}.topbar{height:73px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:space-between;padding:0 35px;gap:20px;position:sticky;top:0;z-index:10;backdrop-filter:blur(15px)}.topbar-left,.topbar-actions,.breadcrumb{display:flex;align-items:center;gap:10px;min-width:0}.breadcrumb{font-size:11px;color:#98a1b1;gap:9px}.breadcrumb svg{width:13px;height:13px;color:#c0c6d2}.breadcrumb strong{color:#38445d;font-weight:700}.topbar-actions{gap:14px}.top-search{display:flex;align-items:center;gap:8px;width:238px;border:1px solid transparent;background:#f6f8fb;border-radius:9px;padding:0 10px;height:35px}.top-search:focus-within{border-color:#d5dffa;background:#fff}.top-search svg{width:16px;height:16px;color:#9ba5b5}.top-search input{border:0;outline:0;background:transparent;width:100%;font-size:11px;color:var(--ink)}.top-search input::placeholder{color:#a6afbe}.mobile-menu-btn{display:none}.view-root{width:100%;max-width:1600px;margin:0 auto;padding:31px 36px 25px;flex:1}.app-footer{padding:13px 36px 18px;color:#a4acbb;font-size:10px;display:flex;justify-content:space-between;gap:10px}.app-footer i{font-style:normal;padding:0 4px;color:#d1d6e0}.app-footer>span:last-child{display:flex;gap:7px;align-items:center}.save-dot{width:6px;height:6px;border-radius:50%;background:#5ab798;display:inline-block}.save-dot.saving{background:#e0a44c}.save-dot.error{background:#d45f6e}
/* headings and surfaces */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{font-size:24px;letter-spacing:-.04em;margin:0 0 7px;font-weight:760}.page-heading p{color:#8a95a8;margin:0;font-size:12px;line-height:1.65}.heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0 13px}.section-label h2{font-size:13px;margin:0;font-weight:750}.section-label p{margin:5px 0 0;color:var(--muted);font-size:11px}.text-link{color:var(--blue);font-size:11px;font-weight:700;background:transparent;border:0;padding:4px 0}.text-link:hover{color:var(--blue-dark)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 18px;position:relative;overflow:hidden;min-height:116px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#8390a4;font-size:11px}.stat-icon{width:29px;height:29px;border-radius:9px;display:grid;place-items:center}.stat-icon svg{width:15px;height:15px}.stat-icon.blue{background:#edf2ff;color:#5072e0}.stat-icon.teal{background:#e8f7f4;color:#228f81}.stat-icon.amber{background:#fff4e2;color:#b67a25}.stat-icon.violet{background:#f0edff;color:#806bc9}.stat-number{font-size:27px;letter-spacing:-.045em;font-weight:760;margin-top:14px;line-height:1}.stat-sub{font-size:10px;color:#a1aabb;margin-top:8px}.stat-sub strong{color:#4e5f80;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.85fr);gap:15px;margin-top:21px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;min-width:0}.panel-head{padding:17px 18px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{font-size:13px;margin:0;font-weight:750}.panel-head p{font-size:10px;color:#98a2b3;margin:5px 0 0}.panel-body{padding:0 18px 17px}.panel-head .subtle-count{font-size:10px;color:#8994a7;background:#f4f6fa;padding:5px 8px;border-radius:6px}.project-table-wrap{overflow-x:auto}.project-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.project-table th{font-size:10px;color:#97a1b2;font-weight:650;padding:10px 12px;background:#fafbfd;border-top:1px solid #f0f2f6;border-bottom:1px solid #eff2f6}.project-table td{font-size:11px;padding:13px 12px;border-bottom:1px solid #f0f2f6;color:#5c687f}.project-table tr:last-child td{border-bottom:0}.project-table tbody tr{cursor:pointer;transition:background .12s}.project-table tbody tr:hover{background:#fbfcff}.project-main-cell{display:flex;align-items:center;gap:10px;max-width:300px}.project-type-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:#edf2ff;color:#5774dc}.project-type-icon svg{width:15px;height:15px}.project-cell-title{font-size:11px;color:#29364e;font-weight:700;max-width:230px;overflow:hidden;text-overflow:ellipsis}.project-cell-sub{font-size:9px;color:#a2abba;margin-top:4px}.status-pill,.priority-pill{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:5px 7px;font-size:9px;font-weight:700;white-space:nowrap}.status-pill:before{content:"";width:5px;height:5px;display:inline-block;border-radius:50%;background:currentColor;opacity:.75}.status-active{color:#4672d8;background:#eef3ff}.status-completed{color:#248873;background:#eaf8f3}.status-paused{color:#a47a32;background:#fff6e5}.status-overdue{color:#c65363;background:#fff0f2}.status-todo{color:#8792a5;background:#f1f3f7}.status-progress{color:#4672d8;background:#eef3ff}.status-node-completed{color:#248873;background:#eaf8f3}.status-node-paused{color:#a47a32;background:#fff6e5}.status-skipped{color:#7f718f;background:#f5f0fb}.deadline{display:flex;align-items:center;gap:5px}.deadline svg{width:13px;height:13px;color:#a3acbb}.deadline.late{color:#c65363}.person-mini{display:inline-flex;align-items:center;gap:6px}.person-dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:9px;font-weight:750;background:#edf0f8;color:#647397}.empty-state{padding:40px 20px;text-align:center;color:#9aa4b4;font-size:11px}.empty-state svg{width:30px;height:30px;color:#cad2e1;margin:0 auto 10px}.empty-state strong{display:block;color:#65718a;font-size:12px;margin-bottom:6px}.deadline-list{display:flex;flex-direction:column}.deadline-item{display:flex;align-items:flex-start;gap:11px;padding:12px 0;border-bottom:1px solid #f0f2f6;cursor:pointer}.deadline-item:last-child{border-bottom:0}.date-block{width:40px;height:45px;border-radius:9px;background:#f7f8fc;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;flex-shrink:0}.date-block strong{font-size:15px;line-height:1;color:#35425c}.date-block small{font-size:9px;color:#969fb0}.date-block.today{background:#edf2ff}.date-block.today strong{color:#456de6}.deadline-copy{min-width:0;flex:1;padding-top:2px}.deadline-copy strong{font-size:11px;display:block;color:#39465e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deadline-copy small{display:block;font-size:10px;color:#929db0;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deadline-arrow{color:#c1c8d5;margin-top:10px}.deadline-arrow svg{width:14px;height:14px}.stage-mini{display:flex;gap:3px;margin-top:8px}.stage-mini span{height:4px;flex:1;border-radius:3px;background:#e8ebf2}.stage-mini span.done{background:#75bda8}.stage-mini span.current{background:#6482e8}.workflow-progress{display:flex;align-items:center;gap:8px}.workflow-progress .progress-track{height:5px;width:55px;border-radius:5px;background:#edf0f6;overflow:hidden}.workflow-progress .progress-track span{height:100%;display:block;border-radius:5px;background:#6985e8}.workflow-progress small{font-size:9px;color:#98a2b2}
/* filter and list */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:15px}.filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.select-control,.toolbar-input{border:1px solid var(--line-2);border-radius:8px;background:#fff;color:#59657b;padding:9px 10px;font-size:11px;min-height:34px;max-width:100%}.toolbar-input{min-width:180px}.list-meta{font-size:10px;color:#98a2b3}.project-list{display:flex;flex-direction:column;gap:9px}.project-row-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:box-shadow .15s,border-color .15s;cursor:pointer}.project-row-card:hover{border-color:#d8e0f5;box-shadow:0 6px 22px rgba(35,55,95,.045)}.project-row-card .project-type-icon{width:37px;height:37px}.project-row-main{min-width:0;flex:1}.project-row-title{font-size:12px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.small-tag{background:#f5f6fa;color:#818ca0;border-radius:5px;padding:4px 6px;font-size:9px;white-space:nowrap}.project-row-next{min-width:130px;max-width:180px}.project-row-next strong{font-size:10px;display:block;color:#53617b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-row-next small{display:block;font-size:9px;color:#a0a9b8;margin-top:5px}.project-row-due{min-width:90px;font-size:10px;color:#8994a8}.row-action{margin-left:auto;display:flex;align-items:center;gap:4px}.row-action .icon-btn{border-color:var(--line)}
/* calendar */
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.75fr);gap:16px}.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.calendar-month{font-size:15px;font-weight:760;letter-spacing:-.02em}.calendar-controls{display:flex;align-items:center;gap:5px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays div{text-align:center;font-size:10px;color:#a1aabb;padding:9px 0}.calendar-day{border:1px solid transparent;background:#fff;min-height:83px;text-align:left;border-radius:8px;padding:7px 6px;display:flex;flex-direction:column;gap:5px;min-width:0;transition:background .12s,border .12s}.calendar-day:hover{background:#f8faff;border-color:#e5ebfb}.calendar-day.other-month{opacity:.45}.calendar-day.selected{background:#f0f4ff;border-color:#cbd7ff}.calendar-day.today .day-number{background:var(--blue);color:#fff}.day-number{height:23px;width:23px;border-radius:7px;display:grid;place-items:center;font-size:10px;color:#5e6b81}.calendar-event{display:block;border-left:2px solid #6e89eb;background:#eff3ff;color:#536fce;border-radius:3px;padding:4px 4px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.overdue{background:#fff0f2;color:#bd5a69;border-color:#de7886}.calendar-event.complete{background:#edf8f3;color:#318873;border-color:#79bda9}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;color:#949eaf;font-size:10px}.legend-dot{width:6px;height:6px;border-radius:2px;background:#6e89eb;display:inline-block;margin-right:5px}.agenda-panel .panel-head{padding:18px}.agenda-date{display:flex;align-items:baseline;gap:7px}.agenda-date strong{font-size:23px;letter-spacing:-.04em}.agenda-date span{font-size:10px;color:#8e99ad}.agenda-item{border-top:1px solid #f0f2f6;padding:13px 0;display:flex;gap:10px;cursor:pointer}.agenda-time{font-size:9px;color:#91a0b9;min-width:40px;padding-top:2px}.agenda-content{min-width:0;flex:1}.agenda-content strong{font-size:11px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.agenda-content small{font-size:10px;color:#98a2b4;display:block;margin-top:5px}.agenda-item .status-pill{margin-top:8px}
/* templates, taxonomy, activity, users */
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.template-card,.taxonomy-card,.user-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;min-width:0}.template-top{display:flex;align-items:flex-start;gap:10px}.template-icon{width:35px;height:35px;display:grid;place-items:center;color:#617cdd;background:#edf2ff;border-radius:10px}.template-icon svg{width:17px;height:17px}.template-card h3,.taxonomy-card h3,.user-card h3{font-size:12px;margin:0;line-height:1.5}.template-card p{font-size:10px;color:#929db0;line-height:1.6;margin:10px 0}.template-meta{font-size:10px;color:#7f8aa0;margin:13px 0;display:flex;gap:9px;flex-wrap:wrap}.template-meta span{display:flex;align-items:center;gap:4px}.template-meta svg{width:13px;height:13px}.template-steps{display:flex;gap:4px;margin:12px 0 15px}.template-steps span{height:4px;border-radius:4px;background:#dfe6fb;flex:1}.template-card-actions{display:flex;gap:7px;border-top:1px solid #f0f2f6;padding-top:13px}.template-card-actions .btn{flex:1}.taxonomy-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.taxonomy-card{padding:0;overflow:hidden}.taxonomy-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;border-bottom:1px solid #f0f2f6}.taxonomy-head-left{display:flex;align-items:center;gap:9px;min-width:0}.taxonomy-symbol{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:#f0f3fb;color:#6f7fa4}.taxonomy-symbol svg{width:15px;height:15px}.taxonomy-head p{margin:4px 0 0;font-size:9px;color:#a0a9b8}.taxonomy-options{display:flex;flex-wrap:wrap;gap:7px;padding:14px 16px 16px}.option-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#f7f8fb;border:1px solid #edf0f5;border-radius:7px;padding:6px 7px 6px 9px;font-size:10px;color:#65718a}.option-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-remove{display:grid;place-items:center;background:transparent;border:0;color:#b2bac8;width:14px;height:14px;padding:0}.chip-remove svg{width:12px;height:12px}.chip-remove:hover{color:var(--red)}.add-option{display:flex;gap:6px;padding:0 16px 15px}.add-option input{min-width:0;flex:1;border:1px solid var(--line);border-radius:7px;padding:8px 9px;font-size:10px}.add-option button{border:1px solid #e4e9f3;background:#fff;color:#6d7ba0;border-radius:7px;font-size:10px;padding:0 11px}.add-option button:hover{background:#f3f6ff}.taxonomy-card-wide{grid-column:1/-1}.preset-list{padding:6px 16px 16px;display:flex;flex-direction:column}.preset-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #f2f4f7}.preset-row:last-child{border-bottom:0}.drag-grip{color:#c1c8d4}.drag-grip svg{width:14px;height:14px}.preset-row input{min-width:0;flex:1;border:1px solid transparent;border-radius:6px;background:transparent;padding:7px;font-size:11px;color:#4d5b74}.preset-row input:focus{border-color:#dce4f7;background:#fff;outline:none}.preset-row .icon-btn{width:28px;height:28px}.activity-list{background:#fff;border:1px solid var(--line);border-radius:13px;padding:0 18px}.activity-entry{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid #f0f2f6}.activity-entry:last-child{border-bottom:0}.activity-icon{width:30px;height:30px;display:grid;place-items:center;background:#f3f5fb;border-radius:9px;color:#8391ac}.activity-icon svg{width:15px;height:15px}.activity-copy{flex:1;min-width:0}.activity-copy strong{font-size:11px;font-weight:700}.activity-copy p{font-size:10px;line-height:1.6;margin:5px 0 0;color:#8d98aa}.activity-date{font-size:9px;color:#a6afbd;white-space:nowrap;padding-top:2px}.users-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.user-card{display:flex;gap:12px;align-items:flex-start}.user-card .user-avatar{width:39px;height:39px;font-size:13px}.user-card-main{min-width:0;flex:1}.user-card-main p{font-size:10px;color:#8e99ac;margin:6px 0 12px}.user-card-actions{display:flex;flex-wrap:wrap;gap:6px}.inline-note{background:#f5f7fc;border:1px solid #edf0f6;border-radius:10px;padding:12px 14px;font-size:10px;color:#7e8aa0;line-height:1.65;margin-bottom:17px}.inline-note strong{color:#4b5b79}.inline-note.warn{background:#fff8e9;border-color:#f5e8c9;color:#906b2c}.management-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* modal */
.modal-root{position:fixed;inset:0;z-index:50;background:rgba(23,32,53,.38);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{width:min(100%,660px);max-height:min(92vh,900px);overflow:auto;background:#fff;border-radius:17px;box-shadow:0 28px 90px rgba(23,32,53,.22);animation:modal-in .16s ease-out}.modal-card.modal-wide{width:min(100%,900px)}.modal-card.modal-narrow{width:min(100%,460px)}@keyframes modal-in{from{transform:translateY(7px);opacity:.7}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:21px 24px 16px;border-bottom:1px solid #f0f2f6;gap:12px}.modal-header h2{font-size:17px;margin:0;letter-spacing:-.025em}.modal-header p{font-size:10px;color:#949fb1;margin:6px 0 0;line-height:1.6}.modal-body{padding:21px 24px}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px 24px 21px;border-top:1px solid #f0f2f6}.modal-footer-right{display:flex;align-items:center;justify-content:flex-end;gap:8px}.modal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.modal-form-grid .full{grid-column:1/-1}.modal-field{display:flex;flex-direction:column;gap:7px;min-width:0}.modal-field label{font-size:11px;font-weight:700;color:#526078}.modal-field input,.modal-field select,.modal-field textarea{width:100%;border:1px solid #dfe5ee;border-radius:8px;padding:10px 11px;min-height:37px;color:#34415a;background:#fff;font-size:11px;outline:0}.modal-field textarea{resize:vertical;min-height:82px;line-height:1.6}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:#aabaf3;box-shadow:0 0 0 3px rgba(69,109,230,.08)}.modal-field input::placeholder,.modal-field textarea::placeholder{color:#b0b8c5}.field-hint{font-size:9px;color:#9aa4b4;font-weight:400;line-height:1.5}.section-divider{grid-column:1/-1;border-top:1px solid #f0f2f6;margin-top:2px;padding-top:14px;color:#8491a6;font-size:10px;font-weight:750;letter-spacing:.02em}.node-editor-list{display:flex;flex-direction:column;gap:9px}.node-editor-card{border:1px solid var(--line);border-radius:11px;padding:13px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.node-editor-main{min-width:0}.node-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.node-title-line strong{font-size:12px}.node-meta-line{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;color:#8994a8;font-size:10px}.node-meta-line span{display:flex;align-items:center;gap:4px}.node-meta-line svg{width:12px;height:12px}.node-notes{font-size:10px;color:#8792a5;margin-top:8px;white-space:pre-wrap;line-height:1.6}.node-editor-actions{display:flex;align-items:flex-start;gap:4px}.node-editor-actions .icon-btn{border:1px solid #e9edf4}.node-history{margin-top:10px;background:#f8f9fc;border-radius:8px;padding:10px 11px}.node-history-title{font-size:10px;font-weight:750;color:#687590;margin-bottom:8px}.node-history-item{font-size:9px;color:#8792a6;display:flex;gap:7px;margin:6px 0;line-height:1.5}.history-dot{width:5px;height:5px;border-radius:50%;background:#9eb1ef;margin-top:5px;flex-shrink:0}.project-detail-header{padding:22px 24px 19px;background:linear-gradient(120deg,#f8faff,#fff);border-bottom:1px solid #eef1f7}.project-detail-top{display:flex;align-items:flex-start;gap:14px}.project-detail-title{min-width:0;flex:1}.project-detail-title h2{margin:0;font-size:19px;letter-spacing:-.03em}.project-detail-sub{font-size:10px;color:#8d98aa;margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.detail-kpis{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px}.detail-kpi{display:flex;flex-direction:column;gap:5px}.detail-kpi span{font-size:9px;color:#9aa4b4}.detail-kpi strong{font-size:11px;color:#50607d}.detail-progress{height:5px;background:#e9edf6;border-radius:6px;margin-top:17px;overflow:hidden}.detail-progress span{display:block;height:100%;background:linear-gradient(90deg,#5c7ce8,#7c9aed);border-radius:6px}.detail-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 13px;font-size:12px;font-weight:750}.detail-flow{position:relative;display:flex;flex-direction:column;gap:10px}.detail-flow:before{content:"";position:absolute;left:17px;top:30px;bottom:30px;width:1px;background:#e5eaf4}.detail-node{position:relative;background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 14px;display:flex;align-items:flex-start;gap:11px}.detail-node.current{border-color:#cfd9fb;box-shadow:0 4px 16px rgba(65,95,180,.05)}.node-marker{height:34px;width:34px;border-radius:10px;background:#f2f4f9;color:#a4adbc;display:grid;place-items:center;flex-shrink:0;z-index:1}.node-marker svg{width:16px;height:16px}.detail-node.completed .node-marker{background:#eaf8f3;color:#32957f}.detail-node.current .node-marker{background:#edf2ff;color:#4b6cdd}.detail-node-info{flex:1;min-width:0}.detail-node-info h3{font-size:12px;margin:2px 0 7px}.detail-node-sub{font-size:10px;color:#929db0;display:flex;gap:12px;flex-wrap:wrap}.detail-node-sub span{display:flex;align-items:center;gap:4px}.detail-node-sub svg{width:12px;height:12px}.detail-node-info p{font-size:10px;white-space:pre-wrap;line-height:1.6;color:#7f8ba0;margin:8px 0 0}.detail-node-action{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.detail-node-action .btn{font-size:10px;padding:7px 9px}.detail-side-section{background:#f8f9fc;border:1px solid #eef1f5;border-radius:10px;padding:13px;margin-top:16px}.detail-side-section h3{font-size:10px;margin:0 0 10px;color:#75829b}.classification-tags{display:flex;gap:6px;flex-wrap:wrap}.classification-tags span{font-size:9px;color:#6f7c96;border:1px solid #e8ecf5;background:#fff;border-radius:6px;padding:5px 7px}.confirm-copy{font-size:12px;color:#6f7b90;line-height:1.7}.toast-root{position:fixed;right:22px;bottom:22px;z-index:100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{min-width:220px;max-width:min(380px,calc(100vw - 40px));padding:12px 15px;border-radius:10px;background:#202b41;color:#fff;box-shadow:0 10px 30px rgba(21,30,50,.18);font-size:11px;display:flex;align-items:flex-start;gap:9px;animation:toast-in .18s ease-out}.toast svg{width:16px;height:16px}.toast.success svg{color:#8ed2bb}.toast.error svg{color:#ffb4be}.toast.info svg{color:#a9beff}@keyframes toast-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
/* responsive */
@media(max-width:1180px){.sidebar{width:224px}.main-area{margin-left:224px}.view-root{padding-left:24px;padding-right:24px}.topbar{padding:0 24px}.stats-grid{gap:10px}.stat-card{padding:15px}.dashboard-grid,.calendar-layout{grid-template-columns:minmax(0,1fr) minmax(250px,.8fr)}.cards-grid,.users-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-row-next{min-width:105px}}
@media(max-width:920px){.sidebar{transform:translateX(-100%);box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:15px 0 45px rgba(20,31,55,.12)}.main-area{margin-left:0}.mobile-menu-btn{display:inline-flex}.collapse-btn{display:none}.topbar{padding:0 20px}.view-root{padding:24px 20px}.app-footer{padding:12px 20px 17px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.calendar-layout{grid-template-columns:1fr}.calendar-day{min-height:70px}.taxonomy-layout{grid-template-columns:1fr}.taxonomy-card-wide{grid-column:auto}.top-search{width:200px}}
@media(max-width:640px){.topbar{height:62px;padding:0 13px}.top-search{display:none}.topbar-actions{gap:7px}.topbar-actions .btn{padding:10px}.topbar-actions .btn span{display:none}.view-root{padding:20px 13px}.app-footer{padding:12px 13px 16px;flex-wrap:wrap}.page-heading{flex-direction:column;gap:14px;margin-bottom:19px}.page-heading h1{font-size:22px}.heading-actions{width:100%}.heading-actions .btn{flex:1}.stats-grid{gap:9px}.stat-card{min-height:105px;padding:13px}.stat-number{font-size:24px}.stat-sub{line-height:1.5}.dashboard-grid{gap:11px}.project-table th,.project-table td{padding-left:10px;padding-right:10px}.panel-head{padding:15px 13px 12px}.panel-body{padding-left:13px;padding-right:13px}.project-row-card{padding:12px;gap:10px}.project-row-next,.project-row-due{display:none}.project-row-card .project-type-icon{width:33px;height:33px}.row-action .icon-btn{display:none}.cards-grid,.users-grid{grid-template-columns:1fr}.calendar-panel{padding:11px}.calendar-day{min-height:58px;padding:4px 3px}.day-number{height:21px;width:21px}.calendar-event{font-size:7px;padding:3px}.calendar-weekdays div{font-size:9px}.modal-root{padding:0;align-items:flex-end}.modal-card,.modal-card.modal-wide,.modal-card.modal-narrow{width:100%;max-height:94vh;border-radius:17px 17px 0 0}.modal-header{padding:18px 17px 14px}.modal-body{padding:18px 17px}.modal-footer{padding:13px 17px 18px}.modal-form-grid{grid-template-columns:1fr}.modal-form-grid .full,.section-divider{grid-column:auto}.project-detail-title h2{font-size:17px}.detail-node{padding:11px 9px;gap:8px}.node-marker{width:30px;height:30px}.detail-node-action{flex-direction:column}.detail-node-action .btn{padding:7px}.login-brand{top:23px;left:21px}.login-card{padding:30px 24px 24px}.login-bottom{position:relative;bottom:auto;margin-top:28px;text-align:center;font-size:10px}.login-screen{padding:95px 17px 30px;justify-content:center}.activity-entry{gap:9px}.activity-date{white-space:normal;text-align:right;min-width:68px}.toolbar{align-items:flex-start}.filter-group{width:100%}.filter-group .select-control{flex:1}.toolbar-input{min-width:0;width:100%}.management-tools{width:100%}.management-tools .btn{flex:1}}

/* Optional compact navigation */
.sidebar.compact{width:78px;padding-left:11px;padding-right:11px}.sidebar.compact .brand-copy,.sidebar.compact .workspace-meta,.sidebar.compact .workspace-switch .status-live,.sidebar.compact .nav-label,.sidebar.compact .nav-item span,.sidebar.compact .nav-item kbd,.sidebar.compact .sidebar-note,.sidebar.compact .user-meta,.sidebar.compact .user-chevron{display:none}.sidebar.compact .sidebar-brand{justify-content:center;padding-left:0;padding-right:0}.sidebar.compact .collapse-btn{position:absolute;top:27px;right:4px}.sidebar.compact .workspace-switch{justify-content:center;padding:9px 0;margin-left:0;margin-right:0}.sidebar.compact .nav-item{justify-content:center;padding:0}.sidebar.compact .nav-item svg{width:19px;height:19px}.sidebar.compact .sidebar-user{justify-content:center;padding-left:0;padding-right:0}.sidebar.compact .user-avatar{width:34px;height:34px}.app-shell:has(.sidebar.compact) .main-area{margin-left:78px}
