@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@500;600;650;700;750;800&display=swap');
:root{--bg:#f7f8fa;--paper:#fff;--line:#e7eaf0;--text:#273248;--muted:#8590a3;--blue:#526fbb;--pale:#eef2fb;--orange:#ed8e5c;--green:#4b9a82;--red:#c86b66;--shadow:0 10px 40px #22304b0b}*{box-sizing:border-box}body{margin:0;font:13px 'DM Sans',system-ui,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}button,input,select,textarea,a{outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue)}button{border:0;background:transparent}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{font-size:28px;letter-spacing:-1px;font-weight:800}h2{font-size:17px;letter-spacing:-.4px}h3{font-size:14px}small{font-size:11px}.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:27px 17px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 11px 30px;font-size:19px;font-weight:700;letter-spacing:-.6px}.brandmark{height:32px;width:32px;background:#273a59;color:#f1b28e;display:grid;place-items:center;border-radius:9px;font-size:23px}.brand span span{color:#a0a9b8;font-weight:400}.workspace{margin:0 6px 25px;border:1px solid var(--line);border-radius:8px;padding:11px;display:flex;gap:10px;align-items:center}.tiny-logo{background:#f9efe7;color:#be845f;border-radius:6px;padding:7px;font-weight:700}.eyebrow{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:#99a2b3;font-weight:600}.nav{display:grid;gap:5px;margin:10px 0 25px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border-radius:7px;color:#728096;font-weight:500}.nav button.active{background:var(--pale);color:var(--blue);font-weight:700}.nav button:hover{background:#f5f7fb}.nav svg{width:18px;height:18px}.nav .count{margin-left:auto;font-size:10px;background:#e5ebf9;padding:2px 6px;border-radius:4px}.project-link{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:12px;text-align:left}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;color:#8d97a7;font-size:11px;line-height:1.6}.main{min-width:0}.topbar{height:69px;border-bottom:1px solid var(--line);background:#ffffffd9;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.crumb{color:#98a1af;font-size:12px}.crumb strong{color:#5f6c80;font-weight:500}.top-actions{display:flex;align-items:center;gap:12px}.role{border:1px solid var(--line);border-radius:6px;background:#fff;padding:6px 8px;font-size:11px}.avatar{width:29px;height:29px;border-radius:50%;display:inline-grid;place-items:center;background:#e7edf8;color:#5a70a5;font-size:10px;font-weight:700;flex-shrink:0}.content{padding:30px 32px 40px;max-width:1920px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.subtitle{color:var(--muted);margin-top:7px;line-height:1.6;font-size:12px}.btn{border:1px solid #dfe4ed;background:white;border-radius:7px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:500}.btn.primary{background:#4e68ae;color:white;border-color:#4e68ae;box-shadow:0 3px 6px #445c9b15}.btn:hover{filter:brightness(.97)}.btn svg{height:15px;width:15px}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.spacer{flex:1}.badge{border-radius:5px;padding:4px 7px;font-size:10px;white-space:nowrap;display:inline-flex;gap:5px;align-items:center}.badge.green{background:#edf6f1;color:#4e8a72}.badge.amber{background:#fbf3e4;color:#b48b42}.badge.red{background:#fbefee;color:#bc6c64}.badge.blue{background:#eef2fb;color:#6178af}.badge.gray{background:#f0f2f6;color:#8792a4}.badge.purple{background:#f2eef9;color:#9480b3}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat{border:1px solid var(--line);background:white;border-radius:9px;padding:18px 20px}.stat-top{display:flex;justify-content:space-between;color:#7e8a9e;font-size:12px}.stat strong{font:750 30px Manrope,sans-serif;letter-spacing:-1px;display:block;margin:12px 0 4px}.stat small{color:#94a0b0}.stat svg{height:17px;width:17px;color:#aab6c8}.panel{border:1px solid var(--line);background:white;border-radius:10px;overflow:hidden}.panel-head{padding:19px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.panel-head h2{font-size:14px}.panel-body{padding:20px 22px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px}.project-table{width:100%;border-collapse:collapse;text-align:left}.project-table th{color:#929caf;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;padding:13px 20px;background:#fcfcfe}.project-table td{padding:19px 20px;border-top:1px solid #f0f2f6}.project-table tr.clickable:hover{background:#fafbfe;cursor:pointer}.project-name{font-weight:600;margin-bottom:5px}.project-sub{font-size:10px;color:#98a2b2}.project-icon{width:34px;height:37px;background:#edf1f8;border-radius:6px;display:grid;place-items:center;color:#6b7da5}.progress{height:5px;background:#edf0f6;border-radius:9px;overflow:hidden}.progress i{height:100%;background:#7590ce;display:block;border-radius:9px}.timeline-mini{display:flex;margin-top:15px;height:8px;gap:3px}.timeline-mini i{flex:1;border-radius:2px;background:#e9edf4}.alert-item{padding:16px 0;border-bottom:1px solid #eef1f5;display:flex;gap:12px}.alert-item:last-child{border:0}.alert-icon{color:#c28d59;background:#fcf3e9;border-radius:7px;width:28px;height:28px;display:grid;place-items:center;flex-shrink:0}.alert-item h3{font:600 12px 'DM Sans',sans-serif;margin-bottom:5px}.alert-item p{font-size:11px;color:#8e99aa;line-height:1.6}.link{color:var(--blue);font-size:11px;padding:0;text-align:left}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}.tabs{display:flex;gap:3px;border:1px solid var(--line);padding:3px;border-radius:8px;background:white}.tabs button{padding:8px 13px;border-radius:5px;font-size:12px;color:#8994a7;display:flex;align-items:center;gap:6px}.tabs button.active{background:#edf1fb;color:#536ca7;font-weight:600}.tabs svg{width:14px;height:14px}.search{position:relative}.search input{border:1px solid var(--line);border-radius:7px;padding:10px 12px 10px 32px;background:white;width:210px;font-size:12px}.search svg{position:absolute;left:10px;top:10px;width:15px;height:15px;color:#99a4b6}.filter{border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px 10px;color:#65738a;font-size:12px;max-width:210px}.board{display:grid;grid-template-columns:repeat(4,minmax(245px,1fr));gap:20px;overflow-x:auto;padding:2px 2px 25px}.column{min-height:450px;background:#f0f2f6;border-radius:9px;padding:13px;transition:background .15s}.column.dragover{background:#e3eaf8;outline:2px dashed #8ba1cd}.column-head{display:flex;align-items:center;gap:8px;padding:5px 2px 16px;font-size:12px;font-weight:600}.column-head .number{color:#8c97a7;font-size:10px;background:#e4e8ef;border-radius:4px;padding:2px 5px;font-weight:500}.task-card{background:white;border:1px solid #e6eaf0;border-radius:8px;padding:15px;margin-bottom:11px;box-shadow:0 2px 4px #1f365204;cursor:pointer;transition:transform .15s,box-shadow .15s}.task-card:hover{box-shadow:0 5px 14px #26395a0c;transform:translateY(-2px);border-color:#cbd5e9}.task-card[draggable=true]{cursor:grab}.card-project{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#8190a7;display:flex;gap:5px;align-items:center;margin-bottom:10px}.task-card h3{font:600 13px/1.6 'DM Sans',sans-serif;margin-bottom:10px}.card-bottom{display:flex;gap:8px;align-items:center;border-top:1px solid #f2f3f7;padding-top:12px;margin-top:12px;color:#95a0af;font-size:10px}.card-bottom svg{height:12px;width:12px}.card-bottom .avatar{width:24px;height:24px;font-size:8px}.wait-reason{font-size:10px;line-height:1.6;background:#fbf5e9;color:#b18e50;border-radius:5px;padding:8px;margin-top:9px}.empty{color:#99a3b4;text-align:center;padding:35px 12px;font-size:12px}.gantt-wrap{border:1px solid var(--line);border-radius:9px;background:white;overflow:auto;max-height:65vh;position:relative}.gantt-grid{display:grid;grid-template-columns:310px var(--tw);width:max-content;position:relative}.g-left{position:sticky;left:0;z-index:3;background:white;border-bottom:1px solid #eef0f5;border-right:1px solid #e0e5ee;height:46px;display:flex;align-items:center;padding:0 16px;font-size:11px;gap:8px}.g-left.task{padding-left:35px;cursor:pointer}.g-left.task:hover{background:#f7f9fc}.g-left .task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.g-left .avatar{height:21px;width:21px;font-size:8px}.g-lane{height:46px;border-bottom:1px solid #eef0f5;position:relative;background-image:linear-gradient(to right,#eef1f5 1px,transparent 1px);background-size:var(--tick) 100%}.g-group{background-color:#f8f9fc;font-weight:600;color:#687894;height:38px}.g-head{position:sticky;top:0;z-index:5;background:#fafbfd;height:56px;color:#8c98aa;font-size:10px}.g-head.g-left{z-index:6;text-transform:uppercase;letter-spacing:.8px}.g-tick{position:absolute;top:10px;padding-left:8px;white-space:nowrap;font-size:10px}.g-tick small{display:block;margin-top:4px;color:#b1bac8;font-size:9px}.g-bar{position:absolute;top:11px;height:23px;border-radius:4px;background:#dce5f7;cursor:pointer;min-width:6px;color:#3d5481;touch-action:none;border:1px solid #c9d5ee}.g-bar.movable{cursor:grab}.g-bar .fill{position:absolute;left:0;top:0;bottom:0;background:#9db1df;border-radius:3px}.g-bar .bar-label{position:relative;display:block;font-size:10px;white-space:nowrap;overflow:hidden;line-height:21px;padding:0 8px;max-width:100%;pointer-events:none}.g-bar .handle{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize;background:#ffffff40;z-index:2}.g-baseline{position:absolute;height:3px;top:38px;background:#b9beca;border-radius:2px;opacity:.6}.today-line{position:absolute;top:0;bottom:0;left:var(--today);width:1px;background:#de967c;z-index:1;pointer-events:none}.g-diamond{position:absolute;top:16px;width:13px;height:13px;transform:rotate(45deg);border:1px solid #6582be;background:#b8caed;cursor:pointer}.g-summary{position:absolute;height:7px;top:15px;background:#becae2;border-radius:2px}.dependencies{position:absolute;left:310px;top:56px;overflow:visible;pointer-events:none;z-index:2}.legend{display:flex;align-items:center;gap:16px;margin-top:12px;color:#95a0b1;font-size:10px}.capacity-grid{display:grid;grid-template-columns:220px repeat(6,minmax(110px,1fr));min-width:900px}.cap-cell{padding:20px 13px;border-bottom:1px solid var(--line);border-right:1px solid #f1f3f7;display:flex;align-items:center;justify-content:center}.cap-cell.head{font-size:10px;color:#96a1b3;background:#fcfcfe;padding:15px}.cap-cell.person{justify-content:flex-start;gap:10px}.heat{width:100%;padding:13px 9px;border-radius:7px;text-align:center;font-size:12px;background:#f1f5fa;color:#768ba8}.heat.high{background:#fae9e5;color:#b67164}.heat.medium{background:#e4eee8;color:#698d76}.heat small{display:block;font-size:9px;opacity:.8;margin-top:3px}.capacity-note{padding:18px 20px;color:#96a1b3;font-size:11px;line-height:1.6}.personal-banner{padding:25px;background:#263850;color:white;border-radius:10px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.personal-banner:after{content:'';width:220px;height:220px;border:1px solid #ffffff12;border-radius:50%;position:absolute;right:30px;top:-75px;box-shadow:0 0 0 35px #ffffff05,0 0 0 70px #ffffff03;pointer-events:none}.personal-banner .eyebrow{color:#a5b6d0;margin-bottom:9px}.personal-banner h2{font-size:23px}.personal-banner p{font-size:12px;color:#acb9cc;margin-top:8px}.my-task{display:flex;align-items:center;gap:15px;padding:18px 22px;border-top:1px solid var(--line)}.my-task:first-child{border:0}.my-task h3{font-size:12px;margin-bottom:5px}.my-task p{font-size:10px;color:#96a1b3}.round-check{border:1px solid #cbd5e5;width:20px;height:20px;border-radius:50%;flex-shrink:0}.source-note{font-size:10px;color:#98a4b6;line-height:1.7;margin-top:25px}.modal-backdrop{position:fixed;inset:0;background:#1b2d4650;z-index:50;display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}.drawer{width:500px;max-width:100%;background:white;height:100vh;overflow:auto;box-shadow:-10px 0 50px #17294418;padding:26px 30px}.drawer h2{font-size:22px;line-height:1.5;margin:18px 0}.drawer label{display:block;font-size:11px;color:#8491a6;margin-bottom:7px}.drawer input,.drawer select,.drawer textarea{width:100%;border:1px solid #dfe5ee;border-radius:7px;padding:10px 11px;background:#fff;color:#40506a}.drawer textarea{resize:vertical;min-height:80px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.field-full{grid-column:1/-1}.section-title{margin:25px 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#8c98aa}.check-item{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:12px}.check-item input{width:15px}.comment{background:#f6f8fb;border-radius:7px;padding:12px;margin-bottom:10px;font-size:12px;line-height:1.6}.comment small{display:block;color:#9aa4b4;margin-bottom:4px}.dialog{border:0;border-radius:12px;width:470px;max-width:calc(100% - 30px);padding:27px;box-shadow:var(--shadow);color:var(--text)}.dialog::backdrop{background:#24354d55}.dialog p{color:#8290a6;line-height:1.7;margin:13px 0;font-size:12px}.dialog input,.dialog textarea{width:100%;padding:11px;border:1px solid #dfe5ee;border-radius:7px;margin-bottom:16px}.change-row{font-size:11px;padding:10px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#2d405c;color:white;padding:12px 20px;border-radius:9px;box-shadow:var(--shadow);display:none;font-size:12px}.model-banner{background:#eef2f8;border-bottom:1px solid #e2e7f0;padding:7px 32px;font-size:10px;color:#7e8da3;display:flex;gap:8px;align-items:center}.mobile-only{display:none}.split{display:grid;grid-template-columns:1fr 320px;gap:22px}.save-row{position:sticky;bottom:-26px;background:#fffffff5;padding:20px 0;border-top:1px solid var(--line);margin-top:25px}.activity{border-left:1px solid #e0e5ee;padding:0 0 18px 15px;font-size:11px;color:#7b8aa1}.activity small{display:block;font-size:9px;color:#adb5c3;margin-top:5px}svg.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.lead-only-note{padding:10px;background:#f3f6fb;color:#8090aa;font-size:11px;border-radius:6px;margin:12px 0}
@media(min-width:1600px){.content{padding:35px 45px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 360px}}@media(max-width:1100px){.layout{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding:24px 10px}.content{padding:25px 20px}.dashboard-grid,.split{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.topbar{padding:0 20px}.project-table td,.project-table th{padding:15px 12px}}@media(max-width:720px){.layout{display:block}.sidebar{height:auto;position:static;padding:13px;display:block;border-bottom:1px solid var(--line)}.brand{padding:0 0 10px;font-size:17px}.workspace,.sidebar .eyebrow,.sidebar .project-link,.sidebar-bottom{display:none}.nav{display:flex;margin:0;gap:2px;overflow:auto}.nav button{padding:9px;font-size:10px;white-space:nowrap;gap:6px}.nav .count{display:none}.topbar{height:55px;padding:0 15px}.crumb{display:none}.top-actions{width:100%;justify-content:space-between;gap:5px}.model-banner{padding:7px 15px;font-size:9px}.content{padding:23px 15px}.page-heading{align-items:flex-start}h1{font-size:24px}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:25px}.project-table th:nth-child(4),.project-table td:nth-child(4){display:none}.project-table td{font-size:11px}.search input{width:170px}.board{grid-template-columns:repeat(4,260px)}.drawer{padding:20px}.fields{gap:12px}.my-task{padding:15px 12px;gap:8px;flex-wrap:wrap}.my-task .row{margin-left:28px}.personal-banner{padding:20px}.personal-banner h2{font-size:18px}.gantt-grid{grid-template-columns:220px var(--tw)}.dependencies{left:220px}.g-left{padding:0 10px}.g-left.task{padding-left:20px}.g-left .avatar{display:none}}
.delivery-list{display:grid;gap:20px}.delivery-card .card-project{margin-bottom:6px}.delivery-flow{display:grid;grid-template-columns:1fr 100px 1fr;padding:20px;align-items:stretch;gap:15px}.operation-block{padding:18px;background:#f7f9fd;border:1px solid #e8edf6;border-radius:8px}.operation-block h3{margin:10px 0;font-size:14px}.operation-block p{font-size:12px;color:#8895a9;margin-bottom:15px}.muted-operation{background:#fbfbfc;color:#9aa4b4;border-style:dashed}.flow-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9da9bb;text-align:center;line-height:1.6}.delivery-warning{padding:12px 22px;background:#fcf3e9;color:#a17d50;font-size:11px;display:flex;gap:10px;align-items:center}.resource-left{text-align:left}.resource-left small{display:block;color:#9aa5b6;font-size:10px;margin-top:5px}.resource-booking.tentative{border-style:dashed;background:#f0edf8}.resource-booking.booking-conflict{border-color:#cd8477;background:#f8e4de;color:#b16d60}.resource-lane.unavailable,.availability-shade{background:repeating-linear-gradient(135deg,#f2f3f6,#f2f3f6 5px,#f8f9fb 5px,#f8f9fb 10px)}.availability-shade{position:absolute;inset:0 auto 0 0;pointer-events:none}.delivery-editor{width:800px;max-height:90vh}.delivery-editor label{display:block;color:#8795aa;font-size:11px;margin-bottom:7px}.delivery-editor input,.delivery-editor select{width:100%;padding:10px;border:1px solid #dce3ee;border-radius:6px;color:#42506b;background:white;margin:0}.delivery-editor input:disabled,.delivery-editor select:disabled{background:#f3f5f8;color:#a6afbd}.delivery-editor .fields{margin:16px 0;gap:16px}.operation-editor{padding:17px;border:1px solid #e4e9f1;border-radius:8px;margin-bottom:16px;background:#fafbfe}.operation-editor h3{font-size:14px}.preview-box{border:1px solid #cbd8ed;background:#f7f9fd;border-radius:9px;padding:20px;margin-top:20px}.dialog .error-message,.error-message{color:#b3665a;background:#fcf0ed;border-radius:6px;padding:12px;font-size:12px;margin-top:12px}.dialog .warning-message{color:#a1864e;background:#fbf4e7;border-radius:6px;padding:12px;font-size:12px}.dialog label{font-size:11px;color:#8391a6}.resource-booking{padding:0}.operation-editor[hidden]{display:none}@media(max-width:720px){.delivery-flow{grid-template-columns:1fr;padding:15px}.flow-link{flex-direction:row}.delivery-card .panel-head{flex-wrap:wrap}.delivery-editor{padding:18px}.delivery-editor .fields{grid-template-columns:1fr}.sidebar .nav{flex-wrap:nowrap}.nav button{font-size:11px}}
.gantt-editor-actions{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.gantt-editor-actions small{color:#8997ac;font-size:10px}.gantt-editor-layout{display:flex;align-items:flex-start;gap:14px}.gantt-editor-layout>.gantt-wrap{flex:1;min-width:0}.gantt-inspector{width:300px;flex-shrink:0;background:white;border:1px solid #dce4ef;border-radius:9px;padding:17px;max-height:65vh;overflow:auto}.gantt-inspector[hidden]{display:none}.inspector-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.gantt-inspector label{display:block;font-size:11px;color:#7b8ba3;margin:12px 0}.gantt-inspector input,.gantt-inspector select{display:block;width:100%;margin-top:6px;padding:9px;border:1px solid #dae3ef;background:white;border-radius:5px;color:#415370;min-width:0}.gantt-inspector input[type=color]{height:35px;padding:3px}.gantt-inspector .fields{gap:8px;margin:0}.g-task-title,.group-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left;padding:4px 0}.g-color{width:20px;height:21px;border:1px solid #e3e8ef;padding:1px;background:white;border-radius:4px;flex-shrink:0;cursor:pointer}.g-inline-name{width:100%;border:1px solid #9fb4dc;padding:5px;border-radius:4px}.editor-bar{overflow:visible;z-index:3}.editor-bar .fill{pointer-events:none}.editor-bar .bar-label{overflow:hidden}.editor-bar .handle{right:9px;width:6px;top:4px;bottom:4px;border-left:1px solid #fff9}.link-port{position:absolute;top:6px;width:11px;height:11px;border:2px solid #8b9ebc;background:white;border-radius:50%;padding:0;z-index:5;touch-action:none}.start-port{left:-6px}.end-port{right:-6px}.link-port:hover,.link-port:focus{background:#6f8fc9;transform:scale(1.4)}.editable-dependencies{pointer-events:none;z-index:2}.dependency-link{pointer-events:stroke;cursor:pointer}.link-hit{fill:none;stroke:transparent;stroke-width:12}.link-visible{fill:none;stroke:#91a2bf;stroke-width:1.4}.dependency-link:hover .link-visible,.dependency-link:focus .link-visible{stroke:#496cb4;stroke-width:2.4}.dependency-link text{font-size:9px;fill:#879ab8;pointer-events:none}.gantt-notice{padding:10px 13px;background:#edf3fc;color:#617ba6;border-radius:6px;font-size:12px;margin:10px 0}.gantt-notice[hidden]{display:none}.gantt-notice.error{background:#fbefec;color:#ae6a60}.milestone-bar{border-radius:8px}.gantt-inspector .change-row{font-size:11px;line-height:1.6}@media(max-width:900px){.gantt-editor-layout{flex-direction:column}.gantt-editor-layout>.gantt-wrap{width:100%}.gantt-inspector{width:100%;max-height:none}.gantt-editor-actions small{width:100%}}
/* Expandable Gantt dates and direct dependency editing */
.gantt-editor-layout .gantt-grid{grid-template-columns:var(--left-width,310px) var(--tw)}
.gantt-editor-layout .dependencies{left:var(--left-width,310px)}
.g-date-cells{display:grid;grid-template-columns:112px 112px 52px;gap:6px;flex:none;margin-left:12px;font-size:11px}
.g-date-cells input{width:100%;min-width:0;padding:5px 3px;border:1px solid #dce3ee;border-radius:4px;background:#fff;color:#26334d;font:inherit}
.g-date-cells input:disabled{opacity:.8;background:#f4f6fa}.g-task-title{min-width:0}
.editor-bar .fill{top:auto;bottom:0;height:3px;opacity:.7}.editor-bar .bar-label{color:inherit}
.g-rubber{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:1000;overflow:visible}.g-rubber path{stroke:#5479cf;stroke-width:2;stroke-dasharray:6 4;fill:none}.g-rubber circle{fill:#5479cf}
.link-port{touch-action:none}.link-port.link-target{background:#5479cf!important;box-shadow:0 0 0 5px #5479cf40;transform:scale(1.3)}
.g-link-popup{position:fixed;z-index:1001;width:312px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;padding:14px;background:#fff;border:1px solid #dce3ee;border-radius:12px;box-shadow:0 12px 45px #1e305b35;color:#24324a;font-size:12px}
.g-link-popup .q-names{font-size:11px;color:#64728a;max-height:40px;overflow:auto}.q-types{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0}.q-types .btn{font-size:10px;padding:8px 5px;display:block;white-space:normal}.q-types b{display:block;font-size:13px}.g-link-popup label{display:block;font-size:11px}.q-lag{width:70px;margin-left:10px;padding:5px;border:1px solid #dce3ee;border-radius:5px}.q-impact{margin:12px 0;max-height:80px;overflow:auto;font-size:11px;line-height:1.5}.g-link-popup .row .btn{font-size:11px;padding:7px}
/* Floating plan forms, quiet inline dates, compact row commands */
.gantt-editor-layout .gantt-inspector{position:fixed;z-index:1000;right:32px;top:120px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100vh - 150px);overflow:auto;box-shadow:0 16px 60px #20345830;border-radius:12px;padding:20px;background:#fff}
.gantt-inspector .inspector-head{position:sticky;top:-20px;background:#fff;padding:10px 0;z-index:1}
.g-date-cells input,.g-date-cells input:disabled{border:0;background:transparent;box-shadow:none;border-radius:0;color:inherit;padding:5px 2px}
.g-date-cells input:hover:not(:disabled){background:#f2f5fa}.g-date-cells input:focus{outline:1px solid #a6b8dc;border-radius:3px}
.gantt-inspector input[type=date],.gantt-inspector input[type=number]{border:0;border-bottom:1px solid #edf0f5;border-radius:0;background:transparent}
.g-row-actions{display:flex;flex-direction:column;flex:none;width:14px;margin-right:5px;opacity:0}.g-row-actions button{font-size:10px;line-height:12px;padding:0;color:#637ca6}.g-left.task:hover .g-row-actions,.g-left.task:focus-within .g-row-actions{opacity:1}
.daily-axis .g-tick{top:3px}.daily-axis .g-tick small{display:none}.g-day{position:absolute;top:23px;height:32px;text-align:center;font-size:9px;line-height:14px;color:#6c7b96;border-left:1px solid #edf0f5}.g-day small{display:block;font-size:9px}.g-day.nonworking{background:#e9edf4;color:#9ba5b6}
.gantt-inspector fieldset{border:0;padding:0;margin:0}.gantt-inspector textarea{width:100%;padding:8px;border:1px solid #e4e9f0;border-radius:6px;font:inherit}.calendar-week{display:flex;gap:9px}.gantt-inspector .calendar-week label{display:flex;flex-direction:column;align-items:center;gap:5px;margin:4px 0}.calendar-week input{width:auto;margin:0}.settings-links{display:grid;gap:8px;margin-top:20px}#calendar-impact{color:#ac6846;margin:12px 0}
@media(max-width:700px){.gantt-editor-layout .gantt-inspector{right:16px;top:80px;max-height:calc(100vh - 100px)}.g-row-actions{opacity:1}}
/* Keep action feedback out of document flow and preserve the editing context. */
#plan-view{position:relative;overflow-anchor:none}
#gantt-notice{position:absolute;z-index:20;left:12px;right:12px;top:48px;margin:0;box-shadow:0 4px 18px #1e305b15;pointer-events:none}
#gantt-scroll{overflow-anchor:none;scroll-behavior:auto}
.editor-bar.g-recent-edit{outline:2px solid #91a8d4;outline-offset:3px}
.gantt-editor-layout .gantt-inspector{max-height:calc(100vh - 24px)}
.master-grid{display:grid;grid-template-columns:310px var(--master-width);min-width:max-content}.master-name{position:sticky;left:0;z-index:3;background:#fff;border-bottom:1px solid #edf0f5;padding:12px 15px;text-align:left;font-size:12px;display:flex;flex-direction:column;justify-content:center;gap:5px}.master-name small{font-size:10px;color:#8995aa}.master-track{height:53px;position:relative;border-bottom:1px solid #edf0f5;background:repeating-linear-gradient(to right,transparent 0,transparent 55px,#f3f5f9 56px)}.master-name.project,.master-track.project{background:#f0f4fa;font-weight:600}.master-name.detail{padding-left:32px;font-size:11px}.master-name.stage{padding-left:23px}.master-track.head{background:#f8faff;position:sticky;top:0;z-index:2}.master-track.head span{position:absolute;top:16px;font-size:10px;white-space:nowrap}.master-name.head{background:#f8faff;position:sticky;top:0;z-index:4}.master-segment{position:absolute;top:15px;height:24px;border-radius:5px;font-size:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:3px 8px;text-align:left}.forecast .master-segment{opacity:.65;border:1px dashed #503a72}.master-layers{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0 18px;font-size:12px;color:#64748b}.master-context{font-size:11px;color:#8995aa;position:absolute;left:15px;top:17px}.fixed-date{position:absolute;top:0;color:#b66e4c}.planning-modal label,.gantt-inspector label{display:block}.planning-modal select,.planning-modal input:not([type=checkbox]),.planning-modal textarea{display:block;width:100%;padding:8px;margin:6px 0 14px;border:1px solid #dfe5ef;border-radius:5px}.planning-modal fieldset,#assignment-form fieldset{border:0;padding:0}.choice{display:flex!important;align-items:center;gap:7px;font-size:12px;margin:8px 0!important}.choice input{width:auto!important;margin:0!important}.planning-modal details,#assignment-form details{margin:12px 0}summary{cursor:pointer;font-size:12px}.assignment-avatar{padding:0;background:none;border:0;cursor:pointer}.resource-chip{font-size:9px;color:#6781a3;padding:3px;max-width:70px;overflow:hidden;text-overflow:ellipsis}.ready-note{font-size:12px;padding:12px 20px;background:#f6f8fc}.planning-tools{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.master-track.stage{height:64px}.master-track.stage [data-stage-kind=production]{top:5px}.master-track.stage [data-stage-kind=assembly]{top:34px}.master-name.stage{min-height:64px}
