*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#222;font-family:Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;font-size:13px}.app-root{flex-direction:column;height:100%;display:flex}.app-header{background:#f7f7f7;border-bottom:1px solid #ccc;align-items:center;gap:8px;padding:6px 12px;display:flex}.app-title{margin:0 8px 0 0;font-size:15px}.app-header .spacer{flex:1}.save-error{color:#c00;font-weight:700}.gantt-page{flex:1;min-height:0;display:flex}.pane-grid{overflow:auto}.splitter{cursor:col-resize;background:#ddd;flex:none;width:5px}.pane-chart{flex:1;position:relative;overflow:auto}.task-grid{border-collapse:collapse;-webkit-user-select:none;user-select:none;outline:none}.task-grid th{z-index:2;background:#eef1f5;border:1px solid #ccc;height:47px;padding:2px 4px;font-weight:400;position:sticky;top:0}.task-grid td{white-space:nowrap;border:1px solid #ddd;height:28px;padding:0 4px;overflow:hidden}.task-grid td.selected{outline-offset:-2px;outline:2px solid #1a73e8}.task-grid td.readonly{color:#666;background:#f3f3f3}.task-grid td.invalid{outline-offset:-2px;outline:2px solid #c00}.task-grid .rownum{text-align:center;color:#666;cursor:grab;background:#eef1f5;width:34px}.task-grid input{width:100%;height:100%;font:inherit;background:#fff;border:none;outline:none;padding:0}.name-cell{align-items:center;gap:2px;display:flex}.collapse-toggle{cursor:pointer;text-align:center;color:#555;flex:none;width:14px}.drop-above{box-shadow:inset 0 2px #1a73e8}.drop-below{box-shadow:inset 0 -2px #1a73e8}.context-menu{z-index:10;background:#fff;border:1px solid #bbb;min-width:160px;position:fixed;box-shadow:2px 2px 6px #0003}.context-menu button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;padding:6px 12px;display:block}.context-menu button:hover{background:#e8f0fe}.chart-header{z-index:2;background:#eef1f5;position:sticky;top:0}.chart-month-row,.chart-day-row{height:24px;display:flex}.chart-month-cell{border-bottom:1px solid #ccc;border-right:1px solid #ccc;flex:none;padding-left:4px;font-size:11px;overflow:hidden}.chart-day-cell{text-align:center;border-bottom:1px solid #ccc;border-right:1px solid #ddd;flex:none;width:24px;font-size:11px}.chart-day-cell.weekend{background:#e2e2e2}.chart-body{position:relative}.chart-row{border-bottom:1px solid #eee;height:28px;position:relative}.weekend-stripe{pointer-events:none;background:#0000000f;position:absolute;top:0;bottom:0}.today-line{z-index:3;pointer-events:none;background:#e53935;width:2px;position:absolute;top:0;bottom:0}.gantt-bar{cursor:grab;background:#4a90d9;border-radius:3px;height:18px;position:absolute;top:5px}.gantt-bar.delayed{background:#d9534f}.gantt-bar.parent{cursor:default;background:#2e5f8a;border-radius:2px;height:8px;top:9px}.gantt-bar .progress-fill{pointer-events:none;background:#00000059;border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0}.gantt-bar .handle{cursor:ew-resize;width:6px;position:absolute;top:0;bottom:0}.gantt-bar .handle.left{left:0}.gantt-bar .handle.right{right:0}.status-settings table{border-collapse:collapse;width:100%}.status-settings th,.status-settings td{text-align:left;padding:4px 6px}.status-settings input[type=number]{width:60px}.status-settings input[type=text]{width:140px}.settings-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.modal-overlay{z-index:20;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:4px;min-width:480px;max-width:640px;box-shadow:0 4px 16px #00000040}.modal-header{border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.modal-header h2{margin:0;font-size:15px}.modal-close{cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:16px}.settings-body{min-height:280px;display:flex}.settings-sidebar{border-right:1px solid #ddd;width:140px;padding:8px 0}.settings-sidebar button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;padding:8px 14px;display:block}.settings-sidebar button.active{background:#e8f0fe;font-weight:700}.settings-detail{flex:1;padding:14px}
