.ticket-item.dragging { opacity: 0.4; }
.developer-header { display:flex; justify-content:space-between; align-items:center; min-height:22px; padding:2px 0; }
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; z-index:50; }
.modal-card { background:#fff; border-radius:8px; width:600px; max-width:95vw; padding:16px; }
.bar-ticket { cursor:pointer; transition: transform .16s ease, opacity .16s ease, filter .16s ease; }
.bar-ticket.chart-ticket-shift { transition-duration: .2s; }
.bar-ticket.chart-ticket-dragging { filter: drop-shadow(0 6px 10px rgba(15, 23, 42, .25)); }
.bar-ticket.chart-ticket-drag-origin { opacity:.85; }
.bar-ticket.chart-ticket-jump-candidate { animation: chart-jump-glow .55s ease-in-out infinite; }

@keyframes chart-jump-glow {
  0%, 100% { filter: drop-shadow(0 6px 10px rgba(15, 23, 42, .25)); }
  50% { filter: drop-shadow(0 8px 14px rgba(234, 88, 12, .5)); }
}

.bar-ticket-label { transition: transform .16s ease; }

.icon-btn,
.gear-btn,
.export-btn { border:0; background:transparent; color:#374151; border-radius:4px; }
.icon-btn { width:22px; height:22px; padding:0; display:inline-flex; align-items:center; justify-content:center; font-size:16px; line-height:1; }
.gear-btn { width:22px; height:22px; padding:0; color:#374151; display:inline-flex; align-items:center; justify-content:center; }
.gear-btn svg { width:16px; height:16px; display:block; }
.gear-btn:hover,
.icon-btn:hover { background:#e5e7eb; }
.sync-btn { color:#374151; }
.sync-btn .sync-icon { width:20px; height:20px; display:block; }
.sync-btn .jira-triangle { transform-origin:127.662px 112.346px; transform-box:view-box; }
.sync-btn.syncing .jira-triangle-1,
.sync-btn.syncing .jira-triangle-2,
.sync-btn.syncing .jira-triangle-3 { animation: jira-triangle-leapfrog 1.05s cubic-bezier(.55,.08,.4,.95) infinite; }
.sync-btn.syncing .jira-triangle-2 { animation-delay:.35s; }
.sync-btn.syncing .jira-triangle-3 { animation-delay:.7s; }
.undo-btn { color:#64748b; }
.undo-btn .undo-icon { width:18px; height:18px; display:block; fill:currentColor; }
.undo-btn:disabled { color:#cbd5e1; cursor:not-allowed; }
.undo-btn:disabled:hover { background:transparent; }
@keyframes jira-triangle-leapfrog {
  0% { transform: translate(-1px, 2px) scale(.84); opacity:.62; }
  28% { transform: translate(3px, -1px) scale(1.14); opacity:1; }
  58% { transform: translate(1px, -3px) scale(.92); opacity:.78; }
  100% { transform: translate(-1px, 2px) scale(.84); opacity:.62; }
}
@keyframes spin-sync { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.developer-header .gear-btn,
.admin-dev-item .gear-btn { visibility:hidden; }
section:hover .developer-header .gear-btn,
.admin-dev-item:hover .gear-btn { visibility:visible; }

.sprint-tab { border:1px solid #cbd5e1; border-bottom:none; border-radius:8px 8px 0 0; background:#f8fafc; color:#475569; padding:5px 8px 5px; min-width:0; text-align:left; transition: background .15s ease, color .15s ease, padding .15s ease; margin-right:-1px; }
.sprint-tab:hover:not(.active) { background:#eef2f7; color:#334155; }
.sprint-tab.active { background:#fff; color:#111827; margin-bottom:-1px; padding-top:6px; padding-bottom:6px; }
.sprint-tab.preview { background:#e2e8f0; color:#1f2937; }
.sprint-tab-name { display:flex; align-items:center; gap:4px; font-size:11px; line-height:1.1; }
.sprint-tab-dates { display:block; font-size:10px; color:#64748b; margin-top:1px; }

.export-btn { display:inline-flex; align-items:center; justify-content:center; color:#374151; width:22px; height:22px; padding:0; }
.export-icon { width:16px; height:16px; }
.export-menu { display:none; position:absolute; right:0; top:100%; background:#fff; border:1px solid #cbd5e1; border-radius:6px; box-shadow:0 6px 20px rgba(0,0,0,.08); z-index:40; min-width:190px; }
.export-menu button { display:block; width:100%; text-align:left; font-size:12px; padding:6px 10px; white-space:nowrap; }
.export-menu button:hover { background:#f1f5f9; }
.export-menu.open { display:block; }

.lock-icon { width:12px; height:12px; color:#374151; }
.lock-toggle-row { display:flex; align-items:center; gap:8px; font-size:12px; color:#334155; }
.lock-state-icon { width:14px; height:14px; color:#475569; display:inline-flex; }
.lock-state-icon svg { width:14px; height:14px; }
.switch { position:relative; display:inline-block; width:36px; height:20px; }
.switch input { opacity:0; width:0; height:0; }
.slider { position:absolute; cursor:pointer; inset:0; background:#cbd5e1; transition:.2s; border-radius:999px; }
.slider:before { position:absolute; content:""; height:14px; width:14px; left:3px; top:3px; background:#f8fafc; transition:.2s; border-radius:50%; }
.switch input:checked + .slider { background:#2563eb; }
.switch input:checked + .slider:before { transform:translateX(16px); }

.switch-blue .slider { background:#2563eb; }
.switch-blue input:checked + .slider { background:#2563eb; }
.switch-blue .slider:before { background:#f8fafc; }


.ticket-item { position:relative; padding-top:22px; }
.ticket-sync-btn { position:absolute; top:5px; right:50px; width:16px; height:16px; color:#475569; opacity:0; border:0; background:transparent; border-radius:3px; display:inline-flex; align-items:center; justify-content:center; }
.ticket-remove-btn { position:absolute; top:5px; right:29px; width:16px; height:16px; color:#475569; opacity:0; border:0; background:transparent; border-radius:3px; display:inline-flex; align-items:center; justify-content:center; font-size:11px; }
.ticket-add-btn { position:absolute; top:6px; right:30px; width:16px; height:16px; color:#475569; opacity:0; border:0; background:transparent; border-radius:3px; display:inline-flex; align-items:center; justify-content:center; font-size:12px; }
.ticket-sync-btn svg { width:12px; height:12px; }
.ticket-item:hover .ticket-sync-btn, .ticket-item:hover .ticket-remove-btn, .ticket-item:hover .ticket-add-btn { opacity:1; }
.ticket-sync-btn:hover, .ticket-remove-btn:hover, .ticket-add-btn:hover { background:#e5e7eb; }
.ticket-sync-btn.syncing svg { animation: spin-sync .9s linear infinite; }

#unplanned-root .ticket-sync-btn { right:29px; top:5px; }
#unplanned-root .ticket-add-btn { right:8px; top:4px; }

.ticket-code-link { color:#0f172a; text-decoration:none; }
.ticket-code-link:hover { color:#2563eb; text-decoration:underline; }


.sprint-panel { display:flex; flex-direction:column; height:calc(100vh - 38px); min-height:520px; }
.sprint-panel-actions { flex:0 0 auto; }
.sprint-topbar { position:relative; z-index:25; min-height:36px; padding:8px 6px 0; }
#sprint-topbar-actions { z-index:35; }
.sprint-title { margin:0; text-align:center; font-size:20px; line-height:1; font-weight:700; color:#000; padding-top:4px; }
.sprint-chart-container { flex:1 1 auto; min-height:360px; }

#sprint-export-hover-wrap { position:relative; display:inline-flex; align-items:center; }
#sprint-export-hover-wrap:hover #current-export-menu:not(.manual-close),
#current-export-menu:hover:not(.manual-close) { display:block; }

.icon-btn.no-hover:hover { background:transparent; }

.ticket-move-wrap { position:absolute; top:4px; right:8px; z-index:20; }
.ticket-move-btn { width:16px; height:16px; color:#475569; opacity:0; border:0; background:transparent; border-radius:3px; display:inline-flex; align-items:center; justify-content:center; font-size:10px; }
.ticket-move-menu { display:none; position:absolute; right:0; top:calc(100% + 4px); background:#fff; border:1px solid #cbd5e1; border-radius:6px; box-shadow:0 6px 20px rgba(0,0,0,.08); z-index:30; min-width:130px; }
.ticket-move-menu button { display:block; width:100%; text-align:left; font-size:12px; padding:6px 8px; white-space:nowrap; }
.ticket-move-menu button:hover { background:#f1f5f9; }
.ticket-item:hover .ticket-move-btn { opacity:1; }
.ticket-move-wrap:hover .ticket-move-menu,
.ticket-move-menu:hover { display:block; }

.dev-collapse-btn { border:0; background:transparent; font-size:11px; color:#475569; padding:0; line-height:1; }

.menu-hover-wrap { position:relative; display:inline-flex; align-items:center; }
#menu-toggle { width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; font-size:15px; line-height:1; }
#menu-dropdown { top:100%; }

.backlog-dev-section { cursor:pointer; }
.backlog-dev-section .developer-header { cursor:pointer; }
.backlog-dev-section.is-expanded { cursor:pointer; }
.backlog-dev-section.is-collapsed * { cursor:pointer; }
.backlog-dev-section .developer-header .gear-btn, .backlog-dev-section .developer-header .dev-collapse-btn { cursor:pointer; }

.site-logo { width:18px; height:18px; display:block; }

.working-hours-cell { display:inline-flex; align-items:center; gap:6px; }
.working-hours-day { min-width:20px; display:inline-block; }
.working-hours-input { width:86px; }

.section-toggle-header { cursor:pointer; user-select:none; }
