.half-field {
    width: calc(50% - 8px);
}

.field-spacer {
    visibility: hidden;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: "Pretendard", "Noto Sans KR", Arial, sans-serif;
    background: #f3f4f8;
    color: #111827;
}

a {
    text-decoration: none;
    color: inherit;
}

.layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 240px;
    background: #12172d;
    color: white;
    padding: 22px 0;
    flex-shrink: 0;
}

.logo {
    padding: 0 24px 24px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.logo h2 {
    margin: 0;
    font-size: 20px;
}

.logo p {
    font-size: 12px;
    color: #9ca3af;
}

.menu a {
    display: block;
    padding: 14px 24px;
    color: #cbd5e1;
    font-size: 15px;
}

.menu a:hover,
.menu a.active {
    background: #e83e68;
    color: white;
}

.content {
    flex: 1;
    padding: 28px;
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 22px;
}

.topbar h1 {
    margin: 0;
    font-size: 24px;
}

.userbox {
    color: #6b7280;
    font-size: 14px;
}

.role-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 800;
}

.stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 24px;
}

.stat {
    color: white;
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    font-weight: bold;
}

.stat b {
    display: block;
    font-size: 30px;
    margin-bottom: 6px;
}

.blue {
    background: #1f6cc0;
}

.green {
    background: #3da146;
}

.gray {
    background: #777;
}

.red {
    background: #e53935;
}

.card {
    background: white;
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.04);
}

.project-card {
    border-left: 5px solid #facc15;
}

.project-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.project-title {
    font-weight: 800;
    font-size: 17px;
}

.meta {
    font-size: 13px;
    color: #6b7280;
    margin-top: 8px;
}

.progress {
    height: 9px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    margin-top: 12px;
}

.progress div {
    height: 100%;
    background: #22c55e;
}

.btn {
    display: inline-block;
    border: none;
    border-radius: 8px;
    padding: 10px 14px;
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
}

.btn-pink {
    background: #e83e68;
    color: white;
}

.btn-blue {
    background: #2563eb;
    color: white;
}

.btn-gray {
    background: #e5e7eb;
    color: #111827;
}

.btn-red {
    background: #ef4444;
    color: white;
}

.btn-green {
    background: #16a34a;
    color: white;
}

.btn-orange {
    background: #f59e0b;
    color: white;
}

.btn-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.badge {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.badge-blue {
    background: #dbeafe;
    color: #1d4ed8;
}

.badge-green {
    background: #dcfce7;
    color: #166534;
}

.badge-red {
    background: #fee2e2;
    color: #991b1b;
}

.badge-yellow {
    background: #fef3c7;
    color: #92400e;
}

.badge-gray {
    background: #e5e7eb;
    color: #374151;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.field {
    margin-bottom: 18px;
}

label {
    display: block;
    font-weight: 800;
    margin-bottom: 8px;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 12px;
    font-size: 15px;
    background: white;
}

textarea {
    min-height: 110px;
    resize: vertical;
    line-height: 1.45;
}

.full {
    grid-column: 1 / -1;
}

.flash {
    background: #ecfdf5;
    color: #166534;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 18px;
}

.notice {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 18px;
    font-size: 14px;
}

.login-wrap {
    max-width: 430px;
    margin: 90px auto;
    background: white;
    padding: 34px;
    border-radius: 16px;
}

.login-link {
    margin-top: 16px;
    text-align: center;
}

.login-link a {
    color: #2563eb;
    font-weight: 800;
}

.tabs {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid #d1d5db;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.tab {
    border: none;
    background: transparent;
    padding: 12px 18px;
    cursor: pointer;
    font-size: 15px;
    border-bottom: 3px solid transparent;
}

.tab.active {
    border-bottom: 3px solid #2563eb;
    font-weight: 700;
    color: #1d4ed8;
}

.section {
    display: none;
}

.section.active {
    display: block;
}

.guide {
    border: 2px solid #93c5fd;
    background: linear-gradient(135deg, #eff6ff, #eef2ff);
    border-radius: 14px;
    padding: 22px;
    margin-bottom: 24px;
}

.guide.orange-guide {
    border-color: #fbbf24;
    background: linear-gradient(135deg, #fff7ed, #fffbeb);
}

.guide.purple-guide {
    border-color: #d8b4fe;
    background: linear-gradient(135deg, #faf5ff, #fdf2f8);
}

.guide.gray-guide {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.mini-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-top: 16px;
}

.mini-card {
    background: white;
    border-radius: 10px;
    padding: 14px;
    border-left: 5px solid #60a5fa;
}

.progress-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.progress-bar {
    height: 14px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    width: 260px;
}

.progress-fill {
    height: 100%;
    background: #22c55e;
    transition: .2s;
}

.milestone {
    background: #f5f5f5;
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 16px;
}

.milestone h3 {
    margin: 0 0 12px;
    color: #be123c;
    font-size: 17px;
}

.check-item,
.file-item {
    display: grid;
    grid-template-columns: 32px 1fr auto auto;
    gap: 10px;
    align-items: center;
    background: white;
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
}

.check-item.done span.title {
    text-decoration: line-through;
    color: #9ca3af;
}

.icon-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #ef4444;
    font-size: 16px;
}

.small-btn {
    border: none;
    border-radius: 7px;
    padding: 7px 10px;
    background: #e5e7eb;
    cursor: pointer;
    font-weight: 700;
}

.timeline-area {
    overflow-x: auto;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
}

.gantt {
    min-width: 850px;
}

.gantt-row {
    display: grid;
    grid-template-columns: 220px 1fr 130px;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.gantt-track {
    position: relative;
    height: 28px;
    background: #eef2ff;
    border-radius: 999px;
}

.gantt-bar {
    position: absolute;
    top: 4px;
    height: 20px;
    border-radius: 999px;
    background: #3b82f6;
    color: white;
    font-size: 12px;
    line-height: 20px;
    text-align: center;
    overflow: hidden;
}

.gantt-bar.done {
    background: #22c55e;
}

.gantt-bar.overdue {
    background: #ef4444;
}

.today-line {
    position: absolute;
    top: -4px;
    width: 2px;
    height: 36px;
    background: #f59e0b;
}

.assign-board {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.assign-col {
    background: #f9fafb;
    border-radius: 12px;
    padding: 14px;
    min-height: 200px;
}

.assign-col h3 {
    margin-top: 0;
}

.status-dot {
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 12px;
    font-weight: 700;
}

.waiting {
    background: #fef3c7;
    color: #92400e;
}

.doing {
    background: #dbeafe;
    color: #1d4ed8;
}

.complete {
    background: #dcfce7;
    color: #166534;
}

.upload-box {
    border: 2px dashed #93c5fd;
    border-radius: 12px;
    padding: 24px;
    background: #eff6ff;
    text-align: center;
}

.dropzone {
    border: 2px dashed #c084fc;
    background: #faf5ff;
    border-radius: 12px;
    padding: 24px;
    text-align: center;
    margin-bottom: 18px;
}

.file-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 20px;
}

.file-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
}

.file-card img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 8px;
    background: #f3f4f6;
}

.file-icon {
    height: 160px;
    background: #f8fafc;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 44px;
}

.file-name {
    font-weight: 700;
    margin-top: 10px;
    word-break: break-all;
}

.export-box {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.export-card {
    background: white;
    border-left: 5px solid #38bdf8;
    padding: 18px;
    border-radius: 10px;
}

.inline-form {
    display: inline;
}

.toast {
    position: fixed;
    right: 24px;
    bottom: 24px;
    background: #111827;
    color: white;
    padding: 13px 18px;
    border-radius: 10px;
    display: none;
    z-index: 999;
}

.check-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.edit-icon-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #2563eb;
    font-size: 15px;
    font-weight: 900;
    padding: 2px 4px;
}

.edit-icon-btn:hover {
    color: #1d4ed8;
    transform: scale(1.08);
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 18px;
}

.modal-backdrop.active {
    display: flex;
}

.edit-modal {
    width: 100%;
    max-width: 620px;
    background: #ffffff;
    border-radius: 14px;
    padding: 22px;
    box-shadow: 0 20px 45px rgba(0,0,0,.18);
}

.edit-modal h3 {
    margin: 0 0 16px;
    font-size: 19px;
}

.edit-modal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.edit-modal-grid .full {
    grid-column: 1 / -1;
}

.edit-modal label {
    display: block;
    font-weight: 800;
    margin-bottom: 6px;
    font-size: 13px;
}

.edit-modal input,
.edit-modal select,
.edit-modal textarea {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 10px;
    font-size: 14px;
}

.edit-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 18px;
}

.edit-panel {
    margin: -4px 0 10px 42px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px 12px;
}

.edit-panel summary {
    cursor: pointer;
    font-weight: 800;
    font-size: 13px;
    color: #2563eb;
    margin-bottom: 8px;
}

.edit-panel[open] summary {
    margin-bottom: 12px;
}

.inline-edit-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    align-items: end;
}

.inline-edit-grid .wide {
    grid-column: span 2;
}

.inline-edit-grid label {
    font-size: 12px;
    margin-bottom: 4px;
    color: #374151;
}

.inline-edit-grid input,
.inline-edit-grid select,
.inline-edit-grid textarea {
    padding: 8px;
    font-size: 13px;
}

.inline-edit-grid textarea {
    min-height: 70px;
}

.edit-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

input[type="range"][name="progress"]::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;
    width: 0;
    height: 0;
    opacity: 0;
}

input[type="range"][name="progress"]::-moz-range-thumb {
    width: 0;
    height: 0;
    opacity: 0;
    border: 0;
}

input[type="range"][name="progress"] {
    pointer-events: none;
}

/* =========================================================
   PROJECT GUIDE STYLE
========================================================= */

.project-guide-box {
    display: none;
    margin-top: 18px;
    padding: 18px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #dbe3ef;
}

.project-guide-box.active {
    display: block;
}

.project-guide-title {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 900;
    color: #111827;
}

.project-guide-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.project-guide-card {
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    padding: 14px;
}

.project-guide-card h4 {
    margin: 0 0 10px;
    font-size: 15px;
    color: #be123c;
}

.project-guide-card pre {
    white-space: pre-wrap;
    word-break: keep-all;
    line-height: 1.6;
    font-family: inherit;
    font-size: 14px;
    margin: 0;
    color: #374151;
}

.guide-btn-row {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.guide-copy-btn {
    border: none;
    border-radius: 8px;
    padding: 8px 11px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    background: #e83e68;
    color: #fff;
}

.guide-copy-btn.gray {
    background: #e5e7eb;
    color: #111827;
}

/* =========================================================
   PDF PRINT STYLE
========================================================= */

.pdf-export-report {
    display: none;
}

@media print {
    @page {
        size: A4 portrait;
        margin: 10mm 12mm;
    }

    html,
    body {
        background: #ffffff !important;
        color: #111111 !important;
        font-size: 10px !important;
        line-height: 1.45 !important;
    }

    .sidebar,
    .topbar,
    .tabs,
    .btn-row,
    .tab-actions,
    .icon-btn,
    .small-btn,
    input[type=file],
    button,
    .notice,
    .export-box,
    .print-hidden,
    .no-print {
        display: none !important;
    }

    .layout {
        display: block;
    }

    .content {
        padding: 0;
    }

    .section {
        display: block !important;
        page-break-after: always;
    }

    .guide {
        break-inside: avoid;
    }

    body.is-pdf-export * {
        visibility: hidden !important;
    }

    body.is-pdf-export .pdf-export-report,
    body.is-pdf-export .pdf-export-report * {
        visibility: visible !important;
    }

    body.is-pdf-export .pdf-export-report {
        display: block !important;
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #fff !important;
    }

    .pdf-report-page {
        width: 100%;
        max-width: 186mm;
        margin: 0 auto;
        padding: 0;
        box-sizing: border-box;
    }

    .pdf-report-header {
        margin-bottom: 8mm;
        border-bottom: 2px solid #2f6173;
        padding-bottom: 4mm;
    }

    .pdf-report-title {
        font-size: 18px !important;
        font-weight: 800 !important;
        margin: 0 0 2mm !important;
        color: #173b4a !important;
    }

    .pdf-report-subtitle {
        font-size: 10px !important;
        color: #555 !important;
        margin: 0 !important;
    }

    .pdf-report-section {
        margin-bottom: 5mm !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .pdf-report-section-title {
        font-size: 12px !important;
        font-weight: 800 !important;
        color: #173b4a !important;
        border-left: 4px solid #2f6173;
        padding-left: 6px;
        margin: 0 0 2.5mm !important;
    }

    .pdf-report-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 2mm 8mm !important;
    }

    .pdf-report-row {
        display: grid !important;
        grid-template-columns: 24mm 1fr !important;
        gap: 3mm !important;
        margin-bottom: 1.8mm !important;
    }

    .pdf-report-label {
        font-weight: 700 !important;
        color: #333 !important;
    }

    .pdf-report-value {
        color: #111 !important;
        word-break: keep-all !important;
        overflow-wrap: break-word !important;
    }

    .pdf-report-text {
        white-space: pre-line !important;
        word-break: keep-all !important;
        overflow-wrap: break-word !important;
        margin: 0 !important;
    }

    .pdf-report-progress-wrap {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .pdf-report-progress {
        flex: 1;
        height: 5px;
        background: #e5e5e5;
        border-radius: 999px;
        overflow: hidden;
    }

    .pdf-report-progress-bar {
        height: 100%;
        background: #2f7bbd;
    }

    .pdf-report-footer {
        margin-top: 8mm;
        padding-top: 3mm;
        border-top: 1px solid #ddd;
        font-size: 9px !important;
        color: #777 !important;
        display: flex;
        justify-content: space-between;
    }
}

@media(max-width:900px) {
    .layout {
        display: block;
    }

    .sidebar {
        width: 100%;
    }

    .stats,
    .form-grid,
    .file-list,
    .mini-grid,
    .assign-board,
    .export-box {
        grid-template-columns: 1fr;
    }

    .content {
        padding: 18px;
    }

    .check-item,
    .file-item {
        grid-template-columns: 28px 1fr;
    }

    .meta {
        white-space: normal;
    }

    .gantt-row {
        grid-template-columns: 1fr;
    }

    .edit-panel {
        margin-left: 0;
    }

    .inline-edit-grid {
        grid-template-columns: 1fr;
    }

    .inline-edit-grid .wide {
        grid-column: span 1;
    }

    .project-guide-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:700px) {
    .edit-modal-grid {
        grid-template-columns: 1fr;
    }
}
/* =========================================================
   PDF EXPORT REPORT FINAL
   PDF 내보내기 전용 보고서 출력 최종
========================================================= */

/* 평상시에는 PDF 보고서 숨김 */
.pdf-export-report {
    display: none;
}

/* PDF 출력용 보고서 기본 스타일 */
.pdf-report-page {
    background: #ffffff;
    color: #111827;
}

.pdf-report-header {
    border-bottom: 2px solid #2f6173;
    padding-bottom: 12px;
    margin-bottom: 18px;
}

.pdf-report-title {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 900;
    color: #173b4a;
}

.pdf-report-subtitle {
    margin: 0;
    font-size: 12px;
    color: #6b7280;
}

.pdf-report-section {
    margin-bottom: 16px;
}

.pdf-report-section-title {
    margin: 0 0 8px;
    padding-left: 8px;
    border-left: 4px solid #2f6173;
    font-size: 15px;
    font-weight: 900;
    color: #173b4a;
}

.pdf-report-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px 22px;
}

.pdf-report-row {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 8px;
    font-size: 12px;
    line-height: 1.45;
}

.pdf-report-label {
    font-weight: 800;
    color: #374151;
}

.pdf-report-value {
    color: #111827;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.pdf-report-text {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
    white-space: pre-line;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.pdf-report-compact-list {
    margin: 0;
    padding-left: 16px;
    font-size: 11px;
    line-height: 1.5;
}

.pdf-report-compact-list li {
    margin-bottom: 3px;
}

.pdf-report-progress-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pdf-report-progress {
    flex: 1;
    height: 6px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
}

.pdf-report-progress-bar {
    height: 100%;
    background: #2f7bbd;
}

.pdf-report-footer {
    margin-top: 20px;
    padding-top: 8px;
    border-top: 1px solid #d1d5db;
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #6b7280;
}

/* 실제 인쇄/PDF 저장 시 */
@media print {
    @page {
        size: A4 portrait;
        margin: 10mm 12mm;
    }

    html,
    body {
        background: #ffffff !important;
        color: #111111 !important;
    }

    /*
      핵심:
      body에 is-pdf-export 클래스가 있을 때만
      기존 화면을 숨기고 PDF 보고서만 출력
    */
    body.is-pdf-export .sidebar,
    body.is-pdf-export .topbar,
    body.is-pdf-export .tabs,
    body.is-pdf-export .card,
    body.is-pdf-export .section,
    body.is-pdf-export .btn-row,
    body.is-pdf-export .tab-actions,
    body.is-pdf-export .notice,
    body.is-pdf-export .modal-backdrop,
    body.is-pdf-export .toast {
        display: none !important;
    }

    body.is-pdf-export .layout {
        display: block !important;
        min-height: auto !important;
    }

    body.is-pdf-export .content {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }

    body.is-pdf-export .pdf-export-report {
        display: block !important;
        width: 100% !important;
        max-width: 186mm !important;
        margin: 0 auto !important;
        padding: 0 !important;
        background: #ffffff !important;
    }

    body.is-pdf-export .pdf-report-page {
        width: 100% !important;
        max-width: 186mm !important;
        margin: 0 auto !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    body.is-pdf-export .pdf-report-title {
        font-size: 18px !important;
    }

    body.is-pdf-export .pdf-report-subtitle {
        font-size: 10px !important;
    }

    body.is-pdf-export .pdf-report-section {
        margin-bottom: 5mm !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    body.is-pdf-export .pdf-report-section-title {
        font-size: 12px !important;
        margin-bottom: 2.5mm !important;
    }

    body.is-pdf-export .pdf-report-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 2mm 8mm !important;
    }

    body.is-pdf-export .pdf-report-row {
        grid-template-columns: 24mm 1fr !important;
        gap: 3mm !important;
        font-size: 10px !important;
        margin-bottom: 1.4mm !important;
    }

    body.is-pdf-export .pdf-report-text {
        font-size: 10px !important;
        line-height: 1.45 !important;
    }

    body.is-pdf-export .pdf-report-compact-list {
        font-size: 9.5px !important;
        line-height: 1.4 !important;
    }

    body.is-pdf-export .pdf-report-footer {
        font-size: 9px !important;
    }
}
/*
|--------------------------------------------------------------------------
| 완료 상태 표시
|--------------------------------------------------------------------------
*/

.check-item.done .check-title,
.check-item.done .title {
    text-decoration: line-through;
    color: #9ca3af;
}

.gantt-row.is-complete .timeline-title,
.gantt-row.is-complete .timeline-name {
    text-decoration: line-through;
    color: #9ca3af;
}

.assignment-card.is-complete .assignment-title,
.assignment-card.is-complete .assignment-task {
    text-decoration: line-through;
    color: #9ca3af;
}
/*
|--------------------------------------------------------------------------
| 탭 링크 보정
|--------------------------------------------------------------------------
*/

.tabs .tab {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tabs .tab:visited {
    color: inherit;
}

.tabs .tab:focus {
    outline: 2px solid #111827;
    outline-offset: 2px;
}
/* 
|--------------------------------------------------------------------------
| 업무분담 / 타임테이블 완료 취소선 제거
|--------------------------------------------------------------------------
| 기능은 그대로 유지하고, 화면에서 가로 완료선만 표시하지 않음
|--------------------------------------------------------------------------
*/

/* 타임테이블 완료 항목 취소선 제거 */
.gantt-row.is-complete,
.gantt-row.is-complete *,
.gantt-row .timeline-title,
.gantt-row .timeline-name,
.gantt-row .timeline-owner,
.gantt-row .timeline-meta,
.gantt-row .timeline-date {
    text-decoration: none !important;
}

/* 업무분담 완료 카드 취소선 제거 */
.assignment-card.is-complete,
.assignment-card.is-complete *,
.assignment-card .assignment-assignee,
.assignment-card .assignment-title,
.assignment-card .assignment-task,
.assignment-card .assignment-due {
    text-decoration: none !important;
}
/* 
|--------------------------------------------------------------------------
| 타임테이블 / 업무분담 완료 항목 글씨색 유지
|--------------------------------------------------------------------------
| 완료 상태여도 글씨를 회색 처리하지 않고 기존 색상 그대로 표시
|--------------------------------------------------------------------------
*/

/* 타임테이블 완료 항목 글씨색 유지 */
.gantt-row.is-complete,
.gantt-row.is-complete *,
.gantt-row.is-complete .timeline-title,
.gantt-row.is-complete .timeline-name,
.gantt-row.is-complete .timeline-owner,
.gantt-row.is-complete .timeline-meta,
.gantt-row.is-complete .timeline-date {
    color: inherit !important;
    text-decoration: none !important;
    opacity: 1 !important;
}

/* 업무분담 완료 카드 글씨색 유지 */
.assignment-card.is-complete,
.assignment-card.is-complete *,
.assignment-card.is-complete .assignment-assignee,
.assignment-card.is-complete .assignment-title,
.assignment-card.is-complete .assignment-task,
.assignment-card.is-complete .assignment-due,
.assignment-card.is-complete .meta {
    color: inherit !important;
    text-decoration: none !important;
    opacity: 1 !important;
}
