:root{--color-primary: #1a6b8a;--color-primary-hover: #155a75;--color-primary-subtle: #e8f4f8;--color-primary-light: #4a9ab5;--color-bg: #f4f6f9;--color-bg-subtle: #eef1f5;--color-bg-hover: #e8edf3;--color-surface: #ffffff;--color-sidebar-bg: #ffffff;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text-primary: #0f1923;--color-text-secondary: #3d5166;--color-text-muted: #6b7f94;--color-success: #15803d;--color-success-subtle: #dcfce7;--color-warning: #a16207;--color-warning-subtle: #fef9c3;--color-danger: #be123c;--color-danger-subtle: #ffe4e6;--color-info: #1d4ed8;--color-info-subtle: #dbeafe;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--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;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .05);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .05);--z-base: 1;--z-header: 100;--z-overlay: 200;--z-drawer: 300;--z-modal: 400;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;tab-size:4;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,video,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;line-height:inherit}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight)}input,textarea,select{font:inherit}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.card__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-border);gap:var(--space-3);flex-wrap:wrap}.card__title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.card__body{padding:var(--space-5)}.card__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-bg-subtle)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:44px;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn--outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn--outline:hover:not(:disabled){background:var(--color-primary-subtle)}.btn--ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn--ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);min-height:32px}.btn--lg{padding:var(--space-4) var(--space-7);font-size:var(--text-base);min-height:52px}.btn--full{width:100%}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-field--error .form-input{border-color:var(--color-danger);background:#fff5f7}.form-field--error .form-input:focus{outline-color:var(--color-danger);box-shadow:0 0 0 3px #be123c1f}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.form-input{width:100%;height:44px;padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:hover:not(:disabled){border-color:var(--color-primary-light)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1a6b8a26}.form-input--with-action{padding-right:var(--space-12)}.form-input:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:not-allowed}.form-input-wrapper{position:relative}.form-input-action{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.form-input-action svg{width:18px;height:18px}.form-input-action:hover{color:var(--color-text-secondary)}.form-error{font-size:var(--text-xs);color:var(--color-danger);display:flex;align-items:center;gap:var(--space-1)}.form-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-normal)}.form-alert svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.form-alert--error{background:var(--color-danger-subtle);color:var(--color-danger);border:1px solid rgba(190,18,60,.2)}.form-alert--success{background:var(--color-success-subtle);color:var(--color-success);border:1px solid rgba(21,128,61,.2)}.form-alert--warning{background:var(--color-warning-subtle);color:var(--color-warning);border:1px solid rgba(161,98,7,.2)}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.table-responsive table{width:100%;min-width:600px;border-collapse:collapse}.table-responsive table thead{background:var(--color-bg-subtle)}.table-responsive table th,.table-responsive table td{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-sm);border-bottom:1px solid var(--color-border);white-space:nowrap}.table-responsive table th{font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em}.table-responsive table td{color:var(--color-text-primary)}.table-responsive table tbody tr{transition:background var(--transition-fast)}.table-responsive table tbody tr:last-child td{border-bottom:none}.table-responsive table tbody tr:hover{background:var(--color-bg-subtle)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1.5}.badge--primary{background:var(--color-primary-subtle);color:var(--color-primary)}.badge--success{background:var(--color-success-subtle);color:var(--color-success)}.badge--warning{background:var(--color-warning-subtle);color:var(--color-warning)}.badge--danger{background:var(--color-danger-subtle);color:var(--color-danger)}html,body{height:100%;width:100%;overflow-x:hidden}app-root{display:block;height:100%}main#main-content>*{display:block;width:100%}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.grid{display:grid;gap:var(--space-4)}.grid--cols-2{grid-template-columns:repeat(2,1fr)}.grid--cols-3{grid-template-columns:repeat(3,1fr)}.grid--cols-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1023px){.grid--cols-3,.grid--cols-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid--cols-2,.grid--cols-3,.grid--cols-4{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-9999px;left:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);z-index:9999}.skip-link:focus{top:var(--space-4)}
