.multi-select{min-width:0}.multi-select-toolbar{display:flex;gap:8px}.field .multi-select-toolbar input{flex:1;min-width:0;border-color:#d7e3f3;border-radius:10px;padding:12px}.multi-select-toolbar button{flex:none;border-color:#d7e3f3;border-radius:10px;padding:10px 16px}.multi-select-count{margin:8px 0 14px}.multi-select-options{max-height:280px;overflow:auto;border:1px solid #d7e3f3;border-radius:10px;padding:5px;scrollbar-color:#a3a3a3 transparent}.field .multi-select-option{display:flex;align-items:center;gap:10px;margin:0;padding:9px 8px;min-height:35px;border-radius:5px;cursor:pointer;color:#68778d;font-size:13px;font-weight:700}.multi-select-option:hover,.multi-select-option:focus-within{background:#f0f6fd}.field .multi-select-option input{width:16px;height:16px;flex:0 0 16px;margin:0;padding:0;accent-color:var(--blue);cursor:pointer}.multi-select-option span{overflow-wrap:anywhere}.multi-select-empty{padding:14px 8px}.multi-select-options+.small{margin-top:8px}.owner-stack{display:flex;align-items:center;min-width:28px}.owner-stack .owner-avatar{margin-right:-7px;border:2px solid #fff}.owner-stack .owner-avatar:last-child{margin-right:0}:root{--nav:#172b4d;--blue:#1769aa;--bg:#f4f6f8;--line:#dfe5eb;--muted:#667085;--green:#18864b;--red:#c43832;--amber:#b7791f}*{box-sizing:border-box}body{margin:0;font:14px Arial,sans-serif;color:#1f2937;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.side{background:var(--nav);color:#fff;padding:20px 14px}.brand{font-size:18px;font-weight:700;margin:3px 8px 5px}.ver{font-size:11px;color:#b9c7db;margin:0 8px 22px}.nav button{display:block;width:100%;color:#d9e5f4;background:none;border:0;text-align:left;padding:11px 12px;border-radius:6px;margin:3px 0}.nav button:hover,.nav button.active{background:#26466f;color:#fff}.top{height:70px;background:#fff;border-bottom:1px solid var(--line);padding:13px 24px;display:flex;align-items:center;gap:12px}.top h1{font-size:18px;margin:0 auto 0 0}.project-select{min-width:240px}.content{padding:22px}.view{display:none}.view.active{display:block}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(5,minmax(130px,1fr));margin-bottom:18px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px #172b4d0a}.card{padding:16px}.card .n{font-size:28px;font-weight:700;margin-top:7px}.label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.panel{padding:16px;margin-bottom:16px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.toolbar input,.toolbar select{height:34px;border:1px solid var(--line);border-radius:5px;padding:5px 8px;background:#fff}.toolbar input{min-width:220px}.primary{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:5px;padding:8px 11px}.secondary{background:#fff;color:#344054;border:1px solid #cbd5df;border-radius:5px;padding:8px 11px}.danger{color:var(--red)}table{border-collapse:separate;border-spacing:0;width:100%;background:#fff}th{text-align:left;background:#f7f9fb;color:#475467;font-size:12px;position:sticky;top:0;z-index:1}th,td{padding:10px 9px;border-bottom:1px solid var(--line);vertical-align:middle}td.num{text-align:right}.taskname{font-weight:600;white-space:nowrap}.indent{display:inline-block;width:18px}.parent{background:#f6f9fd}.status,.pill{display:inline-block;border-radius:12px;padding:3px 8px;font-size:11px;font-weight:600;background:#eaecf0;color:#475467}.s-completed{background:#daf3e3;color:#146c3a}.s-progress{background:#d9eefa;color:#136ea5}.s-hold,.s-blocked{background:#fff0c9;color:#8a5b00}.s-overdue{background:#fde3e1;color:#a22d29}.small{font-size:12px;color:var(--muted)}.progress{height:7px;background:#e9edf1;border-radius:8px;overflow:hidden;min-width:60px}.progress i{display:block;height:100%;background:#2482c2}.actions button{border:0;background:none;color:var(--blue);padding:2px 5px}.table-wrap{overflow:auto;max-height:calc(100vh - 205px)}.modal-wrap{display:none;position:fixed;inset:0;background:#10182888;z-index:5;align-items:center;justify-content:center;padding:20px}.modal-wrap.open{display:flex}.modal{background:#fff;border-radius:9px;width:min(760px,100%);max-height:92vh;overflow:auto;padding:20px}.modal h2{margin:0 0 16px;font-size:19px}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field label{display:block;color:#475467;font-size:12px;margin-bottom:5px;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd5df;border-radius:5px;padding:8px}.field textarea{height:70px;resize:vertical}.full{grid-column:1/-1}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.gantt-scroll{overflow:auto}.g-row{display:grid;grid-template-columns:260px 1fr;min-height:37px;border-bottom:1px solid var(--line)}.g-name{padding:9px;border-right:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-area{position:relative;background:repeating-linear-gradient(90deg,#fff 0 calc(100% / 12 - 1px),#e7edf3 calc(100% / 12 - 1px) calc(100% / 12))}.g-head{height:30px;background:#f7f9fb}.g-month{position:absolute;font-size:11px;color:#667085;top:8px}.bar{position:absolute;top:9px;height:18px;border-radius:3px;background:#2c7fb8;color:#fff;font-size:10px;line-height:18px;padding:0 5px;overflow:hidden;white-space:nowrap}.bar.completed{background:#22965a}.bar.overdue{background:#cf4b45}.empty{text-align:center;padding:50px;color:var(--muted)}.two{grid-template-columns:1.3fr 1fr}.phase-progress{margin:10px 0}.phase-progress b{display:inline-block;width:170px}@media(max-width:900px){.app{grid-template-columns:1fr}.side{display:flex;gap:8px;align-items:center;overflow:auto;padding:10px}.brand,.ver{display:none}.nav{display:flex}.nav button{white-space:nowrap}.top{padding:12px}.kpis,.two{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:1fr}.content{padding:14px}}:root{--nav:#111c35;--blue:#276fbd;--ink:#152238;--bg:#f5f7fb;--line:#e4e9f1;--soft:#f8faff;--gold:#c7902d}.app{grid-template-columns:246px 1fr}.side{background:linear-gradient(180deg,#162644,#0e1930);padding:24px 14px;box-shadow:4px 0 20px #14213d16}.brand{letter-spacing:-.35px;font-size:19px}.brand{font-family:Georgia,Times New Roman,serif!important;font-size:21px!important;font-weight:700!important;letter-spacing:.2px!important}.brand:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:7px;background:#e2ae43;color:#132442;font-family:Arial,sans-serif;font-size:16px;font-weight:900;margin-right:10px;vertical-align:1px;box-shadow:0 3px 8px #0000002b}.ver{margin-top:6px;margin-bottom:28px;color:#aebfd8}.nav button{font-weight:600;letter-spacing:.01em;padding:12px 13px;margin:5px 0;transition:.18s ease}.nav button:before{content:"•";color:#93aacb;font-size:18px;vertical-align:-1px;margin-right:8px}.nav button.active{background:linear-gradient(90deg,#2c71bb,#315f98);box-shadow:0 7px 16px #07112655}.nav button.active:before{color:#f0c35e}.top{height:82px;padding:14px 28px;box-shadow:0 1px #dce3ed;background:#fff}.top h1{font-size:21px;color:var(--ink);letter-spacing:-.3px}.top label.small{font-weight:700;color:#596780;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.project-select{height:46px!important;min-width:315px!important;border:1px solid #b9cbe1!important;border-radius:9px!important;padding:0 38px 0 13px!important;font-weight:700!important;color:#153354!important;background:linear-gradient(180deg,#fff,#f5f9ff)!important;box-shadow:0 3px 10px #1d5d9f13!important;outline:0}.project-select:focus{border-color:#367fcb!important;box-shadow:0 0 0 3px #367fcb20!important}.content{padding:25px 28px}.card,.panel{border-color:#e2e8f0;box-shadow:0 4px 16px #20325b0b;border-radius:11px}.card{position:relative;overflow:hidden;padding:17px 18px}.card:after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:#3b82c4}.card:nth-child(2):after{background:#20a462}.card:nth-child(4):after{background:#de5a52}.card:nth-child(5):after{background:#d69c32}.card .n{font-size:31px;color:#172642}.panel{padding:18px}.panel h3{font-size:14px;color:#1b2b47;margin:0 0 15px}.toolbar{background:var(--soft);margin:-2px -2px 16px;padding:12px;border:1px solid #e7edf5;border-radius:9px;gap:9px}.toolbar input,.toolbar select{height:38px;border-color:#cfdae7;border-radius:7px;color:#34445d}.toolbar input:focus,.toolbar select:focus{outline:0;border-color:#4187ce;box-shadow:0 0 0 3px #4187ce17}.primary,.secondary{border-radius:7px;font-weight:700;transition:.15s}.primary{box-shadow:0 4px 10px #1769aa2a;padding:9px 13px}.primary:hover{background:#105b9f;transform:translateY(-1px)}.secondary{background:#fff;border-color:#ccd8e6;color:#38516e}.table-wrap{border:1px solid #e2e8f0;border-radius:9px;max-height:calc(100vh - 230px)}table{font-size:13px}th{background:#edf3fa;color:#455a75;text-transform:uppercase;letter-spacing:.045em;font-size:10px;font-weight:800;padding:12px 10px;border-bottom:1px solid #d7e1ed}td{padding:11px 10px;color:#34445b}tbody tr{transition:background .12s}tbody tr:hover{background:#f4f8fd!important}tbody tr:nth-child(2n){background:#fbfcfe}.parent{background:#f3f7fc!important}.taskname{color:#1b3455}.status{padding:4px 9px;border-radius:20px}.actions button{font-weight:700}.progress{height:8px;background:#e3eaf3}.progress i{background:linear-gradient(90deg,#3c8fd2,#216cb4)}.modal{border-radius:13px;box-shadow:0 24px 70px #11182755}.modal h2{color:#173357}.gantt{border:1px solid #e3eaf2;border-radius:9px;overflow:hidden}.g-head{background:#edf3fa}.g-row{border-bottom-color:#e5ebf3}.g-name{color:#304864}.bar{background:linear-gradient(90deg,#3c91d2,#1d63ab);box-shadow:0 2px 5px #236fac30}.small{color:#68778d}@media(max-width:900px){.project-select{min-width:160px!important}.content{padding:16px}.top{padding:12px 16px}}.taskname{font-weight:500!important}.parent .taskname{font-weight:750!important;color:#17365d}.task-toggle{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;margin:0 8px 0 3px;border:1px solid #ccd9e7;border-radius:6px;background:linear-gradient(180deg,#fff,#edf4fb);color:#2770b8;font-size:15px;font-weight:800;line-height:1;vertical-align:middle;box-shadow:0 1px 2px #1c579020;transition:.15s}.task-toggle:hover{border-color:#77a8d5;background:#e3f0fc;color:#125a9e;transform:scale(1.08)}.task-indent{display:inline-block;width:27px;vertical-align:middle;position:relative}.task-indent.child:before{content:"";position:absolute;left:13px;top:10px;width:1px;height:8px;background:#c9d9e8}.task-indent.child:after{content:"";position:absolute;left:13px;top:17px;width:12px;height:1px;background:#c9d9e8}.wbs{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:22px;margin-right:9px;padding:0 6px;border-radius:5px;background:#e7f0fa;color:#286cae;font-size:10px;font-weight:800;letter-spacing:.03em;vertical-align:middle}.drag-grip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:22px;margin-right:3px;color:#91a4ba;font-size:15px;vertical-align:middle;cursor:grab}.drag-grip:active{cursor:grabbing}.task-row{cursor:default}.task-row.dragging{opacity:.42}.task-row.drop-before td{box-shadow:inset 0 3px #3787cf}.task-row.drop-after td{box-shadow:inset 0 -3px #3787cf}.task-row.drop-child td:first-child{background:#e4f2ff!important;box-shadow:inset 4px 0 #3787cf}.drag-hint{font-size:11px;color:#71829a;margin-left:auto}.taskname{min-width:310px}.status{border:1px solid transparent!important;box-shadow:inset 0 1px #ffffff80}.s-not-started{background:#eef2f6!important;color:#5c6d80!important;border-color:#dbe3ec!important}.s-in-progress{background:#ddecff!important;color:#1768ad!important;border-color:#bcd8f5!important}.s-on-hold{background:#f7e8ff!important;color:#8a3ca8!important;border-color:#e9c9f5!important}.s-completed{background:#ddf5e6!important;color:#177541!important;border-color:#bce8cd!important}.s-overdue{background:#ffe3e1!important;color:#b3332f!important;border-color:#f4c1bd!important}.s-blocked{background:#fff0cc!important;color:#9a6500!important;border-color:#f1d897!important}.owner-avatar{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:linear-gradient(135deg,#397fc1,#23558c);color:#fff;font-size:10px;font-weight:800;letter-spacing:.04em;box-shadow:0 2px 5px #20558d35}.owner-avatar.unassigned{background:#dce4ed;color:#66778a;box-shadow:none}.icon-btn{width:28px;height:28px;padding:0!important;margin:0 2px!important;border-radius:7px!important;color:#fff!important;font-size:14px!important;line-height:28px!important;text-align:center!important;transition:.15s!important}.icon-btn:hover{transform:translateY(-1px);filter:brightness(.94)}.icon-edit{background:#2c7dc2!important}.icon-delete{background:#d6534c!important}.icon-open{background:#51818d!important}.g-area{background-size:calc(100% / var(--segments,6)) 100%!important}.color-row{display:flex;gap:8px;align-items:center}.color-row input[type=color]{height:38px;width:58px;padding:3px;cursor:pointer}.random-color{white-space:nowrap}.resource-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:middle}.brand{display:flex;align-items:center;gap:10px;font-family:Inter,Segoe UI,Arial,sans-serif!important;font-size:20px!important;font-weight:650!important;letter-spacing:-.35px!important}.brand:before{display:none!important}.brand b{font-weight:800;color:#fff}.brand-mark{width:27px;height:27px;flex:0 0 27px;filter:drop-shadow(0 3px 5px #0000002b)}.icon-add-child{background:#247d6b!important;font-size:17px!important;font-weight:700!important}:root{font-family:Arial,sans-serif;color-scheme:light}body{min-width:320px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #90c4fa;outline-offset:2px}button:disabled{opacity:.38;cursor:not-allowed;transform:none!important}.app{min-height:100vh}.main{min-width:0}.nav button{font-family:Arial,sans-serif}.content .panel{min-width:0}.table-wrap{overflow:auto;scrollbar-color:#b7c7d9 transparent}.table-wrap td,.table-wrap th{white-space:nowrap}.taskname{min-width:315px!important;max-width:620px}.prereq-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis}.actions{white-space:nowrap}.action-group{display:flex;align-items:center;gap:2px}.reorder-btn{background:#edf3fa;border:1px solid #d5e2f1;border-radius:6px;color:#35638b;height:27px;width:22px;cursor:pointer;font-weight:700}.reorder-btn:not(:disabled):hover{background:#dbeaff}.progress-wrap{display:flex;align-items:center;gap:7px;min-width:91px}.progress-wrap>.progress{width:70px}.modal-wrap{z-index:100;padding:12px}.modal{width:min(760px,100%);max-height:calc(100dvh - 30px);padding:22px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.modal-heading h2{margin:0}.modal-close{border:0;background:#f0f4f9;color:#455a75;border-radius:7px;width:31px;height:31px;font-size:23px}.modal-close:hover{background:#e1e9f2}.modal-foot{position:sticky;bottom:-22px;background:#fff;padding:16px 0 2px;z-index:2;border-top:1px solid #edf0f5}.form-error{margin:0;padding:10px 13px;border-radius:7px;border:1px solid #f7c5bf;background:#fff0ed;color:#a22d29;font-size:13px}.confirm-text{line-height:1.6;color:#46546a}.confirm-danger{background:#ba3e38;border-color:#ba3e38}.confirm-danger:hover{background:#a9322e}.phase-progress{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.phase-progress b{width:auto;min-width:130px}.summary-progress{width:min(45%,340px);min-width:120px;flex:1}.summary-progress .progress-wrap>.progress{width:100%;height:9px}.attention-item{margin:12px 0;line-height:1.7}.attention-item>b{padding-left:5px}.attention-note{display:block;padding-left:5px}.gantt-scroll{max-width:100%;border-radius:9px}.gantt{min-width:960px}.g-area{background:repeating-linear-gradient(90deg,#fff 0 calc(100% / var(--segments,6) - 1px),#e7edf3 calc(100% / var(--segments,6) - 1px) calc(100% / var(--segments,6)))!important}.g-area.g-head{background:#edf3fa!important}.g-row{min-height:39px}.g-name{height:auto;min-width:0}.bar{max-width:100%}.gantt-date-note{margin-left:auto}.setup{align-items:start}.backup-help{background:#f8faff;border:1px solid #e7edf5;border-radius:9px;padding:13px;margin-top:12px;line-height:1.6;color:#34445d}.backup-help p{margin-bottom:0}.toast{position:fixed;top:95px;right:22px;z-index:110;background:#172b4d;color:#fff;border-radius:8px;box-shadow:0 12px 30px #1522383b;padding:13px 16px;max-width:420px;display:flex;gap:20px;align-items:center}.toast button{border:0;background:transparent;color:#fff;font-size:24px}.empty-field{visibility:hidden}@media(max-width:1200px){.app{grid-template-columns:218px minmax(0,1fr)}.side{padding:22px 10px}.top{padding:14px 20px}.project-select{min-width:205px!important;max-width:330px}.content{padding:18px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.two{grid-template-columns:1fr 1fr}.taskname{min-width:270px!important}}@media(max-width:900px){.app{display:block}.side{display:flex;align-items:center;gap:12px;padding:10px 13px;overflow:auto;box-shadow:none}.brand{display:flex!important;font-size:16px!important;min-width:125px}.brand-mark{width:24px;height:24px;flex-basis:24px}.ver{display:none!important}.nav{display:flex;gap:3px}.nav button{white-space:nowrap;margin:2px 0;padding:9px 10px;font-size:12px}.nav button:before{display:none}.top{height:auto;min-height:66px;flex-wrap:wrap;padding:12px 15px}.top h1{font-size:20px;min-width:120px}.top label.small{margin-left:auto}.project-select{min-width:165px!important;height:41px!important;flex:1;max-width:100%}.content{padding:14px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.two{grid-template-columns:1fr}.form{grid-template-columns:repeat(2,1fr)}.empty-field{display:none}.panel{padding:14px}.table-wrap{max-height:none}.drag-hint{flex-basis:100%;margin:1px 0}.modal{max-height:calc(100dvh - 24px)}}@media(max-width:580px){.side{display:block;padding:9px 10px 5px}.brand{margin:3px 4px 9px!important}.nav{overflow-x:auto;padding-bottom:3px}.top{gap:8px}.top h1{width:100%;margin:0}.top label.small{margin-left:0}.top-add{margin-left:auto}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:12px 13px}.card .n{font-size:26px}.content{padding:11px}.panel{padding:12px}.toolbar{gap:7px}.toolbar input{width:100%;min-width:0;flex:1 1 180px}.toolbar select{max-width:100%}.drag-hint{display:none}.form{grid-template-columns:1fr;gap:11px}.modal{padding:15px}.modal-foot{bottom:-15px}.phase-progress{display:block}.summary-progress{width:100%;margin:8px 0}.gantt-scroll{width:100%}.toast{left:11px;right:11px;top:100px;max-width:none}.setup .table-wrap{max-width:calc(100vw - 46px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.progress-slider{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #ccd5df;border-radius:5px;min-height:40px}.field .progress-slider input[type=range]{flex:1;min-width:0;width:100%;height:24px;margin:0;padding:0;border:0;accent-color:var(--blue);cursor:pointer}.field .progress-slider input:disabled{opacity:.5;cursor:not-allowed}.progress-slider output{min-width:42px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:#173357}.progress-slider-limits{display:flex;justify-content:space-between;padding:5px 66px 0 12px}.side{position:sticky;top:0;align-self:start;height:100dvh;overflow-y:auto;z-index:10}@media(max-width:900px){.side{height:auto;max-height:100dvh}}.plan-panel{container-type:inline-size}.plan-panel .toolbar>*{max-width:100%;min-width:0}.plan-panel .table-wrap{overflow-x:hidden}.plan-table{table-layout:fixed;width:100%}.plan-panel .plan-table th,.plan-panel .plan-table td{white-space:normal;overflow-wrap:anywhere;padding:10px 7px}.plan-panel .plan-table th{white-space:nowrap;overflow-wrap:normal;vertical-align:middle;line-height:1.4;padding-top:14px;padding-bottom:14px}.plan-table th:nth-child(5),.plan-table td[data-label=Duration]{text-align:center}.plan-table th:nth-child(2),.plan-table th:nth-child(8),.plan-table td[data-label=Assignee],.plan-table td[data-label=Prerequisites]{text-align:center}.plan-table td[data-label=Assignee] .owner-stack{justify-content:center}.plan-table th:nth-child(6),.plan-table td[data-label=Status]{text-align:center}.plan-table th:nth-child(3),.plan-table th:nth-child(4),.plan-table td[data-label=Start],.plan-table td[data-label=End]{text-align:center}.plan-panel .plan-table .taskname{min-width:0!important;max-width:none;line-height:1.5}.task-title{display:flex;align-items:flex-start;min-width:0;gap:3px}.task-title>.drag-grip,.task-title>.task-indent,.task-title>.task-toggle,.task-title>.wbs{flex-shrink:0;margin:0}.task-title>.task-toggle{margin-right:3px}.task-title>.wbs{min-width:0;max-width:65px;height:auto;min-height:22px;margin-right:5px}.task-title-text{min-width:0;flex:1}.plan-table .owner-stack{flex-wrap:wrap;gap:3px}.plan-table .owner-stack .owner-avatar{margin-right:0;flex-shrink:0}.plan-table .prereq-cell{max-width:none;overflow:visible;text-overflow:clip;line-height:1.5}.plan-table .action-group{flex-wrap:wrap;gap:4px}.plan-table .action-group>*{flex-shrink:0}.plan-table .progress-wrap{min-width:0;flex-wrap:wrap;gap:5px}.plan-table .progress-wrap>.progress{min-width:0;width:auto;flex:1 1 35px}.plan-table .status{max-width:100%;text-align:center}@container (max-width:950px){.plan-table,.plan-table tbody{display:block}.plan-table colgroup{display:none}.plan-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.plan-table .task-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px;border-bottom:1px solid var(--line);gap:10px 14px}.plan-panel .plan-table .task-row td{display:block;min-width:0;padding:0;border:0}.plan-table .task-row td:before{content:attr(data-label);display:block;margin-bottom:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#68778d}.plan-table .task-row .taskname,.plan-table .task-row .prereq-cell,.plan-table .task-row .actions{grid-column:1/-1}.plan-table .task-row .taskname:before{display:none}.plan-table .task-row .progress-wrap{max-width:180px}.plan-table .task-row.drop-before{box-shadow:inset 0 3px #3787cf}.plan-table .task-row.drop-after{box-shadow:inset 0 -3px #3787cf}.plan-table .task-row.drop-child{box-shadow:inset 4px 0 #3787cf}.plan-table .task-row.drop-before td,.plan-table .task-row.drop-after td{box-shadow:none}}@container (max-width:520px){.plan-table .task-row{grid-template-columns:repeat(2,minmax(0,1fr))}.task-title>.task-indent{max-width:27px}}.auth-widget{display:flex;align-items:center;gap:10px;margin-left:auto}.auth-user-info{display:flex;align-items:center;gap:8px;font-size:12px;background:#f0f5fc;padding:5px 10px;border-radius:20px;border:1px solid #d4e3f5}.auth-avatar{width:24px;height:24px;border-radius:50%;background:#276fbd;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:11px}.auth-name{font-weight:600;color:#183256;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-status-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;text-transform:uppercase;letter-spacing:.03em;background:#dcf2e4;color:#126c39}.auth-btn-login{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(180deg,#2f79c9,#2060a3);color:#fff;border:1px solid #1a528e;padding:7px 13px;border-radius:6px;font-weight:700;font-size:12px;box-shadow:0 2px 6px #1b569528}.auth-btn-login:hover{background:#185494}.auth-btn-logout{background:#fff;color:#5a687d;border:1px solid #ccd8e6;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:600}.auth-btn-logout:hover{background:#f4f7fb;color:#b2312b;border-color:#f1b7b4}.auth-callback-container{display:flex;min-height:100vh;align-items:center;justify-content:center;background:var(--bg);padding:20px}.auth-callback-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:36px;max-width:440px;width:100%;text-align:center;box-shadow:0 12px 36px #10203816}.auth-spinner{width:40px;height:40px;border:4px solid #e1ecf8;border-top-color:#236ebd;border-radius:50%;animation:auth-spin .8s linear infinite;margin:0 auto 18px}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-error-card{border-top:4px solid #cf3d35}.auth-error-details{background:#fff3f2;border:1px solid #f6c8c5;border-radius:6px;padding:12px;margin:16px 0;font-size:12px;color:#9b241e;text-align:left;overflow-wrap:anywhere}.auth-unconfigured-note{font-size:11px;color:#78869b;margin-top:4px}.login-page-wrapper{min-height:100vh;background:radial-gradient(circle at 50% 0%,#172554,#0b1329,#030712);color:#f8fafc;display:flex;flex-direction:column;position:relative;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.login-ambient-orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;opacity:.35;z-index:0}.orb-1{width:450px;height:450px;background:#3b82f6;top:-80px;left:20%;animation:orb-float-1 12s ease-in-out infinite alternate}.orb-2{width:500px;height:500px;background:#8b5cf6;top:150px;right:15%;animation:orb-float-2 15s ease-in-out infinite alternate}@keyframes orb-float-1{0%{transform:translateY(0) scale(1)}to{transform:translateY(40px) scale(1.08)}}@keyframes orb-float-2{0%{transform:translateY(0) scale(1)}to{transform:translateY(-30px) scale(.95)}}.login-header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 3rem;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-brand{display:flex;align-items:center;gap:.85rem}.login-brand-icon{width:38px;height:38px;filter:drop-shadow(0 4px 10px rgba(231,181,72,.35))}.login-brand-text{display:flex;flex-direction:column}.brand-title{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:#fff}.brand-title b{color:#fbbf24}.brand-sub{font-size:.72rem;color:#94a3b8;letter-spacing:.04em;text-transform:uppercase}.login-header-status{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#38bdf8;background:#0ea5e91a;padding:.35rem .85rem;border-radius:9999px;border:1px solid rgba(56,189,248,.25)}.status-ping{width:8px;height:8px;border-radius:50%;background:#38bdf8;box-shadow:0 0 10px #38bdf8;animation:pulse-ping 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-ping{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.login-main{position:relative;z-index:10;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.5rem 1.5rem 2.5rem;max-width:1100px;margin:0 auto;width:100%}.login-card-container{background:#0f172abf;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:3rem 2.5rem;max-width:620px;width:100%;text-align:center;box-shadow:0 25px 60px -15px #000000b3,0 0 40px #3b82f61f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin-bottom:0}.login-badge{display:inline-flex;align-items:center;gap:.45rem;background:#3b82f626;border:1px solid rgba(96,165,250,.3);color:#93c5fd;padding:.3rem .85rem;border-radius:9999px;font-size:.78rem;font-weight:600;margin-bottom:1.5rem}.login-hero-title{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;margin:0 0 1rem;color:#fff;line-height:1.15}.title-highlight{background:linear-gradient(135deg,#60a5fa,#a78bfa,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-hero-subtitle{color:#94a3b8;font-size:1rem;line-height:1.6;margin:0 auto 2.25rem;max-width:480px}.login-error-card{width:100%;max-width:480px;background:#ef44441f;border:1px solid rgba(239,68,68,.35);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.5rem;text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-error-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.login-error-title{color:#f87171;font-weight:700;font-size:.95rem}.login-error-desc{color:#fca5a5;font-size:.85rem;line-height:1.45;margin:0}.login-retry-btn{display:inline-flex;align-items:center;gap:.45rem;background:#ef444433;color:#fecaca;border:1px solid rgba(239,68,68,.45);border-radius:6px;padding:.4rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer;margin-top:.75rem;transition:all .2s ease}.login-retry-btn:hover{background:#ef444459;color:#fff;border-color:#ef4444b3}.login-action-box{display:flex;flex-direction:column;align-items:center;gap:1rem}.login-primary-btn{display:inline-flex;align-items:center;justify-content:space-between;width:100%;max-width:420px;padding:.95rem 1.5rem;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:12px;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:0 10px 25px -5px #2563eb80,0 0 15px #3b82f64d;transition:all .25s cubic-bezier(.16,1,.3,1)}.login-primary-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-2px);box-shadow:0 15px 30px -5px #2563eba6,0 0 25px #3b82f673}.login-primary-btn:active:not(:disabled){transform:translateY(0)}.login-primary-btn:disabled{opacity:.7;cursor:wait}.btn-content{display:flex;align-items:center;gap:.75rem}.sso-key-icon{color:#fde047}.arrow-icon{transition:transform .2s ease}.login-primary-btn:hover .arrow-icon{transform:translate(4px)}.login-security-notice{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:#64748b;margin-top:.5rem}.login-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem;width:100%}.feature-card{background:#0f172a73;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:1.5rem;transition:all .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.feature-card:hover{background:#1e293b99;border-color:#38bdf84d;transform:translateY(-3px);box-shadow:0 10px 20px -5px #0006}.feature-icon-wrapper{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.icon-gantt{background:#3b82f626;color:#60a5fa}.icon-resources{background:#10b98126;color:#34d399}.icon-security{background:#f59e0b26;color:#fbbf24}.icon-sync{background:#a855f726;color:#c084fc}.feature-card h3{font-size:1rem;font-weight:700;color:#f1f5f9;margin:0 0 .5rem}.feature-card p{font-size:.85rem;color:#94a3b8;line-height:1.5;margin:0}.login-footer{position:relative;z-index:10;text-align:center;padding:1.5rem;border-top:1px solid rgba(255,255,255,.05);color:#64748b;font-size:.8rem}.auth-loading-screen{min-height:100vh;background:#0b1329;color:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.auth-loading-screen h2{color:#38bdf8;margin-top:0}button:disabled{opacity:.45;cursor:not-allowed}
