:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--success: #16a34a;--success-bg: #dcfce7;--error: #ef4444;--error-bg: #fee2e2;--warning: #eab308;--warning-bg: #fef9c3;--info: #0ea5e9;--info-bg: #e0f2fe;--surface: #ffffff;--body-bg: #f8fafc;--border: #e2e8f0;--border-hover: #cbd5e1;--text-title: #0f172a;--text-main: #334155;--text-muted: #64748b;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--sidebar-width: 250px;--header-height: 64px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text-main);background-color:var(--body-bg);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:var(--text-title);font-weight:600;line-height:1.2;margin-bottom:.5em}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}a{color:var(--primary);text-decoration:none;transition:color .15s ease-in-out}a:hover{color:var(--primary-hover)}.text-error{color:var(--error)}.text-muted{color:var(--text-muted)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-sm{font-size:13px}.text-xs{font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:8px 16px;font-size:14px;font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-outline{background-color:transparent;border-color:var(--border);color:var(--text-main)}.btn-outline:hover:not(:disabled){background-color:var(--body-bg);border-color:var(--border-hover)}.btn-ghost{background-color:transparent;color:var(--text-main)}.btn-ghost:hover:not(:disabled){background-color:var(--border);color:var(--text-title)}.btn-ghost.text-error{color:var(--error)}.btn-ghost.text-error:hover{background-color:var(--error-bg)}.btn-icon{padding:8px;display:flex;align-items:center;justify-content:center}.btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;border-radius:var(--radius-sm);white-space:nowrap}.badge-success{background-color:var(--success-bg);color:var(--success)}.badge-error{background-color:var(--error-bg);color:var(--error)}.badge-warning{background-color:var(--warning-bg);color:var(--warning)}.badge-neutral{background-color:var(--body-bg);color:var(--text-muted);border:1px solid var(--border)}.badge-brand{background-color:var(--primary-light);color:var(--primary)}.tab-list{display:flex;border-bottom:1px solid var(--border);gap:1.5rem}.tab-item{padding:.75rem 0;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer;transition:all .2s ease;margin-bottom:-1px}.tab-item:hover{color:var(--primary)}.tab-item.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-main);margin-bottom:6px}.form-input{width:100%;padding:8px 12px;font-size:14px;line-height:inherit;color:var(--text-title);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline:none}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-input:disabled{background-color:var(--body-bg);cursor:not-allowed;opacity:.8}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px 12px;padding-right:2.5rem}textarea.form-input{resize:vertical;min-height:80px}.card{background-color:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.table-container{width:100%;overflow-x:auto}table.table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.table thead th{background-color:var(--body-bg);color:var(--text-muted);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border);white-space:nowrap}.table tbody td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:var(--body-bg)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:opacity .2s ease}.modal-overlay.open{display:flex;opacity:1}.modal-content{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;transform:translateY(20px) scale(.95);transition:all .2s ease}.modal-overlay.open .modal-content{transform:translateY(0) scale(1)}.modal-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-title{margin:0;font-size:18px}.modal-body{padding:1.5rem;overflow-y:auto}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem;background-color:var(--body-bg);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;z-index:1050;opacity:0;transition:opacity .3s ease}.drawer-overlay.open{display:block;opacity:1}.drawer-content{position:absolute;top:0;right:0;bottom:0;width:80vw;max-width:100vw;background:var(--surface);box-shadow:-4px 0 15px #0000001a;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}@media (max-width: 768px){.drawer-content{width:100%!important}.drawer-header,.drawer-body{padding:1rem!important}.drawer-footer{padding:1rem!important;flex-wrap:wrap}}.drawer-overlay.open .drawer-content{transform:translate(0)}.drawer-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--body-bg)}.drawer-title{margin:0;font-size:18px;font-weight:700}.drawer-body{padding:1.5rem;overflow-y:auto;flex:1}.drawer-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:1rem;background:var(--body-bg)}#app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100}.sidebar-header{height:var(--header-height);display:flex;align-items:center;padding:0 1.5rem;border-bottom:1px solid var(--border);font-weight:700;font-size:18px;color:var(--primary)}.sidebar-nav{flex:1;overflow-y:auto;padding:1rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:10px 12px;color:var(--text-main);font-weight:500;border-radius:var(--radius-md);margin-bottom:4px;cursor:pointer;transition:all .15s ease}.nav-item:hover{background-color:var(--body-bg)}.nav-item.active{background-color:var(--primary-light);color:var(--primary)}.nav-item i{width:20px;height:20px;color:var(--text-muted)}.nav-item.active i{color:var(--primary)}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.header{height:var(--header-height);background-color:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.content-wrapper{flex:1;overflow-y:auto;padding:2rem}.container{max-width:1200px;margin:0 auto}
