/* ===================================
   INPUT SYSTEM (PATTERNS & EXAMPLES)
   =================================== */

/* Pattern Input System */
.pattern-input-group {
    flex: 1;
}

.pattern-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px; /* 8px에서 6px로 줄임 */
    text-align: center;
}

.pattern-input,
.pattern-display {
    width: 100%;
    padding: 12px 16px; /* 14px 18px에서 12px 16px로 줄임 */
    font-size: 1.25rem; /* 1.375rem에서 1.25rem으로 줄임 */
    font-weight: 700;
    font-family: 'Poppins', sans-serif;
    border-radius: 12px;
    transition: all 0.2s ease;
    text-align: center;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    white-space: normal;
    max-width: 100%;
    box-sizing: border-box;
}

.pattern-input {
    background: white;
    border: 2px solid var(--border);
    color: var(--text);
    display: none;
}

.pattern-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
}

.pattern-display {
    background: white;
    border: 2px solid transparent;
    color: var(--text);
    cursor: pointer;
    min-height: 56px; /* 64px에서 56px로 줄임 */
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.3; /* 1.4에서 1.3으로 줄임 */
    position: relative;
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

.pattern-display * {
    pointer-events: auto;
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

.pattern-display:hover {
    background: white;
    border-color: var(--border);
}

.pattern-display.empty {
    color: var(--text-secondary);
    font-weight: 500;
    font-size: 1rem; /* 1.125rem에서 1rem으로 줄임 */
}

.pattern-card.editing .pattern-input {
    display: block;
}

.pattern-card.editing .pattern-display {
    display: none;
}

/* Examples System */
.examples-section {
    display: none;
    margin-top: 12px; /* 20px에서 12px로 줄임 */
    padding-top: 12px; /* 20px에서 12px로 줄임 */
    border-top: 1px solid var(--border);
}

.examples-section.show {
    display: block;
}

.examples-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px; /* 12px에서 8px로 줄임 */
    text-align: center;
}

.examples-input,
.examples-display {
    width: 100%;
    min-height: 45px; /* 60px에서 45px로 더 줄임 */
    padding: 8px 12px; /* 10px 14px에서 8px 12px로 더 줄임 */
    font-size: 0.813rem; /* 0.938rem에서 0.813rem으로 더 줄임 */
    line-height: 1.3; /* 1.4에서 1.3으로 더 줄임 */
    border-radius: 12px;
    font-family: 'Inter', sans-serif;
    text-align: center;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    white-space: pre-wrap;
    max-width: 100%;
    box-sizing: border-box;
}

.examples-input {
    background: white;
    border: 2px solid var(--border);
    color: var(--text);
    resize: vertical;
    display: none;
}

.examples-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
}

.examples-display {
    background: white;
    color: var(--text-secondary);
    cursor: pointer;
    white-space: pre-wrap;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}

.examples-display:not(.empty) {
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.examples-display:hover {
    background: white;
    box-shadow: var(--shadow-sm);
}

.examples-display.empty {
    font-style: italic;
}

.pattern-card.editing .examples-input {
    display: block;
}

.pattern-card.editing .examples-display {
    display: none;
}

.examples-display.empty {
    font-style: italic;
    font-size: 0.75rem; /* empty 상태일 때 더 작은 폰트 */
    padding: 6px 10px; /* empty 상태일 때 더 작은 패딩 */
    min-height: 35px; /* empty 상태일 때 더 작은 높이 */
}

/* 스타일이 적용된 span 요소들의 정렬 보정 */  /* 새로 추가된 블록 */
.pattern-display > span {
    display: inline-flex;
    align-items: baseline;
    line-height: 1.3;
}

.pattern-display span[style*="font-size"] {    /* 새로 추가된 블록 */
    vertical-align: baseline;
    display: inline;
}
