.view-switch{display:flex;gap:3px;padding:4px;background:#f5f7fa;border:1px solid #e6ebf1;border-radius:8px;flex-shrink:0}.view-switch a{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;padding:8px 12px;color:#8b97a7;border-radius:5px;white-space:nowrap}.view-switch a.selected{background:#fff;color:#4e6e98;box-shadow:0 1px 4px #243a5b12}.view-switch .icon{width:16px;height:16px;opacity:.5}.planning-filters{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:21px;margin-bottom:23px;flex-wrap:wrap}.planning-filters .table-search{margin:0}.planning-filters select,.planning-options select{font-size:11px;color:#77869a;min-height:34px;max-width:230px}.planning-filters .filter-group{gap:8px}.planning-filter-note{font-size:11px;color:#8d99a8;margin:-9px 0 20px;line-height:1.6}.planning-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.period-controls{display:flex;align-items:center;gap:6px}.period-controls h2{text-transform:capitalize;font-size:17px;margin:0 10px;letter-spacing:-.3px;line-height:1.5}.period-controls .icon-button{border:1px solid var(--line);background:#fff;width:30px;height:30px}.period-controls .icon{width:15px;height:15px}.today-button{min-height:30px;padding:6px 11px;font-size:11px}.planning-options{display:flex;align-items:center;gap:9px}.month-jump{display:flex;align-items:center;gap:7px;border:1px solid #e5e9ef;border-radius:5px;padding:5px 8px;min-height:34px;color:#8692a3}.month-jump .icon{width:15px;height:15px;opacity:.4}.month-jump input{border:0;background:transparent;font-size:11px;color:#75859a;width:134px}.planning-legend{display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin:0 0 16px;min-height:20px;font-size:10px;color:#8c99aa}.planning-legend>span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#82a0c9}.legend-dot.project{background:#b4a1cb}.legend-dot.task{background:#91afd2}.legend-dot.hosting{background:#d1af7c}.legend-dot.actual{background:#89b09a}.legend-dot.critical{background:#be8aab}.legend-dot.late{background:#cd8884}.legend-summary{margin-left:auto;font-size:10px;color:#98a3b3}.legend-bar{display:inline-block;width:18px;height:7px;border-radius:2px;background:#a2b9d7}.legend-bar.plan{background:#b7c5db}.legend-bar.actual{background:#94b4a3}.legend-bar.task{background:#91afd2}.legend-today{width:1px;height:12px;background:#d18880;display:inline-block;margin:0 3px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:start}.calendar-scroll{min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d8e0eb transparent}.month-calendar{min-width:620px;border-radius:9px}.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fafbfc;border-bottom:1px solid var(--line);font-size:10px;color:#8e9aac}.weekdays span{padding:12px 13px}.weekdays span:nth-last-child(-n+2){color:#b09792}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-height:113px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 5px;background:#fff;min-width:0;transition:background .12s}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day.weekend{background:#fdfcfc}.calendar-day.outside-month{background:#fafbfc}.calendar-day.outside-month .day-number{color:#bcc4cf}.calendar-day.selected{background:#f4f7fc;box-shadow:inset 0 0 0 1px #b6c7df}.day-number{display:flex;align-items:center;gap:4px;width:100%;padding:4px 5px;font-size:11px;color:#79869a;text-align:left;min-height:25px;line-height:1.2}.day-number:focus-visible{outline-offset:-2px;border-radius:3px}.calendar-day.is-today .day-number{color:#426eaa;font-weight:700}.today-label{font-size:7px;font-weight:500;background:#e8effa;color:#6789b7;border-radius:3px;padding:3px;overflow:hidden}.day-events{display:flex;flex-direction:column;gap:4px;margin-top:3px}.calendar-event{display:flex;gap:4px;align-items:flex-start;border-radius:4px;padding:4px 5px;line-height:1.35;text-align:left;font-size:9px;color:#6183af;background:#edf3fb;min-width:0;width:100%;font-weight:450}.calendar-event>span:last-child{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.event-dot{width:3px;height:3px;border-radius:50%;background:currentColor;flex-shrink:0;margin-top:4px}.calendar-event:hover{filter:brightness(.97);color:inherit}.calendar-event.project{color:#9984b1;background:#f3eef8}.calendar-event.actual,.calendar-event.done{color:#65947c;background:#edf5ef}.calendar-event.hosting{color:#aa895a;background:#faf3e9}.calendar-event.critical{color:#a47a96;background:#f8edf4}.calendar-event.late{color:#b67370;background:#fbf0ee}.more-events{font-size:9px;color:#8896aa;text-align:left;padding:3px 5px}.more-events:hover{color:var(--accent)}.calendar-agenda{padding:20px 16px}.agenda-heading{border-bottom:1px solid var(--line);padding:0 3px 17px;margin-bottom:7px}.agenda-heading>span{font-size:8px;letter-spacing:1.3px;color:#9ca7b7;font-weight:600}.agenda-heading h2{font-size:16px;margin:12px 0 5px}.agenda-heading p{font-size:10px;color:#98a3b3;text-transform:capitalize}.agenda-event{display:flex;align-items:flex-start;gap:9px;padding:15px 2px;text-align:left;width:100%;border-bottom:1px solid #eff2f6;line-height:1.55}.agenda-event:last-child{border-bottom:0}.agenda-event>span:nth-child(2){flex:1;min-width:0}.agenda-event strong{font-size:11px;font-weight:550;color:#687991;display:block;overflow-wrap:anywhere}.agenda-event small{display:block;font-size:9px;color:#96a2b3;margin-top:4px}.agenda-event>.icon{width:13px;height:13px;margin-top:3px;opacity:.3}.event-symbol{width:26px;height:26px;border-radius:6px;background:#edf3fb;display:flex;align-items:center;justify-content:center;flex-shrink:0}.event-symbol.project{background:#f3eef8}.event-symbol.hosting{background:#faf3e9}.event-symbol.actual,.event-symbol.done{background:#edf5ef}.event-symbol .icon{width:15px;height:15px;opacity:.45}.agenda-empty{padding:24px 8px;text-align:center;color:#9ca7b8;font-size:11px;line-height:1.8}.agenda-empty .icon{width:25px;height:25px;opacity:.28;margin-bottom:9px}.agenda-next{margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}.agenda-next h3{font-size:11px;font-weight:550;color:#8795a8;margin-bottom:18px}.agenda-next-date{font-size:9px;color:#a2acba;margin-bottom:-7px}.agenda-next .agenda-event{padding:13px 2px;margin-bottom:12px}.planning-empty-period{display:flex;align-items:center;gap:8px;font-size:11px;color:#93a0b2;margin-top:19px;line-height:1.7}.planning-empty-period .icon{width:16px;height:16px;opacity:.4}.planning-undated{margin-top:24px;padding:0 19px}.planning-undated summary{cursor:pointer;display:flex;align-items:center;gap:9px;font-size:12px;color:#8290a3;padding:17px 0;list-style:none}.planning-undated summary::-webkit-details-marker{display:none}.planning-undated summary:after{content:'+';margin-left:auto;font-size:16px;color:#a1adbd}.planning-undated[open] summary:after{content:'−'}.planning-undated summary>.icon{width:16px;height:16px;opacity:.45}.planning-undated summary>span{font-size:10px;padding:2px 6px;border-radius:4px;background:#f1f4f8;color:#8b99ac}.planning-undated>p{color:#9aa6b6;font-size:11px;line-height:1.7}.undated-list{display:flex;flex-wrap:wrap;gap:10px;padding:17px 0}.undated-list>a,.undated-list>button{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:6px;border:1px solid var(--line);font-size:11px;text-align:left;flex-wrap:wrap}.undated-list .icon{width:15px;height:15px;opacity:.45}.undated-list small{font-size:9px;color:#9da8b6}.gantt-scroll{overflow:auto;max-height:690px;scrollbar-width:thin;scrollbar-color:#cdd8e7 #f7f9fc;isolation:isolate}.gantt-table{border-collapse:separate;border-spacing:0;min-width:100%;text-align:left}.gantt-table th,.gantt-table td{padding:0;border-bottom:1px solid #edf0f5;vertical-align:middle;font-weight:400}.gantt-table tbody tr:last-child>*{border-bottom:0}.gantt-table thead th{position:sticky;top:0;background:#fbfcfe;z-index:4}.gantt-table .gantt-label{position:sticky;left:0;min-width:250px;width:250px;max-width:250px;background:#fff;z-index:2;border-right:1px solid #e7ebf2;padding:0 13px}.gantt-table thead .gantt-label{z-index:5;background:#fbfcfe;font-size:11px;color:#7f8c9f;line-height:1.6}.gantt-label>small{display:block;font-size:9px;color:#9da7b6;font-weight:400;margin-top:4px}.gantt-project-row .gantt-label{background:#f9fbfe}.gantt-project-row .gantt-label>small{margin:2px 0 0 26px;font-size:9px;color:#96a2b3}.gantt-project-name{display:flex;align-items:center;gap:5px}.gantt-project-name>.icon-button{width:23px;height:23px;padding:3px;margin-left:-3px}.gantt-project-name>.icon-button .icon{width:13px;height:13px;opacity:.5}.gantt-project-name>a{font-size:11px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#61738d;min-width:0}.gantt-project-name>span{margin-left:auto;font-size:8px;background:#ecf0f6;padding:2px 5px;border-radius:3px;color:#9ba8ba}.gantt-task-row .gantt-label>button{display:flex;gap:8px;align-items:center;padding:6px 2px 6px 16px;width:100%;text-align:left}.gantt-task-row .gantt-label>button>.icon{width:13px;height:13px;opacity:.35;flex-shrink:0}.gantt-task-row .gantt-label>button>span{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#7c8aa0;line-height:1.5}.gantt-task-row .gantt-label small{display:block;font-size:8px;color:#a6afbc;margin-top:3px}.gantt-task-row:hover .gantt-label{background:#fcfdff}.gantt-track{position:relative;line-height:0}.gantt-grid{position:absolute;left:0;top:0;pointer-events:none}.gantt-drawing{position:relative;display:block;overflow:hidden}.gantt-weekend{fill:#f7f9fc}.gantt-gridline{fill:none;stroke:#edf0f5;stroke-width:1}.gantt-today-line{stroke:#d79b94;stroke-width:1;stroke-dasharray:3 3}.gantt-day-label{fill:#9ba7b8;font-family:var(--font);font-size:9px}.gantt-day-label.today{fill:#bf7c75;font-weight:700}.gantt-month-label{fill:#8191a9;font-family:var(--font);font-size:11px}.gantt-bar{fill:#a0b9d9;stroke:#8ea9cd;stroke-width:.7}.gantt-bar.plan{fill:#c4d1e5;stroke:#a7bad6}.gantt-bar.actual{fill:#a6c4b2;stroke:#8aad99}.gantt-bar.done{fill:#afcbb9;stroke:#91b49f}.gantt-bar.critical{fill:#c9a7bd;stroke:#b68da7}.gantt-bar.late{fill:#dfb4ad;stroke:#cd948b}.gantt-clip{fill:none;stroke:#fff;stroke-width:1.5;opacity:.8}.gantt-bar-link{cursor:pointer;outline:none}.gantt-bar-link:hover .gantt-bar{filter:brightness(.94);stroke-width:1.5}.gantt-bar-link:focus-visible .gantt-bar{stroke:#4b719f;stroke-width:2.5}.gantt-outside{fill:#b5bdc9;font-size:10px;font-family:var(--font)}
@media(min-width:1500px){.calendar-layout{grid-template-columns:minmax(0,1fr) 270px}.calendar-day{min-height:128px}.calendar-event{font-size:10px}.agenda-event strong{font-size:12px}}
@media(max-width:1250px){.calendar-layout{grid-template-columns:1fr}.calendar-agenda{display:grid;grid-template-columns:200px 1fr;gap:0 20px}.calendar-agenda>.agenda-heading{border-bottom:0;border-right:1px solid var(--line);grid-row:1/6;padding-right:18px}.agenda-next{grid-column:2}.agenda-empty{padding:12px}.agenda-next .agenda-event{margin:0}.month-calendar{min-width:680px}.planning-filters .table-search{flex:1;max-width:270px;min-width:170px}.planning-filters .table-search input{width:100%}}
@media(max-width:760px){.view-switch{padding:3px}.view-switch a{font-size:0;padding:8px}.view-switch .icon{width:18px;height:18px}.planning-filters{padding-bottom:16px;margin-bottom:19px;gap:10px}.planning-filters .filter-group{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.planning-filters select{font-size:10px;max-width:100%;width:100%;min-width:0}.planning-filters .table-search{max-width:none;width:100%;padding:9px}.planning-toolbar{gap:13px}.period-controls{width:100%;gap:4px}.period-controls h2{font-size:14px;margin:0 6px;flex:1}.period-controls .today-button{font-size:10px;padding:6px 9px}.planning-options{width:100%;justify-content:space-between}.planning-options select{font-size:10px;max-width:190px}.month-jump input{font-size:10px;width:125px}.planning-legend{font-size:9px;gap:11px}.planning-legend .legend-summary{font-size:9px}.calendar-scroll{margin:0 -15px;padding:0 15px}.month-calendar{min-width:680px}.calendar-day{min-height:109px}.calendar-agenda{display:block;padding:20px}.calendar-agenda>.agenda-heading{border-right:0;border-bottom:1px solid var(--line);padding-bottom:15px}.calendar-agenda .agenda-next{display:none}.calendar-agenda .agenda-event strong{font-size:12px}.calendar-agenda .agenda-event small{font-size:10px}.calendar-layout{gap:18px}.agenda-empty{padding:17px}.gantt-table .gantt-label{min-width:168px;width:168px;max-width:168px;padding:0 8px}.gantt-project-name>a{font-size:10px}.gantt-project-name>span{display:none}.gantt-project-row .gantt-label>small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:24px}.gantt-task-row .gantt-label>button{padding-left:7px;gap:5px}.gantt-task-row .gantt-label>button>span{font-size:9px}.gantt-scroll{max-height:65vh}.planning-filter-note{font-size:10px}.planning-undated{padding:0 15px}.undated-list>a,.undated-list>button{width:100%;line-height:1.6}.planning-empty-period{font-size:10px}}
@media print{.planning-filters,.planning-toolbar,.view-switch,.planning-undated,.planning-legend button{display:none}.calendar-layout{display:block}.calendar-agenda{display:none}.calendar-scroll,.gantt-scroll{overflow:visible;max-height:none}.month-calendar{min-width:0}.gantt-table .gantt-label,.gantt-table thead th{position:static}.calendar-event{font-size:8px}}
.project-view-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.project-view-actions .button{font-size:11px;padding:8px 10px;min-height:32px}@media(max-width:760px){.project-view-actions{justify-content:flex-end;max-width:150px}.project-view-actions>.badge{display:none}.project-view-actions .button{font-size:10px;padding:7px 9px}}
.planning-scroll-hint{display:none}@media(max-width:760px){.planning-scroll-hint{display:block;font-size:10px;line-height:1.6;color:#8c99aa;margin:0 0 12px}}@media print{.planning-scroll-hint{display:none}}
