*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-main:#080b10;--bg-sidebar:#0e131b;--bg-card:#141a24;--bg-hover:#1a2230;--bg-header:#101722;--border-main:#222b38;--border-sub:#18202b;--border-light:#2b3544;--border-grid:#ffffff0f;--text-primary:#f4f7fa;--text-secondary:#a6b0bf;--text-muted:#6f7a89;--text-disabled:#4e5867;--color-danger:#ff3b4f;--color-accent:#35ddf5;--neon-red:#ff3b4f;--neon-orange:#ff9f1c;--neon-yellow:#ffe45e;--neon-green:#2ef29e;--neon-cyan:#35ddf5;--neon-blue:#3b82ff;--neon-violet:#8b5cf6;--radius:6px;--shadow:0 1px 3px #0000004d;--shadow-md:0 4px 20px #00000080}body{color:var(--text-primary);background:var(--bg-main);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:13px;line-height:1.5}.app-layout{height:100vh;display:flex;overflow:hidden}.app-main{background:var(--bg-main);flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-main);flex-direction:column;flex-shrink:0;width:240px;transition:width .2s;display:flex;overflow:hidden}.sidebar--collapsed{width:48px}.btn-hamburger{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px;display:none}.btn-hamburger:hover{color:var(--text-primary)}@media (width<=768px){.btn-hamburger{align-items:center;display:flex}.sidebar{z-index:300;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px #00000080;width:260px!important}.sidebar--drawer-open{transform:translate(0)}.sidebar-collapse-btn{display:none}}.drawer-overlay{display:none}@media (width<=768px){.drawer-overlay{z-index:299;background:#00000080;display:block;position:fixed;inset:0}}.sidebar-header{border-bottom:1px solid var(--border-main);justify-content:space-between;align-items:center;gap:4px;height:52px;padding:10px;display:flex}.sidebar--collapsed .sidebar-header{justify-content:center}.sidebar-header-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.sidebar-collapse-btn{color:var(--text-muted);font-size:16px;line-height:1}.project-list-collapsed{flex-direction:column;align-items:center;gap:2px;padding:8px 0;list-style:none;display:flex}.project-dot-btn{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .1s;display:flex}.project-dot-btn:hover,.project-dot-btn--active{background:var(--bg-hover)}.project-dot--lg{border-radius:50%;flex-shrink:0;width:12px;height:12px}.project-dot-add{color:var(--text-muted);font-size:18px;line-height:1}.sidebar-logo{object-fit:contain;object-position:left center;width:auto;height:40px}.client-filters{border-bottom:1px solid var(--border-sub);flex-wrap:wrap;gap:4px;padding:8px 12px;display:flex}.project-list{flex:1;padding:6px 0;list-style:none;overflow-y:auto}.project-item{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;transition:background .1s;display:flex;position:relative}.project-item:hover{background:var(--bg-hover)}.project-item--active{background:var(--bg-hover);border-left:2px solid;padding-left:10px}.project-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.project-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.project-client{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-light);border-radius:100px;padding:1px 6px;font-size:11px}.project-actions{gap:2px;display:none}.project-item:hover .project-actions{display:flex}.project-empty{color:var(--text-disabled);padding:20px 12px;font-size:12px}.gantt-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.gantt-topbar{border-bottom:1px solid var(--border-main);background:var(--bg-header);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.gantt-topbar-left{align-items:center;gap:10px;display:flex}.gantt-topbar-right{align-items:center;gap:8px;display:flex;position:relative}.gantt-project-title{color:var(--text-primary);font-size:15px;font-weight:600}.gantt-empty{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.gantt-wrapper{flex:1;display:flex;overflow:hidden}.gantt-labels{border-right:1px solid var(--border-main);background:var(--bg-sidebar);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.gantt-labels-body{flex:1;overflow:hidden}.gantt-labels-header{border-bottom:1px solid var(--border-main);background:var(--bg-header);flex-shrink:0;align-items:center;padding:0 12px;display:flex}.gantt-label{border-bottom:1px solid var(--border-sub);align-items:center;gap:6px;padding:0 12px;display:flex;overflow:hidden}.gantt-label--group{background:var(--bg-header);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.gantt-label--task{color:var(--text-primary);background:var(--bg-sidebar);font-size:13px;font-weight:400}.gantt-label--task:hover{background:var(--bg-hover)}.gantt-label--task .drag-handle{cursor:grab;color:var(--text-muted);opacity:0;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:14px;transition:opacity .15s}.gantt-label--task:hover .drag-handle{opacity:1}.gantt-label--drop-target{border-top:2px solid #3b82ff!important}.gantt-label .label-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.gantt-label-actions{flex-shrink:0;gap:2px;display:none}.gantt-label:hover .gantt-label-actions{display:flex}.gantt-timeline-scroll{background:var(--bg-main);flex:1;position:relative;overflow:auto}.task-popover{z-index:50;background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--shadow-md);pointer-events:auto;border-radius:8px;min-width:220px;max-width:300px;padding:12px;position:absolute}.task-popover-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.task-popover-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.task-popover-name{color:var(--text-primary);flex:1;font-size:13px;font-weight:600}.task-popover-dates{color:var(--text-secondary);background:var(--bg-main);border-radius:4px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.task-popover-arrow{color:var(--text-muted)}.task-popover-section{border-top:1px solid var(--border-sub);margin-top:10px;padding-top:8px}.task-popover-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:600}.task-popover-subtask{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:2px 0;font-size:12px;display:flex}.task-popover-subdates{color:var(--text-muted);font-size:11px}.task-popover-dep{color:var(--text-secondary);padding:2px 0;font-size:12px}.gantt-timeline-scroll::-webkit-scrollbar{width:6px;height:6px}.gantt-timeline-scroll::-webkit-scrollbar-track{background:var(--bg-main)}.gantt-timeline-scroll::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}.gantt-svg{display:block}.gantt-header-text{fill:var(--text-secondary);font-family:inherit;font-size:11px;font-weight:600}.gantt-week-text{fill:var(--text-muted);font-family:inherit;font-size:10px}.gantt-day-text{text-transform:uppercase;letter-spacing:.03em;font-family:inherit;font-size:9px}.gantt-date-text{font-family:inherit;font-size:10px;font-weight:500}.gantt-task-label{fill:#ffffffeb;font-family:inherit;font-size:11px;font-weight:500}.gantt-zone-text{fill:var(--neon-red);opacity:.8;font-family:inherit;font-size:10px;font-weight:500}.blocking-panel{position:relative}.blocking-dropdown{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:100;width:340px;padding:12px;position:absolute;top:calc(100% + 6px);right:0}.blocking-form{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.blocking-list{flex-direction:column;gap:4px;list-style:none;display:flex}.blocking-item{border-top:1px solid var(--border-sub);align-items:center;gap:8px;padding:4px 0;display:flex}.blocking-zone-name{color:var(--text-primary);flex:1;font-weight:500}.blocking-zone-dates{color:var(--text-muted);font-size:11px}.blocking-empty{color:var(--text-muted);padding:4px 0;font-size:12px}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn--primary{background:var(--text-primary);color:var(--bg-main)}.btn--primary:hover{opacity:.88}.btn--ghost{color:var(--text-secondary);border:1px solid var(--border-light);background:0 0}.btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn--sm{padding:4px 8px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-icon{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:3px 6px;font-family:inherit;font-size:13px;line-height:1;transition:background .1s,color .1s}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon--sm{padding:2px 4px;font-size:12px}.btn-icon--danger:hover{color:var(--neon-red);background:#ff3b4f1f}.tag{background:var(--bg-card);border:1px solid var(--border-light);cursor:pointer;color:var(--text-muted);border-radius:100px;align-items:center;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:500;transition:background .1s;display:inline-flex}.tag--active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.tag:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--shadow-md);border-radius:10px;width:400px;max-width:90vw;padding:24px}.modal-title{color:var(--text-primary);margin-bottom:20px;font-size:15px;font-weight:600}.modal-form{flex-direction:column;gap:14px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.form-label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:12px;font-weight:500;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-input{border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-primary);background:var(--bg-main);outline:none;width:100%;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}.form-input:focus{border-color:var(--border-light);box-shadow:0 0 0 2px #35ddf51a}.form-input--sm{padding:5px 8px;font-size:12px}.form-input[type=date]::-webkit-calendar-picker-indicator{filter:invert()opacity(.4);cursor:pointer}.color-picker{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:transform .1s,border-color .1s}.color-swatch:hover{transform:scale(1.15)}.color-swatch--active{border-color:var(--text-primary)}.share-page{background:var(--bg-main);flex-direction:column;height:100vh;display:flex;overflow:hidden}.share-header{border-bottom:1px solid var(--border-main);background:var(--bg-header);flex-shrink:0;align-items:center;gap:10px;padding:12px 20px;display:flex}.share-badge{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-light);border-radius:100px;margin-left:auto;padding:2px 10px;font-size:11px}.share-gantt{flex:1;display:flex;overflow:hidden}.share-error{height:100vh;color:var(--text-muted);background:var(--bg-main);justify-content:center;align-items:center;display:flex}.group-name-text{text-overflow:ellipsis;white-space:nowrap;cursor:text;color:var(--text-secondary);flex:1;overflow:hidden}.group-name-input{border:1px solid var(--border-light);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background:var(--bg-main);border-radius:3px;outline:none;flex:1;min-width:0;padding:1px 5px;font-family:inherit;font-size:11px;font-weight:600;box-shadow:0 0 0 2px #35ddf526}.dep-list{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-main);flex-direction:column;gap:4px;max-height:140px;margin-top:4px;padding:6px 8px;display:flex;overflow-y:auto}.dep-item{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:400;display:flex}.dep-item input[type=checkbox]{accent-color:var(--neon-cyan);cursor:pointer;width:14px;height:14px}
