.gantt-card{overflow:hidden;margin-top:16px}
.gantt-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid #e8eee9}
.gantt-card .card-head h2{margin:0;font-size:16px}
.gantt-legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#748c80;font-size:10px}
.gantt-legend i{display:inline-block;width:11px;height:8px;border-radius:4px;background:#91b9ab;margin-inline-start:9px}
.gantt-legend i.done{background:#345d52}
.gantt-legend i.critical{background:#d17765}
.gantt-scroll{overflow:auto;max-height:65vh;min-height:150px}
.gantt-board{min-width:100%;position:relative}
.gantt-head,.gantt-row{display:flex;min-height:54px;border-bottom:1px solid #e9efeb}
.gantt-head{min-height:43px;position:sticky;top:0;background:#f8faf7;z-index:3}
.gantt-row:hover{background:#f9fcf8}
.gantt-name{flex:none;width:220px;position:sticky;right:0;z-index:2;background:inherit;display:flex;flex-direction:column;justify-content:center;padding:7px 15px;border-left:1px solid #e1eae3;font-size:11px;overflow:hidden}
.gantt-head .gantt-name{font-weight:800;background:#f8faf7;z-index:4}
.gantt-row .gantt-name{background:#fff}
.gantt-row:hover .gantt-name{background:#f9fcf8}
.gantt-name small{font-size:10px;color:#71877c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gantt-axis{position:relative;flex:none;background-image:linear-gradient(to left,#e9efe9 1px,transparent 1px);background-repeat:repeat-x}
.gantt-month{position:absolute;top:12px;font-size:10px;color:#61796d;white-space:nowrap;padding-right:5px;border-right:2px solid #b4c9b8}
.gantt-today{position:absolute;top:0;bottom:0;border-right:2px dashed #d89653;z-index:1;pointer-events:none}
.gantt-bar{position:absolute;top:15px;height:23px;background:#a4c6b8;border:0;border-radius:7px;overflow:hidden;padding:0;box-shadow:0 2px 7px #38645728;z-index:2}
.gantt-bar:not(:disabled):hover{outline:2px solid #224e48;outline-offset:2px}
.gantt-bar:disabled{cursor:default}
.gantt-bar.critical{background:#e4a59a}
.gantt-bar-fill{display:block;height:100%;background:#345d52;border-radius:7px;float:right}
.gantt-bar.critical .gantt-bar-fill{background:#c75f4e}
.gantt-foot{font-size:11px;color:#71887a;padding:14px 20px;line-height:1.8}
@media(max-width:760px){.gantt-card .card-head{align-items:flex-start;flex-direction:column}.gantt-name{width:155px}.gantt-board{width:max-content!important}.gantt-scroll{max-height:60vh}}
.template-shortcut{margin:16px 0 25px}
.template-empty{margin-top:12px;padding:24px}
.template-empty h3{margin:0 0 8px;font-size:17px;color:#244e48}
.template-empty p{font-size:12px;color:#667f74;line-height:2;margin:0 0 18px}

/* Project control import, CBS and progress form */
.cbs-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0;background:linear-gradient(135deg,#eef5ff,#f8fbff)}
.cbs-summary>div{display:grid;gap:8px;padding:12px;border:1px solid #d8e7f7;border-radius:14px;background:#fff}
.cbs-summary small{color:#557190}.cbs-summary strong{font-size:17px;color:#164477}
.schedule-import{margin:14px 0;border:1px solid #d9e8f9;border-radius:18px;background:linear-gradient(145deg,#fff,#f1f7ff)}
.schedule-import p{line-height:1.9}.schedule-import-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:end;gap:15px}
.schedule-import-form label{display:grid;gap:7px}.schedule-import-form button{min-height:44px}
.progress-dialog{max-width:680px;width:min(94vw,680px)}
.progress-dialog #form-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.progress-dialog #form-fields>.full{grid-column:1/-1}
.progress-hero{border-radius:17px;padding:22px;color:#fff;background:linear-gradient(125deg,#123c70,#2b79bd);box-shadow:0 12px 30px #24518e24}
.progress-hero span{font-size:12px;color:#b9ddff}.progress-hero h3{margin:10px 0;font-size:20px;color:#fff}.progress-hero p{margin:0;color:#e5f1ff}
.progress-upload{border:1px dashed #93b9e0;border-radius:14px;padding:18px;background:#f4f9ff;display:grid;gap:7px}
.progress-upload small{color:#526b86}.progress-upload input{max-width:100%}
@media(max-width:600px){.progress-dialog #form-fields{grid-template-columns:1fr}}
