.gantt{display:flex;flex-direction:column;gap:24px;padding:28px;border-radius:24px;background:linear-gradient(150deg,#fffffffa,#f4f6ffeb);border:1px solid rgba(226,232,240,.75);box-shadow:0 28px 48px #0f172a1f}.gantt__header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}.gantt__title h2{margin:0;font-size:22px;letter-spacing:-.01em;color:#0f172a}.gantt__title p{margin:6px 0 0;color:#64748b;max-width:460px;font-size:14px}.gantt__metrics{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.gantt__metric{min-width:92px;padding:10px 16px;border-radius:14px;background:#f8fafff0;border:1px solid rgba(226,232,240,.8);box-shadow:0 16px 30px #0f172a14;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.gantt__metric span{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}.gantt__metric strong{font-size:16px;color:#1d4ed8}.gantt__metric--alert{background:#fee2e2d9;border-color:#f8717199}.gantt__metric--alert strong{color:#b91c1c}.gantt__controls{display:flex;flex-direction:column;gap:16px}.gantt__filters{display:flex;flex-wrap:wrap;gap:10px}.gantt__chip{padding:8px 18px;border-radius:999px;border:1px solid rgba(148,163,184,.55);background:#ffffffe6;color:#475569;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.gantt__chip:hover{border-color:#2563eb;color:#2563eb}.gantt__chip.is-active{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border-color:transparent;box-shadow:0 16px 32px #3b82f659}.gantt__actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.gantt__slider{display:inline-flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.gantt__slider span{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.gantt__slider input[type=range]{width:160px;accent-color:#2563eb}.gantt__select-group{display:inline-flex;align-items:center;gap:8px}.gantt__select-group select{min-width:200px;padding:8px 12px;border-radius:12px;border:1px solid rgba(203,213,225,.9);background:#fffffff2;font-size:13px;color:#0f172a}.gantt__select-group button{padding:9px 16px;border-radius:12px;border:1px solid rgba(148,163,184,.45);background:#f8faffeb;color:#2563eb;font-weight:600;cursor:pointer;transition:all .2s ease}.gantt__select-group button:disabled{cursor:not-allowed;opacity:.5}.gantt__select-group button:not(:disabled):hover{border-color:#2563eb}.gantt__select-group .danger{color:#dc2626;border-color:#f8858573}.gantt__select-group .danger:hover{border-color:#dc2626;background:#fee2e299}.gantt__primary,.gantt__secondary{border:none;border-radius:12px;font-weight:600;font-size:13px;padding:10px 20px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.gantt__primary{background:linear-gradient(135deg,#2563eb,#9333ea);color:#fff;box-shadow:0 18px 36px #4f46e547}.gantt__primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.gantt__primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 24px 40px #4f46e552}.gantt__secondary{background:#e2e8f099;color:#1e293b}.gantt__engine-shell{position:relative;border-radius:22px;background:#f8fafff2;border:1px solid rgba(226,232,240,.7);box-shadow:inset 0 1px #ffffff80,0 24px 44px #0f172a1a;padding:0;overflow:hidden}.gantt__engine{width:100%;min-height:520px}.gantt__dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:1000;padding:24px}.gantt__dialog{width:min(640px,96vw);background:linear-gradient(160deg,#fffffffa,#f4f7fff0);border-radius:24px;border:1px solid rgba(226,232,240,.7);box-shadow:0 40px 80px #0f172a40;padding:28px;display:flex;flex-direction:column;gap:20px}.gantt__dialog-header h3{margin:0;font-size:20px;color:#0f172a}.gantt__dialog-body{display:flex;flex-direction:column;gap:16px}.gantt__field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#475569}.gantt__field span{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:11px}.gantt__field input,.gantt__field select,.gantt__field textarea{border:1px solid rgba(203,213,225,.9);border-radius:12px;background:#ffffffeb;padding:10px 14px;font-size:14px;color:#0f172a}.gantt__field textarea{resize:vertical}.gantt__field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.gantt__field--checkbox{flex-direction:row;align-items:center;gap:10px}.gantt__dialog-footer{display:flex;justify-content:flex-end;gap:12px}@media (max-width: 960px){.gantt{padding:20px}.gantt__actions{flex-direction:column;align-items:stretch}.gantt__slider input[type=range]{width:100%}.gantt__select-group{flex-direction:column;align-items:stretch}.gantt__select-group select,.gantt__select-group button{width:100%}}.gantt__table-header{position:sticky;top:0;z-index:3;border-radius:20px;background:linear-gradient(135deg,#2563eb,#9333ea);border:1px solid rgba(226,232,240,.8);box-shadow:0 16px 32px #0f172a14}.gantt__head-day{display:flex;align-items:center;justify-content:center;padding:10px 0;font-size:12px;font-weight:700;color:#fff;border-left:1px solid rgba(255,255,255,.2);text-transform:uppercase}.gantt__table-body{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.gantt__table-row{border-radius:16px;box-shadow:0 16px 28px #0f172a14}.gantt__row-track{display:flex;align-items:center;padding:8px;min-height:32px;background:repeating-linear-gradient(90deg,rgba(226,232,240,.55) 0,rgba(226,232,240,.55) 1px,transparent 1px,transparent var(--gantt-day-width, 80px)),#f8faffeb;border-radius:0 16px 16px 0;border:1px solid rgba(226,232,240,.7);border-left:none;box-shadow:inset 0 1px #fff6}.gantt__bar{position:relative;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:11px;font-weight:600;color:#fff;min-height:24px;text-transform:capitalize;box-shadow:0 12px 24px #0f172a33;overflow:hidden}.gantt__bar-progress{position:absolute;top:0;left:0;height:100%;background-color:#fff3}.gantt__bar-content{position:relative;z-index:1;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;justify-content:space-between;width:100%}.app-shell{width:100%;margin:0;border-radius:0;background:#fffffff5;box-shadow:none;overflow:hidden;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app{flex:1;display:grid;grid-template-columns:360px minmax(0,1fr);min-height:100vh;background:linear-gradient(135deg,#f8fafff5,#e6effff0,#dce4ffe6)}.app__main{display:flex;flex-direction:column;gap:32px;padding:44px 56px;overflow-y:auto;background:linear-gradient(180deg,#f8faffeb,#ebf5ffe0)}.app__footer{margin-top:auto;padding:18px 32px;text-align:center;font-size:12px;color:#64748b;background:#ffffffc7;border-top:1px solid rgba(148,163,184,.28);letter-spacing:.02em}.topbar{margin-bottom:24px;padding:18px 24px;background:linear-gradient(135deg,#6366f12e,#3b82f61f);border-radius:24px;border:1px solid rgba(148,163,184,.35);box-shadow:0 24px 34px #3b82f61f;display:flex;flex-direction:column;gap:18px}.topbar__main{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.topbar__identity{display:flex;align-items:center;gap:16px}.topbar__avatar{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#9333ea);color:#fff;font-weight:700;display:grid;place-items:center;letter-spacing:.04em}.topbar__meta{display:flex;flex-direction:column;gap:4px}.topbar__meta strong{font-size:16px;color:#0f172a}.topbar__meta span{font-size:13px;color:#475569}.topbar__actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.topbar__button{border:none;border-radius:999px;background:#2563eb26;color:#1d4ed8;font-weight:600;padding:10px 18px;cursor:pointer;transition:all .2s ease}.topbar__button:hover,.topbar__button:focus-visible{transform:translateY(-1px);box-shadow:0 16px 28px #2563eb40;outline:none}.topbar__button--signout{background:#dc26262e;color:#dc2626}.topbar__button--primary{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff}.topbar__form{display:flex;flex-direction:column;gap:16px}.topbar__form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.topbar__form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#475569}.topbar__form input{border-radius:12px;border:1px solid rgba(148,163,184,.45);padding:10px 12px;font-size:13px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.topbar__form input:focus-visible{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e52e;outline:none}.topbar__status{font-size:13px}.topbar__status--success{color:#16a34a}.topbar__status--error{color:#dc2626}.topbar__form-actions{display:flex;justify-content:flex-end}@media (max-width: 768px){.topbar{padding:16px}.topbar__main{flex-direction:column;align-items:flex-start}.topbar__actions{width:100%;justify-content:flex-start}}.sidebar{display:flex;flex-direction:column;gap:32px;padding:40px 32px;background:linear-gradient(180deg,#f7fafffa,#e8f1fff0);border-right:1px solid rgba(148,163,184,.18);overflow-y:auto}.sidebar__header{display:flex;flex-direction:column;gap:20px}.sidebar__brand{display:flex;align-items:center;gap:16px}.sidebar__brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#9333ea);color:#fff;font-weight:600;font-size:13px;letter-spacing:.08em}.sidebar__title{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em;background-image:linear-gradient(to right,#2563eb,#9333ea);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar__subtitle{margin:4px 0 0;font-size:13px;color:#475569}.sidebar__filter{align-self:flex-start;border:1px solid rgba(148,163,184,.4);background:#ffffffd9;border-radius:999px;padding:8px 18px;font-size:12px;color:#1e3a8a;font-weight:600;transition:background .2s ease,color .2s ease,border-color .2s ease}.sidebar__filter:hover,.sidebar__filter:focus-visible{border-color:#2563eb;color:#2563eb;outline:none}.sidebar__filter--active{background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;border-color:transparent}.sidebar__section{display:flex;flex-direction:column;gap:20px;padding:24px;border-radius:16px;background:#fffffff0;border:1px solid rgba(209,213,219,.6);box-shadow:0 22px 40px #0f172a14}.sidebar__section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sidebar__section-header h2{margin:0;font-size:17px;letter-spacing:-.01em}.sidebar__section-subtitle{margin:6px 0 0;font-size:12px;color:#64748b}.sidebar__section-actions{display:flex;align-items:center;gap:12px}.sidebar__action{border:none;border-radius:999px;background:linear-gradient(135deg,#2563eb,#9333ea);color:#fff;font-size:12px;font-weight:600;padding:8px 18px;box-shadow:0 12px 24px #2563eb47;transition:transform .2s ease,box-shadow .2s ease}.sidebar__action:hover,.sidebar__action:focus-visible{transform:translateY(-1px);box-shadow:0 16px 32px #3b82f652;outline:none}.sidebar__count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:4px 10px;border-radius:999px;background:#3b82f61f;font-size:12px;color:#1d4ed8}.sidebar__list{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow-y:auto;padding-right:4px}.sidebar__list--tasks{max-height:260px}.sidebar__project{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid rgba(226,232,240,.9);background:#f8faffdb;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.sidebar__project:hover{border-color:#2563eb66;transform:translateY(-1px);box-shadow:0 12px 24px #0f172a14}.sidebar__project--active{border-color:#2563eb;background:#e2e8ffe6;box-shadow:0 14px 28px #2563eb29}.sidebar__project-main{flex:1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;border:none;background:transparent;padding:0;text-align:left}.sidebar__project-main strong{display:block;font-size:13px;color:#0f172a}.sidebar__project-main small{display:block;font-size:12px;color:#64748b}.sidebar__project-color{width:12px;height:48px;border-radius:12px}.sidebar__muted{border:none;background:none;font-size:12px;color:#475569;padding:4px 8px;border-radius:8px;transition:background .2s ease,color .2s ease}.sidebar__muted:hover,.sidebar__muted:focus-visible{background:#2563eb1a;color:#1d4ed8;outline:none}.sidebar__task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(226,232,240,.8);background:#f8faffd1}.sidebar__task-main{flex:1;display:flex;align-items:center;gap:10px}.sidebar__task-main strong{display:block;font-size:13px;color:#0f172a}.sidebar__task-main small{display:block;font-size:10px;color:#64748b}.sidebar__task-status{width:10px;height:10px;border-radius:999px;background:#cbd5f5}.sidebar__task-status--todo{background:#94a3b8}.sidebar__task-status--in-progress{background:#2563eb}.sidebar__task-status--done{background:#16a34a}.sidebar__empty{padding:14px;font-size:12px;color:#94a3b8;text-align:center;border:1px dashed rgba(148,163,184,.5);border-radius:12px}.sidebar__form{display:flex;flex-direction:column;gap:10px;background:#f8faffeb;border-radius:18px;border:1px solid rgba(209,213,219,.6);padding:20px}.sidebar__form--card{box-shadow:inset 0 0 0 1px #94a3b82e}.sidebar__form h3{margin:0;font-size:15px}.sidebar__form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.sidebar__form input,.sidebar__form select,.sidebar__form textarea{border-radius:10px;border:1px solid rgba(148,163,184,.6);padding:10px 12px;font-size:13px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.sidebar__form input:focus,.sidebar__form select:focus,.sidebar__form textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.sidebar__form textarea{resize:vertical;min-height:44px}.sidebar__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sidebar__form-actions{display:flex;gap:10px;justify-content:flex-end}.sidebar__primary{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:1px solid #2563eb;border-radius:10px;padding:10px 18px;font-size:13px;font-weight:600;box-shadow:0 12px 24px #2563eb3d;transition:transform .2s ease,box-shadow .2s ease}.sidebar__primary:hover,.sidebar__primary:focus-visible{transform:translateY(-1px);box-shadow:0 16px 28px #2563eb4d;outline:none}.sidebar__danger{background:#ef4444;color:#fff;border:1px solid #ef4444;border-radius:10px;padding:10px 18px;font-size:13px;font-weight:600;box-shadow:0 12px 24px #ef44443d;transition:transform .2s ease,box-shadow .2s ease}.sidebar__danger:hover,.sidebar__danger:focus-visible{transform:translateY(-1px);box-shadow:0 16px 28px #ef44444d;outline:none}.calendar{display:flex;flex-direction:column;gap:24px;padding:24px;border-radius:20px;background:#fffffff2;border:1px solid rgba(209,213,219,.6);box-shadow:0 24px 48px #0f172a14}.calendar__header{display:flex;justify-content:space-between;align-items:center;gap:16px}.calendar__header h2{margin:0;font-size:20px;letter-spacing:-.01em}.calendar__header p{margin:6px 0 0;color:#64748b;font-size:13px;max-width:420px}.calendar__header-actions{display:flex;align-items:center;gap:12px}.calendar__today-button{border:none;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.calendar__today-button:hover,.calendar__today-button:focus-visible{transform:translateY(-1px);box-shadow:0 12px 22px #2563eb47;outline:none}.calendar__today-button:disabled{background:#94a3b847;color:#64748b;cursor:not-allowed;box-shadow:none;transform:none}.calendar__scroller{display:flex;gap:20px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory}.calendar__tile{flex:0 0 280px;display:flex;flex-direction:column;gap:10px;background:#f8fafffa;padding:20px;border-radius:20px;border:1px solid rgba(226,232,240,.9);scroll-snap-align:start;box-shadow:0 18px 36px #0f172a14}.calendar__tile-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calendar__tile-meta{display:flex;flex-direction:column;gap:4px}.calendar__tile-heading{display:flex;align-items:baseline;gap:8px}.calendar__tile-badge{padding:2px 8px;border-radius:999px;background:#2563eb26;color:#1d4ed8;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.calendar__tile--today{border-color:#2563eb;box-shadow:0 20px 36px #2563eb2e}.calendar__tile-header strong{display:block;font-size:17px;color:#0f172a}.calendar__tile-header small{font-size:12px;color:#94a3b8}.calendar__upload{border:1px dashed rgba(37,99,235,.4);border-radius:12px;padding:8px 14px;font-size:12px;color:#1d4ed8;background:#2563eb14;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.calendar__upload:hover,.calendar__upload:focus-visible{background:#2563eb29;border-color:#2563eb;color:#2563eb;outline:none}.calendar__files{display:flex;flex-direction:column;gap:12px}.calendar__file{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-radius:14px;border:1px solid rgba(226,232,240,.8)}.calendar__file-main{display:flex;align-items:center;gap:12px}.calendar__file-icon{width:28px;height:28px;object-fit:contain;border-radius:8px;padding:4px;background:#94a3b81f}.calendar__file-meta{display:flex;flex-direction:column;gap:4px}.calendar__file-name{font-size:13px;font-weight:600;color:#0f172a}.calendar__file-actions{display:flex;gap:12px;align-items:center}.calendar__link{font-size:12px;color:#2563eb}.calendar__remove{border:none;background:none;font-size:12px;color:#ef4444;padding:0;cursor:pointer}.calendar__empty{font-size:11px;color:#94a3b8;text-align:center;padding:14px;border:1px dashed rgba(148,163,184,.5);border-radius:14px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:1000}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal__dialog{position:relative;width:min(520px,92vw);background:linear-gradient(180deg,#fffffffa,#f8fafff5);border-radius:24px;box-shadow:0 40px 70px #0f172a59;border:1px solid rgba(226,232,240,.7);padding:24px;z-index:1001}.modal__form{display:flex;flex-direction:column;gap:10px}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal__header h3{margin:0;font-size:18px;letter-spacing:-.01em}.modal__description{margin:0;font-size:13px;color:#475569}.modal__input-group{display:flex;align-items:center;gap:8px}.modal__input-group input{flex:1}.modal__suffix{padding:8px 12px;border-radius:10px;background:#e2e8f099;font-size:13px;color:#475569}.modal__details{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:11px;color:#64748b}.modal__details span{display:inline-flex;align-items:center}.modal__close{border:none;background:none;font-size:22px;line-height:1;color:#475569;padding:4px;border-radius:8px;transition:background .2s ease}.modal__close:hover,.modal__close:focus-visible{background:#e2e8f099;outline:none}.modal__form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#475569}.modal__form input,.modal__form select,.modal__form textarea{border-radius:10px;border:1px solid rgba(148,163,184,.6);padding:10px 12px;font-size:13px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.modal__form input:focus,.modal__form select:focus,.modal__form textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e;outline:none}.modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modal__actions{display:flex;justify-content:flex-end;gap:10px}.modal__secondary{border:none;background:#94a3b826;color:#475569;border-radius:10px;padding:10px 18px;font-size:13px}.modal__primary{border:none;border-radius:10px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-size:13px;font-weight:600;padding:8px 18px;box-shadow:0 18px 32px #2563eb47}@media (max-width: 640px){.modal__dialog{padding:20px}.modal__grid{grid-template-columns:1fr}.modal__actions{flex-direction:column-reverse;align-items:stretch}.modal__primary,.modal__secondary{width:100%}}.gantt__viewport{border-radius:24px;border:1px solid rgba(226,232,240,.7);background:#fffffff5;box-shadow:inset 0 1px #f8faff99;overflow:auto;padding-bottom:12px}.gantt__viewport::-webkit-scrollbar{height:10px}.gantt__table{position:relative;display:flex;flex-direction:column;gap:8px;min-width:100%}.gantt__table-header,.gantt__table-row{display:grid;align-items:stretch;gap:0}.gantt__table-header{position:sticky;top:0;z-index:3;border-radius:20px;background:linear-gradient(180deg,#f8fafffa,#ecf2ffe6);border:1px solid rgba(226,232,240,.8);box-shadow:0 16px 32px #0f172a14}.gantt__head-label{position:sticky;left:0;display:flex;align-items:center;padding:10px 14px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#475569;background:#f8fafffa;border-right:1px solid rgba(226,232,240,.8);box-shadow:8px 0 16px #0f172a0d;z-index:4}.gantt__head-day{display:flex;align-items:center;justify-content:center;padding:8px 0;font-size:11px;color:#475569;border-left:1px solid rgba(226,232,240,.4)}.gantt__table-body{display:flex;flex-direction:column;gap:6px}.gantt__table-row{border-radius:16px;overflow:hidden;box-shadow:0 16px 28px #0f172a14}.gantt__row-label{position:sticky;left:0;padding:8px 12px;display:flex;flex-direction:column;gap:2px;background:#f8fafffa;border-right:1px solid rgba(226,232,240,.8);color:#0f172a;z-index:2}.gantt__row-label strong{font-size:13px;letter-spacing:-.01em}.gantt__row-label small{font-size:11px;color:#64748b}.gantt__row-track{display:grid;align-items:center;gap:8px;padding:8px;min-height:32px;background:repeating-linear-gradient(90deg,rgba(226,232,240,.55) 0,rgba(226,232,240,.55) 1px,transparent 1px,transparent var(--gantt-day-width, 80px)),#f8faffeb;border-radius:0 16px 16px 0;border:1px solid rgba(226,232,240,.7);border-left:none;box-shadow:inset 0 1px #fff6}.gantt__bar{display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:11px;font-weight:600;color:#fff;min-height:24px;text-transform:capitalize;box-shadow:0 12px 24px #0f172a33}.gantt__bar--todo{background:linear-gradient(135deg,#94a3b8,#64748b)}.gantt__bar--in-progress{background:linear-gradient(135deg,#2563eb,#3b82f6)}.gantt__bar--done{background:linear-gradient(135deg,#16a34a,#22c55e)}.gantt__table-empty{width:100%;min-height:160px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(148,163,184,.5);border-radius:20px;color:#94a3b8;font-size:13px;background:#f8faffe6}@media (max-width: 1240px){.gantt__header{flex-direction:column;gap:18px}.gantt__metrics{justify-content:flex-start}}@media (max-width: 768px){.gantt{padding:24px}.gantt__header h2{font-size:18px}.gantt__metric{min-width:80px}}@media (max-width: 1240px){.app{grid-template-columns:320px minmax(0,1fr)}.app__main{padding:36px 40px}}@media (max-width: 1080px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;max-height:60vh;border-right:none;border-bottom:1px solid rgba(148,163,184,.18)}.app__main{padding:24px}}@media (max-width: 768px){.app-shell{border-radius:24px}.app__main{padding:24px}.sidebar{padding:32px 24px}.calendar__tile{flex-basis:240px}.gantt__header{grid-template-columns:160px repeat(var(--gantt-days),minmax(80px,1fr))}.gantt__row{grid-template-columns:160px 1fr}.gantt__project-color{height:36px}}@media (max-width: 540px){.app__main,.calendar,.gantt,.sidebar__section{padding:20px}}.calendar__file-meta small{font-size:10px;color:#64748b}.app__empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px;border-radius:20px;background:#fffffff2;border:1px solid rgba(209,213,219,.6);box-shadow:0 24px 48px #0f172a14;text-align:center}.app__empty-state h2{margin:0;font-size:20px;letter-spacing:-.01em;color:#0f172a}.app__empty-state p{margin:0;font-size:13px;color:#64748b}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f8fafff5,#e6effff0,#dce4ffe6);padding:20px}.auth-header{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:30px}.auth-logo{width:80px;height:80px;margin-bottom:10px}.auth-form{display:flex;flex-direction:column;gap:15px;background:#fffffffa;border-radius:20px;padding:30px;box-shadow:0 20px 40px #0f172a1a;width:100%;max-width:400px}.auth-input{width:100%;padding:12px;border:1px solid rgba(148,163,184,.6);border-radius:10px;font-size:16px;transition:border-color .2s ease,box-shadow .2s ease}.auth-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.auth-actions{display:flex;gap:10px;justify-content:space-between;margin-top:20px}.auth-actions button{flex:1}.gantt__metric--alert strong{color:#dc2626}.gantt__toolbar{margin-top:18px;display:flex;flex-direction:column;gap:16px}.gantt__filter-group{display:flex;flex-wrap:wrap;gap:8px}.gantt__filter-chip{border:1px solid rgba(148,163,184,.45);border-radius:999px;padding:6px 14px;font-size:11px;font-weight:600;color:#475569;background:#fff;transition:all .2s ease}.gantt__filter-chip.is-active{background:linear-gradient(135deg,#2563eb,#9333ea);color:#fff;border-color:transparent;box-shadow:0 12px 28px #4f46e547}.gantt__filter-chip:hover,.gantt__filter-chip:focus-visible{transform:translateY(-1px);outline:none}.gantt__toolbar-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.gantt__field{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#475569}.gantt__field select,.gantt__field input[type=text]{border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:8px 12px;background:#f8fafc;font-size:13px;color:#0f172a;transition:border-color .2s ease,box-shadow .2s ease}.gantt__field select:focus-visible,.gantt__field input[type=text]:focus-visible{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133;outline:none}.gantt__field--checkbox{flex-direction:row;align-items:center;gap:8px}.gantt__field--checkbox input{width:16px;height:16px}.gantt__field--slider{min-width:170px}.gantt__field--slider input[type=range]{width:140px}.gantt__row-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gantt__row-badge{padding:4px 10px;border-radius:999px;font-size:10px;background:#10b9812e;color:#047857;font-weight:600}.gantt__assignee{padding:4px 10px;border-radius:999px;font-size:10px;font-weight:600;background:#4f46e52e;color:#4338ca}.gantt__baseline{height:4px;border-radius:999px;background:repeating-linear-gradient(90deg,rgba(59,130,246,.35),rgba(59,130,246,.35) 10px,transparent 10px,transparent 20px);margin-bottom:6px}.gantt__bar-progress{position:absolute;top:0;left:0;bottom:0;background:#ffffff40;pointer-events:none;transition:width .3s ease}.gantt__bar-content{position:relative;width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 12px;gap:8px}.gantt__bar-content span:last-child{font-size:10px;opacity:.9}.gantt__bar--critical{box-shadow:0 0 0 3px #4f46e547,inset 0 0 0 1px #ffffff52}.gantt__bar--late{box-shadow:0 0 0 3px #dc26264d,inset 0 0 0 1px #ffffff52}.gantt__bar--actual{background:#0ea5e929;color:#0f172a;border:1px dashed rgba(59,130,246,.5)}.gantt__bar--actual span{font-size:10px;font-weight:600}.modal__slider{display:flex;align-items:center;gap:12px}.modal__slider input[type=range]{flex:1}.modal__checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.modal__checkbox input{width:16px;height:16px}@media (max-width: 768px){.gantt__toolbar-controls{flex-direction:column;align-items:stretch}.gantt__toolbar-controls .gantt__field,.gantt__field--slider input[type=range]{width:100%}}.calendar__notes{display:flex;flex-direction:column;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(226,232,240,.9)}.calendar__notes h4{margin:0;font-size:13px;font-weight:600;color:#0f172a}.calendar__notes-list{display:flex;flex-direction:column;gap:10px}.calendar__note{display:flex;align-items:flex-start;gap:12px;padding:10px;background:#f8fafc;border-radius:10px;border:1px solid rgba(226,232,240,.7)}.calendar__note-link{flex:1;border:none;background:none;padding:0;margin:0;font-size:13px;color:#2563eb;cursor:pointer;text-align:left;text-decoration:underline;line-height:1.5}.calendar__note-link:hover,.calendar__note-link:focus-visible{color:#1d4ed8;text-decoration:none;outline:none}.calendar__note-link:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:2px}.calendar__note-delete{border:none;background:none;padding:0;font-size:11px;color:#ef4444;cursor:pointer;flex-shrink:0}.calendar__note-delete:hover,.calendar__note-delete:focus-visible{text-decoration:underline;outline:none}.calendar__notes form{display:flex;gap:10px;margin-top:10px}.calendar__notes textarea{flex:1;min-height:44px;border-radius:14px;border:1px solid rgba(59,130,246,.28);padding:12px 16px;font-size:13px;color:#0f172a;background:linear-gradient(135deg,#fffffff5,#dbeafec7);box-shadow:0 18px 32px #3b82f61f;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.calendar__notes textarea::placeholder{color:#475569b3}.calendar__notes textarea:focus{outline:none;border-color:#4f46e5b3;box-shadow:0 0 0 4px #4f46e52e,0 22px 36px #3b82f62e;background:linear-gradient(135deg,#fffffffa,#c7d2feeb)}.calendar__notes button[type=submit]{border:none;border-radius:14px;background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;font-size:13px;font-weight:600;padding:12px 22px;cursor:pointer;box-shadow:0 20px 34px #4f46e53d;transition:transform .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.calendar__notes button[type=submit]:hover,.calendar__notes button[type=submit]:focus-visible{transform:translateY(-1px);box-shadow:0 24px 38px #4f46e54d;outline:none}.calendar__notes button[type=submit]:active{transform:translateY(0);box-shadow:0 14px 24px #4f46e538}.calendar__note-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px}.calendar__note-viewer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.calendar__note-viewer-card{position:relative;z-index:1;width:min(360px,100%);max-width:360px;background:#fff;border-radius:16px;padding:20px 24px;box-shadow:0 24px 56px #0f172a38;display:flex;flex-direction:column;gap:12px}.calendar__note-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar__note-viewer-header h4{margin:0;font-size:16px;color:#0f172a}.calendar__note-viewer-close{border:none;background:none;font-size:22px;color:#475569;cursor:pointer;padding:0;line-height:1}.calendar__note-viewer-close:hover,.calendar__note-viewer-close:focus-visible{color:#1e293b;outline:none}.calendar__note-viewer-date{margin:0;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.calendar__note-viewer-body{font-size:13px;color:#0f172a;line-height:1.6;white-space:pre-wrap;word-break:break-word}.calendar__note-viewer-meta{margin-top:4px;font-size:10px;color:#94a3b8;text-align:right}.calendar__help-button{border:none;background:#e0e7ff;color:#3730a3;width:32px;height:32px;border-radius:50%;font-size:18px;font-weight:700;cursor:pointer;display:grid;place-items:center}.calendar__files,.calendar__notes-list{max-height:120px;overflow-y:auto;padding-right:8px}.calendar__note-viewer-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.calendar__note-viewer-button{padding:8px 16px;border-radius:12px;border:1px solid rgba(148,163,184,.45);background:#f8faffeb;color:#2563eb;font-weight:600;cursor:pointer;transition:all .2s ease}.calendar__note-viewer-button:hover{border-color:#2563eb}.calendar__note-viewer-button--primary{background:#2563eb;color:#fff;border-color:#2563eb}:root{color:#0f172a;background-color:#e2e8f0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1.5;letter-spacing:.01em;color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(120% 120% at 50% 0%,#3b82f614,#0f172a05 45%,#e2e8f0);display:block;padding:0;overflow-y:auto}#root{min-height:100%;width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}body,.sidebar,.app__main{scrollbar-width:thin;scrollbar-color:#93c5fd rgba(148,163,184,.15)}body::-webkit-scrollbar,.sidebar::-webkit-scrollbar,.app__main::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track,.app__main::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb,.app__main::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#93c5fd,#60a5fa);border-radius:999px}@media (max-width: 1024px){body{padding:32px 24px}}@media (max-width: 640px){body{padding:16px 12px}}
