*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow-x:hidden}body{min-height:100%;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}.app-shell{display:flex;flex:1;min-height:100vh}.app-sidebar{width:224px;flex-shrink:0;background:#fff;border-right:1px solid #e2eaf7;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:50}.app-body{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--color-bg)}main#main-content{flex:1;display:flex;flex-direction:column}.sidebar-nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .875rem;border-radius:6px;font-size:.875rem;font-weight:500;color:#374151;text-decoration:none;transition:background .15s,color .15s;margin:0 .5rem;cursor:pointer;border:none;background:none;font-family:var(--font-sans);width:calc(100% - 1rem);text-align:left}.sidebar-nav-item:hover{background:#eff6ff;color:#1d4ed8;text-decoration:none}.sidebar-nav-item.active{background:#eff6ff;color:#2563eb;font-weight:600}.sidebar-nav-item.active svg{color:#2563eb}.sidebar-group-label{font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#9ca3af;padding:.75rem 1.375rem .3rem;margin-top:.25rem}.mobile-topbar{display:none;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e2eaf7;position:sticky;top:0;z-index:40}.mobile-hamburger{background:none;border:none;cursor:pointer;padding:.25rem;color:#374151;display:flex;align-items:center}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:49}@media (max-width: 768px){.app-sidebar{position:fixed;left:-224px;top:0;height:100vh;transition:left .25s ease;box-shadow:4px 0 20px #00000014;z-index:50}.app-sidebar.open{left:0}.sidebar-overlay.open{display:block}.mobile-topbar{display:flex}}:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-secondary: #00703c;--color-accent: #3b82f6;--color-warning: #f59e0b;--color-success: #059669;--color-error: #dc2626;--color-bg: #f0f6ff;--color-surface: #ffffff;--color-border: #dde6f5;--color-text: #0f172a;--color-text-muted: #6b7280;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "DM Serif Display", Georgia, serif;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .12)}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;line-height:1.2;color:var(--color-primary-dark)}h1{font-size:2.5rem;margin-bottom:var(--space-md)}h2{font-size:2rem;margin-bottom:var(--space-md)}h3{font-size:1.5rem;margin-bottom:var(--space-sm)}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary);text-decoration:underline}button{font-family:var(--font-sans);cursor:pointer;border:none;transition:all .2s}input,select,textarea{font-family:var(--font-sans);font-size:1rem}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-md)}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:box-shadow .3s}.card:hover{box-shadow:var(--shadow-md)}.btn{padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-weight:500;font-size:.95rem;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-secondary:hover{background:#005a2d;transform:translateY(-1px)}.btn-outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover{background:#b92e1a}.alert{padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);border-left:4px solid;animation:slideIn .3s ease-out}.alert-success{background:#e8f5e9;border-color:var(--color-success);color:#1b5e20}.alert-error{background:#ffebee;border-color:var(--color-error);color:#b71c1c}.alert-warning{background:#fff3e0;border-color:var(--color-warning);color:#e65100}.badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.badge-success{background:#e8f5e9;color:var(--color-success)}.badge-pending{background:#fff3e0;color:var(--color-warning)}.badge-failed{background:#ffebee;color:var(--color-error)}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;margin-bottom:var(--space-xs);font-weight:500;color:var(--color-text)}.form-input{width:100%;padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color .2s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f}.form-input:focus-visible{outline:3px solid var(--color-accent);outline-offset:1px}.form-error{color:var(--color-error);font-size:.875rem;margin-top:var(--space-xs)}.loading{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.table{width:100%;border-collapse:collapse;margin-top:var(--space-md)}.table th{text-align:left;padding:var(--space-sm);border-bottom:2px solid var(--color-border);font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.table td{padding:var(--space-sm);border-bottom:1px solid var(--color-border)}.table tr:hover{background:#2563eb05}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.flex{display:flex}.flex-column{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.card-hover{transition:all .3s ease}.card-hover:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.dashboard-biz-card-link:hover>div{box-shadow:0 8px 24px #2563eb1f;border-color:#bfdbfe;transform:translateY(-2px)}.dashboard-biz-card-link:hover .biz-arrow{color:#2563eb}.dashboard-action-card:hover{box-shadow:0 8px 24px #2563eb14;border-color:#bfdbfe}.skip-link{position:absolute;top:-100%;left:0;background:var(--color-primary);color:#fff;padding:.75rem 1.5rem;font-weight:600;font-size:1rem;z-index:9999;text-decoration:none;border-radius:0 0 var(--radius-sm) 0}.skip-link:focus{top:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.text-muted,.table th{color:#595f6b}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
