@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #dbeafe;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-bg: #f8fafc;--color-bg-white: #ffffff;--color-bg-gray: #f1f5f9;--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-lighter: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-xs: 12px;--font-sm: 14px;--font-md: 16px;--font-lg: 18px;--font-xl: 20px;--transition: all .3s ease}@media (max-width: 768px){:root{--spacing-xs: 6px;--spacing-sm: 10px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 22px;--font-xs: 11px;--font-sm: 13px;--font-md: 14px;--font-lg: 16px;--font-xl: 18px}}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:var(--font-md);color:var(--color-text-primary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:clamp(20px,5vw,32px);line-height:1.2;font-weight:700}h2{font-size:clamp(18px,4.4vw,26px);line-height:1.25;font-weight:700}h3{font-size:clamp(16px,3.8vw,22px);line-height:1.3;font-weight:700}h4{font-size:clamp(14px,3.4vw,18px);line-height:1.35;font-weight:600}p{line-height:1.6}#app{width:100%;height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-gray)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-lighter)}button,a,input,textarea{-webkit-tap-highlight-color:transparent}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.card{background:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:var(--font-md);font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);text-decoration:none;min-height:44px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-warning{background:var(--color-warning);color:#fff}.btn-error,.btn-danger{background:var(--color-error);color:#fff}.btn-sm{padding:8px 12px;min-height:36px;font-size:14px}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-outline:hover:not(:disabled){background:var(--color-bg-gray)}@media (max-width: 768px){.card{padding:var(--spacing-md)}.btn{padding:10px 16px;min-height:40px}}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border-light);vertical-align:top}.table th{font-weight:600;color:var(--color-text-secondary);font-size:var(--font-sm);background:var(--color-bg-gray)}.input,.textarea,.select{width:100%;padding:12px 16px;font-size:var(--font-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);color:var(--color-text-primary);transition:var(--transition);min-height:44px}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.input::placeholder,.textarea::placeholder{color:var(--color-text-lighter)}.label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-sm);font-weight:500;color:var(--color-text-primary)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-column{display:flex;flex-direction:column}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.ml-sm{margin-left:var(--spacing-sm)}.mr-sm{margin-right:var(--spacing-sm)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-bold{font-weight:600}.text-sm{font-size:var(--font-sm)}.text-lg{font-size:var(--font-lg)}.text-gray{color:var(--color-text-secondary)}.text-light{color:var(--color-text-lighter)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.badge{display:inline-block;padding:4px 12px;font-size:var(--font-xs);font-weight:500;border-radius:12px}.badge-success{background:#d1fae5;color:var(--color-success)}.badge-error{background:#fee2e2;color:var(--color-error)}.badge-warning{background:#fef3c7;color:var(--color-warning)}.badge-info{background:var(--color-primary-light);color:var(--color-primary)}.loading{display:inline-block;width:20px;height:20px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}@media (max-width: 768px){html{font-size:15px}.card{padding:var(--spacing-md)}.btn{padding:14px 20px;font-size:var(--font-md)}}
