:root{--topbar-h:62px;--navy-900:#0a1428;--navy-800:#0f1e3d;--navy-700:#16294d;--navy-600:#1f3a6e;--navy-100:#e9eef7;--gold-400:#e9d9b0;--gold-500:#c9a961;--gold-600:#b8923f;--bg:#f4f5f7;--topbar-bg:#f4f5f7;--tabbar-bg:#edf1f8;--card:#ffffff;--text:#182440;--text-muted:#57647e;--border:#e1e7f1;--field-bg:#ffffff;--field-border:#dfe5f0;--field-label:#4a5a78;--field-placeholder:#9aa8c4;--select-arrow:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234a5a78' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--primary:var(--navy-800);--primary-hover:var(--navy-600);--primary-50:#edf2fb;--warning-ink:#d8a03c;--success-ink:#34c68a;--danger-ink:#e25563;--success:#2f9e77;--warning:#d08a2a;--danger:#d64545;--radius:14px;--shadow-sm:0 1px 2px rgba(31, 58, 110, .06);--shadow:0 8px 24px rgba(31, 58, 110, .1);--shadow-lg:0 20px 50px rgba(31, 58, 110, .16);--glass-blur-lg:20px;--glass-blur-md:16px;--glass-blur-sm:8px;--glass-blur-xs:2px;--glass-sat-strong:150%;--glass-sat-soft:120%;--glass-tint:rgba(255, 255, 255, .70);--glass-tint-thin:rgba(255, 255, 255, .66);--glass-tint-card-a:rgba(255, 255, 255, .55);--glass-tint-card-b:rgba(242, 247, 253, .40);--glass-hairline:rgba(255, 255, 255, .50);--glass-inset:rgba(255, 255, 255, .50);--glass-veil-sm:rgba(15, 30, 60, .08);--glass-veil-md:rgba(10, 20, 40, .38);--login-ink:#0c1a36;--login-ink-sub:#4c5c80;--login-ink-body:#42547a;--login-label:#3a4a6e;--login-placeholder:#64749a;--login-hairline:rgba(22, 41, 77, .10);--login-field-bg:rgba(255, 255, 255, .55);--login-field-bg-focus:rgba(255, 255, 255, .78);--login-field-border:rgba(216, 223, 236, .75);--login-field-inset:rgba(31, 58, 110, .04);--login-focus-ring:rgba(201, 169, 97, .20);--login-logo-glow:rgba(201, 169, 97, .40);--login-glow-inset:rgba(201, 169, 97, .12);--login-shadow:rgba(2, 6, 18, .45);--login-card-solid-a:#ffffff;--login-card-solid-b:#f2f7fd;--login-btn-grad-b:#b89240;--login-btn-ink:#fff;--login-btn-glow:rgba(184, 146, 63, .50);--lite-veil-modal:rgba(15, 30, 60, .42);--lite-veil-sidebar:rgba(10, 20, 40, .50);--login-lite-border:rgba(205, 217, 235, .90);--login-lite-shadow:0 26px 64px -22px rgba(2, 6, 18, .35),0 1px 0 rgba(255, 255, 255, .70) inset;--login-lite-field-bg:#ffffff;--login-lite-field-border:rgba(203, 214, 233, .95);--ctl-h-xs:34px;--ctl-h:38px;--ctl-h-lg:40px;--ctl-h-xl:44px;--seg-gap:4px;--seg-inset:3px;--gantt-day:28px;--gantt-left:300px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.4}p{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--bg)}body,html{height:100%;font-family:var(--font);font-size:14px;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html{background-color:var(--bg)}body{background:radial-gradient(900px 520px at 88% -12%,rgba(201,169,97,.08),transparent 62%),radial-gradient(820px 620px at -12% 112%,rgba(31,58,110,.04),transparent 72%),linear-gradient(180deg,#f6f8fc 0,#edf1f8 100%);background-size:100vw 100vh;background-repeat:no-repeat;background-attachment:fixed}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}a{color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgba(22,41,77,.18);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:rgba(22,41,77,.3)}::-webkit-scrollbar-track{background:0 0}.hidden{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:10px;border:1px solid transparent;font-size:14px;font-weight:500;transition:all .18s;white-space:nowrap;line-height:1.4;position:relative;overflow:hidden}.btn:active{transform:translateY(1px) scale(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{width:15px;height:15px}.btn-icon svg{width:18px;height:18px;margin:0}.btn-primary{background:linear-gradient(135deg,var(--navy-700),var(--navy-800));color:#fff;box-shadow:0 4px 12px rgba(15,30,61,.22)}@media (hover:hover){.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--navy-600),var(--navy-800));box-shadow:0 6px 16px rgba(15,30,61,.28)}.btn-gold:hover:not(:disabled){filter:brightness(1.06)}.btn-outline:hover{background:rgba(201,169,97,.14);border-color:var(--gold-500);color:var(--navy-700);box-shadow:0 2px 10px rgba(201,169,97,.2)}html[data-theme=dark] .btn-outline:hover{background:rgba(201,169,97,.18);color:var(--text)}.btn-ghost:hover{background:var(--primary-50);color:var(--navy-700)}.btn-danger:hover{filter:brightness(1.08)}.btn-success:hover{filter:brightness(1.08)}}.btn-gold{background:linear-gradient(135deg,var(--gold-500),var(--gold-600));color:#fff;box-shadow:0 4px 12px rgba(184,146,63,.28)}.btn-outline{background:#fff;border-color:#d8deea;color:var(--navy-700);box-shadow:0 1px 2px rgba(31,58,110,.05)}.btn-ghost{background:0 0;color:var(--text-muted)}.btn-danger{background:var(--danger-ink);color:var(--navy-900)}.btn-success{background:var(--success-ink);color:var(--navy-900)}.btn-sm{padding:5px 12px;font-size:13px;border-radius:8px}.btn-icon{padding:8px;width:var(--ctl-h-xs);height:var(--ctl-h-xs)}.input,.select,.textarea{width:100%;padding:9px 12px;border:1px solid var(--field-border);border-radius:10px;font-size:14px;background:var(--field-bg);color:var(--text);outline:0;transition:border-color .15s,box-shadow .15s}input.input{height:var(--ctl-h);padding-top:0;padding-bottom:0}.select{-webkit-appearance:none;appearance:none;padding-right:32px;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 11px center;background-size:10px 6px}.input::placeholder,.textarea::placeholder{color:var(--field-placeholder)}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(201,169,97,.18)}.textarea{resize:vertical;min-height:80px}.combo{position:relative;display:inline-flex;align-items:center;min-width:0}.combo .combo-input{width:100%;padding:0 34px 0 12px;border:1px solid var(--field-border);border-radius:10px;font-size:14px;background:var(--field-bg);color:var(--text);outline:0;transition:border-color .15s,box-shadow .15s;height:var(--ctl-h);line-height:var(--ctl-h)}.combo .combo-input::placeholder{color:var(--field-placeholder)}.combo .combo-input:focus{border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(201,169,97,.18)}.combo .combo-caret{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-muted);cursor:pointer;pointer-events:auto}.combo-panel{position:absolute;z-index:30;left:0;top:calc(100% + 4px);width:100%;box-sizing:border-box;max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--field-bg);border:1px solid var(--field-border);border-radius:12px;box-shadow:0 14px 34px -12px rgba(15,30,60,.22),0 4px 12px -4px rgba(15,30,60,.1);display:none;padding:4px}.combo-panel.open{display:block}.combo-panel.combo-pop{position:absolute;z-index:30;max-height:min(240px,60vh)}.combo-host{position:relative}.combo:focus-within,.combo:has(.combo-panel.open){position:relative;z-index:30}.modal.combo-open{overflow-y:visible}.combo-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--text);white-space:nowrap}.combo-item .nm{overflow:hidden;text-overflow:ellipsis;min-width:0}.combo-item .t{font-size:11px;color:var(--text-muted);flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis}.combo-item.active,.combo-item:hover{background:rgba(201,169,97,.12)}.combo-item.empty-item{color:var(--text-muted)}.combo-item.empty-item:hover{background:rgba(148,172,220,.1)}.modal-body .field .combo{width:100%}.tasks-toolbar .combo,.toolbar .combo{flex:0 0 auto}html[data-theme=dark] .combo-panel{background:#16203a;border-color:#2a3a5c;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 18px 44px -14px rgba(0,0,0,.65)}@media (max-width:600px){.combo-panel{max-height:180px}.tasks-toolbar .combo{flex:1 1 auto;width:100%}.tasks-toolbar .combo .combo-input{width:100%}.tasks-toolbar #tasks-assignee{max-width:none}.toolbar .combo{width:100%!important;max-width:none!important;flex:1 1 auto}.toolbar .combo .combo-input{width:100%}}@media (orientation:landscape) and (max-height:520px){.combo-panel{max-height:42vh}}@media (orientation:portrait) and (max-width:820px) and (max-height:1180px){.combo-panel{max-height:34vh}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--field-label)}.field label .req{color:var(--danger)}.card{background:var(--card);border:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 .5px rgba(31,58,110,.05),0 12px 32px -14px rgba(31,58,110,.13);border-radius:var(--radius);transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}.card:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 .5px rgba(31,58,110,.05),0 20px 44px -18px rgba(31,58,110,.2)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.5}.badge-ghost{background:var(--primary-50);color:var(--text-muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:#fff;font-size:13px;font-weight:600;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 2px 6px rgba(15,30,61,.14)}.progress{width:100%;height:6px;background:#e9edf5;border-radius:999px;overflow:hidden}.progress>div{height:100%;border-radius:999px;transition:width .4s ease}.cell-prog{position:relative}.cell-prog.complete .progress{overflow:visible}.cell-prog.complete .progress>div{background:linear-gradient(90deg,#10b981,#34d399)!important;box-shadow:0 0 14px rgba(16,185,129,.55)}.cell-prog.complete .pct{color:#059669}.table-card tr:has(.cell-prog.complete) .cell-name .nm,.table-card tr:has(.cell-prog.complete) .pname{color:#059669}.pprog.complete .progress{overflow:visible}.pprog.complete .progress>div{background:linear-gradient(90deg,#10b981,#34d399)!important;box-shadow:0 0 14px rgba(16,185,129,.55)}.pprog.complete .ppct{color:#059669}#toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px}.toast{min-width:260px;max-width:380px;padding:13px 18px;border-radius:12px;background:var(--glass-tint-thin);backdrop-filter:blur(var(--glass-blur-md)) saturate(var(--glass-sat-strong));-webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(var(--glass-sat-strong));box-shadow:var(--shadow-lg);border:1px solid var(--glass-hairline);border-left:4px solid var(--navy-800);font-size:14px;color:var(--text);animation:slideIn .25s ease}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning)}.toast.fade{opacity:0;transform:translateX(24px);transition:all .3s}@keyframes slideIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}html[data-theme=dark] .toast{background:var(--glass-tint-thin);border-color:var(--glass-hairline);color:var(--text)}html[data-theme=dark] .toast.success{border-left-color:#34d399}html[data-theme=dark] .toast.error{border-left-color:#f87171}html[data-theme=dark] .toast.warning{border-left-color:#fbbf24}html[data-theme=dark] .toast.info{border-left-color:#60a5fa}.modal-mask{position:fixed;inset:0;z-index:1000;background:var(--glass-veil-sm);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-sat-soft));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-sat-soft));display:flex;align-items:center;justify-content:center;padding:20px;transition:opacity .2s ease-out;animation:maskFade .24s ease}@keyframes maskFade{from{opacity:0}to{opacity:1}}.modal{width:100%;max-width:580px;max-height:min(76vh,640px);display:flex;flex-direction:column;overflow:hidden;background:var(--glass-tint);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));border:1px solid var(--glass-hairline);border-radius:16px;padding:24px;box-shadow:inset 0 1px 0 var(--glass-inset),0 28px 64px -18px rgba(15,30,60,.3);animation:modalIn .24s cubic-bezier(.22,.61,.36,1)}@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #eef1f7}.modal-header h3{font-size:17px;font-weight:700;color:var(--navy-800);letter-spacing:.01em}.modal-viewport{flex:1 1 auto;min-height:0;min-width:0;display:flex;overflow:hidden}.modal-track{flex:1 1 auto;min-height:0;min-width:0;display:flex;transition:transform .26s cubic-bezier(.22, .61, .36, 1)}.modal-track.is-detail{transform:translateX(-100%)}.modal-page{flex:0 0 100%;min-width:0;min-height:0;display:flex;flex-direction:column}.modal-page.is-off{visibility:hidden;transition:visibility 0s linear .26s}@keyframes auditFadeIn{from{opacity:0}to{opacity:1}}.fade-in{animation:auditFadeIn .18s ease-out}.modal-head-left{display:flex;align-items:center;gap:8px;min-width:0}.modal-close{background:0 0;border:none;font-size:22px;color:var(--text-muted);line-height:1;padding:4px;transition:color .15s}.modal-close:hover{color:var(--text)}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(22,41,77,.28) transparent;padding:0 0 14px}.modal-body::-webkit-scrollbar{width:6px;height:6px}.modal-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-thumb{background:rgba(22,41,77,.24);border-radius:999px;transition:background .2s ease}.modal-body::-webkit-scrollbar-thumb:hover{background:rgba(22,41,77,.42)}html[data-theme=dark] .modal-body{scrollbar-color:rgba(148,168,205,.32) transparent}html[data-theme=dark] .modal-body::-webkit-scrollbar-thumb{background:rgba(148,168,205,.32)}html[data-theme=dark] .modal-body::-webkit-scrollbar-thumb:hover{background:rgba(148,168,205,.5)}@supports not (-webkit-touch-callout:none){@media (hover:none),(pointer:coarse){.modal-body{scrollbar-width:none;scrollbar-color:transparent transparent}.modal-body::-webkit-scrollbar{display:none;width:0;height:0}}}.modal-body .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.modal-body>.field,.modal-body>.grid{margin-top:14px}.modal-body>.field:first-child,.modal-body>.grid:first-child{margin-top:0}.modal-body p{line-height:1.6;color:var(--text)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px;flex-shrink:0}.modal-footer .footer-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.modal-footer .footer-actions .btn{min-width:96px;height:var(--ctl-h-lg)}.modal-footer .modal-danger{display:flex;align-items:center;gap:10px;margin-right:auto}.modal-footer .modal-danger .btn{flex:0 0 auto;position:relative;width:var(--ctl-h-lg);height:var(--ctl-h-lg);min-width:0;padding:0;border:1px solid #d8deea;border-radius:10px;background:#fff;color:var(--navy-700);transition:background-color .15s ease,border-color .15s ease,color .15s ease,filter .15s ease}html[data-theme=dark] .modal-footer .modal-danger .btn:not(.danger-btn){background:#1a2642;border-color:#26324e;color:var(--text)}.modal-footer .modal-danger .btn svg{width:18px;height:18px}.modal-footer .modal-danger .btn::before{content:'';position:absolute;inset:-3px}.modal-footer .modal-danger .btn:hover:not(:disabled){background:rgba(201,169,97,.14);border-color:var(--gold-500);color:var(--navy-700);box-shadow:0 2px 10px rgba(201,169,97,.2)}html[data-theme=dark] .modal-footer .modal-danger .btn:not(.danger-btn):hover:not(:disabled){background:rgba(201,169,97,.18);border-color:var(--gold-500);color:var(--text)}.modal-footer .modal-danger .btn:disabled{opacity:.38}.modal-footer .modal-danger .danger-btn,.modal-footer .modal-danger .danger-btn svg{color:#fff}.modal-footer .modal-danger .danger-btn{background:var(--danger);border-color:var(--danger)}.modal-footer .modal-danger .danger-btn:hover:not(:disabled){background:var(--danger);color:#fff;filter:brightness(.9)}.modal-footer .modal-danger .btn.active{background:rgba(201,169,97,.28);color:var(--text)}html[data-theme=dark] .modal-footer .modal-danger .btn.active{background:rgba(201,169,97,.34)}.more-card{position:fixed;z-index:1100;min-width:172px;padding:6px;border:1px solid var(--glass-hairline);border-radius:16px;background:var(--glass-tint);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));box-shadow:0 28px 64px -18px rgba(15,30,60,.3),0 4px 14px -6px rgba(15,30,60,.12);animation:maskFade .16s ease}html[data-theme=dark] .more-card{background:var(--glass-tint);border-color:var(--glass-hairline);box-shadow:inset 0 1px 0 var(--glass-inset),0 28px 64px -18px rgba(0,0,0,.6)}.more-card .more-item{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 12px;border:0;border-radius:10px;background:0 0;font-size:14px;color:var(--text);text-align:left;cursor:pointer;transition:background-color .15s ease}.more-card .more-item svg{width:17px;height:17px;flex-shrink:0;color:var(--text-muted)}.more-card .more-item .more-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.more-card .more-item .more-hint{font-size:12px;color:var(--text-muted)}.more-card .more-item:hover:not(:disabled){background:rgba(201,169,97,.14)}.more-card .more-item.warn,.more-card .more-item.warn svg{color:var(--warning-ink)}.more-card .more-item.success,.more-card .more-item.success svg{color:var(--success-ink)}.more-card .more-item.danger,.more-card .more-item.danger svg{color:var(--danger-ink)}.more-card .more-item.warn:hover:not(:disabled){background:rgba(180,83,9,.1)}.more-card .more-item.success:hover:not(:disabled){background:rgba(31,122,90,.1)}.more-card .more-item.danger:hover:not(:disabled){background:rgba(209,59,59,.1)}html[data-theme=dark] .more-card .more-item.warn:hover:not(:disabled){background:rgba(216,160,60,.18)}html[data-theme=dark] .more-card .more-item.success:hover:not(:disabled){background:rgba(52,198,138,.18)}html[data-theme=dark] .more-card .more-item.danger:hover:not(:disabled){background:rgba(226,85,99,.16)}.more-card .more-item:disabled{opacity:.38;cursor:default}.modal-body .field .input,.modal-body .field .select{height:var(--ctl-h);line-height:var(--ctl-h);padding:0 12px}.modal-body .field .select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 10px center;background-size:10px 6px}.login-wrap{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:linear-gradient(135deg,var(--navy-800) 0,var(--navy-900) 55%,#050a18 100%);display:flex;align-items:center;justify-content:center;isolation:isolate}.login-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.dynamic-flow-background{position:fixed;inset:0;width:100vw;height:100vh;overflow:hidden;pointer-events:none;z-index:0;isolation:isolate;filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;mix-blend-mode:normal;background:#0a1428}.dynamic-flow-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:translate3d(0,0,0);will-change:contents}.login-glass-mask{position:absolute;inset:0;z-index:0;pointer-events:none;background:var(--glass-veil-sm);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-sat-soft));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-sat-soft));transition:background .3s ease,backdrop-filter .3s ease}html[data-theme=dark] .login-glass-mask{background:var(--glass-veil-sm)}.login-wrap::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 0,rgba(5,10,24,.35) 100%)}.login-main{position:relative;z-index:1;width:100%;padding:32px 20px;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:440px;background:linear-gradient(160deg,var(--glass-tint-card-a) 0,var(--glass-tint-card-b) 100%);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-sat-strong));border:1px solid var(--glass-hairline);box-shadow:0 30px 80px -20px var(--login-shadow),0 1px 0 var(--glass-inset) inset,0 0 60px var(--login-glow-inset) inset;border-radius:22px;padding:34px 36px 30px;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}.login-card .login-brand{display:flex;align-items:center;gap:12px;justify-content:center;padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid var(--login-hairline)}.login-card .login-brand img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 4px 12px var(--login-logo-glow))}.login-card .login-brand .name{font-size:17px;font-weight:700;color:var(--login-ink);letter-spacing:.02em;line-height:1.4}.login-card .login-brand .sub{font-size:11px;color:var(--login-ink-sub);margin-top:4px;letter-spacing:.1em}.login-card h2{font-size:23px;font-weight:700;color:var(--login-ink);margin-bottom:4px;text-align:center;letter-spacing:.02em}.login-card>p{color:var(--login-ink-body);margin-bottom:24px;font-size:13px;text-align:center}.login-form{display:flex;flex-direction:column;gap:14px}.login-form .btn{height:var(--ctl-h-xl);font-size:14px;margin-top:6px}.login-card .field label{color:var(--login-label)}.login-card .input{height:var(--ctl-h);padding-top:0;padding-bottom:0;background:var(--login-field-bg);border:1px solid var(--login-field-border);color:var(--login-ink);box-shadow:0 1px 2px var(--login-field-inset) inset}.login-card .input::placeholder{color:var(--login-placeholder)}.login-card .input:focus{border-color:var(--gold-500);background:var(--login-field-bg-focus);box-shadow:0 0 0 3px var(--login-focus-ring)}.login-card .btn-primary{background:linear-gradient(135deg,var(--gold-500) 0,var(--login-btn-grad-b) 100%);color:var(--login-btn-ink);border:none;box-shadow:0 8px 20px -6px var(--login-btn-glow)}@media (hover:hover){.login-card .btn-primary:hover{filter:brightness(1.06);box-shadow:0 10px 24px -6px rgba(184,146,63,.55)}}@media (orientation:landscape) and (max-height:560px){.login-wrap{height:100dvh;overflow-y:auto;overflow-x:hidden;align-items:flex-start}.login-main{padding:14px 20px;margin:auto}.login-card{padding:18px 26px 16px;max-width:400px}.login-card .login-brand{padding-bottom:10px;margin-bottom:12px}.login-card .login-brand img{width:30px;height:30px}.login-card .login-brand .name{font-size:14px}.login-card h2{font-size:18px}.login-card>p{margin-bottom:12px;font-size:12px}.login-form{gap:8px}.login-form .btn{height:var(--ctl-h-lg);margin-top:2px}}html[data-theme=dark] .login-wrap{background:linear-gradient(135deg,#0a1630 0,#060d1f 55%,#03070f 100%)}html[data-theme=dark] .login-card{background:linear-gradient(160deg,var(--glass-tint-card-a) 0,var(--glass-tint-card-b) 100%);border-color:var(--glass-hairline);box-shadow:0 30px 80px -20px var(--login-shadow),0 1px 0 var(--glass-inset) inset,0 0 60px var(--login-glow-inset) inset}html[data-theme=dark] .login-card .login-brand{border-bottom-color:var(--login-hairline)}html[data-theme=dark] .login-card .login-brand .name,html[data-theme=dark] .login-card h2{color:var(--login-ink)}html[data-theme=dark] .login-card .login-brand .sub{color:var(--login-ink-sub)}html[data-theme=dark] .login-card>p{color:var(--login-ink-body)}html[data-theme=dark] .login-card .field label{color:var(--login-label)}html[data-theme=dark] .login-card .input{background:var(--login-field-bg);border-color:var(--login-field-border);color:var(--login-ink);box-shadow:0 1px 2px var(--login-field-inset) inset}html[data-theme=dark] .login-card .input::placeholder{color:var(--login-placeholder)}html[data-theme=dark] .login-card .input:focus{border-color:var(--gold-500);background:var(--login-field-bg-focus);box-shadow:0 0 0 3px var(--login-focus-ring)}.layout{display:flex;height:100vh;height:100dvh;overflow:hidden;box-sizing:border-box}.sidebar{width:236px;background:linear-gradient(180deg,#122a52 0,#0a1a38 100%);border-right:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.88);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:50;box-shadow:6px 0 24px -12px rgba(10,20,40,.35)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:18px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 3px 10px rgba(201, 169, 97, .4))}.sidebar-brand .bn{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:700;color:#fff;letter-spacing:.06em;line-height:1.4}.sidebar-brand .bs{font-size:11px;opacity:.55;margin-top:4px;letter-spacing:.08em}.sidebar-nav{flex:1;overflow-y:auto;padding:16px 12px}.nav-group{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.5);padding:14px 10px 8px;font-weight:600}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;margin-bottom:4px;color:rgba(255,255,255,.86);text-decoration:none;font-size:14px;line-height:1.4;transition:background .18s ease,padding-left .2s cubic-bezier(.22, .61, .36, 1),color .15s;border:none;background:0 0;width:100%;text-align:left;position:relative}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff;padding-left:16px}.nav-item .ico{transition:transform .22s cubic-bezier(.25, .8, .35, 1)}.nav-item:hover .ico{transform:translateX(2px) scale(1.06)}.nav-item.active .ico{animation:iconPop .4s cubic-bezier(.25,.8,.35,1)}@keyframes iconPop{0%{transform:scale(1)}50%{transform:scale(1.07)}100%{transform:scale(1)}}.nav-item:active{transform:scale(.98)}.nav-item.active{background:linear-gradient(90deg,rgba(201,169,97,.24),rgba(201,169,97,.06));color:#fff;font-weight:600}.nav-item.active::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--gold-400),var(--gold-600))}.nav-item .ico{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.nav-item .ico svg{width:18px;height:18px}.nav-item.active .ico svg{stroke:var(--gold-400)}.nav-badge{margin-left:auto;font-size:10px;background:rgba(255,255,255,.14);padding:2px 8px;border-radius:999px;color:rgba(255,255,255,.65)}.sidebar-user{padding:14px;border-top:1px solid rgba(255,255,255,.08);cursor:pointer;transition:background .2s}.sidebar-user:hover{background:rgba(255,255,255,.07)}.sidebar-user .urow{display:flex;align-items:center;gap:10px}.sidebar-user .uname{font-size:14px;font-weight:600;color:#fff}.sidebar-user .utitle{font-size:11.5px;opacity:.75;margin-top:1px}.sidebar-user .urow .avatar{width:38px;height:38px;font-size:15px}.main{flex:1;margin-left:236px;display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.topbar{height:62px;background:var(--topbar-bg);background:color-mix(in srgb,var(--topbar-bg) 84%,transparent);-webkit-backdrop-filter:blur(var(--glass-blur-lg));backdrop-filter:blur(var(--glass-blur-lg));border-bottom:1px solid rgba(31,58,110,.07);display:flex;align-items:center;padding:0 26px;gap:16px;position:sticky;top:0;z-index:40}.topbar .crumb{font-size:12px;color:var(--text-muted);line-height:1.4}.topbar .crumb b{color:var(--gold-600);font-weight:600}.topbar .title{font-size:18px;font-weight:700;color:var(--navy-800);line-height:1.4;letter-spacing:.01em}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.topbar-user{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:10px;cursor:pointer;transition:background .15s}.topbar-user:hover{background:var(--primary-50)}.topbar-user .uname{font-size:14px;font-weight:600;color:var(--navy-800)}.topbar-user .role-tag{font-size:11px;color:var(--gold-600);background:rgba(201,169,97,.18);padding:1px 8px;border-radius:999px;font-weight:500}.content{flex:1;min-height:0;padding:20px 24px;overflow:auto;overscroll-behavior:contain}.mobile-toggle{display:none}.sidebar-mask{position:fixed;inset:0;z-index:49;background:var(--glass-veil-md);-webkit-backdrop-filter:blur(var(--glass-blur-xs));backdrop-filter:blur(var(--glass-blur-xs));opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;touch-action:pan-y}.sidebar.open~.sidebar-mask{opacity:1;visibility:visible}.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--tabbar-bg);border-top:1px solid rgba(31,58,110,.07);box-shadow:0 -10px 28px -18px rgba(31,58,110,.28);padding-bottom:env(safe-area-inset-bottom)}.tabbar-item{flex:1 1 0;min-width:0;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:0 0;cursor:pointer;padding:0;color:var(--text-muted);font-size:10px;line-height:1.2;font-family:inherit;transition:color .18s ease;-webkit-tap-highlight-color:transparent}.tabbar-item .ico{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.tabbar-item .ico svg{width:22px;height:22px}.tabbar-item.active{color:var(--gold-600);font-weight:600}.tabbar-item:active{transform:scale(.96)}html[data-theme=dark] .tabbar{border-top-color:rgba(255,255,255,.07);box-shadow:0 -10px 28px -18px rgba(0,0,0,.6)}html[data-theme=dark] .tabbar-item.active{color:var(--gold-400)}@media (max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .25s ease;box-shadow:none;overscroll-behavior:contain}.sidebar-nav{overscroll-behavior:contain;touch-action:pan-y}.sidebar.open{transform:translateX(0);box-shadow:20px 0 60px rgba(10,20,40,.3)}.main{margin-left:0}.mobile-toggle{display:inline-flex}.content{padding:16px}.sidebar-brand{padding:16px 18px 14px}.sidebar-brand img{width:36px;height:36px}}@media (max-width:900px) and (min-height:540px){.tabbar{display:flex}.content{padding-bottom:calc(54px + env(safe-area-inset-bottom) + 16px)!important}.tasks-toolbar>.combo,.tasks-toolbar>.input,.tasks-toolbar>.select,.toolbar>.btn,.toolbar>.combo,.toolbar>.input,.toolbar>.select{flex:1 1 100%!important;width:100%!important;max-width:none!important}.toolbar>.gantt-view-toggle{flex:0 0 auto!important;width:auto!important;margin-left:auto}.toolbar>.spacer{display:none}}.welcome-banner{position:relative;overflow:hidden;background:radial-gradient(600px 300px at 90% -20%,rgba(201,169,97,.3),transparent 60%),linear-gradient(135deg,var(--navy-700),var(--navy-900));color:#fff;border-radius:16px;padding:28px 20px;border:1px solid rgba(201,169,97,.35);display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;box-shadow:0 14px 36px rgba(15,30,61,.22)}.welcome-banner h2{font-size:23px;font-weight:700;margin-bottom:8px;letter-spacing:.01em}.welcome-banner p{opacity:.82;font-size:14px;line-height:1.6;max-width:560px}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:20px;display:flex;align-items:center;gap:16px}.stat-card .ico{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 14px rgba(15,30,61,.14)}.stat-card .ico svg{width:22px;height:22px}.stat-card .num{font-size:25px;font-weight:700;line-height:1.2;color:var(--navy-800);letter-spacing:-.01em}.stat-card .lbl{font-size:12px;color:var(--text-muted);margin-top:4px;letter-spacing:.02em}.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.dash-col{display:flex;flex-direction:column;gap:16px}.card-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-head h3{font-size:16px;font-weight:700;color:var(--navy-800);letter-spacing:.01em}.card-head h3::before{content:'';display:inline-block;width:3px;height:14px;border-radius:3px;background:linear-gradient(180deg,var(--gold-500),var(--gold-600));margin-right:8px;vertical-align:-2px}.card-head .more{color:var(--gold-600);font-size:13px;text-decoration:none;font-weight:500}.card-head .more:hover{color:var(--navy-700)}html[data-theme=dark] .card-head .more{color:var(--gold-400)}html[data-theme=dark] .card-head .more:hover{color:#e8f0fc}.card-body{padding:12px 20px 20px}.project-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px dashed var(--border);text-decoration:none;color:inherit;transition:padding-left .15s}.project-row:last-child{border-bottom:none}.project-row:hover .pname{color:var(--gold-600)}.project-row .pname{font-weight:600;transition:color .15s;line-height:1.4;display:flex;align-items:center;gap:6px}.project-row .pname .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-row .pname .ovd{font-size:11px;padding:1px 8px}.project-row .pmeta{font-size:12px;color:var(--text-muted);margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;line-height:1.4}.project-row .pright{margin-left:auto;display:flex;align-items:center;gap:14px}.project-row .pprog{width:130px}.project-row .ppct{font-size:13px;font-weight:700;min-width:40px;text-align:right;color:var(--navy-800)}.dist-list{display:flex;flex-direction:column;gap:12px}.dist-item{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.4}.dist-item[data-stat-go]{cursor:pointer;padding:6px 8px;margin:-6px -8px;border-radius:8px;transition:background .15s ease}.dist-item[data-stat-go]:hover{background:rgba(201,169,97,.1)}html[data-theme=dark] .dist-item[data-stat-go]:hover{background:rgba(255,255,255,.06)}.dist-item .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dist-item .cnt{margin-left:auto;font-weight:700;color:var(--navy-800);letter-spacing:-.01em}.dist-bar{height:6px;background:#e9edf5;border-radius:999px;overflow:hidden;flex:1}.dist-bar>div{height:100%;border-radius:999px}.status-chip{display:inline-block;vertical-align:middle;font-size:12px;padding:3px 12px;border-radius:999px;font-weight:500;white-space:nowrap;line-height:1.5}.cell-sub{font-size:12px;color:var(--text-muted);font-weight:400}.t{font-size:12px;color:var(--text-muted)}.form-hint{font-size:12px;color:var(--text-muted);margin-top:-2px}.color-picker{display:flex;gap:8px;flex-wrap:wrap;padding-top:2px}.color-swatch{width:27px;height:27px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s}.color-swatch:hover{transform:scale(1.12)}.color-swatch.active{border-color:#fff;box-shadow:0 0 0 2px var(--gold-500)}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.toolbar .spacer{flex:1}.toolbar .input,.toolbar .select{width:auto;height:var(--ctl-h)}.toolbar .select{line-height:var(--ctl-h);padding-top:0;padding-bottom:0;text-align:left}.toolbar .btn{height:var(--ctl-h);padding-top:0;padding-bottom:0}.table-card{overflow:hidden}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);padding:14px 16px;background:#f4f7fb;vertical-align:middle;border-bottom:1px solid var(--border);white-space:nowrap;letter-spacing:.02em}.table-card table{border-collapse:separate;border-spacing:0}.table-card table:has(.cell-actions) thead th:last-child{position:sticky;right:0;background:#f4f7fb;z-index:3}.table-card table:has(.cell-actions) tbody td:last-child{position:sticky;right:0;background:var(--card);z-index:2;box-shadow:-1px 0 0 var(--border),-10px 0 16px -14px rgba(31,58,110,.3)}.table-card table:has(.cell-actions) tbody tr:hover td:last-child{background:#f6f8fc}html[data-theme=dark] .table-card table:has(.cell-actions) thead th:last-child{background:#1e273b}html[data-theme=dark] .table-card table:has(.cell-actions) tbody td:last-child{background:var(--card);box-shadow:-1px 0 0 #2b3a59,-10px 0 16px -14px rgba(0,0,0,.6)}html[data-theme=dark] .table-card table:has(.cell-actions) tbody tr:hover td:last-child{background:#16213a}.table-card .table-wrap{scrollbar-width:none}.table-card .table-wrap::-webkit-scrollbar{display:none}tbody td{padding:14px 16px;border-bottom:1px solid #edf1f7;vertical-align:middle;text-align:center}thead th{text-align:center}.proj-table th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap}.proj-table th[data-sort]:hover{color:var(--gold-600)}.proj-table th[data-sort].sorted{color:var(--gold-600);font-weight:700}.proj-table .cell-name{text-align:center}.proj-table .cell-name .n{justify-content:center;margin:0 auto}.proj-table .cell-name .d{text-align:center;margin:3px auto 0}tbody tr{transition:background .12s}tbody tr:hover{background:rgba(201,169,97,.07)}tbody tr:last-child td{border-bottom:none}.cell-name .n{font-weight:600;color:var(--navy-800);line-height:1.4;max-width:240px;display:flex;align-items:center;gap:6px}.cell-name .n .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cell-name .d{font-size:12px;color:var(--text-muted);margin-top:4px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.cell-owner{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:nowrap}.cell-owner .info{line-height:1.4;white-space:nowrap}.cell-owner .info .t{font-size:12px;color:var(--text-muted);margin-top:2px}.cell-period{white-space:nowrap}.cell-prog{display:flex;align-items:center;gap:10px;justify-content:center;position:relative}.cell-prog .progress{width:90px}.cell-prog .pct{font-size:13px;font-weight:700;min-width:36px;text-align:right;color:var(--navy-800)}.cell-actions{display:flex;gap:4px;justify-content:center;align-items:center}.cell-actions .btn{padding:5px 8px;font-size:12px}.empty-state{padding:60px 20px;text-align:center;color:var(--text-muted);line-height:1.6}.empty-state .ico{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;background:var(--primary-50);display:flex;align-items:center;justify-content:center}.empty-state .ico svg{width:26px;height:26px;stroke:var(--gold-600)}.profile-wrap{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.settings-wrap{display:flex;flex-direction:column;gap:16px}.profile-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 8px 24px -16px rgba(31,58,110,.25)}.profile-avatar{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:32px;font-weight:600;box-shadow:0 4px 12px -4px rgba(0,0,0,.2);margin-bottom:14px}.profile-name{font-size:20px;font-weight:700;color:var(--navy-800);margin-bottom:6px}.profile-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.profile-meta .role-tag{font-size:12px;color:var(--gold-600);background:rgba(201,169,97,.18);padding:2px 10px;border-radius:999px;font-weight:500}.profile-info{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:6px 24px;box-shadow:0 8px 24px -16px rgba(31,58,110,.25)}.profile-info .row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.profile-info .row:last-child{border-bottom:none}.profile-info .row .lbl{width:88px;flex-shrink:0;font-size:13px;color:var(--text-muted)}.profile-info .row .val{flex:1;font-size:14px;color:var(--text);word-break:break-all}.profile-info .row .val.empty{color:var(--text-muted);font-style:italic}.profile-actions{display:flex;gap:10px;flex-wrap:wrap}.profile-actions .btn{flex:1 1 auto;height:var(--ctl-h-xl);font-size:14px}.profile-actions .btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.profile-actions .btn-danger:hover{background:rgba(220,38,38,.06)}.profile-actions .btn-danger i{color:var(--danger)}.st-planning{background:#eef1f6;color:#5b6a86}.st-in_progress{background:#e4edff;color:#2563eb}.st-on_hold{background:#fdf1de;color:#b5791d}.st-completed{background:#e0f4ec;color:#1f8a63}.st-delayed{background:#fde8e8;color:#d13b3b}.st-admin{background:linear-gradient(135deg,rgba(201,169,97,.28),rgba(201,169,97,.12));color:#9c7a2f;border:1px solid rgba(201,169,97,.5);font-weight:600}.st-member{background:#eef1f6;color:#5b6a86}.gantt-card{overflow:hidden}.gantt-wrap{overflow:auto;max-height:72vh}.gantt-canvas{min-width:var(--gantt-w,0)}.gantt-head .gantt-time,.gantt-main-col{margin-left:calc(-1 * var(--gantt-left))}@media (max-width:900px){.gantt-left-col{transition:transform .25s ease}.gantt-wrap.gt-left-hidden .gantt-left-col{transform:translateX(-100%)}}.gantt-head{display:flex}.gantt-left-col{width:var(--gantt-left);flex-shrink:0;border-right:1px solid var(--border);position:sticky;left:0;z-index:20;background:var(--card);min-height:46px;box-shadow:10px 0 16px -14px rgba(31,58,110,.3)}html[data-theme=dark] .gantt-left-col{box-shadow:10px 0 16px -14px rgba(0,0,0,.6)}.gantt-left-head{height:62px;display:flex;align-items:center;padding:0 16px;font-size:13px;font-weight:600;color:var(--text-muted);background:#f4f7fb;border-bottom:1px solid var(--border)}.gantt-time{position:relative}.gantt-month-row{display:flex;height:32px;border-bottom:1px solid var(--border);background:#f4f7fb}.gantt-month{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#5b6a86;border-right:1px solid var(--border);white-space:nowrap}.gantt-day-row{display:flex;height:30px;border-bottom:1px solid var(--border)}.gantt-day{display:flex;align-items:center;justify-content:center;font-size:11px;color:#7c89a6;border-right:1px solid var(--border);flex-shrink:0}.gantt-day.weekend{background:#f6f8fc;color:#a0aac0}.gantt-day.today{background:rgba(201,169,97,.28);color:#9c7a2f;font-weight:700}.gantt-row{display:flex;border-bottom:1px solid var(--border)}.gantt-main-col{flex-shrink:0}.gantt-log-panel{max-height:0;overflow:hidden;overflow:clip;transition:max-height .34s cubic-bezier(.22, .61, .36, 1);background:#f7fafd}.gantt-log-panel.open{max-height:var(--glog-h,120px);border-top:1px dashed var(--border)}.gantt-log-list{position:relative}.gantt-log-empty,.gantt-log-loading{height:40px;line-height:40px;padding:0 16px;font-size:12px;color:var(--text-muted)}.gantt-log-item{height:26px;display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;overflow:hidden}.gantt-log-item .gli-date{flex-shrink:0;padding:0 6px;border-radius:0;background:rgba(201,169,97,.18);color:#9c7a2f;font-weight:700;font-size:11px}.gantt-log-item .gli-op{font-size:12px;color:var(--text-muted);flex-shrink:0}.gantt-log-item .gli-time{font-size:11px;font-weight:600;color:#7c89a6;flex-shrink:0}.gantt-log-item .gli-txt{white-space:nowrap;color:var(--navy-800)}html[data-theme=dark] .gantt-log-panel{background:rgba(18,28,49,.5)}html[data-theme=dark] .gantt-log-item .gli-date{background:rgba(201,169,97,.22);color:#d8b96a}html[data-theme=dark] .gantt-log-item .gli-time{color:#7c89a6}html[data-theme=dark] .gantt-log-item .gli-txt{color:var(--text)}html[data-theme=dark] .gantt-log-head .glt-close:hover{background:rgba(148,163,195,.12);color:var(--text)}.gantt-left-detail,.gantt-row-body{position:absolute;inset:0}.gantt-row-body{display:flex;align-items:center;gap:10px;padding:0 16px;height:46px;min-width:0;overflow:hidden;cursor:pointer;opacity:1;pointer-events:auto;transition:opacity .12s ease}.gantt-row:hover .gantt-left-col{background:#f6f8fc}.gantt-row-body>div:nth-child(2){flex:1 1 0;min-width:0}.gantt-row-body>button{flex:0 0 auto}.gantt-row-body:hover .name{color:var(--gold-600)}html[data-theme=dark] .gantt-row-body:hover .name{color:var(--gold-400)}.gantt-row-body .name{font-weight:600;font-size:13px;color:var(--navy-800);line-height:1.4;display:flex;align-items:center;gap:4px;min-width:0}.gantt-row-body .name .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:0 1 auto}.gantt-row-body .name .ovd{font-size:11px;padding:0 4px;flex-shrink:0}.gantt-row-body .range{font-size:11px;color:var(--text-muted);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-left-detail{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .12s ease}.gantt-row.expanded .gantt-row-body{opacity:0;pointer-events:none;transition:opacity .12s ease}.gantt-row.expanded .gantt-left-detail{opacity:1;pointer-events:auto;transition:opacity .12s ease}.gantt-row.expanded .gantt-left-detail .avatar{width:34px;height:34px;font-size:14px;flex-shrink:0}.gantt-left-detail .gld-info{flex:1;min-width:0}.gantt-left-detail .gld-name{font-weight:700;font-size:13px;color:var(--navy-800);line-height:1.4;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.gantt-left-detail .gld-name .ovd{font-size:11px;padding:0 4px;flex-shrink:0}.gantt-left-detail .gld-range,.gantt-left-detail .gld-who{font-size:11px;color:var(--text-muted);line-height:1.5;white-space:nowrap;overflow:hidden}.gantt-row.expanded .gantt-left-detail:hover .gld-name{color:var(--gold-600)}html[data-theme=dark] .gantt-left-detail .gld-name{color:var(--text)}html[data-theme=dark] .gantt-row.expanded .gantt-left-detail:hover .gld-name{color:var(--gold-400)}.gantt-track{position:relative;height:46px}.gantt-track-bg{position:absolute;inset:0;display:flex}.gantt-track-cell{border-right:1px solid var(--border);flex-shrink:0;height:100%}.gantt-track-cell.weekend{background:#f6f8fc}.gantt-bar{position:absolute;top:11px;height:24px;border-radius:7px;display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:600;color:#fff;cursor:pointer;overflow:hidden;white-space:nowrap;box-shadow:0 2px 6px rgba(15,30,61,.18);border:1px solid rgba(255,255,255,.25);animation:barIn .5s cubic-bezier(.3,1.08,.42,1) both;transform-origin:left center}.gantt-bar .gb-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.gantt-bar .gb-op{flex-shrink:0;margin-left:4px;width:12px;height:12px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;line-height:1;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.gantt-bar.todo{background:linear-gradient(180deg,#b6c0d2,#96a2b8)}.gantt-bar.in_progress{background:linear-gradient(180deg,#3b6fd4,var(--navy-800))}.gantt-bar.done{background:linear-gradient(180deg,#3aa882,#2f9e77)}.gantt-bar.blocked{background:linear-gradient(180deg,#e56a6a,#d64545)}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--gold-500);z-index:5;box-shadow:0 0 6px rgba(201,169,97,.6)}.gantt-today-label{position:absolute;transform:translateX(-50%);background:linear-gradient(135deg,var(--gold-500),var(--gold-600));color:#fff;font-size:10px;padding:1px 8px;border-radius:5px;top:2px;z-index:6;font-weight:600}.gantt-summary{display:flex;align-items:center;gap:24px;padding:20px 24px;border-bottom:1px solid var(--border);flex-wrap:wrap}.gantt-summary .proj{flex:1;min-width:220px}.gantt-summary .proj h3{font-size:17px;font-weight:700;color:var(--navy-800);letter-spacing:.01em;line-height:1.4}.gantt-summary .proj p{font-size:13px;color:var(--text-muted);margin-top:4px;line-height:1.6}.gantt-summary .stat{text-align:center;min-width:70px}.gantt-summary .stat .num{font-size:23px;font-weight:700;color:var(--navy-800);line-height:1.2;letter-spacing:-.01em}.gantt-summary .stat .lbl{font-size:12px;color:var(--text-muted);margin-top:4px;letter-spacing:.02em}.gantt-legend{display:flex;gap:16px;flex-wrap:wrap;padding:13px 24px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted);line-height:1.4}.gantt-legend .li{display:flex;align-items:center;gap:6px}.gantt-legend .sw{width:12px;height:12px;border-radius:3px}.gantt-list{padding:8px 22px 16px;scrollbar-width:none}.gantt-list::-webkit-scrollbar{display:none}.gantt-list-row{display:grid;grid-template-columns:10px minmax(140px,1fr) 110px 190px auto;gap:14px;align-items:center;padding:13px 6px;border-bottom:1px dashed var(--border);cursor:pointer}.gantt-list-row>*{min-width:0}.gantt-list-row:last-child{border-bottom:none}.gantt-list-row .sw{width:10px;height:10px;border-radius:50%;flex-shrink:0}.gantt-list-row:last-child{border-bottom:none}.gantt-list-row .name{font-weight:600;color:var(--navy-800);min-width:150px;flex:1;line-height:1.4;display:flex;align-items:center;gap:4px}.gantt-list-row .name .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.gantt-list-row .name .ovd{font-size:11px;padding:1px 8px}.gantt-list-row .who{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px;min-width:90px;line-height:1.4}.gantt-list-row .dates{font-size:12px;color:var(--text-muted);min-width:190px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-view-toggle{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--seg-gap);padding:var(--seg-inset);background:rgba(15,30,60,.06);border-radius:9px;visibility:hidden;animation:gvReveal .01s 1s forwards}.gantt-view-toggle.gv-ready{visibility:visible;animation:none}@keyframes gvReveal{to{visibility:visible}}.gantt-view-toggle .gv-pill{position:absolute;top:var(--seg-inset);bottom:var(--seg-inset);left:var(--seg-inset);width:calc(50% - var(--seg-inset) - var(--seg-gap)/ 2);border-radius:7px;background:#fff;box-sizing:border-box;border:1px solid rgba(15,30,60,.1);transform:translateX(0);transition:transform .28s cubic-bezier(.4, 0, .2, 1);z-index:0;pointer-events:none}.gantt-view-toggle button:nth-of-type(2).active~.gv-pill{transform:translateX(calc(100% + var(--seg-gap)))}.gantt-view-toggle button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;background:0 0;border-radius:7px;padding:4px 12px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:color .2s ease}.gantt-view-toggle button>i,.gantt-view-toggle svg{width:14px;height:14px;flex:0 0 auto}.gantt-view-toggle button>i{display:inline-block}.gantt-view-toggle .active{color:var(--navy-700);font-weight:600}.tasks-toolbar{display:flex;gap:12px;flex-wrap:wrap;padding:14px 24px;border-bottom:1px solid var(--border);align-items:center}.tasks-toolbar .input,.tasks-toolbar .select{flex:0 0 auto}.task-status-sel{width:108px}.tasks-summary .stat .num.warn{color:#dc2626}.tasks-empty{padding:56px 20px;text-align:center;color:var(--text-muted);line-height:1.6}.tasks-empty .ico{color:var(--gold-400)}.tasks-empty .btn{margin-top:16px}#tasks-back{justify-content:flex-start}.ovd{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#dc2626;background:#fde8e8;padding:1px 8px;border-radius:999px;white-space:nowrap;line-height:1.5}.ovd svg{width:11px;height:11px}.cell-name .d.task-d{display:flex;align-items:center;gap:6px}.task-d .d-dates{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media (max-width:900px){.tasks-toolbar{padding:12px 16px}.tasks-toolbar .input{flex:1;min-width:0}.tasks-toolbar .select{flex:0 0 auto}}@media (max-width:600px){.tasks-toolbar .input{flex-basis:100%;width:100%}.tasks-toolbar .select{flex:1}}@media (max-width:1200px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr}}@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:root{--gantt-day:18px;--gantt-left:230px}.gantt-left-head{padding:0 10px}.gantt-row-body{padding:0 10px;gap:8px}.gantt-row-body .avatar{width:26px;height:26px;font-size:11px}.gantt-row-body .name .ovd{padding:0 4px}.gantt-row-body .range{margin-top:2px;max-width:168px}.gantt-summary{gap:14px;padding:16px}.gantt-summary .stat .num{font-size:19px}.gantt-list-row .dates{min-width:0}.gantt-row.expanded .gantt-left-detail{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 70px 8px 12px}.gantt-row.expanded .gantt-left-detail .avatar{display:none}.gantt-left-detail .gld-info{width:100%;flex:0 0 auto}.gantt-row.expanded .gantt-left-detail>button{align-self:flex-end;flex:0 0 auto}}@media (max-width:900px) and (min-height:540px){.gantt-left-col .mine-log-btn .log-btn-text{display:none}:root{--gantt-log-reserve:51px;--gantt-left:205px}}@media (max-width:1000px) and (orientation:landscape) and (max-height:540px){.sidebar{transform:translateX(-100%);box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:20px 0 60px rgba(10,20,40,.3)}.main{margin-left:0}.mobile-toggle{display:inline-flex}.content{padding:14px 18px}:root{--gantt-left:250px}.gantt-row-body .range{max-width:none}.gantt-row.expanded .gantt-left-detail{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 70px 8px 12px}.gantt-row.expanded .gantt-left-detail .avatar{display:none}.gantt-left-detail .gld-info{width:100%;flex:0 0 auto}.gantt-row.expanded .gantt-left-detail>button{align-self:flex-end;flex:0 0 auto}}@media (max-width:600px){:root{--topbar-h:50px}.stat-grid{grid-template-columns:1fr}.welcome-banner{flex-direction:column;align-items:flex-start;padding:20px 16px}.login-card{padding:30px 24px}.topbar{padding:0 14px}.topbar .crumb{display:none}.content{padding:14px}.card-body,.card-head{padding-left:16px;padding-right:16px}.gantt-list{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 16px 14px}.gantt-list-row{display:flex;flex-wrap:nowrap;min-width:560px;padding:12px 4px;align-items:center}.gantt-list-row .name{min-width:0;flex:0 1 170px;font-size:12px}.gantt-list-row .name .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.gantt-list-row .who{min-width:0;flex:0 0 84px;font-size:11px;gap:4px}.gantt-list-row .who .avatar{width:20px;height:20px;font-size:10px}.gantt-list-row .dates{min-width:0;flex:0 0 172px;font-size:11px}}.page-loading{padding:44px 0;text-align:center;color:var(--text-muted);font-size:13px}@keyframes pageFade{from{opacity:0}to{opacity:1}}.content>:not(.combo-panel):not(.toolbar){animation:pageFade .28s cubic-bezier(.4,0,.2,1) both}@keyframes barIn{from{opacity:.2;transform:scaleX(.3)}to{opacity:1;transform:scaleX(1)}}.modal-mask.closing{opacity:0;pointer-events:none}.modal-mask.closing .modal{animation:modalOut .2s cubic-bezier(.4,0,.2,1) forwards}@keyframes modalOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px) scale(.98)}}.stat-card .ico{transition:transform .26s cubic-bezier(.25, .8, .35, 1),box-shadow .26s ease}.stat-card:hover .ico{transform:translateY(-1px) scale(1.04)}@media (min-width:1100px){.modal{max-width:640px}.modal-body .grid{gap:16px}.toolbar{flex-wrap:nowrap}.toolbar .input,.toolbar .select{width:200px;flex:0 0 auto}}@media (min-width:901px) and (max-width:1099px){.modal{max-width:560px}}@media (max-width:900px),(max-width:960px) and (orientation:landscape){body,html{width:100vw;max-width:100vw;overflow:hidden;overscroll-behavior:none}.layout{width:100vw;max-width:100vw;height:100vh;height:100dvh;overflow:hidden}input,select,textarea{font-size:16px!important}.modal-mask{padding:12px;align-items:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.modal{width:100%;max-width:540px;max-height:86vh;border-radius:16px;padding:16px 14px;overflow-x:hidden;margin:auto}.modal-header{margin-bottom:10px;padding-bottom:10px}.modal-footer{margin-top:14px;flex-wrap:wrap}.modal-footer .footer-actions .btn{flex:1 1 auto}body.modal-open{overflow:hidden;overscroll-behavior:contain}input[type=date],input[type=datetime-local],input[type=time]{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:14px;min-height:var(--ctl-h);height:var(--ctl-h);padding:0 12px;line-height:var(--ctl-h);background:var(--field-bg);width:100%;min-width:0;max-width:100%;box-sizing:border-box}input[type=date]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{font-size:14px;line-height:var(--ctl-h);height:var(--ctl-h);margin:0;padding:0;text-align:left;color:var(--text)}input[type=date]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{display:flex;align-items:center;height:var(--ctl-h);line-height:var(--ctl-h);padding:0}.modal-body .grid{grid-template-columns:minmax(0,1fr);gap:12px}.table-card table{min-width:720px}.table-card table td,.table-card table th{white-space:nowrap}.cell-actions{flex-wrap:wrap}.toolbar .input,.toolbar .select{width:100%!important;flex:1 1 100%}.toolbar .btn{height:var(--ctl-h-lg)}:root{--topbar-h:50px}.topbar{height:50px;padding:0 12px;gap:8px;flex-wrap:nowrap}.topbar>div:not(.topbar-right){min-width:0;flex:1 1 auto;overflow:hidden}.topbar .title{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .crumb{display:none}.topbar-right{flex-shrink:0;gap:0;margin-left:auto}.topbar-user{padding:4px 8px;gap:6px;cursor:pointer}.topbar-user .avatar{width:30px;height:30px;font-size:13px;flex-shrink:0}.topbar-user .uname{font-size:13px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user .role-tag{display:none}.topbar #logout-btn{display:none}.modal-body .field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.modal-body .field>label{line-height:16px;height:16px;display:block;font-size:13px;font-weight:600;color:var(--field-label);margin:0}.modal-body .field>label .req{color:var(--danger)}.modal-body .field .input,.modal-body .field .select{height:var(--ctl-h);line-height:var(--ctl-h);padding:0 12px;font-size:14px;-webkit-appearance:none;appearance:none;box-sizing:border-box;border:1px solid var(--field-border);border-radius:10px;background:var(--field-bg);color:var(--text);outline:0;width:100%;min-width:0;max-width:100%}.modal-body .field .select{padding-right:30px;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 10px center;background-size:10px 6px}.modal-body .field .textarea{height:auto;min-height:84px;line-height:1.5;padding:10px 12px;resize:vertical;-webkit-appearance:none;appearance:none;border:1px solid var(--field-border);border-radius:10px;background:var(--field-bg);font-size:14px}.modal-body .grid{row-gap:10px;column-gap:10px}.modal-body .form-hint{margin-bottom:8px;font-size:12px;line-height:1.4}.modal-body>.field,.modal-body>.grid{margin-top:10px}.modal-body>.field:first-child,.modal-body>.grid:first-child{margin-top:0}.profile-card{padding:22px 18px;border-radius:14px}.profile-avatar{width:68px;height:68px;font-size:26px;margin-bottom:10px}.profile-name{font-size:17px}.profile-info{padding:4px 16px;border-radius:14px}.profile-info .row{padding:12px 0}.profile-info .row .lbl{width:72px;font-size:13px}.profile-info .row .val{font-size:14px}.profile-actions .btn{height:var(--ctl-h-lg);font-size:13px}}@keyframes sheetUp{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}@keyframes sheetDown{from{opacity:1;transform:none}to{opacity:0;transform:translateY(42px)}}@media (min-width:768px) and (max-width:1366px){input[type=date],input[type=datetime-local],input[type=time]{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:14px;min-height:var(--ctl-h);height:var(--ctl-h);line-height:var(--ctl-h);padding:0 12px;border:1px solid var(--field-border);border-radius:10px;background:var(--field-bg);color:var(--text);outline:0;box-sizing:border-box;width:100%;max-width:100%}input[type=date]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{font-size:14px;line-height:var(--ctl-h);height:var(--ctl-h);margin:0;padding:0;text-align:left;color:var(--text)}input[type=date]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{display:flex;align-items:center;height:var(--ctl-h);line-height:var(--ctl-h);padding:0}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{width:18px;height:18px;padding:0}.table-card table td,.table-card table th{padding-left:12px;padding-right:12px}.table-card .cell-actions .btn{padding-left:8px;padding-right:8px}.table-card .cell-prog .progress{width:70px}}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}html[data-theme=dark]{--navy-900:#050b16;--navy-800:#0c1526;--navy-700:#101c31;--navy-600:#1a2b4a;--navy-100:#223252;--gold-400:#e9d9b0;--gold-500:#c9a961;--gold-600:#a9853f;--bg:#0a0f17;--topbar-bg:#0a0f17;--tabbar-bg:#070e1b;--card:#121c31;--text:#e6ebf5;--text-muted:#8b9ab8;--border:#2a3854;--field-bg:#0d1728;--field-border:#26324e;--field-label:#9fb0cc;--field-placeholder:#5c6b8c;--login-ink:#eaf0fb;--login-ink-sub:#8fa3c9;--login-ink-body:#9fb0d0;--login-label:#c4d2ea;--login-placeholder:#6f82a8;--login-hairline:rgba(148, 172, 220, .12);--login-field-bg:rgba(10, 18, 34, .55);--login-field-bg-focus:rgba(10, 18, 34, .75);--login-field-border:rgba(148, 172, 220, .20);--login-field-inset:rgba(2, 6, 18, .35);--login-focus-ring:rgba(201, 169, 97, .18);--login-glow-inset:rgba(201, 169, 97, .08);--login-shadow:rgba(2, 6, 18, .60);--login-card-solid-a:#0d1526;--login-card-solid-b:#101b30;--login-btn-glow:rgba(184, 146, 63, .40);--lite-veil:rgba(3, 7, 16, .60);--login-lite-border:rgba(148, 172, 220, .30);--login-lite-shadow:0 26px 64px -18px rgba(2, 6, 18, .75),0 1px 0 rgba(148, 172, 220, .12) inset;--login-lite-field-bg:rgba(10, 18, 34, .90);--login-lite-field-border:rgba(148, 172, 220, .24);--select-arrow:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239fb0cc' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--primary:var(--navy-700);--primary-hover:var(--navy-600);--primary-50:#16213a;--success:#34c68a;--warning:#d8a03c;--danger:#e25563;--shadow-sm:0 1px 2px rgba(0, 0, 0, .4);--shadow:0 8px 24px rgba(0, 0, 0, .55);--shadow-lg:0 20px 50px rgba(0, 0, 0, .65);--glass-tint:rgba(13, 20, 36, .60);--glass-tint-thin:rgba(13, 20, 36, .60);--glass-tint-card-a:rgba(12, 20, 38, .62);--glass-tint-card-b:rgba(7, 13, 27, .46);--glass-hairline:rgba(255, 255, 255, .10);--glass-inset:rgba(255, 255, 255, .06);--glass-veil-sm:rgba(3, 7, 16, .34);--glass-veil-md:rgba(3, 7, 16, .46)}html[data-theme=dark]{background-color:var(--bg)}html[data-theme=dark] body{background:radial-gradient(900px 500px at 90% -10%,rgba(201,169,97,.05),transparent 65%),radial-gradient(800px 600px at -10% 110%,rgba(20,35,60,.12),transparent 70%),linear-gradient(180deg,#060b15 0,#070e1b 100%);background-attachment:fixed}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16)}html[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.28)}html[data-theme=dark] .topbar{border-bottom-color:rgba(255,255,255,.07)}html[data-theme=dark] .topbar .title{color:var(--text)}html[data-theme=dark] .topbar-user:hover{background:rgba(26,43,74,.5)}html[data-theme=dark] .topbar-user .uname{color:var(--text)}html[data-theme=dark] thead th{background:rgba(255,255,255,.05);color:#aab8d4}html[data-theme=dark] tbody td{border-color:#26344f}html[data-theme=dark] tbody tr:hover{background:rgba(26,43,74,.45)}html[data-theme=dark] .card-head h3,html[data-theme=dark] .cell-name .n,html[data-theme=dark] .cell-prog .pct,html[data-theme=dark] .dist-item .cnt,html[data-theme=dark] .gantt-list-row .name,html[data-theme=dark] .gantt-row-body .name,html[data-theme=dark] .gantt-summary .proj h3,html[data-theme=dark] .gantt-summary .stat .num,html[data-theme=dark] .profile-name,html[data-theme=dark] .project-row .ppct,html[data-theme=dark] .settings-title h3,html[data-theme=dark] .stat-card .num{color:var(--text)}html[data-theme=dark] .mine-stat.warn .num,html[data-theme=dark] .tasks-summary .stat .num.warn{color:var(--danger)}html[data-theme=dark] .cell-prog.complete .pct,html[data-theme=dark] .pprog.complete .ppct,html[data-theme=dark] .table-card tr:has(.cell-prog.complete) .cell-name .nm,html[data-theme=dark] .table-card tr:has(.cell-prog.complete) .pname{color:var(--success)}html[data-theme=dark] .gantt-day.today{color:var(--warning)}html[data-theme=dark] .btn-outline{background:#1a2642;border-color:#26324e;color:var(--text);box-shadow:none}html[data-theme=dark] .btn-ghost:hover{background:rgba(26,43,74,.5);color:var(--text)}html[data-theme=dark] .btn-primary{background:linear-gradient(135deg,#2f5cb3 0,#20428f 100%);box-shadow:0 4px 14px rgba(0,0,0,.4)}@media (hover:hover){html[data-theme=dark] .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#3a6cc6 0,#27509f 100%);box-shadow:0 6px 18px rgba(0,0,0,.45)}}html[data-theme=dark] .login-card .btn-primary,html[data-theme=dark] .login-card .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--gold-500) 0,var(--login-btn-grad-b) 100%);color:var(--login-btn-ink);box-shadow:0 8px 20px -6px var(--login-btn-glow)}html[data-theme=dark] .dist-bar,html[data-theme=dark] .progress{background:rgba(255,255,255,.16)}html[data-theme=dark] .gantt-left-head{background:var(--card)}html[data-theme=dark] .gantt-month-row{background:rgba(255,255,255,.05)}html[data-theme=dark] .gantt-day.weekend,html[data-theme=dark] .gantt-track-cell.weekend{background:#0e1728}html[data-theme=dark] .gantt-day.today,html[data-theme=dark] .gantt-track-cell.today{background:rgba(201,169,97,.08)}html[data-theme=dark] .gantt-view-toggle{background:rgba(255,255,255,.08)}html[data-theme=dark] .gantt-view-toggle .gv-pill{background:#22314f;border-color:rgba(255,255,255,.1)}html[data-theme=dark] .gantt-view-toggle .active{color:#fff}html[data-theme=dark] .gantt-bar.todo{background:linear-gradient(180deg,#3a4a68,#2a3852)}html[data-theme=dark] .gantt-left-col{background:var(--card)}html[data-theme=dark] .gantt-row:hover .gantt-left-col{background:#16223b}html[data-theme=dark] .gantt-list-row:hover{background:rgba(26,43,74,.4)}html[data-theme=dark] .gantt-list-row .pct{color:var(--text)}html[data-theme=dark] .st-planning{background:rgba(148,163,195,.14);color:#aeb9d2}html[data-theme=dark] .st-in_progress{background:rgba(59,130,246,.16);color:#7da9f7}html[data-theme=dark] .st-on_hold{background:rgba(217,143,45,.16);color:#e0ae66}html[data-theme=dark] .st-completed{background:rgba(16,185,129,.16);color:#55d3a8}html[data-theme=dark] .st-delayed{background:rgba(239,68,68,.16);color:#ff8d8d}html[data-theme=dark] .st-admin{background:linear-gradient(135deg,rgba(201,169,97,.3),rgba(201,169,97,.14));color:#e9d9b0;border-color:rgba(201,169,97,.5)}html[data-theme=dark] .st-member{background:rgba(148,163,195,.14);color:#aeb9d2}html[data-theme=dark] .ovd{background:rgba(239,68,68,.18);color:#ff9b9b}html[data-theme=dark] .modal{background:var(--glass-tint);border-color:var(--glass-hairline);box-shadow:inset 0 1px 0 var(--glass-inset),0 28px 64px -18px rgba(0,0,0,.6)}html[data-theme=dark] .card{border-color:var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 32px -14px rgba(0,0,0,.55)}html[data-theme=dark] .modal-header{border-color:#26344f}html[data-theme=dark] .modal-header h3{color:var(--text)}html[data-theme=dark] .modal-mask{background:var(--glass-veil-sm)}.settings-title{display:flex;align-items:center;gap:8px;margin-bottom:10px}.settings-title h3{font-size:16px;color:var(--navy-800)}.settings-title i{color:var(--gold-500)}.settings-hint{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px}.theme-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:300px}.theme-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:15px 10px;border:1.5px solid var(--border);border-radius:12px;background:#fff;color:var(--navy-700);font-size:13px;cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s,color .18s}.theme-opt i{width:22px;height:22px;display:flex;align-items:center;justify-content:center;line-height:0;color:var(--text-muted);transition:color .18s}.theme-opt:hover{border-color:var(--gold-400)}.theme-opt.active{border-color:var(--gold-500);background:#fdf8ec;color:var(--navy-800);box-shadow:0 3px 10px rgba(201,169,97,.18)}.theme-opt.active i{color:var(--gold-600)}html[data-theme=dark] .theme-opt{background:#1a2642;color:var(--text)}html[data-theme=dark] .theme-opt.active{border-color:var(--gold-500);background:rgba(201,169,97,.12);box-shadow:none}html[data-theme=dark] .theme-opt.active i{color:var(--gold-400)}.vfx-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:520px}.vfx-opt{padding:13px 10px}.vfx-txt{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.vfx-name{font-size:13px;font-weight:600;line-height:1.4}.vfx-desc{font-size:11px;line-height:1.5;color:var(--text-muted);overflow-wrap:break-word}.theme-opt.active .vfx-desc{color:inherit;opacity:.85}.vfx-current{margin-top:12px;font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.vfx-current::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold-500);flex-shrink:0}.vfx-note{margin-top:10px;font-size:12px;line-height:1.5;color:var(--text-muted)}@media (max-width:600px){.vfx-picker{grid-template-columns:1fr;max-width:none}.vfx-opt{flex-direction:row;justify-content:flex-start;text-align:left;gap:12px;padding:12px 14px}.vfx-txt{align-items:flex-start}.vfx-desc{text-align:left}}.seg-toggle,.theme-toggle{position:relative;display:inline-flex;align-items:center;gap:var(--seg-gap);padding:var(--seg-inset);background:rgba(15,30,60,.06);border-radius:9px;flex-shrink:0}html[data-theme=dark] .seg-toggle,html[data-theme=dark] .theme-toggle{background:rgba(255,255,255,.08)}.seg-toggle .seg-pill,.theme-toggle .tt-pill{position:absolute;top:var(--seg-inset);bottom:var(--seg-inset);left:0;width:0;opacity:0;border-radius:7px;background:#fff;box-shadow:0 1px 5px rgba(15,30,60,.14);transition:left .28s cubic-bezier(.4, 0, .2, 1),width .28s cubic-bezier(.4, 0, .2, 1);z-index:0;pointer-events:none}html[data-theme=dark] .seg-toggle .seg-pill,html[data-theme=dark] .theme-toggle .tt-pill{background:#22314f;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 5px rgba(0,0,0,.35)}.seg-toggle .seg-btn,.theme-toggle .tt-btn{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;border:none;background:0 0;border-radius:7px;color:var(--text-muted);cursor:pointer;transition:color .2s ease}.seg-toggle .seg-btn{padding:4px 12px;font-size:12px;line-height:1.6}.theme-toggle .tt-btn{width:26px;height:26px;padding:0}.seg-toggle svg,.theme-toggle svg{width:15px;height:15px}.seg-toggle .seg-btn.active,.theme-toggle .tt-btn.active{color:var(--navy-700);font-weight:600}html[data-theme=dark] .seg-toggle .seg-btn.active,html[data-theme=dark] .theme-toggle .tt-btn.active{color:#fff}.pref-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0}.pref-row+.pref-row{border-top:1px dashed var(--border)}.pref-txt{flex:1;min-width:0;text-align:left}.pref-name{display:block;font-size:13px;font-weight:600;color:var(--navy-800);line-height:1.5}.settings-card .ln-main{text-align:left}html[data-theme=dark] .pref-name{color:var(--text)}.pref-desc{display:block;font-size:12px;color:var(--text-muted);line-height:1.5;margin-top:2px}@media (max-width:600px){.pref-row{align-items:flex-start;gap:12px}.theme-toggle .tt-btn{width:24px;height:24px}.topbar-right{gap:4px}}.changelog{display:flex;flex-direction:column;gap:16px}.cl-empty{color:var(--text-muted);text-align:center;padding:30px 0;font-size:13px}.cl-item{position:relative;padding:18px 18px 16px 20px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.28));box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 12px 26px -20px rgba(31,58,110,.35)}html[data-theme=dark] .cl-item{background:linear-gradient(180deg,rgba(30,42,70,.55),rgba(16,28,52,.35));border-color:#263757;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 26px -18px rgba(0,0,0,.7)}.cl-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.cl-ver{font-size:26px;font-weight:800;letter-spacing:.02em;line-height:1;background:linear-gradient(135deg,var(--navy-800) 0,#3b5b8f 55%,var(--gold-600) 125%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-theme=dark] .cl-ver{background:linear-gradient(135deg,#e8f0fc 0,#bcd0f0 55%,var(--gold-400) 130%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.cl-date{font-size:12px;color:var(--text-muted);margin-left:auto}.cl-item ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cl-item li{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;color:var(--navy-700)}html[data-theme=dark] .cl-item li{color:#c4d0e6}.cl-tag{flex-shrink:0;font-size:11px;font-weight:600;line-height:1.6;padding:2px 10px;border-radius:999px;margin-top:1px}.cl-highlight{background:rgba(201,169,97,.16);color:#8a6d1f}.cl-new{background:rgba(37,99,235,.1);color:#2563eb}.cl-optimize{background:rgba(217,143,45,.12);color:#b5791d}.cl-fix{background:rgba(16,185,129,.12);color:#1f8a63}html[data-theme=dark] .cl-highlight{background:rgba(232,168,60,.18);color:#e8c176}html[data-theme=dark] .cl-new{background:rgba(96,165,250,.16);color:#7da9f7}html[data-theme=dark] .cl-optimize{background:rgba(232,168,60,.15);color:#e0ae66}html[data-theme=dark] .cl-fix{background:rgba(52,198,138,.15);color:#55d3a8}.settings-sec-title{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin:6px 0 10px}.theme-opt .opt-badge{font-style:normal;font-size:10px;font-weight:700;line-height:1;padding:3px 8px;margin-left:4px;border-radius:999px;background:linear-gradient(135deg,var(--gold-500),#b89240);color:#fff;letter-spacing:.05em;vertical-align:1px}.changelog-btn-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.changelog-btn-row .btn{height:var(--ctl-h-lg);padding:0 18px}.modal.changelog-modal .modal-header{margin-bottom:0;padding-bottom:14px}.modal.changelog-modal .modal-body{padding:8px 2px 12px}.tasklog-modal .tl-task-name{font-size:15px;font-weight:600;color:var(--navy-800);padding:2px 0 14px;border-bottom:1px dashed var(--border);margin-bottom:16px}html[data-theme=dark] .tl-task-name{color:var(--text)}.tasklog{display:flex;flex-direction:column}.tl-item{position:relative;display:flex;gap:12px;padding:0 0 18px}.tl-item:last-child{padding-bottom:0}.tl-item::before{content:'';position:absolute;left:5px;top:16px;bottom:0;width:2px;background:var(--border);border-radius:2px}.tl-item:last-child::before{display:none}.tl-dot{position:relative;z-index:1;width:12px;height:12px;border-radius:50%;background:var(--gold-500);border:2px solid var(--card);box-shadow:0 0 0 2px rgba(201,169,97,.35);flex-shrink:0;margin-top:4px}.tl-body{flex:1;min-width:0}.tl-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.tl-op{font-size:13px;font-weight:600;color:var(--navy-800)}.tl-time{font-size:11px;color:var(--text-muted);flex-shrink:0}.tl-text{font-size:13px;color:var(--navy-700);line-height:1.6;margin-top:4px}.tl-empty,.tl-loading{text-align:center;color:var(--text-muted);font-size:13px;padding:26px 0}html[data-theme=dark] .tl-op{color:var(--text)}html[data-theme=dark] .tl-text{color:#c4d0e6}html[data-theme=dark] .tl-item::before{background:#2b3a59}html[data-theme=dark] .tl-dot{border-color:#16203a}.json-block{background:var(--field-bg);border:1px solid var(--field-border);border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-all;text-align:left;max-height:46vh;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal.tasklog-modal .modal-header{margin-bottom:0;padding-bottom:14px}.modal.tasklog-modal .td-log-form{flex-shrink:0;margin-bottom:0;padding:14px 0 16px;border-bottom:1px solid var(--border)}.modal.tasklog-modal .modal-body{overscroll-behavior:contain;padding:16px 0 6px 6px}.modal.tasklog-modal .modal-body .tasklog{padding-bottom:4px}.td-log-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.td-log-form .textarea{width:100%;box-sizing:border-box}.td-log-form .btn{align-self:flex-end;height:var(--ctl-h)}@media (max-width:480px){.td-log-form .btn{width:100%}}@keyframes rowFlash{0%{background:rgba(201,169,97,.32)}100%{background:0 0}}tr.row-highlight td{animation:rowFlash 1.5s ease}tr.row-highlight td:last-child{animation:none;background:var(--card)}@keyframes cardFlash{0%{background:rgba(201,169,97,.32)}100%{background:var(--card)}}.mine-card{margin-top:20px;margin-bottom:24px}.mine-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.mine-stat{padding:12px 14px;border-radius:12px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.35));border:1px solid var(--border)}html[data-theme=dark] .mine-stat{background:linear-gradient(180deg,rgba(30,42,70,.5),rgba(16,28,52,.35));border-color:#263757}.mine-stat .num{font-size:22px;font-weight:800;color:var(--navy-800);line-height:1.2}html[data-theme=dark] .mine-stat .num{color:var(--text)}.mine-stat .lbl{font-size:12px;color:var(--text-muted);margin-top:4px}.mine-stat.warn .num{color:#dc2626}.mine-tasks{display:flex;flex-direction:column;gap:4px}.mine-task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:10px;cursor:pointer;transition:background .15s}.mine-task:hover{background:rgba(201,169,97,.1)}.mine-t-name{display:flex;align-items:center;gap:8px;min-width:0;flex:1;flex-wrap:wrap}.mine-t-name .nm{font-weight:600;color:var(--navy-800)}html[data-theme=dark] .mine-t-name .nm{color:var(--text)}.mine-t-proj{font-size:12px;color:var(--text-muted)}.mine-t-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.mine-t-right .pprog{width:90px}.mine-t-right .ppct{font-size:12px;font-weight:600;color:var(--navy-700);width:36px;text-align:right}html[data-theme=dark] .mine-t-right .ppct{color:var(--text)}.mine-sec-title{font-size:13px;font-weight:700;color:var(--navy-800);margin:14px 0 8px}html[data-theme=dark] .mine-sec-title{color:var(--text)}.mine-sec-title:first-child{margin-top:0}.mine-log-btn{flex-shrink:0}.gantt-left-detail>button[data-task-log],.gantt-row-body>button[data-task-log]{position:absolute;top:7px;right:10px}.gantt-row-body>div:nth-child(2){padding-right:var(--gantt-log-reserve,78px)}.gantt-row.expanded .gantt-left-detail{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 70px 8px 12px}.gantt-row.expanded .gantt-left-detail .avatar{display:none}.gantt-row.expanded .gantt-left-detail .gld-info{width:100%;flex:0 0 auto;padding-right:0}.gantt-row.expanded .gantt-left-detail .gld-range,.gantt-row.expanded .gantt-left-detail .gld-who{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5}.log-red-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ef4444;margin-left:6px;flex-shrink:0;vertical-align:middle;box-shadow:0 0 0 2px rgba(255,255,255,.9);animation:logDotBlink 1.8s ease-in-out infinite}@keyframes logDotBlink{0%,100%{opacity:1}50%{opacity:.3}}html[data-theme=dark] .log-red-dot{box-shadow:0 0 0 2px #141f38}.lognot-card .lognot-tabs{position:relative;display:inline-flex;gap:var(--seg-gap);background:rgba(15,30,60,.06);padding:var(--seg-inset);border-radius:9px}html[data-theme=dark] .lognot-card .lognot-tabs{background:rgba(255,255,255,.08)}.lognot-card .lognot-tabs .ln-pill{position:absolute;top:var(--seg-inset);bottom:var(--seg-inset);left:0;width:0;opacity:0;border-radius:7px;background:#fff;box-shadow:0 1px 5px rgba(15,30,60,.14);transition:left .28s cubic-bezier(.4, 0, .2, 1),width .28s cubic-bezier(.4, 0, .2, 1);z-index:0;pointer-events:none}html[data-theme=dark] .lognot-card .lognot-tabs .ln-pill{background:#22314f;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 5px rgba(0,0,0,.35)}.lognot-card .lognot-tabs button{position:relative;z-index:1;border:none;background:0 0;padding:4px 12px;border-radius:7px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:color .2s ease}.lognot-card .lognot-tabs button.active{color:var(--navy-700);font-weight:600}html[data-theme=dark] .lognot-card .lognot-tabs button.active{color:#fff}.ln-item{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px dashed var(--border);cursor:pointer}.ln-item:last-child{border-bottom:none}.ln-item:hover{background:rgba(201,169,97,.07)}.ln-ico{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ln-ico.ln-proj{background:rgba(201,169,97,.18);color:#a97b12}.ln-ico.ln-task{background:rgba(37,99,235,.13);color:#2563eb}html[data-theme=dark] .ln-ico.ln-proj{background:rgba(201,169,97,.2);color:#d8b96a}html[data-theme=dark] .ln-ico.ln-task{background:rgba(96,165,250,.16);color:#60a5fa}.ln-ico.ln-user{background:rgba(87,100,126,.14);color:#57647e}html[data-theme=dark] .ln-ico.ln-user{background:rgba(139,154,184,.16);color:#9fb0cc}.ln-main{flex:1;min-width:0}.ln-name{font-size:13px;font-weight:600;color:var(--navy-800);display:flex;align-items:center;column-gap:6px;row-gap:4px;flex-wrap:wrap}html[data-theme=dark] .ln-name{color:var(--text)}.ln-name .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ln-meta{font-size:12px;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ln-meta b{color:var(--gold-600);font-weight:600}.ln-time{font-size:11px;color:var(--text-muted);flex-shrink:0;padding-top:2px}.ln-empty{color:var(--text-muted);font-size:13px;padding:24px 6px;text-align:center}.risknot-card .risk-tabs{position:relative;display:inline-flex;gap:var(--seg-gap);background:rgba(15,30,60,.06);padding:var(--seg-inset);border-radius:9px}html[data-theme=dark] .risknot-card .risk-tabs{background:rgba(255,255,255,.08)}.risknot-card .risk-tabs .rn-pill{position:absolute;top:var(--seg-inset);bottom:var(--seg-inset);left:0;width:0;opacity:0;border-radius:7px;background:#fff;box-shadow:0 1px 5px rgba(15,30,60,.14);transition:left .28s cubic-bezier(.4, 0, .2, 1),width .28s cubic-bezier(.4, 0, .2, 1);z-index:0;pointer-events:none}html[data-theme=dark] .risknot-card .risk-tabs .rn-pill{background:#22314f;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 5px rgba(0,0,0,.35)}.risknot-card .risk-tabs button{position:relative;z-index:1;border:none;background:0 0;padding:4px 12px;border-radius:7px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:color .2s ease}.risknot-card .risk-tabs button.active{color:var(--navy-700);font-weight:600}html[data-theme=dark] .risknot-card .risk-tabs button.active{color:#fff}.rn-item .ln-ico.rn-due{background:rgba(217,143,45,.16);color:#b5791d}.rn-item .ln-ico.rn-od{background:rgba(239,68,68,.14);color:#dc2626}html[data-theme=dark] .rn-item .ln-ico.rn-due{background:rgba(232,168,60,.18);color:#e0ae66}html[data-theme=dark] .rn-item .ln-ico.rn-od{background:rgba(239,68,68,.18);color:#ff8d8d}.rn-days{font-size:11px;color:var(--text-muted);flex-shrink:0;padding-top:2px;white-space:nowrap}.rn-days.od{color:#dc2626;font-weight:600}html[data-theme=dark] .rn-days.od{color:#ff8d8d}.lognot-card.lognot-card .lognot-left{display:flex;align-items:center;gap:10px;min-width:0}.lognot-card .lognot-left h3{white-space:nowrap}.lognot-card .lognot-left .btn{flex-shrink:0;color:var(--text-muted)}.lognot-card .lognot-left .btn:hover{color:var(--navy-700)}html[data-theme=dark] .lognot-card .lognot-left .btn:hover{color:#fff}@media (max-width:520px){.lognot-card .lognot-head{flex-wrap:wrap;row-gap:8px}}.stat-card[data-stat-go]{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.stat-card[data-stat-go]:hover{transform:translateY(-2px)}.stat-card[data-stat-go]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 .5px rgba(31,58,110,.05),0 12px 32px -14px rgba(31,58,110,.18)}.plog-task{display:inline-block;color:var(--gold-600);font-weight:600;margin-right:6px}html[data-theme=dark] .plog-task{color:var(--gold-400)}@media (max-width:900px){.mine-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.mine-stats{grid-template-columns:repeat(2,1fr);gap:8px}.mine-task{flex-direction:column;align-items:flex-start;gap:8px}.mine-t-right{width:100%;justify-content:space-between}.mine-t-right .pprog{flex:1}.avatar{width:28px;height:28px;font-size:13px}.welcome-banner p{max-width:100%}}@media (max-width:600px){.theme-picker{max-width:none}}@media (max-width:720px){.topbar-user .uname{display:none}.topbar-user{padding:4px}.topbar-user .role-tag{display:none}}@media (max-width:500px),(pointer:coarse){.modal-footer{flex-wrap:wrap;gap:10px}.modal-footer .footer-actions{flex:1 1 auto;margin-left:0}.modal-footer .footer-actions .btn{flex:1 1 0}}@media (max-width:480px){.stat-card{padding:14px 16px;gap:10px}.stat-card .num{font-size:22px}.stat-card .lbl{font-size:12px}.stat-card .ico{width:38px;height:38px}.stat-card .ico svg{width:18px;height:18px}}@media (max-width:420px){:root{--gantt-left:172px;--gantt-day:12px}.gantt-left-head{padding:0 8px}.gantt-row-body{padding:0 8px;gap:4px}.gantt-row-body .avatar{width:22px;height:22px;font-size:10px}.gantt-row-body .range{max-width:110px}.gantt-summary{padding:14px;gap:10px}.gantt-summary .stat .num{font-size:17px}}@supports (padding:max(0px)){.layout{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@media (max-width:900px){.nav-item{min-height:44px;padding:12px 12px}.topbar-user{min-height:44px}.pagination-btn{min-width:44px;min-height:44px}}@media (max-width:600px){.cell-actions{gap:4px}.cell-actions .btn-icon{padding:6px}}@media (max-width:600px){.project-row{flex-direction:column;align-items:stretch;gap:10px}.project-row>div:first-child{width:100%}.project-row .pname{flex-wrap:wrap}.project-row .pname .nm{white-space:normal;overflow-wrap:anywhere}.project-row .pright{width:100%;margin-left:0}.project-row .pright .pprog{flex:1}.project-row .ppct{text-align:right}}.btn-primary{box-shadow:0 4px 12px rgba(15,30,61,.22),0 6px 18px -8px rgba(37,99,235,.35)}@media (hover:hover){.btn-primary:hover{box-shadow:0 8px 22px -8px rgba(37,99,235,.5),inset 0 1px 0 rgba(255,255,255,.14)}}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(201,169,97,.18),0 2px 16px -6px rgba(201,169,97,.25)}.nav-item.active{box-shadow:0 6px 18px -8px rgba(201,169,97,.4),inset 0 0 16px rgba(201,169,97,.08)}.card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(201,169,97,.12),0 20px 44px -18px rgba(31,58,110,.2)}.stat-card:hover .ico{box-shadow:0 6px 14px rgba(15,30,61,.14),0 0 0 3px rgba(37,99,235,.1),0 4px 16px -4px rgba(37,99,235,.3)}.progress>div{box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}.login-card .btn-primary{box-shadow:0 8px 20px -6px var(--login-btn-glow),0 0 0 1px rgba(255,255,255,.16) inset}@media (hover:hover){.login-card .btn-primary:hover{box-shadow:0 12px 30px -8px rgba(184,146,63,.75),inset 0 1px 0 rgba(255,255,255,.28)}}.login-card .login-brand img{filter:drop-shadow(0 4px 12px var(--login-logo-glow)) drop-shadow(0 0 18px rgba(201, 169, 97, .35))}html[data-theme=dark] .btn-primary{box-shadow:0 4px 14px rgba(0,0,0,.4),0 6px 20px -8px rgba(66,133,244,.4)}@media (hover:hover){html[data-theme=dark] .btn-primary:hover{box-shadow:0 8px 24px -6px rgba(66,133,244,.55),inset 0 1px 0 rgba(255,255,255,.12)}}html[data-theme=dark] .input:focus,html[data-theme=dark] .select:focus,html[data-theme=dark] .textarea:focus{box-shadow:0 0 0 3px rgba(201,169,97,.2),0 2px 18px -6px rgba(201,169,97,.3)}html[data-theme=dark] .nav-item.active{box-shadow:0 6px 20px -8px rgba(201,169,97,.5),inset 0 0 18px rgba(201,169,97,.1)}html[data-theme=dark] .stat-card:hover .ico{box-shadow:0 6px 14px rgba(0,0,0,.4),0 0 0 3px rgba(66,133,244,.14),0 4px 18px -4px rgba(66,133,244,.4)}html[data-theme=dark] .card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 1px rgba(201,169,97,.2),0 20px 44px -18px rgba(0,0,0,.6)}html[data-theme=dark] .login-card .btn-primary{box-shadow:0 10px 24px -6px var(--login-btn-glow),0 0 0 1px rgba(255,255,255,.12) inset}.main{position:relative}.topbar{position:absolute;top:0;left:0;right:0;width:100%}.content{padding-top:calc(var(--topbar-h,62px) + 20px)!important}.card{transition:transform .25s ease,box-shadow .25s ease,background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease}.topbar{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}.modal{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease,height .26s cubic-bezier(.22, .61, .36, 1)}.toast{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}.modal-mask{transition:opacity .2s ease-out,background .3s ease,backdrop-filter .3s ease}.sidebar-mask{transition:opacity .25s ease,visibility .25s ease,background .3s ease,backdrop-filter .3s ease}html[data-vfx=lite] .login-card,html[data-vfx=lite] .modal,html[data-vfx=lite] .modal-mask,html[data-vfx=lite] .more-card,html[data-vfx=lite] .sidebar-mask,html[data-vfx=lite] .toast{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html[data-vfx=lite] .topbar{background:var(--topbar-bg);backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html[data-vfx=lite] .modal{background:rgba(255,255,255,.98)}html[data-vfx=lite] .toast{background:rgba(255,255,255,.97)}html[data-vfx=lite] .more-card{background:rgba(255,255,255,.97)}html[data-vfx=lite] .login-card{background:linear-gradient(160deg,var(--login-card-solid-a) 0,var(--login-card-solid-b) 100%)}html[data-vfx=lite] .modal-mask{background:var(--lite-veil-modal)}html[data-vfx=lite] .sidebar-mask{background:var(--lite-veil-sidebar)}html[data-vfx=lite][data-theme=dark] .modal{background:rgba(13,20,36,.98)}html[data-vfx=lite][data-theme=dark] .toast{background:#16203a}html[data-vfx=lite][data-theme=dark] .more-card{background:#16203a}html[data-vfx=lite][data-theme=dark] .login-card{background:linear-gradient(160deg,var(--login-card-solid-a) 0,var(--login-card-solid-b) 100%)}html[data-vfx=lite] .dynamic-flow-background{display:none}html[data-vfx=lite] .login-glass-mask{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--lite-veil-modal)}html[data-vfx=lite][data-theme=dark] .login-glass-mask{background:var(--lite-veil)}html[data-vfx=lite] .login-card{border-color:var(--login-lite-border);box-shadow:var(--login-lite-shadow)}html[data-vfx=lite][data-theme=dark] .login-card{border-color:var(--login-lite-border);box-shadow:var(--login-lite-shadow)}html[data-vfx=lite] .login-card .input{background:var(--login-lite-field-bg);border-color:var(--login-lite-field-border)}html[data-vfx=lite][data-theme=dark] .login-card .input{background:var(--login-lite-field-bg);border-color:var(--login-lite-field-border)}html[data-vfx=lite] .login-card .btn-primary,html[data-vfx=lite] .login-card .btn-primary:hover,html[data-vfx=lite] .login-card .login-brand img,html[data-vfx=lite][data-theme=dark] .login-card .btn-primary,html[data-vfx=lite][data-theme=dark] .login-card .btn-primary:hover{filter:none;box-shadow:none}.gantt-list-row,.ln-item,.mine-task,.project-row,.rn-item{padding:10px 12px;border-radius:10px;border-bottom:none;transition:background .15s ease}.gantt-list-row:hover,.ln-item:hover,.mine-task:hover,.project-row:hover,.rn-item:hover{background:rgba(201,169,97,.1)}html[data-theme=dark] .gantt-list-row:hover,html[data-theme=dark] .ln-item:hover,html[data-theme=dark] .mine-task:hover,html[data-theme=dark] .project-row:hover,html[data-theme=dark] .rn-item:hover{background:rgba(201,169,97,.14)}.project-row:hover .pname{color:inherit}.mine-tasks{gap:6px}.ln-item+.ln-item,.project-row+.project-row,.rn-item+.rn-item{margin-top:6px}.dist-list{gap:8px}.gantt-list-row .name,.ln-name,.mine-t-name .nm,.project-row .pname{font-size:13px;font-weight:600;line-height:1.5;letter-spacing:.01em}.gantt-list-row .dates,.ln-meta,.mine-t-proj,.project-row .pmeta{font-size:12px;line-height:1.5}.ln-time,.rn-days{font-size:11px;line-height:1.5;padding-top:0}.ln-name{line-height:1.5}.ln-meta{margin-top:4px;line-height:1.5}.ln-empty{padding:26px 12px}.mine-sec-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;letter-spacing:.01em;margin:18px 0 10px}.mine-sec-title::before{content:'';flex-shrink:0;width:3px;height:13px;border-radius:2px;background:linear-gradient(180deg,var(--gold-500),var(--gold-600))}@media (hover:none){.btn-gold:hover,.btn-primary:hover,.btn:hover,.card:hover,.color-swatch:hover,.nav-item:hover .ico,.stat-card:hover .ico{transform:none!important}.btn-primary:hover,.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--navy-700),var(--navy-800))!important;box-shadow:0 4px 12px rgba(15,30,61,.22)!important}html[data-theme=dark] .btn-primary:hover,html[data-theme=dark] .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2f5cb3 0,#20428f 100%)!important;box-shadow:0 4px 14px rgba(0,0,0,.4)!important}.btn-gold:hover,.btn-gold:hover:not(:disabled){filter:none!important}.btn-outline:hover{background:#fff!important;border-color:#d8deea!important;color:var(--navy-700)!important;box-shadow:0 1px 2px rgba(31,58,110,.05)!important}html[data-theme=dark] .btn-outline:hover{background:#1a2642!important;border-color:#26324e!important;color:var(--text)!important;box-shadow:none!important}.modal-danger .danger-btn:hover:not(:disabled){background:var(--danger)!important;color:#fff!important;filter:brightness(.9)}.modal-footer .modal-danger .btn:not(.danger-btn):not(.active):hover:not(:disabled){background:#fff!important;border-color:#d8deea!important;color:var(--navy-700)!important}html[data-theme=dark] .modal-footer .modal-danger .btn:not(.danger-btn):not(.active):hover:not(:disabled){background:#1a2642!important;border-color:#26324e!important;color:var(--text)!important}.theme-opt:hover:not(.active){border-color:var(--border)!important}.card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 .5px rgba(31,58,110,.05),0 12px 32px -14px rgba(31,58,110,.13)!important}html[data-theme=dark] .card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 32px -14px rgba(0,0,0,.55)!important}.gantt-card:has(> .gantt-list):hover,.gantt-card:has(> .table-card):hover,.table-card:hover{box-shadow:none!important;transform:none!important;background:0 0!important}html[data-theme=dark] .gantt-card:has(> .gantt-list):hover,html[data-theme=dark] .gantt-card:has(> .table-card):hover,html[data-theme=dark] .table-card:hover{box-shadow:none!important;background:0 0!important}.card-act-btn:hover,.combo-item:hover:not(.active),.dist-item[data-stat-go]:hover,.gantt-list-row:hover,.ln-item:hover,.mine-task:hover,.project-row:hover,.rn-item:hover,tbody tr:hover{background:0 0!important}.gantt-row-body:hover .name,.project-row:hover .pname{color:inherit!important}.proj-table th[data-sort]:not(.sorted):hover{color:var(--text-muted)!important}html[data-theme=dark] .proj-table th[data-sort]:not(.sorted):hover{color:#aab8d4!important}.nav-item:hover{padding-left:12px!important}.stat-card[data-stat-go]:hover{transform:none!important}}@media (hover:none) and (max-width:900px) and (min-height:540px){.gantt-list-row:hover,.table-card table tbody tr:hover{background:var(--card)!important}}.rn-days{font-size:12px;color:var(--text-muted)}.rn-days.od{color:#dc2626;font-weight:500}html[data-theme=dark] .rn-days.od{color:#ff8d8d}.modal-header,tbody td{border-color:var(--border)}.sidebar-brand .bn{font-size:16px}.sidebar-user .utitle{font-size:12px}.login-card .login-brand .sub{font-size:11px}.profile-meta .role-tag,.topbar-user .role-tag{font-size:12px;padding:2px 10px}.gantt-day,.gantt-month{color:var(--text-muted)}.status-chip.chip-todo{background:#eef1f6;color:#5b6a86}.status-chip.chip-in_progress{background:#e4edff;color:#2563eb}.status-chip.chip-blocked{background:#fde8e8;color:#dc2626}.status-chip.chip-done{background:#e0f4ec;color:#1f8a63}.status-chip.chip-due{background:#fdf1de;color:#b5791d}.status-chip.chip-overdue{background:#fde8e8;color:#dc2626}html[data-theme=dark] .status-chip.chip-todo{background:rgba(148,163,195,.16);color:#aeb9d2}html[data-theme=dark] .status-chip.chip-in_progress{background:rgba(59,130,246,.16);color:#7da9f7}html[data-theme=dark] .status-chip.chip-blocked{background:rgba(239,68,68,.18);color:#ff9b9b}html[data-theme=dark] .status-chip.chip-done{background:rgba(16,185,129,.16);color:#55d3a8}html[data-theme=dark] .status-chip.chip-due{background:rgba(217,143,45,.16);color:#e0ae66}html[data-theme=dark] .status-chip.chip-overdue{background:rgba(239,68,68,.18);color:#ff9b9b}html[data-vfx=lite][data-theme=dark] .modal-mask{background:var(--lite-veil)}html[data-vfx=lite][data-theme=dark] .sidebar-mask{background:var(--lite-veil)}html[data-vfx=lite] .content,html[data-vfx=lite] .fade-in,html[data-vfx=lite] .gantt-list-row,html[data-vfx=lite] .log-red-dot,html[data-vfx=lite] .project-row,html[data-vfx=lite] .stat-card .ico,html[data-vfx=lite] tbody tr{animation:none!important;transition:none!important}@media (min-width:901px),(max-height:539px){.card-acts,.card-desc{display:none}}@media (max-width:900px) and (min-height:540px){.table-card{background:0 0;border:0;box-shadow:none;border-radius:0;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.table-card:hover{transform:none;box-shadow:none}.gantt-card:has(> .gantt-list),.gantt-card:has(> .table-card){background:0 0;border:0;box-shadow:none;border-radius:0;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.gantt-card:has(> .gantt-list):hover,.gantt-card:has(> .table-card):hover{transform:none;box-shadow:none}.gantt-card:has(> .table-card)>.gantt-summary{background:var(--card);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0}.gantt-card:has(> .table-card)>.tasks-toolbar{background:var(--card);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius)}.gantt-card:has(> .table-card)>.table-card{margin-top:14px}html[data-theme=dark] .gantt-card:has(> .gantt-list),html[data-theme=dark] .gantt-card:has(> .table-card),html[data-theme=dark] .table-card,html[data-vfx=lite] .gantt-card:has(> .gantt-list),html[data-vfx=lite] .gantt-card:has(> .table-card),html[data-vfx=lite] .table-card,html[data-vfx=lite][data-theme=dark] .gantt-card:has(> .gantt-list),html[data-vfx=lite][data-theme=dark] .gantt-card:has(> .table-card),html[data-vfx=lite][data-theme=dark] .table-card{background:0 0;border:0;box-shadow:none}html[data-theme=dark] .gantt-card:has(> .gantt-list):hover,html[data-theme=dark] .gantt-card:has(> .table-card):hover,html[data-theme=dark] .table-card:hover,html[data-vfx=lite][data-theme=dark] .gantt-card:has(> .gantt-list):hover,html[data-vfx=lite][data-theme=dark] .gantt-card:has(> .table-card):hover,html[data-vfx=lite][data-theme=dark] .table-card:hover{transform:none;box-shadow:none}.table-card .table-wrap{overflow-x:visible}.table-card table{display:block;min-width:0!important;width:100%}.table-card table tbody{display:block}.table-card table thead{display:none}.table-card table td,.table-card table th{white-space:normal}.table-card table td{display:block;padding:0;border:0;background:0 0;text-align:left;min-width:0}.table-card table:has(.cell-actions) tbody td:last-child{position:static;box-shadow:none;background:0 0}.table-card table td.col-actions{display:none}.content{padding-left:10px;padding-right:10px}.table-card table tbody tr.row-highlight td{animation:none}.table-card table tbody tr.row-highlight{animation:cardFlash 1.5s ease}.table-card table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:10px;align-items:center;text-align:left;box-sizing:border-box;min-height:88px;padding:14px;margin-bottom:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);transition:background-color .15s ease,border-color .15s ease}.table-card table tbody tr:last-child{margin-bottom:0}.table-card table tbody tr:hover{background:rgba(201,169,97,.1)}html[data-theme=dark] .table-card table tbody tr:hover{background:rgba(201,169,97,.14)}.table-card table tbody tr:active{transform:scale(.995)}.table-card table tbody tr.empty-row,.table-card table tbody tr.filter-empty-row{background:0 0;border-color:transparent;min-height:0;padding:0}.table-card table tbody tr.empty-row:hover,.table-card table tbody tr.filter-empty-row:hover{background:0 0}.table-card table tbody td[colspan]{grid-column:1/-1}.table-card table .empty-state{padding:32px 16px}.table-card table td.col-name{display:contents}.table-card table td.col-name .n{max-width:none;margin:0;justify-content:flex-start;text-align:left;align-items:center;font-size:16px;font-weight:700;line-height:1.4}.table-card table td.col-name .n .nm{flex:0 1 auto;min-width:0;white-space:normal;overflow:hidden;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.table-card table td.col-name .n .ovd{flex-shrink:0}.table-card table td.col-name .d{max-width:none;margin:0;text-align:left;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5}.table-card table td.col-name .d>*{min-width:0}.table-card table .cell-prog{justify-content:space-between;gap:10px}.table-card table .cell-prog .progress{width:auto;flex:1;height:6px}.table-card table .cell-prog .pct{font-size:12px;min-width:0}.table-card table .cell-owner{justify-content:flex-start;gap:8px;min-width:0}.table-card table .cell-owner .avatar{width:22px;height:22px;font-size:11px}.table-card table .cell-owner .info{display:flex;align-items:baseline;gap:4px;font-size:12px;min-width:0;overflow:hidden}.table-card table .cell-owner .info>div{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.table-card table .cell-owner .info>.t{flex-shrink:0;font-size:11px;margin-top:0}.table-card table td.col-hire,.table-card table td.col-period{font-size:11px;color:var(--text-muted);white-space:nowrap;min-width:0}.table-card table.proj-table tbody tr{grid-template-columns:max-content minmax(0,auto) minmax(0,1fr);row-gap:12px;position:relative}.table-card table.proj-table td.col-name .n{grid-column:1/-1;grid-row:1;display:flex;flex-wrap:wrap;gap:8px;padding-right:74px}.table-card table.proj-table td.col-name .n .nm{flex:0 1 auto;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:none}.table-card table.proj-table td.col-name .n .card-desc{flex:1 1 0;min-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-card table.proj-table td.col-name .n .nm{order:0}.table-card table.proj-table td.col-name .n .ovd{order:1;flex-shrink:0}.table-card table.proj-table td.col-name .n .card-desc{order:2;flex-shrink:1}.table-card table.proj-table td.col-name .d{display:none}.table-card table.proj-table td.col-status{grid-column:1;grid-row:2;justify-self:start;align-self:center}.table-card table.proj-table td.col-period{grid-column:2;grid-row:2;justify-self:start}.table-card table.proj-table td.col-owner{grid-column:3;grid-row:2;justify-self:end}.table-card table.proj-table td.col-owner .info .t{display:none}.table-card table.proj-table td.col-prog{grid-column:1/-1;grid-row:3}.table-card table tbody tr .card-acts{position:absolute;top:11px;right:11px;display:flex;gap:4px}.table-card table tbody tr .card-act-btn{display:flex;align-items:center;justify-content:center;position:relative;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:0 0;color:var(--text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.table-card table tbody tr .card-act-btn svg{width:17px;height:17px}.table-card table tbody tr .card-act-btn::before{content:'';position:absolute;inset:-8px}.table-card table tbody tr .card-act-btn:hover{background:rgba(201,169,97,.16);color:var(--text)}.table-card table tbody tr .card-act-btn .log-red-dot{position:absolute;top:3px;right:3px;margin-left:0}.table-card table.tasks-table tbody tr{grid-template-columns:max-content minmax(0,auto) minmax(0,1fr);row-gap:12px;position:relative}.table-card table.tasks-table td.col-name .n{grid-column:1/-1;grid-row:1;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;padding-right:50px}.table-card table.tasks-table td.col-name .n .nm{flex:0 1 auto;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:none}.table-card table.tasks-table td.col-name .n .ovd{flex-shrink:0}.table-card table.tasks-table td.col-status{grid-column:1;grid-row:2;justify-self:start;align-self:center}.table-card table.tasks-table td.col-name .d{grid-column:2;grid-row:2}.table-card table.tasks-table td.col-name .d .d-dates{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-card table.tasks-table td.col-owner{grid-column:3;grid-row:2;justify-self:end}.table-card table.tasks-table .cell-owner .info{white-space:nowrap;min-width:0}.table-card table.tasks-table .cell-owner .info>div{overflow:hidden;text-overflow:ellipsis}.table-card table.tasks-table td.col-prog{grid-column:1/-1;grid-row:3}.table-card table .task-status-sel{width:auto;min-width:104px;height:var(--ctl-h-xl);font-size:13px;font-weight:600;border-radius:999px;padding:0 30px 0 14px;background-position:right 12px center}.table-card table.users-table tbody tr{grid-template-columns:auto max-content minmax(0,1fr) auto;row-gap:10px}.table-card table.users-table .cell-owner{display:contents}.table-card table.users-table .cell-owner .avatar{grid-column:1;grid-row:1/4;align-self:center;width:56px;height:56px;font-size:20px}.table-card table.users-table .cell-owner .info{grid-column:2;grid-row:1}.table-card table.users-table .cell-owner .info>div{font-size:16px;font-weight:700;line-height:1.4;color:var(--text)}.table-card table.users-table td.col-name .info .t{display:none}.table-card table.users-table td.col-role{grid-column:3;grid-row:1;justify-self:start}.table-card table.users-table td.col-status{grid-column:4;grid-row:1;align-self:center;justify-self:end}.table-card table.users-table td.col-status .status-chip{display:block;width:9px;height:9px;padding:0;border-radius:50%;font-size:0;line-height:0;overflow:hidden}.table-card table.users-table td.col-status .status-chip.st-completed{background:#1f8a63}.table-card table.users-table td.col-status .status-chip.st-on_hold{background:#b5791d}.table-card table.users-table td.col-unit{grid-column:2/4;grid-row:2;max-width:none;text-align:left;display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden}.table-card table.users-table td.col-unit>div:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.table-card table.users-table td.col-unit>.t{white-space:nowrap;flex-shrink:0}.table-card table.users-table td.col-unit>.t::before{content:'· '}.table-card table.users-table td.col-phone{grid-column:2/4;grid-row:3;font-size:12px;color:var(--text-muted)}.table-card table.users-table td.col-hire{grid-column:4;grid-row:3;justify-self:end;font-size:11px;color:var(--text-muted);white-space:nowrap}.gantt-list{overflow-x:visible;padding:6px 0 14px}.gantt-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;row-gap:10px;align-items:center;box-sizing:border-box;min-width:0;min-height:88px;padding:14px;margin-bottom:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);position:relative}.gantt-list-row:last-child{margin-bottom:0}.gantt-list-row:last-child{border-bottom:1px solid var(--border)}.gantt-list-row .sw{grid-column:1;grid-row:1/3;align-self:center}.gantt-list-row .name{grid-column:2/-1;grid-row:1;min-width:0;flex:none;padding-right:90px;font-size:16px;font-weight:700;line-height:1.4}.gantt-list-row .name .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-line-clamp:none}.gantt-list-row .who{grid-column:2;grid-row:2;min-width:0;height:18px;font-size:12px;line-height:18px}.gantt-list-row .who .avatar{width:18px;height:18px;font-size:10px}.gantt-list-row .dates{grid-column:3;grid-row:2;justify-self:end;min-width:0;height:18px;font-size:12px;line-height:18px}.gantt-list-row .name{position:relative}.gantt-list-row .mine-log-btn{position:absolute;top:50%;right:0;transform:translateY(-50%);min-height:40px;padding:0 14px}}@media (max-width:900px) and (min-height:540px){.topbar{background:var(--topbar-bg);-webkit-backdrop-filter:none;backdrop-filter:none}.tabbar{background:var(--tabbar-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}