.error-boundary{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-6)}.error-boundary button{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-primary-contrast);cursor:pointer}.error-boundary button:hover{background-color:var(--color-primary-hover)}.app-header{display:flex;align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-4);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-header__menu-button{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer}.app-header__menu-button:hover{background-color:var(--color-background)}.app-header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}@media (max-width: 768px){.app-header__menu-button{display:inline-flex}}.app-sidebar{width:240px;flex-shrink:0;background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4) var(--space-2)}.app-sidebar__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.app-sidebar__link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-sm)}.app-sidebar__link:hover{background-color:var(--color-background);color:var(--color-text)}.app-sidebar__link--active{background-color:var(--color-primary);color:var(--color-primary-contrast)}.app-sidebar__icon{width:18px;height:18px;flex-shrink:0}@media (max-width: 768px){.app-sidebar{position:fixed;top:56px;right:0;bottom:0;left:0;z-index:20;transform:translate(-100%);transition:transform .2s ease-in-out;width:100%;max-width:280px;box-shadow:var(--shadow-lg)}.app-sidebar--open{transform:translate(0)}}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-shell__body{display:flex;flex:1;min-height:0}.app-shell__main{flex:1;padding:var(--space-5);overflow-y:auto}.placeholder-page{max-width:640px}.placeholder-page h1{font-size:var(--font-size-xl);margin:0 0 var(--space-3)}.placeholder-page p{color:var(--color-text-muted);margin:0}.not-found-page{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.not-found-page h1{font-size:48px;margin:0}.loading-spinner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-5);color:var(--color-text-muted)}.loading-spinner__circle{width:20px;height:20px;border-radius:var(--radius-full);border:2px solid var(--color-border);border-top-color:var(--color-primary);animation:loading-spinner-rotate .6s linear infinite}@keyframes loading-spinner-rotate{to{transform:rotate(360deg)}}:root{color-scheme:light;--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-primary-contrast: #ffffff;--color-background: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-success: #16a34a;--color-warning: #d97706;--color-danger: #dc2626;--color-info: #0284c7}:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px}:root{--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-full: 9999px}:root{--shadow-sm: 0 1px 2px rgba(15, 23, 42, .08);--shadow-md: 0 4px 12px rgba(15, 23, 42, .12);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .16)}:root{--font-family-base: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 28px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background)}a{color:var(--color-primary)}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
