:root{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-tertiary:#fafafa;--bg-hover:#0000000a;--bg-active:#0000000f;--sidebar-bg:#efeff1;--sidebar-width:260px;--header-height:52px;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#aeaeb2;--border-color:#00000014;--accent-color:#0071e3;--accent-hover:#0077ed;--danger-color:#ff3b30;--success-color:#34c759;--warning-color:#ff9500;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001f;--glass-bg:#ffffffb8;--glass-border:#00000014;--backdrop-blur:blur(20px) saturate(180%)}[data-theme=dark]{--bg-primary:#1c1c1e;--bg-secondary:#2c2c2e;--bg-tertiary:#3a3a3c;--bg-hover:#ffffff0f;--bg-active:#ffffff1a;--sidebar-bg:#252527;--text-primary:#f5f5f7;--text-secondary:#98989d;--text-tertiary:#636366;--border-color:#ffffff14;--accent-color:#2997ff;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 32px #0006;--glass-bg:#2c2c2eb8;--glass-border:#ffffff14}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#root{height:100vh}a{color:var(--accent-color);text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none}input,textarea,select{font-family:inherit;font-size:inherit;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);outline:none;padding:8px 12px;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #0071e326}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff26}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff40}.login-screen{width:100vw;height:100vh;position:relative;overflow:hidden}.login-wallpaper{background:linear-gradient(135deg,#162544 0%,#1a3a5c 25%,#0d3b66 50%,#1b2a47 75%,#0f1d3a 100%);animation:20s ease-in-out infinite alternate subtle-shift;position:absolute;inset:0}@keyframes subtle-shift{0%{filter:brightness()saturate()}to{filter:brightness(1.05)saturate(1.1)}}.login-overlay{z-index:1;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.login-time{color:#fff;letter-spacing:-2px;-webkit-font-smoothing:antialiased;margin-bottom:4px;font-size:64px;font-weight:200}.login-date{color:#ffffffb3;margin-bottom:48px;font-size:16px;font-weight:400}.login-brand{align-items:center;gap:12px;margin-bottom:40px;display:flex}.login-brand-icon{flex-shrink:0}.login-brand-text{flex-direction:column;display:flex}.login-brand-name{color:#fff;letter-spacing:1px;font-size:20px;font-weight:600}.login-brand-desc{color:#ffffff80;margin-top:2px;font-size:12px}.login-card{-webkit-backdrop-filter:blur(40px)saturate(180%);background:#ffffff14;border:.5px solid #ffffff1f;border-radius:20px;width:380px;max-width:90vw;padding:40px;box-shadow:0 8px 50px #0000004d}.login-avatar{justify-content:center;margin-bottom:16px;display:flex}.login-card h2{color:#fff;text-align:center;margin-bottom:24px;font-size:20px;font-weight:550}.login-card form{flex-direction:column;gap:12px;display:flex}.login-card form input{color:#fff;background:#ffffff0f;border:.5px solid #ffffff26;border-radius:10px;outline:none;padding:12px 16px;font-size:14px;transition:border-color .2s,background .2s}.login-card form input::placeholder{color:#ffffff59}.login-card form input:focus{background:#ffffff1a;border-color:#fff6}.login-btn{color:#fff;background:#ffffff26;border-radius:10px;margin-top:8px;padding:12px;font-size:14px;font-weight:550;transition:background .2s}.login-btn:hover{background:#ffffff38}.login-btn:disabled{opacity:.4;cursor:not-allowed}.login-error{color:#ff6b6b;background:#ff3b3033;border-radius:8px;padding:10px 14px;font-size:12px}.login-switch{text-align:center;color:#ffffff80;margin-top:20px;font-size:13px}.login-switch button{color:#ffffffd9;background:0 0;margin-left:4px;font-size:13px;font-weight:500}.login-switch button:hover{color:#fff}.menubar{background:var(--glass-bg);height:28px;-webkit-backdrop-filter:var(--backdrop-blur);border-bottom:.5px solid var(--border-color);z-index:10000;color:var(--text-primary);-webkit-app-region:drag;justify-content:space-between;align-items:center;padding:0 16px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.menubar-left{-webkit-app-region:no-drag;align-items:center;gap:4px;display:flex}.apple-btn{color:var(--text-primary);background:0 0;border-radius:4px;padding:3px 8px}.apple-btn:hover,.apple-btn.active{background:var(--accent-color);color:#fff}.menubar-menu{position:relative}.menubar-menu-btn{color:var(--text-primary);background:0 0;border-radius:4px;padding:3px 10px;font-size:12px}.menubar-menu-btn:hover,.menubar-menu-btn.active{background:var(--accent-color);color:#fff}.menu-dropdown{-webkit-backdrop-filter:blur(30px);z-index:10001;background:#fffffff2;border:.5px solid #0000001f;border-radius:8px;min-width:220px;padding:4px 0;font-size:13px;position:fixed;top:28px;left:auto;box-shadow:0 8px 30px #00000026}[data-theme=dark] .menu-dropdown{background:#2c2c2ef2;border-color:#ffffff1a}.menu-item.disabled{opacity:.4}.menu-item.disabled:hover{color:var(--text-primary);background:0 0}.menu-shortcut{color:var(--text-tertiary);margin-left:24px;font-size:11px}.menu-item:hover .menu-shortcut{color:#ffffffb3}.menubar-app-label{letter-spacing:-.2px;margin-left:8px;font-size:12px;font-weight:700}.menu-item{cursor:default;color:var(--text-primary);justify-content:space-between;align-items:center;padding:5px 12px;display:flex}.menu-item:hover{background:var(--accent-color);color:#fff}.menu-separator{background:var(--border-color);height:1px;margin:4px 8px}.menubar-right{-webkit-app-region:no-drag;align-items:center;gap:12px;display:flex}.menubar-clock{align-items:center;gap:8px;font-size:12px;display:flex}.menubar-date{color:var(--text-secondary)}.menubar-time{font-weight:500}.notif-bell{color:var(--text-secondary);background:0 0;border-radius:4px;padding:3px 6px;position:relative}.notif-bell:hover{background:var(--bg-hover);color:var(--text-primary)}.menubar-user{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;display:flex}.menubar-user:hover{background:var(--bg-hover);color:var(--text-primary)}.menubar-user svg{flex-shrink:0}.fullscreen-btn{color:var(--text-secondary);background:0 0;border-radius:4px;align-items:center;padding:3px 6px;display:flex}.fullscreen-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.notif-badge{background:var(--danger-color);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:-2px;right:-2px}.notif-panel{-webkit-backdrop-filter:blur(30px);z-index:10001;background:#fffffff2;border:.5px solid #0000001f;border-radius:10px;flex-direction:column;width:380px;max-height:520px;display:flex;position:fixed;top:30px;right:8px;overflow:hidden;box-shadow:0 8px 30px #00000026}[data-theme=dark] .notif-panel{background:#2c2c2ef2;border-color:#ffffff1a}.notif-panel-header{border-bottom:.5px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.notif-panel-header-actions{align-items:center;gap:6px;display:flex}.notif-panel-header-actions button{color:var(--accent-color);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:3px 8px;font-size:11px}.notif-panel-header-actions button:hover{background:var(--bg-hover)}.notif-categories{border-bottom:.5px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;gap:2px;padding:8px 12px;display:flex}.notif-cat{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:500;transition:all .15s}.notif-cat:hover{background:var(--bg-hover);color:var(--text-primary)}.notif-cat.active{background:var(--accent-color);color:#fff}.notif-list{flex:1;padding:4px 0;overflow-y:auto}.notif-empty{text-align:center;color:var(--text-tertiary);padding:40px 0;font-size:13px}.notif-item{cursor:default;gap:6px;padding:8px 12px;transition:background .15s;display:flex;position:relative}.notif-item:hover{background:var(--bg-hover)}.notif-item.unread{background:#0071e308}.notif-item-main{cursor:pointer;flex:1;gap:10px;min-width:0;display:flex}.notif-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.notif-dot.info{background:var(--accent-color)}.notif-dot.success{background:var(--success-color)}.notif-dot.warning{background:var(--warning-color)}.notif-dot.error{background:var(--danger-color)}.notif-content{flex-direction:column;flex:1;min-width:0;display:flex}.notif-title-row{align-items:center;gap:6px;display:flex}.notif-title{font-size:12px;font-weight:550}.notif-cat-tag{border-radius:4px;flex-shrink:0;padding:0 6px;font-size:9px;font-weight:500;line-height:16px}.notif-msg{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.notif-time{color:var(--text-tertiary);margin-top:2px;font-size:10px}.notif-dismiss{opacity:0;cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-self:flex-start;margin-top:2px;padding:4px;transition:all .15s}.notif-item:hover .notif-dismiss{opacity:1}.notif-dismiss:hover{background:var(--bg-hover);color:var(--danger-color)}.about-modal{background:var(--card-bg);width:320px;-webkit-backdrop-filter:var(--backdrop-blur);border:.5px solid var(--border-color);z-index:10002;text-align:center;border-radius:16px;flex-direction:column;align-items:center;padding:32px 28px 24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 60px #00000040}.about-modal-icon{margin-bottom:16px}.about-modal h3{color:var(--text-primary);margin-bottom:4px;font-size:18px;font-weight:600}.about-modal-desc{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.about-modal-info{border-top:.5px solid var(--border-color);width:100%;margin-bottom:20px;padding-top:12px}.about-modal-row{justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.about-modal-row span:first-child{color:var(--text-secondary)}.about-modal-row span:last-child{color:var(--text-primary);font-weight:500}.about-modal-btn{background:var(--accent-color);color:#fff;border-radius:8px;padding:8px 32px;font-size:13px;font-weight:500;transition:opacity .15s}.about-modal-btn:hover{opacity:.85}.dock-container{z-index:9999;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.dock{-webkit-backdrop-filter:blur(40px)saturate(200%);background:#ffffff59;border:.5px solid #fff3;border-radius:18px;align-items:center;gap:6px;min-height:64px;padding:8px 18px 6px;display:flex;box-shadow:0 4px 24px #0000001a}[data-theme=dark] .dock{background:#2c2c2e8c;border-color:#ffffff1a}.dock-item-wrapper{flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.dock-item-wrapper.drag-over{position:relative}.dock-item-wrapper.drag-over:after{content:"";background:var(--accent-color);opacity:.7;pointer-events:none;border-radius:2px;width:3px;height:28px;position:absolute;top:50%;left:-4px;transform:translateY(-50%)}.dock-item-wrapper:hover .dock-item{transform:scale(1.08)}.dock-item{cursor:pointer;border-radius:8px;flex-shrink:0;width:40px;height:40px;transition:transform .15s;overflow:hidden}.dock-item svg{width:100%;height:100%;display:block}.dock-indicator{background:0 0;border-radius:50%;width:4px;height:4px;transition:background .2s}.dock-indicator.running{background:#0000004d}[data-theme=dark] .dock-indicator.running{background:#ffffff80}.dock-label{color:var(--text-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:52px;font-size:10px;overflow:hidden}@keyframes dock-bounce{0%{transform:translateY(0)scale(1)}20%{transform:translateY(-8px)scale(1.08)}40%{transform:translateY(0)scale(1)}60%{transform:translateY(-4px)scale(1.04)}80%{transform:translateY(0)scale(1)}to{transform:translateY(0)scale(1)}}.dock-item.bouncing{animation:.6s ease-out dock-bounce}.menu-backdrop{z-index:10000;position:fixed;inset:0}.dock-context-menu{z-index:10003;background:var(--glass-bg);-webkit-backdrop-filter:blur(30px);border:.5px solid #0000001f;border-radius:8px;min-width:160px;padding:4px 0;font-size:13px;position:fixed;box-shadow:0 8px 30px #00000026}[data-theme=dark] .dock-context-menu{border-color:#ffffff1a}.dock-context-menu .menu-item{cursor:default;color:var(--text-primary);padding:5px 12px}.dock-context-menu .menu-item:hover{background:var(--accent-color);color:#fff}.dock-context-menu .menu-separator{background:var(--border-color);height:1px;margin:4px 8px}.mac-window{background:var(--glass-bg);-webkit-backdrop-filter:var(--backdrop-blur);will-change:left, top;border:.5px solid #00000026;border-radius:10px;flex-direction:column;transition:box-shadow .2s;display:flex;position:absolute;box-shadow:0 2px 20px #00000026,0 0 0 .5px #0000000f}.mac-window:hover{box-shadow:0 4px 32px #0003,0 0 0 .5px #00000014}[data-theme=dark] .mac-window{border-color:#ffffff1a;box-shadow:0 2px 20px #0006,0 0 0 .5px #ffffff0f}[data-theme=dark] .mac-window:hover{box-shadow:0 4px 32px #00000080,0 0 0 .5px #ffffff14}.window-titlebar{border-bottom:.5px solid var(--border-color);cursor:grab;-webkit-user-select:none;user-select:none;background:#00000005;align-items:center;height:36px;padding:0 10px;display:flex}.window-titlebar:active{cursor:grabbing}.window-controls{gap:7px;margin-right:10px;display:flex}.control{cursor:default;border:.5px solid #0000001f;border-radius:50%;width:12px;height:12px;padding:0;transition:filter .15s}.control:hover{filter:brightness(.9)}.control.close{background:#ff5f57}.control.minimize{background:#febc2e}.control.maximize{background:#28c840}.window-title{text-align:center;color:var(--text-secondary);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:550;overflow:hidden}.window-titlebar-spacer{flex-shrink:0;width:62px}.window-content{flex:1;min-height:0;overflow:auto}.maximized{border:none;border-radius:0}.resize-handle{z-index:999;position:absolute}.resize-n{cursor:n-resize;height:4px;top:0;left:4px;right:4px}.resize-s{cursor:s-resize;height:4px;bottom:0;left:4px;right:4px}.resize-e{cursor:e-resize;width:4px;top:4px;bottom:4px;right:0}.resize-w{cursor:w-resize;width:4px;top:4px;bottom:4px;left:0}.resize-ne{cursor:ne-resize;width:10px;height:10px;top:0;right:0}.resize-nw{cursor:nw-resize;width:10px;height:10px;top:0;left:0}.resize-se{cursor:se-resize;width:10px;height:10px;bottom:0;right:0}.resize-sw{cursor:sw-resize;width:10px;height:10px;bottom:0;left:0}.widget-container{background:var(--widget-bg,#ffffff59);-webkit-backdrop-filter:blur(40px)saturate(200%);border:1px solid var(--widget-border,#ffffffa6);z-index:50;border-radius:12px;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 8px 32px #0000002e,inset 0 0 0 .5px #ffffff80}.widget-container:hover{border-color:var(--widget-border-hover,#fffc);box-shadow:0 12px 40px #00000038,inset 0 0 0 .5px #fff9}.widget-titlebar{cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;min-height:28px;padding:6px 10px;display:flex}.widget-titlebar:active{cursor:grabbing}.widget-title{color:var(--text-secondary,#86868b);letter-spacing:.3px;text-transform:uppercase;font-size:11px;font-weight:600}.widget-close{width:18px;height:18px;color:var(--text-secondary,#86868b);cursor:pointer;opacity:0;background:#0000001a;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:9px;transition:opacity .15s;display:flex}.widget-container:hover .widget-close{opacity:1}.widget-close:hover{color:#fff;background:#ff3b30}.widget-content{flex:1;padding:4px 8px 8px;overflow:auto}.widget-resize{z-index:1;position:absolute}.widget-resize-n{cursor:n-resize;height:6px;top:-3px;left:8px;right:8px}.widget-resize-s{cursor:s-resize;height:6px;bottom:-3px;left:8px;right:8px}.widget-resize-e{cursor:e-resize;width:6px;top:8px;bottom:8px;right:-3px}.widget-resize-w{cursor:w-resize;width:6px;top:8px;bottom:8px;left:-3px}.widget-resize-ne{cursor:ne-resize;width:10px;height:10px;top:-3px;right:-3px}.widget-resize-nw{cursor:nw-resize;width:10px;height:10px;top:-3px;left:-3px}.widget-resize-se{cursor:se-resize;width:10px;height:10px;bottom:-3px;right:-3px}.widget-resize-sw{cursor:sw-resize;width:10px;height:10px;bottom:-3px;left:-3px}[data-theme=dark] .widget-container{--widget-bg:#2c2c2e66;--widget-border:#fff3;--widget-border-hover:#ffffff59;--text-secondary:#98989d}.calwidget{height:100%;color:var(--text-primary);-webkit-user-select:none;user-select:none;flex-direction:column;font-size:12px;display:flex}.calwidget-month{flex-shrink:0}.calwidget-month-header{justify-content:space-between;align-items:center;padding:0 4px 6px;display:flex}.calwidget-month-label{color:var(--text-primary);font-size:13px;font-weight:600}.calwidget-nav{cursor:pointer;width:22px;height:22px;color:var(--text-primary);background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;font-size:12px;display:flex}.calwidget-nav:hover{background:var(--bg-hover)}.calwidget-weekdays{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.calwidget-wd{color:var(--text-tertiary);padding:2px 0;font-size:10px}.calwidget-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.calwidget-day{cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;min-height:24px;padding:2px 0;display:flex;position:relative}.calwidget-day:hover{background:var(--bg-hover)}.calwidget-day.other{opacity:.25}.calwidget-day-num{text-align:center;width:20px;height:20px;color:var(--text-primary);border-radius:50%;font-size:11px;line-height:20px}.calwidget-day.today .calwidget-day-num{background:var(--accent-color);color:#fff;font-weight:600}.calwidget-dot{background:var(--accent-color);border-radius:50%;width:4px;height:4px;position:absolute;bottom:1px}.calwidget-upcoming{border-top:1px solid var(--border-color);flex-direction:column;flex:1;min-height:0;margin-top:8px;padding-top:6px;display:flex}.calwidget-section-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.calwidget-more-btn{color:var(--accent-color);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.calwidget-more-btn:hover{text-decoration:underline}.calwidget-empty{color:var(--text-tertiary);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.calwidget-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.calwidget-item{cursor:pointer;border-radius:6px;align-items:flex-start;gap:8px;padding:5px 6px;display:flex}.calwidget-item:hover{background:var(--bg-hover)}.calwidget-item-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:3px}.calwidget-item-info{flex-direction:column;flex:1;min-width:0;display:flex}.calwidget-item-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.calwidget-item-time{color:var(--text-tertiary);font-size:10px}.finder-app{height:100%;display:flex;position:relative}.finder-sidebar{border-right:1px solid var(--border-color);background:var(--bg-tertiary);flex-direction:column;width:220px;display:flex}.finder-sidebar-header{justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.finder-sidebar-header h3{text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.5px;font-size:10px;font-weight:700}.finder-sidebar-btn{color:var(--text-tertiary);background:0 0;border-radius:4px;padding:4px;transition:color .15s,background .15s}.finder-sidebar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.finder-new-folder{border-bottom:1px solid var(--border-color);padding:8px 12px}.finder-new-folder input{width:100%;margin-bottom:6px;padding:5px 8px;font-size:11px}.finder-new-folder-actions{gap:4px;display:flex}.finder-folder-list{flex:1;padding:3px 0;overflow-y:auto}.finder-folder-row{cursor:pointer;color:var(--text-primary);border-radius:0;align-items:center;gap:6px;margin:0;padding:4px 12px;font-size:12px;transition:background .12s;display:flex;position:relative}.finder-folder-row:hover{background:var(--bg-hover)}.finder-folder-row.active{color:var(--accent-color);background:#0071e314}.finder-folder-row.active:before{content:"";background:var(--accent-color);border-radius:0 2px 2px 0;width:2px;position:absolute;top:2px;bottom:2px;left:0}.finder-folder-row.drag-over{outline:2px dashed var(--accent-color);outline-offset:-2px;background:#0071e326}.finder-folder-row.drag-over .finder-folder-name{color:var(--accent-color)}[data-theme=dark] .finder-folder-row.drag-over{background:#2997ff26}.finder-folder-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.finder-folder-count{color:var(--text-tertiary);background:var(--bg-hover);text-align:center;border-radius:8px;min-width:18px;padding:0 5px;font-size:10px;line-height:16px}.finder-inline-rename{flex:1;min-width:0;padding:1px 4px;font-size:11px}.finder-project-heading{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px 3px;font-size:9px;font-weight:700}.finder-project-name{color:var(--accent-color);letter-spacing:.2px;padding:3px 12px 2px;font-size:10px;font-weight:600}.finder-nav-section{border-bottom:1px solid var(--border-color);padding:3px 0}.finder-nav-item{cursor:pointer;color:var(--text-primary);align-items:center;gap:6px;padding:4px 12px;font-size:12px;transition:background .12s;display:flex;position:relative}.finder-nav-item:hover{background:var(--bg-hover)}.finder-nav-item.active{color:var(--accent-color);background:#0071e314}.finder-nav-item.active:before{content:"";background:var(--accent-color);border-radius:0 2px 2px 0;width:2px;position:absolute;top:2px;bottom:2px;left:0}.finder-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.finder-drop-overlay{z-index:100;border:2px dashed var(--accent-color);border-radius:var(--radius-md);color:var(--accent-color);pointer-events:none;background:#0071e30a;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;font-weight:500;animation:.15s fadeIn;display:flex;position:absolute;inset:0}[data-theme=dark] .finder-drop-overlay{background:#2997ff0f}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.finder-upload-progress{background:var(--bg-active);color:var(--text-secondary);align-items:center;gap:8px;padding:5px 16px;font-size:11px;animation:.2s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.finder-upload-progress-bar{background:linear-gradient(90deg, var(--accent-color), #5ba6ff);border-radius:2px;flex:1;max-width:200px;height:3px;transition:width .3s}.finder-toolbar{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:36px;padding:5px 12px;display:flex}.finder-toolbar-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.finder-toolbar-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.finder-toolbar-separator{background:var(--border-color);flex-shrink:0;width:1px;height:16px}.finder-search{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;align-items:center;gap:5px;width:160px;padding:3px 8px;transition:width .2s,border-color .2s,box-shadow .2s;display:flex}.finder-search:focus-within{border-color:var(--accent-color);width:220px;box-shadow:0 0 0 2px #0071e31a}.finder-search input{min-width:0;box-shadow:none;background:0 0;border:none;outline:none;flex:1;padding:2px 0;font-size:12px}.finder-search input:focus{box-shadow:none}.finder-search-clear{color:var(--text-tertiary);opacity:.6;background:0 0;padding:2px;transition:opacity .15s}.finder-search-clear:hover{opacity:1;color:var(--text-primary)}.finder-breadcrumbs{color:var(--text-tertiary);align-items:center;gap:2px;min-width:0;font-size:12px;display:flex;overflow:hidden}.finder-breadcrumb-item{color:var(--text-tertiary);white-space:nowrap;background:0 0;border-radius:4px;padding:2px 6px;font-size:12px;transition:background .12s,color .12s}.finder-breadcrumb-item:hover{background:var(--bg-hover);color:var(--text-primary)}.finder-list-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:4px 16px;font-size:10px;font-weight:600;display:flex}.finder-list-header-name{flex:1}.finder-list-header-meta,.finder-list-header-date{text-align:right;flex-shrink:0;width:72px}.finder-files{flex:1;overflow-y:auto}.finder-file-row{border-bottom:.5px solid var(--border-color);cursor:default;align-items:center;gap:10px;padding:5px 16px;font-size:13px;transition:background .1s;display:flex}.finder-file-row:hover{background:var(--bg-hover)}.finder-file-row.selected{background:#0071e30d}[data-theme=dark] .finder-file-row.selected{background:#2997ff0f}.finder-select-btn{color:var(--text-tertiary);opacity:0;background:0 0;flex-shrink:0;align-items:center;padding:2px;transition:opacity .1s,color .1s;display:flex}.finder-file-row:hover .finder-select-btn,.finder-file-row.selected .finder-select-btn{opacity:1}.finder-select-btn:hover{color:var(--text-primary)}.finder-file-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.finder-file-name{text-overflow:ellipsis;white-space:nowrap;cursor:default;flex:1;overflow:hidden}.finder-file-name:hover{color:var(--accent-color)}.finder-file-meta,.finder-file-date{color:var(--text-tertiary);text-align:right;flex-shrink:0;width:72px;font-size:11px}.finder-file-actions{opacity:0;flex-shrink:0;gap:1px;transition:opacity .1s;display:flex}.finder-file-row:hover .finder-file-actions{opacity:1}.finder-file-actions button{color:var(--text-tertiary);background:0 0;border-radius:4px;padding:3px;transition:background .12s,color .12s;display:flex}.finder-file-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.finder-select-count{color:var(--accent-color);font-size:11px;font-weight:500}.finder-empty{color:var(--text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px;font-size:13px;display:flex}.finder-empty-icon{opacity:.35;margin-bottom:4px}.finder-empty-hint{color:var(--text-tertiary);text-align:center;padding:16px;font-size:11px;line-height:1.5}.finder-storage-bar{border-top:1px solid var(--border-color);background:var(--bg-tertiary);padding:8px 12px}.finder-storage-bar-track{background:var(--border-color);border-radius:2px;height:3px;margin-bottom:4px;overflow:hidden}.finder-storage-bar-fill{background:linear-gradient(90deg, var(--accent-color), #5ba6ff);border-radius:2px;height:100%;transition:width .5s}.finder-storage-bar-fill.warning{background:linear-gradient(90deg, var(--warning-color), #f59e0b)}.finder-storage-bar-fill.danger{background:linear-gradient(90deg, var(--danger-color), #ef4444)}.finder-storage-label{color:var(--text-tertiary);justify-content:space-between;font-size:10px;display:flex}.finder-preview-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;min-height:44px;padding:12px 16px;display:flex}.finder-preview-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);flex:1;font-size:13px;font-weight:600;overflow:hidden}.finder-preview-actions{flex-shrink:0;gap:4px;display:flex}.finder-preview-actions button{color:var(--text-secondary);background:0 0;border-radius:6px;padding:5px;transition:background .12s,color .12s;display:flex}.finder-preview-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.finder-preview-body{background:var(--bg-primary);flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.finder-preview-image-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:auto}.finder-preview-image{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%;transition:transform .2s}.finder-preview-image:hover{filter:brightness(.98)}.finder-preview-video{max-width:100%;max-height:100%}.finder-preview-pdf{border:none;width:100%;height:100%}.finder-preview-nav{color:var(--text-secondary);background:0 0;border-radius:6px;padding:4px;transition:background .12s,color .12s;display:flex}.finder-preview-nav:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.finder-preview-nav:disabled{opacity:.25;cursor:default}.finder-preview-counter{color:var(--text-tertiary);white-space:nowrap;min-width:30px;margin-right:4px;font-size:11px}.finder-preview-audio{width:80%}.preview-app{flex-direction:column;height:100%;display:flex}.preview-app-body{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:auto}.preview-unsupported{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.finder-preview-text{white-space:pre-wrap;word-wrap:break-word;width:100%;height:100%;color:var(--text-primary);background:var(--bg-secondary);margin:0;padding:20px;font-family:SF Mono,Fira Code,Menlo,monospace;font-size:13px;line-height:1.6;overflow:auto}.finder-preview-loading{color:var(--text-tertiary);font-size:14px}.finder-context-menu{z-index:10001;background:var(--bg-secondary);border:.5px solid var(--border-color);-webkit-backdrop-filter:blur(20px);transform-origin:top;border-radius:10px;min-width:160px;padding:4px 0;animation:.1s menuIn;position:fixed;box-shadow:0 8px 30px #0003,0 0 0 .5px #0000000f}@keyframes menuIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.finder-context-menu button{width:100%;color:var(--text-primary);text-align:left;background:0 0;align-items:center;gap:8px;padding:6px 14px;font-size:12px;transition:background 80ms;display:flex}.finder-context-menu button:hover{background:var(--bg-hover)}.finder-context-menu button.danger{color:var(--danger-color)}.finder-context-menu button.danger:hover{background:#ff3b3014}.finder-context-divider{background:var(--border-color);height:.5px;margin:4px 8px}.finder-rename-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);background:#0000004d;justify-content:center;align-items:center;animation:.15s overlayIn;display:flex;position:fixed;inset:0}.finder-rename-dialog,.finder-move-dialog,.finder-versions-dialog{background:var(--bg-secondary);border-radius:12px;min-width:320px;max-width:90vw;padding:20px;animation:.2s modalIn;box-shadow:0 16px 48px #00000040,0 0 0 .5px #00000014}.finder-rename-dialog h4,.finder-move-dialog h4,.finder-versions-dialog h4{color:var(--text-primary);margin-bottom:12px;font-size:13px;font-weight:600}.finder-rename-dialog input{width:100%;margin-bottom:12px}.dialog-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.finder-move-folder-list{border:1px solid var(--border-color);border-radius:8px;max-height:200px;margin-bottom:12px;overflow-y:auto}.finder-move-folder-item{cursor:pointer;align-items:center;gap:8px;padding:7px 12px;font-size:13px;transition:background .1s;display:flex}.finder-move-folder-item:hover{background:var(--bg-hover)}.finder-move-folder-item.active{color:var(--accent-color);background:#0071e314}.finder-versions-list{max-height:250px;margin-bottom:12px;overflow-y:auto}.finder-version-item{border-bottom:.5px solid var(--border-color);align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.finder-version-item:last-child{border-bottom:none}.finder-version-num{color:var(--accent-color);min-width:30px;font-size:12px;font-weight:600}.finder-version-date{color:var(--text-secondary);font-size:12px}.finder-tag-pill{white-space:nowrap;border-radius:10px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:500;display:inline-flex}.finder-action-badge{background:var(--bg-hover);color:var(--text-secondary);letter-spacing:.2px;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:500;display:inline-block}.finder-editor-area{resize:none;background:var(--bg-primary);width:100%;color:var(--text-primary);border:none;outline:none;flex:1;padding:16px;font-family:SF Mono,Fira Code,Menlo,monospace;font-size:13px;line-height:1.6}.finder-color-dot{cursor:pointer;box-sizing:border-box;border-radius:50%;width:16px;height:16px;transition:transform .12s,box-shadow .12s}.finder-color-dot:hover{transform:scale(1.2)}.finder-color-dot.active{box-shadow:0 0 0 2px var(--bg-secondary), 0 0 0 3px var(--text-primary)}.finder-access-toggle{gap:8px;display:flex}.finder-access-toggle button{flex:1}.finder-viewer-list{border:1px solid var(--border-color);border-radius:8px;max-height:220px;margin-bottom:12px;overflow-y:auto}.finder-viewer-item{cursor:pointer;align-items:center;gap:8px;padding:7px 12px;font-size:13px;transition:background .1s;display:flex}.finder-viewer-item:hover{background:var(--bg-hover)}.finder-viewer-item.active{color:var(--accent-color);background:#0071e314}.finder-viewer-checkbox{border:1px solid var(--border-color);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.btn-primary{background:var(--accent-color);color:#fff;border:none;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.5;cursor:default;transform:none}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;transition:background .15s;display:inline-flex}.btn-secondary:hover{background:var(--bg-hover)}.btn-outline{color:var(--text-primary);border:1px solid var(--border-color);background:0 0;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;transition:background .15s;display:inline-flex}.btn-danger{background:var(--danger-color);color:#fff;border:none;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s,transform .1s;display:inline-flex}.btn-danger:active{transform:scale(.97)}.dashboard-app{background:#060b18;flex-direction:column;height:100%;padding:16px 20px 12px;display:flex;position:relative;overflow:hidden}.dashboard-app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(800px 400px at 10% 5%,#3b82f612 0%,#0000 70%),radial-gradient(500px 500px at 85% 10%,#8b5cf60d 0%,#0000 70%),radial-gradient(600px 300px at 50% 95%,#10b9810a 0%,#0000 70%);position:absolute;inset:0}.dv-scanline{pointer-events:none;z-index:999;background:linear-gradient(90deg,#0000,#3b82f614,#0000);height:2px;animation:8s ease-in-out infinite dv-scan;position:absolute;top:0;left:0;right:0}@keyframes dv-scan{0%,to{opacity:0;top:0}10%{opacity:1}90%{opacity:1}50%{top:100%}}.dv-top-line{z-index:1;background:linear-gradient(90deg,#0000,#3b82f64d,#8b5cf64d,#0000);height:1px;position:absolute;top:0;left:60px;right:60px}.dv-corner{z-index:1;pointer-events:none;opacity:.6;position:absolute}.dv-corner-tl{top:0;left:0}.dv-corner-tr{top:0;right:0;transform:scaleX(-1)}.dv-corner-bl{bottom:0;left:0;transform:scaleY(-1)}.dv-corner-br{bottom:0;right:0;transform:scale(-1)}.dv-loading-full{color:#ffffff4d;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;font-size:13px;display:flex}.dv-loader{border:2px solid #ffffff0f;border-top-color:#3b82f6;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite dv-spin}@keyframes dv-spin{to{transform:rotate(360deg)}}.dv-header{z-index:1;flex-shrink:0;justify-content:space-between;align-items:flex-end;margin-bottom:14px;padding:0 2px;display:flex;position:relative}.dv-header-left{align-items:center;gap:12px;display:flex}.dv-logo-mark{color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 0 20px #3b82f64d}.dv-title-main{color:#fff;letter-spacing:1px;background:linear-gradient(90deg,#fff,#ffffffb3);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.dv-title-sub{color:#ffffff40;letter-spacing:2px;text-transform:uppercase;margin-left:10px;font-size:10px}.dv-clock{align-items:flex-end;gap:10px;display:flex}.dv-clock-date{color:#fff6;letter-spacing:.5px;font-size:12px}.dv-clock-time{color:#fff;font-variant-numeric:tabular-nums;letter-spacing:1px;text-shadow:0 0 20px #3b82f64d;font-size:22px;font-weight:700}.dv-kpi-row{z-index:1;flex-shrink:0;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px;display:grid;position:relative}.dv-kpi-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:12px;padding:14px 14px 14px 16px;transition:border-color .3s,transform .2s;display:flex;position:relative;overflow:hidden}.dv-kpi-card:hover{border-color:var(--kpi-color,#ffffff26);transform:translateY(-2px)}.dv-kpi-glow{opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.dv-kpi-card:hover .dv-kpi-glow{opacity:1}.dv-kpi-corner{opacity:.4;border-color:#ffffff14;border-top-style:solid;border-top-width:2px;border-right-style:solid;border-right-width:2px;border-radius:0 2px 0 0;width:20px;height:20px;position:absolute;top:-1px;right:-1px}.dv-kpi-icon-wrap{z-index:1;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;position:relative}.dv-kpi-body{z-index:1;position:relative}.dv-kpi-value{color:#fff;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;line-height:1}.dv-kpi-label{color:#fff6;letter-spacing:.5px;margin-top:2px;font-size:10px}.dv-chart-grid{z-index:1;flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr;gap:10px;min-height:0;display:grid;position:relative}.dv-p1{grid-area:1/1}.dv-p2{grid-area:1/2/3}.dv-p3{grid-area:1/3}.dv-p4{grid-area:2/1}.dv-p5{grid-area:2/3}.dv-panel{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(135deg,#ffffff05,#ffffff01);border:1px solid #ffffff0d;border-radius:10px;flex-direction:column;padding:14px;transition:border-color .3s;display:flex;overflow:hidden}.dv-panel:hover{border-color:#ffffff1a}.dv-panel-header{flex-shrink:0;align-items:center;gap:8px;margin-bottom:10px;display:flex}.dv-panel-indicator{border-radius:2px;flex-shrink:0;width:3px;height:14px}.dv-panel-title{color:#ffffff80;text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:600}.dv-panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.dv-chart-layout{flex:1;align-items:center;gap:16px;display:flex}.dv-legend{flex-direction:column;gap:8px;display:flex}.dv-legend-item{align-items:center;gap:8px;font-size:11px;display:flex}.dv-legend-dot{border-radius:2px;flex-shrink:0;width:7px;height:7px}.dv-legend-label{color:#ffffffa6;min-width:36px}.dv-legend-val{font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.dv-prog-list{flex-direction:column;flex:1;justify-content:center;gap:8px;display:flex}.dv-prog-item{border-radius:6px;align-items:center;gap:8px;padding:4px 6px;transition:background .2s;display:flex}.dv-prog-item:hover{background:#ffffff08}.dv-prog-rank{font-variant-numeric:tabular-nums;flex-shrink:0;width:22px;font-size:11px;font-weight:700}.dv-prog-name{color:#fff9;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:80px;font-size:11px;overflow:hidden}.dv-prog-bar-bg{background:#ffffff0d;border-radius:3px;flex:1;height:5px;overflow:hidden}.dv-prog-bar-fill{border-radius:3px;height:100%;transition:width 1.5s cubic-bezier(.4,0,.2,1)}.dv-prog-pct{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:34px;font-size:11px;font-weight:600}.dv-gauge-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.dv-gauge-stats{align-items:center;gap:14px;display:flex}.dv-gauge-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.dv-gauge-num{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.dv-gauge-lbl{color:#ffffff59;font-size:10px}.dv-gauge-divider{background:#ffffff0f;width:1px;height:24px}.dv-trend-chart{flex:1;align-items:stretch;gap:0;display:flex}.dv-trend-yaxis{flex-direction:column;flex-shrink:0;justify-content:space-between;padding:4px 6px 22px 0;display:flex}.dv-trend-yval{color:#fff3;font-variant-numeric:tabular-nums;font-size:9px}.dv-trend-bars{flex:1;align-items:flex-end;gap:6px;padding:0;display:flex}.dv-trend-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.dv-trend-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;width:100%;display:flex}.dv-trend-bar{border-radius:3px 3px 0 0;width:100%;max-width:32px;min-height:2px;transition:height 1.2s cubic-bezier(.4,0,.2,1)}.dv-trend-val{color:#fff9;font-variant-numeric:tabular-nums;font-size:10px;font-weight:600}.dv-trend-label{color:#ffffff4d;margin-top:5px;font-size:10px}.dv-trend-fulllabel{color:#ffffff26;font-size:8px}.dv-activity-list{scrollbar-width:thin;scrollbar-color:#ffffff0d transparent;flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.dv-activity-item{border-radius:4px;align-items:flex-start;gap:8px;padding:5px 4px;transition:background .2s;display:flex}.dv-activity-item:hover{background:#ffffff05}.dv-activity-recent{background:#3b82f60a}.dv-activity-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:4px}.dv-activity-text{flex:1;min-width:0}.dv-activity-summary{color:#ffffffb3;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.dv-activity-meta{color:#ffffff40;gap:8px;margin-top:1px;font-size:9px;display:flex}.dv-activity-project{color:#3b82f680}.dv-ticker{z-index:1;background:#ffffff05;border:1px solid #ffffff0a;border-radius:6px;flex-shrink:0;align-items:center;gap:10px;height:28px;margin-top:10px;padding:0 10px;display:flex;position:relative;overflow:hidden}.dv-ticker-icon{color:#3b82f699;flex-shrink:0;font-size:14px;animation:2s ease-in-out infinite dv-pulse}@keyframes dv-pulse{0%,to{opacity:.4}50%{opacity:1}}.dv-ticker-track{flex-direction:column;transition:transform .4s;display:flex}.dv-ticker-item{white-space:nowrap;align-items:center;gap:16px;height:28px;display:flex;overflow:hidden}.dv-ticker-text{color:#ffffff8c;text-overflow:ellipsis;font-size:12px;overflow:hidden}.dv-ticker-meta{color:#ffffff40;flex-shrink:0;gap:6px;font-size:10px;display:flex}.dv-ticker-project{color:#3b82f673}.dv-empty{color:#fff3;flex:1;justify-content:center;align-items:center;font-size:11px;display:flex}@media (width<=1100px){.dv-kpi-row{grid-template-columns:repeat(3,1fr)}.dv-chart-grid{grid-template-rows:auto auto auto;grid-template-columns:1fr 1fr;overflow-y:auto}.dv-p1{grid-area:1/1}.dv-p3{grid-area:1/2}.dv-p2{grid-area:2/1/auto/3}.dv-p4{grid-area:3/1}.dv-p5{grid-area:3/2}}@media (width<=700px){.dv-kpi-row{grid-template-columns:repeat(2,1fr)}.dv-chart-grid{grid-template-columns:1fr}.dv-p1,.dv-p2,.dv-p3,.dv-p4,.dv-p5{grid-column:1}.dv-hide-small{display:none}}.client-app{height:100%;display:flex}.client-list-panel{border-right:1px solid var(--border-color);background:var(--bg-tertiary);flex-direction:column;flex-shrink:0;width:280px;display:flex}.client-list-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.client-list-header h3{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.3px;margin:0;font-size:11px;font-weight:700}.client-add-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px}.client-add-btn:hover{background:var(--bg-hover)}.client-search{border-bottom:1px solid var(--border-color);color:var(--text-tertiary);align-items:center;gap:6px;padding:8px 12px;display:flex}.client-search input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:12px}.client-list{flex:1;overflow-y:auto}.client-row{cursor:pointer;border-bottom:.5px solid var(--border-color);align-items:center;gap:10px;padding:10px 12px;transition:background .1s;display:flex}.client-row:hover{background:var(--bg-hover)}.client-row.active{background:#0071e314}.client-avatar{background:var(--accent-color,#0071e3);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex}.client-row-info{flex-direction:column;min-width:0;display:flex}.client-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.client-row-count{color:var(--text-tertiary);font-size:11px}.client-list-empty{text-align:center;color:var(--text-tertiary);padding:24px 16px;font-size:12px}.client-detail{flex:1;overflow-y:auto}.client-detail-content{padding:24px 28px}.client-detail-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.client-detail-title{color:var(--accent-color);align-items:center;gap:10px;display:flex}.client-detail-title h2{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.client-type-badge{color:#fff;white-space:nowrap;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.client-edit-title-input{border:1px solid var(--accent-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;width:100%;padding:4px 8px;font-size:20px;font-weight:600}.client-detail-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.client-action-btn{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:flex}.client-action-btn:hover{background:var(--bg-hover)}.client-action-btn.save{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.client-action-btn.danger{color:#ff3b30;border-color:#0000}.client-action-btn.danger:hover{background:#ff3b3014}.client-detail-body{border-bottom:1px solid var(--border-color);margin-bottom:24px;padding-bottom:24px}.client-detail-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.client-field{flex-direction:column;gap:4px;display:flex}.client-notes{grid-column:span 2}.client-field-label{color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.client-field-value{font-size:14px}.client-field-value input,.client-field-value textarea,.client-field-value select{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:13px}.client-field-value textarea{resize:vertical}.field-empty{color:var(--text-tertiary);font-size:13px}.client-projects-section{margin-bottom:24px}.client-projects-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.client-projects-header h4{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.3px;margin:0;font-size:13px;font-weight:600}.client-projects-actions{gap:6px;display:flex}.client-projects-empty{text-align:center;color:var(--text-tertiary);border:1px dashed var(--border-color);border-radius:8px;padding:20px;font-size:12px}.client-projects-list{flex-direction:column;gap:2px;display:flex}.client-project-row{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;transition:background .1s;display:flex}.client-project-row:hover{background:var(--bg-hover)}.client-project-name{flex:1;font-size:13px;font-weight:500}.client-phase-badge{color:#fff;white-space:nowrap;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.client-project-date{color:var(--text-tertiary);white-space:nowrap;font-size:11px}.client-detail-footer{padding-top:12px}.client-meta{color:var(--text-tertiary);font-size:12px}.client-empty{height:100%;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.client-empty button{margin-top:4px}.client-form-modal{background:var(--bg-primary,#fff);border-radius:14px;flex-direction:column;gap:10px;width:420px;padding:24px;display:flex}.client-form-modal h3{margin:0 0 4px;font-size:17px;font-weight:600}.client-form-modal input,.client-form-modal select,.client-form-modal textarea{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-secondary,#f5f5f7);color:var(--text-primary,#1d1d1f);border-radius:8px;padding:8px 12px;font-size:13px}.client-form-modal textarea{resize:vertical}.btn-primary{background:var(--accent-color,#0071e3);color:#fff;cursor:pointer;border:none;border-radius:6px}.btn-secondary{background:var(--bg-hover,#e5e5ea);color:var(--text-primary);cursor:pointer;border:none;border-radius:6px}.btn-outline{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:6px}.btn-outline:hover{background:var(--bg-hover)}.btn-sm{padding:4px 12px;font-size:12px}.btn-xs{padding:3px 10px;font-size:11px}.region-cascade{flex-wrap:wrap;gap:6px;display:flex}.region-cascade select,.region-cascade input{flex:1;min-width:0}.projects-app{color:#1a1a2e;background:#f0f2f6;height:100%;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,sans-serif;display:flex;overflow:hidden}.projects-loading{color:#8e8ea0;justify-content:center;align-items:center;height:100%;font-size:13px;display:flex}.projects-sidebar{background:#fff;border-right:1px solid #0000000f;flex-direction:column;gap:2px;width:220px;min-width:220px;padding:14px 10px;display:flex}.sidebar-logo{border-bottom:1px solid #0000000d;align-items:center;gap:10px;margin-bottom:8px;padding:6px 10px 14px;display:flex}.sidebar-logo-icon{color:#fff;background:linear-gradient(135deg,#4f6ef7,#6366f1);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.sidebar-logo-text{color:#1a1a2e;letter-spacing:-.01em;font-size:14px;font-weight:650}.sidebar-header{color:#8e8ea0;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px 5px;font-size:10px;font-weight:650}.sidebar-item{cursor:pointer;color:#4a4a5a;border-radius:8px;align-items:center;gap:9px;padding:8px 12px;font-size:13px;font-weight:460;transition:all .15s;display:flex;position:relative}.sidebar-item:hover{color:#1a1a2e;background:#f0f2f6}.sidebar-item.active{color:#4f6ef7;background:#f0f3ff;font-weight:550}.sidebar-item.active .sidebar-count{color:#4f6ef7}.sidebar-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:transform .15s}.sidebar-item.active .sidebar-dot{transform:scale(1.15)}.sidebar-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-count{color:#8e8ea0;text-align:right;background:#0000000a;border-radius:10px;min-width:18px;padding:1px 7px;font-size:11px;font-weight:550}.sidebar-item.active .sidebar-count{background:#4f6ef71a}.sidebar-spacer{flex:1}.sidebar-add-btn{color:#fff;cursor:pointer;text-align:center;letter-spacing:.01em;background:linear-gradient(135deg,#4f6ef7,#6366f1);border:none;border-radius:10px;margin:8px 6px 4px;padding:10px;font-size:13px;font-weight:550;transition:opacity .2s,transform .15s;box-shadow:0 2px 8px #4f6ef740}.sidebar-add-btn:hover{opacity:.92;transform:translateY(-.5px)}.sidebar-add-btn:active{transform:translateY(0)}.projects-content{flex-direction:column;flex:1;padding:20px 24px;display:flex;overflow:hidden}.content-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.content-title{color:#1a1a2e;letter-spacing:-.02em;margin:0;font-size:20px;font-weight:680}.content-actions{align-items:center;gap:10px;display:flex}.content-search{position:relative}.content-search input{color:#1a1a2e;background:#fff;border:1.5px solid #e2e6ed;border-radius:9px;outline:none;min-width:220px;padding:7px 14px 7px 34px;font-size:12px;transition:border-color .2s,box-shadow .2s}.content-search input:focus{border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71a}.content-search:before{content:"";opacity:.6;background:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") 50% no-repeat;width:14px;height:14px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.projects-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:14px;padding:4px 0 12px;display:grid;overflow-y:auto}.project-card{cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:12px;flex-direction:column;padding:18px;transition:all .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 4px #0000000a}.project-card:before{content:"";opacity:0;background:#4f6ef7;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:#d0d7e3;transform:translateY(-2px);box-shadow:0 4px 16px #00000012}.project-card:hover:before{opacity:1}.project-card-phase{color:#fff;border-radius:20px;align-self:flex-start;align-items:center;gap:5px;margin-bottom:10px;padding:3px 10px;font-size:10px;font-weight:600;display:inline-flex}.project-card-title{color:#1a1a2e;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.project-card-meta{flex-direction:column;gap:4px;margin-top:auto;display:flex}.project-card-meta-item{color:#8e8ea0;align-items:center;gap:5px;font-size:11px;display:flex}.project-card-meta-item svg{opacity:.6;flex-shrink:0;width:12px;height:12px}.project-card-client{color:#4f6ef7;font-size:11px;font-weight:500}.project-card-budget{color:#10b981;font-size:12px;font-weight:600}.projects-empty{color:#9ca3af;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.dashboard-view{flex-direction:column;gap:20px;height:100%;display:flex;overflow:hidden}.dashboard-stats{flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.dash-stat-card{background:#fff;border:1.5px solid #edf0f5;border-radius:12px;align-items:center;gap:14px;padding:18px 20px;transition:box-shadow .2s,transform .15s;display:flex;box-shadow:0 1px 4px #0000000a}.dash-stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000012}.dash-stat-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.dash-stat-body{flex-direction:column;gap:2px;display:flex}.dash-stat-value{color:#1a1a2e;letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1.1}.dash-stat-label{color:#8e8ea0;font-size:11px;font-weight:480}.dash-stat-sub{color:#10b981;font-size:10px;font-weight:500}.dashboard-two-col{flex:1;grid-template-columns:1fr 1fr;gap:16px;min-height:0;display:grid}.dash-section{background:#fff;border:1.5px solid #edf0f5;border-radius:12px;flex-direction:column;min-height:0;padding:18px;display:flex;box-shadow:0 1px 4px #0000000a}.dash-section-title{color:#1a1a2e;flex-shrink:0;margin:0 0 12px;font-size:13px;font-weight:630}.dash-project-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.dash-project-budget{color:#10b981;text-align:right;flex-shrink:0;min-width:70px;font-size:11px;font-weight:570}.dash-activity-list{flex-direction:column;flex:1;gap:0;display:flex;overflow-y:auto}.dash-activity-item{border-bottom:1px solid #0000000a;justify-content:space-between;gap:8px;padding:7px 6px;font-size:12px;line-height:1.5;display:flex}.dash-activity-text{text-overflow:ellipsis;white-space:nowrap;color:#4a4a5a;flex:1;min-width:0;overflow:hidden}.dash-activity-time{color:#9ca3af;flex-shrink:0;padding-top:2px;font-size:10px}.project-folder{flex-direction:column;flex:1;gap:20px;display:flex;overflow:visible}.folder-header{justify-content:space-between;align-items:center;display:flex}.folder-header-actions{align-items:center;gap:8px;display:flex}.folder-header-btn{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-primary,#fff);color:var(--text-primary,#1d1d1f);cursor:pointer;white-space:nowrap;border-radius:6px;padding:4px 12px;font-size:12px;transition:all .1s}.folder-header-btn:hover{background:var(--bg-secondary,#f5f5f7);border-color:var(--accent-color,#0071e3)}.folder-header-sep{background:var(--border-color,#d2d2d7);width:1px;height:20px;margin:0 4px}.folder-back{color:var(--accent-color,#0071e3);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:500}.folder-back:hover{text-decoration:underline}.folder-edit-btn,.folder-delete-btn{cursor:pointer;border:1px solid var(--border-color,#d2d2d7);background:var(--bg-primary,#fff);color:var(--text-primary,#1d1d1f);border-radius:6px;padding:4px 14px;font-size:12px}.folder-delete-btn{color:#ff3b30;border-color:#ff3b30}.folder-edit-btn:hover{background:var(--accent-color,#0071e3);color:#fff;border-color:var(--accent-color,#0071e3)}.folder-delete-btn:hover{color:#fff;background:#ff3b30}.folder-top{border:1.5px solid var(--border-color,#d2d2d7);background:var(--bg-secondary,#f5f5f7);border-radius:14px;align-items:flex-start;gap:16px;padding:16px;display:flex}.folder-top-icon{flex-shrink:0;padding-top:4px}.folder-top-info{flex:1;min-width:0}.folder-name{margin:0 0 8px;font-size:20px;font-weight:700}.folder-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.phase-dot-label{color:#fff;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.folder-type-tag{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#d2d2d7);color:var(--text-secondary,#86868b);border-radius:10px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-block}.folder-meta-item{color:var(--text-secondary,#86868b);font-size:12px}.folder-meta{color:var(--text-secondary,#86868b);gap:16px;margin-bottom:4px;font-size:12px;display:flex}.folder-desc{color:var(--text-secondary,#86868b);margin:4px 0 0;font-size:13px;line-height:1.5}.folder-sections{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.folder-section-tile{border:1.5px solid var(--border-color,#d2d2d7);cursor:pointer;background:var(--bg-primary,#fff);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;transition:all .15s;display:flex}.folder-section-tile:hover{border-color:var(--accent-color,#0071e3);transform:translateY(-2px);box-shadow:0 2px 12px #0000000f}.folder-section-tile div{flex-direction:column;gap:2px;display:flex}.folder-section-tile strong{color:var(--text-primary,#1d1d1f);font-size:14px;font-weight:600}.folder-section-tile span{color:var(--text-secondary,#86868b);font-size:12px}.folder-phase-bar{border:1.5px solid var(--border-color,#d2d2d7);background:var(--bg-secondary,#f5f5f7);border-radius:14px;align-items:center;gap:12px;padding:12px 16px;display:flex}.folder-phase-label{color:var(--text-secondary,#86868b);white-space:nowrap;font-size:12px;font-weight:600}.folder-phase-steps{flex:1;gap:0;display:flex}.folder-phase-step{cursor:pointer;color:var(--text-secondary,#86868b);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:4px 8px;font-size:11px;transition:all .12s;display:flex;position:relative}.folder-phase-step:hover{background:var(--bg-primary,#fff)}.folder-phase-step.current{color:var(--dot-color,#007aff);font-weight:600}.folder-phase-step.done{color:var(--text-primary,#1d1d1f);opacity:.7}.folder-phase-dot{background:var(--border-color,#d2d2d7);border-radius:50%;flex-shrink:0;width:10px;height:10px}.folder-phase-step.current .folder-phase-dot{background:var(--dot-color,#007aff);box-shadow:0 0 0 2px color-mix(in srgb, var(--dot-color,#007aff) 25%, transparent)}.folder-phase-step.done .folder-phase-dot{background:var(--dot-color,#888)}.form-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20000;background:#00000059;justify-content:center;align-items:center;animation:.2s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.project-form{background:#fff;border-radius:16px;flex-direction:column;width:620px;max-height:85vh;animation:.25s form-slide-in;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000002e,0 8px 24px #0000000f}@keyframes form-slide-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.project-form-header{border-bottom:1px solid #0000000f;flex-shrink:0;align-items:center;gap:14px;padding:22px 28px 16px;display:flex}.project-form-header-icon{color:#fff;background:linear-gradient(135deg,#4f6ef7,#6366f1);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.project-form-header-text h3{color:#1a1a2e;letter-spacing:-.01em;margin:0;font-size:17px;font-weight:650}.project-form-header-text p{color:#8e8ea0;margin:2px 0 0;font-size:12px}.project-form-body{flex-direction:column;flex:1;gap:16px;padding:20px 28px 24px;display:flex;overflow-y:auto}.form-section-title{color:#8e8ea0;text-transform:uppercase;letter-spacing:.04em;margin-bottom:-8px;padding:0;font-size:11px;font-weight:650}.form-row{gap:14px;display:flex}.form-row-3{grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;display:grid}.form-field{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.form-field-small{flex:0 0 100px}.form-label{color:#6b7280;margin:0;font-size:11px;font-weight:550}.project-form input:not([type]),.project-form input[type=text],.project-form input[type=number],.project-form input[type=date],.project-form select,.project-form textarea{color:#1a1a2e;background:#f8f9fc;border:1.5px solid #e2e6ed;border-radius:9px;outline:none;padding:9px 13px;font-family:inherit;font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.project-form input:not([type]):focus,.project-form input[type=text]:focus,.project-form input[type=number]:focus,.project-form input[type=date]:focus,.project-form select:focus,.project-form textarea:focus{background:#fff;border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71a}.project-form textarea{resize:vertical;line-height:1.6}.project-form select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%239CA3AF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.project-form input[type=date]{appearance:none}.form-buttons{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.form-buttons button{cursor:pointer;border:none;border-radius:9px;padding:8px 22px;font-size:13px;font-weight:540;transition:opacity .2s,transform .15s}.form-buttons button:active{transform:translateY(0)}.form-buttons button:first-child:hover{background:#e5e7eb}.form-buttons button:last-child:hover:not(:disabled){opacity:.9;transform:translateY(-.5px)}.form-buttons button:disabled{opacity:.45;cursor:default}.phase-chips{gap:8px;display:flex}.phase-chip{cursor:pointer;color:#6b7280;background:#f8f9fc;border:1.5px solid #e2e6ed;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:500;transition:all .18s;display:flex}.phase-chip:hover{background:#fff;border-color:#d0d7e3}.phase-chip.is-active{color:#4f6ef7;background:#f0f3ff;border-color:#4f6ef7;font-weight:600}.phase-chip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.confirm-dialog{background:#fff;border-radius:14px;flex-direction:column;gap:6px;width:400px;padding:24px;animation:.25s form-slide-in;display:flex;box-shadow:0 20px 60px #0000002e}.exec-tab-view{flex-direction:column;height:100%;display:flex}.exec-sub-tabs{border-bottom:1px solid #edf0f5;flex-shrink:0;gap:4px;padding:0 0 12px;display:flex}.exec-sub-tab{color:#8e8ea0;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 16px;font-size:11px;font-weight:520;transition:all .15s}.exec-sub-tab:hover{color:#1a1a2e;background:#f0f2f6}.exec-sub-tab.active{color:#fff;background:#4f6ef7}.exec-tab-content{flex:1;overflow:auto}.priority-low{color:#fff;background:#8e8e93}.priority-medium{color:#fff;background:#ff9500}.priority-high,.priority-urgent{color:#fff;background:#ff3b30}.status-open{color:#fff;background:#007aff}.status-in_progress{color:#fff;background:#ff9500}.status-resolved{color:#fff;background:#34c759}.status-closed{color:#fff;background:#8e8e93}.status-sent{color:#fff;background:#007aff}.status-acknowledged{color:#fff;background:#ff9500}.status-completed{color:#fff;background:#34c759}.status-draft{color:#fff;background:#8e8e93}.status-signed{color:#fff;background:#34c759}.status-terminated{color:#fff;background:#ff3b30}.status-inquiring{color:#fff;background:#8e8e93}.status-ordered{color:#fff;background:#007aff}.status-partial{color:#fff;background:#ff9500}.status-received{color:#fff;background:#34c759}.status-cancelled{color:#fff;background:#ff3b30}.project-folder{background:#f0f2f6;flex-direction:column;flex:1;gap:0;height:100%;display:flex;overflow:visible}.project-detail-accent{flex-shrink:0;height:4px}.project-detail-header{background:#fff;border-bottom:1px solid #0000000d;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px 14px;display:flex}.pdh-left{align-items:center;gap:14px;min-width:0;display:flex}.pdh-info{flex-direction:column;gap:6px;min-width:0;display:flex}.pdh-name{color:#1a1a2e;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:670;overflow:hidden}.pdh-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pdh-phase{color:#fff;border-radius:20px;padding:2px 12px;font-size:11px;font-weight:600}.pdh-type,.pdh-client{color:#8e8ea0;font-size:11px;font-weight:460}.pdh-meta{color:#9ca3af;flex-shrink:0;gap:16px;font-size:11px;display:flex}.pdh-desc{color:#6b7280;margin-bottom:12px;font-size:13px;line-height:1.6}.pdh-phase-steps{background:#fff;border:1.5px solid #edf0f5;border-radius:10px;gap:0;margin:0 24px;padding:8px 12px;display:flex;box-shadow:0 1px 3px #0000000a}.pdh-step{color:#8e8ea0;cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:4px 10px;font-size:11px;transition:all .15s;display:flex}.pdh-step:hover{background:#f0f2f6}.pdh-step.current{color:#1a1a2e;font-weight:600}.pdh-step.done{opacity:.6}.pdh-dot{background:#e2e6ed;border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:transform .2s}.pdh-step.current .pdh-dot{background:var(--dot-color,#4f6ef7);box-shadow:0 0 0 3px color-mix(in srgb, var(--dot-color,#4f6ef7) 20%, transparent);transform:scale(1.15)}.pdh-step.done .pdh-dot{background:var(--dot-color,#888)}.pdh-body{flex-direction:column;flex:1;gap:0;min-height:0;display:flex}.pdh-nav{background:#fff;border-bottom:1px solid #0000000d;flex-direction:row;flex-shrink:0;gap:2px;padding:0 20px;display:flex}.pdh-nav-item{color:#8e8ea0;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:10px 18px;font-size:12px;font-weight:500;transition:all .15s;display:flex;position:relative}.pdh-nav-item:hover{color:#4f6ef7}.pdh-nav-item.active{color:#1a1a2e;font-weight:580}.pdh-nav-item.active:after{content:"";background:#4f6ef7;border-radius:3px;height:2.5px;position:absolute;bottom:0;left:18px;right:18px}.pdh-content{flex:1;min-width:0;padding:16px 24px;overflow-y:auto}.pdh-overview{flex-direction:column;gap:18px;display:flex}.pdh-stats{flex-wrap:wrap;gap:10px;display:flex}.pdh-stat{background:#fff;border:1.5px solid #edf0f5;border-radius:11px;flex-direction:column;align-items:center;gap:3px;min-width:90px;padding:14px 24px;display:flex;box-shadow:0 1px 3px #0000000a}.pdh-stat-num{color:#4f6ef7;letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.1}.pdh-stat-label{color:#8e8ea0;font-size:10px;font-weight:500}.pdh-overview-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pdh-section{flex-direction:column;gap:10px;display:flex}.pdh-section-title{color:#1a1a2e;margin:0;font-size:13px;font-weight:630}.pdh-tiles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pdh-tile{cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:10px;align-items:center;gap:10px;padding:12px;transition:all .15s;display:flex;box-shadow:0 1px 3px #00000008}.pdh-tile:hover{border-color:#d0d7e3;transform:translateY(-1px);box-shadow:0 3px 12px #0000000f}.pdh-tile-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pdh-tile div{flex-direction:column;gap:2px;min-width:0;display:flex}.pdh-tile strong{color:#1a1a2e;font-size:13px;font-weight:580}.pdh-tile span{color:#8e8ea0;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.pdh-section-content{flex-direction:column;gap:0;display:flex}.pdh-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.pdh-section-header-right{align-items:center;gap:10px;display:flex}.filter-tabs{background:var(--bg-secondary,#f0f0f5);border-radius:6px;gap:2px;padding:2px;display:flex}.filter-tab{color:#666;cursor:pointer;background:0 0;border:none;border-radius:5px;padding:3px 12px;font-size:11px;font-weight:500;transition:all .2s}.filter-tab.active{color:#1a1a2e;background:#fff;box-shadow:0 1px 3px #0000001f}.pdh-section-header h4{color:#1a1a2e;margin:0;font-size:14px;font-weight:630}.pdh-add-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f6ef7,#6366f1);border:none;border-radius:7px;padding:5px 14px;font-size:11px;font-weight:520;transition:opacity .2s}.pdh-add-btn:hover{opacity:.9}.pdh-export-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:7px;padding:5px 10px;font-size:11px;transition:all .15s}.pdh-export-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.pdh-empty{text-align:center;color:#9ca3af;padding:28px;font-size:12px}.pdh-activity-list{background:#fff;border:1.5px solid #edf0f5;border-radius:11px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000008}.pdh-activity-item{border-bottom:1px solid #0000000a;gap:10px;padding:10px 14px;transition:background .1s;display:flex}.pdh-activity-item:last-child{border-bottom:none}.pdh-activity-item:hover{background:#f8f9fc}.pdh-activity-dot{opacity:.45;background:#4f6ef7;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.pdh-activity-text{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.pdh-activity-summary{color:#4a4a5a;font-size:12px;line-height:1.5}.pdh-activity-time{color:#9ca3af;flex-shrink:0;font-size:10px}.pdh-card-list{flex-direction:column;gap:8px;display:flex}.pdh-card{cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:10px;padding:12px 14px;transition:all .15s;box-shadow:0 1px 3px #00000008}.pdh-card:hover{border-color:#d0d7e3;box-shadow:0 3px 12px #0000000f}.pdh-card.instr{cursor:default}.pdh-card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.pdh-card-tags{flex-shrink:0;gap:4px;display:flex}.pdh-tag{white-space:nowrap;border-radius:5px;padding:2px 8px;font-size:10px;font-weight:500}.tag-received{color:#4f6ef7;background:#eef2ff}.tag-sent{color:#16a34a;background:#f0fdf4}.instr-new{border-left:3px solid #4f6ef7!important}.pdh-card-title{color:#1a1a2e;font-size:13px;font-weight:600}.pdh-card-desc{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 6px;font-size:12px;line-height:1.5;overflow:hidden}.pdh-card-meta{color:#9ca3af;flex-wrap:wrap;gap:12px;font-size:10px;display:flex}.pdh-card-summary{color:#6b7280;background:#f8f9fc;border-radius:10px;flex-wrap:wrap;gap:16px;margin-bottom:8px;padding:10px 16px;font-size:12px;display:flex}.pdh-card-summary strong{color:#1a1a2e}.pdh-card-actions{justify-content:flex-end;gap:4px;padding:4px 8px 8px;display:flex}.pdh-action-btn{cursor:pointer;color:#9ca3af;background:0 0;border:1px solid #e2e6ed;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;transition:all .12s;display:flex}.pdh-action-btn:hover{color:#6b7280;background:#f3f4f6}.pdh-action-btn.danger:hover{color:#ff3b30;background:#fff0f0;border-color:#ff3b3044}.pdh-card-issue-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.pdh-action-btn.primary{color:#4f6ef7;border:1px solid #4f6ef7;border-radius:5px;width:auto;height:auto;padding:3px 10px;font-size:11px}.pdh-action-btn.primary:hover{color:#fff;background:#4f6ef7}.pdh-action-btn.secondary{color:#6b7280;border:1px solid #d2d2d7;border-radius:5px;width:auto;height:auto;padding:3px 10px;font-size:11px}.pdh-action-btn.secondary:hover{background:#f3f4f6}.pdh-reassign-form{align-items:center;gap:6px;width:100%;margin-top:6px;display:flex}.pdh-reassign-form select{background:#fff;border:1px solid #d2d2d7;border-radius:5px;flex:1;padding:4px 8px;font-size:12px}.pdh-reassign-form button{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d2d2d7;border-radius:5px;padding:4px 10px;font-size:11px}.pdh-reassign-form button:first-of-type{color:#4f6ef7;border-color:#4f6ef7}.pdh-reassign-form button:first-of-type:hover:not(:disabled){color:#fff;background:#4f6ef7}.pdh-reassign-form button:first-of-type:disabled{opacity:.4;cursor:default}.pa-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:5px;padding:3px 10px;font-size:11px;transition:all .12s}.pa-btn.primary{color:#fff;background:#4f6ef7;border-color:#4f6ef7}.pa-btn.primary:hover{background:#3b5de7}.pa-btn.secondary{color:#4f6ef7;background:0 0;border-color:#4f6ef7}.pa-btn.secondary:hover{background:#eef1ff}.pa-btn.outline{color:#6b7280;background:0 0;border-color:#d2d2d7}.pa-btn.outline:hover{background:#f3f4f6}.pa-btn:disabled{opacity:.4;cursor:default}.pa-note-form{flex-direction:column;gap:6px;width:100%;margin-top:6px;display:flex}.pa-note-form textarea{resize:vertical;box-sizing:border-box;border:1px solid #d2d2d7;border-radius:6px;width:100%;padding:8px;font-family:inherit;font-size:12px}.pa-note-btns{gap:6px;display:flex}.pdh-meta-text{color:#8e8ea0;font-size:11px}.pdh-response{background:#f8f9fc;border:1px solid #0000000a;border-radius:7px;margin-top:8px;padding:8px 12px;font-size:12px;line-height:1.5}.pdh-response-label{color:var(--text-secondary,#86868b);font-size:10px;font-weight:600}.pdh-resp-btn{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-primary,#fff);cursor:pointer;color:var(--accent-color,#0071e3);border-radius:5px;margin-top:6px;padding:3px 10px;font-size:11px}.pdh-resp-btn:hover{background:var(--accent-color,#0071e3);color:#fff}.pdh-close-btn{cursor:pointer;color:#16a34a;background:#f0fdf4;border:1px solid #16a34a;border-radius:5px;margin-top:6px;padding:3px 10px;font-size:11px}.pdh-close-btn:hover{color:#fff;background:#16a34a}.pdh-resp-form{flex-direction:column;gap:6px;margin-top:6px;display:flex}.pdh-resp-form textarea{border:1px solid var(--border-color,#d2d2d7);resize:vertical;background:var(--bg-secondary,#f5f5f7);color:var(--text-primary,#1d1d1f);border-radius:6px;padding:6px;font-size:12px}.pdh-resp-form button{background:var(--accent-color,#0071e3);color:#fff;cursor:pointer;border:none;border-radius:5px;align-self:flex-end;padding:3px 12px;font-size:11px}.pdh-edit-btn{background:var(--bg-secondary,#f5f5f7);cursor:pointer;color:var(--accent-color,#0071e3);border:none;border-radius:4px;align-self:flex-end;padding:2px 8px;font-size:10px}.pdh-report-section{margin-top:6px}.pdh-report-label{color:var(--text-secondary,#86868b);text-transform:uppercase;letter-spacing:.2px;margin-bottom:2px;font-size:10px;font-weight:600;display:block}.pdh-report-section p{color:var(--text-primary,#1d1d1f);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.5}.sidebar-icon-dashboard{opacity:.7;align-items:center;width:14px;display:flex}.dashboard-view{flex-direction:column;gap:16px;display:flex}.dashboard-stats{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.dash-stat-card{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-secondary,#f5f5f7);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:16px;display:flex}.dash-stat-value{color:var(--accent-color,#0071e3);font-size:24px;font-weight:700}.dash-stat-label{color:var(--text-secondary,#86868b);font-size:11px}.dashboard-two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dash-section-title{color:var(--text-secondary,#86868b);margin:0 0 8px;font-size:13px;font-weight:600}.dash-project-list{flex-direction:column;gap:3px;display:flex}.dash-project-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;transition:background .1s;display:flex}.dash-project-row:hover{background:var(--bg-secondary,#f5f5f7)}.dash-project-phase{color:#fff;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:500}.dash-project-name{color:var(--text-primary,#1d1d1f);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.dash-project-client{color:var(--text-tertiary,#aeaeb2);flex-shrink:0;font-size:11px}.dash-activity-list{flex-direction:column;gap:0;display:flex}.dash-activity-item{border-bottom:1px solid var(--border-color,#d2d2d7);justify-content:space-between;gap:8px;padding:5px 0;font-size:12px;display:flex}.dash-activity-item:last-child{border-bottom:none}.dash-activity-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary,#1d1d1f);flex:1;overflow:hidden}.dash-activity-project{color:var(--accent-color,#0071e3);margin-right:4px;font-weight:600}.dash-activity-time{color:var(--text-tertiary,#aeaeb2);flex-shrink:0;font-size:10px}.dash-empty{text-align:center;color:var(--text-secondary,#86868b);padding:16px;font-size:12px}.wb-view{flex-direction:column;gap:20px;height:100%;padding:4px 0;display:flex;overflow-y:auto}.wb-view .pdh-stats{flex-shrink:0}.wb-grid{grid-template-columns:1fr 1fr;gap:20px;min-height:0;display:grid}.wb-section{flex-direction:column;gap:10px;display:flex}.wb-section-title{color:var(--text-secondary,#86868b);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:13px;font-weight:600}.wb-activity-list{flex-direction:column;gap:6px;max-height:360px;display:flex;overflow-y:auto}.wb-activity-item{background:var(--bg-secondary,#f5f5f7);cursor:default;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;transition:background .15s;display:flex}.wb-activity-item:hover{background:var(--border-color,#e5e5ea)}.wb-activity-dot{background:var(--accent-color,#007aff);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.wb-activity-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-activity-summary{color:var(--text-primary,#1d1d1f);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.wb-activity-time{color:var(--text-tertiary,#aeaeb2);font-size:11px}.wb-task-cols{flex:1;gap:10px;min-height:0;display:flex;overflow-x:auto}.wb-task-col{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.wb-task-col-header{color:var(--text-secondary,#86868b);background:var(--bg-secondary,#f5f5f7);text-align:center;border-radius:6px;margin-bottom:4px;padding:6px 8px;font-size:12px;font-weight:600}.wb-task-card{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#d2d2d7);cursor:default;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;transition:border-color .15s;display:flex}.wb-task-card:hover{border-color:var(--accent-color,#007aff)}.wb-task-prio{border-radius:50%;flex-shrink:0;width:6px;height:6px}.wb-task-prio.priority-low{background:#8e8e93}.wb-task-prio.priority-medium{background:#ff9500}.wb-task-prio.priority-high,.wb-task-prio.priority-urgent{background:#ff3b30}.wb-task-title{color:var(--text-primary,#1d1d1f);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;overflow:hidden}.wb-task-empty{color:var(--text-tertiary,#aeaeb2);text-align:center;padding:12px 0;font-size:11px}.wb-modules{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.wb-tiles{flex-wrap:wrap;gap:8px;display:flex}.wb-tile{background:var(--bg-secondary,#f5f5f7);border:1px solid var(--border-color,#d2d2d7);cursor:pointer;border-radius:10px;align-items:center;gap:8px;min-width:130px;padding:10px 14px;transition:all .15s;display:flex}.wb-tile:hover{border-color:var(--accent-color,#007aff);background:var(--bg-primary,#fff)}.wb-tile-icon{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.wb-tile-label{color:var(--text-primary,#1d1d1f);font-size:13px;font-weight:500}.pdh-dashboard{flex-direction:column;gap:16px;height:100%;padding:16px;display:flex;overflow-y:auto}.pdh-dash-cards{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.pdh-dash-card{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e1e4e8);border-radius:10px;align-items:center;gap:12px;padding:16px;transition:box-shadow .15s;display:flex}.pdh-dash-card:hover{box-shadow:0 2px 12px #0000000f}.pdh-dash-card-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pdh-dash-card-body{flex-direction:column;gap:2px;display:flex}.pdh-dash-card-value{color:var(--text-primary,#1d1d1f);font-size:22px;font-weight:700;line-height:1.1}.pdh-dash-card-label{color:var(--text-secondary,#86868b);font-size:12px}.pdh-dash-grid{flex:1;grid-template-columns:1fr 1fr;gap:16px;display:grid}.pdh-dash-col{flex-direction:column;gap:16px;display:flex}.pdh-dash-section{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e1e4e8);border-radius:10px;padding:16px}.pdh-dash-section-title{color:var(--text-primary,#1d1d1f);justify-content:space-between;align-items:center;margin:0 0 12px;font-size:13px;font-weight:600;display:flex}.pdh-dash-link{color:var(--accent-color,#0071e3);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.pdh-dash-link:hover{text-decoration:underline}.pdh-dash-empty{color:var(--text-secondary,#86868b);text-align:center;padding:12px 0;font-size:12px}.pdh-dash-bar-group{flex-direction:column;gap:8px;display:flex}.pdh-dash-bar-row{align-items:center;gap:8px;display:flex}.pdh-dash-bar-label{color:var(--text-secondary,#86868b);flex-shrink:0;width:60px;font-size:11px}.pdh-dash-bar-track{background:var(--bg-secondary,#f0f2f5);border-radius:4px;flex:1;height:8px;overflow:hidden}.pdh-dash-bar-fill{border-radius:4px;min-width:0;height:100%;transition:width .3s}.pdh-dash-bar-count{text-align:right;width:28px;color:var(--text-primary,#1d1d1f);font-size:12px;font-weight:600}.pdh-dash-bar-pct{color:var(--text-secondary,#86868b);text-align:right;width:32px;font-size:10px}.pdh-dash-risk-list{flex-direction:column;gap:6px;display:flex}.pdh-dash-risk-item{background:#fff5f5;border:1px solid #fdd;border-radius:6px;padding:8px 10px}.pdh-dash-risk-name{color:#c0392b;margin-bottom:4px;font-size:12px;font-weight:500}.pdh-dash-risk-meta{color:#e74c3c;gap:12px;font-size:10px;display:flex}.pdh-dash-milestone-list{flex-direction:column;gap:0;display:flex}.pdh-dash-milestone-item{border-bottom:1px solid var(--border-color,#f0f0f0);align-items:center;gap:10px;padding:8px 0;display:flex}.pdh-dash-milestone-item:last-child{border-bottom:none}.pdh-dash-milestone-dot{background:#f39c12;border-radius:50%;flex-shrink:0;width:8px;height:8px}.pdh-dash-milestone-body{flex-direction:column;gap:2px;display:flex}.pdh-dash-milestone-name{color:var(--text-primary,#1d1d1f);font-size:12px;font-weight:500}.pdh-dash-milestone-date{color:var(--text-secondary,#86868b);font-size:10px}.pdh-dash-activity-list{flex-direction:column;gap:0;display:flex}.pdh-dash-activity-item{border-bottom:1px solid var(--border-color,#f0f0f0);align-items:flex-start;gap:8px;padding:8px 0;display:flex}.pdh-dash-activity-item:last-child{border-bottom:none}.pdh-dash-activity-dot{background:var(--accent-color,#0071e3);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.pdh-dash-activity-body{flex-direction:column;gap:2px;display:flex}.pdh-dash-activity-text{color:var(--text-primary,#1d1d1f);font-size:12px}.pdh-dash-activity-time{color:var(--text-secondary,#86868b);font-size:10px}@media (width<=900px){.pdh-dash-cards{grid-template-columns:repeat(2,1fr)}.pdh-dash-grid{grid-template-columns:1fr}}.res-view{flex-direction:column;gap:12px;height:100%;padding:16px;display:flex}.res-header{justify-content:space-between;align-items:center;display:flex}.res-title{color:var(--text-primary,#1d1d1f);margin:0;font-size:15px;font-weight:600}.res-stats{gap:16px;display:flex}.res-stat{color:var(--text-secondary,#86868b);font-size:11px}.res-stat.warn{color:#e74c3c;font-weight:500}.res-body{flex:1;gap:12px;min-height:0;display:flex}.res-sidebar{flex-direction:column;gap:2px;width:200px;min-width:200px;display:flex;overflow-y:auto}.res-divider{background:var(--border-color,#e1e4e8);height:1px;margin:4px 0}.res-section-label{color:var(--text-muted);text-transform:uppercase;padding:4px 8px;font-size:10px;font-weight:600}.res-person{cursor:pointer;color:var(--text-primary,#1d1d1f);border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;font-size:12px;transition:background .1s;display:flex}.res-person:hover{background:var(--bg-secondary,#f5f5f7)}.res-person.active{background:var(--accent-color,#0071e3);color:#fff}.res-person.warn{color:#e74c3c}.res-person-name{align-items:center;gap:6px;display:flex}.res-avatar{background:var(--bg-secondary,#e9ecef);width:20px;height:20px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.res-person.active .res-avatar{color:#fff;background:#fff3}.res-person-count{color:var(--text-muted);text-align:right;min-width:20px;font-size:11px}.res-person.active .res-person-count{color:#ffffffb3}.res-badge{color:var(--text-muted);font-size:10px}.res-content{flex:1;overflow-y:auto}.res-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.res-task-list{flex-direction:column;gap:6px;display:flex}.res-task-card{border:1px solid var(--border-color,#e1e4e8);background:var(--bg-primary,#fff);border-radius:8px;padding:10px 12px}.res-task-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.res-task-name{color:var(--text-primary,#1d1d1f);font-size:13px;font-weight:500}.res-task-status{border-radius:8px;padding:2px 8px;font-size:10px;font-weight:500}.res-task-status.not-started{color:#8b949e;background:#f0f2f5}.res-task-status.in-progress{color:#4f6ef7;background:#eef1ff}.res-task-status.completed{color:#27ae60;background:#e8f5e9}.res-task-status.delayed{color:#e74c3c;background:#fff5f5}.res-task-status.cancelled{color:#adb5bd;background:#f0f2f5}.res-task-meta{color:var(--text-secondary,#86868b);gap:12px;margin-bottom:6px;font-size:11px;display:flex}.res-task-progress{align-items:center;gap:6px;display:flex}.res-progress-track{background:var(--bg-secondary,#e9ecef);border-radius:2px;flex:1;height:4px;overflow:hidden}.res-progress-fill{border-radius:2px;height:100%;transition:width .3s}.res-progress-text{color:var(--text-secondary);font-family:monospace;font-size:10px;font-weight:600}.res-milestone-badge{color:#f39c12;background:#fff8e1;border-radius:8px;padding:1px 6px;font-size:9px;font-weight:500;display:inline-block}.sub-tab-bar{background:#f0f2f6;border-radius:9px;gap:4px;padding:2px;display:flex}.sub-tab{color:#8e8ea0;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:5px;padding:6px 16px;font-size:12px;font-weight:520;transition:all .15s;display:flex}.sub-tab:hover{color:#1a1a2e;background:#fffc}.sub-tab.active{color:#1a1a2e;background:#fff;font-weight:580;box-shadow:0 1px 3px #00000014}.sub-tab-content{margin-top:12px}.health-banner{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.health-card{background:#fff;border:1.5px solid #edf0f5;border-radius:12px;align-items:center;gap:12px;min-width:140px;padding:10px 16px;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 1px 3px #00000008}.health-card:hover{transform:translateY(-1px);box-shadow:0 3px 12px #0000000f}.health-card-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.health-card-body{flex-direction:column;gap:2px;display:flex}.health-card-value{font-size:20px;font-weight:700;line-height:1.2}.health-card-label{color:#8e8ea0;font-size:11px}.team-body{flex-direction:column;height:100%;display:flex}.team-header-bar{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.team-header-title-block{flex-direction:column;gap:2px;display:flex}.team-header-title{font-size:14px;font-weight:600}.team-header-sub{color:#8e8ea0;font-size:12px}.team-header-actions{gap:8px;display:flex}.team-grid{flex:1;grid-template-columns:1fr 1fr;align-content:flex-start;gap:10px;display:grid;overflow:auto}.team-member-card{cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:12px;flex-direction:column;padding:14px;transition:all .15s;display:flex;box-shadow:0 1px 3px #00000008}.team-member-card:hover{border-color:#d0d7e3;box-shadow:0 3px 12px #0000000f}.team-member-card.expanded{background:#eef1ff;border-color:#4f6ef7}.team-member-top{align-items:flex-start;gap:12px;display:flex}.team-member-avatar-box{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:800;display:flex}.team-member-details{flex:1;min-width:0}.team-member-details-name{margin-bottom:1px;font-size:14px;font-weight:700}.team-member-details-email{color:#8e8ea0;margin-bottom:4px;font-size:11px}.team-member-role-badge{border-radius:20px;padding:2px 10px;font-size:10px;font-weight:500;display:inline-block}.team-member-stat{color:#8e8ea0;border-top:1.5px solid #edf0f5;align-items:center;gap:10px;margin-top:10px;padding-top:10px;font-size:12px;display:flex}.team-member-actions{border-top:1px dashed #e2e6ed;align-items:center;gap:8px;margin-top:10px;padding-top:10px;display:flex}.team-member-actions select{cursor:pointer;color:#1a1a2e;background:#fff;border:1.5px solid #e2e6ed;border-radius:6px;flex:1;padding:4px 8px;font-size:11px}.team-member-remove-btn{color:#ef4444;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:4px 12px;font-size:11px;transition:all .15s}.team-member-remove-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444}.team-empty-state{text-align:center;color:#8e8ea0;padding:40px;font-size:13px}.team-partners-section{flex-shrink:0;margin-top:16px}.team-partners-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.team-partners-title{font-size:13px;font-weight:600}.team-partners-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.team-partner-card{cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:10px;flex-direction:column;padding:10px 12px;transition:all .12s;display:flex}.team-partner-card:hover{border-color:#d0d7e3;box-shadow:0 2px 8px #0000000a}.team-partner-card.expanded{background:#f0fdf4;border-color:#4caf50}.team-partner-top{align-items:center;gap:10px;display:flex}.team-partner-avatar{color:#2e7d32;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.team-partner-info{flex:1;min-width:0}.team-partner-name{margin-bottom:1px;font-size:13px;font-weight:600}.team-partner-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.team-partner-type-badge{color:#2e7d32;white-space:nowrap;background:#e8f5e9;border:1px solid #c8e6c9;border-radius:10px;padding:1px 8px;font-size:10px}.team-partner-contact{color:#8e8ea0;font-size:11px}.team-partner-actions{border-top:1px dashed #e2e6ed;gap:8px;margin-top:8px;padding-top:8px;display:flex}.team-partner-action-btn{cursor:pointer;background:#fff;border:1.5px solid #e2e6ed;border-radius:6px;flex:1;padding:4px 8px;font-size:11px;transition:all .15s}.team-partner-action-btn:hover{background:#f0f2f6;border-color:#d0d7e3}.team-partner-action-btn.danger{color:#ef4444;background:#fef2f2;border-color:#fca5a5}.team-partner-action-btn.danger:hover{color:#fff;background:#ef4444;border-color:#ef4444}.team-partner-empty{text-align:center;color:#8e8ea0;background:#fff;border:1.5px solid #edf0f5;border-radius:10px;padding:20px;font-size:12px}.settings-menu-panel{z-index:2147483646;background:#fff;border:1.5px solid #edf0f5;border-radius:12px;min-width:200px;padding:6px;animation:.15s form-slide-in;position:fixed;box-shadow:0 8px 32px #0000002e}.settings-menu-header{color:#8e8ea0;letter-spacing:.5px;text-transform:uppercase;padding:8px 14px 6px;font-size:11px}.settings-menu-item{cursor:pointer;color:#1a1a2e;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;transition:background .1s;display:flex}.settings-menu-item:hover{background:#f0f2f6}.settings-menu-item.danger{color:#ef4444}.settings-menu-item.danger:hover{background:#fef2f2}.settings-menu-icon{text-align:center;width:20px;font-size:16px}.settings-menu-divider{background:#edf0f5;height:1px;margin:4px 8px}.docs-view-container{flex-direction:column;gap:0;height:100%;display:flex}.docs-toolbar{border-bottom:1.5px solid #edf0f5;flex-shrink:0;align-items:center;gap:8px;padding-bottom:12px;display:flex}.docs-toolbar-btn{color:#6b7280;cursor:pointer;background:0 0;border:1.5px solid #e2e6ed;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.docs-toolbar-btn:hover{color:#1a1a2e;background:#f0f2f6;border-color:#d0d7e3}.docs-toolbar-sep{color:#d0d7e3;font-size:11px}.docs-toolbar-spacer{flex:1}.docs-body-layout{flex:1;gap:0;padding-top:10px;display:flex;overflow:hidden}.docs-sidebar{border-right:1.5px solid #edf0f5;flex-shrink:0;width:200px;margin-right:12px;padding-right:8px;overflow:auto}.docs-file-list{flex:1;position:relative;overflow:auto}.docs-col-headers{color:#9ca3af;letter-spacing:.3px;text-transform:uppercase;align-items:center;padding:4px 12px;font-size:10px;font-weight:600;display:flex}.docs-col-name{flex:1}.docs-col-size{text-align:right;width:60px}.docs-col-date{text-align:right;width:80px}.docs-col-tags,.docs-col-actions{text-align:center;width:80px}.docs-file-row{cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 12px;transition:all .12s;display:flex}.docs-file-row:hover{background:#f0f2f6}.folder-row.drag-over{outline-offset:-2px;border-radius:6px;outline:2px dashed #4f6ef7;background:#eef2ff!important}.docs-file-row.selected{background:#eef2ff!important}.docs-file-name-col{flex:1;min-width:0}.docs-file-name-text{color:#1a1a2e;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.docs-file-name-row{align-items:center;min-width:0;display:flex}.docs-file-hover-actions{flex-shrink:0;align-items:center;gap:2px;transition:opacity .15s;display:inline-flex}.docs-file-meta{color:#9ca3af;margin-top:1px;font-size:11px}.docs-file-size-text{color:#6b7280;text-align:right;flex-shrink:0;width:60px;font-size:12px}.docs-file-date-text{color:#6b7280;text-align:right;flex-shrink:0;width:80px;font-size:11px}.docs-file-tags-col{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:2px;width:80px;display:flex}.docs-file-actions-col{flex-shrink:0;justify-content:center;gap:1px;width:80px;transition:opacity .12s;display:flex}.docs-empty-state{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.docs-empty-icon-box{background:#f0f2f6;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.docs-empty-text{color:#9ca3af;text-align:center;font-size:13px}.docs-upload-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f6ef7,#6366f1);border:none;border-radius:8px;padding:6px 16px;font-size:12px;font-weight:500;transition:opacity .15s}.docs-upload-btn:hover{opacity:.9}.docs-svg-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .1s;display:flex}.docs-svg-btn:hover{color:#1a1a2e;background:#f0f2f6}.docs-tag-add-btn{cursor:pointer;color:#9ca3af;background:0 0;border:1px dashed #d0d7e3;border-radius:9px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:11px;line-height:1;transition:opacity .12s;display:flex}.docs-tag-add-btn:hover{color:#4f6ef7;border-color:#4f6ef7}.confirm-icon-box{background:#fee2e2;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.confirm-title{color:#1a1a2e;margin:0;font-size:16px;font-weight:630}.confirm-sub{color:#8e8ea0;margin:2px 0 0;font-size:12px}.confirm-desc{color:#6b7280;margin:8px 0 4px;font-size:13px;line-height:1.5}.confirm-delete-btn{color:#fff;background:#ef4444}.confirm-delete-btn:hover{opacity:.9}@keyframes spin{to{transform:rotate(360deg)}}.folder-settings-btn{cursor:pointer;color:#8e8ea0;background:0 0;border:1px solid #0000;border-radius:8px;outline:none;justify-content:center;align-items:center;padding:8px;font-size:20px;transition:all .15s;display:flex}.folder-settings-btn:hover{color:#1a1a2e;background:#f0f2f6}.folder-settings-btn:hover svg{transform:rotate(30deg)}.folder-settings-btn svg{transition:transform .3s}@media (width<=799px){.projects-sidebar{width:56px;min-width:56px;padding:12px 6px}.sidebar-logo{justify-content:center;padding:4px 4px 10px}.sidebar-logo-text,.sidebar-header{display:none}.sidebar-item{justify-content:center;padding:8px 4px}.sidebar-label,.sidebar-count{display:none}.sidebar-add-btn{padding:8px 4px;font-size:0}.sidebar-add-btn:before{content:"+";font-size:18px;font-weight:600}.projects-content{padding:12px}.content-search input{min-width:120px}.content-header{flex-direction:column;align-items:stretch;gap:8px}.content-actions{flex-direction:column;gap:6px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-two-col,.projects-grid{grid-template-columns:1fr}.project-detail-header{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.pdh-meta{flex-wrap:wrap;gap:8px}.pdh-nav{gap:0;padding:0 8px;overflow-x:auto}.pdh-nav-item{padding:8px 10px;font-size:11px}.pdh-nav-item svg{display:none}.pdh-nav-item.active:after{left:6px;right:6px}.pdh-content{padding:10px}.pdh-phase-steps{margin:0 10px;padding:6px 8px}.pdh-step{gap:4px;padding:3px 6px;font-size:10px}.pdh-dot{width:6px;height:6px}.pdh-overview-grid{grid-template-columns:1fr}.project-form{width:92vw;max-height:92vh}.project-form-header{padding:16px 18px 12px}.project-form-body{padding:14px 18px 18px}.form-row{flex-direction:column;gap:10px}.form-row-3{grid-template-columns:1fr 1fr}.confirm-dialog{width:88vw;margin:0 16px}.health-card{min-width:120px}.team-grid,.team-partners-grid{grid-template-columns:1fr}.docs-sidebar,.docs-col-date,.docs-file-date-text{display:none}.docs-toolbar{flex-wrap:wrap;gap:4px}.docs-toolbar-btn{padding:4px 8px;font-size:10px}.sub-tab{padding:5px 10px;font-size:11px}.exec-sub-tabs{overflow-x:auto}.exec-sub-tab{white-space:nowrap;padding:5px 10px;font-size:10px}.pdh-dash-cards{grid-template-columns:repeat(2,1fr)}.pdh-dash-grid{grid-template-columns:1fr}}@media (width>=800px) and (width<=1099px){.projects-content{padding:16px 18px}.projects-grid,.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-two-col{grid-template-columns:1fr}.pdh-content{padding:14px 18px}.pdh-nav{padding:0 12px}.pdh-nav-item{padding:8px 14px;font-size:11px}.pdh-nav-item svg{width:12px;height:12px}.pdh-phase-steps{margin:0 18px}.pdh-overview-grid{grid-template-columns:1fr}.team-grid,.team-partners-grid{grid-template-columns:1fr 1fr}.docs-sidebar{width:160px}.project-form{width:520px}.form-row-3{grid-template-columns:1fr 1fr 1fr}.pdh-dash-cards{grid-template-columns:repeat(2,1fr)}.pdh-dash-grid{grid-template-columns:1fr}}@media (width>=1300px){.projects-content{padding:24px 32px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.pdh-content{padding:20px 28px}.project-form{width:680px}}.ov-container{flex-direction:column;gap:14px;display:flex}.ov-hero{background:#fff;border:1px solid #e8ecf1;border-radius:12px;align-items:center;gap:24px;padding:20px 24px;display:flex;box-shadow:0 1px 4px #0000000a}.ov-hero-left{flex:1;min-width:0}.ov-hero-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.ov-hero-phase{color:#fff;border-radius:20px;padding:2px 12px;font-size:11px;font-weight:600}.ov-hero-type{color:#8e8ea0;background:#f0f2f6;border-radius:6px;padding:2px 10px;font-size:12px;font-weight:500}.ov-hero-meta{flex-wrap:wrap;gap:6px 16px;display:flex}.ov-hero-meta-item{color:#6b7280;align-items:center;gap:5px;font-size:12px;display:flex}.ov-hero-meta-item svg{opacity:.5;flex-shrink:0}.ov-hero-desc{color:#6b7280;background:#f8f9fc;border-radius:6px;width:100%;margin-top:2px;padding:8px 10px;font-size:12px;line-height:1.5}.ov-hero-stats{flex-shrink:0;align-items:center;gap:16px;display:flex}.ov-hero-stat{flex-direction:column;align-items:center;gap:2px;min-width:64px;display:flex}.ov-hero-stat-value{color:#1d1d1f;letter-spacing:-.02em;font-size:22px;font-weight:700}.ov-hero-stat-label{color:#8e8ea0;white-space:nowrap;font-size:10px}.ov-hero-divider{background:#e2e6ed;width:1px;height:36px}.ov-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ov-card{background:#fff;border:1px solid #e8ecf1;border-radius:12px;padding:18px 20px;box-shadow:0 1px 4px #0000000a}.ov-card-progress{align-items:center;gap:20px;display:flex}.ov-ring-container{flex-shrink:0;width:100px;height:100px;position:relative}.ov-ring-label{flex-direction:column;justify-content:center;align-items:center;gap:0;display:flex;position:absolute;inset:0}.ov-ring-pct{color:#1d1d1f;font-size:20px;font-weight:700;line-height:1}.ov-ring-text{color:#8e8ea0;margin-top:2px;font-size:10px}.ov-card-body{flex:1;gap:16px;display:flex}.ov-card-sub{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.ov-card-sub-value{color:#1d1d1f;font-size:20px;font-weight:700}.ov-card-sub-label{color:#8e8ea0;font-size:10px}.ov-card-bars{flex-direction:column;gap:10px;display:flex}.ov-section-title{color:#1d1d1f;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:630;display:flex}.ov-bar-group{flex-direction:column;gap:8px;display:flex}.ov-bar-row{flex-direction:column;gap:4px;display:flex}.ov-bar-top{justify-content:space-between;font-size:11px;display:flex}.ov-bar-label{color:#6b7280;font-weight:500}.ov-bar-count{color:#9ca3af}.ov-bar-track{background:#f0f2f5;border-radius:4px;height:8px;overflow:hidden}.ov-bar-fill{border-radius:4px;min-width:0;height:100%;transition:width .4s}.ov-bottom{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ov-col{flex-direction:column;gap:12px;display:flex}.ov-section{background:#fff;border:1px solid #e8ecf1;border-radius:12px;padding:16px 18px;box-shadow:0 1px 4px #0000000a}.ov-empty{text-align:center;color:#9ca3af;padding:20px 0;font-size:12px}.ov-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.ov-list-item{background:#fef2f2;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.ov-list-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ov-list-item-name{color:#1d1d1f;font-size:12px;font-weight:580}.ov-list-item-meta{color:#9ca3af;gap:10px;font-size:10px;display:flex}.ov-list-item-date{color:#ef4444;white-space:nowrap;flex-shrink:0;font-size:10px}.ov-activity-list{flex-direction:column;gap:0;margin-top:6px;display:flex}.ov-activity-item{border-bottom:1px solid #f0f2f5;gap:8px;padding:7px 0;display:flex}.ov-activity-item:last-child{border-bottom:none}.ov-activity-dot{opacity:.4;background:#4f6ef7;border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:5px}.ov-activity-body{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.ov-activity-text{color:#4a4a5a;font-size:11px;line-height:1.5}.ov-activity-time{color:#9ca3af;flex-shrink:0;font-size:10px}.ov-milestone-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.ov-milestone-item{align-items:center;gap:10px;display:flex}.ov-milestone-dot{background:#f59e0b;border-radius:50%;flex-shrink:0;width:8px;height:8px}.ov-milestone-body{flex:1;justify-content:space-between;align-items:center;min-width:0;display:flex}.ov-milestone-name{color:#1d1d1f;font-size:12px;font-weight:500}.ov-milestone-date{color:#9ca3af;flex-shrink:0;font-size:10px}.ov-team-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.ov-team-card{background:#f8f9fc;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:10px;display:flex}.ov-team-count{font-size:20px;font-weight:700}.ov-team-label{color:#8e8ea0;font-size:10px}@media (width<=900px){.ov-hero{flex-direction:column;align-items:flex-start;gap:16px}.ov-hero-stats{justify-content:space-around;width:100%}.ov-cards,.ov-bottom{grid-template-columns:1fr}.ov-card-progress{text-align:center;flex-direction:column;align-items:center}}.equipment-app{background:var(--bg-primary);height:100%;color:var(--text-primary);flex-direction:column;padding:20px 24px;display:flex;overflow:hidden}.equipment-loading{height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.equipment-header-bar{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.equipment-title{align-items:center;gap:10px;font-size:18px;font-weight:650;display:flex}.equipment-title-count{color:var(--accent-color);font-size:13px;font-weight:600}.equipment-title-sub{color:var(--text-tertiary);font-size:12px}.equipment-project-list{flex-direction:column;flex:1;gap:10px;padding-bottom:8px;display:flex;overflow-y:auto}.equipment-project-list::-webkit-scrollbar{width:4px}.equipment-project-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.equipment-project-card{background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:12px;padding:14px 16px;transition:box-shadow .15s,border-color .15s}.equipment-project-card:hover{border-color:var(--accent-color);box-shadow:0 2px 12px #0000000f}.equipment-project-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.equipment-project-name{font-size:15px;font-weight:600}.equipment-project-phase{color:var(--text-tertiary);background:var(--bg-hover);border-radius:6px;padding:1px 8px;font-size:10px;font-weight:500;line-height:20px}.equipment-project-stats{margin-bottom:8px}.equipment-project-total{color:var(--text-secondary);font-size:12px;font-weight:600}.equipment-project-bar{background:var(--bg-hover);border-radius:2px;gap:1px;height:4px;margin-bottom:8px;display:flex;overflow:hidden}.equipment-bar-seg{border-radius:2px;height:100%;transition:width .3s}.equipment-project-badges{flex-wrap:wrap;gap:4px;display:flex}.equipment-badge{border:1px solid;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:600;line-height:18px}.equipment-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.equipment-header h3{margin:0;font-size:16px;font-weight:600}.equipment-add-btn{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-size:12px;transition:opacity .15s}.equipment-add-btn:hover{opacity:.85}.equipment-quick-stats{flex-shrink:0;gap:8px;margin-bottom:12px;display:flex}.equipment-quick-stat{background:var(--bg-hover);border-left:2.5px solid var(--stat-color,var(--border-color));border-radius:8px;align-items:center;gap:5px;padding:4px 10px;display:flex}.equipment-quick-num{font-size:14px;font-weight:700}.equipment-quick-label{color:var(--text-tertiary);font-size:10px}.equipment-form{border:1px solid var(--border-color);background:var(--bg-hover);border-radius:10px;flex-wrap:wrap;flex-shrink:0;gap:8px;margin-bottom:12px;padding:12px;display:flex}.equipment-form input,.equipment-form select{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;flex:1;min-width:120px;padding:6px 10px;font-size:12px}.equipment-form-actions{justify-content:flex-end;gap:6px;width:100%;display:flex}.equipment-form-actions button{cursor:pointer;border:none;border-radius:6px;padding:5px 14px;font-size:12px}.equipment-form-actions button:first-child{background:var(--bg-primary);color:var(--text-primary)}.equipment-form-actions button:last-child{background:var(--accent-color);color:#fff}.equipment-empty{color:var(--text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.equipment-table{border-collapse:collapse;width:100%;font-size:13px}.equipment-table th{text-align:left;color:var(--text-tertiary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.3px;padding:8px 12px;font-size:11px;font-weight:500}.equipment-table td{border-bottom:1px solid var(--border-color);padding:8px 12px}.equipment-table tbody tr:hover{background:var(--bg-hover)}.equipment-cell-name{font-weight:500}.equipment-muted{color:var(--text-tertiary)}.equipment-status{color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.equipment-cell-actions{opacity:0;gap:4px;transition:opacity .1s;display:flex}tr:hover .equipment-cell-actions{opacity:1}.equipment-edit-btn{color:var(--accent-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:11px}.equipment-edit-btn:hover{text-decoration:underline}.equipment-del-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:11px}.equipment-del-btn:hover{text-decoration:underline}.milestones-app{background:var(--bg-primary,#fff);height:100%;color:var(--text-primary,#1d1d1f);flex-direction:column;padding:20px 24px;display:flex;overflow:hidden}.milestones-loading{height:100%;color:var(--text-secondary,#86868b);justify-content:center;align-items:center;display:flex}.milestones-header-bar{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.milestones-title{align-items:center;gap:8px;font-size:18px;font-weight:650;display:flex}.milestones-title-count{color:var(--text-tertiary);background:var(--bg-hover);border-radius:8px;padding:0 8px;font-size:13px;font-weight:500;line-height:22px}.milestones-project-list{flex-direction:column;flex:1;gap:10px;padding-bottom:8px;display:flex;overflow-y:auto}.milestones-project-list::-webkit-scrollbar{width:4px}.milestones-project-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.milestones-project-card{background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:12px;padding:14px 16px;transition:box-shadow .15s,border-color .15s}.milestones-project-card:hover{border-color:var(--accent-color);box-shadow:0 2px 12px #0000000f}.milestones-project-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.milestones-project-name{font-size:15px;font-weight:600}.milestones-project-phase{color:var(--text-tertiary);background:var(--bg-hover);border-radius:6px;padding:1px 8px;font-size:10px;font-weight:500;line-height:20px}.milestones-project-ring-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.milestones-mini-ring{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:relative}.milestones-mini-ring svg{position:absolute;inset:0}.milestones-mini-pct{color:#10b981;z-index:1;font-size:8px;font-weight:700}.milestones-project-stats{color:var(--text-secondary);gap:10px;font-size:12px;display:flex}.milestones-stat-overdue{color:#ef4444;font-weight:600}.milestones-project-bar{background:var(--bg-hover);border-radius:2px;gap:1px;height:4px;margin-bottom:8px;display:flex;overflow:hidden}.milestones-bar-seg{border-radius:2px;height:100%;transition:width .3s}.milestones-project-footer{justify-content:space-between;align-items:center;display:flex}.milestones-project-date{color:var(--text-tertiary);font-size:11px}.milestones-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.milestones-header h3{align-items:center;gap:6px;margin:0;font-size:16px;font-weight:600;display:flex}.milestones-count{color:var(--text-secondary,#86868b);font-size:13px;font-weight:400}.milestones-empty{color:var(--text-secondary,#86868b);flex:1;justify-content:center;align-items:center;display:flex}.milestones-timeline{flex:1;padding:8px 0;overflow-y:auto}.milestone-item{gap:12px;min-height:60px;display:flex}.milestone-line{flex-direction:column;align-items:center;width:20px;display:flex}.milestone-dot{background:var(--border-color,#d2d2d7);border:2px solid var(--border-color,#d2d2d7);border-radius:50%;flex-shrink:0;width:14px;height:14px}.milestone-dot.done{background:#34c759;border-color:#34c759}.milestone-item.overdue .milestone-dot{border-color:#ff3b30}.milestone-item.due-soon .milestone-dot{border-color:#f59e0b}.milestone-dot.due-soon{background:#f59e0b;border-color:#f59e0b}.milestone-connector{background:var(--border-color,#d2d2d7);flex:1;width:2px;min-height:20px}.milestone-item:last-child .milestone-connector{display:none}.milestone-content{flex:1;padding-bottom:16px}.milestone-top{justify-content:space-between;align-items:center;display:flex}.milestone-name{font-size:14px;font-weight:600}.milestone-date{color:var(--text-secondary,#86868b);font-size:11px}.milestone-item.overdue .milestone-date{color:#ff3b30;font-weight:500}.milestone-desc{color:var(--text-secondary,#86868b);margin:4px 0;font-size:12px}.milestone-actions{gap:8px;margin-top:6px;display:flex}.milestone-toggle{border:1px solid var(--border-color,#d2d2d7);background:var(--bg-primary,#fff);cursor:pointer;color:var(--text-primary,#1d1d1f);border-radius:6px;padding:3px 10px;font-size:11px}.milestone-toggle.done{color:#fff;background:#34c759;border-color:#34c759}.milestone-del{color:#ff3b30;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;padding:3px 10px;font-size:11px}.milestone-item:hover .milestone-del{opacity:1}.milestone-meta{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.milestone-status{background:var(--bg-tertiary,#80808014);color:var(--text-secondary,#86868b);border-radius:8px;padding:1px 8px;font-size:11px;font-weight:500}.milestone-status.completed{color:#34c759;background:#34c7591a}.milestone-status.in-progress{color:#007aff;background:#007aff1a}.milestone-status.delayed{color:#ff3b30;background:#ff3b301a}.milestone-party,.milestone-progress{color:var(--text-secondary,#86868b);font-size:11px}.milestone-dot.overdue{border-color:#ff3b30}.wbs-app{--primary:#4f6ef7;--primary-hover:#3b5de7;--primary-light:#eef1ff;--danger:#e74c3c;--danger-hover:#c0392b;--success:#27ae60;--warning:#f39c12;--bg:#f8f9fa;--surface:#fff;--border:#e1e4e8;--text:#1f2328;--text-secondary:#656d76;--text-muted:#8b949e;--header-bg:#fff;--shadow:0 1px 3px #00000014;--radius:8px;--radius-sm:4px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"SF Mono", "Cascadia Code", Consolas, monospace;--wbs-width:340px;--header-height:42px;--tree-row-h:32px;--transition:.12s ease;background:var(--bg);height:100%;color:var(--text);flex-direction:column;font-size:13px;line-height:1.5;display:flex;overflow:hidden}[data-theme=dark] .wbs-app{--primary:#6b8aff;--primary-hover:#7f97ff;--primary-light:#1e2240;--danger:#e74c3c;--danger-hover:#ff6b6b;--success:#2ecc71;--warning:#f1c40f;--bg:#0d1117;--surface:#161b22;--border:#30363d;--text:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--header-bg:#161b22;--shadow:0 1px 3px #0000004d}.wbs-loading{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.wbs-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}.wbs-empty{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.wbs-empty-hint{font-size:12px}.wbs-toolbar{height:var(--header-height);background:var(--header-bg);border-bottom:1px solid var(--border);z-index:100;flex-shrink:0;align-items:center;gap:4px;padding:0 10px;display:flex}.toolbar-left{flex-shrink:0;align-items:center;gap:8px;display:flex}.toolbar-center{flex:1;justify-content:center;align-items:center;gap:3px;display:flex}.toolbar-right{flex-shrink:0;align-items:center;gap:3px;display:flex}.app-logo{border-right:1px solid var(--border);align-items:center;gap:4px;padding-right:8px;display:flex}.app-title{color:var(--primary);white-space:nowrap;font-size:14px;font-weight:700}.task-count{color:var(--text-muted);white-space:nowrap;font-size:11px}.tb-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;transition:all var(--transition);align-items:center;gap:3px;padding:3px 7px;font-size:12px;line-height:1.4;display:inline-flex}.tb-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.tb-btn:active{transform:scale(.97)}.tb-btn.active{background:var(--primary-light,#eef1ff);border-color:var(--primary,#4f6ef7);color:var(--primary,#4f6ef7)}.tb-btn:disabled{opacity:.4;cursor:not-allowed}.tb-btn:disabled:hover{background:var(--surface);border-color:var(--border);color:var(--text);transform:none}.tb-btn-sm{padding:2px 5px;font-size:11px}.tb-separator{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 3px}.zoom-indicator{color:var(--text-secondary);text-align:center;min-width:18px;font-size:10px;font-weight:600}.save-status{color:var(--text-muted);white-space:nowrap;align-items:center;gap:3px;font-size:10px;display:flex}.save-dot{background:#27ae60;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .3s}.save-text{font-size:10px}.wbs-back-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:3px 6px;font-size:13px;font-weight:500}.wbs-back-btn:hover{background:var(--primary-light)}.wbs-main-content{flex:1;min-height:0;display:flex;overflow:hidden}.wbs-panel{width:var(--wbs-width);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;min-width:280px;display:flex}.wbs-search{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:5px 8px;display:flex}.wbs-search-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12px;font-family:var(--font);outline:none;flex:1;padding:4px 7px}.wbs-search-input:focus{border-color:var(--primary)}.wbs-search-count{color:var(--text-muted);white-space:nowrap;font-size:10px}.wbs-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:1px 3px;font-size:13px;line-height:1}.wbs-search-clear:hover{color:var(--text)}.wbs-tree-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;padding:5px 8px;font-size:9px;font-weight:600;display:flex}.wbs-tree-header .wbs-col-toggle{width:18px}.wbs-tree-header .wbs-col-code{width:50px}.wbs-tree-header .wbs-col-name{flex:1}.wbs-tree-header .wbs-col-person{width:55px}.wbs-tree-container{flex:1;padding:2px 0;overflow:hidden auto}.wbs-tree-container::-webkit-scrollbar{width:5px}.wbs-tree-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.wbs-tree-row{height:var(--tree-row-h);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:0 8px 0 4px;display:flex}.wbs-tree-row:hover{background:#f6f8fa}[data-theme=dark] .wbs-tree-row:hover{background:#1c2128}.wbs-tree-row.selected{background:var(--primary-light);border-left:3px solid var(--primary);padding-left:1px}[data-theme=dark] .wbs-tree-row.selected{background:#1e2240}.wbs-tree-row.drag-over{border-top:2px solid var(--primary)}.wbs-tree-row .wbs-col-toggle{flex-shrink:0;justify-content:center;align-items:center;width:18px;display:flex}.wbs-tree-row .wbs-col-code{flex-shrink:0;align-items:center;gap:2px;width:50px;display:flex}.wbs-tree-row .wbs-col-name{flex:1;align-items:center;gap:3px;min-width:0;display:flex;overflow:hidden}.wbs-tree-row .wbs-col-person{width:55px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:10px;overflow:hidden}.wbs-toggle{cursor:pointer;width:16px;height:16px;color:var(--text-muted);transition:transform var(--transition);flex-shrink:0;justify-content:center;align-items:center;font-size:8px;display:flex}.wbs-toggle:hover{color:var(--text)}.wbs-toggle-empty{cursor:default;color:var(--text-muted);opacity:.4;font-size:6px}.wbs-code-text{font-family:var(--mono);color:var(--text-muted);font-size:10px}.wbs-name-text{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:2px;padding:1px 3px;font-size:12px;overflow:hidden}.wbs-name-text:hover{background:var(--bg)}.wbs-inline-edit{border:1px solid var(--primary);background:var(--surface);min-width:50px;color:var(--text);border-radius:3px;outline:none;flex:1;padding:2px 4px;font-size:12px}.wbs-tree-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:12px}.wbs-badge{white-space:nowrap;border-radius:8px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:500}.wbs-badge.progress{color:var(--success);background:#e8f5e9}[data-theme=dark] .wbs-badge.progress{background:#1b3a1b}.wbs-badge.milestone{color:var(--warning);background:#fff3e0}[data-theme=dark] .wbs-badge.milestone{background:#3a2e00}.wbs-badge.critical{color:var(--danger);background:#ffebee}[data-theme=dark] .wbs-badge.critical{background:#3a1a1a}.wbs-badge.summary{color:#3f51b5;background:#e8eaf6}[data-theme=dark] .wbs-badge.summary{background:#1a1a3a}.wbs-gantt-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.gantt-container{background:var(--surface);flex:1;position:relative;overflow:auto}.gantt-container::-webkit-scrollbar{width:7px;height:7px}.gantt-container::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:4px}[data-theme=dark] .gantt-container::-webkit-scrollbar-thumb{background:#484848}.gantt-svg{display:block}.wbs-inspector{border-left:2px solid var(--primary);background:var(--surface);flex-shrink:0;width:320px;min-width:280px;overflow-y:auto}.wbs-inspector-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:2;justify-content:space-between;align-items:center;padding:8px 14px;display:flex;position:sticky;top:0}.wbs-inspector-header h3{margin:0;font-size:12px;font-weight:600}.wbs-inspector-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:3px;padding:2px 5px;font-size:14px}.wbs-inspector-close:hover{background:var(--bg)}.wbs-inspector-body{flex-direction:column;gap:8px;padding:10px 14px;display:flex}.wbs-inspector-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 14px 10px;display:flex}.det-field{flex-direction:column;gap:2px;display:flex}.det-field label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:10px;font-weight:600}.det-field input,.det-field select,.det-field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font);transition:border-color var(--transition);background:var(--surface);color:var(--text);outline:none;padding:5px 7px}.det-field input:focus,.det-field select:focus,.det-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #4f6ef71f}.det-field textarea{resize:vertical;min-height:50px}.det-field select{cursor:pointer}.det-field input[readonly]{background:var(--bg);opacity:.7;cursor:default}.det-field-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.det-progress-row{align-items:center;gap:6px;display:flex}.det-progress-row input[type=range]{flex:1;height:4px}.det-progress-val{font-family:var(--mono);text-align:right;min-width:32px;font-size:12px;font-weight:600}.det-hint{color:var(--text-muted);margin-top:1px;font-size:10px}.det-meta{font-family:var(--mono);color:var(--text-muted);border-top:1px solid var(--border);padding-top:4px;font-size:10px}.wbs-summary-note{color:var(--warning);background:#fff8e1;border:1px solid #ffe082;border-radius:6px;padding:6px 10px;font-size:11px}.det-divider{background:var(--border);height:1px;margin:4px 0}.det-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;display:flex}.det-section-header:hover{color:var(--primary)}.det-section-toggle{color:var(--text-muted);width:12px;font-size:8px}.det-section-label{color:var(--text-secondary);font-size:11px;font-weight:600}.det-comments{flex-direction:column;gap:6px;display:flex}.det-comment-input-row{gap:4px;display:flex}.det-comment-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;outline:none;flex:1;padding:5px 8px;font-size:12px}.det-comment-input:focus{border-color:var(--primary)}.det-comment-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500}.det-comment-submit:disabled{opacity:.5;cursor:default}.det-comment-item{background:var(--bg);border-radius:4px;padding:6px 8px}.det-comment-meta{justify-content:space-between;margin-bottom:2px;display:flex}.det-comment-author{color:var(--text);font-size:11px;font-weight:600}.det-comment-time{color:var(--text-muted);font-size:10px}.det-comment-text{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:12px}.det-empty-hint{color:var(--text-muted);text-align:center;padding:8px 0;font-size:11px}.det-activities{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.det-activity-item{background:var(--bg);border-radius:4px;gap:6px;padding:4px 8px;font-size:11px;display:flex}.det-activity-user{color:var(--text);white-space:nowrap;font-weight:600}.det-activity-action{color:var(--text-secondary);flex:1}.det-activity-time{color:var(--text-muted);white-space:nowrap}.wbs-summary-note{color:var(--text-secondary);background:var(--primary-light);border-radius:3px;padding:5px 8px;font-size:10px}.btn-danger{cursor:pointer;border:1px solid var(--danger);color:var(--danger);background:0 0;border-radius:4px;padding:4px 14px;font-size:11px;font-weight:500}.btn-danger:hover{background:#ffebee}[data-theme=dark] .btn-danger:hover{background:#3a1a1a}.context-menu{z-index:1000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:150px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0000001f}.context-item{cursor:pointer;transition:background var(--transition);padding:5px 14px;font-size:12px}.context-item:hover{background:var(--primary-light);color:var(--primary)}.context-danger{color:var(--danger)}.context-danger:hover{color:var(--danger);background:#ffebee}.context-separator{background:var(--border);height:1px;margin:3px 0}.modal-backdrop{z-index:999;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius);width:360px;max-width:90vw;box-shadow:0 8px 32px #0003}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-title{font-size:14px;font-weight:600}.modal-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.modal-body input{border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;background:var(--surface);width:100%;color:var(--text);outline:none;padding:6px 8px;font-size:13px}.modal-body input:focus{border-color:var(--primary)}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.form-hint{color:var(--text-muted);font-size:11px}.toast{border-radius:var(--radius);color:#fff;z-index:9999;opacity:0;pointer-events:none;opacity:1;pointer-events:auto;background:#333;padding:8px 18px;font-size:12px;transition:all .3s;position:fixed;bottom:20px;right:20px;transform:translateY(0)}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.toast.info{background:var(--primary)}.gantt-task-bar,.gantt-milestone{cursor:pointer}.wbs-finder-layout{flex-direction:row;height:100%;transition:all .15s;display:flex;overflow:hidden}.wbs-finder-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;min-width:180px;display:flex;overflow-y:auto}.wbs-finder-sidebar-header{justify-content:space-between;align-items:center;padding:12px 10px 6px 14px;display:flex}.wbs-finder-sidebar-title{color:var(--text);letter-spacing:.3px;font-size:13px;font-weight:700}.wbs-finder-collapse-btn{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.wbs-finder-collapse-btn:hover{background:var(--bg);color:var(--text)}.wbs-finder-section{margin-bottom:4px}.wbs-finder-section-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;align-items:center;gap:5px;padding:6px 14px 4px;font-size:10px;font-weight:600;display:flex}.wbs-finder-section-header svg{flex-shrink:0}.wbs-finder-section-header span{flex:1}.wbs-finder-add-btn{border:1px solid var(--border);background:var(--surface);width:20px;height:20px;color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:14px;font-weight:600;line-height:1;display:flex}.wbs-finder-add-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.wbs-finder-item{cursor:pointer;color:var(--text);border-radius:4px;align-items:center;gap:6px;margin:1px 6px;padding:5px 10px;font-size:12px;transition:background 80ms;display:flex}.wbs-finder-item:hover{background:var(--bg)}.wbs-finder-item.active{background:var(--primary-light);color:var(--primary)}.wbs-finder-item svg{opacity:.7;flex-shrink:0}.wbs-finder-item.active svg{opacity:1}.wbs-finder-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.wbs-finder-label input{width:100%}.wbs-finder-rename-input{border:1px solid var(--primary);background:var(--surface);color:var(--text);box-sizing:border-box;border-radius:3px;outline:none;width:100%;padding:1px 4px;font-size:12px}.wbs-finder-item-actions{flex-shrink:0;gap:2px;display:flex}.wbs-finder-action-btn{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;display:flex}.wbs-finder-action-btn:hover{background:var(--bg);color:var(--text)}.wbs-finder-del-btn:hover{color:var(--danger)!important}.wbs-finder-empty-text{color:var(--text-muted);padding:4px 14px 4px 30px;font-size:11px}.wbs-finder-collapsed-bar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:center;gap:2px;width:44px;padding-top:8px;display:flex}.wbs-finder-collapsed-icons{flex-direction:column;align-items:center;gap:4px;margin-top:8px;display:flex}.wbs-finder-collapsed-icon{cursor:pointer;width:32px;height:32px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;transition:all 80ms;display:flex}.wbs-finder-collapsed-icon:hover{background:var(--bg);color:var(--text)}.wbs-finder-collapsed-icon.active{background:var(--primary-light);color:var(--primary)}.wbs-finder-collapsed-icon.add{border:1px dashed var(--border);margin-top:4px}.wbs-finder-content{flex:1;min-width:0;display:flex}.wbs-finder-welcome{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.wbs-finder-welcome h2{color:var(--text);margin:0;font-size:18px;font-weight:600}.wbs-finder-welcome p{margin:0;font-size:13px}.wbs-btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:5px 16px;font-size:12px;font-weight:500}.wbs-btn-primary:hover{opacity:.9}.wbs-btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:5px;padding:5px 16px;font-size:12px}.wbs-btn-secondary:hover{background:var(--bg)}@media print{.wbs-toolbar,.wbs-panel,.wbs-inspector{display:none!important}.wbs-main-content{display:block!important}.wbs-gantt-panel{width:100%!important;height:auto!important;overflow:visible!important}.gantt-container{height:auto!important;overflow:visible!important}.context-menu,.modal-backdrop,.toast{display:none!important}}.tbl-view{flex-direction:column;height:100%;font-size:12px;display:flex}.tbl-batch-bar{background:var(--primary-light,#eef1ff);border-bottom:1px solid var(--border,#e1e4e8);align-items:center;gap:8px;padding:8px 12px;display:flex}.tbl-batch-count{color:var(--primary,#4f6ef7);font-size:11px;font-weight:600}.tbl-batch-action,.tbl-batch-input{border:1px solid var(--border,#d0d5dd);background:var(--surface,#fff);color:var(--text,#1f2328);border-radius:4px;padding:3px 6px;font-size:11px}.tbl-batch-del{color:#e74c3c;cursor:pointer;background:0 0;border:1px solid #e74c3c;border-radius:4px;padding:3px 10px;font-size:11px}.tbl-batch-del:hover{background:#fff5f5}.tbl-wrap{flex:1;overflow:auto}.tbl-header{z-index:1;position:sticky;top:0}.tbl-header-row{background:var(--bg,#f8f9fa);border-bottom:2px solid var(--border,#e1e4e8)}.tbl-row{border-bottom:1px solid var(--border,#f0f0f0);align-items:center;min-height:32px;transition:background 50ms;display:flex}.tbl-row:hover{background:var(--bg,#f8f9fa)}.tbl-row.selected{background:var(--primary-light,#eef1ff)}.tbl-cell{color:var(--text,#1f2328);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.tbl-cell-check{text-align:center;flex:none;width:36px;min-width:36px}.tbl-cell-check input[type=checkbox]{cursor:pointer}.tbl-cell-code{width:55px;min-width:55px;color:var(--text-muted,#8b949e);font-family:var(--mono,monospace);flex:none;font-size:10px}.tbl-cell-name{flex:3}.tbl-inline-edit{border:1px solid var(--primary,#4f6ef7);background:var(--surface,#fff);width:100%;color:var(--text,#1f2328);border-radius:3px;outline:none;padding:2px 4px;font-size:12px}.tbl-body{min-height:100px}@media (width<=800px){.wbs-panel{width:260px;min-width:200px}.toolbar-center .tb-btn span{display:none}}.calendar-app{-webkit-user-select:none;user-select:none;flex-direction:column;height:100%;font-size:13px;display:flex}.cal-toolbar{border-bottom:1px solid var(--border-color,#d2d2d7);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.cal-toolbar-left{align-items:center;gap:6px;display:flex}.cal-toolbar-right{align-items:center;gap:8px;display:flex}.cal-btn{border:1px solid var(--border-color,#d2d2d7);background:var(--btn-bg,#f5f5f7);color:var(--text-color,#1d1d1f);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:12px}.cal-btn:hover{background:var(--btn-hover,#e8e8ed)}.cal-title{white-space:nowrap;color:var(--text-color,#1d1d1f);margin:0 8px;font-size:16px;font-weight:600}.cal-view-toggle{border:1px solid var(--border-color,#d2d2d7);border-radius:5px;display:flex;overflow:hidden}.cal-view-btn{cursor:pointer;color:var(--text-color,#1d1d1f);background:0 0;border:none;padding:4px 10px;font-size:12px}.cal-view-btn.active{background:var(--accent-color,#0071e3);color:#fff}.cal-add-btn{background:var(--accent-color,#0071e3);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:4px 12px;font-size:12px}.cal-add-btn:hover{opacity:.9}.cal-filter-select{border:1px solid var(--border-color,#d2d2d7);background:var(--btn-bg,#f5f5f7);color:var(--text-color,#1d1d1f);border-radius:5px;padding:3px 6px;font-size:12px}.cal-layout{flex:1;display:flex;overflow:hidden}.cal-sidebar{border-right:1px solid var(--border-color,#d2d2d7);flex-shrink:0;width:160px;padding:10px 8px;overflow-y:auto}.cal-sidebar-group-title{color:var(--text-secondary,#86868b);text-transform:uppercase;letter-spacing:.3px;margin-top:6px;padding:4px 6px 2px;font-size:11px;font-weight:600}.cal-sidebar-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:6px;padding:3px 6px;font-size:12px;display:flex}.cal-sidebar-item:hover{background:var(--hover-bg,#0000000a)}.cal-checkbox{border:1.5px solid var(--text-tertiary,#aeaeb2);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.cal-checkbox.checked{background:var(--accent-color,#0071e3);border-color:var(--accent-color,#0071e3)}.cal-sidebar-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.cal-sidebar-name{color:var(--text-color,#1d1d1f);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-detail-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.cal-body{flex:1;overflow:auto}.cal-month-grid{grid-template-columns:repeat(7,1fr);height:100%;min-height:400px;display:grid}.cal-weekday{text-align:center;color:var(--text-secondary,#86868b);border-bottom:1px solid var(--border-color,#e8e8ed);padding:8px 4px;font-size:11px;font-weight:500}.cal-day{border-right:1px solid var(--border-color,#e8e8ed);border-bottom:1px solid var(--border-color,#e8e8ed);cursor:pointer;min-height:90px;padding:2px;overflow:hidden}.cal-day:hover{background:var(--hover-bg,#00000008)}.cal-day.other-month{background:var(--other-month-bg,#00000005)}.cal-day.other-month .cal-day-num{opacity:.3}.cal-day.today .cal-day-num{background:var(--accent-color,#0071e3);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.cal-day-num{text-align:center;width:22px;height:22px;color:var(--text-color,#1d1d1f);margin-bottom:2px;font-size:12px;font-weight:500;line-height:22px;display:inline-block}.cal-day-events{flex-direction:column;gap:1px;display:flex}.cal-event-chip{color:#fff;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:11px;overflow:hidden}.cal-event-chip:hover{opacity:.85}.cal-more{color:var(--text-secondary,#86868b);cursor:pointer;padding:1px 4px;font-size:11px}.cal-week-view,.cal-day-view{flex-direction:column;height:100%;display:flex}.cal-week-header{border-bottom:1px solid var(--border-color,#d2d2d7);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday-header,.cal-day-header{text-align:center;color:var(--text-color,#1d1d1f);padding:6px;font-weight:500}.cal-weekday-header.today .cal-weekday-date{background:var(--accent-color,#0071e3);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.cal-weekday-label{color:var(--text-secondary,#86868b);font-size:11px;display:block}.cal-weekday-date{margin-top:2px;font-size:14px;display:inline-block}.cal-week-body,.cal-day-body{flex:1;grid-template-columns:repeat(7,1fr);display:grid;overflow-y:auto}.cal-day-body{grid-template-columns:1fr}.cal-week-col,.cal-day-body{border-right:1px solid var(--border-color,#e8e8ed)}.cal-week-col.today{background:var(--today-bg,#0071e30a)}.cal-hour-slot{border-bottom:1px solid var(--border-color,#f0f0f0);cursor:pointer;flex-wrap:wrap;align-content:flex-start;gap:1px;height:40px;padding:1px;display:flex}.cal-hour-slot:hover{background:var(--hover-bg,#00000005)}.cal-hour-label{width:48px;color:var(--text-secondary,#86868b);text-align:right;flex-shrink:0;padding:2px 4px;font-size:10px;display:inline-block}.cal-hour-content{flex-wrap:wrap;flex:1;align-content:flex-start;gap:1px;display:flex}.cal-day-header{text-align:left;border-bottom:1px solid var(--border-color,#d2d2d7);padding:8px 16px;font-size:16px}.cal-day-body .cal-hour-slot{min-height:40px;padding:0;display:flex}.cal-overlay{z-index:20000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cal-modal{background:var(--modal-bg,#fff);border-radius:10px;width:420px;max-height:80vh;padding:20px;overflow-y:auto;box-shadow:0 8px 30px #0003}.cal-modal h3{color:var(--text-color,#1d1d1f);margin:0 0 16px;font-size:16px}.cal-form{flex-direction:column;gap:12px;display:flex}.cal-form input[type=text],.cal-form input[type=datetime-local],.cal-form textarea,.cal-form select{border:1px solid var(--border-color,#d2d2d7);background:var(--input-bg,#fff);color:var(--text-color,#1d1d1f);box-sizing:border-box;border-radius:5px;width:100%;padding:6px 8px;font-size:13px}.cal-form textarea{resize:vertical;font-family:inherit}.cal-form-row{align-items:center;gap:8px;display:flex}.cal-form-row label{min-width:48px;color:var(--text-secondary,#86868b);flex-shrink:0;font-size:12px}.cal-form-row select[multiple]{height:80px}.cal-color-picker{gap:4px;display:flex}.cal-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px}.cal-color-swatch.selected{border-color:var(--text-color,#1d1d1f)}.cal-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.cal-btn-primary{background:var(--accent-color,#0071e3);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:6px 16px;font-size:13px}.cal-btn-primary:hover{opacity:.9}.cal-btn-secondary{border:1px solid var(--border-color,#d2d2d7);background:var(--btn-bg,#f5f5f7);color:var(--text-color,#1d1d1f);cursor:pointer;border-radius:5px;padding:6px 16px;font-size:13px}.cal-btn-danger{color:#fff;cursor:pointer;background:#ff3b30;border:none;border-radius:5px;padding:6px 16px;font-size:13px}.cal-event-detail{background:var(--modal-bg,#fff);border-radius:10px;width:380px;overflow:hidden;box-shadow:0 8px 30px #0003}.cal-event-detail-header{border-left:4px solid;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.cal-event-detail-header h3{color:var(--text-color,#1d1d1f);margin:0;font-size:15px}.cal-event-detail-body{padding:12px 16px 16px}.cal-detail-row{color:var(--text-color,#1d1d1f);gap:8px;margin-bottom:10px;font-size:13px;display:flex}.cal-detail-label{color:var(--text-secondary,#86868b);flex-shrink:0;min-width:40px}.cal-attendee-list{flex-direction:column;gap:4px;display:flex}.cal-attendee-item{justify-content:space-between;align-items:center;font-size:12px;display:flex}.cal-attendee-status{border-radius:3px;padding:1px 6px;font-size:11px}.status-accepted{color:#fff;background:#34c759}.status-declined{color:#fff;background:#ff3b30}.status-tentative{color:#fff;background:#ff9500}.status-pending{color:#fff;background:#8e8e93}[data-theme=dark] .calendar-app{--border-color:#38383a;--text-color:#f5f5f7;--text-secondary:#98989d;--btn-bg:#2c2c2e;--btn-hover:#3a3a3c;--accent-color:#0a84ff;--hover-bg:#ffffff0d;--other-month-bg:#ffffff05;--today-bg:#0a84ff14;--modal-bg:#2c2c2e;--input-bg:#3a3a3c}.admin-app{background:var(--bg-primary);flex-direction:column;height:100%;display:flex}.admin-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;gap:0;padding:0 20px;display:flex}.admin-tabs button{cursor:pointer;height:36px;color:var(--text-secondary);background:0 0;border:none;padding:0 20px;font-size:13px;transition:color .2s;position:relative}.admin-tabs button:after{content:"";background:0 0;border-radius:1px;height:2px;transition:background .2s;position:absolute;bottom:0;left:8px;right:8px}.admin-tabs button:hover{color:var(--text-primary)}.admin-tabs button.active{color:var(--accent-color);font-weight:600}.admin-tabs button.active:after{background:var(--accent-color)}.admin-section{flex:1;padding:20px;overflow:auto}.admin-toolbar{align-items:center;gap:8px;margin-bottom:16px;display:flex}.admin-search{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:8px;outline:none;flex:1;max-width:320px;padding:7px 12px 7px 32px;font-size:13px;transition:border-color .2s,box-shadow .2s;position:relative}.admin-search:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #0071e31a}.admin-table-wrap{border:1px solid var(--border-color);border-radius:8px;flex:1;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table thead{z-index:2;position:sticky;top:0}.admin-table thead:before{content:"";background:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:absolute;inset:0}.admin-table th{text-align:left;color:var(--text-secondary);white-space:nowrap;letter-spacing:.02em;padding:10px 14px;font-size:12px;font-weight:600;position:relative}.admin-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:10px 14px}.admin-table tbody tr{transition:background .15s}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--bg-hover,#8080800a)}.admin-loading{text-align:center;color:var(--text-secondary);font-size:13px;padding:48px 40px!important}.user-row{cursor:pointer}.user-row.selected{background:#0071e30f!important}.user-row.selected td:first-child{border-left:3px solid var(--accent-color);padding-left:11px}.user-avatar-cell{width:36px;padding-right:0!important}.user-avatar-mini{background:var(--bg-tertiary);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.user-name{font-weight:500}.role-tag{background:var(--accent-color);color:#fff;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-block}.status-badge{border-radius:10px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-block}.status-badge.active{color:#34c759;background:#34c7591f}.status-badge.disabled{color:#ff3b30;background:#ff3b301a}.table-actions{gap:4px;display:flex}.table-btn{border:1px solid var(--border-color);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);white-space:nowrap;border-radius:6px;padding:5px 14px;font-size:12px;transition:all .15s}.table-btn:hover{background:var(--bg-secondary)}.table-btn.ok{border-color:var(--accent-color);color:var(--accent-color)}.table-btn.ok:hover{background:var(--accent-color);color:#fff}.table-btn.warn{color:#ff9500;border-color:#ff9500}.table-btn.warn:hover{color:#fff;background:#ff9500}.table-btn.danger{color:#ff3b30;border-color:#ff3b30}.table-btn.danger:hover{color:#fff;background:#ff3b30}.mini-btn{border:1px solid var(--border-color);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);border-radius:5px;padding:3px 10px;font-size:11px;transition:all .15s}.mini-btn:hover{background:var(--bg-secondary)}.mini-btn.ok{border-color:var(--accent-color);color:var(--accent-color)}.mini-btn.ok:hover{background:var(--accent-color);color:#fff}.mini-btn.danger{color:#ff3b30;border-color:#ff3b30}.mini-btn.danger:hover{color:#fff;background:#ff3b30}.admin-modal-overlay{z-index:20000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:14px;width:400px;max-height:80vh;padding:28px;animation:.15s ease-out modalIn;overflow-y:auto;box-shadow:0 12px 40px #00000026}.admin-modal.wide{width:640px}.admin-modal.confirm-modal{text-align:center;width:380px}.confirm-icon{margin-bottom:12px}.confirm-modal h3{margin:0 0 8px;font-size:17px;font-weight:600}.confirm-text{color:var(--text-secondary);margin:0 0 4px;font-size:13px;line-height:1.5}.confirm-modal .modal-actions{justify-content:center;margin-top:24px}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.admin-modal h3{margin:0 0 20px;font-size:16px;font-weight:600}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-group{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.form-group input:focus,.form-group select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #0071e31a}.org-manager{flex:1;display:flex;overflow:hidden}.org-sidebar{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;flex-shrink:0;width:220px;display:flex;overflow-y:auto}.org-sidebar-header{justify-content:space-between;align-items:center;padding:14px 14px 10px;display:flex}.org-sidebar-header h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:11px;font-weight:600}.org-tree{flex:1;padding:2px 0 8px}.org-tree-item{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:7px 14px;font-size:13px;transition:background .1s;display:flex}.org-tree-item:hover{background:var(--bg-hover,#8080800f)}.org-tree-item.selected{background:var(--accent-color);color:#fff;font-weight:500}.org-tree-item.selected svg{color:#fff;opacity:.9}.org-tree-item.selected .org-tree-count{color:#fff;background:#ffffff40}.org-tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.org-tree-count{background:var(--bg-tertiary,#80808014);color:var(--text-secondary);text-align:center;border-radius:10px;flex-shrink:0;min-width:20px;padding:1px 7px;font-size:11px}.org-inline-form{gap:4px;padding:4px 14px 8px;display:flex}.org-inline-form input,.org-inline-form select{border:1px solid var(--border-color);background:var(--bg-primary);min-width:0;color:var(--text-primary);border-radius:5px;outline:none;flex:1;padding:5px 8px;font-size:12px}.org-all-toggle{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;margin:0 10px 4px;padding:7px 12px;font-size:13px;transition:all .15s;display:flex}.org-all-toggle:hover{background:var(--bg-hover,#8080800f);border-color:var(--border-color);color:var(--text-primary)}.org-all-toggle.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.org-all-toggle.active svg{color:#fff}.org-all-toggle.active .org-tree-count{color:#fff;background:#ffffff40}.org-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.org-loading{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}@keyframes spinner{to{transform:rotate(360deg)}}.org-loading:before{content:"";border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spinner}.org-dept-header{border-bottom:1px solid var(--border-color);flex-shrink:0;padding:16px 20px 14px}.org-dept-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.org-dept-title h3{margin:0;font-size:15px;font-weight:600}.org-dept-count{color:var(--text-secondary);font-size:12px}.org-positions-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.org-section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.org-pos-list{flex-wrap:wrap;gap:6px;display:flex}.org-pos-tag{background:var(--bg-tertiary,#8080800f);border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;display:inline-flex}.org-pos-del{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0 0 0 2px;font-size:14px;line-height:1;transition:color .15s}.org-pos-del:hover{color:#ff3b30}.org-empty-hint{color:var(--text-secondary);font-size:12px}.org-toolbar{border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex}.org-toolbar .admin-search{margin-bottom:0}.org-result-count{color:var(--text-secondary);white-space:nowrap;font-size:12px}.org-table-wrap{flex:1;padding:12px 16px;overflow:auto}.role-manager{background:var(--bg-primary);flex:1;display:flex;overflow:hidden}.role-sidebar{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.role-sidebar-header{justify-content:space-between;align-items:center;padding:14px 14px 10px;display:flex}.role-sidebar-header h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:11px;font-weight:600}.role-list{flex:1;padding:4px 0;overflow-y:auto}.role-list-empty{text-align:center;color:var(--text-secondary);padding:32px;font-size:13px}.role-list-item{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:10px 14px;font-size:13px;transition:background .1s;display:flex}.role-list-item:hover{background:var(--bg-hover,#8080800f)}.role-list-item.selected{background:var(--accent-color);color:#fff;font-weight:500}.role-list-item.selected .system-tag{color:#fff;background:#ffffff40}.role-list-item.selected .role-perm-count{color:#ffffffb3}.role-list-item-name{flex:1;align-items:center;gap:6px;display:flex;overflow:hidden}.role-list-item-name span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.role-perm-count{color:var(--text-secondary);white-space:nowrap;font-size:11px}.role-list-del{cursor:pointer;width:20px;height:20px;color:var(--text-secondary);opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:all .15s;display:flex}.role-list-item:hover .role-list-del{opacity:1}.role-list-del:hover{color:#ff3b30;background:#ff3b301f}.role-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.role-content-empty{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.role-content-header{border-bottom:1px solid var(--border-color);flex-shrink:0;padding:16px 20px}.role-content-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.role-content-name{align-items:center;gap:8px;min-width:0;display:flex}.role-content-name h3{white-space:nowrap;margin:0;font-size:16px;font-weight:600}.role-icon-actions{gap:2px;margin-left:6px;display:flex}.role-icon-btn{cursor:pointer;width:26px;height:26px;color:var(--text-tertiary,#bbb);background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;transition:all .15s;display:flex}.role-icon-btn.edit:hover{color:var(--accent-color);background:#0071e314}.role-icon-btn.delete:hover{color:#ff3b30;background:#ff3b3014}.role-save-actions{gap:8px;display:flex}.role-content-desc{color:var(--text-secondary);margin:6px 0 0;font-size:12px}.perm-editor{flex-direction:column;flex:1;gap:20px;padding:20px;display:flex;overflow-y:auto}.system-tag{background:var(--accent-color);color:#fff;letter-spacing:.02em;border-radius:8px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:600}.perm-check-item.checked{border-color:var(--accent-color);background:#0071e30d}.perm-checklist{flex-direction:column;gap:16px;max-height:55vh;display:flex;overflow-y:auto}.perm-module h5{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:600}.perm-items{flex-wrap:wrap;gap:8px;display:flex}.perm-check-item{cursor:pointer;border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;transition:all .15s;display:flex}.perm-check-item:hover{border-color:var(--accent-color);background:#0071e308}.perm-check-item input{accent-color:var(--accent-color);margin:0}.perm-module-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.perm-module-header h5{margin:0}.perm-toggle-all{cursor:pointer;color:var(--accent-color);background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;transition:background .15s}.perm-toggle-all:hover{background:#0071e314}.perm-check-item.perm-added{background:#34c7590f;border-color:#34c759;box-shadow:0 0 0 1px #34c75926}.perm-check-item.perm-removed{opacity:.7;background:#ff3b300a;border-color:#ff3b30;box-shadow:0 0 0 1px #ff3b301f}.perm-check-item.perm-removed.checked{opacity:1;background:#ff3b300f}.perm-change-badge{border-radius:4px;flex-shrink:0;margin-left:4px;padding:1px 5px;font-size:10px;font-weight:600}.perm-added .perm-change-badge{color:#34c759;background:#34c75926}.perm-removed .perm-change-badge{color:#ff3b30;background:#ff3b301f}.perm-diff-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:8px 20px;font-size:12px;display:flex}.perm-diff-added{color:#34c759;font-weight:600}.perm-diff-removed{color:#ff3b30;font-weight:600}.perm-diff-hint{color:var(--text-secondary);font-size:11px}.table-btn.ok.highlight{color:#ff9500;border-color:#ff9500;animation:2s ease-in-out infinite pulse-save}.table-btn.ok.highlight:hover{color:#fff;background:#ff9500}@keyframes pulse-save{0%,to{box-shadow:0 0 #ff95004d}50%{box-shadow:0 0 0 6px #ff950000}}.prop-panel{border-left:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;flex-shrink:0;width:290px;display:flex;overflow-y:auto}.prop-header{border-bottom:1px solid var(--border-color);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;justify-content:space-between;align-items:center;padding:14px 16px;font-size:12px;font-weight:600;display:flex}.prop-close{cursor:pointer;width:24px;height:24px;color:var(--text-secondary);background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.prop-close:hover{background:var(--bg-hover);color:var(--text-primary)}.prop-body{flex-direction:column;gap:14px;padding:16px;display:flex}.prop-avatar-section{border-bottom:1px solid var(--border-color);align-items:center;gap:14px;padding-bottom:14px;display:flex}.prop-avatar{background:var(--bg-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.prop-user-name{font-size:15px;font-weight:600}.prop-user-role{color:var(--text-secondary);margin-top:3px;font-size:12px}.prop-field{flex-direction:column;gap:3px;display:flex}.prop-field label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:500}.prop-field span{color:var(--text-primary);font-size:13px}.prop-field input,.prop-field select{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;outline:none;padding:6px 10px;font-size:13px;transition:border-color .2s}.prop-field input:focus,.prop-field select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #0071e31a}.prop-hint{color:var(--text-secondary);margin:0;font-size:12px}.prop-pos-list{flex-wrap:wrap;gap:6px;display:flex}.prop-field .status-badge{align-self:flex-start}.prop-role-checklist{flex-direction:column;gap:4px;max-height:160px;display:flex;overflow-y:auto}.prop-role-check{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.prop-role-check input{margin:0}.prop-actions{border-top:1px solid var(--border-color);flex-direction:column;gap:6px;margin-top:10px;padding-top:14px;display:flex}.prop-btn{border:1px solid var(--border-color);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);text-align:center;border-radius:6px;padding:7px 14px;font-size:12px;transition:all .15s}.prop-btn:hover{background:var(--bg-hover)}.prop-btn.ok{border-color:var(--accent-color);color:var(--accent-color)}.prop-btn.ok:hover{background:var(--accent-color);color:#fff}.prop-btn.warn{color:#ff9500;border-color:#ff9500}.prop-btn.warn:hover{color:#fff;background:#ff9500}.prop-btn.danger{color:#ff3b30;border-color:#ff3b30}.prop-btn.danger:hover{color:#fff;background:#ff3b30}.prop-btn:disabled{opacity:.6;cursor:not-allowed}.company-settings{flex:1;justify-content:center;padding:40px 20px;display:flex;overflow-y:auto}.company-settings-card{width:480px;max-width:100%}.company-settings-card h3{margin:0 0 4px;font-size:18px;font-weight:600}.company-settings-hint{color:var(--text-secondary);margin:0 0 24px;font-size:13px}.company-settings-actions{margin-top:20px}.profile-app{background:var(--bg-primary);height:100%;display:flex}.profile-sidebar{border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-direction:column;gap:24px;width:220px;padding:24px 16px;display:flex}.profile-avatar-section{flex-direction:column;align-items:center;gap:8px;display:flex}.profile-avatar{cursor:pointer;background:var(--bg-tertiary);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-avatar-overlay{opacity:0;background:#0006;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.profile-avatar:hover .profile-avatar-overlay{opacity:1}.profile-role-badge{background:var(--accent-color);color:#fff;border-radius:12px;padding:2px 10px;font-size:11px;font-weight:600}.profile-info-section{flex-direction:column;gap:12px;display:flex}.profile-info-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.info-label{color:var(--text-secondary)}.status-active{color:var(--success,#34c759);font-weight:500}.profile-main{flex:1;padding:24px 32px;overflow-y:auto}.profile-tabs{border-bottom:1px solid var(--border-color);gap:0;margin-bottom:24px;display:flex}.profile-tabs button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 20px;font-size:13px;transition:all .2s}.profile-tabs button.active{color:var(--accent-color);border-bottom-color:var(--accent-color);font-weight:600}.profile-form{flex-direction:column;gap:16px;max-width:400px;display:flex}.form-group{flex-direction:column;gap:4px;display:flex}.form-group label{color:var(--text-secondary);font-size:12px;font-weight:500}.form-group input,.form-group select{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--accent-color)}.profile-save-btn{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:8px 24px;font-size:13px;font-weight:600}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-success{color:#34c759;background:#34c7591a;border-radius:6px;margin-bottom:16px;padding:8px 16px;font-size:13px}.profile-error{color:#ff3b30;background:#ff3b301a;border-radius:6px;margin-bottom:16px;padding:8px 16px;font-size:13px}.kanban-view{background:var(--bg,#f8f9fa);height:100%;color:var(--text,#1f2328);flex-direction:column;font-size:13px;display:flex;overflow:hidden}.kanban-loading{height:100%;color:var(--text-muted,#8b949e);justify-content:center;align-items:center;gap:10px;display:flex}.kanban-spinner{border:2px solid var(--border,#e1e4e8);border-top-color:#4f6ef7;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}.kanban-header{border-bottom:1px solid var(--border,#e1e4e8);background:var(--surface,#fff);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.kanban-header-left{align-items:center;gap:10px;display:flex}.kanban-title{margin:0;font-size:15px;font-weight:600}.kanban-task-count{color:var(--text-muted,#8b949e);font-size:12px}.kanban-header-right{align-items:center;gap:8px;display:flex}.kanban-filter{border:1px solid var(--border,#e1e4e8);background:var(--surface,#fff);color:var(--text,#1f2328);cursor:pointer;border-radius:5px;outline:none;padding:4px 8px;font-size:12px}.kanban-filter:focus{border-color:#4f6ef7}.kanban-edit-btn{color:#4f6ef7;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #4f6ef7;border-radius:5px;padding:4px 12px;font-size:12px;font-weight:500}.kanban-edit-btn:hover{background:#eef1ff}.kanban-columns{flex:1;gap:12px;min-height:0;padding:14px 20px;display:flex;overflow-x:auto}.kanban-columns::-webkit-scrollbar{height:6px}.kanban-columns::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:3px}.kanban-column{background:var(--bg,#f0f2f5);border-radius:8px;flex-direction:column;flex:1;min-width:200px;max-width:320px;display:flex;overflow:hidden}.kanban-column-header{border-top:3px solid;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.kanban-column-title{font-size:12px;font-weight:600}.kanban-column-count{background:var(--text-muted,#8b949e);color:#fff;opacity:.6;border-radius:8px;padding:1px 7px;font-size:10px}.kanban-column-body{flex-direction:column;flex:1;gap:6px;padding:4px 8px 8px;display:flex;overflow-y:auto}.kanban-column-body::-webkit-scrollbar{width:4px}.kanban-column-body::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:2px}.kanban-empty-col{text-align:center;color:var(--text-muted,#adb5bd);padding:20px 0;font-size:12px}.kanban-card{background:var(--surface,#fff);border:1px solid var(--border,#e1e4e8);cursor:grab;border-radius:6px;padding:10px 12px;transition:box-shadow .12s,transform 80ms}.kanban-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.kanban-card:active{cursor:grabbing}.kanban-card-header{justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:6px;display:flex}.kanban-card-name{word-break:break-word;flex:1;font-size:12px;font-weight:500;line-height:1.4}.kanban-card-priority{color:#fff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:500;line-height:1.5}.kanban-card-meta{color:var(--text-muted,#8b949e);align-items:center;gap:8px;margin-bottom:6px;font-size:11px;display:flex}.kanban-card-assignee,.kanban-card-duration{font-size:11px}.kanban-card-progress{align-items:center;gap:6px;display:flex}.kanban-progress-bar{background:var(--bg,#e9ecef);border-radius:2px;flex:1;height:4px;overflow:hidden}.kanban-progress-fill{border-radius:2px;height:100%;transition:width .3s}.kanban-progress-text{font-family:monospace;font-size:10px;font-weight:600}.home-app{background:linear-gradient(135deg,#f5f7fa 0%,#eef1f5 100%);flex-direction:column;gap:20px;height:100%;padding:24px 28px;display:flex;overflow:auto}.home-header{flex-shrink:0}.home-greeting{margin-bottom:16px}.home-greeting-text{color:#1a1a2e;font-size:20px;font-weight:650;display:block}.home-subtitle{color:#8e8e93;margin-top:2px;font-size:12px}.home-stats-row{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.home-stat-card{border-left:3px solid var(--stat-color,#4f6ef7);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:16px 20px;display:flex;box-shadow:0 1px 4px #0000000f}.home-stat-value{color:var(--stat-color,#4f6ef7);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.home-stat-label{color:#8e8e93;font-size:12px;font-weight:500}.home-grid{flex:1;grid-template-columns:1fr 1fr;align-content:start;gap:16px;display:grid}.home-section-wide{grid-column:1/-1}.home-section{background:#fff;border-radius:14px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000f}.home-section-header{border-bottom:1px solid #f0f0f0;flex-shrink:0;padding:14px 18px}.home-section-header h3{color:#1a1a2e;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:630;display:flex}.home-count{color:#fff;text-align:center;background:#4f6ef7;border-radius:8px;min-width:18px;padding:0 7px;font-size:11px;font-weight:600;line-height:18px}.home-section-body{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex;overflow:auto}.home-item{border:1px solid #f0f0f0;border-radius:10px;padding:12px 14px;transition:all .15s}.home-item.clickable{cursor:pointer}.home-item.clickable:hover{background:#f8f9ff;border-color:#4f6ef744;box-shadow:0 2px 6px #4f6ef714}.home-item-instr{border-left:3px solid #ff9500}.home-item-issue{border-left:3px solid #ff3b30}.home-item-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.home-item-name{color:#1a1a2e;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.home-item-badge{white-space:nowrap;border-radius:6px;flex-shrink:0;padding:1px 8px;font-size:10px;font-weight:500}.home-item-desc{color:#666;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.home-item-meta{color:#8e8e93;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.home-project-tag{color:#555;background:#eef1f5;border-radius:4px;padding:1px 7px;font-size:10px}.home-status-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.home-status-dot.open{background:#ff3b30}.home-status-dot.in_progress{background:#ff9500}.home-progress-track{background:#e9ecef;border-radius:3px;height:5px;margin-top:6px;position:relative;overflow:hidden}.home-progress-fill{border-radius:3px;height:100%;transition:width .3s}.home-progress-text{color:#8e8e93;font-size:10px;font-weight:500;position:absolute;top:-16px;right:0}.home-progress-label{color:#8e8e93;text-align:right;font-size:11px;font-weight:500}.home-project-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.home-project-card{border:1px solid #f0f0f0;border-radius:10px;padding:14px;transition:all .15s}.home-project-card.clickable{cursor:pointer}.home-project-card.clickable:hover{background:#f8f9ff;border-color:#4f6ef744}.home-project-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.home-project-name{color:#1a1a2e;font-size:13px;font-weight:630}.home-project-phase{color:#555;background:#eef1f5;border-radius:4px;padding:1px 7px;font-size:10px}.home-project-stats{color:#8e8e93;gap:12px;margin-bottom:8px;font-size:11px;display:flex}.home-loading{color:#8e8e93;justify-content:center;align-items:center;gap:10px;height:100%;font-size:14px;display:flex}.home-spinner{border:2px solid #e0e0e0;border-top-color:#4f6ef7;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite home-spin}@keyframes home-spin{to{transform:rotate(360deg)}}.home-empty{color:#8e8e93;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.home-empty-sm{text-align:center;color:#8e8e93;padding:30px;font-size:12px}.home-app::-webkit-scrollbar{width:5px}.home-app::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px}.supplier-app{background:#fff;border-radius:0 0 10px 10px;height:100%;display:flex;overflow:hidden}.supplier-list-panel{background:#fafbfc;border-right:1px solid #edf0f5;flex-direction:column;width:260px;min-width:200px;display:flex}.supplier-list-header{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.supplier-list-header h3{color:#1a1a2e;margin:0;font-size:14px;font-weight:600}.supplier-add-btn{color:#4f6ef7;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .12s;display:flex}.supplier-add-btn:hover{background:#eef1ff}.supplier-search{color:#9ca3af;background:#f0f2f6;border-radius:8px;align-items:center;gap:6px;margin:8px 16px;padding:6px 10px;display:flex}.supplier-search input{color:#1a1a2e;background:0 0;border:none;outline:none;flex:1;font-size:12px}.supplier-list{flex:1;padding:4px 8px;overflow-y:auto}.supplier-row{cursor:pointer;border-radius:10px;align-items:center;gap:10px;margin-bottom:2px;padding:10px 12px;transition:background .12s;display:flex}.supplier-row:hover{background:#f0f2f6}.supplier-row.active{background:#eef1ff}.supplier-avatar{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:700;display:flex}.supplier-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.supplier-row-name{color:#1a1a2e;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.supplier-row-type{color:#8e8ea0;font-size:11px}.supplier-list-empty{text-align:center;color:#9ca3af;padding:40px 16px;font-size:13px}.supplier-detail{flex:1;justify-content:center;align-items:flex-start;min-width:0;display:flex;overflow-y:auto}.supplier-detail-content{flex-direction:column;gap:20px;width:100%;max-width:600px;padding:28px 32px;display:flex}.supplier-detail-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.supplier-detail-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.supplier-detail-title h2{color:#1a1a2e;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:650;overflow:hidden}.supplier-detail-title svg{color:#8e8ea0;flex-shrink:0}.supplier-edit-title-input{color:#1a1a2e;background:#fff;border:1.5px solid #4f6ef7;border-radius:8px;outline:none;flex:1;padding:4px 10px;font-size:20px;font-weight:650}.supplier-type-badge{color:#fff;border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:500}.supplier-detail-actions{flex-shrink:0;gap:6px;display:flex}.supplier-action-btn{color:#1a1a2e;cursor:pointer;background:#fff;border:1.5px solid #edf0f5;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;transition:all .12s;display:flex}.supplier-action-btn:hover{background:#fafbfc;border-color:#d0d7e3}.supplier-action-btn.save{color:#fff;background:#4f6ef7;border-color:#4f6ef7}.supplier-action-btn.save:hover{opacity:.9}.supplier-action-btn.danger{color:#ef4444;border-color:#fca5a5}.supplier-action-btn.danger:hover{background:#fef2f2}.supplier-detail-body{flex-direction:column;gap:16px;display:flex}.supplier-detail-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.supplier-field{flex-direction:column;gap:4px;display:flex}.supplier-field.supplier-notes{grid-column:1/-1}.supplier-field-label{color:#8e8ea0;align-items:center;gap:4px;font-size:11px;display:flex}.supplier-field-value{color:#1a1a2e;font-size:13px}.supplier-field-value input,.supplier-field-value select,.supplier-field-value textarea{color:#1a1a2e;box-sizing:border-box;background:#fff;border:1.5px solid #e2e6ed;border-radius:8px;outline:none;width:100%;padding:6px 10px;font-family:inherit;font-size:13px}.supplier-field-value input:focus,.supplier-field-value select:focus,.supplier-field-value textarea:focus{border-color:#4f6ef7}.supplier-field-value textarea{resize:vertical}.supplier-detail-footer{border-top:1px solid #edf0f5;padding-top:8px}.supplier-meta{color:#9ca3af;font-size:11px}.supplier-empty{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 32px;display:flex}.supplier-empty p{margin:0;font-size:14px}.form-overlay{z-index:2147483647;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.supplier-form-modal{background:#fff;border-radius:14px;flex-direction:column;gap:10px;width:420px;max-width:90vw;padding:24px;display:flex;box-shadow:0 16px 48px #00000040}.supplier-form-modal h3{margin:0 0 4px;font-size:16px;font-weight:600}.supplier-form-modal input,.supplier-form-modal select{border:1.5px solid #e2e6ed;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.supplier-form-modal input:focus,.supplier-form-modal select:focus{border-color:#4f6ef7}.supplier-form-modal textarea{resize:vertical;border:1.5px solid #e2e6ed;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.supplier-form-modal textarea:focus{border-color:#4f6ef7}.form-buttons{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.form-buttons button{cursor:pointer;border:none;border-radius:8px;padding:7px 20px;font-size:13px;transition:all .12s}.form-buttons button:first-child{color:#1a1a2e;background:#f0f2f6}.form-buttons button:last-child{color:#fff;background:#4f6ef7}.form-buttons button:last-child:disabled{opacity:.5;cursor:default}.form-buttons button:last-child:not(:disabled):hover{opacity:.9}.field-empty{color:#9ca3af;font-size:12px;font-style:italic}.mac-desktop{background-position:50%;background-size:cover;flex-direction:column;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.desktop-area{flex:1;margin-top:28px;position:relative;overflow:hidden}.desktop-context-menu{z-index:10003;background:var(--glass-bg);-webkit-backdrop-filter:blur(30px);border:.5px solid #0000001f;border-radius:8px;min-width:180px;padding:4px 0;font-size:13px;position:fixed;box-shadow:0 8px 30px #00000026}[data-theme=dark] .desktop-context-menu{border-color:#ffffff1a}.desktop-context-menu .menu-item{cursor:default;color:var(--text-primary);padding:5px 12px}.desktop-context-menu .menu-item:hover{background:var(--accent-color);color:#fff}.desktop-context-menu .menu-separator{background:var(--border-color);height:1px;margin:4px 8px}.menu-section-label{text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.3px;padding:4px 12px 2px;font-size:10px;font-weight:700;display:block}
