@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--color-primary-50:#f0fdfa;--color-primary-100:#ccfbf1;--color-primary-200:#99f6e4;--color-primary-300:#5eead4;--color-primary-400:#2dd4bf;--color-primary-500:#14b8a6;--color-primary-600:#0d9488;--color-primary-700:#0f766e;--color-primary-800:#115e59;--color-primary-900:#134e4a;--color-accent-50:#eef2ff;--color-accent-100:#e0e7ff;--color-accent-200:#c7d2fe;--color-accent-300:#a5b4fc;--color-accent-400:#818cf8;--color-accent-500:#6366f1;--color-accent-600:#4f46e5;--color-accent-700:#4338ca;--color-success-50:#f0fdf4;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-danger-50:#fef2f2;--color-danger-500:#ef4444;--color-danger-600:#dc2626;--color-warning-50:#fffbeb;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-info-50:#eff6ff;--color-info-500:#3b82f6;--color-info-600:#2563eb;--color-neutral-0:#fff;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-neutral-950:#020617;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-sidebar:linear-gradient(180deg, #0f172a 0%, #1e293b 100%);--bg-card:#fff;--bg-input:#fff;--bg-hover:#f1f5f9;--bg-glass:#ffffffb3;--bg-glass-strong:#ffffffd9;--bg-overlay:#0f172a99;--border-color:#e2e8f0;--border-color-focus:var(--color-primary-500);--border-color-error:var(--color-danger-500);--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#fff;--text-link:var(--color-primary-600);--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-glass:0 8px 32px #00000014;--shadow-glow:0 0 20px #14b8a626;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Outfit", "Inter", 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;--text-4xl:2.25rem;--font-light:300;--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-tight:1.25;--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;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-toast:50;--sidebar-width:280px;--sidebar-collapsed-width:72px;--header-height:64px}*,: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-regular);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}a{color:var(--text-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-700)}img{max-width:100%;display:block}input,textarea,select,button{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}@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 slideInLeft{0%{opacity:0;transform:translate(-24px)}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(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease-out}.animate-slide-in-left{animation:slideInLeft var(--transition-slow) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-slow) ease-out}.animate-scale-in{animation:scaleIn var(--transition-spring) ease-out}.stagger-children>*{animation:fadeInUp var(--transition-slow) ease-out both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:60ms}.stagger-children>:nth-child(3){animation-delay:.12s}.stagger-children>:nth-child(4){animation-delay:.18s}.stagger-children>:nth-child(5){animation-delay:.24s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.36s}.stagger-children>:nth-child(8){animation-delay:.42s}.auth-page{min-height:100vh;padding:var(--space-4);background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#134e4a 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 30%,#14b8a614 0%,#0000 50%),radial-gradient(circle at 70% 80%,#6366f10f 0%,#0000 50%);width:200%;height:200%;animation:20s ease-in-out infinite float;position:absolute;top:-50%;left:-50%}.auth-card{background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-2xl);width:100%;max-width:440px;padding:var(--space-10);box-shadow:var(--shadow-glass), 0 0 0 1px #ffffff0d;animation:scaleIn var(--transition-spring) ease-out;z-index:1;border:1px solid #fff3;position:relative}.auth-logo{justify-content:center;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.auth-logo-icon{background:linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));border-radius:var(--radius-xl);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex;box-shadow:0 4px 12px #14b8a64d}.auth-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-bold);text-align:center;color:var(--text-primary);margin-bottom:var(--space-1)}.auth-subtitle{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-8)}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}.auth-footer{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--text-secondary)}.auth-footer a{color:var(--color-primary-600);font-weight:var(--font-semibold)}.auth-footer a:hover{color:var(--color-primary-700);text-decoration:underline}.app-layout{min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-base);flex:1}.app-header{height:var(--header-height);background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);padding:0 var(--space-8);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header-left,.app-header-right{align-items:center;gap:var(--space-4);display:flex}.app-content{padding:var(--space-8);max-width:1400px;animation:fadeInUp var(--transition-slow) ease-out}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);height:100vh;z-index:var(--z-sticky);transition:transform var(--transition-base);border-right:1px solid #ffffff0f;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-header{padding:var(--space-6);border-bottom:1px solid #ffffff0f}.sidebar-brand{align-items:center;gap:var(--space-3);display:flex}.sidebar-brand-icon{background:linear-gradient(135deg, var(--color-primary-400), var(--color-primary-600));border-radius:var(--radius-lg);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex;box-shadow:0 2px 8px #14b8a64d}.sidebar-brand-text{flex-direction:column;display:flex}.sidebar-brand-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-bold);color:#fff;line-height:1.2}.sidebar-brand-role{font-size:var(--text-xs);color:var(--color-neutral-400);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-section-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-4) var(--space-3) var(--space-2)}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--color-neutral-400);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast);text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar-link:before{content:"";opacity:0;transition:opacity var(--transition-fast);border-radius:inherit;background:linear-gradient(135deg,#14b8a61a,#6366f10d);position:absolute;inset:0}.sidebar-link:hover{color:#fff}.sidebar-link:hover:before{opacity:1}.sidebar-link.active{color:#fff;background:linear-gradient(135deg,#14b8a626,#6366f11a)}.sidebar-link.active:after{content:"";background:linear-gradient(180deg, var(--color-primary-400), var(--color-accent-400));border-radius:0 var(--radius-full) var(--radius-full) 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-link-icon{z-index:1;flex-shrink:0;font-size:18px;position:relative}.sidebar-link-text{z-index:1;position:relative}.sidebar-footer{padding:var(--space-4) var(--space-3);border-top:1px solid #ffffff0f}.sidebar-user{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);transition:background var(--transition-fast);display:flex}.sidebar-user:hover{background:#ffffff0d}.sidebar-user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500));color:#fff;width:36px;height:36px;font-size:var(--text-sm);font-weight:var(--font-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user-email{font-size:var(--text-xs);color:var(--color-neutral-500);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-overlay{background:var(--bg-overlay);z-index:calc(var(--z-sticky) - 1);animation:fadeIn var(--transition-fast);display:none;position:fixed;inset:0}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--transition-fast);background:0 0;border:none;font-size:24px;display:none}.mobile-menu-btn:hover{background:var(--bg-hover)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-header-info{gap:var(--space-1);flex-direction:column;display:flex}.page-breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-1);display:flex}.page-breadcrumb a{color:var(--text-tertiary)}.page-breadcrumb a:hover{color:var(--text-secondary)}.page-breadcrumb-sep{font-size:10px}.page-title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);background:linear-gradient(135deg, var(--text-primary), var(--color-primary-700));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.page-subtitle{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-regular)}.page-header-actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);transition:all var(--transition-base);box-shadow:var(--shadow-xs);overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.card-title{font-size:var(--text-lg);font-weight:var(--font-semibold)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-base);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--stat-color-start,var(--color-primary-400)), var(--stat-color-end,var(--color-primary-600)));height:3px;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-card-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.stat-card-icon{border-radius:var(--radius-lg);background:var(--stat-bg,var(--color-primary-50));width:44px;height:44px;color:var(--stat-icon-color,var(--color-primary-600));justify-content:center;align-items:center;font-size:20px;display:flex}.stat-card-value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--font-extrabold);color:var(--text-primary);line-height:1}.stat-card-label{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);font-size:var(--text-base);font-weight:var(--font-semibold);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:after{content:"";transition:background var(--transition-fast);background:#fff0;position:absolute;inset:0}.btn:not(:disabled):hover:after{background:#ffffff1a}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));color:#fff;box-shadow:0 2px 8px #14b8a640}.btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 16px #14b8a659}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:not(:disabled):hover{background:var(--bg-hover);border-color:var(--color-neutral-300)}.btn-danger{background:linear-gradient(135deg, var(--color-danger-500), var(--color-danger-600));color:#fff;box-shadow:0 2px 8px #ef444440}.btn-danger:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 16px #ef444459}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:not(:disabled):hover{background:var(--bg-hover);color:var(--text-primary)}.btn-success{background:linear-gradient(135deg, var(--color-success-500), var(--color-success-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-md)}.btn-lg{padding:var(--space-5) var(--space-8);font-size:var(--text-lg);border-radius:var(--radius-xl)}.btn-icon{padding:var(--space-3);width:48px;height:48px}.btn-icon.btn-sm{padding:var(--space-2);width:36px;height:36px}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);align-items:center;gap:var(--space-1);display:flex}.form-label .required{color:var(--color-danger-500)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-input);border:1.5px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast);outline:none}.form-input:hover,.form-textarea:hover,.form-select:hover{border-color:var(--color-neutral-300)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--border-color-focus);box-shadow:0 0 0 3px #14b8a61a}.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--border-color-error)}.form-input.error:focus,.form-textarea.error:focus,.form-select.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5l-5-5h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-helper{font-size:var(--text-xs);color:var(--text-tertiary)}.form-error{font-size:var(--text-xs);color:var(--color-danger-500);font-weight:var(--font-medium)}.form-row{gap:var(--space-5);display:grid}.form-row-2{grid-template-columns:repeat(2,1fr)}.form-row-3{grid-template-columns:repeat(3,1fr)}.form-row-4{grid-template-columns:repeat(4,1fr)}.table-container{border:1px solid var(--border-color);border-radius:var(--radius-xl);background:var(--bg-card);overflow-x:auto}.table-toolbar{padding:var(--space-4) var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--border-color);flex-wrap:wrap;display:flex}.table-search{flex:1;max-width:360px;position:relative}.table-search-icon{left:var(--space-3);color:var(--text-tertiary);pointer-events:none;font-size:16px;position:absolute;top:50%;transform:translateY(-50%)}.table-search .form-input{padding-left:36px}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{text-align:left;padding:var(--space-3) var(--space-5);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);white-space:nowrap}.table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-hover)}.table tbody tr:last-child td{border-bottom:none}.table-actions{align-items:center;gap:var(--space-1);display:flex}.table-pagination{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-color);font-size:var(--text-sm);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.table-pagination-controls{align-items:center;gap:var(--space-2);display:flex}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap;display:inline-flex}.badge-success{background:var(--color-success-50);color:var(--color-success-600)}.badge-danger{background:var(--color-danger-50);color:var(--color-danger-600)}.badge-warning{background:var(--color-warning-50);color:var(--color-warning-600)}.badge-info{background:var(--color-info-50);color:var(--color-info-600)}.badge-neutral{background:var(--color-neutral-100);color:var(--color-neutral-600)}.badge-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.modal-overlay{background:var(--bg-overlay);padding:var(--space-4);z-index:var(--z-modal);animation:fadeIn var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;animation:scaleIn var(--transition-spring);overflow-y:auto}.modal-lg{max-width:720px}.modal-xl{max-width:960px}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-xl);font-weight:var(--font-bold)}.modal-close{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-color);justify-content:flex-end;align-items:center;gap:var(--space-3);display:flex}.spinner{border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary-500);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.spinner-lg{border-width:4px;width:40px;height:40px}.loading-page{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;min-height:60vh;display:flex}.loading-text{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium)}.skeleton{background:linear-gradient(90deg, var(--color-neutral-100) 25%, var(--color-neutral-200) 50%, var(--color-neutral-100) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-text{width:100%;height:16px}.skeleton-title{width:60%;height:24px}.skeleton-avatar{border-radius:var(--radius-full);width:40px;height:40px}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{border-radius:var(--radius-2xl);background:var(--color-neutral-100);width:80px;height:80px;color:var(--color-neutral-400);margin-bottom:var(--space-5);justify-content:center;align-items:center;font-size:32px;display:flex}.empty-state-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--text-sm);color:var(--text-secondary);max-width:360px;margin-bottom:var(--space-6)}.stats-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.confirm-icon{border-radius:var(--radius-full);width:56px;height:56px;margin:0 auto var(--space-5);justify-content:center;align-items:center;font-size:24px;display:flex}.confirm-icon-danger{background:var(--color-danger-50);color:var(--color-danger-500)}.confirm-icon-warning{background:var(--color-warning-50);color:var(--color-warning-500)}.confirm-text{text-align:center}.confirm-title{font-size:var(--text-xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.confirm-description{font-size:var(--text-sm);color:var(--text-secondary)}.steps-indicator{gap:var(--space-2);padding:var(--space-4) var(--space-6);background:var(--bg-tertiary);border-radius:var(--radius-xl);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.step-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-card);color:var(--text-secondary);border:1.5px solid #0000}.step-pill:hover{color:var(--text-primary);border-color:var(--color-neutral-300)}.step-pill.active{background:linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));color:#fff;border-color:#0000;box-shadow:0 2px 8px #14b8a640}.step-pill.completed{background:var(--color-primary-50);color:var(--color-primary-700);border-color:var(--color-primary-200)}.consultation-detail{gap:var(--space-6);flex-direction:column;display:flex}.consultation-section{padding:var(--space-5) var(--space-6);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl)}.consultation-section-title{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-primary-700);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);display:flex}.consultation-section-content{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-relaxed);white-space:pre-wrap}.vital-signs-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.vital-sign-item{padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;display:flex}.vital-sign-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-primary-700)}.vital-sign-label{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1)}.patient-header{align-items:center;gap:var(--space-6);padding:var(--space-6);background:linear-gradient(135deg, var(--color-primary-50), var(--color-accent-50));border:1px solid var(--border-color);border-radius:var(--radius-2xl);margin-bottom:var(--space-6);display:flex}.patient-avatar{border-radius:var(--radius-2xl);background:linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500));color:#fff;width:72px;height:72px;font-size:var(--text-2xl);font-weight:var(--font-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.patient-info{flex:1}.patient-name{font-size:var(--text-2xl);font-weight:var(--font-bold)}.patient-meta{gap:var(--space-4);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.patient-meta-item{align-items:center;gap:var(--space-1);display:flex}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-semibold{font-weight:var(--font-semibold)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=1024px){.app-main{margin-left:0}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.visible{display:block}.mobile-menu-btn{display:flex}.app-content{padding:var(--space-5)}.app-header{padding:0 var(--space-5)}.form-row-2,.form-row-3,.form-row-4{grid-template-columns:1fr}.page-header{align-items:stretch;gap:var(--space-4);flex-direction:column}.page-header-actions{flex-wrap:wrap;width:100%}.page-header-actions .btn{flex:1;min-width:120px}.stats-grid{grid-template-columns:repeat(2,1fr)}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{min-width:600px}.modal-content{width:95%;margin:var(--space-4);max-height:90vh}.consultation-detail{gap:var(--space-4)}.vital-signs-grid{grid-template-columns:repeat(2,1fr)!important}}@media (width<=640px){html{font-size:15px}.app-content{padding:var(--space-4)}.app-header{padding:0 var(--space-4)}.stats-grid{grid-template-columns:1fr}.stat-card{padding:var(--space-4)}.auth-card{padding:var(--space-5);margin:var(--space-4)}.table-toolbar{align-items:stretch;gap:var(--space-2);padding:var(--space-3);border-bottom:none;flex-direction:column}.table-search{max-width:100%}.table-search .form-input,.table-toolbar .form-input{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.table-search .form-input{padding-left:32px}.table th,.table td{padding:var(--space-3) var(--space-3);font-size:var(--text-xs)}.patient-header{text-align:center;flex-direction:column}.patient-meta{flex-wrap:wrap;justify-content:center}.steps-indicator{-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2);justify-content:flex-start;gap:var(--space-2);flex-wrap:nowrap;overflow-x:auto}.step-pill{white-space:nowrap;font-size:var(--text-xs);padding:var(--space-2) var(--space-3);flex-shrink:0}.card-body,.card-header{padding:var(--space-4)}.card-footer{padding:var(--space-3) var(--space-4)}.page-title{font-size:var(--text-2xl)}.page-subtitle{font-size:var(--text-sm)}.page-header-actions{flex-direction:column}.page-header-actions .btn{justify-content:center;width:100%}.vital-signs-grid{grid-template-columns:1fr!important}.consultation-section{padding:var(--space-4)}.consultation-section-title{font-size:var(--text-sm)}.modal-content{border-radius:0;width:100%;min-height:100vh;margin:0}.btn{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.sidebar{width:85vw;max-width:320px}.sidebar-header{padding:var(--space-4)}.sidebar-nav{padding:var(--space-3)}.grid-cols-1.md\:grid-cols-2,[class*=grid-cols-2]{grid-template-columns:1fr!important}.mb-8{margin-bottom:var(--space-5)}.table-pagination{gap:var(--space-3);text-align:center;padding:var(--space-3);flex-direction:column}.filter-grid{grid-template-columns:1fr!important}.responsive-table,.responsive-table thead,.responsive-table tbody,.responsive-table th,.responsive-table td,.responsive-table tr{display:block}.responsive-table thead{display:none}.responsive-table tbody tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);margin-bottom:var(--space-4);padding:var(--space-4);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-fast)}.responsive-table tbody tr:hover{box-shadow:var(--shadow-md);background:var(--bg-card)}.responsive-table tbody tr:last-child td{border-bottom:none}.responsive-table td{text-align:right;font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex;padding:var(--space-2) 0!important;border-bottom:1px solid var(--color-neutral-100)!important}.responsive-table td:last-child{justify-content:flex-end;padding-top:var(--space-3)!important;border-bottom:none!important}.responsive-table td:before{content:attr(data-label);font-weight:var(--font-semibold);text-align:left;color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:90px}.responsive-table td:first-child{font-size:var(--text-base);padding-bottom:var(--space-3)!important;border-bottom:2px solid var(--color-primary-100)!important}.table-container{overflow-x:visible}.responsive-table{min-width:0}.responsive-table .table-actions{justify-content:flex-end;width:100%}}@media (width<=380px){html{font-size:14px}.app-content,.card-body{padding:var(--space-3)}.page-title{font-size:var(--text-xl)}.sidebar{width:100vw;max-width:none}}.rx-info-banner,.rx-warning{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:var(--leading-relaxed);display:flex}.rx-info-banner svg,.rx-warning svg{flex-shrink:0;margin-top:2px;font-size:20px}.rx-info-banner{background:var(--color-info-50);color:var(--color-info-600);border:1px solid #bfdbfe}.rx-warning{background:var(--color-warning-50);color:var(--color-warning-600);border:1px solid #fde68a}.rx-warning a{color:inherit;font-weight:var(--font-semibold);text-decoration:underline}.medication-card{gap:var(--space-4);padding:var(--space-5);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-xl);flex-direction:column;display:flex}.medication-card-header{justify-content:space-between;align-items:center;display:flex}.medication-card-title{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-primary-700);text-transform:uppercase;letter-spacing:.05em}.rx-sheet{--rx-ink:#0f172a;--rx-muted:#475569;--rx-line:#cbd5e1;--rx-accent:#0f766e;max-width:816px;color:var(--rx-ink);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);font-family:var(--font-sans);background:#fff;margin:0 auto;padding:40px 48px;font-size:13px;line-height:1.45}.rx-header{justify-content:space-between;gap:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--rx-accent);display:flex}.rx-clinic p,.rx-doctor p{color:var(--rx-muted);margin:0;font-size:12px}.rx-clinic-name{font-family:var(--font-display);font-size:20px;font-weight:var(--font-bold);color:var(--rx-accent);margin-bottom:2px}.rx-doctor{text-align:right;flex-shrink:0}.rx-doctor-name{font-weight:var(--font-bold);color:var(--rx-ink)!important;font-size:15px!important}.rx-meta{justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;color:var(--rx-muted);flex-wrap:wrap;font-size:12px;display:flex}.rx-patient{gap:var(--space-3) var(--space-4);padding:var(--space-4);border:1px solid var(--rx-line);border-radius:var(--radius-md);background:#f8fafc;grid-template-columns:repeat(6,1fr);display:grid}.rx-field{flex-direction:column;grid-column:span 1;gap:2px;min-width:0;display:flex}.rx-field-wide{grid-column:span 3}.rx-field-full{grid-column:1/-1}.rx-label{font-size:10px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--rx-muted)}.rx-value{font-weight:var(--font-medium);overflow-wrap:anywhere}.rx-allergies{color:#b91c1c;font-weight:var(--font-semibold)}.rx-body{padding:var(--space-6) 0 var(--space-6) 56px;min-height:260px;position:relative}.rx-symbol{left:0;top:var(--space-5);font-family:Georgia,Times New Roman,serif;font-size:36px;font-weight:var(--font-bold);color:var(--rx-accent);line-height:1;position:absolute}.rx-medications{gap:var(--space-4);flex-direction:column;margin:0;padding-left:20px;display:flex}.rx-medication-name{font-size:14px;font-weight:var(--font-bold)}.rx-brand,.rx-presentation{font-weight:var(--font-regular);color:var(--rx-muted)}.rx-medication-directions{gap:var(--space-1) var(--space-4);flex-wrap:wrap;margin-top:2px;display:flex}.rx-medication-notes{color:var(--rx-muted);margin-top:2px;font-style:italic}.rx-empty{color:var(--rx-muted);font-style:italic}.rx-instructions{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px dashed var(--rx-line)}.rx-instructions p{white-space:pre-wrap;margin:4px 0 0}.rx-next{margin-top:var(--space-4)}.rx-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--rx-line)}.rx-signature{text-align:center;width:280px;color:var(--rx-muted);margin:28px 0 0 auto;font-size:12px}.rx-signature p{margin:0}.rx-signature-line{border-top:1px solid var(--rx-ink);margin-bottom:6px}.rx-signature-name{font-weight:var(--font-bold);color:var(--rx-ink)}.rx-signature-caption{text-transform:uppercase;letter-spacing:.06em;font-size:10px}.rx-legal{margin-top:var(--space-5);color:var(--rx-muted);text-align:center;font-size:9.5px}@media (width<=640px){.rx-sheet{padding:var(--space-5)}.rx-header{gap:var(--space-3);flex-direction:column}.rx-doctor{text-align:left}.rx-patient{grid-template-columns:repeat(2,1fr)}.rx-field-wide{grid-column:1/-1}}@page{size:letter portrait;margin:12mm}@media print{.sidebar,.app-header,.btn,.no-print{display:none!important}.app-main{margin-left:0!important}.app-content{max-width:none;padding:0;animation:none!important}.animate-fade-in-up,.rx-page{animation:none!important}body{color:#000;background:#fff}.consultation-section{break-inside:avoid;border:1px solid #ddd}.rx-sheet{max-width:none;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;border:none;border-radius:0;margin:0;padding:0}.rx-patient{background:#f8fafc!important}.rx-medication,.rx-footer{break-inside:avoid}}.searchable-dropdown{width:100%;position:relative}.searchable-dropdown-list{background-color:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);width:100%;max-height:240px;box-shadow:var(--shadow-lg);z-index:50;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.searchable-dropdown-item{border-radius:var(--radius-md);cursor:pointer;color:var(--color-neutral-800);padding:10px 12px;transition:all .2s}.searchable-dropdown-empty{text-align:center;color:var(--color-neutral-500);padding:12px}.searchable-dropdown{position:relative}.searchable-dropdown-list{z-index:50;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:250px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.searchable-dropdown-item{cursor:pointer;transition:background-color var(--transition-fast);padding:.75rem 1rem}.searchable-dropdown-item:hover{background-color:var(--color-primary-50);color:var(--color-primary-700)}.searchable-dropdown-empty{text-align:center;color:var(--color-neutral-500);padding:1rem;font-style:italic}
