.ppt-page {
    max-width: 880px;
    margin: 0 auto;
    padding: 40px 20px 80px;
    color: hsl(var(--foreground));
}

.ppt-header h1 {
    margin: 0 0 8px;
    font-size: 28px;
}

.ppt-header p {
    margin: 0;
    color: hsl(var(--muted-foreground));
}

.ppt-notice {
    margin: 24px 0;
    padding: 14px 16px;
    background: hsl(var(--muted));
    border-left: 3px solid hsl(var(--primary));
    border-radius: var(--radius);
    font-size: 14px;
    line-height: 1.6;
}

.ppt-notice strong {
    display: block;
    margin-bottom: 4px;
}

.ppt-card {
    margin-bottom: 24px;
    padding: 24px;
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
}

.ppt-card h2 {
    margin: 0 0 16px;
    font-size: 18px;
}

.ppt-field {
    margin-bottom: 20px;
}

.ppt-field > label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
}

.ppt-hint {
    margin: 0 0 12px;
    font-size: 13px;
    color: hsl(var(--muted-foreground));
    line-height: 1.6;
}

.ppt-field input[type="text"],
.ppt-field select {
    padding: 9px 12px;
    font-size: 14px;
    color: hsl(var(--foreground));
    background: hsl(var(--background));
    border: 1px solid hsl(var(--input));
    border-radius: var(--radius);
}

.ppt-field > input[type="text"] {
    width: 100%;
    box-sizing: border-box;
}

.ppt-chapters {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ppt-chapter {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ppt-chapter-num {
    flex: 0 0 26px;
    height: 26px;
    line-height: 26px;
    text-align: center;
    font-size: 13px;
    color: hsl(var(--muted-foreground));
    background: hsl(var(--muted));
    border-radius: 50%;
}

.ppt-chapter .chapter-topic {
    /* flex:1 만 주면 자식 기본 min-width:auto 때문에 좁은 화면에서 넘친다. */
    flex: 1 1 auto;
    min-width: 0;
}

.ppt-chapter .chapter-importance {
    flex: 0 0 auto;
}

.ppt-field-inline {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ppt-field-inline > label {
    margin-bottom: 0;
}

.ppt-total {
    font-size: 13px;
    color: hsl(var(--muted-foreground));
}

.ppt-btn {
    padding: 11px 20px;
    font-size: 14px;
    font-weight: 600;
    color: hsl(var(--primary-foreground));
    background: hsl(var(--primary));
    border: none;
    border-radius: var(--radius);
    cursor: pointer;
}

.ppt-btn:disabled {
    background: hsl(var(--muted-foreground));
    cursor: not-allowed;
}

.ppt-status {
    margin-top: 14px;
    padding: 10px 14px;
    font-size: 14px;
    border-radius: var(--radius);
    line-height: 1.6;
}

.ppt-status-progress {
    background: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
}

.ppt-status-success {
    background: hsl(var(--secondary));
    color: hsl(var(--secondary-foreground));
}

.ppt-status-error {
    background: hsl(var(--destructive));
    color: hsl(var(--destructive-foreground));
}

.ppt-recent-item {
    padding: 12px 0;
    border-bottom: 1px solid hsl(var(--border));
}

.ppt-recent-item:last-child {
    border-bottom: none;
}

.ppt-recent-main {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ppt-recent-name {
    font-weight: 600;
    color: hsl(var(--foreground));
    text-decoration: none;
}

.ppt-recent-name:hover {
    text-decoration: underline;
}

.ppt-recent-meta {
    margin-top: 4px;
    font-size: 13px;
    color: hsl(var(--muted-foreground));
}

.ppt-recent-error {
    margin-top: 6px;
    font-size: 13px;
    color: hsl(var(--destructive));
    line-height: 1.6;
}

.ppt-badge {
    padding: 2px 8px;
    font-size: 12px;
    border-radius: 999px;
    background: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
}

.ppt-badge-done {
    background: hsl(var(--secondary));
    color: hsl(var(--secondary-foreground));
}

.ppt-badge-failed {
    background: hsl(var(--destructive));
    color: hsl(var(--destructive-foreground));
}
