.app{min-height:100vh;display:flex;flex-direction:column}.header{background:#1a237e;color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:32px}.header-right{display:flex;align-items:center;gap:16px}.logo{font-size:18px;font-weight:700;color:#fff!important;text-decoration:none!important}.nav{display:flex;gap:20px}.nav a{color:#ffffffd9;font-size:14px;text-decoration:none;padding:4px 0;border-bottom:2px solid transparent;transition:.2s}.nav a:hover,.nav a.router-link-active{color:#fff;border-bottom-color:#64b5f6;text-decoration:none}.user-name{font-size:14px;opacity:.85}.main{flex:1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:.2s}.btn-primary{background:#1976d2;color:#fff}.btn-primary:hover{background:#1565c0}.btn-danger{background:#d32f2f;color:#fff}.btn-danger:hover{background:#c62828}.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}.btn-outline:hover{border-color:#fff}.btn-sm{padding:4px 12px;font-size:13px}.card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.card-header{font-size:16px;font-weight:600;margin-bottom:16px;color:#1a237e}.flex{display:flex}.flex-1{flex:1}.gap-16{gap:16px}.gap-12{gap:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.text-center{text-align:center}.text-muted{color:#757575;font-size:13px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:4px;color:#555}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;transition:.2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1976d2;box-shadow:0 0 0 2px #1976d226}.form-group textarea{resize:vertical;min-height:80px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #eee}th{font-weight:600;color:#555;font-size:12px;text-transform:uppercase;letter-spacing:.5px}tr:hover td{background:#f5f5f5}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;color:#fff}.loading{text-align:center;padding:60px;color:#999}.error{color:#d32f2f;font-size:13px;margin-top:4px}.success{color:#388e3c;font-size:13px;margin-top:4px}
