*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f0f2f5;--white: #fff;--border: #e5e5e5;--text: #1f2329;--text-secondary: #646a73;--primary: #1a6fb5;--primary-dark: #145180;--primary-light: #e8f4fd;--danger: #f54a45;--success: #34c724;--yellow-dark: #fad355;--yellow-light: #faf1d1;--green-dark: #34c724;--green-light: #d9f5d6;--gray-weekend: #8f959e;--header-bg: #f5f6f7;--row-hover: #f5f7fa;--shadow: 0 1px 3px rgba(0,0,0,.08);--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;color:var(--text);background:var(--bg)}.notification{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:9999;padding:10px 36px 10px 16px;border-radius:var(--radius);font-size:13px;box-shadow:0 4px 12px #00000026;animation:slideDown .2s ease}.notification button{position:absolute;right:8px;top:8px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.5}.notification-error{background:#fff1f0;border:1px solid #ffccc7;color:#a8071a}.notification-warn{background:#fffbe6;border:1px solid #ffe58f;color:#ad6800}.notification-success{background:#f6ffed;border:1px solid #b7eb8f;color:#237804}@keyframes slideDown{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--white);padding:8px 24px;border-bottom:1px solid #ececec;box-shadow:var(--shadow);gap:16px;flex-wrap:wrap;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:10px}.custom-dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-trigger{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 14px;border:1.5px solid #e2e5e9;border-radius:8px;background:var(--white);cursor:pointer;font-size:13px;color:var(--text);min-width:90px;transition:all .25s cubic-bezier(.4,0,.2,1)}.dropdown-trigger:hover{border-color:var(--primary);box-shadow:0 0 0 3px #1a6fb50f;transform:translateY(-1px)}.dropdown-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow{font-size:10px;color:#98a2b3;flex-shrink:0}.dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;background:#fffffffa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #e8eaef;border-radius:10px;box-shadow:0 8px 30px #0000001a,0 2px 6px #0000000a;z-index:100;max-height:240px;overflow-y:auto;padding:6px 0;animation:ddEnter .18s cubic-bezier(.22,.61,.36,1)}@keyframes ddEnter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{padding:8px 16px;font-size:13px;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .15s}.dropdown-item:hover{background:#f5f7fa;padding-left:20px}.dropdown-item.active{background:#e8f4fd;color:#1a6fb5;font-weight:600}.dropdown-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1f2329eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:200;animation:tooltipIn .2s cubic-bezier(.22,.61,.36,1);box-shadow:0 4px 16px #0000002e}.dropdown-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1f2329eb}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dropdown-project .dropdown-trigger{min-width:180px;font-weight:500;color:#3b608d}.topbar-divider{width:1px;height:24px;background:#e5e5e5;flex-shrink:0}.export-btn{margin-left:10px;padding:4px 12px;font-size:12px;font-weight:500;color:#2d6a4f;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:4px;cursor:pointer;transition:all .2s;white-space:nowrap}.export-btn:hover:not(:disabled){background:#c8e6c9;border-color:#66bb6a}.export-btn.exporting{color:#8d6e00;background:#fff8e1;border-color:#ffe082;cursor:wait}.topbar-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.control-group{display:flex;align-items:center;gap:4px;background:#f8f9fa;border:1px solid #ececec;border-radius:5px;padding:4px 8px}.control-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.control-input{padding:4px 6px;border:none;background:transparent;font-size:13px;color:var(--text);outline:none}.control-input[type=date]{width:120px}.control-input[type=number]{width:44px;text-align:center}.control-input[type=date]:focus,.control-input[type=number]:focus{background:#fff}select.control-input{cursor:pointer;min-width:90px;padding:4px 8px;background:#fff;border:1px solid var(--border);border-radius:4px}.week-input{width:40px!important}.lock-btn{padding:7px 16px;border:1.5px solid #e2e5e9;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;background:var(--white);transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;margin-left:4px}.lock-btn:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 2px 8px #1a6fb51a}.lock-btn.locked{background:#fff7ed;border-color:#f59e0b;color:#b45309;box-shadow:0 2px 8px #f59e0b1f}.action-bar{display:flex;align-items:center;justify-content:space-between;background:#fafbfc;padding:6px 24px;border-bottom:1px solid #ececec;flex-shrink:0;gap:12px;flex-wrap:wrap}.action-bar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.summary-text{font-size:12px;color:var(--primary);white-space:nowrap}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-content{flex:1;overflow:auto;background:var(--white);margin:0 8px 8px;border-radius:var(--radius);box-shadow:var(--shadow)}.content-scroll{min-height:100%;width:max-content}.panels-inner{display:flex;min-height:100%}.left-panel{min-width:660px;flex-shrink:0;border-right:2px solid #ececec;background:var(--white);border-radius:var(--radius) 0 0 var(--radius);position:sticky;left:0;z-index:4}.right-panel{flex-shrink:0;overflow:visible;background:var(--white);border-radius:0 var(--radius) var(--radius) 0}.right-inner{display:flex;flex-direction:row}.task-table-right-wrapper{flex-shrink:0}.task-table{border-collapse:collapse;table-layout:fixed}.task-table thead{position:sticky;top:0;z-index:2}.task-table th{background:#f0f5fa;color:#3b608d;font-weight:600;font-size:12px;padding:20px 6px;border:1px solid #e2e5e9;text-align:center;white-space:nowrap}.task-table-right-wrapper .task-table th{padding:0 4px;height:18px;line-height:18px;vertical-align:middle}.th-spacer th{background:#e8ecf1;border-color:#d8dce0;font-size:0}.task-table td{padding:0;border:none;border-bottom:1px solid #eceef2;text-align:center;height:28px;overflow:hidden;line-height:0}.task-table td>*{vertical-align:top;line-height:normal}.task-table td>.progress-bar-bg{line-height:0}.task-table tbody tr:hover td{background:#f8fafd;transition:background .2s ease}.major-row td{background:#fdfaf0}.major-row:hover td{background:#faf4e0!important}.task-table input[type=text],.task-table input:not([type]),.task-table input[type=date]{width:100%;height:26px;min-width:0;border:none;border-bottom:1px solid #e2e5e9;box-shadow:none!important;outline:none!important;padding:2px 6px;font-size:12px;background:transparent;text-align:center;color:var(--text-secondary);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;line-height:26px;vertical-align:middle}.task-table input[type=text]:focus,.task-table input[type=date]:focus{color:var(--text);outline:none!important;box-shadow:none!important;border:none;border-bottom:2px solid #1a6fb5}.task-table input[type=text]:disabled,.task-table input[type=date]:disabled{color:#999;-webkit-text-fill-color:#999}.task-table select{width:100%;height:26px;border:none;border-bottom:1px solid #e2e5e9;padding:2px;font-size:12px;background:transparent;text-align:center;outline:none;cursor:pointer}.task-table select:disabled{color:#555;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:default}.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(2),.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(3),.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(4),.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(5){text-align:left;padding-left:6px}.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(2) input,.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(3) input,.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(4) input,.task-table-wrapper:not(.task-table-right-wrapper) .task-table td:nth-child(5) input{text-align:left}.major-row td:first-child input{font-weight:600;color:#3b608d}.drag-handle{display:flex;align-items:center;justify-content:center;height:100%;font-size:14px;color:#c0c4cc;cursor:grab;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}.drag-handle:active{cursor:grabbing}.task-table tbody tr:hover .drag-handle{opacity:1}.drag-over td{border-top:2px solid var(--primary)!important}.col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;z-index:1}.col-resize-handle:hover{background:var(--primary)}.calc-cell{font-size:12px;color:#8f959e;background:#fafafa!important;vertical-align:middle}.progress-bar-bg{position:relative;height:18px;background:#eee;border-radius:9px;overflow:hidden;margin:0 4px}.progress-bar-fill{height:100%;background:var(--success);border-radius:9px;transition:width .3s;min-width:0}.progress-text{position:absolute;top:0;left:0;right:0;line-height:18px;font-size:10px;color:#333;text-align:center}.add-btn{padding:7px 18px;background:linear-gradient(135deg,#1a6fb5,#2b85d0);color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #1a6fb540}.add-btn:hover{background:#155d8a;box-shadow:0 4px 14px #1a6fb559;transform:translateY(-1px)}.save-btn{padding:7px 18px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:7px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1)}.save-btn:hover{background:var(--primary-light);box-shadow:0 4px 14px #1a6fb51f;transform:translateY(-1px)}.save-dirty{border-color:#f59e0b!important;color:#b45309!important;background:#fff7ed!important;animation:savePulse 2s ease-in-out infinite}.save-dirty:hover{background:#ffedd5!important;border-color:#d97706!important}.expand-all-btn{padding:7px 14px;background:#fff;color:#555;border:1px solid #d0d5dc;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;white-space:nowrap}.expand-all-btn:hover{background:#f0f2f5;border-color:#b0b8c1;color:#333}.progress-input-wrap{display:flex;align-items:center;height:100%}.progress-input{width:48px;height:22px;border:1px solid #d0d5dc;border-radius:4px;text-align:right;padding:0 4px;font-size:12px;font-family:inherit}.progress-input:focus{border-color:var(--primary);outline:none}.progress-input:disabled{background:transparent;border-color:transparent;color:inherit}.progress-suffix{font-size:12px;color:#666;margin-left:2px}.remark-btn{margin-left:4px;width:22px;height:22px;border:none;border-radius:4px;background:transparent;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .2s;flex-shrink:0}.remark-btn:hover{opacity:1;background:#e8eaed}.remark-btn.remark-has{opacity:1}.remark-modal-box{background:#fff;border-radius:10px;box-shadow:0 8px 40px #0000002e;width:440px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.remark-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #ececec;font-size:14px;font-weight:600;color:#333}.modal-close-btn{width:28px;height:28px;border:none;border-radius:6px;background:transparent;font-size:18px;cursor:pointer;color:#888;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:#f0f2f5;color:#333}.remark-modal-body{padding:16px 18px;min-height:100px;flex:1;overflow-y:auto}.remark-loading{color:#999;font-size:13px;text-align:center;padding:20px 0}.remark-textarea{width:100%;min-height:120px;border:1px solid #d0d5dc;border-radius:6px;padding:10px 12px;font-size:13px;font-family:inherit;resize:vertical;line-height:1.6;box-sizing:border-box}.remark-textarea:focus{border-color:var(--primary);outline:none}.remark-content{min-height:60px}.remark-text{font-size:13px;line-height:1.7;color:#333;white-space:pre-wrap;word-break:break-word;font-family:inherit;margin:0}.remark-empty{color:#bbb;font-size:13px}.remark-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #ececec}.remark-save-btn{padding:6px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.remark-save-btn:hover{opacity:.9}.remark-save-btn:disabled{opacity:.5;cursor:not-allowed}.remark-cancel-btn{padding:6px 16px;background:#fff;color:#666;border:1px solid #d0d5dc;border-radius:6px;font-size:13px;cursor:pointer}.remark-cancel-btn:hover{background:#f5f6f8}.remark-edit-btn{padding:6px 16px;background:#fff;color:var(--primary);border:1px solid var(--primary);border-radius:6px;font-size:13px;cursor:pointer}.remark-edit-btn:hover{background:var(--primary-light)}.remark-close-btn{padding:6px 16px;background:#fff;color:#666;border:1px solid #d0d5dc;border-radius:6px;font-size:13px;cursor:pointer}.remark-close-btn:hover{background:#f5f6f8}@keyframes savePulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.actions-cell{display:flex;align-items:center;justify-content:center;gap:4px;height:100%;line-height:0}.add-row-btn{width:18px;height:18px;padding:0;margin:0;background:#fff;color:var(--primary);border:1px solid #b3d4ef;border-radius:3px;cursor:pointer;font-size:14px;font-weight:600;line-height:16px;text-align:center;transition:all .15s;box-sizing:border-box;flex-shrink:0}.add-row-btn:hover{background:var(--primary);color:#fff}.delete-row-btn{width:18px;height:18px;padding:0;margin:0;background:#fff;color:var(--danger);border:1px solid #ffccc7;border-radius:3px;cursor:pointer;font-size:14px;font-weight:600;line-height:16px;text-align:center;transition:all .15s;box-sizing:border-box;flex-shrink:0}.delete-row-btn:hover{background:var(--danger);color:#fff}.gantt-wrapper{flex-shrink:0}.gantt-table{border-collapse:collapse;table-layout:fixed}.gantt-table thead{position:sticky;top:0;z-index:3}.gantt-week-header{text-align:center;font-size:11px;font-weight:600;border:1px solid #d8dce0;background:#e8ecf1;padding:4px 0;color:#3b608d}.gantt-week-header.current-week{background:#34c724;color:#fff;font-weight:700}.gantt-weekday-cell{text-align:center;font-size:10px;padding:2px 0;border:1px solid #e2e5e9;background:#f0f3f7;width:26px;min-width:26px;color:var(--text-secondary)}.gantt-day-cell{text-align:center;font-size:11px;padding:2px 0;border:1px solid #e2e5e9;background:#f5f6f8;width:26px;min-width:26px;font-weight:500}.gantt-cell{width:26px;min-width:26px;height:28px;border:1px solid #edf0f3;transition:background-color .25s ease,box-shadow .25s ease}.gantt-cell.today-cell{box-shadow:inset 0 0 0 2px #3b82f6;position:relative;z-index:1;animation:todayGlow 2s ease-in-out infinite}@keyframes todayGlow{0%,to{box-shadow:inset 0 0 0 2px #3b82f6}50%{box-shadow:inset 0 0 0 3px #60a5fa,0 0 8px #3b82f64d}}.legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary);white-space:nowrap;padding:3px 8px;border-radius:4px;transition:background .2s}.legend-item:hover{background:#f5f7fa}.legend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0;box-shadow:0 1px 2px #0000001a}.loading{display:flex;align-items:center;justify-content:center;gap:10px;height:100vh;font-size:15px;color:var(--text-secondary)}.loading:before{content:"";width:22px;height:22px;border:2.5px solid #e2e5e9;border-top-color:#1a6fb5;border-radius:50%;animation:ldSpin .7s linear infinite}@keyframes ldSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:99999;animation:fadeIn .15s ease}.modal-box{background:var(--white);border-radius:8px;box-shadow:0 8px 24px #0000002e;min-width:320px;max-width:440px;padding:24px}.modal-body{font-size:14px;color:var(--text);line-height:1.6;margin-bottom:20px}.modal-footer{display:flex;justify-content:flex-end;gap:10px}.modal-btn{padding:6px 20px;border-radius:4px;font-size:13px;cursor:pointer;border:1px solid var(--border);transition:all .15s}.modal-btn-cancel{background:var(--white);color:var(--text-secondary)}.modal-btn-cancel:hover{border-color:var(--text-secondary)}.modal-btn-confirm{background:var(--primary);color:#fff;border-color:var(--primary)}.modal-btn-confirm:hover{background:#155d8a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:silver;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.back-btn{width:32px;height:32px;padding:0;border:1.5px solid #e2e5e9;border-radius:8px;background:var(--white);cursor:pointer;font-size:16px;color:var(--text-secondary);transition:all .25s cubic-bezier(.4,0,.2,1);flex-shrink:0;display:flex;align-items:center;justify-content:center}.back-btn:hover{border-color:var(--primary);color:var(--primary);background:#f8fafd;transform:translate(-2px);box-shadow:0 2px 8px #0000000a}.abnormal-ticker-wrapper{width:100%}.abnormal-ticker{display:flex;align-items:center;gap:10px;width:100%;padding:10px 20px;border-radius:10px;background:linear-gradient(135deg,#fff5f0,#fff0eb,#fff5f0);border:1px solid #ffd4c2;box-shadow:0 2px 12px #ff6b351a;cursor:pointer;transition:all .25s;overflow:hidden;min-height:42px;animation:tickerSlideIn .5s ease both}.abnormal-ticker:hover{border-color:#ff9a76;box-shadow:0 4px 20px #ff6b352e;transform:translateY(-1px)}@keyframes tickerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.abnormal-ticker-icon{flex-shrink:0;color:#f59e0b;display:flex;align-items:center}.abnormal-ticker-text{flex:1;font-size:13px;color:#92400e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .3s ease}.abnormal-ticker-text strong{color:#b45309}.abnormal-ticker-text .ticker-sep{color:#fca5a5;margin:0 2px;font-weight:300}.ticker-enter{animation:tickerTextIn .35s ease both}.ticker-exit{animation:tickerTextOut .3s ease both}@keyframes tickerTextIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tickerTextOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.abnormal-ticker-dots{display:flex;gap:4px;flex-shrink:0}.ticker-dot{width:5px;height:5px;border-radius:50%;background:#fcd4c2;transition:all .3s}.ticker-dot.active{background:#f59e0b;box-shadow:0 0 4px #f59e0b80}.project-banner{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;margin-bottom:24px;box-shadow:0 8px 40px #0000002e,0 2px 8px #00000014;transition:all .4s cubic-bezier(.4,0,.2,1);animation:bannerEntry .6s cubic-bezier(.22,.61,.36,1) both;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.project-banner:hover{transform:translateY(-2px);box-shadow:0 16px 56px #0000003d,0 4px 16px #0000001a}.project-banner:active{transform:translateY(0);box-shadow:0 4px 20px #00000029}@keyframes bannerEntry{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.banner-bg{position:relative;min-height:200px;padding:36px 48px;overflow:hidden;display:flex;align-items:center}.banner-particle{position:absolute;border-radius:50%;background:#ffffff80;pointer-events:none;animation:bannerParticleUp linear infinite}@keyframes bannerParticleUp{0%{transform:translateY(0) translate(0) scale(1);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateY(-120px) translate(30px) scale(0);opacity:0}}.banner-orb{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}.banner-orb-1{width:180px;height:180px;top:-40px;right:-30px;opacity:.35;animation:orbPulse1 6s ease-in-out infinite}.banner-orb-2{width:120px;height:120px;bottom:-20px;left:20%;opacity:.25;animation:orbPulse2 8s ease-in-out infinite}.banner-orb-3{width:200px;height:200px;top:30%;right:40%;background:#ffffff0f;animation:orbPulse3 10s ease-in-out infinite}@keyframes orbPulse1{0%,to{transform:scale(1) translate(0)}50%{transform:scale(1.3) translate(-20px,10px)}}@keyframes orbPulse2{0%,to{transform:scale(1) translate(0)}50%{transform:scale(1.4) translate(15px,-10px)}}@keyframes orbPulse3{0%,to{transform:scale(1) translate(0)}33%{transform:scale(1.2) translate(-10px,-5px)}66%{transform:scale(.9) translate(10px,5px)}}.banner-content{position:relative;z-index:2;transition:all .4s ease}.banner-enter{animation:bannerContentIn .4s cubic-bezier(.22,.61,.36,1) both}.banner-exit{animation:bannerContentOut .35s ease both}@keyframes bannerContentIn{0%{opacity:0;transform:translateY(12px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes bannerContentOut{0%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-12px);filter:blur(4px)}}.banner-status-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.banner-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:20px;font-size:12px;font-weight:600;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026}.banner-status-dot{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff9}.banner-counter{font-size:12px;color:#ffffff80;font-weight:500}.banner-title{font-size:26px;font-weight:800;color:#fff;margin-bottom:14px;letter-spacing:-.3px;line-height:1.3;text-shadow:0 2px 12px rgba(0,0,0,.2)}.banner-info-row{display:flex;gap:24px;margin-bottom:18px;flex-wrap:wrap}.banner-info-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#fffc;font-weight:500}.banner-info-item svg{flex-shrink:0;opacity:.6}.banner-click-hint{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#ffffff8c;font-weight:500;transition:all .3s}.project-banner:hover .banner-click-hint{color:#ffffffe6;gap:10px}.banner-click-hint svg{transition:transform .3s}.project-banner:hover .banner-click-hint svg{transform:translate(4px)}.banner-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;opacity:0}.project-banner:hover .banner-arrow{opacity:1}.banner-arrow:hover{background:#ffffff47;transform:translateY(-50%) scale(1.08)}.banner-arrow-left{left:16px}.banner-arrow-right{right:16px}.banner-dots{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:8px}.banner-dot{width:8px;height:8px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:transparent;cursor:pointer;padding:0;transition:all .3s}.banner-dot:hover{border-color:#fffc;transform:scale(1.2)}.banner-dot.active{width:24px;border-radius:4px;border-color:transparent}.overview-page{flex:1;overflow-y:auto;padding:16px 40px 32px;background:linear-gradient(160deg,#f4f6fa,#eef1f7,#f5f7fb 60%,#edf0f6);background-size:300% 300%;animation:ovBgShift 25s ease-in-out infinite;min-height:100vh}@keyframes ovBgShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.overview-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;animation:ovFadeDown .5s ease both;flex-wrap:wrap}.overview-hero-left{flex-shrink:0}.overview-hero-center{flex:1;display:flex;justify-content:center;min-width:200px}@keyframes ovFadeDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.overview-hero-right{display:flex;align-items:center;gap:12px}.user-badge{display:flex;align-items:center;gap:8px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.06);border-radius:24px;padding:4px 16px 4px 4px;font-size:13px;box-shadow:0 2px 8px #0000000a;transition:all .25s}.user-badge:hover{box-shadow:0 4px 14px #00000014}.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.user-name{color:var(--text);font-weight:500;white-space:nowrap}.logout-btn{width:26px;height:26px;padding:0;border:none;background:none;cursor:pointer;color:#b0b8c1;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.logout-btn:hover{color:#ef4444;background:#fef2f2}.overview-title{font-size:28px;font-weight:800;color:#0f172a;letter-spacing:-.5px;line-height:1.2}.overview-subtitle{font-size:13px;color:#94a3b8;margin-top:4px}.overview-create-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 24px;background:linear-gradient(135deg,#1a6fb5,#2b85d0);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;box-shadow:0 4px 14px #1a6fb54d;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;position:relative;overflow:hidden}.overview-create-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .3s}.overview-create-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1a6fb566}.overview-create-btn:hover:after{opacity:1}.overview-create-btn:active{transform:translateY(0)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat-card{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:22px 26px;box-shadow:0 2px 10px #0000000a;transition:all .35s cubic-bezier(.4,0,.2,1);cursor:default;border:1px solid rgba(0,0,0,.04);opacity:0;animation:ovCardEnter .5s ease forwards}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.12s}.stat-card:nth-child(3){animation-delay:.19s}.stat-card:nth-child(4){animation-delay:.26s}@keyframes ovCardEnter{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px #00000014;border-color:#00000014}.stat-card-body{display:flex;align-items:center;justify-content:space-between}.stat-card-info{display:flex;flex-direction:column}.stat-card-value{font-size:36px;font-weight:800;color:#0f172a;line-height:1;letter-spacing:-1.5px;transition:color .3s}.stat-card-label{font-size:13px;color:#94a3b8;margin-top:6px;font-weight:500}.stat-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s}.stat-card:hover .stat-card-icon{transform:scale(1.08)}.stat-card.total .stat-card-icon{background:linear-gradient(135deg,#eef0fb,#e0e4f8)}.stat-card.not .stat-card-icon{background:linear-gradient(135deg,#fef7ed,#fef0d0)}.stat-card.progress .stat-card-icon{background:linear-gradient(135deg,#e8f0fe,#d4e3fc)}.stat-card.done .stat-card-icon{background:linear-gradient(135deg,#e6f9f2,#c8f3df)}.overview-table-card{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;box-shadow:0 2px 10px #0000000a;border:1px solid rgba(0,0,0,.04);overflow:hidden;animation:ovFadeUp .5s ease .25s both}@keyframes ovFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.overview-table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #f0f1f3}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;color:#b0b8c1;pointer-events:none;transition:color .25s}.search-input{width:300px;padding:10px 34px 10px 40px;border:1.5px solid #e2e5e9;border-radius:10px;font-size:13px;outline:none;background:#f9fafb;transition:all .3s cubic-bezier(.4,0,.2,1)}.search-input:focus{border-color:#1a6fb5;background:#fff;box-shadow:0 0 0 4px #1a6fb50d;width:340px}.search-box:focus-within .search-icon{color:#1a6fb5}.search-input::placeholder{color:#c0c4cc}.search-clear{position:absolute;right:8px;width:22px;height:22px;padding:0;border:none;background:none;cursor:pointer;font-size:15px;color:#b0b8c1;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.search-clear:hover{color:#64748b;background:#f1f5f9}.table-count{font-size:12px;color:#94a3b8;font-weight:500}.overview-table{width:100%;border-collapse:collapse}.overview-table th{background:#fafbfc;padding:13px 18px;font-size:11px;font-weight:700;color:#94a3b8;text-align:left;text-transform:uppercase;letter-spacing:.6px;border-bottom:2px solid #edf0f3}.overview-table th.th-actions{text-align:center}.overview-table td{padding:15px 18px;font-size:13px;border-bottom:1px solid #f5f6f7;color:var(--text);vertical-align:middle;transition:background .2s,padding .3s}.overview-table tbody tr{transition:all .25s cubic-bezier(.4,0,.2,1);animation:ovRowEnter .4s ease both}.overview-table tbody tr:nth-child(1){animation-delay:.3s}.overview-table tbody tr:nth-child(2){animation-delay:.34s}.overview-table tbody tr:nth-child(3){animation-delay:.38s}.overview-table tbody tr:nth-child(4){animation-delay:.42s}.overview-table tbody tr:nth-child(5){animation-delay:.46s}@keyframes ovRowEnter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.overview-table tbody tr:hover td{background:#f8fafd;box-shadow:inset 0 1px #e8ecf1,inset 0 -1px #e8ecf1}.overview-table tbody tr:last-child td{border-bottom:none}.proj-name-cell{display:flex;align-items:center}.proj-name{font-weight:600;color:#0f172a;font-size:13px}.pm-name{color:var(--text-secondary)}.pm-name-editable{transition:color .2s}.pm-name-editable:hover{color:var(--primary)}.pm-name-editable:hover .pm-edit-icon{color:var(--primary)!important}.pm-transfer-select{padding:3px 6px;border:1px solid var(--primary);border-radius:4px;font-size:12px;outline:none;background:#fff;min-width:120px}.pm-cell-admin{display:flex;align-items:center}.col-date,.col-period{color:var(--text-secondary);font-size:12px}.empty-cell{text-align:center;color:var(--text-secondary);padding:48px 16px!important}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:13px}.status-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:600;transition:all .25s}.status-tag:hover{transform:scale(1.04)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-tag.in-progress .status-dot{animation:dotPulse 1.8s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}.status-tag.not-started{background:#fef7ed;color:#b45309}.status-tag.not-started .status-dot{background:#f59e0b}.status-tag.in-progress{background:#e8f0fe;color:#1d4ed8}.status-tag.in-progress .status-dot{background:#3b82f6}.status-tag.completed{background:#e6f9f2;color:#047857}.status-tag.completed .status-dot{background:#10b981}.col-actions{text-align:center;white-space:nowrap}.action-btn{display:inline-flex;align-items:center;padding:6px 16px;border:none;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;margin:0 3px;transition:all .25s cubic-bezier(.4,0,.2,1)}.action-btn.view{background:#e8f4fd;color:#1a6fb5}.action-btn.view:hover{background:#cfe4f6;transform:translateY(-1px);box-shadow:0 2px 8px #1a6fb51f}.action-btn.delete{background:#fff1f0;color:#dc2626}.action-btn.delete:hover{background:#fde0dd;transform:translateY(-1px);box-shadow:0 2px 8px #dc26261a}.modal-title{font-size:17px;font-weight:700;margin-bottom:12px;color:#0f172a}.modal-btn-danger{background:#ef4444;color:#fff;border:none;padding:7px 22px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s}.modal-btn-danger:hover{background:#dc2626;box-shadow:0 4px 14px #ef44444d;transform:translateY(-1px)}.form-modal{min-width:560px;max-width:640px;max-height:80vh;overflow-y:auto}.form-modal h3{font-size:16px;margin-bottom:16px;color:var(--text)}.form-error{background:#fff5f5;border:1px solid #fecaca;color:#dc2626;padding:8px 12px;border-radius:4px;font-size:13px;margin-bottom:12px}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.form-group input{width:100%;padding:8px 10px;border:1px solid #d0d5dd;border-radius:4px;font-size:13px;outline:none}.form-group input:focus{border-color:var(--primary)}.required-star{color:#e53e3e;font-weight:600}.char-count{font-weight:400;color:#999}.form-group input.input-error,.form-group textarea.input-error{border-color:#e53e3e;background:#fff5f5}.form-group input:disabled{background:#f5f5f5;color:#888;cursor:default}.form-group textarea{width:100%;padding:8px 10px;border:1px solid #d0d5dd;border-radius:4px;font-size:13px;outline:none;resize:vertical;font-family:inherit;line-height:1.5}.form-group textarea:focus{border-color:var(--primary)}.form-group select{width:100%;padding:8px 10px;border:1px solid #d0d5dd;border-radius:4px;font-size:13px;outline:none;background:#fff}.form-group select:focus{border-color:var(--primary)}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-tasks-header{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px;font-size:13px;font-weight:500;color:var(--text)}.add-task-btn{padding:4px 12px;border:1px dashed #d0d5dd;border-radius:4px;background:none;cursor:pointer;font-size:12px;color:var(--primary);transition:all .15s}.add-task-btn:hover{border-color:var(--primary);background:var(--primary-light)}.form-tasks{border:1px solid #ececec;border-radius:6px;overflow:hidden}.form-task-row{display:flex;gap:6px;padding:8px;border-bottom:1px solid #f0f1f3;align-items:center}.form-task-row:last-child{border-bottom:none}.form-task-row input{padding:6px 8px;border:1px solid #e5e5e5;border-radius:3px;font-size:12px;outline:none;min-width:0}.form-task-row input[type=text]{flex:1}.form-task-row .assignee-input-wrap{flex:1;min-width:0}.form-task-row input[type=date]{width:110px;flex-shrink:0}.form-task-row input:focus{border-color:var(--primary)}.task-remove-btn{width:24px;height:24px;padding:0;border:1px solid #ffccc7;border-radius:3px;background:var(--white);color:var(--danger);cursor:pointer;font-size:16px;line-height:22px;flex-shrink:0}.task-remove-btn:hover{background:var(--danger);color:#fff}.task-remove-btn:disabled{opacity:.3;cursor:default}.login-page{position:relative;width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8edf5,#dfe6f0,#edf1f7,#e3eaf3,#f0f3f8);background-size:400% 400%;animation:loginBgShift 20s ease-in-out infinite;overflow:hidden}@keyframes loginBgShift{0%,to{background-position:0% 50%}25%{background-position:100% 0%}50%{background-position:100% 100%}75%{background-position:0% 100%}}.login-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-orb{position:absolute;border-radius:50%;filter:blur(80px)}.orb-1{width:400px;height:400px;background:#638bdb1f;top:-10%;left:-8%;animation:orbDrift1 18s ease-in-out infinite}.orb-2{width:320px;height:320px;background:#8ba0db1a;bottom:-15%;right:-5%;animation:orbDrift2 22s ease-in-out infinite}.orb-3{width:260px;height:260px;background:#6998c814;top:55%;left:60%;animation:orbDrift3 20s ease-in-out infinite}@keyframes orbDrift1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.15)}66%{transform:translate(-20px,20px) scale(.9)}}@keyframes orbDrift2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,20px) scale(1.1)}66%{transform:translate(25px,-15px) scale(.85)}}@keyframes orbDrift3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-35px,-25px) scale(1.2)}}.login-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.login-particle{position:absolute;border-radius:50%;background:#8fa8cc;animation:particleUp linear infinite}@keyframes particleUp{0%{transform:translateY(0) translate(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-120vh) translate(40px) scale(0);opacity:0}}.login-bg-icons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.login-float-icon{position:absolute;animation-duration:10s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(.45,0,.55,1);transition:opacity .8s}.login-float-icon.float1{animation-name:loginFloat1}.login-float-icon.float2{animation-name:loginFloat2}.login-float-icon.float3{animation-name:loginFloat3}.login-float-icon.float4{animation-name:loginFloat4}@keyframes loginFloat1{0%,to{transform:translateY(0) rotate(0) scale(1)}20%{transform:translateY(-22px) rotate(8deg) scale(1.08)}40%{transform:translateY(-6px) rotate(-5deg) scale(.93)}60%{transform:translateY(-28px) rotate(3deg) scale(1.06)}80%{transform:translateY(-12px) rotate(-2deg) scale(.96)}}@keyframes loginFloat2{0%,to{transform:translateY(0) translate(0) rotate(0) scale(1)}33%{transform:translateY(-18px) translate(14px) rotate(-6deg) scale(1.07)}66%{transform:translateY(-24px) translate(-10px) rotate(4deg) scale(.92)}}@keyframes loginFloat3{0%,to{transform:translateY(0) rotate(0) scale(1)}40%{transform:translateY(-30px) rotate(-8deg) scale(1.1)}80%{transform:translateY(-10px) rotate(3deg) scale(.94)}}@keyframes loginFloat4{0%,to{transform:translateY(0) translate(0) rotate(0) scale(1)}25%{transform:translateY(-14px) translate(-16px) rotate(5deg) scale(1.06)}50%{transform:translateY(-26px) translate(8px) rotate(-4deg) scale(.9)}75%{transform:translateY(-8px) translate(-5px) rotate(7deg) scale(1.05)}}.login-card{position:relative;z-index:1;width:380px;background:#ffffffc7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:20px;box-shadow:0 12px 60px #0000000f,0 2px 8px #00000008;padding:44px 40px;border:1px solid rgba(255,255,255,.7);animation:cardEnter .6s cubic-bezier(.22,.61,.36,1) both}@keyframes cardEnter{0%{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.login-header{text-align:center;margin-bottom:32px}.login-logo{position:relative;display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:18px;background:linear-gradient(135deg,#1a6fb5,#3b8fd9);color:#fff;margin-bottom:16px;box-shadow:0 8px 28px #1a6fb559}.login-logo-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:22px;border:2px solid rgba(26,111,181,.2);animation:logoPulse 2s ease-in-out infinite}@keyframes logoPulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.12);opacity:0}}.login-logo svg{position:relative;z-index:1}.login-header h1{font-size:21px;font-weight:700;color:#1a1c23;margin-bottom:4px;letter-spacing:-.3px}.login-header p{font-size:13px;color:#8f959e}.login-error{background:#fff1f0;color:#d92d20;border:1px solid #ffccc7;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px;text-align:center;animation:errorShake .4s ease}@keyframes errorShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.login-field{position:relative;margin-bottom:18px}.login-field-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#b0b8c1;pointer-events:none;z-index:1;transition:color .25s}.login-field input{width:100%;padding:13px 14px 13px 44px;border:1.5px solid #e2e5e9;border-radius:12px;font-size:14px;outline:none;background:#f9fafbe6;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.login-field input:focus{border-color:#1a6fb5;background:#fff;box-shadow:0 0 0 4px #1a6fb50f}.login-field:focus-within .login-field-icon{color:#1a6fb5}.login-field-border{position:absolute;bottom:0;left:50%;right:50%;height:2px;background:linear-gradient(90deg,#1a6fb5,#3b8fd9);transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:0 0 12px 12px}.login-field:focus-within .login-field-border{left:0;right:0}.login-field input::placeholder{color:#c0c4cc}.login-btn{width:100%;padding:13px;background:linear-gradient(135deg,#1a6fb5,#2b85d0);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;margin-top:10px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 18px #1a6fb54d}.login-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .3s}.login-btn:hover{background:linear-gradient(135deg,#155d8a,#1a6fb5);box-shadow:0 8px 28px #1a6fb566;transform:translateY(-2px)}.login-btn:hover:after{opacity:1}.login-btn:hover .login-btn-arrow{transform:translate(3px)}.login-btn:active{transform:translateY(0)}.login-btn:disabled{opacity:.55;cursor:default;transform:none}.login-btn:disabled:after{display:none}.login-btn-arrow{transition:transform .3s ease}.toggle-group-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:3px;transition:all .15s;line-height:1;white-space:nowrap}.toggle-group-btn:hover{background:#d4e3fc;color:#1a6fb5}.placeholder-dash{color:#c0c4cc;-webkit-user-select:none;user-select:none;padding-left:4px}.minor-row td{background:#fdfcf9}.minor-row:hover td{background:#faf7ed!important}.detail-row td{background:#fff}.detail-row:hover td{background:#fafbfc!important}.subdetail-row td{background:#fff}.subdetail-row:hover td{background:#fafbfc!important}.sub-detail-display{font-size:12px;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.sub-detail-expand-btn:hover{color:#1a6fb5!important}.category-layout-four{display:flex;gap:12px;height:100%;min-height:350px}.category-layout-four .category-panel{flex:1;min-width:0}.assignee-input-wrap{position:relative;width:100%;height:100%}.assignee-input-wrap input{width:100%;height:100%;padding:0 4px;border:none;border-radius:0;font-size:12px;outline:none;background:transparent}.assignee-input-wrap input:focus{background:#fff;box-shadow:inset 0 0 0 1px var(--primary)}.assignee-dropdown{position:absolute;top:100%;left:0;min-width:100%;max-height:160px;overflow-y:auto;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #d0d5dd;border-radius:0 0 4px 4px;box-shadow:0 4px 12px #0000001a;z-index:999}.assignee-dropdown li{padding:5px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.assignee-dropdown li:hover,.assignee-dropdown li.highlight{background:var(--primary-light);color:var(--primary)}.prefix-input{display:flex;align-items:center;width:100%;height:100%;flex:1;min-width:0;text-align:left}.prefix-input input{text-align:left}.prefix-tag{font-size:11px;font-weight:600;color:#3b608d;flex-shrink:0;margin-right:2px}.admin-panel{width:94vw;max-width:1100px;height:88vh;background:#fff;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden}.admin-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e8ecf1}.admin-panel-header h3{margin:0;font-size:18px;font-weight:600;color:#1e293b}.admin-panel-close{background:none;border:none;font-size:24px;color:#94a3b8;cursor:pointer;padding:0;line-height:1}.admin-panel-close:hover{color:#1e293b}.admin-tabs{display:flex;gap:0;border-bottom:1px solid #e8ecf1;padding:0 24px;background:#fafbfc}.admin-tab{padding:10px 20px;border:none;background:none;font-size:13px;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.admin-tab:hover{color:#334155}.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.admin-tab-content{flex:1;overflow-y:auto;padding:20px 24px}.admin-tab-inner{max-width:100%}.admin-loading{padding:40px;text-align:center;color:#94a3b8;font-size:14px}.admin-toolbar{margin-bottom:12px;display:flex;gap:8px;align-items:center}.admin-btn{padding:6px 14px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;color:#334155;font-size:12px;cursor:pointer;transition:all .15s}.admin-btn:hover{background:#f1f5f9}.admin-btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.admin-btn-primary:hover{background:var(--primary-dark)}.admin-btn-sm{padding:3px 10px;font-size:11px}.admin-btn-danger{color:#e74c3c;border-color:#fca5a5}.admin-btn-danger:hover{background:#fef2f2;color:#dc2626}.admin-btn-icon{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;color:#94a3b8;border-radius:3px}.admin-btn-icon:hover{background:#f1f5f9;color:#334155}.admin-btn-icon.danger:hover{color:#e74c3c;background:#fef2f2}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #f1f5f9}.admin-table th{background:#fafbfc;color:#64748b;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.admin-table td{color:#334155}.admin-table tr:hover td{background:#fafbfc}.admin-empty{padding:30px;text-align:center;color:#94a3b8;font-size:13px}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.inactive{background:#f1f5f9;color:#94a3b8}.admin-form-modal{background:#fff;border-radius:10px;padding:24px;width:420px;max-width:94vw;box-shadow:0 16px 48px #0000002e}.admin-form-modal h4{margin:0 0 16px;font-size:16px;font-weight:600;color:#1e293b}.admin-form-modal p{margin:0 0 16px;font-size:13px;color:#64748b;line-height:1.5}.category-layout{display:flex;gap:20px;height:100%;min-height:350px}.category-panel{flex:1;border:1px solid #e8ecf1;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.category-panel-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fafbfc;border-bottom:1px solid #e8ecf1}.category-panel-header h5{margin:0;font-size:13px;font-weight:600;color:#334155}.category-list{flex:1;overflow-y:auto;list-style:none;margin:0;padding:0}.category-item{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid #f8fafc;cursor:pointer;transition:background .1s;font-size:13px}.category-item:hover{background:#f8fafc}.category-item.active{background:var(--primary-light)}.category-item-name{flex:1;color:#334155}.category-item-actions{display:flex;gap:2px;flex-shrink:0}.workday-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.workday-toolbar label{font-size:12px;color:#64748b;font-weight:500}.workday-toolbar input[type=date],.workday-toolbar input[type=text],.workday-toolbar select{padding:4px 8px;border:1px solid #d0d5dd;border-radius:5px;font-size:12px;color:#334155}.workday-stats{display:flex;align-items:center;gap:16px;padding:8px 12px;background:#fafbfc;border-radius:6px;margin-bottom:12px;font-size:12px;color:#64748b}.workday-stats strong{color:#1e293b}.stat-work{color:#166534}.stat-rest{color:#94a3b8}.stat-hint{color:#94a3b8;margin-left:auto}.workday-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;margin-bottom:20px}.workday-cell{padding:6px 8px;border-radius:6px;text-align:center;cursor:pointer;transition:all .12s;font-size:11px;border:1px solid transparent;-webkit-user-select:none;user-select:none}.workday-cell:hover{transform:scale(1.05);z-index:1}.workday-cell.is-work{background:#fff;border-color:#e2e8f0}.workday-cell.is-rest{background:#f1f5f9;border-color:#e2e8f0}.workday-cell-date{font-weight:600;display:block;color:#334155}.workday-cell-weekday{display:block;font-size:10px;color:#94a3b8}.workday-cell-holiday{display:block;font-size:9px;color:#e74c3c;margin-top:1px}.workday-cell.is-rest .workday-cell-date{color:#94a3b8}.workday-section{border:1px solid #e8ecf1;border-radius:8px;padding:14px 16px;margin-bottom:14px}.workday-section h5{margin:0 0 8px;font-size:14px;font-weight:600;color:#334155}.workday-hint{margin:0 0 10px;font-size:12px;color:#94a3b8}.form-success{background:#dcfce7;color:#166534;padding:8px 14px;border-radius:6px;font-size:13px;margin-bottom:12px}.overview-admin-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;color:#4338ca;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;margin-right:8px}.overview-admin-btn:hover{background:#e0e7ff;border-color:#a5b4fc}.icp-footer{text-align:center;padding:14px 0;flex-shrink:0}.icp-footer a{color:#94a3b8;text-decoration:none;font-size:12px}.icp-footer a:hover{color:var(--primary)}.import-modal-box{background:#fff;border-radius:10px;box-shadow:0 8px 40px #0000002e;width:680px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.import-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #ececec;font-size:14px;font-weight:600;color:#333}.import-modal-body{padding:20px;overflow-y:auto;flex:1}.import-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #ececec}.import-error{background:#fff0f0;color:#c0392b;padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:14px;border:1px solid #f5c6cb}.import-dropzone{border:2px dashed #c8d6e5;border-radius:10px;padding:48px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.import-dropzone:hover{border-color:#3b608d;background:#f6f9fc}.import-dropzone p{margin:12px 0 0;color:#555;font-size:14px}.import-dropzone .import-hint{color:#999;font-size:12px;margin-top:8px}.import-confirm-warning{background:#fff8e1;border:1px solid #ffc107;border-radius:8px;padding:14px 18px;margin-bottom:16px}.import-confirm-warning strong{color:#e67e22;font-size:14px}.import-confirm-warning p{margin:6px 0 0;color:#8d6e00;font-size:13px}.import-preview{max-height:220px;overflow:auto;margin-bottom:16px;border:1px solid #ececec;border-radius:6px}.import-preview table{width:100%;border-collapse:collapse;font-size:12px}.import-preview th{background:#f8f9fa;padding:8px 6px;text-align:left;font-weight:600;border-bottom:2px solid #dee2e6;white-space:nowrap;position:sticky;top:0}.import-preview td{padding:6px;border-bottom:1px solid #f0f0f0;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-option{padding:10px 0;font-size:13px;color:#444}.import-option label{display:flex;align-items:center;gap:8px;cursor:pointer}.import-option input[type=checkbox]{width:16px;height:16px;cursor:pointer}.import-execute-btn{padding:8px 20px;border:none;border-radius:6px;background:#e67e22;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.import-execute-btn:hover{background:#d35400}.import-execute-btn:disabled{opacity:.6;cursor:not-allowed}.import-cancel-btn{padding:8px 16px;border:1px solid #ccc;border-radius:6px;background:#fff;color:#555;font-size:13px;cursor:pointer;transition:background .2s}.import-cancel-btn:hover{background:#f5f5f5}.import-btn{padding:7px 14px;border:1px solid #e67e22;border-radius:6px;background:#fff;color:#e67e22;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;margin-left:8px}.import-btn:hover{background:#fff8e1;border-color:#d35400;color:#d35400}.chatbot-fab-wrapper{position:fixed;bottom:22%;right:12px;z-index:999;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:160px}.chatbot-tip-bubble{background:#fff;color:#374151;padding:6px 10px;border-radius:10px;font-size:11px;line-height:1.5;white-space:normal;word-break:break-word;box-shadow:0 2px 8px #0000001a;opacity:0;transform:translateY(6px) scale(.92);transition:opacity .4s ease,transform .4s ease;pointer-events:none}.chatbot-tip-visible{opacity:1;transform:translateY(0) scale(1)}.chatbot-fab{width:56px;height:56px;border-radius:50%;cursor:pointer;z-index:999;flex-shrink:0;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease;animation:chatbot-float 3.5s ease-in-out infinite}.chatbot-fab:hover{transform:scale(1.12);box-shadow:0 12px 36px #4f6ef766}.chatbot-fab:hover .chatbot-fab-ring{opacity:1}.chatbot-fab-svg{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 20px #00000026,0 1px 3px #0000000f;box-sizing:border-box;background:#e8f4fd}.doraemon-eye{animation:doraemon-blink 4s ease-in-out infinite}@keyframes doraemon-blink{0%,45%,55%,to{ry:5.5}48%,52%{ry:.3}}.chatbot-fab-ring{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:3px solid rgba(79,110,247,.25);pointer-events:none;opacity:0;transition:opacity .3s;animation:chatbot-ring-pulse 2s ease-in-out infinite}@keyframes chatbot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes chatbot-ring-pulse{0%,to{transform:scale(1);opacity:.25}50%{transform:scale(1.08);opacity:.55}}.chatbot-panel{position:fixed;bottom:8%;right:28px;width:480px;max-width:calc(100vw - 40px);height:640px;max-height:calc(100vh - 100px);background:#fff;border-radius:20px;box-shadow:0 25px 60px #0000001f,0 8px 20px #0000000f,0 0 0 1px #0000000a;display:flex;flex-direction:column;z-index:1000;animation:chatbot-slide-up .3s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes chatbot-slide-up{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.chatbot-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#4f6ef7,#7b93ff);color:#fff;flex-shrink:0}.chatbot-header-left{display:flex;align-items:center;gap:12px}.chatbot-header-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.5);flex-shrink:0;background:#e8f4fd}.chatbot-avatar-svg{width:100%;height:100%;display:block}.chatbot-header-title{font-size:16px;font-weight:600;line-height:1.2}.chatbot-header-subtitle{font-size:11px;font-weight:400;opacity:.75;margin-top:1px}.chatbot-header-right{display:flex;gap:6px}.chatbot-header-btn{width:34px;height:34px;border:none;border-radius:10px;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.chatbot-header-btn:hover{background:#ffffff47}.chatbot-header-btn:disabled{opacity:.35;cursor:not-allowed}.chatbot-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:18px;background:linear-gradient(180deg,#f7f8fc,#f0f2f8)}.chatbot-messages::-webkit-scrollbar{width:5px}.chatbot-messages::-webkit-scrollbar-track{background:transparent}.chatbot-messages::-webkit-scrollbar-thumb{background:#d5dae3;border-radius:10px}.chatbot-messages::-webkit-scrollbar-thumb:hover{background:#bcc3d0}.chatbot-msg{display:flex;gap:10px;align-items:flex-end}.chatbot-msg-user{flex-direction:row-reverse}.chatbot-msg-assistant{flex-direction:row}.chatbot-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.chatbot-avatar-ai{box-shadow:0 2px 8px #4f6ef733;background:#e8f4fd}.chatbot-avatar-user{background:#dfe3ed;color:#5a6a8a}.chatbot-bubble{max-width:78%;padding:12px 16px;border-radius:18px;font-size:14px;line-height:1.65;word-break:break-word;white-space:pre-wrap}.chatbot-msg-user .chatbot-bubble{background:linear-gradient(135deg,#4f6ef7,#6b89ff);color:#fff;border-bottom-right-radius:6px;box-shadow:0 2px 8px #4f6ef733}.chatbot-msg-assistant .chatbot-bubble{background:#fff;color:#1e293b;border-bottom-left-radius:6px;box-shadow:0 1px 4px #0000000a}.chatbot-bubble-error{background:#fef2f2!important;color:#991b1b!important;box-shadow:0 1px 4px #dc262614!important}.chatbot-bubble-welcome{background:#fff;box-shadow:0 1px 4px #0000000a}.chatbot-thinking{margin-bottom:10px;border-radius:10px;overflow:hidden}.chatbot-thinking-header{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#6b7d99;cursor:pointer;padding:6px 10px;border-radius:8px;background:#eef1f7;-webkit-user-select:none;user-select:none;transition:background .2s}.chatbot-thinking-header:hover{background:#e2e6f0}.chatbot-thinking-label{font-weight:500}.chatbot-chevron{transition:transform .25s ease;flex-shrink:0;color:#8b9cc0}.chatbot-chevron-open{transform:rotate(90deg)}.chatbot-dot-pulse{width:7px;height:7px;border-radius:50%;background:#4f6ef7;animation:chatbot-dot-pulse 1.2s ease-in-out infinite}@keyframes chatbot-dot-pulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.chatbot-thinking-content{padding:10px 12px;font-size:12.5px;color:#5a6e8c;line-height:1.55;white-space:pre-wrap;background:#f8f9fd;border-left:3px solid #c5d0f0;margin-top:5px;border-radius:0 8px 8px 0}.chatbot-content{font-size:14px;line-height:1.7}.chatbot-cursor{display:inline-block;width:2px;height:16px;background:#4f6ef7;margin-left:1px;vertical-align:text-bottom;animation:chatbot-blink .9s step-end infinite;border-radius:1px}@keyframes chatbot-blink{0%,to{opacity:1}50%{opacity:0}}.chatbot-input-area{padding:14px 18px;border-top:1px solid #edf0f6;background:#fff;flex-shrink:0}.chatbot-input-row{display:flex;gap:10px;align-items:flex-end}.chatbot-input{flex:1;resize:none;padding:12px 16px;border:2px solid #e4e8f0;border-radius:14px;font-size:14px;line-height:1.45;font-family:inherit;outline:none;min-height:44px;max-height:110px;transition:border-color .2s,box-shadow .2s;background:#f9fafc}.chatbot-input:focus{border-color:#4f6ef7;box-shadow:0 0 0 4px #4f6ef714;background:#fff}.chatbot-input:disabled{background:#f3f4f7;color:#a0a8b8}.chatbot-send-btn,.chatbot-stop-btn-circle{width:44px;height:44px;border:none;border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s,box-shadow .2s}.chatbot-send-btn{background:linear-gradient(135deg,#4f6ef7,#6b89ff);color:#fff;box-shadow:0 4px 12px #4f6ef74d}.chatbot-send-btn:hover:not(:disabled){transform:scale(1.06);box-shadow:0 6px 18px #4f6ef766}.chatbot-send-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.chatbot-stop-btn-circle{background:#fef2f2;color:#dc2626;border:2px solid #fecaca}.chatbot-stop-btn-circle:hover{background:#fee2e2}@media (max-width: 520px){.chatbot-panel{right:4px;width:calc(100vw - 8px);height:520px;max-height:calc(100vh - 60px);bottom:2%;border-radius:14px}.chatbot-tip-bubble{font-size:11px;padding:6px 10px;max-width:150px}.chatbot-fab-wrapper{right:6px}.chatbot-fab{width:48px;height:48px}.chatbot-tip-bubble{font-size:10px;padding:5px 8px}}.weekly-report-page{display:flex;flex-direction:column;height:100vh;background:#e8ecf1;overflow:hidden}.wr-header{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0}.wr-back-btn{padding:8px 14px;border:1.5px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;font-size:13px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .2s}.wr-back-btn:hover{border-color:#830051;color:#830051;background:#fdf2f8}.wr-dropdown{position:relative;min-width:140px;max-width:220px}.wr-dropdown-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1.5px solid #d0d5dd;border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;transition:border-color .2s,box-shadow .2s}.wr-dropdown-trigger:hover{border-color:#a0a5ad}.wr-dropdown[open] .wr-dropdown-trigger,.wr-dropdown-trigger:focus{border-color:#830051;box-shadow:0 0 0 3px #83005114;outline:none}.wr-dropdown-label{font-size:13px;font-weight:600;color:#344054}.wr-dropdown-sub{font-size:11px;color:#94a3b8;flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wr-dropdown-arrow{font-size:10px;color:#94a3b8;transition:transform .2s;flex-shrink:0}.wr-dropdown-arrow.open{transform:rotate(180deg)}.wr-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow-y:auto;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:100;padding:4px}.wr-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .15s}.wr-dropdown-item:hover{background:#f8f4f6}.wr-dropdown-item.active{background:#fdf2f8}.wr-dropdown-item.active .wr-dropdown-item-week{color:#830051;font-weight:700}.wr-dropdown-item-week{font-size:13px;color:#344054;font-weight:500}.wr-dropdown-item.unavailable{opacity:.5;cursor:default}.wr-dropdown-item.unavailable:hover{background:transparent;padding-left:16px}.wr-dropdown-item-date{font-size:11px;color:#94a3b8}.wr-header-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.wr-save-btn{padding:8px 14px;border:1.5px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;font-size:13px;cursor:pointer;white-space:nowrap}.wr-save-btn:hover{background:#f0f2f5}.wr-export-btn{padding:8px 14px;border:1.5px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;font-size:13px;cursor:pointer;white-space:nowrap}.wr-export-btn:hover{background:#f0f2f5}.wr-today-label{font-size:12px;color:#666;margin-right:2px;white-space:nowrap}.wr-today-select{padding:6px 10px;border:1.5px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;font-size:13px;cursor:pointer;outline:none;white-space:nowrap}.wr-today-select:hover{border-color:#870047}.wr-today-select:focus{border-color:#870047;box-shadow:0 0 0 2px #8700471a}.wr-slides{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px;background:#e8ecf1}.wr-slide{background:#fff;position:relative;width:100%;max-width:1200px;margin:0 auto;aspect-ratio:16 / 9;box-shadow:0 2px 8px #0000001a;overflow:hidden;flex-shrink:0}.wr-slide-p1{background:#fff;display:flex;flex-direction:row;position:relative}.wr-p1-az-logo{position:absolute;top:28px;left:40px;height:40px;z-index:10}.wr-p1-left{width:50.8%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 3%}.wr-p1-right{width:49.2%;height:100%}.wr-p1-right img{width:100%;height:100%;object-fit:cover;object-position:left center}.wr-p1-title{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:28px;font-weight:700;color:#870047;line-height:1.2;outline:none;margin-bottom:16px}.wr-p1-subtitle{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:18px;color:#404040;font-weight:400;outline:none;margin-bottom:8px}.wr-p1-date-edit{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:15px;color:#404040;margin-bottom:40px;outline:none}.wr-p1-footer{position:absolute;left:3.4%;bottom:2.7%;font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:11px;font-weight:700;color:#000;outline:none}.wr-p1-title:focus,.wr-p1-subtitle:focus,.wr-p1-date-edit:focus,.wr-p1-footer:focus{background:#8700470f;border-radius:2px}.wr-slide-p2{display:flex;flex-direction:column}.wr-p2-header{display:flex;align-items:center;gap:12px;padding:8px 16px 0;flex-shrink:0;min-height:36px}.wr-p2-logo{height:28px;width:auto}.wr-p2-title{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:16px;font-weight:700;color:#870047}.wr-p2-gantt{flex:1;overflow:auto;padding:4px 12px 0}.wr-p2-table{border-collapse:collapse;font-family:Microsoft YaHei,微软雅黑,sans-serif;font-size:10px;table-layout:auto;width:max-content;min-width:100%}.wr-p2-sticky-col-1{position:sticky;z-index:2;background:#fafafa}.wr-p2-sticky-col-2{position:sticky;z-index:2;background:#fff}.wr-p2-sticky-col-3{position:sticky;z-index:2;background:#fff;box-shadow:2px 0 6px #00000014}.wr-p2-table thead .wr-p2-sticky-col-1,.wr-p2-table thead .wr-p2-sticky-col-2,.wr-p2-table thead .wr-p2-sticky-col-3{z-index:4}.wr-p2-table thead{position:sticky;top:0;z-index:1}.wr-p2-table th{padding:4px;text-align:center;font-weight:500;color:#fff;background:#830051;border:1px solid #6b0040;white-space:nowrap;font-size:10px}.wr-p2-table td{padding:3px 4px;border:1px solid #e8e8e8;vertical-align:middle;font-size:10px}.wr-p2-col-major{min-width:80px;font-weight:700;font-size:10px;text-align:center;background:#fafafa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 8px}.wr-p2-col-task{min-width:80px;text-align:center;background:#fff;padding:3px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.wr-p2-bar{display:inline-block;color:#666;border-radius:3px;padding:1px 5px;font-size:8px;white-space:nowrap}.wr-p2-col-day{width:24px;min-width:24px;text-align:center}.wr-p2-week-header{text-align:center;font-size:10px;font-weight:600;background:#830051;color:#fff;border:1px solid #6b0040;padding:2px 4px;white-space:nowrap}.wr-week-label{display:block;font-size:10px;font-weight:600;line-height:1.3}.wr-week-dates{display:block;font-size:8px;font-weight:400;opacity:.85;line-height:1.3}.wr-wearehere-badge{display:block;background:red;color:#fff;font-size:7px;font-weight:700;padding:1px 6px;border-radius:8px;margin-top:2px;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.wr-current-week,.wr-p2-col-day.wr-current-week{border-left:2px solid #FF0000!important;border-right:2px solid #FF0000!important}.wr-p2-sep-row td{border-top:1px solid #ccc;padding:0;height:2px;background:#fff}.wr-p2-legend{display:flex;gap:12px;margin-left:auto;font-family:Microsoft YaHei,sans-serif;font-size:10px;color:#666;flex-shrink:0;flex-wrap:wrap}.wr-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}.wr-slide-p3{display:flex;flex-direction:column}.wr-p3-header{display:flex;align-items:center;gap:12px;padding:8px 16px 0;flex-shrink:0;min-height:36px}.wr-p3-logo{height:28px;width:auto}.wr-p3-title{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:16px;font-weight:700;color:#870047}.wr-p3-tables{flex:1;display:flex;gap:12px;padding:8px 12px;overflow:hidden;min-height:0}.wr-p3-table-wrap{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.wr-p3-table-title{font-family:Microsoft YaHei,sans-serif;font-size:11px;font-weight:700;color:#333}.wr-p3-table-title-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;flex-shrink:0;gap:8px}.wr-p3-table-actions{display:flex;gap:4px;flex-shrink:0}.wr-p3-row-btn{padding:2px 8px;border:1px solid #d0d5dd;border-radius:4px;background:#fff;color:#555;font-size:10px;cursor:pointer;white-space:nowrap;transition:all .15s}.wr-p3-add-btn:hover{border-color:#00b050;color:#00b050;background:#f0fdf4}.wr-p3-status-select{padding:2px 4px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:10px;font-family:inherit;color:#444;cursor:pointer;outline:none;width:100%}.wr-p3-status-select:hover{border-color:#d0d5dd}.wr-p3-status-select:focus{border-color:#870047}.wr-p3-del-row-btn{width:22px;height:22px;padding:0;border:none;border-radius:50%;background:transparent;color:#bbb;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.wr-p3-del-row-btn:hover{background:#fef2f2;color:#d92d20}.col-act{width:28px;text-align:center;padding:0!important}.col-status{width:72px}.wr-p3-table{width:100%;border-collapse:collapse;font-family:Microsoft YaHei,微软雅黑,sans-serif;font-size:10px}.wr-p3-table thead{position:sticky;top:0;z-index:1}.wr-p3-table th{padding:4px 6px;border:1px solid #ddd;background:#f5f5f5;font-weight:600;color:#555;text-align:left;font-size:10px;white-space:nowrap}.wr-p3-table td{padding:3px 6px;border:1px solid #eee;color:#444;font-size:10px}.wr-p3-table .col-no{width:36px;text-align:center}.wr-p3-table .col-desc{min-width:80px}.wr-p3-table .col-sched{width:100px;text-align:center}.wr-p3-table .col-status{width:64px;text-align:center}.wr-p3-table .col-owner{width:72px;text-align:center}.wr-p3-table td[contenteditable=true]:focus{outline:2px solid #870047;outline-offset:-2px;background:#8700470a}.wr-p3-sched-cell{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.wr-p3-diff-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#f59e0b;flex-shrink:0;cursor:help;position:relative;animation:diffPulse 2s ease-in-out infinite}@keyframes diffPulse{0%,to{box-shadow:0 0 #f59e0b80}50%{box-shadow:0 0 0 4px #f59e0b00}}.wr-p3-diff-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1f2329f0;color:#fff;padding:6px 10px;border-radius:6px;font-size:10px;white-space:nowrap;z-index:10;pointer-events:none;line-height:1.5}.wr-p3-diff-dot:hover .wr-p3-diff-tooltip{display:block}.wr-p3-sync-btn{padding:1px 5px;border:1px solid #F59E0B;border-radius:3px;background:#fffbeb;color:#92400e;font-size:9px;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.wr-p3-sync-btn:hover{background:#f59e0b;color:#fff;border-color:#d97706}.wr-p3-sync-all-btn{padding:3px 10px;border:1px solid #F59E0B;border-radius:4px;background:#fffbeb;color:#92400e;font-size:10px;cursor:pointer;transition:all .15s;white-space:nowrap}.wr-p3-sync-all-btn:hover{background:#f59e0b;color:#fff}.wr-slide-p4{display:flex;flex-direction:column}.wr-p4-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 0;flex-shrink:0;min-height:36px}.wr-p4-title{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:16px;font-weight:700;color:#870047}.wr-p4-add-btn{padding:4px 12px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;color:#555;font-size:11px;cursor:pointer;white-space:nowrap;transition:all .15s}.wr-p4-add-btn:hover{border-color:#830051;color:#830051;background:#fdf2f8}.wr-p4-del-row-btn{width:22px;height:22px;padding:0;border:none;border-radius:50%;background:transparent;color:#bbb;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.wr-p4-del-row-btn:hover{background:#fef2f2;color:#d92d20}.wr-p4-table-wrap{flex:1;overflow:auto;padding:4px 12px}.wr-p4-table{width:100%;border-collapse:collapse;font-family:Microsoft YaHei,微软雅黑,sans-serif;font-size:10px}.wr-p4-table thead{position:sticky;top:0;z-index:1}.wr-p4-table th{padding:4px 6px;border:1px solid #ddd;background:#f5f5f5;font-weight:600;color:#555;text-align:left;white-space:nowrap;font-size:10px}.wr-p4-table td{padding:4px 6px;border:1px solid #eee;color:#444;font-size:10px}.wr-p4-table td[contenteditable=true]:focus{outline:2px solid #870047;outline-offset:-2px;background:#8700470a}.wr-risk-high{color:#d92d20;font-weight:600}.wr-risk-mid{color:#d97706;font-weight:600}.wr-risk-low{color:#6b7280}.wr-slide-p5{background:#000}.wr-p5-bg{width:100%;height:100%;background-image:url(/thanks_bg.jpeg);background-size:cover;background-position:center;position:relative}.wr-p5-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.wr-p5-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.wr-p5-text h1{font-family:等线 Light,DengXian Light,Microsoft YaHei,sans-serif;font-size:42px;font-weight:300;color:#fff;letter-spacing:4px;margin:0}.wr-p5-text p{font-family:微软雅黑,Microsoft YaHei,sans-serif;font-size:20px;color:#ffffffb3;font-weight:300;margin-top:12px}.wr-empty{text-align:center;color:#94a3b8;padding:20px;font-size:13px}.wr-entry-btn{padding:8px 16px;border:1px solid #818cf8;border-radius:8px;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s;white-space:nowrap;margin-right:10px;display:flex;align-items:center;gap:4px;box-shadow:0 1px 3px #4f46e54d}.wr-entry-btn:hover{background:linear-gradient(135deg,#4338ca,#4f46e5);border-color:#6366f1;transform:translateY(-1px);box-shadow:0 4px 12px #4f46e559}
