:root{--gantt-bg: #0a0f1a;--gantt-surface: #111827;--gantt-surface-hover: #1f2937;--gantt-border: rgba(148, 163, 184, 0.4);--gantt-border-strong: rgba(148, 163, 184, 0.6);--gantt-text: #f1f5f9;--gantt-text-secondary: #94a3b8;--gantt-text-muted: #64748b;--gantt-accent: #6366f1;--gantt-accent-light: #818cf8;--gantt-accent-soft: rgba(99, 102, 241, 0.15);--gantt-success: #10b981;--gantt-error: #ef4444;--gantt-radius: 12px;--gantt-radius-lg: 16px}.ganttPage{min-height:100vh;background:var(--gantt-bg);color:var(--gantt-text);font-family:"Inter","Noto Sans JP",system-ui,sans-serif}.layout__main.gantt{padding:0;width:100%}.ganttHero{position:relative;padding:48px 20px 32px;overflow:hidden;background:linear-gradient(180deg, rgba(99, 102, 241, 0.08) 0%, transparent 100%)}.ganttHero__glow{position:absolute;top:-100px;left:50%;transform:translateX(-50%);width:600px;height:400px;background:radial-gradient(ellipse, rgba(99, 102, 241, 0.25) 0%, transparent 70%);pointer-events:none;animation:heroGlow 4s ease-in-out infinite}@keyframes heroGlow{0%,100%{opacity:.5;transform:translateX(-50%) scale(1)}50%{opacity:.8;transform:translateX(-50%) scale(1.2)}}.ganttHero__container{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}@media(max-width: 768px){.ganttHero__container{grid-template-columns:1fr;gap:32px}}.ganttHero__content{display:flex;flex-direction:column;gap:16px}.ganttHero__badge{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;padding:6px 14px;background:var(--gantt-accent-soft);border:1px solid rgba(99,102,241,.3);border-radius:999px;color:var(--gantt-accent-light);font-size:13px;font-weight:600;animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.2)}50%{box-shadow:0 0 0 8px rgba(99,102,241,0)}}.ganttHero__title{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:900;line-height:1.2;letter-spacing:-0.02em}.ganttHero__titleMain{color:var(--gantt-text)}.ganttHero__titleAccent{color:var(--gantt-accent-light);background:linear-gradient(90deg, var(--gantt-accent), var(--gantt-accent-light));-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);background-clip:text}.ganttHero__subtitle{font-size:1rem;color:var(--gantt-text-secondary);line-height:1.6}.ganttHero__features{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}.ganttHero__features li{display:flex;align-items:center;gap:10px;font-size:.95rem;color:var(--gantt-text-secondary)}.ganttHero__features li svg{flex-shrink:0;color:var(--gantt-accent-light)}.ganttHero__bookmark{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:10px 16px;background:rgba(0,0,0,0);border:1px dashed var(--gantt-border-strong);border-radius:8px;color:var(--gantt-text-muted);font-size:.85rem;cursor:pointer;transition:all .2s ease}.ganttHero__bookmark:hover{background:var(--gantt-accent-soft);border-color:var(--gantt-accent);color:var(--gantt-accent-light)}.ganttHero__visual{display:flex;justify-content:center;align-items:center}@media(max-width: 768px){.ganttHero__visual{order:-1}}.ganttHero__card{width:100%;max-width:320px;background:var(--gantt-surface);border:1px solid var(--gantt-border);border-radius:var(--gantt-radius-lg);overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.3);transform:perspective(1000px) rotateY(-5deg) rotateX(2deg);transition:transform .3s ease}.ganttHero__card:hover{transform:perspective(1000px) rotateY(0deg) rotateX(0deg)}.ganttHero__cardHeader{display:flex;gap:6px;padding:12px 16px;background:rgba(0,0,0,.3);border-bottom:1px solid var(--gantt-border)}.ganttHero__cardDot{width:10px;height:10px;border-radius:50%;background:var(--gantt-border-strong)}.ganttHero__cardDot:first-child{background:#ef4444}.ganttHero__cardDot:nth-child(2){background:#fbbf24}.ganttHero__cardDot:nth-child(3){background:#22c55e}.ganttHero__cardBody{padding:16px;display:flex;flex-direction:column;gap:12px}.ganttHero__ganttRow{display:flex;align-items:center;gap:12px}.ganttHero__ganttLabel{width:48px;font-size:11px;color:var(--gantt-text-muted);white-space:nowrap}.ganttHero__ganttBar{height:20px;border-radius:4px;background:linear-gradient(90deg, var(--gantt-accent), var(--gantt-accent-light));opacity:.8}.ganttHero__ganttBar_1{width:35%;margin-left:0}.ganttHero__ganttBar_2{width:30%;margin-left:20%}.ganttHero__ganttBar_3{width:45%;margin-left:30%}.ganttHero__ganttBar_4{width:25%;margin-left:55%}.ganttMainContent{max-width:1000px;margin:0 auto;padding:24px 20px 80px;display:flex;flex-direction:column;gap:24px}.ganttImport{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--gantt-accent-soft);border:1px solid rgba(99,102,241,.3);border-radius:var(--gantt-radius)}@media(max-width: 600px){.ganttImport{flex-direction:column;text-align:center}}.ganttImport__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--gantt-accent);border-radius:12px;color:#fff;flex-shrink:0}.ganttImport__text{flex:1;display:flex;flex-direction:column;gap:4px}.ganttImport__text strong{font-size:1rem;color:var(--gantt-text)}.ganttImport__text span{font-size:.85rem;color:var(--gantt-text-secondary)}.ganttImport__btn{padding:10px 20px;background:var(--gantt-accent);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:44px}.ganttImport__btn:hover{background:var(--gantt-accent-light)}.ganttSection{background:var(--gantt-surface);border:1px solid var(--gantt-border);border-radius:var(--gantt-radius);overflow:hidden}.ganttSection__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--gantt-border);background:rgba(0,0,0,.2)}.ganttSection__title{font-size:1rem;font-weight:600;color:var(--gantt-text);margin:0}.ganttSection__addBtn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--gantt-accent-soft);border:1px solid var(--gantt-accent);border-radius:8px;color:var(--gantt-accent-light);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px}.ganttSection__addBtn:hover{background:var(--gantt-accent);color:#fff}.ganttTaskList{padding:20px}.ganttTaskList__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 24px;color:var(--gantt-text-muted);text-align:center}.ganttTaskList__empty p{margin:0;font-size:1rem}.ganttTaskList__emptyBtn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;background:var(--gantt-accent);border:none;border-radius:var(--gantt-radius);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:52px}.ganttTaskList__emptyBtn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(99,102,241,.3)}.ganttTaskTable{overflow-x:auto}.ganttTaskTable table{width:100%;min-width:600px;border-collapse:collapse}.ganttTaskTable thead{background:rgba(0,0,0,.3)}.ganttTaskTable th{padding:12px;text-align:left;font-size:12px;font-weight:700;color:var(--gantt-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gantt-border)}.ganttTaskTable td{padding:12px;border-bottom:1px solid var(--gantt-border);vertical-align:middle;font-size:14px;color:var(--gantt-text)}.ganttTaskTable tbody tr:hover{background:var(--gantt-surface-hover)}.ganttTaskTable__colNo{width:60px}.ganttTaskTable__colTask{min-width:180px}.ganttTaskTable__colDate{width:100px}.ganttTaskTable__colAssignee{width:100px}.ganttTaskTable__colActions{width:60px;text-align:center}.ganttTaskTable__cellNo{display:flex;align-items:center;gap:8px}.ganttTaskTable__dragHandle{cursor:grab;color:var(--gantt-text-muted);font-size:14px;padding:4px}.ganttTaskTable__dragHandle:hover{color:var(--gantt-text)}.ganttTaskTable__row_ghost{opacity:.5;background:var(--gantt-accent-soft)}.ganttTaskTable__editBtn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:1px solid var(--gantt-border);border-radius:8px;color:var(--gantt-text-secondary);cursor:pointer;transition:all .2s ease}.ganttTaskTable__editBtn:hover{background:var(--gantt-surface-hover);border-color:var(--gantt-accent);color:var(--gantt-accent-light)}.ganttChart{background:var(--gantt-bg);border-radius:var(--gantt-radius);overflow:hidden}.ganttChart__wrapper{display:flex;max-height:400px;overflow:hidden}.ganttChart__leftPane{width:200px;min-width:200px;flex-shrink:0;border-right:1px solid var(--gantt-border);display:flex;flex-direction:column;background:var(--gantt-bg)}.ganttChart__leftHeader{height:40px;min-height:40px;padding:0 16px;display:flex;align-items:center;font-size:12px;font-weight:700;color:var(--gantt-text-secondary);text-transform:uppercase;background:rgba(0,0,0,.25);border-bottom:1px solid var(--gantt-border)}.ganttChart__leftBody{flex:1;overflow-y:auto;scrollbar-width:none}.ganttChart__leftBody::-webkit-scrollbar{display:none}.ganttChart__taskRow{height:40px;min-height:40px;display:flex;flex-direction:column;justify-content:center;padding:0 16px;border-bottom:1px solid var(--gantt-border);cursor:pointer;transition:background .15s ease}.ganttChart__taskRow:hover{background:var(--gantt-surface-hover)}.ganttChart__taskName{font-size:13px;font-weight:500;color:var(--gantt-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ganttChart__taskAssignee{font-size:11px;color:var(--gantt-text-muted)}.ganttChart__rightPane{flex:1;overflow-x:auto;overflow-y:auto;display:flex;flex-direction:column}.ganttChart__rightHeader{height:40px;min-height:40px;display:flex;background:rgba(0,0,0,.25);border-bottom:1px solid var(--gantt-border);position:sticky;top:0;z-index:10}.ganttChart__rightBody{flex:1;position:relative}.ganttChart__dateCell{height:40px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--gantt-text-secondary);border-right:1px solid var(--gantt-border);white-space:nowrap;flex-shrink:0}.ganttChart__dateCell_weekend{background:rgba(239,68,68,.1);color:var(--gantt-error)}.ganttChart__timelineRow{position:relative;display:flex;border-bottom:1px solid var(--gantt-border)}.ganttChart__gridCell{height:100%;border-right:1px solid rgba(148,163,184,.1);flex-shrink:0}.ganttChart__gridCell_weekend{background:rgba(239,68,68,.05)}.ganttChart__bar{position:absolute;top:6px;height:28px;background:linear-gradient(135deg, var(--gantt-accent), var(--gantt-accent-light));border-radius:6px;display:flex;align-items:center;padding:0 10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;z-index:5;overflow:hidden}.ganttChart__bar:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.4);z-index:6}.ganttChart__barText{font-size:11px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ganttViewToggle{display:flex;gap:2px;padding:3px;background:rgba(0,0,0,.3);border-radius:8px}.ganttViewToggle__btn{padding:8px 16px;background:rgba(0,0,0,0);border:none;border-radius:6px;color:var(--gantt-text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;min-height:36px}.ganttViewToggle__btn:hover{color:var(--gantt-text);background:rgba(255,255,255,.05)}.ganttViewToggle__btn_active{background:var(--gantt-accent);color:#fff}.ganttViewToggle__btn_active:hover{background:var(--gantt-accent)}.ganttExport{display:flex;flex-wrap:wrap;gap:12px;padding:20px}.ganttExport__btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:rgba(0,0,0,0);border:1px solid var(--gantt-border);border-radius:8px;color:var(--gantt-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:48px}.ganttExport__btn:hover{background:var(--gantt-surface-hover);border-color:var(--gantt-border-strong);color:var(--gantt-text)}.ganttExport__btn svg{flex-shrink:0}.ganttExport__btn_primary{background:var(--gantt-accent);border-color:var(--gantt-accent);color:#fff}.ganttExport__btn_primary:hover{background:var(--gantt-accent-light);border-color:var(--gantt-accent-light)}.ganttExport__btn_danger:hover{border-color:var(--gantt-error);color:var(--gantt-error)}.ganttAdSlot{margin:16px 0}.ganttCrossSell{padding-top:16px}.ganttCrossSell__title{font-size:1.1rem;font-weight:600;color:var(--gantt-text);margin:0 0 20px;text-align:center}.ganttCrossSell__grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:16px}.ganttCrossSell__card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--gantt-surface);border:1px solid var(--gantt-border);border-radius:var(--gantt-radius);text-decoration:none;transition:all .2s ease}.ganttCrossSell__card:hover{background:var(--gantt-surface-hover);border-color:var(--gantt-border-strong);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}.ganttCrossSell__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.ganttCrossSell__icon_wbs{background:rgba(34,211,238,.15);color:#22d3ee}.ganttCrossSell__icon_estimate{background:rgba(52,211,153,.15);color:#34d399}.ganttCrossSell__icon_invoice{background:rgba(99,102,241,.15);color:#6366f1}.ganttCrossSell__cardContent{display:flex;flex-direction:column;gap:4px}.ganttCrossSell__cardTitle{font-size:1rem;font-weight:600;color:var(--gantt-text)}.ganttCrossSell__cardDesc{font-size:.85rem;color:var(--gantt-text-muted)}.ganttModal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:24px;z-index:150}.ganttModal[aria-hidden=false]{display:flex}.ganttModal__backdrop{position:absolute;inset:0;background:rgba(10,15,26,.9);backdrop-filter:blur(4px)}.ganttModal__content{position:relative;width:100%;max-width:480px;background:var(--gantt-surface);border:1px solid var(--gantt-border);border-radius:var(--gantt-radius-lg);box-shadow:0 24px 48px rgba(0,0,0,.4);animation:modalIn .2s ease}@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.ganttModal__header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gantt-border)}.ganttModal__title{font-size:18px;font-weight:600;color:var(--gantt-text);margin:0}.ganttModal__close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:1px solid var(--gantt-border);border-radius:8px;color:var(--gantt-text-secondary);cursor:pointer;transition:all .2s ease}.ganttModal__close:hover{background:var(--gantt-surface-hover);color:var(--gantt-text)}.ganttModal__body{padding:24px}.ganttModal__desc{margin:0 0 16px;font-size:14px;color:var(--gantt-text-secondary);line-height:1.6}.ganttModal__form{padding:24px;display:flex;flex-direction:column;gap:16px}.ganttModal__field{display:flex;flex-direction:column;gap:6px}.ganttModal__label{font-size:13px;font-weight:600;color:var(--gantt-text)}.ganttModal__input{width:100%;padding:12px 14px;background:var(--gantt-bg);border:1px solid var(--gantt-border-strong);border-radius:8px;color:var(--gantt-text);font-size:14px;font-family:inherit;transition:all .2s ease;min-height:48px}.ganttModal__input:focus{outline:none;border-color:var(--gantt-accent);box-shadow:0 0 0 3px var(--gantt-accent-soft)}.ganttModal__input::-moz-placeholder{color:var(--gantt-text-muted)}.ganttModal__input::placeholder{color:var(--gantt-text-muted)}.ganttModal__textarea{resize:vertical;min-height:64px}.ganttModal__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ganttModal__rowActions{display:flex;gap:12px;padding-top:8px;border-top:1px solid var(--gantt-border)}.ganttModal__actionBtn{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:rgba(0,0,0,0);border:1px solid var(--gantt-border);border-radius:8px;color:var(--gantt-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:44px}.ganttModal__actionBtn:hover{background:var(--gantt-surface-hover);border-color:var(--gantt-accent);color:var(--gantt-accent-light)}.ganttModal__actionBtn_danger:hover{border-color:var(--gantt-error);color:var(--gantt-error)}.ganttModal__actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.ganttModal__cancelBtn{padding:12px 20px;background:rgba(0,0,0,0);border:1px solid var(--gantt-border-strong);border-radius:8px;color:var(--gantt-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:48px}.ganttModal__cancelBtn:hover{background:var(--gantt-surface-hover);color:var(--gantt-text)}.ganttModal__saveBtn{padding:12px 24px;background:var(--gantt-accent);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:48px}.ganttModal__saveBtn:hover{background:var(--gantt-accent-light)}.ganttToast{position:fixed;bottom:24px;right:24px;padding:16px 24px;background:var(--gantt-surface);border:1px solid var(--gantt-border);border-radius:var(--gantt-radius);color:var(--gantt-text);font-size:14px;font-weight:500;box-shadow:0 8px 32px rgba(0,0,0,.4);opacity:0;transform:translateY(16px);pointer-events:none;transition:all .3s ease;z-index:100}.ganttToast_active{opacity:1;transform:translateY(0);pointer-events:auto}.ganttToast_success{border-color:var(--gantt-success);background:rgba(16,185,129,.1)}.ganttToast_error{border-color:var(--gantt-error);background:rgba(239,68,68,.1)}.ganttLoading{position:fixed;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:rgba(10,15,26,.9);backdrop-filter:blur(4px);z-index:200}.ganttLoading_active{display:flex}.ganttLoading__spinner{width:48px;height:48px;border:3px solid var(--gantt-border);border-top-color:var(--gantt-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ganttLoading__text{font-size:14px;color:var(--gantt-text-secondary);margin:0}@media(max-width: 768px){.ganttChart__leftPane{width:120px;min-width:120px}.ganttChart__rightPane{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.ganttChart__taskAssignee{display:none}.ganttChart__bar{top:10px;height:20px;border-radius:4px;padding:0 6px}.ganttChart__barText{font-size:10px}.ganttChart__taskRow{height:36px;min-height:36px}.ganttChart__timelineRow{height:40px}.ganttChart__wrapper{max-height:320px;position:relative}.ganttChart__wrapper::after{content:"";position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(90deg, transparent, rgba(10, 15, 26, 0.8));pointer-events:none;z-index:20}.ganttChart__scrollHint{display:block;position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--gantt-text-muted);font-size:20px;z-index:21;animation:scrollHintPulse 2s ease-in-out infinite;pointer-events:none}@keyframes scrollHintPulse{0%,100%{opacity:.4;transform:translateY(-50%) translateX(0)}50%{opacity:.8;transform:translateY(-50%) translateX(4px)}}}@media(max-width: 600px){.ganttMainContent{padding:16px 16px 60px;gap:16px}.ganttSection__header{flex-direction:column;gap:12px;align-items:flex-start}.ganttSection__addBtn{width:100%;justify-content:center}.ganttExport{flex-direction:column}.ganttExport__btn{width:100%;justify-content:center}.ganttModal__row{grid-template-columns:1fr}.ganttChart__leftPane{width:100px;min-width:100px}.ganttChart__wrapper{max-height:280px}.ganttChart__taskName{font-size:11px}.ganttChart__leftHeader{padding:0 10px;font-size:10px}.ganttChart__taskRow{padding:0 10px}}@media(max-width: 480px){.ganttHero__container{grid-template-columns:1fr;gap:24px;text-align:center}.ganttHero__content{align-items:center}.ganttHero__title{font-size:1.6rem}.ganttHero__subtitle{font-size:.9rem}.ganttHero__features{align-items:center}.ganttHero__features li{font-size:.85rem}.ganttHero__visual{order:-1}.ganttHero__card{max-width:280px;transform:none}.ganttHero__card:hover{transform:none}.ganttExport{padding:16px}.ganttExport__btn{width:100%;justify-content:center;padding:14px 20px}.ganttImport{padding:16px}.ganttImport__icon{width:40px;height:40px}.ganttImport__btn{width:100%}.ganttTaskTable table{min-width:500px}.ganttTaskTable th,.ganttTaskTable td{padding:10px 8px;font-size:12px}.ganttTaskTable__colAssignee{display:none}.ganttCrossSell__grid{grid-template-columns:1fr}.ganttCrossSell__card{padding:16px}.ganttModal__content{max-width:100%;margin:0 12px}.ganttModal__header{padding:16px}.ganttModal__form{padding:16px}}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}