@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--color-bg-primary:#fafaf8;--color-bg-secondary:#f5f5f0;--color-bg-tertiary:#eeeee8;--color-bg-card:#fff;--color-bg-chat-user:#f0f0ea;--color-bg-chat-ai:#fff;--color-bg-hover:#f0f0ea;--color-bg-active:#e8e8e2;--color-bg-sidebar:#f8f8f5;--color-bg-confirm:#fffdf5;--color-text-primary:#1a1a1a;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-text-inverse:#fff;--color-accent:#1a1a1a;--color-accent-hover:#333;--color-accent-subtle:#e8e8e2;--color-accent-green:#2d6a4f;--color-accent-green-bg:#f0faf4;--color-accent-amber:#92400e;--color-accent-amber-bg:#fffbeb;--color-accent-red:#991b1b;--color-accent-red-bg:#fef2f2;--color-accent-blue:#1e40af;--color-accent-blue-bg:#eff6ff;--color-border:#e5e5e0;--color-border-light:#f0f0ea;--color-border-focus:#1a1a1a;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #0000000f;--shadow-lg:0 4px 16px #00000014;--shadow-card:0 1px 3px #0000000a, 0 1px 2px #00000005;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.75rem;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--letter-spacing-tight:-.025em;--letter-spacing-normal:-.01em;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.7;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--sidebar-width:280px;--header-height:56px;--max-chat-width:780px;--max-content-width:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary)}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}h1,h2,h3,h4{letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-base);white-space:nowrap;height:36px;padding:.5rem 1rem;line-height:1;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-sm);transform:translateY(-.5px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-text-tertiary)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-danger{background:var(--color-accent-red);color:var(--color-text-inverse)}.btn-danger:hover{opacity:.9}.btn-success{background:var(--color-accent-green);color:var(--color-text-inverse)}.btn-success:hover{opacity:.9}.btn-lg{height:44px;font-size:var(--font-size-base);border-radius:var(--radius-lg);padding:.625rem 1.5rem}.btn-sm{height:30px;font-size:var(--font-size-xs);padding:.25rem .75rem}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;padding:0}.input{width:100%;font-size:var(--font-size-sm);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-base), box-shadow var(--transition-base);height:38px;color:var(--color-text-primary);padding:.5rem .75rem}.input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #1a1a1a0f}.input::placeholder{color:var(--color-text-tertiary)}.textarea{width:100%;font-size:var(--font-size-sm);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-base);resize:vertical;min-height:80px;color:var(--color-text-primary);padding:.625rem .75rem}.textarea:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #1a1a1a0f}.select{width:100%;font-size:var(--font-size-sm);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);height:38px;color:var(--color-text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding:.5rem 2rem .5rem .75rem}.select:focus{border-color:var(--color-border-focus);outline:none}.label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-xs);display:block}.form-group{margin-bottom:var(--space-lg)}.card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card)}.card-hover:hover{border-color:var(--color-border);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);align-items:center;padding:.125rem .5rem;line-height:1.5;display:inline-flex}.badge-default{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-green{background:var(--color-accent-green-bg);color:var(--color-accent-green)}.badge-amber{background:var(--color-accent-amber-bg);color:var(--color-accent-amber)}.badge-red{background:var(--color-accent-red-bg);color:var(--color-accent-red)}.badge-blue{background:var(--color-accent-blue-bg);color:var(--color-accent-blue)}.chip{font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;align-items:center;padding:.375rem .875rem;display:inline-flex}.chip:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.confirm-card{background:var(--color-bg-confirm);border-radius:var(--radius-lg);padding:var(--space-lg);margin:var(--space-md) 0;border:1px solid #e5dfc8}.confirm-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent-amber);margin-bottom:var(--space-sm);align-items:center;gap:var(--space-sm);display:flex}.confirm-card-body{font-size:var(--font-size-sm);color:var(--color-text-primary);margin-bottom:var(--space-md)}.confirm-card-actions{gap:var(--space-sm);display:flex}.table-container{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th{text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;padding:.75rem 1rem}.table td{border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary);padding:.75rem 1rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-bg-hover)}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg)}.stat-card-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.stat-card-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);line-height:1}.stat-card-sub{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;animation:fadeIn var(--transition-base);background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:90%;max-width:520px;max-height:85vh;animation:slideUp var(--transition-slow);overflow-y:auto}.modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border-light)}.modal-body{padding:var(--space-xl)}.modal-footer{padding:var(--space-md) var(--space-xl) var(--space-lg);gap:var(--space-sm);justify-content:flex-end;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);border-right:1px solid var(--color-border-light);z-index:100;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{padding:var(--space-lg) var(--space-lg);border-bottom:1px solid var(--color-border-light)}.sidebar-nav{padding:var(--space-md);flex:1;overflow-y:auto}.sidebar-nav-item{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:2px;padding:.5rem .75rem;display:flex}.sidebar-nav-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.sidebar-nav-item.active{background:var(--color-bg-active);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.sidebar-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-md) .75rem var(--space-xs)}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border-light)}.admin-layout{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.admin-header{height:var(--header-height);border-bottom:1px solid var(--color-border-light);padding:0 var(--space-xl);background:var(--color-bg-card);z-index:50;justify-content:space-between;align-items:center;width:100%;display:flex;position:sticky;top:0}.admin-content{padding:var(--space-xl);flex:1;width:100%;max-width:100%}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight)}.empty-state{padding:var(--space-3xl) var(--space-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-md);opacity:.3;font-size:2.5rem}.empty-state-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.empty-state-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);max-width:320px}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}.loading-dots{gap:4px;display:inline-flex}.loading-dots span{background:var(--color-text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes messageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}@media (max-width:768px){:root{--sidebar-width:0px}.sidebar{transition:transform var(--transition-slow);transform:translate(-100%)}.sidebar.open{width:280px;transform:translate(0)}.admin-layout{margin-left:0}.admin-content{padding:var(--space-md)}}
