.glass-header { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.dark .glass-header { background: rgba(17, 24, 33, 0.7); }
.glass-panel { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid rgba(226, 232, 240, 0.8); }
.search-input { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.search-input:focus-within { transform: scale(1.01); box-shadow: 0 10px 30px -5px rgba(25, 110, 230, 0.15); border-color: #196ee6; }
.action-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.action-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05); }

/* Spreadsheet Specific CSS - Z까지 26개 열로 확장 */
.spreadsheet-grid { display: grid; grid-template-columns: 40px repeat(26, minmax(120px, 1fr)); }
.cell { border-right: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; padding: 4px 8px; font-size: 13px; display: flex; align-items: center; background: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.header-cell { background: #f8fafc; color: #64748b; font-weight: 500; justify-content: center; font-size: 11px; text-transform: uppercase; letter-spacing: 0.025em; }
.selected-cell { border: 2px solid #196ee6; z-index: 10; }

.editor-content:focus { outline: none; }
.editor-content:empty:before { content: attr(data-placeholder); color: #cbd5e1; cursor: text; }
#app-viewport { transition: opacity 0.2s ease-in-out; }

.ai-glow {
    box-shadow: 0 0 15px rgba(25, 110, 230, 0.3);
    animation: pulse-glow 3s infinite;
}
@keyframes pulse-glow {
    0% { box-shadow: 0 0 15px rgba(25, 110, 230, 0.3); }
    50% { box-shadow: 0 0 25px rgba(25, 110, 230, 0.5); }
    100% { box-shadow: 0 0 15px rgba(25, 110, 230, 0.3); }
}
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
