.custom-button{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;border:1px solid transparent}.custom-button.default{background-color:#1d4ed8;color:#fff;border-color:#1d4ed8}.custom-button.error{background-color:tomato;color:#f9fafb;border-color:#1f2937}.custom-button.default:hover{background-color:#2563eb;border-color:#2563eb}.custom-button.outline{background-color:transparent;color:#1f2937;border:1px solid #d1d5db}.custom-button.outline:hover{background-color:#f9fafb}.button-icon{display:flex;align-items:center}.error-fallback-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(to bottom,var(--background),rgba(var(--muted),.5))}.error-container{width:100%;max-width:28rem;margin:0 auto;position:relative;border-radius:.5rem;border:1px solid rgba(0,0,0,.1);background-color:var(--card);padding:2rem;box-shadow:0 4px 6px #0000001a;animation:fadeSlideIn .5s ease-out forwards;backdrop-filter:blur(4px)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.error-icon-wrapper{border-radius:9999px;padding:.75rem;background-color:#ef44441a;color:#ef4444}.error-heading{font-size:1.5rem;font-weight:600;letter-spacing:-.015em}.error-description{color:var(--muted-foreground)}.error-message{margin-top:.5rem;width:100%;padding:1rem;border-radius:.25rem;font-family:monospace;font-size:.875rem;white-space:pre-wrap;word-break:break-word;background-color:#64748b1a;color:var(--muted-foreground)}.error-actions{margin-top:1rem;display:flex;gap:.5rem}.button-icon{display:flex;align-items:center;gap:.5rem}.app-launcher{width:100%}.app-launcher__header{margin-bottom:2rem}.app-launcher__title{font-size:1.875rem;line-height:2.25rem;font-weight:700;color:#111827}.app-launcher__description{font-size:1rem;line-height:1.5rem;color:#4b5563;margin-top:.5rem}.app-launcher__grid{display:grid;gap:1rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width: 640px){.app-launcher__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.app-launcher__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.app-launcher__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1280px){.app-launcher__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.app-launcher__tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem;background-color:#fff;border-radius:1rem;border:1px solid #e5e7eb;transition:box-shadow .15s ease-in-out;cursor:pointer}.app-launcher__tile:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.app-launcher__icon-container{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:.5rem}.gradient-blue-teal{background:linear-gradient(to bottom right,#3b82f6,#0d9488)}.gradient-emerald-teal{background:linear-gradient(to bottom right,#10b981,#0d9488)}.gradient-purple-violet{background:linear-gradient(to bottom right,#a855f7,#7c3aed)}.gradient-indigo-purple{background:linear-gradient(to bottom right,#6366f1,#a855f7)}.gradient-blue-indigo{background:linear-gradient(to bottom right,#3b82f6,#4f46e5)}.gradient-gray{background:linear-gradient(to bottom right,#6b7280,#4b5563)}.app-launcher__label-container{text-align:center}.app-launcher__label{font-size:.875rem;line-height:1.25rem;font-weight:600;color:#111827}.app-launcher__badge{display:inline-block;margin-top:.25rem;font-size:.75rem;line-height:1rem;padding:.125rem .5rem;background-color:#dbeafe;color:#1d4ed8;border-radius:9999px}.app-launcher__link,.app-launcher__button{display:block;width:100%;background:none;border:none;padding:0;text-decoration:none;border-radius:.5rem}.app-launcher__link:focus,.app-launcher__button:focus{outline:none;box-shadow:0 0 0 2px #3b82f6}@media (prefers-color-scheme: dark){.app-launcher__title{color:#f9fafb}.app-launcher__description{color:#9ca3af}.app-launcher__tile{background-color:#1f2937;border-color:#374151}.app-launcher__label{color:#f9fafb}.app-launcher__badge{background-color:#1e3a8a;color:#93c5fd}}
