.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
}

.mono-precision {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-feature-settings: "tnum", "onum";
}

.tonal-nesting { background-color: #1c1b1c; }

.glass-panel {
    background: rgba(53, 52, 54, 0.6);
    backdrop-filter: blur(20px);
}

.screen {
    opacity: 0;
    transition: opacity 0.5s ease;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
    display: none;
}

.screen.active {
    opacity: 1;
    z-index: 1;
    pointer-events: all;
    position: relative;
    display: flex;
}

/* Toast container */
#toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 1000;
}

.toast {
    background: #353436;
    color: #e5e2e3;
    padding: 16px 24px;
    border-radius: 8px;
    border-left: 4px solid #b9c8de;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
    animation: slideIn 0.3s ease, fadeOut 0.3s ease 2.7s forwards;
    max-width: 350px;
}
.toast.error { border-left-color: #ffb4ab; }
.toast.success { border-left-color: #b9c8de; }

@keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; display: none; } }

/* View transitions */
.view {
    display: none;
    animation: fadeIn 0.3s ease;
}
.view.active { display: block; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Ensure animate-spin always works for JS-injected HTML */
@keyframes spin-manual {
    100% { transform: rotate(360deg); }
}
.animate-spin {
    animation: spin-manual 1s linear infinite !important;
}