@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.route-error-root{background:var(--bg-canvas,#090d16);width:100%;min-height:100vh;color:var(--text-primary,#f1f5f9);padding:var(--space-6,24px);box-sizing:border-box;justify-content:center;align-items:center;font-family:inherit;display:flex}.route-error-container{gap:var(--space-5,20px);flex-direction:column;width:100%;max-width:760px;animation:.3s ease-out routeErrorFadeIn;display:flex}@keyframes routeErrorFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.route-error-header{padding-bottom:var(--space-2,8px);justify-content:space-between;align-items:center;display:flex}.route-error-brand{align-items:center;gap:10px;display:flex}.route-error-logo{border-radius:var(--radius-lg,10px);width:36px;height:36px;color:var(--accent-primary,#10b981);background:linear-gradient(135deg,#10b98140,#10b98114);border:1px solid #10b98159;justify-content:center;align-items:center;display:flex}.route-error-brand-title{letter-spacing:-.02em;color:var(--text-primary,#f1f5f9);font-size:1.15rem;font-weight:700}.route-error-badge{color:#ef4444;background:#ef44441f;border:1px solid #ef444440;border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.route-error-card{background:var(--bg-surface,#0f172a);border:1px solid var(--border-default,#94a3b826);border-radius:var(--radius-2xl,16px);padding:var(--space-6,28px);gap:var(--space-5,20px);flex-direction:column;display:flex;box-shadow:0 20px 40px -15px #00000073}.route-error-hero{align-items:flex-start;gap:16px;display:flex}.route-error-icon-box{border-radius:var(--radius-xl,12px);color:#ef4444;background:#ef44441f;border:1px solid #ef444447;justify-content:center;align-items:center;width:52px;min-width:52px;height:52px;display:flex;box-shadow:0 0 20px #ef444426}.route-error-hero-text h1{color:var(--text-primary,#f1f5f9);margin:0 0 6px;font-size:1.35rem;font-weight:700}.route-error-hero-text p{color:var(--text-secondary,#94a3b8);margin:0;font-size:.9rem;line-height:1.5}.route-error-message-box{border-radius:var(--radius-lg,10px);background:#ef44440f;border:1px solid #ef444438;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.route-error-type-tag{text-transform:uppercase;letter-spacing:.05em;color:#ef4444;font-size:.72rem;font-weight:700}.route-error-message-text{color:var(--text-primary,#f8fafc);word-break:break-word;font-family:Fira Code,SFMono-Regular,Consolas,monospace;font-size:.95rem;font-weight:600}.route-error-details-toggle{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:.82rem;font-weight:500;transition:color .15s;display:inline-flex}.route-error-details-toggle:hover{color:var(--text-primary,#f1f5f9)}.route-error-stack-wrapper{background:var(--bg-canvas,#070a12);border:1px solid var(--border-subtle,#94a3b81a);border-radius:var(--radius-lg,10px);overflow:hidden}.route-error-stack-header{border-bottom:1px solid var(--border-subtle,#94a3b81a);color:var(--text-muted,#64748b);background:#94a3b80a;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.75rem;font-weight:600;display:flex}.route-error-stack-content{color:#cbd5e1;max-height:240px;margin:0;padding:12px 14px;font-family:Fira Code,SFMono-Regular,Consolas,monospace;font-size:.76rem;line-height:1.55;overflow-x:auto}.route-error-actions{padding-top:var(--space-2,8px);border-top:1px solid var(--border-subtle,#94a3b81a);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.route-error-footer{text-align:center;color:var(--text-muted,#64748b);font-size:.78rem}:root{--green-50:#f0fffa;--green-100:#d0fbed;--green-200:#9df0d2;--green-300:#5ce0ab;--green-400:#2cc985;--green-500:#18b46b;--green-600:#0d9652;--green-700:#08783c;--green-800:#065629;--green-900:#043a19;--bg-base:#0d1117;--bg-surface:#151b23;--bg-elevated:#1f252e;--bg-overlay:#272f3a;--bg-card:var(--bg-surface);--color-scheme:dark;--border-subtle:#52627a4d;--border-default:#667a9973;--border-strong:#8595ada6;--text-primary:#f1f5f9;--text-secondary:#94a2b8;--text-muted:#636f83;--text-disabled:#505762;--accent-primary:#18b46b;--accent-hover:#1dd781;--accent-muted:#18b46b26;--danger:#f04438;--danger-muted:#f044381f;--warning:#f59f0a;--warning-muted:#f59f0a1f;--info:#2094f3;--info-muted:#2094f31f;--success:#22c35d;--success-muted:#22c35d1f;--status-active:#22c35d;--status-expired:#f04438;--status-renewed:#2094f3;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 16px 48px #0009;--shadow-glow-green:0 0 20px #18b46b4d;--glass-bg:#151b23b3;--glass-border:#667a9933;--glass-blur:12px;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--content-max-width:1280px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-bounce:.3s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500}:root[data-theme=light],body[data-theme=light]{--color-scheme:light;--bg-base:#f9fafb;--bg-surface:#fff;--bg-elevated:#edf0f3;--bg-overlay:#e0e6eb;--bg-card:var(--bg-surface);--border-subtle:#c2cad699;--border-default:#a3b0c299;--border-strong:#667b9999;--text-primary:#0f1729;--text-secondary:#3d4e66;--text-muted:#65758b;--text-disabled:#99a4b2;--shadow-sm:0 1px 3px #29303d14;--shadow-md:0 4px 12px #29303d1a;--shadow-lg:0 8px 24px #29303d1f;--shadow-xl:0 16px 48px #29303d26;--glass-bg:#ffffffd9;--glass-border:#c2cad680}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}@keyframes glowPulse{0%,to{box-shadow:0 0 12px #18b46b33}50%{box-shadow:0 0 24px #18b46b80}}.animate-fade-in{animation:fadeIn var(--transition-base) both}.animate-fade-in-up{animation:fadeInUp var(--transition-base) both}.animate-fade-in-down{animation:fadeInDown var(--transition-base) both}.animate-fade-in-left{animation:fadeInLeft var(--transition-base) both}.animate-slide-right{animation:slideInRight var(--transition-base) both}.animate-scale-in{animation:scaleIn var(--transition-bounce) both}.animate-bounce-in{animation:bounceIn var(--transition-bounce) both}.animate-spin{animation:1s linear infinite spin}.animate-pulse{animation:1.5s ease-in-out infinite pulse}.animate-glow-pulse{animation:2s ease-in-out infinite glowPulse}.delay-75{animation-delay:75ms}.delay-100{animation-delay:.1s}.delay-150{animation-delay:.15s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.skeleton{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-overlay) 50%, var(--bg-elevated) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.page-enter{animation:.3s both fadeInUp}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:.5rem 1.125rem;line-height:1;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn--primary{background:var(--accent-primary);color:#082112;border-color:#0000}.btn--primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-glow-green)}.btn--secondary,.btn--outline{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-default)}.btn--secondary:hover:not(:disabled),.btn--outline:hover:not(:disabled){background:var(--bg-overlay);border-color:var(--border-strong)}.btn--ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn--danger{background:var(--danger-muted);color:var(--danger);border-color:#f044384d}.btn--danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn--xs{padding:.2rem .5rem;font-size:11px;line-height:1.2}.btn--sm{font-size:var(--text-xs);padding:.35rem .75rem}.btn--lg{font-size:var(--text-base);padding:.7rem 1.5rem}.btn--icon{border-radius:var(--radius-md);width:2.25rem;height:2.25rem;padding:.5rem}.btn--icon.btn--sm{width:1.75rem;height:1.75rem;padding:.25rem}.btn--full{width:100%}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.form-label.required:after{content:" *";color:var(--danger)}.form-input,.form-textarea,.form-select{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.5625rem .875rem}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-muted)}.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-muted)}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;padding-right:2.5rem}.form-select option,select option{background-color:var(--bg-surface);color:var(--text-primary);padding:8px}input[type=date],input[type=datetime-local]{color-scheme:var(--color-scheme,dark);cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75;border-radius:var(--radius-sm);transition:opacity var(--transition-fast);padding:2px}input[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75;border-radius:var(--radius-sm);transition:opacity var(--transition-fast);padding:2px}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background:var(--accent-muted)}input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:1;background:var(--accent-muted)}.form-error{font-size:var(--text-xs);color:var(--danger);margin-top:.15rem}.form-hint{font-size:var(--text-xs);color:var(--text-muted)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.card:hover{border-color:var(--border-default)}.card--clickable{cursor:pointer}.card--clickable:hover{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-muted)}.card__header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.card__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal,1000);padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-2xl);padding:var(--space-6);width:100%;min-width:0;max-width:520px;max-height:calc(100vh - 2 * var(--space-4));max-height:calc(100dvh - 2 * var(--space-4));box-shadow:var(--shadow-xl);flex-direction:column;animation:.25s cubic-bezier(.34,1.56,.64,1) scaleIn;display:flex;position:relative}.modal--lg{max-width:720px}.modal--xl{max-width:960px}.modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-shrink:0;min-width:0;display:flex}.modal__title{font-size:var(--text-lg);font-weight:var(--font-semibold);word-break:break-word;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.4}.modal__close{color:var(--text-muted);padding:var(--space-1);border-radius:var(--radius-md);transition:color var(--transition-fast), background var(--transition-fast);flex-shrink:0;margin-left:auto}.modal__close:hover{color:var(--text-primary);background:var(--bg-elevated)}.modal__body{flex:1;min-width:0;min-height:0;overflow:hidden auto}.modal .form-group{min-width:0}.modal .form-input,.modal .form-select,.modal .form-textarea{width:100%;min-width:0;max-width:100%}.modal input[type=date],.modal input[type=datetime-local],.modal input[type=time]{appearance:none;text-align:left;display:block}@media (width<=560px){.modal-overlay{padding:var(--space-3);align-items:flex-end}.modal{padding:var(--space-5) var(--space-4);border-radius:var(--radius-2xl) var(--radius-2xl) var(--radius-xl) var(--radius-xl);max-height:calc(100dvh - 2 * var(--space-3))}.modal__header{margin-bottom:var(--space-4)}.modal__footer{margin-top:var(--space-4);flex-wrap:wrap}.modal__footer>*{flex:auto}}.modal__footer{gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);justify-content:flex-end;display:flex}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:.2rem .6rem;display:inline-flex}.badge--green{background:var(--success-muted);color:var(--success)}.badge--red{background:var(--danger-muted);color:var(--danger)}.badge--blue{background:var(--info-muted);color:var(--info)}.badge--yellow{background:var(--warning-muted);color:var(--warning)}.badge--gray{background:var(--bg-elevated);color:var(--text-muted)}.spinner{border:2px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:.7s linear infinite spin;display:inline-block}.spinner--sm{border-width:1.5px;width:1rem;height:1rem}.spinner--lg{border-width:3px;width:2rem;height:2rem}.table-wrapper{border-radius:var(--radius-xl);border:1px solid var(--border-subtle);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:.75rem 1rem}.table td{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:.875rem 1rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--bg-elevated);color:var(--text-primary)}.page-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary)}.page-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-5);transition:border-color var(--transition-fast), transform var(--transition-fast)}.stat-card:hover{border-color:var(--border-default);transform:translateY(-2px)}.stat-card__label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.stat-card__value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:1}.stat-card__change{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-2)}.stat-card__icon{border-radius:var(--radius-lg);width:40px;height:40px;margin-bottom:var(--space-3);justify-content:center;align-items:center;display:flex}.checkbox-group{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.checkbox-group input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent-primary);cursor:pointer}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-base)}h6{font-size:var(--text-sm)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}a{color:var(--accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-sm)}button{font-family:var(--font-sans);cursor:pointer;background:0 0;border:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::selection{background:var(--accent-muted);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border)}.divider{background:var(--border-subtle);height:1px;margin:var(--space-4) 0;border:none}.scroll-y{overflow:hidden auto}.app-layout{background:var(--bg-base);min-height:100vh;display:flex}.app-content{min-width:0;margin-left:var(--sidebar-width);transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex}.app-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}.page-container{padding:var(--space-6) var(--space-8);max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto;animation:.3s both fadeInUp}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.empty-state__icon{width:64px;height:64px;color:var(--text-muted);opacity:.5}.empty-state__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-secondary)}.empty-state__desc{font-size:var(--text-sm);color:var(--text-muted);max-width:400px}.status-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.03em;text-transform:uppercase;padding:.2rem .65rem;display:inline-flex}.status-badge--active{background:var(--success-muted);color:var(--status-active);border:1px solid #22c35d40}.status-badge--expired{background:var(--danger-muted);color:var(--status-expired);border:1px solid #f0443840}.status-badge--renewed{background:var(--info-muted);color:var(--status-renewed);border:1px solid #2094f340}@media (width<=768px){.app-content{margin-left:0}.page-container{padding:var(--space-4)}}
