/* 전역일 계산기 — 공통 도구 스타일에 없는 것만 정의한다. */

.dcg-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: .75rem; }
.dcg-row .input-tool { text-align: right; font-variant-numeric: tabular-nums; }
.dcg-inline { display: flex; gap: .5rem; align-items: center; }
.dcg-inline .input-tool { flex: 1 1 auto; min-width: 0; }
.dcg-inline .btn-tool { flex: 0 0 auto; width: auto; white-space: nowrap; } /* 공통 모바일 규칙의 전폭 버튼이 입력칸 옆에서 카드 밖으로 밀려났다 */
.dcg-hint { margin: .75rem 0 0; font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); }
.dcg-hint i { margin-right: .25rem; }

.dcg-main {
    display: flex; flex-direction: column; align-items: center; gap: .25rem;
    padding: var(--spacing-lg, 1.5rem) var(--spacing-md, 1rem);
    border: 1px solid var(--border-color, #e5e8ed);
    border-radius: var(--radius-md, 8px);
    background: var(--primary-soft, #eef3fd);
    text-align: center;
}
.dcg-main-value { font-size: 1.6rem; font-weight: 800; line-height: 1.3; color: var(--primary-strong, #2c56b8); word-break: keep-all; }
.dcg-main-sub { font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); word-break: keep-all; }

.dcg-progress {
    margin-top: var(--spacing-md, 1rem);
    height: 14px; border-radius: 999px; overflow: hidden;
    background: var(--bg-subtle, #eef0f3);
    border: 1px solid var(--border-color, #e5e8ed);
}
.dcg-bar { height: 100%; width: 0; background: var(--primary-color, #3b6fe0); transition: width .3s ease; }
.dcg-bar-caption {
    display: flex; justify-content: space-between; margin-top: .25rem;
    font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); font-variant-numeric: tabular-nums;
}
.dcg-bar-caption strong { color: var(--text-color, #1b1e24); }

.dcg-stats { margin-top: var(--spacing-md, 1rem); }

.dcg-rank {
    display: flex; justify-content: space-between; align-items: baseline; gap: .75rem;
    margin-top: var(--spacing-md, 1rem); padding: .625rem .75rem;
    border: 1px solid var(--border-color, #e5e8ed); border-radius: var(--radius-sm, 6px);
}
.dcg-rank[hidden] { display: none; }
.dcg-rank-label { color: var(--text-secondary, #3d4450); }
.dcg-rank-label small { color: var(--text-muted, #626977); }
.dcg-rank-value { font-weight: 700; text-align: right; word-break: keep-all; }
.dcg-schedule { list-style: none; margin: .5rem 0 0; padding: 0; border: 1px solid var(--border-color, #e5e8ed); border-radius: var(--radius-sm, 6px); font-variant-numeric: tabular-nums; }
.dcg-schedule[hidden] { display: none; }
.dcg-step { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto; align-items: baseline; gap: .75rem; padding: .5rem .75rem; border-top: 1px solid var(--border-color, #e5e8ed); }
.dcg-step:first-child { border-top: 0; }
.dcg-step-rank { font-weight: 700; }
.dcg-step-date { color: var(--text-secondary, #3d4450); }
.dcg-step-tag { font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); white-space: nowrap; }
.dcg-step.is-done .dcg-step-rank, .dcg-step.is-done .dcg-step-date { color: var(--text-muted, #626977); }
.dcg-step.is-current { background: #eef3fd; }
.dcg-step.is-current .dcg-step-tag { color: var(--accent-primary, #2f5bd3); font-weight: 700; }
.dcg-alert { margin-top: var(--spacing-md, 1rem); }

@media (prefers-reduced-motion: reduce) { .dcg-bar { transition: none; } }
@media (max-width: 768px) {
    .dcg-main-value { font-size: 1.3rem; }
    .dcg-rank { flex-direction: column; gap: .125rem; }
    .dcg-rank-value { text-align: left; }
}
